/* Fuentes propias (Archivo e IBM Plex Mono, licencia OFL). Íconos: Font Awesome Free 6.5.1
   como SVG en línea (licencia CC BY 4.0, https://fontawesome.com/license/free). */
@font-face{font-family:'Archivo';font-style:normal;font-weight:300 800;font-stretch:75% 125%;font-display:swap;src:url(../fonts/archivo-300-800.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/ibm-plex-mono-400.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/ibm-plex-mono-500.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}

/* ============================================================
   BLOQUE 0 — SISTEMA BASE
   Dirección: documento técnico con fotografía de obra.
   Base clara (José pidió que no sea fondo negro), cortada por
   bandas fotográficas a sangre que le dan ritmo.
   Mono solo para dato verificable. El rojo marca, no rellena.
   ============================================================ */
:root{
  --step--2: clamp(0.72rem, 0.70rem + 0.10vw, 0.78rem);
  --step--1: clamp(0.83rem, 0.80rem + 0.15vw, 0.90rem);
  --step-0:  clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
  --step-1:  clamp(1.28rem, 1.16rem + 0.55vw, 1.60rem);
  --step-2:  clamp(1.70rem, 1.44rem + 1.30vw, 2.40rem);
  --step-3:  clamp(2.00rem, 1.62rem + 2.00vw, 3.50rem);
  --step-4:  clamp(2.45rem, 1.80rem + 3.20vw, 4.35rem);
  --step-5:  clamp(2.90rem, 1.70rem + 4.40vw, 5.00rem);

  --space-2xs:0.5rem;  --space-xs:0.75rem; --space-s:1.25rem;
  --space-m:2rem;      --space-l:3.25rem;  --space-xl:5.25rem;
  --space-2xl:8.5rem;  --space-3xl:13rem;

  --paper:#F4F1EB;
  --surface:#FBF9F5;
  --ink:#141318;
  --ink-2:#26232B;
  --accent:#D20A02;
  --accent-deep:#9C0700;
  --muted:#6B635F;
  --line:rgba(20,19,24,0.14);
  --line-soft:rgba(20,19,24,0.08);
  --line-strong:rgba(20,19,24,0.34);
  --line-rev:rgba(244,241,235,0.18);
  --whatsapp:#25D366;

  --font:'Archivo', sans-serif;
  --mono:'IBM Plex Mono', ui-monospace, monospace;

  --ease-out:cubic-bezier(0.16,1,0.3,1);
  --ease-in-out:cubic-bezier(0.65,0,0.35,1);

  --nav-h:88px;
  --bar-h:38px;
  --gutter:max(5vw, calc((100vw - 1320px) / 2));
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion: no-preference){ html{scroll-behavior:smooth} }

body{
  background:var(--paper);color:var(--ink);
  font-family:var(--font);font-size:var(--step-0);font-weight:400;line-height:1.62;
  overflow-x:clip;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  font-synthesis-weight:none;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}

h1,h2,h3,h4{
  font-family:var(--font);font-weight:600;line-height:1.02;
  letter-spacing:-0.026em;font-stretch:112%;text-wrap:balance;
}
p{text-wrap:pretty}
::selection{background:var(--accent);color:#fff}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

::-webkit-scrollbar{width:10px}
::-webkit-scrollbar-track{background:var(--paper)}
::-webkit-scrollbar-thumb{background:#C9C2B6;border-radius:99px}
::-webkit-scrollbar-thumb:hover{background:var(--muted)}

body::after{
  content:'';position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:0.035;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- PRIMITIVAS ---------- */
.shell{padding-inline:var(--gutter);position:relative;z-index:2}
.sec{padding-block:var(--space-2xl);position:relative}

/* Secciones claras CON fotografía de fondo: la foto se ve y da textura,
   pero el texto sigue leyéndose sobre claro. No es un fondo negro. */
.sec--foto{isolation:isolate}
.sec--foto > .fondo{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.sec--foto > .fondo img{
  width:100%;height:120%;object-fit:cover;opacity:0.22;
  filter:grayscale(0.2) contrast(1.05);
}
.sec--foto > .fondo::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg, var(--paper) 0%, rgba(244,241,235,0.58) 24%,
             rgba(244,241,235,0.58) 76%, var(--paper) 100%);
}
.sec--surface{background:var(--surface)}

.eyebrow{
  font-family:var(--mono);font-size:var(--step--2);font-weight:500;
  text-transform:uppercase;letter-spacing:0.19em;color:var(--muted);
}
.eyebrow .tick{color:var(--accent)}

.sec-head{
  display:grid;grid-template-columns:5.5rem 1fr;gap:var(--space-m);
  align-items:start;margin-bottom:var(--space-xl);
}
.sec-num{
  font-family:var(--mono);font-size:var(--step--2);font-weight:500;letter-spacing:0.16em;
  color:var(--accent);padding-top:0.55rem;border-top:2px solid var(--accent);
}
.sec-title{font-size:var(--step-3);max-width:20ch}
.sec-lead{
  margin-top:var(--space-s);max-width:56ch;color:var(--muted);
  font-size:var(--step-1);line-height:1.45;font-weight:300;letter-spacing:-0.01em;
}
@media (max-width:700px){
  .sec-head{grid-template-columns:1fr;gap:var(--space-s)}
  .sec-num{justify-self:start;border-top:0;border-bottom:2px solid var(--accent);
           padding-top:0;padding-bottom:0.35rem}
}

.ficha{display:grid;gap:0;border-top:1px solid var(--line)}
.ficha div{
  display:grid;grid-template-columns:8.5rem 1fr;gap:var(--space-s);
  padding-block:0.62rem;border-bottom:1px solid var(--line-soft);
}
.ficha dt{
  font-family:var(--mono);font-size:var(--step--2);text-transform:uppercase;
  letter-spacing:0.13em;color:var(--muted);padding-top:0.15rem;
}
.ficha dd{
  font-family:var(--mono);font-size:var(--step--1);
  font-variant-numeric:tabular-nums;line-height:1.5;overflow-wrap:anywhere;
}
@media (max-width:700px){
  .ficha div{grid-template-columns:1fr;gap:0.2rem;padding-block:0.7rem}
}

.btn{
  display:inline-flex;align-items:center;gap:0.65rem;
  font-family:var(--mono);font-size:var(--step--1);font-weight:500;
  letter-spacing:0.08em;text-transform:uppercase;
  padding:1.05rem 1.9rem;border:1px solid var(--ink);
  transition:background 200ms var(--ease-in-out), color 200ms var(--ease-in-out),
             border-color 200ms var(--ease-in-out);
}
.btn .ico{transition:translate 400ms var(--ease-out)}
.btn:hover .ico{translate:4px 0}
.btn--solid{background:var(--accent);border-color:var(--accent);color:#fff}
.btn--solid:hover{background:var(--accent-deep);border-color:var(--accent-deep)}
.btn--line:hover{background:var(--ink);color:var(--paper)}
.btn--rev{border-color:rgba(244,241,235,0.5);color:var(--paper)}
.btn--rev:hover{background:var(--paper);color:var(--ink);border-color:var(--paper)}

/* ---------- TOPBAR + NAV ---------- */
.topbar{
  background:var(--ink);color:rgba(244,241,235,0.72);
  font-family:var(--mono);font-size:var(--step--2);letter-spacing:0.05em;
  height:var(--bar-h);display:flex;align-items:center;
}
.topbar .shell{display:flex;align-items:center;justify-content:space-between;gap:var(--space-m);width:100%}
.topbar-sedes{display:flex;gap:var(--space-m)}
.topbar a:hover{color:#fff}
.topbar .ico{color:var(--accent);margin-right:0.4rem}
@media (max-width:860px){ .topbar-sedes{display:none} .topbar .shell{justify-content:center} }

.nav{
  position:sticky;top:0;z-index:100;background:var(--paper);
  border-bottom:1px solid var(--line);transition:box-shadow 400ms var(--ease-out);
}
.nav.stuck{box-shadow:0 1px 2px rgba(20,19,24,0.04), 0 8px 24px rgba(20,19,24,0.06)}
.nav .shell{display:flex;align-items:center;justify-content:space-between;height:var(--nav-h);gap:var(--space-m)}
.nav-logo img{height:60px;width:auto}
@media (max-width:700px){ :root{--nav-h:70px} .nav-logo img{height:46px} }
.nav-links{display:flex;gap:var(--space-m);align-items:center}
.nav-links a{
  font-family:var(--mono);font-size:var(--step--2);text-transform:uppercase;
  letter-spacing:0.13em;color:var(--muted);padding-block:0.3rem;
  border-bottom:1px solid transparent;transition:color 200ms, border-color 200ms;
}
.nav-links a:hover{color:var(--ink);border-bottom-color:var(--accent)}
.nav-cta{
  font-family:var(--mono);font-size:var(--step--2);text-transform:uppercase;
  letter-spacing:0.11em;font-weight:500;border:1px solid var(--ink);padding:0.6rem 1.05rem;
  transition:background 200ms, color 200ms;white-space:nowrap;
}
.nav-cta:hover{background:var(--ink);color:var(--paper)}

.burger{display:none;width:2.6rem;height:2.6rem;place-items:center;font-size:1.15rem}
.panel{
  position:fixed;inset:calc(var(--nav-h) + var(--bar-h)) 0 auto 0;z-index:99;
  background:var(--paper);border-bottom:1px solid var(--line);
  padding:var(--space-s) var(--gutter) var(--space-m);display:none;flex-direction:column;
}
.panel[data-abierto]{display:flex}
.panel a{
  font-family:var(--mono);font-size:var(--step--1);text-transform:uppercase;
  letter-spacing:0.13em;padding-block:0.95rem;border-bottom:1px solid var(--line-soft);
}
.panel a:last-child{border-bottom:0}
@media (max-width:1000px){
  .nav-links{display:none} .nav-cta{display:none} .burger{display:grid}
}
@media (min-width:1001px){ .panel{display:none !important} }

/* ---------- HERO ---------- */
.hero{
  display:grid;grid-template-columns:1.06fr 0.94fr;
  min-height:calc(100svh - var(--nav-h) - var(--bar-h));
  border-bottom:1px solid var(--line);
}
.hero-type{
  display:flex;flex-direction:column;justify-content:center;
  padding:var(--space-l) var(--space-xl) var(--space-l) var(--gutter);
}
.hero h1{
  font-size:var(--step-4);font-weight:700;font-stretch:118%;
  letter-spacing:-0.035em;line-height:0.98;margin-top:var(--space-s);max-width:15ch;
}
.hero-sub{
  margin-top:var(--space-m);max-width:46ch;color:var(--muted);
  font-size:var(--step-1);font-weight:300;line-height:1.44;letter-spacing:-0.012em;
}
.hero-rule{width:100%;height:1px;background:var(--line);margin-block:var(--space-m)}
.hero-audit{display:flex;flex-wrap:wrap;gap:var(--space-s) var(--space-m);align-items:baseline}
.hero-audit .lbl{
  font-family:var(--mono);font-size:var(--step--2);text-transform:uppercase;
  letter-spacing:0.16em;color:var(--muted);
}
.hero-audit .org{
  font-family:var(--mono);font-size:var(--step--1);font-weight:500;
  letter-spacing:0.02em;position:relative;padding-left:0.95rem;
}
.hero-audit .org::before{
  content:'';position:absolute;left:0;top:0.5em;width:5px;height:5px;background:var(--accent);
}
.hero-cta{margin-top:var(--space-m);display:flex;flex-wrap:wrap;gap:var(--space-s)}

/* v7 · hero solar: titular de 6 palabras en dos golpes, "no." en rojo */
.hero-type{position:relative;overflow:hidden;isolation:isolate}
.hero h1{font-size:var(--step-5)}
.hero h1 .mask{display:block}
.hero h1 em{font-style:normal;color:var(--accent)}
@media (prefers-reduced-motion: no-preference){
  .js-anim .hero h1 .mask + .mask > span{transition-delay:140ms}
}
/* Ghost tipográfico: el kWh que se paga, detrás del titular y cortado por el borde.
   Pseudo-elemento: es decoración, no texto (no lo leen los lectores de pantalla ni cuenta para el contraste). */
.hero-type[data-ghost]::before{
  content:attr(data-ghost);content:attr(data-ghost) / '';
  position:absolute;right:-0.06em;bottom:-0.22em;z-index:-1;pointer-events:none;user-select:none;
  font-size:clamp(8rem, 21vw, 21rem);font-weight:800;font-stretch:125%;
  letter-spacing:-0.06em;line-height:0.8;color:var(--ink);opacity:0.045;
}

.hero-shot{position:relative;overflow:hidden;background:var(--ink-2);min-height:62svh}
.hero-shot img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:52% 42%;
}
.shot-cap{
  position:absolute;left:0;bottom:0;z-index:2;
  background:rgba(20,19,24,0.86);color:var(--paper);
  padding:0.85rem 1.15rem;max-width:min(94%,30rem);
  font-family:var(--mono);font-size:var(--step--2);line-height:1.6;letter-spacing:0.03em;
  border-top:2px solid var(--accent);
}
.shot-cap b{font-weight:500;color:#fff}
.shot-cap span{color:rgba(244,241,235,0.62)}
@media (max-width:1000px){
  .hero{grid-template-columns:1fr;min-height:0}
  .hero-type{padding:var(--space-xl) var(--gutter)}
  .hero-shot{min-height:70svh;order:2}
}

/* ---------- BANDA FOTOGRÁFICA A SANGRE ---------- */
.banda{position:relative;overflow:hidden;background:var(--ink);isolation:isolate}
.banda-bg{position:absolute;inset:0;z-index:0;overflow:hidden}
.banda-bg img{width:100%;height:126%;object-fit:cover;object-position:center 45%}
/* Overlay liviano: la foto manda, la legibilidad la resuelve el text-shadow */
.banda::before{
  content:'';position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg, rgba(12,11,14,0.74) 0%, rgba(12,11,14,0.42) 40%,
             rgba(12,11,14,0.48) 62%, rgba(12,11,14,0.82) 100%);
}
.banda .shell{padding-block:var(--space-2xl);color:var(--paper)}
.banda h2,.banda p,.banda .eyebrow{text-shadow:0 2px 26px rgba(0,0,0,0.7)}
.banda .eyebrow{color:rgba(244,241,235,0.68)}
.banda h2{font-size:var(--step-3);max-width:20ch;margin-top:var(--space-s)}

/* El desarrollo, con el ritmo corto / corto / largo del framework */
.golpes{margin-top:var(--space-l);max-width:46ch;display:grid;gap:var(--space-s)}
.golpes p{font-size:var(--step-1);font-weight:300;line-height:1.4;color:rgba(244,241,235,0.88)}
.golpes .remate{
  font-size:var(--step-2);font-weight:600;color:var(--paper);
  line-height:1.14;letter-spacing:-0.022em;font-stretch:112%;
  border-left:2px solid var(--accent);padding-left:var(--space-s);margin-top:var(--space-xs);
}
.banda-cap{
  position:absolute;right:0;bottom:0;z-index:2;
  background:rgba(20,19,24,0.8);color:rgba(244,241,235,0.72);
  font-family:var(--mono);font-size:var(--step--2);letter-spacing:0.05em;
  padding:0.55rem 0.9rem;
}
@media (max-width:860px){ .banda-cap{display:none} }

/* ---------- FRANJA DE DATOS ---------- */
.datos{border-bottom:1px solid var(--line)}
.datos-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.datos-grid > div{padding:var(--space-l) var(--space-m);border-left:1px solid var(--line)}
.datos-grid > div:first-child{border-left:0;padding-left:0}
.datos .n{
  display:block;font-size:var(--step-3);font-weight:700;font-stretch:118%;
  letter-spacing:-0.035em;line-height:1;font-variant-numeric:tabular-nums;
}
.datos .d{
  display:block;margin-top:0.7rem;font-family:var(--mono);font-size:var(--step--2);
  text-transform:uppercase;letter-spacing:0.14em;color:var(--muted);line-height:1.5;
}
@media (max-width:860px){
  .datos-grid{grid-template-columns:repeat(2,1fr)}
  .datos-grid > div{padding:var(--space-m) var(--space-s)}
  .datos-grid > div:nth-child(3){border-left:0;padding-left:0}
  .datos-grid > div:nth-child(1),.datos-grid > div:nth-child(2){border-bottom:1px solid var(--line)}
}

/* ---------- OBRAS AUDITADAS ---------- */
.obra{
  display:grid;grid-template-columns:5.5rem 1fr;gap:var(--space-m);
  padding-block:var(--space-xl);border-top:1px solid var(--line-strong);
}
.obra:last-of-type{border-bottom:1px solid var(--line-strong)}
.obra-tag{
  font-family:var(--mono);font-size:var(--step--2);font-weight:500;
  letter-spacing:0.16em;color:var(--accent);text-transform:uppercase;padding-top:0.4rem;
}
.obra-body{display:grid;grid-template-columns:1.15fr 1fr;gap:var(--space-xl);align-items:start}
.obra h3{font-size:var(--step-2);max-width:20ch}
.obra p{margin-top:var(--space-s);color:var(--muted);max-width:52ch;font-weight:300}
.obra-ficha{margin-top:var(--space-l)}

.auditores{margin-top:var(--space-l);border-top:2px solid var(--ink);padding-top:var(--space-s)}
.auditores .lbl{
  font-family:var(--mono);font-size:var(--step--2);text-transform:uppercase;
  letter-spacing:0.17em;color:var(--muted);display:block;margin-bottom:var(--space-s);
}
.auditores ul{list-style:none;display:flex;flex-wrap:wrap;gap:0.55rem}
.auditores li{
  font-family:var(--mono);font-size:var(--step--1);font-weight:500;letter-spacing:0.03em;
  border:1px solid var(--line-strong);padding:0.5rem 0.85rem;
  background:rgba(251,249,245,0.75);
}
.obra-shot{position:relative;overflow:hidden;background:var(--ink-2);aspect-ratio:4/3}
.obra-shot img{width:100%;height:100%;object-fit:cover}

.cifras{
  display:grid;grid-template-columns:1fr 1fr;
  border:1px solid var(--line-strong);background:rgba(251,249,245,0.75);
}
.cifras > div{padding:var(--space-m);border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.cifras > div:nth-child(2n){border-right:0}
.cifras > div:nth-child(n+3){border-bottom:0}
.cifras .k{
  display:block;font-size:var(--step-3);font-weight:700;font-stretch:118%;
  letter-spacing:-0.035em;line-height:1;font-variant-numeric:tabular-nums;
}
.cifras .v{
  display:block;margin-top:0.6rem;font-family:var(--mono);font-size:var(--step--2);
  text-transform:uppercase;letter-spacing:0.13em;color:var(--muted);
}
@media (max-width:1000px){
  .obra{grid-template-columns:1fr;gap:var(--space-s)}
  .obra-body{grid-template-columns:1fr;gap:var(--space-l)}
}
/* En 412px dos columnas de cifras no entran: "132 kV" es incortable */
@media (max-width:700px){
  .cifras{grid-template-columns:1fr}
  .cifras > div{border-right:0;border-bottom:1px solid var(--line);padding:var(--space-s)}
  .cifras > div:last-child{border-bottom:0}
}

/* ---------- REGISTRO ---------- */
.registro{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-l) var(--space-xl)}
.placa{display:grid;grid-template-columns:2.6rem 1fr;gap:var(--space-s);align-items:start}
.placa-n{
  font-family:var(--mono);font-size:var(--step--2);font-weight:500;letter-spacing:0.14em;
  color:var(--muted);padding-top:0.35rem;border-top:1px solid var(--line-strong);
}
.placa-foto{
  display:block;width:100%;position:relative;overflow:hidden;background:var(--ink-2);
  border:0;padding:0;cursor:zoom-in;
}
.placa-foto img{width:100%;height:100%;object-fit:cover;transition:scale 600ms var(--ease-out)}
.placa-foto:hover img{scale:1.035}
.placa-foto::after{
  content:'';
  position:absolute;right:0.7rem;bottom:0.7rem;z-index:2;
  width:2rem;height:2rem;display:grid;place-items:center;
  background:rgba(20,19,24,0.82) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' fill='%23F4F1EB'%3E%3Cpath d='M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM184 296c0 13.3 10.7 24 24 24s24-10.7 24-24V232h64c13.3 0 24-10.7 24-24s-10.7-24-24-24H232V120c0-13.3-10.7-24-24-24s-24 10.7-24 24v64H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h64v64z'/%3E%3C/svg%3E") center/0.72rem 0.72rem no-repeat;
  opacity:0;transition:opacity 200ms;
}
.placa-foto:hover::after,.placa-foto:focus-visible::after{opacity:1}
.placa-kicker{
  display:block;margin-top:var(--space-s);font-family:var(--mono);font-size:var(--step--2);
  text-transform:uppercase;letter-spacing:0.14em;color:var(--accent);
}
.placa h3{font-size:var(--step-1);margin-top:0.5rem;font-weight:600}
.placa .ficha{margin-top:var(--space-s)}
.placa .ficha div{grid-template-columns:6.2rem 1fr;padding-block:0.42rem}
@media (max-width:860px){ .registro{grid-template-columns:1fr} }
@media (max-width:700px){ .placa .ficha div{grid-template-columns:1fr} }

/* ---------- SERVICIOS ---------- */
.rubros{border-top:1px solid var(--line-strong)}
.rubro{
  display:grid;grid-template-columns:5.5rem minmax(0,22ch) 1fr;gap:var(--space-m);
  padding-block:var(--space-m);border-bottom:1px solid var(--line);
  transition:background 200ms var(--ease-in-out);
}
.rubro:hover{background:rgba(251,249,245,0.85)}
.rubro .num{
  font-family:var(--mono);font-size:var(--step--2);font-weight:500;
  letter-spacing:0.16em;color:var(--accent);padding-top:0.42rem;
}
.rubro h3{font-size:var(--step-1);font-weight:600;padding-top:0.15rem}
.rubro p{color:var(--muted);font-weight:300;max-width:62ch}
@media (max-width:860px){
  .rubro{grid-template-columns:3.2rem 1fr;gap:var(--space-s)}
  .rubro p{grid-column:2}
}

/* ---------- MÉTODO ---------- */
.metodo{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xl);align-items:center}
.pasos{border-top:1px solid var(--line-strong)}
.paso{
  padding-block:var(--space-m);border-bottom:1px solid var(--line);
  display:grid;grid-template-columns:2.6rem 1fr;gap:var(--space-s);
}
.paso .p{
  font-family:var(--mono);font-size:var(--step--2);font-weight:500;color:var(--accent);
  letter-spacing:0.14em;padding-top:0.4rem;
}
.paso h3{font-size:var(--step-1);font-weight:600}
.paso p{margin-top:0.45rem;color:var(--muted);font-weight:300}
.metodo-shot{position:relative;overflow:hidden;background:var(--ink-2);aspect-ratio:3/4}
.metodo-shot img{width:100%;height:100%;object-fit:cover;object-position:center 38%}
@media (max-width:1000px){ .metodo{grid-template-columns:1fr;gap:var(--space-l)} }

/* ---------- COBERTURA ---------- */
.sedes{
  display:grid;grid-template-columns:1fr 1fr;
  border:1px solid var(--line-strong);background:rgba(251,249,245,0.75);
}
.sede{padding:var(--space-l);border-right:1px solid var(--line)}
.sede:last-child{border-right:0}
.sede .rol{
  font-family:var(--mono);font-size:var(--step--2);text-transform:uppercase;
  letter-spacing:0.16em;color:var(--accent);
}
.sede h3{font-size:var(--step-2);margin-top:0.6rem}
.sede address{
  font-style:normal;margin-top:var(--space-s);color:var(--muted);
  font-family:var(--mono);font-size:var(--step--1);line-height:1.65;
}
.sede .maplink{
  display:inline-flex;align-items:center;gap:0.5rem;margin-top:var(--space-s);
  font-family:var(--mono);font-size:var(--step--2);text-transform:uppercase;
  letter-spacing:0.12em;border-bottom:1px solid var(--line-strong);padding-bottom:0.2rem;
  transition:color 200ms, border-color 200ms;
}
.sede .maplink:hover{color:var(--accent);border-bottom-color:var(--accent)}
.provincias{margin-top:var(--space-l);display:flex;flex-wrap:wrap;gap:0.55rem}
.provincias li{
  list-style:none;font-family:var(--mono);font-size:var(--step--1);
  border:1px solid var(--line);padding:0.5rem 0.85rem;color:var(--muted);
  background:rgba(251,249,245,0.6);
}
@media (max-width:860px){
  .sedes{grid-template-columns:1fr}
  .sede{border-right:0;border-bottom:1px solid var(--line);padding:var(--space-m)}
  .sede:last-child{border-bottom:0}
}

/* ---------- CIERRE ---------- */
.cierre{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xl);align-items:end}
.cierre h2{
  font-size:var(--step-4);font-weight:700;font-stretch:118%;
  letter-spacing:-0.034em;max-width:15ch;
}
.cierre .nota{
  margin-top:var(--space-m);max-width:44ch;font-weight:300;
  font-size:var(--step-1);line-height:1.45;color:rgba(244,241,235,0.84);
}
@media (max-width:1000px){ .cierre{grid-template-columns:1fr;gap:var(--space-l);align-items:start} }

/* ---------- FOOTER ---------- */
footer{background:var(--ink);color:rgba(244,241,235,0.62);padding-block:var(--space-xl) var(--space-l)}
footer .f-h{
  font-family:var(--mono);font-size:var(--step--2);text-transform:uppercase;
  letter-spacing:0.16em;color:rgba(244,241,235,0.62);font-weight:500;
  margin-bottom:var(--space-s);font-stretch:100%;
}
.f-grid{display:grid;grid-template-columns:1.2fr 1.3fr 1.1fr 0.8fr;gap:var(--space-l)}
.f-logo img{height:58px;width:auto;margin-bottom:var(--space-s)}
.f-desc{max-width:40ch;font-size:var(--step--1);line-height:1.7;font-weight:300}
.f-list{display:flex;flex-direction:column;gap:0.6rem;font-family:var(--mono);font-size:var(--step--1)}
.f-list a,.f-list span{display:flex;align-items:center;gap:0.6rem;transition:color 200ms;overflow-wrap:anywhere}
.f-list a:hover{color:#fff}
.f-list .ico{color:var(--accent);width:1rem;text-align:center;flex:none}
.f-bot{
  margin-top:var(--space-xl);padding-top:var(--space-m);border-top:1px solid var(--line-rev);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--space-s);
  font-family:var(--mono);font-size:var(--step--2);color:rgba(244,241,235,0.6);
}
.f-bot a:hover{color:#fff}
@media (max-width:860px){ .f-grid{grid-template-columns:1fr;gap:var(--space-l)} }

.wa{
  position:fixed;right:1.1rem;bottom:1.1rem;z-index:90;
  width:3.4rem;height:3.4rem;display:grid;place-items:center;
  background:var(--whatsapp);color:#fff;font-size:1.5rem;border-radius:50%;
  box-shadow:0 2px 4px rgba(20,19,24,0.14), 0 10px 26px rgba(20,19,24,0.22);
  transition:translate 400ms var(--ease-out);
}
.wa:hover{translate:0 -3px}

/* ---------- 02 · BLOQUES SOLAR / CONVENCIONAL (v7) ---------- */
.bloques{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line-strong)}
.bloque{display:flex;flex-direction:column;padding:var(--space-l) var(--space-l) 0}
.bloque:first-child{padding-left:0;border-right:1px solid var(--line)}
.bloque:last-child{padding-right:0}
.bloque-foto,.bloque-dato{position:relative;aspect-ratio:4/3;margin-bottom:var(--space-m)}
.bloque-foto{overflow:hidden;background:var(--ink-2)}
.bloque-foto img{width:100%;height:100%;object-fit:cover;object-position:center 40%}
.bloque-kicker{
  font-family:var(--mono);font-size:var(--step--2);font-weight:500;
  text-transform:uppercase;letter-spacing:0.16em;color:var(--accent);
}
.bloque-titulo{font-size:var(--step-3);font-weight:700;font-stretch:118%;letter-spacing:-0.032em;margin-top:0.5rem}
.bloque-ficha{margin-top:var(--space-m)}
.bloque-ficha div{grid-template-columns:8rem 1fr}

/* CTA: la mascota señala el botón. El botón se alinea a la altura de la mano. */
.bloque-cta{
  --m-h:clamp(150px, 15vw, 220px);
  margin-top:auto;padding-top:var(--space-l);min-height:calc(var(--m-h) + var(--space-l));
  display:flex;align-items:flex-start;gap:var(--space-s);
}
.bloque-cta .btn{margin-top:calc(var(--m-h) * 0.21 - 1.6rem)}
.mascota{height:var(--m-h);width:auto;flex:none}

/* El 132 kV como placa técnica: la cifra, el dato y el certificado real */
.bloque-dato{
  container-type:inline-size;overflow:hidden;
  display:grid;grid-template-columns:minmax(0,1fr) 34%;gap:var(--space-m);
  background:var(--ink);color:var(--paper);padding:var(--space-m);
}
.bloque-dato-txt{display:flex;flex-direction:column;justify-content:space-between;min-width:0}
.bloque-kv{
  display:block;font-size:var(--step-4);font-size:min(var(--step-5), 12.5cqw);
  font-weight:700;font-stretch:118%;letter-spacing:-0.04em;line-height:0.92;
  font-variant-numeric:tabular-nums;white-space:nowrap;
}
.bloque-kv-cap,.bloque-cert-cap{
  display:block;font-family:var(--mono);font-size:var(--step--2);line-height:1.6;
  letter-spacing:0.06em;color:rgba(244,241,235,0.66);
}
.bloque-kv-cap{margin-top:var(--space-xs);text-transform:uppercase;letter-spacing:0.14em}
.nw{white-space:nowrap}
.bloque-cert{
  align-self:end;rotate:-3deg;background:#fff;
  box-shadow:0 2px 4px rgba(0,0,0,0.28), 0 12px 28px rgba(0,0,0,0.34), 0 30px 64px rgba(0,0,0,0.26);
}
.bloque-cert img{height:auto}
@media (prefers-reduced-motion: no-preference){
  .bloque-cert{transition:rotate 400ms var(--ease-out)}
}
.bloque-cert:hover,.bloque-cert:focus-visible{rotate:0deg}

@media (max-width:900px){
  .bloques{grid-template-columns:1fr}
  .bloque{padding:var(--space-l) 0}
  .bloque:first-child{border-right:0;border-bottom:1px solid var(--line);padding-top:0}
  .bloque:last-child .bloque-cta{min-height:0}
  .bloque:last-child .bloque-cta .btn{margin-top:0}
}
@media (max-width:700px){
  .bloque-cta{--m-h:120px}
  .bloque-cta .btn{padding-inline:1rem;white-space:nowrap}
}

/* ---------- 03 · SERVICIOS GENERALES CON WHATSAPP (v7) ---------- */
.rubros--wa .rubro{grid-template-columns:5.5rem minmax(0,22ch) 1fr auto;align-items:start}
.rubro-wa{
  align-self:center;display:inline-flex;align-items:center;gap:0.5rem;
  font-family:var(--mono);font-size:var(--step--2);font-weight:500;
  text-transform:uppercase;letter-spacing:0.12em;white-space:nowrap;
  border:1px solid var(--line-strong);padding:0.7rem 1rem;background:rgba(251,249,245,0.8);
  transition:background 200ms var(--ease-in-out), color 200ms var(--ease-in-out),
             border-color 200ms var(--ease-in-out);
}
.rubro-wa .ico{color:#128C4A;font-size:1.1em}
.rubro-wa:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.rubro-wa:hover .ico{color:var(--whatsapp)}
@media (max-width:860px){
  .rubros--wa .rubro{grid-template-columns:3.2rem 1fr}
  .rubro-wa{grid-column:2;justify-self:start;margin-top:var(--space-2xs)}
}

/* ---------- 04 · CERTIFICADO DENTRO DE CADA OBRA (v7) ---------- */
.obra-cert{
  margin-top:var(--space-l);padding-top:var(--space-s);border-top:1px solid var(--line);
  display:grid;grid-template-columns:6.5rem 1fr;gap:var(--space-s);align-items:center;
}
.obra-cert-doc{
  background:#fff;rotate:-2deg;
  box-shadow:0 1px 2px rgba(20,19,24,0.10), 0 6px 16px rgba(20,19,24,0.14), 0 16px 34px rgba(20,19,24,0.10);
}
.obra-cert-doc img{height:auto}
.obra .obra-cert p{margin-top:0;font-size:var(--step--1);line-height:1.5;max-width:40ch}
.obra-cert b{display:block;color:var(--ink);font-weight:600}
@media (prefers-reduced-motion: no-preference){
  .obra-cert-doc{transition:rotate 400ms var(--ease-out)}
}
.obra-cert-doc:hover,.obra-cert-doc:focus-visible{rotate:0deg}

.obra-lado{display:flex;flex-direction:column;gap:var(--space-l)}
.obra-lado .obra-cert{margin-top:0}

/* ---------- 05 · CERTIFICADOS Y MATRÍCULAS (v7) ---------- */
.docs-grupo + .docs-grupo{margin-top:var(--space-xl)}
.docs-lbl{
  display:block;font-family:var(--mono);font-size:var(--step--2);font-weight:500;
  text-transform:uppercase;letter-spacing:0.17em;color:var(--muted);
  border-top:2px solid var(--ink);padding-top:var(--space-xs);margin-bottom:var(--space-m);
}
.docs{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-l) var(--space-m)}
.doc-thumb,.doc-plate{aspect-ratio:4/3;border:1px solid var(--line)}
.doc-thumb{background:#fff;padding:var(--space-s)}
.doc-thumb img{width:100%;height:100%;object-fit:contain}
.doc-thumb:hover img{scale:1.02}
.doc-plate{
  container-type:inline-size;background:var(--ink);color:var(--paper);padding:var(--space-m);
  display:flex;flex-direction:column;justify-content:space-between;
}
.doc-n{
  font-size:var(--step-3);font-size:min(var(--step-4), 15cqw);font-weight:700;font-stretch:118%;
  letter-spacing:-0.035em;line-height:0.95;font-variant-numeric:tabular-nums;white-space:nowrap;
}
.doc-plate-cap{
  font-family:var(--mono);font-size:var(--step--2);letter-spacing:0.06em;line-height:1.55;
  color:rgba(244,241,235,0.66);max-width:34ch;
}
.doc-kicker{
  display:block;margin-top:var(--space-s);font-family:var(--mono);font-size:var(--step--2);
  text-transform:uppercase;letter-spacing:0.13em;color:var(--accent);line-height:1.5;
}
.doc h3{
  font-size:var(--step-0);font-weight:600;font-stretch:100%;letter-spacing:-0.005em;
  line-height:1.35;margin-top:0.4rem;text-wrap:pretty;
}
@media (max-width:1000px){ .docs{grid-template-columns:repeat(2,1fr)} }
@media (max-width:600px){
  .docs{grid-template-columns:1fr}
  .obra-cert{grid-template-columns:5.5rem 1fr}
}

/* ---------- 07 · CIERRE Y PIE (v7) ---------- */
.cierre h2 .mask{display:block}
@media (prefers-reduced-motion: no-preference){
  .js-anim .cierre h2 .mask + .mask > span{transition-delay:140ms}
}
/* Los links de la nav dejan la sección a la vista, debajo de la barra fija */
section[id],article[id]{scroll-margin-top:calc(var(--nav-h) + var(--space-s))}
.f-list .f-sede{align-items:flex-start;line-height:1.55}
.f-sede .ico{margin-top:0.25rem}
.f-sede b{font-weight:500;color:rgba(244,241,235,0.9)}
.f-nota{
  margin-top:var(--space-s);font-family:var(--mono);font-size:var(--step--1);
  line-height:1.6;color:rgba(244,241,235,0.62);max-width:36ch;
}
@media (max-width:1100px) and (min-width:861px){ .f-grid{grid-template-columns:1fr 1fr} }

/* Cierre centrado: la única sección simétrica, porque hay una sola acción */
.cierre--centro{display:flex;flex-direction:column;align-items:center;text-align:center}
.cierre--centro h2{max-width:none;margin-top:var(--space-s)}
.cierre--centro .hero-cta{justify-content:center;margin-top:var(--space-l)}
.cierre--centro .nota{margin-top:var(--space-s);font-size:var(--step--1);max-width:46ch}
/* .f-list span es flex con overflow-wrap:anywhere: partía "Tartagal" en "Tartag / al" */
.f-list .f-sede > span{display:block;overflow-wrap:normal}

/* ---------- LIGHTBOX ---------- */
.lb{position:fixed;inset:0;z-index:1000;background:rgba(12,11,14,0.94);display:none;place-items:center;padding:var(--space-m)}
.lb[open]{display:grid}
.lb img{max-width:min(100%,1400px);max-height:82svh;object-fit:contain;width:auto}
.lb figcaption{margin-top:var(--space-s);font-family:var(--mono);font-size:var(--step--1);color:rgba(244,241,235,0.72);text-align:center}
.lb-close{position:absolute;top:1rem;right:1.2rem;color:var(--paper);font-size:1.6rem;width:2.6rem;height:2.6rem;display:grid;place-items:center}

/* ============================================================
   MOVIMIENTO
   Estado base SIEMPRE visible. Se oculta solo bajo .js-anim, que
   el JS agrega recién cuando confirma que va a poder revelarlo.
   ============================================================ */
.js-anim .rise{opacity:0;translate:0 20px}
.js-anim .rise.in{opacity:1;translate:0 0}
@media (prefers-reduced-motion: no-preference){
  .js-anim .rise{transition:opacity 800ms var(--ease-out), translate 800ms var(--ease-out)}
}
@media (prefers-reduced-motion: reduce){
  .js-anim .rise{opacity:1;translate:0 0}
}

/* Revelado por máscara: el titular sube desde detrás de una línea */
.js-anim .mask{overflow:hidden;padding-bottom:0.14em}
.js-anim .mask > span{display:block;translate:0 106%}
.js-anim .mask.in > span{translate:0 0}
@media (prefers-reduced-motion: no-preference){
  .js-anim .mask > span{transition:translate 900ms var(--ease-out)}
}
@media (prefers-reduced-motion: reduce){
  .js-anim .mask > span{translate:0 0}
}

/* Ken Burns del hero y parallax de las fotos de fondo.
   scale y translate por separado: con transform se pisarían entre sí. */
@media (prefers-reduced-motion: no-preference){
  .hero-shot img{animation:kenburns 30s var(--ease-in-out) infinite alternate}
}
@keyframes kenburns{ from{scale:1.005} to{scale:1.075} }

@supports (animation-timeline: view()){
  @media (prefers-reduced-motion: no-preference){
    .banda-bg img,
    .sec--foto > .fondo img{
      animation:parallax linear both;
      animation-timeline:view();
      animation-range:cover 0% cover 100%;
    }
  }
}
@keyframes parallax{ from{translate:0 -9%} to{translate:0 9%} }

.progress{
  position:fixed;top:0;left:0;height:2px;width:100%;transform-origin:0 50%;
  background:var(--accent);z-index:200;scale:0 1;
}
@supports (animation-timeline: scroll()){
  @media (prefers-reduced-motion: no-preference){
    .progress{animation:progreso linear;animation-timeline:scroll(root block)}
  }
}
@keyframes progreso{ from{scale:0 1} to{scale:1 1} }

/* ============ /solar: hero largo y calculadoras ============ */
.hero--solar h1{font-size:var(--step-3);max-width:24ch}
.calc{display:grid;grid-template-columns:1fr 1.15fr;border:1px solid var(--line-strong);background:var(--surface)}
.calc-in{padding:var(--space-l);display:flex;flex-direction:column;justify-content:center;gap:var(--space-s)}
.calc-lbl{
  font-family:var(--mono);font-size:var(--step--2);font-weight:500;
  text-transform:uppercase;letter-spacing:0.16em;color:var(--muted);
}
.calc-num{
  display:flex;align-items:baseline;gap:var(--space-xs);
  border-bottom:2px solid var(--ink);padding-bottom:var(--space-2xs);transition:border-color 200ms;
}
.calc-num:focus-within{border-bottom-color:var(--accent)}
.calc-num input{
  width:4.6ch;flex:none;border:0;background:transparent;color:var(--ink);
  font-family:var(--font);font-size:var(--step-4);font-weight:700;font-stretch:118%;
  letter-spacing:-0.035em;line-height:1;font-variant-numeric:tabular-nums;-moz-appearance:textfield;
}
.calc-num input:focus-visible{outline:none}
.calc-num input::-webkit-outer-spin-button,.calc-num input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.calc-num span{font-family:var(--mono);font-size:var(--step--1);color:var(--muted);white-space:nowrap}
.calc-range{
  -webkit-appearance:none;appearance:none;width:100%;height:4px;border-radius:99px;margin-block:var(--space-s);
  background:linear-gradient(to right, var(--accent) var(--fill, 14%), var(--line-strong) var(--fill, 14%));
}
.calc-range::-webkit-slider-thumb{
  -webkit-appearance:none;width:22px;height:22px;border-radius:50%;cursor:pointer;
  background:var(--ink);border:3px solid var(--surface);
  box-shadow:0 1px 2px rgba(20,19,24,0.2), 0 3px 8px rgba(20,19,24,0.2);
}
.calc-range::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--ink);border:3px solid var(--surface);cursor:pointer}
.calc-hint{font-size:var(--step--1);color:var(--muted);max-width:40ch}
.calc-out{background:var(--ink);color:var(--paper);padding:var(--space-l);display:flex;flex-direction:column;gap:var(--space-m)}
.calc-res{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line-rev)}
.calc-res div{padding-block:var(--space-s);border-bottom:1px solid var(--line-rev);min-width:0}
.calc-res div:nth-child(odd){padding-right:var(--space-s);border-right:1px solid var(--line-rev)}
.calc-res div:nth-child(even){padding-left:var(--space-s)}
.calc-res dt{
  font-family:var(--mono);font-size:var(--step--2);text-transform:uppercase;
  letter-spacing:0.14em;color:rgba(244,241,235,0.6);
}
.calc-res dd{
  margin-top:0.45rem;font-size:var(--step-3);font-weight:700;font-stretch:118%;
  letter-spacing:-0.035em;line-height:1;font-variant-numeric:tabular-nums;white-space:nowrap;
}
.calc-res .u{font-size:0.45em;margin-left:0.25em;letter-spacing:0;font-weight:500;color:rgba(244,241,235,0.7)}
.calc-wa{align-self:flex-start}
.calc-nota{font-family:var(--mono);font-size:var(--step--1);line-height:1.65;color:rgba(244,241,235,0.55);max-width:62ch}
@media (max-width:900px){
  .calc{grid-template-columns:1fr}
  .calc-in,.calc-out{padding:var(--space-m)}
}
@media (max-width:420px){
  .calc-res dd{font-size:var(--step-2)}
}

/* /solar: calculadora de bombeo (tres campos) */
.calc--bombeo .calc-in{gap:var(--space-m);justify-content:flex-start}
.calc-campo{display:flex;flex-direction:column;gap:0.35rem}
.calc-num--s input{font-size:var(--step-3);width:3.6ch}
.calc-campo .calc-range{margin-block:var(--space-xs) var(--space-2xs)}
.calc-campo .calc-hint{font-family:var(--mono);font-size:var(--step--1);letter-spacing:0.02em}
.calc-equipo{border-top:1px solid var(--line-rev);padding-top:var(--space-s);font-size:var(--step-0);line-height:1.4}
.calc-equipo span{
  display:block;margin-bottom:0.3rem;font-family:var(--mono);font-size:var(--step--2);
  text-transform:uppercase;letter-spacing:0.14em;color:rgba(244,241,235,0.6);
}
.calc-equipo b{font-weight:600;color:var(--paper)}

/* 25/9 · Agua hasta 1.000 m³ (4 cifras) y atajo en vacas o hectáreas */
.calc-num--ancho input{width:4.6ch}
.calc-atajo{margin-top:var(--space-2xs);border-top:1px solid var(--line);padding-top:var(--space-xs)}
.calc-atajo summary{
  cursor:pointer;font-family:var(--mono);font-size:var(--step--1);letter-spacing:0.02em;color:var(--ink);
  text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:0.28em;
}
.calc-atajo[open] summary{margin-bottom:var(--space-s)}
.calc-atajo-in{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-s);align-items:end}
.calc-atajo-campo{display:flex;flex-direction:column;gap:0.35rem;min-width:0}
.calc-atajo-campo span{
  font-family:var(--mono);font-size:var(--step--2);font-weight:500;
  text-transform:uppercase;letter-spacing:0.14em;color:var(--muted);
}
.calc-atajo-campo input{
  width:100%;border:0;border-bottom:2px solid var(--ink);background:transparent;color:var(--ink);
  font-family:var(--font);font-size:var(--step-2);font-weight:700;font-stretch:118%;
  letter-spacing:-0.03em;line-height:1.1;padding-bottom:0.25rem;font-variant-numeric:tabular-nums;
  -moz-appearance:textfield;transition:border-color 200ms;
}
.calc-atajo-campo input:focus-visible{outline:none;border-bottom-color:var(--accent)}
.calc-atajo-campo input::-webkit-outer-spin-button,.calc-atajo-campo input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.calc-atajo .calc-hint{margin-top:var(--space-s)}
.calc-atajo .calc-hint + .calc-hint{margin-top:var(--space-2xs);color:var(--accent)}

/* Home: link directo a la calculadora de bombeo desde la ficha del bloque Solar */
.ficha-link{
  display:inline-flex;align-items:center;gap:0.4em;white-space:nowrap;
  color:var(--accent);font-weight:500;text-decoration:underline;text-underline-offset:0.25em;
}
.ficha-link:hover{color:var(--accent-deep)}

/* ============ /convencional: hero con la placa de 132 kV y el certificado real ============ */
.hero--conv h1{font-size:var(--step-4)}
.hero-plate{
  position:relative;overflow:hidden;background:var(--ink);color:var(--paper);
  display:flex;flex-direction:column;justify-content:space-between;gap:var(--space-l);
  padding:var(--space-xl) var(--space-l);container-type:inline-size;min-height:62svh;
}
.hero-plate-kv{
  display:block;font-size:clamp(3rem, 17cqw, 8rem);font-weight:700;font-stretch:118%;
  letter-spacing:-0.045em;line-height:0.9;font-variant-numeric:tabular-nums;white-space:nowrap;
}
.hero-plate-cap{
  display:block;margin-top:var(--space-s);font-family:var(--mono);font-size:var(--step--2);
  text-transform:uppercase;letter-spacing:0.16em;color:rgba(244,241,235,0.66);
}
.hero-plate-cap--baja{text-transform:none;letter-spacing:0.05em;margin-top:0.4rem}
.hero-plate-cert{
  align-self:flex-end;width:44%;max-width:300px;rotate:-3deg;background:#fff;
  box-shadow:0 2px 4px rgba(0,0,0,0.28), 0 12px 28px rgba(0,0,0,0.34), 0 30px 64px rgba(0,0,0,0.26);
}
.hero-plate-cert img{height:auto}
@media (prefers-reduced-motion: no-preference){
  .hero-plate-cert{transition:rotate 400ms var(--ease-out)}
}
.hero-plate-cert:hover,.hero-plate-cert:focus-visible{rotate:0deg}
@media (max-width:1000px){
  .hero-plate{min-height:0;order:2;padding:var(--space-l) var(--gutter)}
  .hero-plate-cert{width:52%}
}

/* Íconos SVG: toman tamaño y color del texto, como hacía la fuente de íconos */
.ico{display:inline-block;height:1em;width:auto;vertical-align:-0.125em;fill:currentColor;overflow:visible;flex:none}

/* Entrada del hero con CSS desde el primer pintado, sin esperar al JS: antes el titular
   quedaba oculto hasta que el JS lo revelaba y el LCP daba 7 a 8,6 s. Mismos tiempos y escalonado.
   La máscara va siempre (no recién con .js-anim), así no corre el diseño al cargar. */
.hero .mask{overflow:hidden;padding-bottom:0.14em}
.hero .mask > span{display:block}
@media (prefers-reduced-motion: no-preference){
  .hero .mask > span{animation:hero-sube 900ms var(--ease-out) both}
  .hero h1 .mask + .mask > span{animation-delay:140ms}
  .hero .rise{animation:hero-aparece 800ms var(--ease-out) both}
  .hero .hero-cta{animation-delay:90ms}
  .hero .hero-audit{animation-delay:180ms}
}
@keyframes hero-sube{from{translate:0 106%}to{translate:0 0}}
@keyframes hero-aparece{from{opacity:0;translate:0 20px}to{opacity:1;translate:0 0}}

/* 15/9 · Textos del Word de José: titulares más largos que los originales del sistema */
.hero--largo h1{font-size:clamp(2rem, 1.5rem + 1.6vw, 3rem);max-width:22ch}
.hero-sub b,.sec-lead b{font-weight:600;color:var(--ink)}
.sec-title--largo{max-width:24ch}
.cierre--centro .cierre-lema{margin-top:var(--space-m)}
.banda .cierre-lema{color:var(--paper)}

/* ============ /productos: catálogo con consulta por WhatsApp (15/9) ============ */
.prod-cabecera{padding-block:var(--space-xl) var(--space-l);border-bottom:1px solid var(--line)}
.prod-titulo{
  margin-top:var(--space-s);font-size:var(--step-4);font-weight:700;font-stretch:118%;
  letter-spacing:-0.035em;line-height:0.98;max-width:16ch;
}
.prod-titulo em{font-style:normal;color:var(--accent)}
.prod-cabecera .sec-lead{max-width:46ch}
.docs-grupo[id]{scroll-margin-top:calc(var(--nav-h) + var(--space-s))}
h2.docs-lbl{line-height:inherit}
.docs--prod{grid-template-columns:repeat(2,1fr)}
.prod{display:flex;flex-direction:column}
.prod .prod-plate{aspect-ratio:16/7}
@media (min-width:1001px){ .prod .prod-plate{aspect-ratio:3/1} }
.sec.prod-catalogo{padding-top:var(--space-l)}
.prod-desc{margin-top:0.45rem;font-size:var(--step--1);line-height:1.55;color:var(--muted);max-width:52ch}
.prod-pie{
  margin-top:auto;padding-top:var(--space-s);display:flex;align-items:center;
  justify-content:space-between;gap:var(--space-xs) var(--space-s);flex-wrap:wrap;
}
.prod-precio{font-size:var(--step-1);font-weight:700;font-stretch:112%;letter-spacing:-0.02em;font-variant-numeric:tabular-nums;white-space:nowrap}
.prod-precio small{margin-left:0.4rem;font-family:var(--mono);font-size:var(--step--2);font-weight:500;letter-spacing:0.06em;color:var(--muted)}
.prod-pie .rubro-wa{margin-top:0}
.prod-nota{margin-top:var(--space-xl);font-family:var(--mono);font-size:var(--step--1);color:var(--muted)}
@media (max-width:600px){ .docs--prod{grid-template-columns:1fr} }

/* 15/9 · Con "Productos" el menú tiene 6 links: que no se aprieten el logo ni el botón, ni se partan los links */
.nav-logo,.nav-cta{flex:none}
.nav-links a{white-space:nowrap}
@media (max-width:1200px){ .nav-links{gap:var(--space-s)} }

/* 5/10 · "Inicio" primero en el menú de todas las páginas: José no encontraba la página principal
   (solo el logo llevaba ahí). En la home queda marcado como la página actual. */
.nav-links a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--accent)}
.panel a[aria-current="page"]{color:var(--accent)}
@media (max-width:1100px){ .nav .shell{gap:var(--space-s)} .nav-links{gap:0.8rem} }

/* ============ /calculadora-solar: la calculadora de kits de José (4/10) ============ */
.kit-cabecera{position:relative}
.kit-titulo{max-width:18ch}
.sec.kit-sec{padding-top:var(--space-l)}

/* 5/10 · En su formato, como la armó en su WordPress: los tres modos a la vista, uno por columna,
   cada uno con su color (--c, el de sus MODES). Medidas tomadas de su bloque; letra y fondos, los del sitio.
   Abajo de 1000 px, una columna debajo de la otra, como en el suyo. */
.kit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:start}
.kit-col{
  min-width:0;background:#fff;border:1px solid var(--line);border-top:5px solid var(--c);border-radius:6px;
  padding:22px 20px;scroll-margin-top:calc(var(--nav-h) + var(--space-s));container-type:inline-size;
}
/* Si se llega desde /solar con #on-grid, #off-grid o #hibrido, queda marcada la columna elegida */
.kit-col:target{box-shadow:0 0 0 2px var(--c)}
.kit-col [hidden]{display:none !important}
.kit-modo{
  margin-bottom:6px;color:var(--c);font-size:2.125rem;font-weight:700;font-stretch:75%;
  letter-spacing:-0.01em;line-height:1;
}
.kit-desc{margin-bottom:18px;min-height:2.9em;color:var(--muted);font-size:0.9375rem;line-height:1.45}
.kit-in{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:end}
.kit-campo{display:flex;flex-direction:column;gap:4px;min-width:0}
.kit-lbl{font-size:0.8125rem;font-weight:500;line-height:1.35;color:var(--muted)}
.kit-u,.kit-sel{
  width:100%;min-width:0;background-color:var(--paper);border:1px solid var(--line);border-radius:4px;
  font-family:var(--font);font-size:1rem;font-weight:500;font-stretch:87.5%;line-height:1.3;color:var(--ink);
}
.kit-u{display:flex;align-items:center}
.kit-u input{
  flex:1;width:100%;min-width:0;border:0;border-radius:4px;background:transparent;padding:9px 0 9px 10px;
  font:inherit;color:inherit;font-variant-numeric:tabular-nums;-moz-appearance:textfield;
}
.kit-u input::-webkit-outer-spin-button,.kit-u input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.kit-u i{flex:none;padding:0 10px 0 6px;font-style:normal;font-size:0.75rem;font-weight:400;color:var(--muted)}
.kit-sel{
  -webkit-appearance:none;appearance:none;padding:9px 26px 9px 10px;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23141318' stroke-width='1.6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 9px center;background-size:10px;
}
.kit-u input:focus-visible,.kit-sel:focus-visible{outline:none}
.kit-u:focus-within,.kit-sel:focus-visible{outline:2px solid var(--c);outline-offset:1px}

.kit-out{margin-top:22px}
.kit-err{color:var(--accent-deep);font-size:0.875rem}
.kit-st{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.kit-st div{min-width:0;background:var(--paper);border-radius:4px;padding:10px 12px}
.kit-st b{
  display:block;color:var(--c);font-size:1.5rem;font-weight:700;font-stretch:75%;line-height:1.1;
  font-variant-numeric:tabular-nums;overflow-wrap:anywhere;
}
.kit-st span{display:block;font-size:0.78rem;line-height:1.35;color:var(--muted)}
h3.kit-h{margin:16px 0 4px;font-size:0.9375rem;font-weight:600;font-stretch:100%;letter-spacing:0;line-height:1.3}
.kit-items{list-style:none}
.kit-items li{
  display:grid;grid-template-columns:minmax(46px,max-content) minmax(0,1fr);gap:10px;
  padding-block:10px;border-bottom:1px solid var(--line);
}
.kit-q{
  color:var(--c);font-size:1.25rem;font-weight:700;font-stretch:75%;line-height:1.2;
  font-variant-numeric:tabular-nums;white-space:nowrap;
}
.kit-items b{display:block;font-size:0.9375rem;font-weight:600;line-height:1.35}
.kit-items small{display:block;font-size:0.8125rem;line-height:1.45;color:var(--muted);overflow-wrap:anywhere}
.kit-nota{margin-top:12px;padding:10px 12px;border-left:3px solid #c98a10;background:#fff8e6;font-size:0.84rem;line-height:1.5}
.kit-btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.kit-copiar,.kit-wa{
  flex:1 1 9rem;display:inline-flex;align-items:center;justify-content:center;gap:0.45em;padding:10px;
  border:1px solid var(--c);border-radius:4px;font-size:0.875rem;font-weight:600;line-height:1.25;text-align:center;
  transition:background 200ms var(--ease-in-out), color 200ms var(--ease-in-out), filter 200ms var(--ease-in-out);
}
.kit-copiar{background:#fff;color:var(--c)}
.kit-copiar:hover{background:var(--c);color:#fff}
.kit-wa{background:var(--c);color:#fff}
.kit-wa:hover{filter:brightness(0.88)}
.kit-copiar:focus-visible,.kit-wa:focus-visible{outline:2px solid var(--c);outline-offset:1px}
.kit-pie{margin-top:18px;font-size:0.8125rem;line-height:1.5;color:var(--muted)}
/* Columna angosta (de 1001 a ~1200 px, o un celular de menos de 390 px): un campo por renglón, así entra el texto de los desplegables */
@container (max-width:306px){ .kit-in{grid-template-columns:minmax(0,1fr)} }
@media (max-width:1000px){
  .kit-grid{grid-template-columns:minmax(0,1fr)}
  .kit-desc{min-height:0}
}

/* /solar · 01: los tres tipos de kit llevan a la calculadora completa */
.tipos{margin-top:var(--space-xl)}
.tipos-titulo{font-size:var(--step-2);font-weight:700;font-stretch:118%;letter-spacing:-0.03em;max-width:24ch}
.tipos-lead{margin-top:var(--space-xs);color:var(--muted);font-weight:300;max-width:56ch}
.tipos-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:var(--space-m);border-top:1px solid var(--line-strong)}
.tipo{
  display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-m);
  border-right:1px solid var(--line);border-bottom:1px solid var(--line);
  transition:background 200ms var(--ease-in-out);
}
.tipo:first-child{padding-left:0}
.tipo:last-child{border-right:0;padding-right:0}
.tipo:hover{background:rgba(251,249,245,0.85)}
.tipo-k{font-size:var(--step-2);font-weight:700;font-stretch:118%;letter-spacing:-0.03em;line-height:1}
.tipo-d{color:var(--muted);font-weight:300;line-height:1.5}
.tipo-go{
  margin-top:auto;padding-top:var(--space-xs);display:inline-flex;align-items:center;gap:0.55rem;
  font-family:var(--mono);font-size:var(--step--1);font-weight:500;text-transform:uppercase;
  letter-spacing:0.08em;color:var(--accent);
}
.tipo-go .ico{transition:translate 400ms var(--ease-out)}
.tipo:hover .tipo-go .ico{translate:4px 0}
@media (max-width:860px){
  .tipos-grid{grid-template-columns:1fr}
  .tipo,.tipo:first-child,.tipo:last-child{padding:var(--space-s) 0;border-right:0}
}
