/* ===================================================================
   Componentes nuevos — página Prensa de tornillo (22-09-2026)
   Se carga después de styles.css y styles-vsep.css. Solo lo que no
   existe en esas hojas.
   =================================================================== */

/* hero con foto propia (mismo velo blanco que el resto de servicios) */
.page-hero.hero-photo-prensa-tornillo{
  background-image:linear-gradient(to right, rgba(253,253,251,1) 0%, rgba(253,253,251,0.97) 34%, rgba(253,253,251,0.62) 58%, rgba(253,253,251,0.12) 82%, rgba(253,253,251,0) 100%), url(prensa-tornillo-hero.jpg);
  /* la foto ocupa solo el lado derecho: el equipo queda fuera de la zona del texto */
  background-size:cover, auto 118%;
  background-position:center, right 55%;
  background-color:var(--paper);
}
@media (max-width:760px){
  .page-hero.hero-photo-prensa-tornillo{
    min-height:300px !important; display:flex !important; align-items:flex-end;
    background-image:linear-gradient(to bottom, rgba(253,253,251,1) 0%, rgba(253,253,251,0.94) 30%, rgba(253,253,251,0.82) 58%, rgba(253,253,251,0.88) 88%, rgba(253,253,251,1) 100%), url(prensa-tornillo-hero.jpg) !important;
    background-size:cover !important; background-position:center 55% !important; background-repeat:no-repeat !important;
  }
}

/* texto de cuerpo (reemplaza los style="" en línea de otras páginas) */
.pt-copy{ max-width:66ch; font-family:'IBM Plex Sans',sans-serif; color:var(--text-soft); font-size:0.98rem; line-height:1.7; margin:0 0 1em; }
.pt-copy strong{ color:var(--text); }

/* figura "agua vs sólidos": dos barras + cifra grande */
.pt-water{ background:var(--card); border:1px solid var(--rule); border-radius:var(--radius); padding:24px; }
.pt-bar-row{ display:flex; flex-direction:column; gap:7px; margin-bottom:16px; }
.pt-bar-lbl{
  display:flex; justify-content:space-between; gap:12px;
  font-family:'Archivo',sans-serif; font-weight:600; font-size:0.7rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--text-soft);
}
.pt-bar-lbl .mono{ color:var(--text); letter-spacing:0; }
.pt-bar{ height:30px; border-radius:var(--radius-sm); background:linear-gradient(90deg, var(--brand-mid) 2%, #C9D6D9 2%); }
.pt-bar.is-cake{ width:10%; min-width:44px; background:linear-gradient(90deg, var(--brand-mid) 20%, #C9D6D9 20%); }
.pt-legend{ display:flex; gap:16px; font-family:'Archivo',sans-serif; font-size:0.72rem; color:var(--text-soft); margin-top:4px; }
.pt-legend i{ display:inline-block; width:10px; height:10px; border-radius:2px; margin-right:6px; vertical-align:-1px; }
.pt-big{ display:flex; align-items:baseline; gap:14px; margin-top:20px; padding-top:16px; border-top:1px solid var(--rule); }
.pt-big-num{ font-family:'Big Shoulders Display',sans-serif; font-weight:800; font-size:clamp(3rem,6vw,4.4rem); line-height:0.85; color:var(--accent); white-space:nowrap; }
.pt-big-lbl{ font-family:'Archivo',sans-serif; font-weight:600; font-size:0.72rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--text-soft); max-width:18ch; line-height:1.35; }
.pt-foot{ margin:14px 0 0; font-size:0.8rem; color:var(--text-soft); line-height:1.5; }

/* esquema del equipo */
.pt-schematic{ background:#fff; border:1px solid var(--rule); border-radius:var(--radius); padding:clamp(14px,2.5vw,26px); overflow-x:auto; margin-bottom:28px; }
.pt-schematic svg{ display:block; width:100%; min-width:620px; height:auto; }
.pt-schematic text{ font-family:'Archivo',sans-serif; font-size:12px; fill:var(--ink-soft); letter-spacing:0.04em; }
.pt-schematic .z1{ fill:var(--brand-mid); font-weight:700; }
.pt-schematic .z2{ fill:var(--accent); font-weight:700; }

/* diferenciadores: dato técnico al pie de cada exp-card */
.pt-spec{
  margin-top:auto; padding-top:10px; border-top:1px dashed var(--rule);
  font-family:'IBM Plex Mono',monospace; font-size:0.78rem; color:var(--accent); font-weight:500;
}
.pt-diff .exp-card-body{ padding:20px; height:100%; gap:8px; }
.pt-kicker{ font-family:'Archivo',sans-serif; font-weight:700; font-size:0.66rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--brand-mid); }

/* ledger: las 4 cifras en una sola fila en escritorio */
@media (min-width:901px){
  .pt-ledger .wrap{ flex-wrap:nowrap; }
  .pt-ledger .ledger-item{ flex:1 1 0; min-width:0; padding:24px clamp(14px,1.6vw,22px); gap:12px; }
  .pt-ledger .ledger-num{ font-size:clamp(2.2rem,3.4vw,3rem); }
  .pt-ledger .ledger-label{ max-width:13ch; font-size:0.66rem; }
}

/* tabla comparativa */
.pt-table-wrap{ overflow-x:auto; border:1px solid var(--rule); border-radius:var(--radius); background:var(--bg); }
.pt-table{ width:100%; min-width:640px; border-collapse:collapse; font-size:0.92rem; }
.pt-table th, .pt-table td{ padding:13px 18px; text-align:left; border-bottom:1px solid var(--rule); vertical-align:top; }
.pt-table tr:last-child > *{ border-bottom:none; }
.pt-table thead th{
  font-family:'Archivo',sans-serif; font-weight:700; font-size:0.7rem; letter-spacing:0.07em; text-transform:uppercase;
  color:var(--text-soft); background:var(--card);
}
.pt-table thead th.is-us{ background:var(--ink); color:var(--paper); }
.pt-table tbody th{ font-family:'Archivo',sans-serif; font-weight:600; font-size:0.82rem; color:var(--text); }
.pt-table td{ color:var(--text-soft); }
.pt-table td.is-us{ background:rgba(31,107,52,0.07); color:var(--brand); font-weight:600; }

/* en terreno: video + foto */
.pt-field{ display:grid; grid-template-columns:1fr 1fr; gap:16px; align-items:stretch; }
@media (max-width:760px){ .pt-field{ grid-template-columns:1fr; } }
.pt-field figure{ margin:0; border-radius:var(--radius); overflow:hidden; border:1px solid var(--rule); background:var(--card); }
.pt-field video, .pt-field img{ width:100%; display:block; aspect-ratio:16/10; object-fit:cover; background:var(--ink); }
.pt-field figcaption{ padding:10px 14px; font-family:'Archivo',sans-serif; font-weight:500; font-size:0.72rem; color:var(--text-soft); border-top:1px solid var(--rule); }

/* estimador de capacidad */
.pt-est{ display:grid; grid-template-columns:1fr 1.1fr; border:1px solid var(--rule); border-radius:var(--radius); overflow:hidden; }
@media (max-width:860px){ .pt-est{ grid-template-columns:1fr; } }
.pt-est-form{ background:var(--bg); padding:clamp(20px,3vw,30px); display:flex; flex-direction:column; gap:16px; }
.pt-est-form label{
  display:flex; flex-direction:column; gap:7px;
  font-family:'Archivo',sans-serif; font-weight:600; font-size:0.74rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--text-soft);
}
.pt-est-form input{
  font-family:'IBM Plex Mono',monospace; font-size:1.05rem; color:var(--text); background:var(--paper);
  border:1px solid var(--rule); border-radius:var(--radius-sm); padding:11px 13px; transition:border-color 160ms ease; width:100%;
}
.pt-est-form input:focus{ outline:none; border-color:var(--accent); }
.pt-est-hint{ margin:0; font-size:0.8rem; color:var(--text-soft); }
.pt-est-out{ background:var(--ink); color:var(--paper); padding:clamp(20px,3vw,30px); display:flex; flex-direction:column; gap:16px; }
.pt-est-out .eyebrow{ color:#B9C4AE; margin:0; }
.pt-est-load{ font-family:'Big Shoulders Display',sans-serif; font-weight:800; font-size:clamp(3rem,6vw,4.2rem); line-height:0.85; color:var(--paper); }
.pt-est-unit{ font-family:'Archivo',sans-serif; font-weight:600; font-size:0.72rem; letter-spacing:0.06em; text-transform:uppercase; color:#B9C4AE; margin-top:6px; }
.pt-est dl{ margin:0; display:grid; grid-template-columns:1fr auto; gap:10px 18px; border-top:1px solid rgba(241,241,236,0.16); padding-top:14px; }
.pt-est dt{ font-size:0.88rem; color:rgba(250,250,246,0.75); }
.pt-est dd{ margin:0; text-align:right; font-family:'IBM Plex Mono',monospace; font-size:0.95rem; color:var(--paper); }
.pt-est-disc{ margin:0; font-size:0.78rem; color:rgba(250,250,246,0.6); line-height:1.5; }
.pt-est-out .btn-primary{ align-self:flex-start; background:var(--accent); border-color:var(--accent); color:var(--on-accent); }
.pt-est-out .btn-primary:hover{ background:var(--accent-bright); border-color:var(--accent-bright); }

/* BORRADOR — marcas de revisión; se eliminan antes de publicar */
.pt-draft{ background:#F6EBD6; color:#6f4c10; font-family:'Archivo',sans-serif; font-weight:600; font-size:0.72rem; letter-spacing:0.05em; text-transform:uppercase; padding:8px 0; text-align:center; }
.pt-note{
  display:inline-flex; align-items:baseline; gap:6px; margin-top:14px;
  font-family:'Archivo',sans-serif; font-weight:600; font-size:0.7rem; letter-spacing:0.03em;
  color:#6f4c10; background:#F6EBD6; border-radius:var(--radius-sm); padding:4px 9px;
}
.pt-note::before{ content:""; width:7px; height:7px; border-radius:50%; background:#B7791F; flex:none; }

/* cifras con guion o signo: no partir en dos líneas */
.pt-ledger .ledger-num{ white-space:nowrap; }

/* pasos del proceso: mismo destacado al pasar el mouse que las filas .idx-row */
.pt-steps .proceso-row{ position:relative; border-radius:var(--radius-sm); transition:border-color 180ms ease, background 180ms ease, transform 180ms ease; }
.pt-steps .proceso-row::before{
  content:""; position:absolute; left:0; top:12px; bottom:12px; width:3px; border-radius:2px;
  background:var(--accent); transform:scaleY(0); transform-origin:center; transition:transform 220ms var(--ease-out);
}
.pt-steps .proceso-row:hover{ background:var(--surface); border-color:var(--accent); transform:translateX(8px); }
.pt-steps .proceso-row:hover::before{ transform:scaleY(1); }
.pt-steps .proceso-body h3{ transition:color 180ms ease; }
.pt-steps .proceso-row:hover .proceso-body h3{ color:var(--accent); }
@media (prefers-reduced-motion: reduce){ .pt-steps .proceso-row, .pt-steps .proceso-row::before{ transition:none; } .pt-steps .proceso-row:hover{ transform:none; } }
