@charset "utf-8";
/* ================= PORTADA 2.0 ================= */
/* héroe: lo que vendes y el primer paso, en la primera pantalla */
.hero{padding:calc(var(--hh) + clamp(24px,3.4vw,52px)) 0 clamp(48px,6vw,88px);position:relative}
.hero-g{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(0,.82fr);gap:var(--gut);align-items:stretch}
.hero-t{min-width:0;display:flex;flex-direction:column}
.hero-k{display:flex;align-items:center;gap:12px;margin:0 0 18px;color:var(--galv-d)}
.hero-k .pg{width:34px;height:34px;color:var(--manta)}
.hero-h{margin:0;font-size:clamp(60px,8.4vw,138px)}
.hero-h .ln{display:block}
.hero-h .hl{color:var(--manta)}
.hero .lead{margin:18px 0 22px;max-width:46ch}
.hero-v{position:relative;min-width:0}
.hero-v .ph{width:100%}
.hero-v .ph .cap{left:auto;right:12px;bottom:auto;top:12px;max-width:min(60%,320px)}
.hero-lbl{position:absolute;left:-1px;bottom:-1px;z-index:3;background:var(--blanco);border:1.5px solid var(--ruta);padding:10px 14px;display:grid;gap:2px}
.hero-lbl b{font-family:var(--f-disp);font-weight:900;font-size:30px;line-height:1}
/* hoja de ruta */
.ruta{background:var(--manta);color:var(--film);margin-top:auto}
.ruta-tabs{display:flex;border-bottom:1.5px solid rgba(238,241,242,.35)}
.ruta-tabs button{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;min-height:50px;border:0;background:transparent;color:inherit;font-weight:700;font-size:15px;cursor:pointer;border-right:1.5px solid rgba(238,241,242,.35)}
.ruta-tabs button:last-child{border-right:0}
.ruta-tabs button .pg{width:20px;height:20px}
.ruta-tabs button[aria-selected="true"]{background:var(--hv);color:var(--ruta)}
.ruta-body{padding:16px}
.ruta-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) auto;gap:8px;align-items:end}
.ruta-row[hidden]{display:none}
.ruta .f{border-color:var(--film);color:var(--ruta)}
.ruta .f .fld{color:var(--galv-d)}
.ruta .go{min-height:56px;white-space:nowrap}
.ruta-out{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:baseline;margin-top:14px;min-height:28px}
.ruta-out b{font-family:var(--f-mono);font-weight:600;font-size:clamp(22px,2vw,28px);color:var(--hv)}
.ruta-out span{font-size:14px;color:rgba(238,241,242,.82)}
.ruta-out a{color:var(--hv);font-weight:700}
.proofs-h{margin:16px 0 0}

/* tramo genérico de cabecera de sección */
.sh{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,1fr);gap:var(--gut);align-items:end;margin-bottom:44px}
.sh .pgbig{width:clamp(64px,7vw,104px)}
.sh h2{margin:0}
.sh p{margin:0}

/* el camión por dentro */
.cam-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--gut);align-items:end;margin-bottom:48px}
.cam-head h2{margin:0}
.cam{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.25fr);gap:var(--gut);align-items:start}
.cam-l{min-width:0}
.cam-presets{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:18px}
.cam-presets .chip{min-height:36px;font-size:13.5px;padding:0 12px}
.cam-tabs{display:flex;flex-wrap:wrap;border-bottom:2px solid var(--tinta)}
.cam-tabs button{border:0;background:transparent;padding:10px 12px 8px;font-weight:650;font-size:14px;cursor:pointer;position:relative;display:flex;gap:6px;align-items:center}
.cam-tabs button span{font-size:11px;background:var(--linea);padding:1px 6px;min-width:22px;text-align:center}
.cam-tabs button[aria-selected="true"]{background:var(--tinta);color:var(--papel)}
.cam-tabs button[aria-selected="true"] span{background:var(--hv);color:var(--ruta)}
.cam-list{background:#F8FAFA;border:1.5px solid var(--tinta);border-top:0;max-height:430px;overflow:auto}
.it{display:grid;grid-template-columns:14px minmax(0,1fr) auto;gap:12px;align-items:center;padding:9px 12px;border-bottom:1px dashed var(--linea)}
.it:last-child{border-bottom:0}
.it.has{background:rgba(215,242,28,.22)}
.it-sw{width:14px;height:14px;display:block}
.it-m{background:var(--manta)}.it-e{background:var(--papel-2);border:1.5px solid var(--tinta)}.it-c{background:var(--kraft)}
.it-fr{box-shadow:0 0 0 2px var(--fragil)}
.it-n{font-size:15px;font-weight:550;line-height:1.25}
.it-n small{display:block;font-size:11.5px;color:var(--gris);font-weight:500}
.it-n .fr{font-style:normal;color:var(--fragil);font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-left:4px}
.it-ctl{display:flex;align-items:center;gap:6px}
.it-ctl .step-btn{width:34px;height:34px;font-size:18px}
.it-ctl output{min-width:28px;text-align:center;font-weight:700;font-size:16px}
.cam-r{position:sticky;top:calc(var(--hh) + 16px);min-width:0}
.truck-wrap{background:var(--papel);border:1.5px solid var(--tinta);padding:14px 14px 0;position:relative}
.truck-meta{display:flex;justify-content:space-between;gap:10px}
#truckSvg{width:100%;height:auto;margin-top:4px}
#truckSvg .drop{animation:drop .6s var(--ease-lift) both;transform-box:fill-box}
#truckSvg.vchg{animation:vchg .55s var(--ease)}
@keyframes vchg{from{opacity:.25;transform:scaleX(.9);transform-origin:right}to{opacity:1;transform:none}}
@keyframes drop{from{transform:translateY(-70px);opacity:0}to{transform:none;opacity:1}}
.cam-out{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:-1.5px;background:#F8FAFA}
.cam-out b{font-size:clamp(26px,2.6vw,40px);line-height:1}
.cam-out .wide{grid-column:1/-1;font-size:14.5px}
.cam-cta{margin-top:18px}
.cam-go-m{display:none}

.cam-mini{display:none}

/* servicios: cada uno con su pictograma ISO 780 */
.srv{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1.5px solid rgba(238,241,242,.4)}
.srv a{display:grid;grid-template-columns:56px minmax(0,1fr);gap:4px 16px;padding:26px 22px 26px 0;border-bottom:1.5px solid rgba(238,241,242,.4);text-decoration:none;min-width:0;transition:background .25s}
.srv a:not(:nth-child(3n)){border-right:1.5px solid rgba(238,241,242,.4)}
.srv a:not(:nth-child(3n+1)){padding-left:22px}
.srv a:hover{background:rgba(255,255,255,.06)}
.srv .pg{width:56px;height:56px;color:var(--hv);grid-row:span 3}
.srv h3{margin:0;font-family:var(--f-disp);font-weight:900;font-size:clamp(28px,2.6vw,38px);line-height:1;text-transform:uppercase}
.srv p{margin:0;font-size:15.5px;color:rgba(238,241,242,.84)}
.srv .fld{color:var(--hv);margin-top:6px}

/* pizarra: tablero de salidas del muelle */
.pz{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:var(--gut);align-items:center}
.pz-l h2{margin:0 0 20px}
.pz-l .body{margin-bottom:22px}
.board{background:var(--ruta);color:var(--film);border:1.5px solid var(--ruta);padding:16px 20px 18px;position:relative}
.bd-h{display:grid;grid-template-columns:130px minmax(0,1fr) 150px;gap:16px;padding-bottom:8px;border-bottom:1.5px solid rgba(238,241,242,.3);color:var(--galv)}
.bd-r{display:grid;grid-template-columns:130px minmax(0,1fr) 150px;gap:16px;align-items:center;padding:11px 0;border-bottom:1px solid rgba(238,241,242,.12);text-decoration:none;color:var(--film);transition:background .2s}
.bd-r:hover{background:rgba(215,242,28,.08)}
.bd-f{font-family:var(--f-mono);font-size:14px;color:var(--galv)}
.bd-ru{font-family:var(--f-disp);font-weight:800;font-size:23px;line-height:1.05;text-transform:uppercase}
.bd-l{display:flex;align-items:center;gap:8px}
.bd-l i{flex:1;height:8px;background:linear-gradient(90deg,var(--galv-d) var(--p),var(--hv) var(--p))}
.bd-l b{font-family:var(--f-mono);font-weight:600;font-size:14px;color:var(--hv);white-space:nowrap}
.bd-pen{display:none}
.js .board .bd-r{opacity:0}
.js .board.on .bd-r{opacity:1;transition:opacity .45s var(--d)}

/* cierre: pruebas, opiniones cortas y presupuesto */
.cie{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:var(--gut);align-items:start}
.cie h2{margin:0 0 22px}
.nums{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1.5px solid var(--ruta);border-left:1.5px solid var(--ruta)}
.nums>div{border-right:1.5px solid var(--ruta);border-bottom:1.5px solid var(--ruta);padding:16px 18px;min-width:0;background:var(--blanco)}
.nums b{display:block;font-family:var(--f-disp);font-weight:900;font-size:clamp(40px,4vw,62px);line-height:.95}
.nums span{font-size:14.5px}
.ops{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:0;border-top:1.5px solid var(--ruta)}
.ops li{padding:16px 0;border-bottom:1.5px solid var(--linea);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 18px}
.ops q{font-size:17px;quotes:"«" "»"}
.ops .fld{color:var(--gris)}
.ops .stamp{align-self:start}
.cie .btns{margin-top:24px}

/* ================= RESPONSIVE PORTADA ================= */
@media (max-width:1100px){
  .hero-g{grid-template-columns:1fr}
  .hero-v .ph{max-width:560px}
  .ruta-row{grid-template-columns:1fr 1fr}
  .ruta-row .go{grid-column:1/-1;justify-content:center}
  .srv{grid-template-columns:1fr 1fr}
  .srv a{padding-left:0!important;border-right:0!important}
  .srv a:nth-child(odd){padding-right:22px!important;border-right:1.5px solid rgba(238,241,242,.4)!important}
  .srv a:nth-child(even){padding-left:22px!important}
  .pz,.cie{grid-template-columns:1fr}
  .sh{grid-template-columns:auto minmax(0,1fr)}
  .sh p{grid-column:1/-1}
}
@media (max-width:900px){
  .cam{grid-template-columns:1fr}
  .cam-r{position:relative;top:0;order:-1}
  .cam-cta{display:none}
  .cam-go-m{display:inline-flex;margin-top:16px}
  .cam-mini{display:flex;position:sticky;top:calc(var(--hh) + 6px);z-index:6;align-items:center;gap:12px;background:var(--ruta);color:var(--film);padding:10px 12px;margin-bottom:12px}
  .cam-mini .fld{white-space:nowrap}
  .cam-mini .bar{flex:1;height:10px;background:var(--galv-d)}
  .cam-mini .bar i{display:block;height:100%;width:0;background:var(--hv);transition:width .4s var(--ease)}
}
@media (max-width:640px){
  .hero-h{font-size:clamp(50px,15vw,72px)}
  .hero .lead{font-size:17px;margin:12px 0 16px}
  .hero-k{font-size:11.5px;margin-bottom:12px}
  .ruta-tabs button{font-size:13.5px;gap:5px;min-height:46px}
  .ruta-tabs button .pg{display:none}
  .ruta-body{padding:12px}
  .ruta-row{grid-template-columns:1fr}
  .srv{grid-template-columns:1fr}
  .srv a{padding:20px 0!important;border-right:0!important}
  .cam-out{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cam-tabs button{font-size:13px;padding:8px 9px}
  .bd-h,.bd-r{grid-template-columns:76px minmax(0,1fr) 70px;gap:8px}
  .bd-ru{font-size:18px}.bd-f{font-size:12px}
  .bd-l i{display:none}
  .board{padding:12px}
  .nums b{font-size:38px}
  .ops li{grid-template-columns:1fr}
}
.srv a>[data-pg]{grid-row:1/span 3;grid-column:1}
.srv a>:not([data-pg]){grid-column:2}
.srv a>[data-pg] .pg{display:block}
@media (max-width:640px){
  .srv a,.srv a:nth-child(odd),.srv a:nth-child(even){grid-template-columns:48px minmax(0,1fr);padding:20px 0!important;border-right:0!important}
  .srv .pg{width:44px;height:44px}
}
