/* GMZ Vial — estilos compartidos de las páginas internas */

/* Layout: "plano topográfico" — tosca-colored paper with live contour lines; heavy wide type; dark tierra-negra bands for the interactive moments; orange only as machine paint (fills, never small text on light). */
:root{
  --bg:#EEE8DD;          /* tosca */
  --bg-2:#E4DCCD;
  --paper:#F6F1E8;
  --fg:#16130F;          /* tierra negra */
  --muted:#5C5246;
  --line:#16130F29;
  --signal:#FF6A13;      /* naranja vial: fills */
  --signal-ink:#B13F06;  /* naranja para texto sobre claro */
  --on-signal:#16130F;
  --earth:#16130F;       /* bandas oscuras */
  --earth-2:#221D17;
  --on-earth:#EEE8DD;
  --earth-muted:#A69A8A;
  --earth-line:#EEE8DD26;
  --contour:#16130F;
  --wa:#1F7A4D;
  --on-wa:#FFFFFF;

  --display:"Archivo","Arial Narrow",system-ui,sans-serif;
  --body:"Archivo",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;

  --gut:clamp(16px,4.5vw,64px);
  --max:1320px;
  --r:4px;
  --ease:cubic-bezier(.16,1,.3,1);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#15120E;--bg-2:#1D1914;--paper:#221D17;--fg:#EEE8DD;--muted:#A69A8A;--line:#EEE8DD24;
  --signal:#FF7A2E;--signal-ink:#FF7A2E;--on-signal:#16130F;--earth:#0B0907;--earth-2:#1A1611;
  --on-earth:#EEE8DD;--earth-muted:#9C9080;--earth-line:#EEE8DD1F;--contour:#EEE8DD;--wa:#25A866;--on-wa:#0B0907;
  color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#15120E;--bg-2:#1D1914;--paper:#221D17;--fg:#EEE8DD;--muted:#A69A8A;--line:#EEE8DD24;
  --signal:#FF7A2E;--signal-ink:#FF7A2E;--on-signal:#16130F;--earth:#0B0907;--earth-2:#1A1611;
  --on-earth:#EEE8DD;--earth-muted:#9C9080;--earth-line:#EEE8DD1F;--contour:#EEE8DD;--wa:#25A866;--on-wa:#0B0907;
  color-scheme:dark}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--body);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit}
img{max-width:100%;display:block}
h1,h2,h3{margin:0;font-family:var(--display);font-stretch:125%;font-weight:800;line-height:.92;letter-spacing:-.02em;text-wrap:balance}
p{margin:0}
:focus-visible{outline:3px solid var(--signal);outline-offset:3px}
.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gut)}
.mono{font-family:var(--mono);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase}
.eyebrow{font-family:var(--mono);font-size:.75rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:.6rem}
.eyebrow::before{content:"";width:10px;height:10px;background:var(--signal);flex:none}
.skip{position:absolute;left:1rem;top:-100px;background:var(--signal);color:var(--on-signal);padding:.6rem 1rem;z-index:100;font-weight:700}
.skip:focus{top:1rem}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:52px;padding:0 1.4rem;border-radius:var(--r);font-family:var(--body);font-weight:700;font-size:1rem;text-decoration:none;border:2px solid transparent;cursor:pointer;transition:transform .2s var(--ease),background .2s,color .2s,border-color .2s;white-space:nowrap}
.btn:hover{transform:translateY(-2px)}
.btn-signal{background:var(--signal);color:var(--on-signal)}
.btn-signal:hover{background:var(--fg);color:var(--bg)}
.btn-line{border-color:var(--fg);color:var(--fg);background:transparent}
.btn-line:hover{background:var(--fg);color:var(--bg)}
.btn-wa{background:var(--wa);color:var(--on-wa)}
.btn svg{flex:none}
.on-earth .btn-line{border-color:var(--on-earth);color:var(--on-earth)}
.on-earth .btn-line:hover{background:var(--on-earth);color:var(--earth)}
.on-earth .btn-signal:hover{background:var(--on-earth);color:var(--earth)}

/* ---------- Nav ---------- */
.nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:68px}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none}
.brand img{height:38px;width:auto}
.wordmark{font-family:var(--display);font-stretch:125%;font-weight:900;font-size:1.35rem;letter-spacing:-.03em;display:flex;align-items:center;gap:.45rem}
.wordmark i{font-style:normal;background:var(--signal);color:var(--on-signal);padding:.05em .3em}
.nav-links{display:flex;align-items:center;gap:1.75rem;list-style:none;margin:0;padding:0}
.nav-links a{text-decoration:none;font-weight:600;font-size:.95rem}
.nav-links a:not(.btn):hover{color:var(--signal-ink)}
.nav-tel{font-family:var(--mono);font-size:.85rem!important;font-weight:500!important}
.nav .btn{min-height:44px}
.burger{display:none;background:none;border:0;padding:.5rem;color:var(--fg);cursor:pointer}
@media (max-width:960px){
  .nav-links{display:none}
  .burger{display:block}
  .nav-links.open{display:flex;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;background:var(--bg);border-bottom:1px solid var(--line);padding:0 var(--gut) 1rem}
  .nav-links.open li a{display:block;padding:1rem 0;border-bottom:1px solid var(--line);font-size:1.15rem}
  .nav-links.open li:last-child a{margin-top:1rem;border:0}
}

/* ---------- Hero ---------- */
.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
#topo{position:absolute;inset:0;width:100%;height:100%;opacity:.55}
.hero-in{position:relative;display:block;padding-block:clamp(3rem,8vw,6.5rem) clamp(2.5rem,5vw,4rem)}
.hero h1{font-size:clamp(3.6rem,12.5vw,11.5rem);font-weight:900;line-height:.84;letter-spacing:-.045em}
.hero h1 .slab{display:inline-block;background:var(--signal);color:var(--on-signal);padding:0 .08em .04em;margin-left:-.04em}
.hero-sub{font-family:var(--body);font-stretch:100%;font-size:clamp(1.15rem,1.8vw,1.45rem);font-weight:600;line-height:1.3;letter-spacing:-.01em;max-width:30ch;margin-top:1.75rem}
.hero-copy{color:var(--muted);max-width:52ch;margin-top:1rem}
.hero-ctas{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}
.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);position:relative;background:color-mix(in srgb,var(--bg) 80%,transparent)}
.fact{padding:1.25rem var(--gut) 1.4rem 0;display:grid;gap:.2rem}
.fact+.fact{padding-left:1.25rem;border-left:1px solid var(--line)}
.fact b{font-family:var(--display);font-stretch:125%;font-size:clamp(1.6rem,3vw,2.4rem);font-weight:800;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}
.fact span{font-size:.9rem;color:var(--muted)}
@media (max-width:900px){
  .hero-in{grid-template-columns:1fr;gap:2rem}
  .facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fact:nth-child(3){padding-left:0;border-left:0}
  .fact:nth-child(n+3){border-top:1px solid var(--line)}
}


/* ---------- Sections ---------- */
section{scroll-margin-top:80px}
.sec{padding-block:clamp(4.5rem,9vw,8rem)}
.sec-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.7fr);gap:2rem;align-items:end;margin-bottom:clamp(2.5rem,5vw,4rem)}
.sec-head h2{font-size:clamp(2.6rem,6.5vw,5.6rem);margin-top:1rem}
.sec-head p{color:var(--muted);max-width:44ch}
@media (max-width:800px){.sec-head{grid-template-columns:1fr}}

/* Services: editorial index */
.svc-list{list-style:none;margin:0;padding:0;border-top:2px solid var(--fg)}
.svc{border-bottom:1px solid var(--line)}
.svc a{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) 11rem 2.5rem;gap:2rem;align-items:center;padding:1.6rem 0;text-decoration:none;position:relative;transition:padding .35s var(--ease),background .25s,color .25s}
.svc h3{font-size:clamp(1.6rem,3.4vw,2.7rem);font-weight:800;letter-spacing:-.03em;line-height:1}
.svc p{color:var(--muted);font-size:.98rem;max-width:46ch}
.svc .unit{font-family:var(--mono);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);padding:.35rem .55rem;justify-self:start;white-space:nowrap;font-variant-numeric:tabular-nums}
.svc .arr{justify-self:end;transition:transform .3s var(--ease)}
.svc a:hover,.svc a:focus-visible{background:var(--signal);color:var(--on-signal);padding-inline:1.25rem}
.svc a:hover p,.svc a:hover .unit,.svc a:focus-visible p,.svc a:focus-visible .unit{color:var(--on-signal);border-color:var(--on-signal)}
.svc a:hover .arr{transform:translateX(4px) rotate(-45deg)}
@media (max-width:860px){
  .svc a{grid-template-columns:minmax(0,1fr) 2rem;gap:.6rem 1rem;padding:1.3rem 0}
  .svc h3{grid-column:1}
  .svc .arr{grid-column:2;grid-row:1}
  .svc p,.svc .unit{grid-column:1/-1}
}


.on-earth{background:var(--earth);color:var(--on-earth)}
.on-earth .eyebrow,.on-earth .sec-head p{color:var(--earth-muted)}

/* ---------- Proceso ---------- */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:2px solid var(--fg);counter-reset:s}
.step{padding:1.5rem 1.5rem 0 0;display:grid;gap:.75rem;align-content:start;counter-increment:s}
.step+.step{padding-left:1.5rem;border-left:1px solid var(--line)}
.step::before{content:counter(s,decimal-leading-zero);font-family:var(--mono);font-size:.8rem;font-weight:600;color:var(--signal-ink)}
.step h3{font-size:1.55rem;letter-spacing:-.02em;line-height:1}
.step p{color:var(--muted);font-size:.95rem}
.step .when{font-family:var(--mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;background:var(--bg-2);padding:.3rem .5rem;justify-self:start}
@media (max-width:860px){.steps{grid-template-columns:1fr 1fr;row-gap:2rem}.step:nth-child(3){padding-left:0;border-left:0}}
@media (max-width:520px){.steps{grid-template-columns:1fr}.step,.step+.step{padding:1.25rem 0 0;border-left:0;border-top:1px solid var(--line)}.step:first-child{border-top:0}}

/* ---------- Clientes ---------- */
.clients{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:2px solid var(--fg)}
.client{display:grid;gap:.35rem;padding:1.4rem 1.25rem 1.5rem 0;border-bottom:1px solid var(--line)}
.client b{font-family:var(--display);font-stretch:115%;font-size:clamp(1.15rem,1.9vw,1.5rem);font-weight:800;letter-spacing:-.02em;line-height:1.05}
.client small{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
@media (max-width:860px){.clients{grid-template-columns:1fr 1fr}}

/* ---------- Nosotros ---------- */
.about{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,6vw,6rem)}
.about h2{font-size:clamp(2.6rem,6vw,5.2rem)}
.about-body{display:grid;gap:1.25rem;align-content:start;color:var(--muted);font-size:1.05rem;max-width:56ch}
.about-body strong{color:var(--fg)}
.quote{font-family:var(--display);font-stretch:110%;font-size:clamp(1.3rem,2.2vw,1.7rem);font-weight:700;line-height:1.2;letter-spacing:-.015em;color:var(--fg);padding-top:1.25rem;border-top:2px solid var(--fg)}
.quote cite{display:block;font-style:normal;font-family:var(--mono);font-size:.75rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:.9rem}
.fleet{margin-top:2rem;border:1px solid var(--line);background:var(--paper)}
.fleet-h{font-family:var(--mono);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;padding:.8rem 1rem;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}
.fleet ul{list-style:none;margin:0;padding:0}
.fleet li{display:flex;justify-content:space-between;gap:1rem;padding:.8rem 1rem;border-bottom:1px dashed var(--line);font-weight:600}
.fleet li:last-child{border:0}
.fleet li span{font-family:var(--mono);font-size:.75rem;font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;text-align:right}
@media (max-width:860px){.about{grid-template-columns:1fr}}

/* ---------- Trabajos ---------- */
.ig-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.ig-grid a{position:relative;aspect-ratio:1;overflow:hidden;background:var(--bg-2);max-width:100%}
.ig-grid img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.ig-grid a:hover img{transform:scale(1.05)}
.ig-grid a:first-child{grid-column:span 2;grid-row:span 2}
.ig-empty{border:1px solid var(--line);background:var(--paper);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.5rem;align-items:center;padding:clamp(1.5rem,4vw,2.5rem)}
.ig-empty h3{font-size:clamp(1.6rem,3.2vw,2.4rem)}
.ig-empty p{color:var(--muted);margin-top:.6rem;max-width:52ch}
.ig-links{display:flex;gap:.75rem;flex-wrap:wrap}
@media (max-width:700px){.ig-grid{grid-template-columns:1fr 1fr}.ig-empty{grid-template-columns:1fr}}

/* ---------- Cotizador ---------- */
.quote-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(1.5rem,4vw,3rem);align-items:start}
.qform{display:grid;gap:2.25rem}
.qstep{border:0;margin:0;padding:0;display:grid;gap:.9rem;min-width:0}
.qstep legend{padding:0;font-family:var(--display);font-stretch:115%;font-weight:800;font-size:1.45rem;letter-spacing:-.02em;display:flex;gap:.75rem;align-items:baseline;margin-bottom:.9rem}
.qstep legend span{font-family:var(--mono);font-size:.78rem;font-weight:600;color:var(--signal)}
.chips{display:flex;flex-wrap:wrap;gap:.5rem}
.chip{position:relative}
.chip input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.chip span{display:inline-flex;align-items:center;min-height:46px;padding:0 1rem;border:1.5px solid var(--earth-line);color:var(--on-earth);font-weight:600;font-size:.95rem;border-radius:var(--r);transition:background .15s,border-color .15s,color .15s;cursor:pointer}
.chip input:hover+span{border-color:var(--on-earth)}
.chip input:checked+span{background:var(--signal);border-color:var(--signal);color:var(--on-signal)}
.chip input:focus-visible+span{outline:3px solid var(--signal);outline-offset:2px}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.field{display:grid;gap:.4rem;min-width:0}
.field.full{grid-column:1/-1}
.field label{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--earth-muted)}
.field input,.field textarea{width:100%;min-height:50px;background:var(--earth-2);border:1.5px solid var(--earth-line);border-radius:var(--r);color:var(--on-earth);font:inherit;font-size:1rem;padding:.7rem .9rem}
.field textarea{min-height:90px;resize:vertical}
.field input::placeholder,.field textarea::placeholder{color:var(--earth-muted);opacity:.8}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--signal)}
@media (max-width:600px){.fields{grid-template-columns:1fr}}
.ticket{position:sticky;top:96px;background:var(--bg);color:var(--fg);font-family:var(--mono);font-size:.82rem;border-radius:var(--r);overflow:hidden}
.ticket-h{background:var(--signal);color:var(--on-signal);padding:1rem 1.1rem;display:flex;justify-content:space-between;align-items:center;font-weight:600;text-transform:uppercase;letter-spacing:.12em}
.ticket dl{margin:0;padding:.4rem 1.1rem}
.ticket dl div{display:grid;grid-template-columns:7.5rem minmax(0,1fr);gap:.75rem;padding:.75rem 0;border-bottom:1px dashed var(--line)}
.ticket dt{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;padding-top:.1rem}
.ticket dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.ticket dd.empty{color:var(--muted);font-weight:400}
.ticket-actions{display:grid;gap:.6rem;padding:1rem 1.1rem 1.2rem}
.ticket-actions .btn{width:100%;font-size:.95rem}
.btn-call{border-color:var(--fg);color:var(--fg);background:transparent}
.btn-call:hover{background:var(--fg);color:var(--bg)}
.btn-call:disabled{opacity:.6;cursor:progress}
.ticket .msg{font-family:var(--body);font-size:.88rem;padding:0 1.1rem 1.1rem;color:var(--muted)}
.ticket .msg.ok{color:var(--fg);font-weight:600}
.legal{font-size:.75rem;color:var(--earth-muted);max-width:60ch}
.legal a{color:var(--on-earth)}
@media (max-width:900px){.quote-grid{grid-template-columns:1fr}.ticket{position:static}}

/* ---------- Contacto + FAQ ---------- */
.contact-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2rem,5vw,5rem)}
.cdata{display:grid;border-top:2px solid var(--fg)}
.cdata div{display:grid;grid-template-columns:8rem minmax(0,1fr);gap:1rem;padding:1.1rem 0;border-bottom:1px solid var(--line);align-items:baseline}
.cdata dt{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.cdata dd{margin:0;font-weight:600;font-size:1.05rem;overflow-wrap:anywhere}
.cdata a{text-decoration-color:var(--signal);text-decoration-thickness:2px;text-underline-offset:4px}
.copy{margin-left:.5rem;font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;background:none;border:1px solid var(--line);color:var(--muted);padding:.25rem .5rem;cursor:pointer;vertical-align:middle}
.copy:hover{border-color:var(--fg);color:var(--fg)}
.faq{border-top:2px solid var(--fg)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1.2rem 0;font-weight:700;font-size:1.1rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--mono);font-size:1.4rem;font-weight:400;color:var(--signal-ink);transition:transform .25s var(--ease)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{color:var(--muted);padding-bottom:1.3rem;max-width:62ch}

/* ---------- Footer ---------- */
footer{background:var(--earth);color:var(--on-earth);padding-block:clamp(3.5rem,7vw,6rem) 2rem}
.f-big{font-family:var(--display);font-stretch:125%;font-weight:900;font-size:clamp(3rem,11vw,10rem);letter-spacing:-.05em;line-height:.85}
.f-big a{text-decoration:none}
.f-big a:hover .slab{background:var(--on-earth)}
.f-big .slab{background:var(--signal);color:var(--on-signal);padding:0 .08em;transition:background .2s}
.f-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:2rem;margin-top:clamp(3rem,6vw,5rem);padding-top:2rem;border-top:1px solid var(--earth-line)}
.f-grid h4{margin:0 0 .9rem;font-family:var(--mono);font-size:.72rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--earth-muted)}
.f-grid ul{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.f-grid a{text-decoration:none}
.f-grid a:hover{color:var(--signal)}
.f-grid p{color:var(--earth-muted);font-size:.95rem;max-width:36ch}
.f-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-top:3rem;padding-top:1.25rem;border-top:1px solid var(--earth-line);font-size:.8rem;color:var(--earth-muted)}
.f-bottom a{color:var(--on-earth)}
@media (max-width:860px){.f-grid{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.f-grid{grid-template-columns:1fr}}

/* ---------- Floating WA + mobile bar ---------- */
.fab{position:fixed;right:1.25rem;bottom:calc(1.25rem + env(safe-area-inset-bottom,0px));z-index:40;width:60px;height:60px;border-radius:50%;background:var(--wa);color:var(--on-wa);display:grid;place-items:center;box-shadow:0 10px 30px #0000004d;transition:transform .2s var(--ease)}
.fab:hover{transform:scale(1.07)}
.mbar{display:none}
@media (max-width:700px){
  .fab{display:none}
  .mbar{display:grid;grid-template-columns:1fr 1fr;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:40;padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px));background:var(--bg);border-top:1px solid var(--line)}
  .mbar .btn{min-height:48px;font-size:.95rem}
  footer{padding-bottom:6rem}
}


/* ---------- Motion ---------- */
.rise{animation:rise .9s var(--ease) both}
.rise.d1{animation-delay:1.53s}.rise.d2{animation-delay:1.61s}.rise.d3{animation-delay:1.69s}
@keyframes rise{from{transform:translateY(24px)}to{transform:none}}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

/* =========================================================
   Páginas internas (servicios, zonas, guías, empresas)
   ========================================================= */
.crumbs{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;list-style:none;margin:0;padding:1.25rem 0 0;font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.crumbs a{text-decoration:none}
.crumbs a:hover{color:var(--signal-ink)}
.crumbs li+li::before{content:"/";margin-right:.5rem;color:var(--line)}
.crumbs [aria-current]{color:var(--fg)}

.sp-hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.sp-hero #topo{opacity:.4}
.sp-hero-in{position:relative;padding-block:clamp(2.5rem,6vw,5rem) clamp(2.5rem,5vw,4rem)}
.sp-hero h1{font-size:clamp(2.6rem,7.5vw,6.6rem);font-weight:900;letter-spacing:-.04em;line-height:.9;margin-top:1.25rem;max-width:14ch}
.sp-hero h1.long{max-width:18ch;font-size:clamp(2.4rem,6vw,5.2rem)}
.sp-intro{font-size:clamp(1.08rem,1.5vw,1.25rem);line-height:1.5;color:var(--muted);max-width:60ch;margin-top:1.5rem}
.sp-ctas{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}
.promise{display:flex;flex-wrap:wrap;gap:.5rem 1.75rem;margin:2rem 0 0;padding:1rem 0 0;border-top:1px solid var(--line);list-style:none;font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}
.promise li{display:flex;align-items:center;gap:.55rem}
.promise li::before{content:"";width:8px;height:8px;background:var(--signal)}

.sp-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,380px);gap:clamp(2rem,6vw,6rem);align-items:start}
.prose{min-width:0;display:grid;gap:1.15rem;font-size:1.05rem;color:var(--muted)}
.prose>*{max-width:720px}
.prose strong{color:var(--fg);font-weight:600}
.prose a{color:var(--fg);text-decoration-color:var(--signal);text-decoration-thickness:2px;text-underline-offset:3px}
.prose h2{color:var(--fg);font-size:clamp(1.6rem,3vw,2.35rem);font-stretch:118%;letter-spacing:-.025em;line-height:1;margin-top:1.75rem;padding-top:1.25rem;border-top:2px solid var(--fg)}
.prose h2:first-child{margin-top:0}
.prose ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.prose ul li{position:relative;padding:.8rem 0 .8rem 1.45rem;border-bottom:1px solid var(--line);color:var(--fg)}
.prose ul li::before{content:"";position:absolute;left:0;top:calc(.8rem + .55em);width:8px;height:8px;background:var(--signal)}
.prose .formula{font-family:var(--mono);font-size:1rem;font-weight:600;color:var(--fg);background:var(--paper);border:1px solid var(--line);padding:1.1rem 1.25rem;letter-spacing:.02em}
.tbl{overflow-x:auto;border-top:2px solid var(--fg);max-width:100%}
.tbl table{width:100%;border-collapse:collapse;font-size:.95rem;min-width:520px}
.tbl th{font-family:var(--mono);font-size:.72rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:left;padding:.8rem .75rem .8rem 0;border-bottom:1px solid var(--line)}
.tbl td{padding:.85rem .75rem .85rem 0;border-bottom:1px solid var(--line);color:var(--fg);vertical-align:top}

.sp-aside{position:sticky;top:96px;display:grid;gap:2rem}
.quick{background:var(--earth);color:var(--on-earth);padding:1.5rem;display:grid;gap:1rem;border-radius:var(--r)}
.quick h2{font-size:1.6rem;font-stretch:115%;letter-spacing:-.02em;line-height:1}
.quick p{color:var(--earth-muted);font-size:.95rem}
.quick .btn{width:100%}
.quick .tel{font-family:var(--mono);font-size:.85rem;color:var(--on-earth);text-align:center}
.quick .tel a{color:var(--on-earth)}
.sp-aside .faq summary{font-size:1rem}
.sp-aside .faq details p{font-size:.95rem}
@media (max-width:960px){.sp-body{grid-template-columns:1fr}.sp-aside{position:static}}

/* Calculadora */
.calc-band{background:var(--earth);color:var(--on-earth)}
.calc-box{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(1.5rem,4vw,3rem);align-items:start}
.calc-box h2{font-size:clamp(2.2rem,5vw,4rem);margin-top:1rem}
.calc-box>div>p{color:var(--earth-muted);margin-top:1rem;max-width:56ch}
.calc-fields{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;margin-top:2rem}
.calc-fields label{display:grid;gap:.4rem;font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--earth-muted);min-width:0}
.calc-fields input,.calc-fields select{width:100%;min-height:50px;background:var(--earth-2);border:1.5px solid var(--earth-line);border-radius:var(--r);color:var(--on-earth);font:inherit;font-family:var(--body);font-size:1rem;letter-spacing:0;text-transform:none;padding:.7rem .9rem}
.calc-fields input:focus,.calc-fields select:focus{outline:none;border-color:var(--signal)}
.calc-out{background:var(--bg);color:var(--fg);padding:1.5rem;border-radius:var(--r);display:grid;gap:.9rem}
.calc-big{display:flex;align-items:baseline;gap:.5rem;font-family:var(--display);font-stretch:125%;font-weight:900;font-size:clamp(3.5rem,8vw,5.5rem);letter-spacing:-.05em;line-height:.9;font-variant-numeric:tabular-nums}
.calc-big small{font-family:var(--mono);font-stretch:100%;font-size:1rem;font-weight:600;letter-spacing:.06em;color:var(--muted)}
.calc-line{font-size:.95rem;color:var(--muted)}
.calc-line strong{color:var(--fg)}
.calc-note{font-size:.8rem;color:var(--muted);border-top:1px dashed var(--line);padding-top:.8rem}
.wa-btn-sp{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:52px;padding:0 1.4rem;border-radius:var(--r);background:var(--wa);color:var(--on-wa);font-weight:700;text-decoration:none;transition:transform .2s var(--ease)}
.wa-btn-sp:hover{transform:translateY(-2px)}
@media (max-width:860px){.calc-box{grid-template-columns:1fr}}
@media (max-width:480px){.calc-fields{grid-template-columns:1fr}.calc-fields label[style]{grid-column:auto!important}}

/* Fotos de obra */
.ig-strip-head{display:flex;justify-content:space-between;align-items:end;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}
.ig-strip-head h2{font-size:clamp(1.8rem,3.5vw,2.8rem)}
.ig-strip-head a{font-family:var(--mono);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--fg);text-decoration-color:var(--signal);text-decoration-thickness:2px;text-underline-offset:4px}
.ig-strip-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;min-height:80px}
.ig-strip-grid a{display:block;aspect-ratio:1;overflow:hidden;background:var(--bg-2);max-width:100%}
.ig-strip-grid img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.ig-strip-grid a:hover img{transform:scale(1.05)}
.ig-strip-msg{grid-column:1/-1;border:1px solid var(--line);background:var(--paper);padding:1.5rem;color:var(--muted)}
.ig-strip-msg a{display:inline;aspect-ratio:auto;background:none;color:var(--fg);font-weight:700}
@media (max-width:768px){.ig-strip-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Zonas */
.zones{display:grid;grid-template-columns:minmax(0,.6fr) minmax(0,1.4fr);gap:2rem;align-items:start;padding-block:2rem;border-top:2px solid var(--fg)}
.zones h2{font-size:1.6rem;font-stretch:115%;letter-spacing:-.02em}
.zone-list{display:flex;flex-wrap:wrap;gap:.5rem}
.zone{font-family:var(--mono);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;padding:.5rem .75rem;border:1px solid var(--line);color:var(--muted);text-decoration:none;border-radius:var(--r)}
a.zone{color:var(--fg);border-color:var(--fg)}
a.zone:hover{background:var(--signal);border-color:var(--signal);color:var(--on-signal)}
@media (max-width:700px){.zones{grid-template-columns:1fr}}

/* CTA */
.cta-band{background:var(--earth);color:var(--on-earth)}
.cta-in{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:2rem;align-items:end}
.cta-in h2{font-size:clamp(2.4rem,6vw,5rem)}
.cta-in p{color:var(--earth-muted);margin-top:1.25rem;max-width:50ch}
.cta-actions{display:grid;gap:.75rem}
.cta-actions .btn{width:100%}
@media (max-width:860px){.cta-in{grid-template-columns:1fr}}

/* Relacionados */
.related .svc a{grid-template-columns:minmax(0,1fr) 2.5rem;padding-block:1.25rem}
.related .svc h3{font-size:clamp(1.4rem,2.8vw,2.1rem)}

/* Legal */
.legal-doc{max-width:760px}
.legal-doc .updated{font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}

.f-grid-5{grid-template-columns:1.4fr repeat(4,minmax(0,1fr))}
@media (max-width:1060px){.f-grid-5{grid-template-columns:1fr 1fr 1fr}}
@media (max-width:620px){.f-grid-5{grid-template-columns:1fr 1fr}}
@media (max-width:420px){.f-grid-5{grid-template-columns:1fr}}

/* ---------- Movimiento: entrada de página y aparición al desplazarse ---------- */
@keyframes gmz-up{from{opacity:0;transform:translate3d(0,22px,0)}to{opacity:1;transform:none}}
@keyframes gmz-fade{from{opacity:0}to{opacity:1}}
.nav{animation:gmz-fade .7s ease both}
.rise{animation:gmz-up .7s var(--ease) .06s both}
h1.rise{animation-name:rise}
.rise.d1{animation-delay:.14s}.rise.d2{animation-delay:.24s}.rise.d3{animation-delay:.34s}
.facts>*{animation:gmz-up .7s var(--ease) both}
.facts>:nth-child(1){animation-delay:.42s}.facts>:nth-child(2){animation-delay:.5s}.facts>:nth-child(3){animation-delay:.58s}.facts>:nth-child(4){animation-delay:.66s}
.sp-hero-in>*{animation:gmz-up .7s var(--ease) both}
.sp-hero-in>h1{animation-name:rise}
.sp-hero-in>:nth-child(2){animation-delay:.08s}.sp-hero-in>:nth-child(3){animation-delay:.16s}.sp-hero-in>:nth-child(4){animation-delay:.24s}.sp-hero-in>:nth-child(5){animation-delay:.32s}.sp-hero-in>:nth-child(n+6){animation-delay:.4s}
html.mo .rv{opacity:0;transform:translate3d(0,28px,0)}
html.mo .rv.in{opacity:1;transform:none;transition:opacity .7s var(--ease),transform .7s var(--ease)}
@media (prefers-reduced-motion:reduce){.nav,.rise,.facts>*,.sp-hero-in>*{animation:none!important}html.mo .rv{opacity:1;transform:none;transition:none}}
@media (max-width:520px){.crumbs{flex-wrap:nowrap;letter-spacing:.06em}.crumbs li{white-space:nowrap}.crumbs li:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis}}
@media (max-width:400px){.btn{white-space:normal;text-align:center;padding:.6rem 1rem;line-height:1.2}}
.legal-doc,.prose{overflow-wrap:anywhere}

@media (max-width:860px){.contact-grid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:480px){.cdata div{grid-template-columns:minmax(0,1fr);gap:.35rem}}
