/* ═══════════════════════════════════════════
   SUBVEN SOLAR · "Amanecer solar"
   Azul noche (célula fotovoltaica) + ámbar de sol
   sobre crema cálido.
═══════════════════════════════════════════ */
:root{
  /* Sol · color de marca */
  --sun-50:#fff8eb;
  --sun-100:#ffedc7;
  --sun-200:#ffd98a;
  --sun-300:#ffc44d;
  --sun-400:#fbb024;   /* ← ámbar SUBVEN SOLAR */
  --sun-500:#f59e0b;
  --sun-600:#d97706;
  --sun-700:#b45309;   /* texto ámbar sobre fondos claros (AA) */
  --sun-800:#8a3f06;
  --flare:#ff7a1a;     /* naranja de atardecer, solo en degradados */

  /* Noche · placa fotovoltaica */
  --night-950:#050d18;
  --night-900:#07111f;
  --night-800:#0b1a2e;
  --night-700:#12263f;
  --night-600:#1b3556;
  --cell:#2a4a75;

  /* Apoyo */
  --leaf:#1f8a55;      /* "abierto", sostenibilidad */
  --leaf-50:#e7f6ee;
  --sky:#2563a8;
  --sky-50:#e8f0fa;

  /* Neutros cálidos */
  --ink:#0b1a2e;
  --text:#3a4556;
  --mute:#667085;
  --soft:#98a2b3;
  --line:#ece3d3;
  --line-2:#f3ece0;

  --bg:#fdf9f2;
  --surface:#ffffff;
  --surface-2:#f8f1e4;
  --dark:var(--night-800);

  --radius:14px;
  --radius-lg:22px;

  --shadow-1:0 1px 2px rgba(11,26,46,.05), 0 4px 14px rgba(11,26,46,.05);
  --shadow-2:0 6px 16px rgba(11,26,46,.07), 0 24px 48px -12px rgba(11,26,46,.14);
  --glow:0 10px 30px -8px rgba(251,176,36,.55);

  --sun-grad:linear-gradient(120deg, var(--sun-300) 0%, var(--sun-400) 45%, var(--flare) 100%);
  /* Trama de células fotovoltaicas para secciones oscuras */
  --cells:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px) 0 0/46px 30px,
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px) 0 0/46px 30px;

  --ease:cubic-bezier(.2,.7,.2,1);
  --font:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --font-display:'Bricolage Grotesque','DM Sans',sans-serif;
  --max:1320px;
  --wrap-pad:clamp(20px, 4vw, 56px);
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth; font-size:17px;}
body{
  font-family:var(--font);
  color:var(--text);
  background:var(--bg);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img,svg{display:block; max-width:100%;}
a{text-decoration:none; color:inherit;}
button{font-family:inherit; cursor:pointer; border:none; background:none; color:inherit;}
::selection{background:var(--sun-200); color:var(--ink);}
:focus-visible{outline:2px solid var(--sun-500); outline-offset:3px; border-radius:4px;}

h1,h2,h3,h4{
  font-family:var(--font-display);
  color:var(--ink);
  font-weight:700;
  letter-spacing:-.025em;
  line-height:1.15;
}
p{color:var(--text);}

/* ═══════════════════════════════════════════
   LAYOUT
═══════════════════════════════════════════ */
.wrap{max-width:var(--max); margin:0 auto; padding:0 var(--wrap-pad);}
.section{padding:120px 0;}
@media(max-width:900px){.section{padding:76px 0;}}

.eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-size:.76rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase;
  color:var(--sun-700);
}
/* Pequeño sol delante de cada eyebrow */
.eyebrow::before{
  content:''; width:10px; height:10px; border-radius:50%;
  background:var(--sun-400);
  box-shadow:0 0 0 4px rgba(251,176,36,.22);
  flex-shrink:0;
}
.h2{font-size:clamp(2rem, 3.8vw, 3rem); line-height:1.08; letter-spacing:-.035em;}
.lead{font-size:1.1rem; color:var(--mute); max-width:640px; margin-top:18px; line-height:1.7;}
.center{text-align:center;}
.center .lead{margin-inline:auto;}
.sect-head{margin-bottom:56px;}
.sect-head.center{margin-bottom:64px;}

/* ═══════════════════════════════════════════
   BUTTONS
═══════════════════════════════════════════ */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:14px 24px; border-radius:100px;
  font-size:.95rem; font-weight:700; letter-spacing:-.005em;
  border:1.5px solid transparent;
  transition:background .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease), transform .2s var(--ease), box-shadow .2s var(--ease);
  white-space:nowrap; line-height:1;
}
.btn svg{width:18px; height:18px; flex-shrink:0;}
.btn-lg{padding:17px 30px; font-size:1rem;}

.btn-primary{background:var(--sun-400); color:var(--night-900); border-color:var(--sun-400);}
.btn-primary:hover{background:var(--sun-300); border-color:var(--sun-300); transform:translateY(-2px); box-shadow:var(--glow);}

.btn-dark{background:var(--night-800); color:#fff; border-color:var(--night-800);}
.btn-dark:hover{background:var(--night-700); border-color:var(--night-700); transform:translateY(-2px);}

.btn-reveal-phone{position:relative; overflow:hidden; min-width:180px;}
.btn-reveal-phone .btn-default-text,
.btn-reveal-phone .btn-hover-text{transition:opacity .2s, transform .2s;}
.btn-reveal-phone .btn-hover-text{position:absolute; inset:0; display:flex; align-items:center; justify-content:flex-start; padding-left:calc(30px + 18px + 10px); opacity:0; transform:translateY(6px);}
.btn-reveal-phone:hover .btn-default-text{opacity:0; transform:translateY(-6px);}
.btn-reveal-phone:hover .btn-hover-text{opacity:1; transform:translateY(0);}

.btn-outline{background:transparent; color:var(--ink); border-color:var(--line);}
.btn-outline:hover{border-color:var(--sun-500); color:var(--sun-700); transform:translateY(-2px);}

.btn-wa{background:#128c4a; color:#fff; border-color:#128c4a;}
.btn-wa:hover{background:#0e7a40; border-color:#0e7a40; transform:translateY(-2px);}

.btn-ghost-light{background:transparent; color:#fff; border-color:rgba(255,255,255,.28);}
.btn-ghost-light:hover{border-color:var(--sun-300); color:var(--sun-200); background:rgba(255,255,255,.04);}

/* ═══════════════════════════════════════════
   HEADER · sticky con scroll-spy
═══════════════════════════════════════════ */
.header{
  position:sticky; top:0; z-index:50;
  background:rgba(253,249,242,.82);
  backdrop-filter:saturate(180%) blur(14px);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid transparent;
  transition:border-color .25s var(--ease), background .25s var(--ease);
}
.header.scrolled{border-bottom-color:var(--line); background:rgba(253,249,242,.95);}
.header-inner{
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  padding:16px 0;
  transition:padding .25s var(--ease);
}
.header.scrolled .header-inner{padding:11px 0;}

.logo{
  display:inline-flex; align-items:center; gap:9px;
  font-family:var(--font-display);
  font-weight:800; font-size:1.4rem;
  color:var(--ink);
  letter-spacing:-.03em;
}
.header .logo{font-size:1.65rem;}
.logo-sun{
  width:1.15em; height:1.15em; flex-shrink:0;
  color:var(--sun-500);
  transition:transform .8s var(--ease);
}
.logo:hover .logo-sun{transform:rotate(90deg);}
.logo .accent{
  margin-left:.18em;
  background:var(--sun-grad);
  -webkit-background-clip:text; background-clip:text;
  color:transparent;
}

.nav{display:flex; align-items:center; gap:2px;}
.nav-link{
  position:relative;
  padding:10px 13px;
  font-size:.92rem; font-weight:500;
  color:var(--text);
  border-radius:100px;
  transition:color .2s var(--ease), background .2s var(--ease);
}
.nav-link:hover{color:var(--ink); background:var(--surface-2);}
.nav-link.active{color:var(--ink); font-weight:700;}
.nav-link::after{
  content:''; position:absolute; left:50%; bottom:3px;
  width:5px; height:5px; border-radius:50%;
  background:var(--sun-500);
  transform:translateX(-50%) scale(0);
  transition:transform .3s var(--ease);
}
.nav-link.active::after{transform:translateX(-50%) scale(1);}
.nav .btn{margin-left:10px; padding:12px 20px;}

.burger{
  display:none; width:42px; height:42px; border-radius:12px;
  background:transparent; border:1px solid var(--line);
  align-items:center; justify-content:center;
}
.burger span{display:block; width:18px; height:2px; background:var(--ink); margin:2.5px 0; transition:transform .25s var(--ease), opacity .2s;}
.burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.burger.open span:nth-child(2){opacity:0;}
.burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ── Tab nav deslizable (móvil / tablet) ── */
.tabnav{display:none; flex:1; min-width:0; overflow:hidden; margin-left:14px;}
.tabnav-inner{
  display:flex; align-items:center; gap:4px;
  padding:6px 4px;
  overflow-x:auto; scroll-behavior:smooth;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none; -ms-overflow-style:none;
}
.tabnav-inner::-webkit-scrollbar{display:none;}
.tabnav-link{
  flex-shrink:0;
  display:inline-flex; align-items:center;
  padding:8px 14px; border-radius:100px;
  font-size:.88rem; font-weight:500; color:var(--text);
  white-space:nowrap;
  border:1.5px solid transparent;
  transition:background .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease), transform .15s var(--ease);
}
.tabnav-link:active{transform:scale(.95);}
.tabnav-link:hover{background:var(--sun-50); color:var(--ink);}
.tabnav-link.active{background:var(--night-800); color:#fff; border-color:var(--night-800); font-weight:600;}
.tabnav-link.tabnav-cta{background:var(--sun-400); color:var(--night-900); border-color:var(--sun-400); font-weight:700; margin-left:4px;}

@media(max-width:1240px){
  .nav{display:none;}
  .burger{display:none;}
  .tabnav{display:flex;}
  .header .logo{font-size:1.35rem;}
}

/* ── Drawer lateral ── */
.drawer-backdrop{
  position:fixed; inset:0; z-index:90;
  background:rgba(7,17,31,.5);
  opacity:0; pointer-events:none;
  transition:opacity .35s var(--ease);
  backdrop-filter:blur(2px); -webkit-backdrop-filter:blur(2px);
}
.drawer-backdrop.open{opacity:1; pointer-events:auto;}
.mnav{
  position:fixed; top:0; right:0; bottom:0; z-index:100;
  width:min(320px, 88vw);
  background:var(--surface);
  border-left:1px solid var(--line);
  box-shadow:-8px 0 32px rgba(7,17,31,.14);
  display:flex; flex-direction:column;
  transform:translateX(110%);
  transition:transform .38s cubic-bezier(.4,0,.2,1);
  overflow-y:auto;
}
.mnav.open{transform:translateX(0);}
.mnav-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 22px; border-bottom:1px solid var(--line); flex-shrink:0;
}
.mnav-logo{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--font-display); font-weight:800; font-size:1.2rem; color:var(--ink); letter-spacing:-.03em;
}
.mnav-logo span{color:var(--sun-600); margin-left:.15em;}
.mnav-close{
  width:36px; height:36px; border-radius:10px;
  display:grid; place-items:center;
  border:1px solid var(--line); color:var(--text);
  transition:background .2s var(--ease), color .2s var(--ease);
}
.mnav-close:hover{background:var(--sun-50); color:var(--sun-700);}
.mnav-close svg{width:18px; height:18px;}
.mnav-links{display:flex; flex-direction:column; gap:2px; padding:16px 14px; flex:1;}
.mnav-links a{
  display:flex; align-items:center; gap:12px;
  padding:13px 14px; border-radius:12px;
  font-weight:500; color:var(--text); font-size:.97rem;
  transition:background .18s var(--ease), color .18s var(--ease);
}
.mnav-links a:hover, .mnav-links a.active{background:var(--sun-50); color:var(--ink);}
.mnav-links a .dot{width:7px; height:7px; border-radius:50%; background:var(--sun-400); flex-shrink:0; opacity:0; transition:opacity .2s;}
.mnav-links a:hover .dot, .mnav-links a.active .dot{opacity:1;}
.mnav-footer{padding:16px 14px 28px; border-top:1px solid var(--line); flex-shrink:0;}
.mnav-footer .btn{width:100%;}

/* ═══════════════════════════════════════════
   HERO · amanecer sobre el edificio
═══════════════════════════════════════════ */
.hero{
  position:relative;
  min-height:min(860px, 92vh);
  padding:110px 0 120px;
  overflow:hidden;
  color:#fff;
  background:var(--night-900);
  display:flex; align-items:center;
}
@media(max-width:900px){.hero{padding:72px 0 80px; min-height:0;}}

.hero-bg{
  position:absolute; inset:0; z-index:0;
  width:100%; height:100%;
  object-fit:cover; object-position:center;
  transform-origin:center center;
  will-change:transform;
  pointer-events:none;
}
.hero-overlay{
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    radial-gradient(ellipse 70% 60% at 85% 18%, rgba(255,150,40,.32) 0%, transparent 60%),
    linear-gradient(100deg, rgba(5,13,24,.94) 0%, rgba(7,17,31,.84) 42%, rgba(11,26,46,.45) 100%),
    linear-gradient(0deg, rgba(5,13,24,.85) 0%, transparent 35%);
}

/* El sol */
.hero-sun{
  position:absolute; z-index:1; pointer-events:none;
  top:-14vmin; right:-10vmin;
  width:70vmin; height:70vmin;
}
/* Neblina cálida alrededor del sol */
.hero-sun::before{
  content:''; position:absolute; inset:-25%;
  border-radius:50%;
  background:radial-gradient(circle, rgba(255,170,60,.28) 0%, rgba(255,130,40,.12) 32%, transparent 62%);
  filter:blur(20px);
}
.hero-sun-core{
  position:absolute; inset:27%;
  border-radius:50%;
  background:radial-gradient(circle,
    #fffaf0 0%, #fff1c9 14%, var(--sun-300) 32%,
    rgba(255,150,40,.65) 50%, rgba(255,122,26,.25) 64%, transparent 74%);
  filter:blur(6px);
  animation:sunPulse 7s ease-in-out infinite;
}
/* Haces de luz suaves: degradados sin bordes + desenfoque, en dos capas
   que giran a distinta velocidad para que no se lea un patrón */
.hero-sun-rays{
  position:absolute; inset:0;
  border-radius:50%;
  background:repeating-conic-gradient(from 0deg,
    rgba(255,214,140,0) 0deg, rgba(255,214,140,.22) 5deg, rgba(255,214,140,0) 11deg,
    rgba(255,214,140,0) 19deg, rgba(255,214,140,.12) 23deg, rgba(255,214,140,0) 28deg,
    rgba(255,214,140,0) 36deg);
  -webkit-mask-image:radial-gradient(circle, transparent 22%, #000 32%, rgba(0,0,0,.45) 50%, transparent 72%);
  mask-image:radial-gradient(circle, transparent 22%, #000 32%, rgba(0,0,0,.45) 50%, transparent 72%);
  filter:blur(9px);
  will-change:transform;
  animation:sunSpin 140s linear infinite;
}
.hero-sun-rays::after{
  content:''; position:absolute; inset:0;
  border-radius:50%;
  background:repeating-conic-gradient(from 13deg,
    rgba(255,236,190,0) 0deg, rgba(255,236,190,.14) 7deg, rgba(255,236,190,0) 15deg,
    rgba(255,236,190,0) 47deg);
  animation:sunSpin 200s linear infinite reverse;
}
@keyframes sunPulse{ 0%,100%{transform:scale(1); opacity:.95;} 50%{transform:scale(1.06); opacity:1;} }
@keyframes sunSpin{ to{transform:rotate(360deg);} }
@media(max-width:900px){ .hero-sun{width:90vmin; height:90vmin; top:-30vmin; right:-30vmin; opacity:.85;} .hero-sun-rays::after{animation:none;} }

.hero-content{
  position:relative; z-index:2;
  width:100%;
  display:grid;
  grid-template-columns:minmax(0,1.3fr) minmax(0,.8fr);
  gap:64px;
  align-items:center;
}
@media(max-width:1060px){ .hero-content{grid-template-columns:1fr; gap:48px;} }

.hero-eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-size:.74rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
  color:var(--sun-200);
  padding:8px 16px;
  background:rgba(251,176,36,.1);
  border:1px solid rgba(251,176,36,.3);
  border-radius:100px;
}
.hero-eyebrow .dot{
  width:7px; height:7px; border-radius:50%;
  background:var(--sun-300);
  box-shadow:0 0 0 4px rgba(255,196,77,.2), 0 0 12px var(--sun-300);
}

.hero h1{
  color:#fff;
  font-size:clamp(2.4rem, 4.8vw, 4.3rem);
  font-weight:800;
  letter-spacing:-.04em;
  line-height:1.02;
  margin-top:26px;
  text-wrap:balance;
}
.h1-br{display:none;}  /* el reparto de líneas lo hace text-wrap:balance */
.hero h1 .accent{
  background:var(--sun-grad);
  -webkit-background-clip:text; background-clip:text;
  color:transparent;
}

.hero-lead{
  color:rgba(255,255,255,.8);
  font-size:clamp(1.02rem, 1.4vw, 1.18rem);
  margin-top:26px;
  max-width:620px;
  line-height:1.65;
}

.hero-highlights{
  display:flex; flex-wrap:wrap; align-items:center;
  gap:12px;
  margin-top:34px;
}
.hl-item{
  display:inline-flex; align-items:center; gap:9px;
  padding:9px 15px 9px 12px;
  font-size:.9rem; font-weight:600;
  color:#fff;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.14);
  border-radius:100px;
}
.hl-item svg{width:19px; height:19px; color:var(--sun-300); flex-shrink:0;}

.hero-contact{
  display:inline-flex; align-items:center;
  margin-top:36px;
  padding:16px 26px;
  background:rgba(7,17,31,.55);
  border:1px solid rgba(255,255,255,.12);
  border-radius:20px;
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
}
.hc-item{display:flex; align-items:center; gap:14px; color:#fff; transition:transform .2s var(--ease);}
.hc-item:hover{transform:translateY(-1px);}
.hc-item:hover .hc-value{color:var(--sun-300);}
.hc-icon{
  flex-shrink:0; width:42px; height:42px;
  display:grid; place-items:center;
  background:var(--sun-400); color:var(--night-900);
  border-radius:50%;
}
.hc-icon svg{width:19px; height:19px;}
.hc-text{display:flex; flex-direction:column; text-align:left; line-height:1.2;}
.hc-label{font-size:.68rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.5); margin-bottom:4px;}
.hc-value{font-size:1.06rem; font-weight:700; color:#fff; transition:color .2s var(--ease);}
.hc-sep{flex-shrink:0; width:1px; height:30px; background:rgba(255,255,255,.16); margin:0 28px;}
@media(max-width:680px){
  .hero-contact{display:flex; flex-direction:column; align-items:stretch; padding:12px 18px;}
  .hc-item{width:100%; padding:10px 0;}
  .hc-sep{width:100%; height:1px; margin:0;}
}

/* Panel de ayudas · minimalista */
.hero-panel{
  position:relative; overflow:hidden;
  padding:30px 30px 26px;
  border-radius:28px;
  background:rgba(7,17,31,.62);
  border:1px solid rgba(255,255,255,.14);
  backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  box-shadow:0 30px 70px -25px rgba(0,0,0,.6);
}
/* Halo de sol en la esquina */
.hero-panel::before{
  content:''; position:absolute; right:-90px; top:-90px;
  width:220px; height:220px; border-radius:50%;
  background:radial-gradient(circle, rgba(255,196,77,.45) 0%, rgba(255,122,26,.12) 45%, transparent 70%);
  pointer-events:none;
}
.hp-head{position:relative; margin-bottom:14px;}
.hp-kicker{
  display:inline-flex; align-items:center; gap:9px;
  font-size:.74rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
  color:rgba(255,255,255,.62);
}
.hp-live{width:8px; height:8px; border-radius:50%; background:#34d399; animation:livePulse 2s ease-in-out infinite;}
.hp-title{
  display:block; margin-top:10px;
  font-family:var(--font-display); font-weight:800;
  font-size:clamp(1.5rem, 2.2vw, 1.85rem); line-height:1.1; letter-spacing:-.035em;
  color:#fff;
}
.hp-list{list-style:none; position:relative;}
.hp-list li + li{border-top:1px solid rgba(255,255,255,.1);}
.hp-item{
  display:flex; align-items:center; gap:12px;
  padding:17px 6px;
  border-radius:14px;
  transition:background .2s var(--ease), padding .2s var(--ease);
}
.hp-item:hover{background:rgba(255,255,255,.05); padding-left:12px; padding-right:8px;}
.hp-name{flex:1; min-width:0; font-size:1.08rem; font-weight:600; line-height:1.3; color:#fff;}
.hp-countdown{display:block; margin-top:3px; font-size:.84rem; font-weight:700; color:var(--sun-300);}
.hp-countdown[hidden]{display:none;}
.hp-status{
  flex-shrink:0;
  display:inline-flex; align-items:center; gap:7px;
  padding:6px 12px; border-radius:100px;
  font-size:.8rem; font-weight:700; white-space:nowrap;
}
.hp-status::before{content:''; width:7px; height:7px; border-radius:50%;}
.hp-item.is-open .hp-status{color:#6ee7a8; background:rgba(52,211,153,.12); border:1px solid rgba(52,211,153,.3);}
.hp-item.is-open .hp-status::before{background:#34d399;}
.hp-item.is-soon .hp-status{color:var(--night-900); background:var(--sun-400);}
.hp-item.is-soon .hp-status::before{background:var(--night-900);}
.hp-go{
  flex-shrink:0; width:20px; display:grid; place-items:center;
  color:rgba(255,255,255,.4);
  transition:color .2s var(--ease), transform .2s var(--ease);
}
.hp-go svg{width:16px; height:16px;}
.hp-item:hover .hp-go{color:var(--sun-300); transform:translateX(3px);}
.hp-cta{
  position:relative;
  margin-top:16px;
  display:flex; align-items:center; justify-content:center; gap:10px;
  padding:16px 20px;
  border-radius:100px;
  background:var(--sun-400); color:var(--night-900);
  font-weight:700; font-size:1rem; text-align:center;
  box-shadow:var(--glow);
  transition:background .2s var(--ease), transform .2s var(--ease);
}
.hp-cta:hover{background:var(--sun-300); transform:translateY(-2px);}
.hp-cta svg{width:18px; height:18px; flex-shrink:0;}
@media(max-width:420px){
  .hero-panel{padding:24px 18px 20px;}
  .hp-name{font-size:1rem;}
  .hp-go{display:none;}
}

/* ═══════════════════════════════════════════
   STATS · placa fotovoltaica
═══════════════════════════════════════════ */
.stats{
  position:relative;
  background:var(--cells), var(--night-800);
  color:#fff;
  padding:54px 0;
  border-top:1px solid rgba(255,255,255,.06);
}
.stats-inner{display:grid; grid-template-columns:repeat(4, 1fr); gap:0;}
@media(max-width:800px){.stats-inner{grid-template-columns:repeat(2, 1fr); gap:36px 0;}}
.stat{text-align:center; padding:0 12px; border-left:1px solid rgba(255,255,255,.1);}
.stat:first-child{border-left:none;}
@media(max-width:800px){ .stat:nth-child(odd){border-left:none;} }
.stat .n{
  font-family:var(--font-display);
  font-size:clamp(2.3rem, 4vw, 3.2rem);
  font-weight:800; letter-spacing:-.04em; line-height:1;
  background:var(--sun-grad);
  -webkit-background-clip:text; background-clip:text;
  color:transparent;
}
.stat .n .small{font-size:.55em; vertical-align:top; margin-left:2px;}
.stat .l{font-size:.86rem; color:rgba(255,255,255,.65); margin-top:10px; font-weight:500;}

/* Panel de programas (dentro de Subvenciones) */
.program-stats{
  position:relative; overflow:hidden;
  margin-bottom:24px;
  padding:40px 24px;
  border-radius:28px;
  background:var(--cells), linear-gradient(135deg, var(--night-900), var(--night-700));
  box-shadow:var(--shadow-2);
}
.program-stats::after{
  content:''; position:absolute; left:0; right:0; top:0; height:3px; background:var(--sun-grad);
}

/* ═══════════════════════════════════════════
   OFERTA · subvención + instalación propia
═══════════════════════════════════════════ */
.offer{
  position:relative; overflow:hidden;
  padding:120px 0 110px;
  color:#fff;
  background:
    radial-gradient(ellipse 80% 55% at 50% 0%, rgba(255,150,40,.28) 0%, transparent 65%),
    var(--cells),
    linear-gradient(180deg, var(--night-800) 0%, var(--night-950) 100%);
}
@media(max-width:900px){ .offer{padding:80px 0 76px;} }
.offer-glow{
  position:absolute; left:50%; top:-260px; transform:translateX(-50%);
  width:620px; height:620px; border-radius:50%;
  background:radial-gradient(circle, rgba(255,214,130,.5) 0%, rgba(255,140,30,.2) 35%, transparent 65%);
  pointer-events:none;
  animation:sunPulse 7s ease-in-out infinite;
}
.offer .wrap{position:relative; z-index:1;}

.offer-head{text-align:center; max-width:980px; margin:0 auto 56px;}
.offer-kicker{
  display:inline-flex; align-items:center; gap:12px; flex-wrap:wrap; justify-content:center;
  font-size:.8rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--sun-200);
}
.offer-kicker-tag{
  background:var(--sun-grad); color:var(--night-900);
  padding:6px 13px; border-radius:100px;
  letter-spacing:.1em;
  box-shadow:var(--glow);
}
.offer-title{
  margin-top:24px;
  color:#fff;
  font-size:clamp(2.2rem, 5.2vw, 4.4rem);
  font-weight:800; letter-spacing:-.045em; line-height:1.2;
  text-wrap:balance;
}
.offer-hl{
  position:relative; white-space:nowrap;
  background:var(--sun-grad);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.offer-hl::after{
  content:''; position:absolute; left:0; right:0; bottom:-.02em; height:.08em;
  background:var(--sun-grad); border-radius:4px; opacity:.7;
}
@media(max-width:560px){ .offer-hl{white-space:normal;} }
.offer-lead{
  margin:26px auto 0; max-width:760px;
  font-size:clamp(1.02rem, 1.5vw, 1.2rem); line-height:1.7;
  color:rgba(255,255,255,.78);
}
.offer-lead strong{color:#fff;}

.offer-grid{display:grid; grid-template-columns:1.25fr 1fr; gap:22px; align-items:stretch;}
@media(max-width:960px){ .offer-grid{grid-template-columns:1fr;} }

.offer-pack{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.12);
  border-radius:28px;
  padding:34px;
}
@media(max-width:560px){ .offer-pack{padding:24px 20px;} }
.offer-pack-head{margin-bottom:22px;}
.offer-pack-badge{
  display:inline-block;
  font-size:.7rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:#6ee7a8; background:rgba(52,211,153,.12); border:1px solid rgba(52,211,153,.3);
  padding:5px 12px; border-radius:100px; margin-bottom:14px;
}
.offer-pack h3{color:#fff; font-size:clamp(1.35rem, 2.4vw, 1.75rem); font-weight:800; letter-spacing:-.03em;}
.offer-steps{list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:10px;}
@media(max-width:640px){ .offer-steps{grid-template-columns:1fr;} }
.offer-steps li{
  display:flex; gap:12px; align-items:flex-start;
  padding:14px 14px;
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.07);
  border-radius:16px;
}
.offer-steps li strong{display:block; color:#fff; font-size:.95rem; line-height:1.3; margin-bottom:3px;}
.offer-steps li span:not(.os-ic){display:block; color:rgba(255,255,255,.6); font-size:.85rem; line-height:1.5;}
.os-ic{
  flex-shrink:0; width:24px; height:24px; border-radius:50%;
  display:grid; place-items:center;
  background:var(--sun-400); color:var(--night-900);
  margin-top:1px;
}
.os-ic svg{width:12px; height:12px;}
/* El paso diferencial: somos la instaladora */
.offer-steps li.is-key{
  background:linear-gradient(135deg, rgba(251,176,36,.2), rgba(255,122,26,.1));
  border-color:rgba(251,176,36,.55);
}
.offer-steps li.is-key strong{color:var(--sun-200);}

/* Calculadora de ejemplo */
.offer-calc{
  position:relative; overflow:hidden;
  display:flex; flex-direction:column;
  background:var(--surface);
  color:var(--ink);
  border-radius:28px;
  padding:32px;
  box-shadow:0 40px 80px -30px rgba(0,0,0,.7), 0 0 0 1px rgba(251,176,36,.35);
}
@media(max-width:560px){ .offer-calc{padding:24px 20px;} }
.offer-calc::before{content:''; position:absolute; left:0; right:0; top:0; height:5px; background:var(--sun-grad);}
.oc-tag{
  align-self:flex-start;
  font-size:.7rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  color:var(--sun-700); background:var(--sun-50); border:1px solid var(--sun-100);
  padding:5px 12px; border-radius:100px; margin-bottom:22px;
}
.oc-row{
  display:flex; justify-content:space-between; align-items:baseline; gap:16px;
  padding:14px 0; border-bottom:1px dashed var(--line);
  font-size:.96rem; color:var(--text);
}
.oc-row strong{font-family:var(--font-display); font-size:1.35rem; color:var(--ink); white-space:nowrap; letter-spacing:-.02em;}
.oc-minus strong{color:var(--leaf);}
.oc-total{
  display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap;
  margin-top:18px; padding:20px 22px;
  background:var(--night-900); border-radius:20px;
}
.oc-total span{color:rgba(255,255,255,.75); font-weight:600;}
.oc-total strong{
  font-family:var(--font-display); font-weight:800;
  font-size:clamp(2.2rem, 4.5vw, 3rem); letter-spacing:-.04em; line-height:1;
  background:var(--sun-grad); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.oc-bar{
  display:flex; margin-top:18px; height:36px;
  border-radius:100px; overflow:hidden;
  font-size:.76rem; font-weight:700;
}
.oc-bar span{display:flex; align-items:center; justify-content:center; white-space:nowrap;}
.oc-bar-sub{background:var(--leaf); color:#fff;}
.oc-bar-you{flex:1; background:var(--sun-100); color:var(--sun-800);}
.oc-note{margin-top:auto; padding-top:16px; font-size:.78rem; line-height:1.55; color:var(--mute);}

/* Garantía 0 € */
.zero-guarantee{
  position:relative; overflow:hidden;
  margin-top:22px;
  display:flex; align-items:center; gap:34px;
  padding:30px 40px;
  background:linear-gradient(120deg, rgba(31,138,85,.22), rgba(31,138,85,.08));
  border:2px solid #34d399;
  border-radius:28px;
  box-shadow:0 0 0 6px rgba(52,211,153,.08), 0 30px 60px -30px rgba(52,211,153,.5);
}
@media(max-width:700px){ .zero-guarantee{flex-direction:column; align-items:flex-start; gap:20px; padding:26px 22px;} }
.zg-stamp{
  flex-shrink:0;
  width:150px; height:150px; border-radius:50%;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  background:#1f8a55;
  border:4px dashed rgba(255,255,255,.55);
  outline:6px solid #1f8a55;
  transform:rotate(-8deg);
  color:#fff;
}
@media(max-width:700px){ .zg-stamp{width:116px; height:116px;} }
.zg-amount{font-family:var(--font-display); font-weight:800; font-size:3rem; line-height:1; letter-spacing:-.04em;}
@media(max-width:700px){ .zg-amount{font-size:2.3rem;} }
.zg-label{margin-top:4px; font-size:.78rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase;}
.zg-text h3{
  color:#fff;
  font-size:clamp(1.6rem, 3.4vw, 2.6rem);
  font-weight:800; letter-spacing:-.04em; line-height:1.08;
  margin-bottom:12px;
}
.zg-hl{
  color:#6ee7a8;
  white-space:nowrap;
  border-bottom:4px solid #34d399;
}
.zg-text p{color:rgba(255,255,255,.82); font-size:1.08rem; line-height:1.6; max-width:720px;}
.zg-text p strong{color:#fff;}

/* Garantías */
.offer-guarantees{display:grid; grid-template-columns:repeat(2, 1fr); gap:16px; margin-top:16px;}
@media(max-width:960px){ .offer-guarantees{grid-template-columns:1fr;} }
.og{
  display:flex; gap:14px; align-items:flex-start;
  padding:22px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.1);
  border-radius:20px;
}
.og-ic{
  flex-shrink:0; width:44px; height:44px; border-radius:50%;
  display:grid; place-items:center;
  background:rgba(251,176,36,.14); color:var(--sun-300);
  border:1px solid rgba(251,176,36,.35);
}
.og-ic svg{width:20px; height:20px;}
.og strong{display:block; color:#fff; font-size:1rem; line-height:1.3; margin-bottom:4px;}
.og span:not(.og-ic){display:block; color:rgba(255,255,255,.62); font-size:.88rem; line-height:1.5;}

/* Llamada final */
.offer-cta{
  margin-top:40px;
  display:flex; align-items:center; justify-content:space-between; gap:28px; flex-wrap:wrap;
  padding:34px 38px;
  border-radius:28px;
  background:var(--sun-grad);
  box-shadow:0 30px 70px -25px rgba(255,122,26,.65);
}
@media(max-width:620px){ .offer-cta{padding:26px 22px;} }
.offer-cta-text{flex:1 1 380px;}
.offer-cta h3{color:var(--night-900); font-size:clamp(1.35rem, 2.6vw, 1.9rem); font-weight:800; margin:10px 0 6px;}
.offer-cta p{color:rgba(7,17,31,.8); font-size:1rem;}
.offer-cta-actions{display:flex; gap:10px; flex-wrap:wrap;}
.offer-cta .btn-primary{background:var(--night-900); border-color:var(--night-900); color:#fff;}
.offer-cta .btn-primary:hover{background:var(--night-700); border-color:var(--night-700); box-shadow:0 12px 30px -8px rgba(7,17,31,.6);}
.offer-cta .btn-ghost-light{color:var(--night-900); border-color:rgba(7,17,31,.35);}
.offer-cta .btn-ghost-light:hover{background:rgba(255,255,255,.25); border-color:var(--night-900); color:var(--night-900);}
@media(max-width:620px){ .offer-cta-actions, .offer-cta-actions .btn{width:100%;} }
.countdown--light{color:var(--night-900); background:rgba(255,255,255,.55);}

/* ═══════════════════════════════════════════
   ACTUACIONES SUBVENCIONABLES
═══════════════════════════════════════════ */
.actuaciones{background:var(--bg); padding:100px 0 80px;}
.actuaciones-head{margin-bottom:40px; display:flex; justify-content:space-between; align-items:flex-end; gap:24px; flex-wrap:wrap;}
.actuaciones-title{
  font-size:clamp(1.8rem, 3.2vw, 2.6rem);
  font-weight:800; letter-spacing:-.035em; line-height:1.08;
  max-width:560px;
}
.actuaciones-sub{font-size:1.02rem; color:var(--mute); max-width:460px;}
.actuaciones-grid{display:grid; grid-template-columns:repeat(4, 1fr); gap:16px;}
@media(max-width:1060px){ .actuaciones-grid{grid-template-columns:repeat(2, 1fr);} }
@media(max-width:560px){ .actuaciones-grid{grid-template-columns:1fr; gap:12px;} .actuaciones{padding:72px 0 60px;} }

.act-card{
  position:relative; overflow:hidden;
  display:flex; flex-direction:column; justify-content:space-between; gap:40px;
  min-height:210px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:26px;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
}
.act-card::after{
  content:''; position:absolute; right:-40px; bottom:-40px;
  width:140px; height:140px; border-radius:50%;
  background:var(--chip-bg, var(--sun-50));
  transition:transform .5s var(--ease);
  z-index:0;
}
.act-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-2); border-color:transparent;}
.act-card:hover::after{transform:scale(1.5);}
.act-icon{
  position:relative; z-index:1;
  width:52px; height:52px; border-radius:16px;
  display:grid; place-items:center;
  background:var(--chip, var(--sun-400));
  color:var(--chip-ink, #fff);
}
.act-icon svg{width:26px; height:26px;}
.act-name{
  position:relative; z-index:1;
  font-size:1.18rem; font-weight:700; line-height:1.25; letter-spacing:-.02em;
}
.act-tag{display:block; margin-top:4px; font-family:var(--font); font-size:.82rem; font-weight:600; letter-spacing:0; color:var(--mute);}
@media(max-width:560px){ .act-card{min-height:0; flex-direction:row; align-items:center; justify-content:flex-start; gap:16px; padding:18px;} .act-icon{width:46px; height:46px; flex-shrink:0;} .act-name{font-size:1.05rem;} }

/* Un tono por actuación */
.act--solar  { --chip:var(--sun-400); --chip-ink:var(--night-900); --chip-bg:var(--sun-50); }
.act--fachadas{ --chip:var(--leaf);   --chip-ink:#fff;            --chip-bg:var(--leaf-50); }
.act--portal { --chip:var(--sky);     --chip-ink:#fff;            --chip-bg:var(--sky-50); }
.act--acceso { --chip:var(--night-800); --chip-ink:var(--sun-300); --chip-bg:#eef1f6; }

/* ═══════════════════════════════════════════
   LOGO CAROUSEL
═══════════════════════════════════════════ */
.logos-section{padding:40px 0 36px; background:var(--bg); border-top:1px solid var(--line);}
.logos-eyebrow{
  text-align:center; margin-bottom:24px;
  font-size:.74rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase;
  color:var(--soft);
}
.logos-grid{display:grid; grid-template-columns:repeat(3,1fr); max-width:860px; margin:0 auto;}
.logo-col{
  position:relative;
  height:clamp(118px, 22vw, 165px);
  overflow:hidden;
  display:flex; align-items:center; justify-content:center;
  border-right:1px solid var(--line);
}
.logo-col:last-child{border-right:none;}
.logo-col::before, .logo-col::after{content:''; position:absolute; left:0; right:0; height:16px; z-index:2; pointer-events:none;}
.logo-col::before{top:0; background:linear-gradient(to bottom, var(--bg), transparent);}
.logo-col::after{bottom:0; background:linear-gradient(to top, var(--bg), transparent);}
.logo-slot{
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  padding:6px clamp(8px, 3.5%, 28px);
  transform:translateY(105%); filter:blur(8px); opacity:0;
}
.logo-slot.is-active{transform:translateY(0); filter:blur(0); opacity:1; transition:none;}
.logo-slot.is-exiting{animation:lOut .6s cubic-bezier(.4,0,.6,1) both;}
.logo-slot.is-entering{animation:lIn .6s cubic-bezier(.4,0,.2,1) both;}
.logo-slot img{
  width:auto; height:auto;
  max-height:clamp(70px, 13.5vw, 110px);
  max-width:min(240px, 92%);
  object-fit:contain; display:block;
  user-select:none; pointer-events:none;
}
/* Logos con contenido visualmente pequeño (UE, logo11) */
.logo-slot img[data-lid="2"],
.logo-slot img[data-lid="4"]{max-height:clamp(86px, 16.5vw, 132px); max-width:min(268px, 95%);}
/* Banderas */
.logo-slot img[data-lid="0"],
.logo-slot img[data-lid="1"]{max-height:clamp(42px, 8vw, 62px); max-width:min(140px, 70%);}
@keyframes lOut{ from{transform:translateY(0); filter:blur(0); opacity:1;} to{transform:translateY(-110%); filter:blur(8px); opacity:0;} }
@keyframes lIn { from{transform:translateY(110%); filter:blur(8px); opacity:0;} to{transform:translateY(0); filter:blur(0); opacity:1;} }

/* ═══════════════════════════════════════════
   CITYLINE · banner ilustrado (placeholder)
═══════════════════════════════════════════ */
.cityline{
  width:100%; overflow:hidden; line-height:0; background:var(--bg);
  -webkit-mask-image:linear-gradient(to bottom, transparent 0%, #000 12%, #000 88%, transparent 100%);
  mask-image:linear-gradient(to bottom, transparent 0%, #000 12%, #000 88%, transparent 100%);
}
.cityline img{
  width:100%; display:block; height:auto;
  min-height:64px; max-height:260px;
  object-fit:cover; object-position:center top;
  user-select:none; pointer-events:none;
  filter:sepia(.25) saturate(1.1) hue-rotate(-8deg);
}
@media(max-width:600px){ .cityline img{max-height:110px;} }

/* ═══════════════════════════════════════════
   EMPRESA
═══════════════════════════════════════════ */
.empresa-section{position:relative;}
.empresa-banner{
  position:relative;
  text-align:center;
  max-width:820px; margin:0 auto 64px;
  padding-bottom:52px;
  border-bottom:1px solid var(--line);
}
.empresa-eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-size:.76rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase;
  color:var(--sun-700); margin-bottom:16px;
}
.empresa-eyebrow::before{content:''; width:10px; height:10px; border-radius:50%; background:var(--sun-400); box-shadow:0 0 0 4px rgba(251,176,36,.22);}
.empresa-title{
  font-size:clamp(2.4rem, 5vw, 3.8rem);
  font-weight:800; letter-spacing:-.045em; line-height:1;
  margin-bottom:20px;
}
.empresa-subtitle{font-size:1.1rem; color:var(--mute); max-width:640px; margin:0 auto; line-height:1.65;}
.empresa-title .accent{
  background:var(--sun-grad);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.empresa-subtitle strong{color:var(--ink);}

/* Tres preguntas */
.empresa-qa{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:20px;
  max-width:1200px; margin:0 auto;
}
@media(max-width:960px){ .empresa-qa{grid-template-columns:1fr; gap:16px;} }
.qa-card{
  position:relative;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:26px;
  padding:36px 32px 34px;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease);
}
.qa-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-2); border-color:var(--sun-300);}
.qa-num{
  position:absolute; top:22px; right:26px;
  font-family:var(--font-display); font-weight:800;
  font-size:4.2rem; line-height:1; letter-spacing:-.05em;
  color:var(--sun-100);
}
.qa-ic{
  position:relative;
  width:62px; height:62px; border-radius:50%;
  display:grid; place-items:center;
  background:var(--sun-400); color:var(--night-900);
  margin-bottom:22px;
  box-shadow:0 0 0 8px var(--sun-50);
}
.qa-ic svg{width:30px; height:30px;}
.qa-card h3{font-size:1.65rem; margin-bottom:12px; letter-spacing:-.03em;}
.qa-card p{font-size:1.08rem; line-height:1.65; color:var(--text);}
.qa-card p strong{color:var(--ink);}
/* La respuesta que más importa: el beneficio */
.qa-card--win{
  background:var(--cells), linear-gradient(160deg, var(--night-700), var(--night-900));
  border-color:rgba(251,176,36,.5);
}
.qa-card--win .qa-num{color:rgba(251,176,36,.18);}
.qa-card--win .qa-ic{box-shadow:0 0 0 8px rgba(251,176,36,.15);}
.qa-card--win h3{color:#fff;}
.qa-card--win p{color:rgba(255,255,255,.82);}
.qa-card--win p strong{color:var(--sun-300);}

/* Tú no te preocupas de nada */
.empresa-promise{
  max-width:1200px; margin:24px auto 0;
  display:grid; grid-template-columns:1.4fr 1fr; gap:36px; align-items:center;
  padding:40px 44px;
  background:var(--sun-50);
  border:2px solid var(--sun-200);
  border-radius:28px;
}
@media(max-width:960px){ .empresa-promise{grid-template-columns:1fr; padding:30px 24px; gap:26px;} }
.ep-text h3{font-size:clamp(1.5rem, 2.8vw, 2.1rem); font-weight:800; margin-bottom:22px; letter-spacing:-.035em;}
.ep-text h3 .accent{color:var(--sun-700);}
.ep-list{list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:14px 24px;}
@media(max-width:640px){ .ep-list{grid-template-columns:1fr;} }
.ep-list li{display:flex; align-items:flex-start; gap:12px; font-size:1.08rem; line-height:1.45; color:var(--ink);}
.ep-check{
  flex-shrink:0; width:28px; height:28px; border-radius:50%;
  display:grid; place-items:center;
  background:var(--leaf); color:#fff;
}
.ep-check svg{width:14px; height:14px;}
.ep-actions{display:flex; flex-direction:column; gap:12px;}
.ep-ask{font-weight:700; color:var(--ink); font-size:1.05rem; text-align:center;}
.ep-btn{width:100%; font-size:1.08rem; padding:19px 24px;}
.ep-btn svg{width:22px; height:22px;}

/* ═══════════════════════════════════════════
   GALERÍA · sticky scroll (placeholder)
═══════════════════════════════════════════ */
.gallery-sticky{background:var(--night-900); position:relative;}
.gallery-head{padding:96px 24px 56px; text-align:center; max-width:720px; margin:0 auto;}
.gallery-eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-size:.74rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase;
  color:var(--sun-300); margin-bottom:16px;
}
.gallery-eyebrow::before{content:''; width:9px; height:9px; border-radius:50%; background:var(--sun-400);}
.gallery-head h2{
  color:#fff;
  font-size:clamp(2rem,4vw,3.2rem);
  font-weight:800; letter-spacing:-.04em; line-height:1.08;
  margin-bottom:16px;
}
.gallery-head p{color:rgba(255,255,255,.55); font-size:1.05rem; line-height:1.7;}
.gallery-grid{display:grid; grid-template-columns:1fr 1fr 1fr; gap:10px; padding:0 10px;}
.gallery-col--flow{display:grid; gap:10px;}
.gallery-col--flow figure img{
  width:100%; height:clamp(220px,27vw,390px);
  object-fit:cover; border-radius:var(--radius-lg); display:block;
  transition:transform .5s ease;
}
.gallery-col--pin{
  position:sticky; top:0; height:100vh;
  display:grid; grid-template-rows:1fr 1fr 1fr; gap:10px; padding:10px 0;
}
.gallery-col--pin figure{width:100%; height:100%; overflow:hidden; border-radius:var(--radius-lg);}
.gallery-col--pin figure img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s ease;}
.gallery-col--pin figure:hover img, .gallery-col--flow figure:hover img{transform:scale(1.03);}
.gallery-bottom{padding:52px 24px 110px; text-align:center;}
.gallery-bottom .note{color:rgba(255,255,255,.35); font-size:.8rem; letter-spacing:.08em; text-transform:uppercase;}
.gallery-bottom .cta-row{margin-top:24px; display:flex; gap:12px; justify-content:center; flex-wrap:wrap;}
@media(max-width:860px){ .gallery-col--flow figure img{height:clamp(260px,38vw,400px);} }
@media(max-width:560px){
  .gallery-grid{grid-template-columns:60fr 40fr; gap:5px; padding:0 5px;}
  .gallery-col--flow:last-child{display:none;}
  .gallery-col--flow figure img{height:clamp(300px,75vw,440px);}
  .gallery-head{padding:60px 20px 36px;}
}

/* ═══════════════════════════════════════════
   CLIENTES (Para quién)
═══════════════════════════════════════════ */
.clients-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; align-items:stretch;}
@media(max-width:960px){ .clients-grid{grid-template-columns:1fr;} }
.client{
  display:flex; flex-direction:column;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:36px 32px;
  transition:border-color .25s var(--ease), box-shadow .25s var(--ease), transform .25s var(--ease);
}
.client:hover{border-color:var(--sun-300); box-shadow:var(--shadow-2); transform:translateY(-4px);}
.client .ic{
  width:54px; height:54px; border-radius:16px;
  display:grid; place-items:center;
  background:var(--sun-50); color:var(--sun-700);
  margin-bottom:22px;
}
.client .ic svg{width:25px; height:25px;}
.client h3{font-size:1.4rem; margin-bottom:12px;}
.client p{color:var(--mute); margin-bottom:22px; font-size:.96rem;}
.client .quien{font-size:.92rem; color:var(--text); line-height:1.65; margin-bottom:14px;}
.client .quien strong{color:var(--ink); font-weight:700;}
.client .cuanto{
  font-size:.92rem; line-height:1.6;
  background:var(--sun-50); border:1px solid var(--sun-100);
  border-radius:14px; padding:13px 16px;
  margin-bottom:22px; color:var(--text);
}
.client .cuanto strong{color:var(--ink); font-weight:700;}
.client ul{list-style:none; margin:0 0 28px;}
.client ul li{position:relative; padding:6px 0 6px 28px; font-size:.93rem; color:var(--text);}
.client ul li::before{
  content:''; position:absolute; left:0; top:9px;
  width:18px; height:18px; border-radius:50%;
  background:var(--sun-400) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2307111f' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/10px no-repeat;
}
.client .cta{
  margin-top:auto;
  display:inline-flex; align-items:center; gap:8px; align-self:flex-start;
  font-weight:700; font-size:.95rem;
  color:var(--sun-700);
  transition:gap .2s var(--ease);
}
.client .cta:hover{gap:12px;}
.client .cta svg{width:16px; height:16px;}

.client-badge{
  align-self:flex-start;
  display:inline-flex; align-items:center; gap:7px;
  font-size:.7rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  padding:6px 12px; border-radius:100px;
  margin-bottom:20px;
}
.client-badge.secundario{background:var(--surface-2); color:var(--mute); border:1px solid var(--line);}
.client-badge.destacado{background:rgba(52,211,153,.14); color:#6ee7a8; border:1px solid rgba(52,211,153,.35);}
.client-badge.destacado::before{content:''; width:7px; height:7px; border-radius:50%; background:#34d399; animation:livePulse 2s ease-in-out infinite;}

/* Tarjeta destacada: panel nocturno con borde solar */
.client.featured{
  position:relative;
  background:var(--cells), linear-gradient(165deg, var(--night-700) 0%, var(--night-900) 100%);
  border:1px solid rgba(251,176,36,.45);
  box-shadow:0 30px 60px -25px rgba(11,26,46,.6), 0 0 0 1px rgba(251,176,36,.15) inset;
  transform:translateY(-12px);
}
.client.featured:hover{transform:translateY(-16px); border-color:var(--sun-400);}
@media(max-width:960px){ .client.featured, .client.featured:hover{transform:none;} }
.client.featured .ic{background:var(--sun-400); color:var(--night-900);}
.client.featured h3{color:#fff;}
.client.featured .quien{color:rgba(255,255,255,.75);}
.client.featured .quien strong, .client.featured .cuanto strong{color:#fff;}
.client.featured .cuanto{background:rgba(251,176,36,.1); border-color:rgba(251,176,36,.3); color:rgba(255,255,255,.82);}
.client.featured ul li{color:rgba(255,255,255,.8);}
.client.featured .cta{color:var(--sun-300);}

/* ═══════════════════════════════════════════
   SUBVENCIONES
═══════════════════════════════════════════ */
.grants{display:grid; grid-template-columns:repeat(3, 1fr); gap:20px;}
@media(max-width:960px){ .grants{grid-template-columns:1fr;} }
.grant{
  position:relative;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  overflow:hidden;
  transition:border-color .25s var(--ease), box-shadow .25s var(--ease), transform .25s var(--ease);
}
.grant:hover{border-color:var(--sun-300); box-shadow:var(--shadow-2); transform:translateY(-4px);}
.grant-head{
  position:relative;
  padding:28px 30px 24px;
  background:linear-gradient(160deg, var(--sun-50) 0%, var(--surface) 100%);
  border-bottom:1px solid var(--line-2);
}
.grant-head::before{content:''; position:absolute; left:0; right:0; top:0; height:4px; background:var(--sun-grad);}
.grant .lp{
  display:inline-block;
  font-size:.7rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  color:var(--night-900); background:var(--sun-300);
  padding:5px 11px; border-radius:100px;
  margin-bottom:16px;
}
.grant .ttl{font-family:var(--font-display); font-weight:800; font-size:1.5rem; color:var(--ink); letter-spacing:-.03em; line-height:1.15;}
.grant .sub{margin-top:8px; color:var(--mute); font-size:.9rem; font-weight:500;}
.grant-body{padding:24px 30px 30px;}
.grant-body > p{color:var(--text); font-size:.95rem; margin-bottom:18px;}
.grant-body ul{list-style:none;}
.grant-body ul li{
  position:relative;
  padding:10px 0 10px 26px;
  font-size:.92rem; color:var(--text);
  border-top:1px dashed var(--line);
}
.grant-body ul li:first-child{border-top:none;}
.grant-body ul li::before{
  content:''; position:absolute; left:2px; top:17px;
  width:9px; height:9px; border-radius:50%;
  background:var(--sun-400);
  box-shadow:0 0 0 3px var(--sun-100);
}

/* ── Aviso de próxima convocatoria · banda de amanecer ── */
.grant-soon{
  position:relative; overflow:hidden;
  margin-bottom:36px;
  background:var(--sun-grad);
  border-radius:28px;
  padding:38px 44px;
  display:flex; align-items:center; justify-content:space-between;
  gap:32px; flex-wrap:wrap;
  box-shadow:0 30px 60px -30px rgba(255,122,26,.6);
}
.grant-soon::before{
  content:''; position:absolute; right:-80px; top:-120px;
  width:320px; height:320px; border-radius:50%;
  background:radial-gradient(circle, rgba(255,255,255,.55) 0%, rgba(255,255,255,0) 65%);
  pointer-events:none;
}
.grant-soon-text{position:relative; flex:1 1 440px;}
.grant-soon-tag{
  display:inline-flex; align-items:center; gap:7px;
  font-size:.72rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  color:var(--night-900); margin-bottom:12px; margin-right:8px;
}
.grant-soon-tag svg{width:15px; height:15px;}
.countdown{
  display:inline-block; vertical-align:top;
  font-size:.72rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  color:var(--sun-200); background:var(--night-900);
  padding:4px 11px; border-radius:100px;
}
.countdown[hidden]{display:none;}
.grant-soon h3{font-size:clamp(1.35rem, 2.4vw, 1.8rem); font-weight:800; color:var(--night-900); margin-bottom:10px; letter-spacing:-.03em;}
.grant-soon p{color:rgba(7,17,31,.82); font-size:.98rem; line-height:1.6; max-width:640px;}
.grant-soon-contact{
  position:relative; flex-shrink:0;
  display:flex; flex-direction:column; gap:10px; align-items:stretch;
  background:var(--night-900);
  padding:22px 24px; border-radius:20px;
  min-width:260px;
}
.grant-soon-cta{font-size:.74rem; font-weight:700; color:rgba(255,255,255,.55); text-transform:uppercase; letter-spacing:.14em;}
.grant-soon-contact a{
  display:inline-flex; align-items:center; gap:10px;
  font-size:1rem; font-weight:700; color:#fff;
  transition:color .2s var(--ease);
}
.grant-soon-contact a:hover{color:var(--sun-300);}
.grant-soon-contact a svg{width:18px; height:18px; color:var(--sun-400); flex-shrink:0;}
@media(max-width:700px){ .grant-soon{padding:28px 22px; border-radius:22px;} .grant-soon-contact{min-width:0; width:100%;} }

/* ═══════════════════════════════════════════
   PROCESO · del amanecer al cobro
═══════════════════════════════════════════ */
/* Capas (de arriba a abajo): amanecer · malla de células · oscurecido · foto real */
.process{
  --process-photo:url('../img/fondos/proceso-1920.jpg');
  --process-photo-set:image-set(url('../img/fondos/proceso-1920.webp') type('image/webp'), url('../img/fondos/proceso-1920.jpg') type('image/jpeg'));
  position:relative; overflow:hidden; color:#fff;
  background:
    radial-gradient(ellipse 60% 45% at 20% 110%, rgba(255,122,26,.45) 0%, transparent 70%),
    radial-gradient(ellipse 40% 35% at 20% 105%, rgba(255,196,77,.55) 0%, transparent 70%),
    var(--cells),
    linear-gradient(180deg, rgba(7,17,31,.9) 0%, rgba(11,26,46,.8) 45%, rgba(7,17,31,.93) 100%),
    var(--process-photo) center/cover no-repeat,
    var(--night-900);
}
@supports (background-image:image-set(url('a.webp') type('image/webp'))){
  .process{
    background:
      radial-gradient(ellipse 60% 45% at 20% 110%, rgba(255,122,26,.45) 0%, transparent 70%),
      radial-gradient(ellipse 40% 35% at 20% 105%, rgba(255,196,77,.55) 0%, transparent 70%),
      var(--cells),
      linear-gradient(180deg, rgba(7,17,31,.9) 0%, rgba(11,26,46,.8) 45%, rgba(7,17,31,.93) 100%),
      var(--process-photo-set) center/cover no-repeat,
      var(--night-900);
  }
}
@media(max-width:900px){
  .process{
    --process-photo:url('../img/fondos/proceso-960.jpg');
    --process-photo-set:image-set(url('../img/fondos/proceso-960.webp') type('image/webp'), url('../img/fondos/proceso-960.jpg') type('image/jpeg'));
  }
}
.process .wrap{position:relative; z-index:2;}
.process .eyebrow{color:var(--sun-300);}
.process .h2{color:#fff;}
.process .lead{color:rgba(255,255,255,.75);}
.process-grid{display:grid; grid-template-columns:.95fr 1.3fr; gap:80px; align-items:start;}
.process-grid > div:first-child{position:sticky; top:120px;}
@media(max-width:1000px){ .process-grid{grid-template-columns:1fr; gap:48px;} .process-grid > div:first-child{position:static;} }
.process .btn-dark{background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.18);}
.process .btn-dark:hover{background:var(--sun-400); border-color:var(--sun-400); color:var(--night-900);}

.steps{position:relative; display:flex; flex-direction:column; gap:14px;}
/* Conector entre tarjetas (solo en el hueco, no atraviesa el cristal) */
.step + .step::before{
  content:''; position:absolute; left:47px; top:-15px; width:2px; height:16px;
  background:var(--sun-400); opacity:.7;
}
@media(max-width:560px){ .step + .step::before{left:37px;} }
.step{
  position:relative;
  display:grid; grid-template-columns:48px 1fr; gap:22px;
  padding:24px 26px;
  /* Cristal translúcido: deja ver la foto de fondo desenfocada */
  background:rgba(16,31,53,.42);
  border:1px solid rgba(255,255,255,.16);
  border-radius:var(--radius-lg);
  backdrop-filter:blur(14px) saturate(140%);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  box-shadow:0 10px 30px -12px rgba(0,0,0,.45);
  transition:border-color .25s var(--ease), background .25s var(--ease), transform .25s var(--ease);
}
.step:hover{border-color:rgba(251,176,36,.5); background:rgba(19,38,64,.55); transform:translateX(4px);}
@media(max-width:560px){ .step{grid-template-columns:36px 1fr; gap:16px; padding:20px;} }
.step .n{
  width:44px; height:44px; border-radius:50%;
  display:grid; place-items:center;
  background:var(--night-800);
  border:2px solid var(--sun-400);
  color:var(--sun-300);
  font-family:var(--font-display); font-weight:800; font-size:1.1rem;
}
@media(max-width:560px){ .step .n{width:36px; height:36px; font-size:.95rem;} }
.step.final .n{background:var(--sun-400); color:var(--night-900); box-shadow:0 0 24px rgba(251,176,36,.6);}
.step h3{font-size:1.18rem; margin-bottom:6px; color:#fff;}
.step p{color:rgba(255,255,255,.7); font-size:.94rem;}
.step .pill{
  display:inline-block; margin-top:12px;
  font-size:.7rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:var(--sun-200);
  background:rgba(251,176,36,.1);
  border:1px solid rgba(251,176,36,.28);
  padding:4px 11px; border-radius:100px;
}

/* ═══════════════════════════════════════════
   POR QUÉ
═══════════════════════════════════════════ */
.why{background:var(--surface-2); position:relative;}
.why-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:18px;}
@media(max-width:960px){ .why-grid{grid-template-columns:1fr 1fr;} }
@media(max-width:620px){ .why-grid{grid-template-columns:1fr;} }
.wc{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:32px 30px;
  transition:border-color .25s var(--ease), box-shadow .25s var(--ease), transform .25s var(--ease);
}
.wc:hover{border-color:var(--sun-300); box-shadow:var(--shadow-1); transform:translateY(-3px);}
.wc .ic{
  width:50px; height:50px; border-radius:50%;
  display:grid; place-items:center;
  background:var(--sun-grad);
  color:var(--night-900);
  margin-bottom:22px;
}
.wc .ic svg{width:22px; height:22px;}
.wc h3{font-size:1.2rem; margin-bottom:10px;}
.wc p{color:var(--mute); font-size:.94rem; line-height:1.65;}

.why-cta{
  position:relative; overflow:hidden;
  margin-top:56px;
  padding:44px;
  background:var(--cells), linear-gradient(120deg, var(--night-900) 0%, var(--night-700) 100%);
  border-radius:28px;
  display:flex; align-items:center; justify-content:space-between;
  gap:28px; flex-wrap:wrap;
}
.why-cta::before{
  content:''; position:absolute; right:-60px; bottom:-160px;
  width:340px; height:340px; border-radius:50%;
  background:radial-gradient(circle, rgba(255,196,77,.55) 0%, rgba(255,122,26,.25) 40%, transparent 70%);
  pointer-events:none;
}
.why-cta > *{position:relative;}
.why-cta h3{color:#fff; font-size:clamp(1.4rem, 2.6vw, 1.9rem); font-weight:800; margin-bottom:8px;}
.why-cta p{color:rgba(255,255,255,.68); font-size:.98rem;}
.why-cta .ctas{display:flex; gap:10px; flex-wrap:wrap;}
@media(max-width:620px){ .why-cta{padding:30px 24px;} }

/* ═══════════════════════════════════════════
   TESTIMONIOS · carrusel Google (mismo comportamiento que SUBVEN)
═══════════════════════════════════════════ */
#testimonios{background:var(--bg);}
#testimonios .eyebrow::before{display:none;}
.testi-carousel-outer{
  overflow-x:hidden; overflow-y:visible;
  position:relative;
  width:calc(100% + 10px);
  margin-right:-10px;
}
.testi-track{
  display:flex; gap:20px;
  padding:8px 0 14px;
  transition:transform .78s cubic-bezier(.4,0,.2,1);
  will-change:transform;
}
.testi{
  /* La pista mide el contenedor + 10 px: 3 tarjetas + 2 huecos de 20 px encajan justas */
  flex:0 0 calc((100% - 50px) / 3);
  min-width:260px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:28px 30px;
  display:flex; flex-direction:column;
  transition:border-color .25s var(--ease), box-shadow .25s var(--ease);
}
@media(max-width:900px){ .testi{flex:0 0 calc(100% - 10px);} }
.testi:hover{border-color:var(--sun-300); box-shadow:var(--shadow-1);}
.testi-badge{display:flex; align-items:center; gap:7px; margin-bottom:12px;}
.testi-badge svg{width:16px; height:16px; flex-shrink:0;}
.testi-badge span{font-size:.8rem; color:var(--mute); font-weight:500;}
.testi .stars{color:var(--sun-500); letter-spacing:.08em; margin-bottom:12px; font-size:1.1rem;}
.testi .stars .off{color:var(--line);}
.testi q{
  display:block; flex:1;
  font-size:1.02rem; color:var(--text); line-height:1.72;
  quotes:"«" "»";
}
.testi q::before{content:open-quote;}
.testi q::after{content:close-quote;}
.testi .author{
  display:flex; align-items:center; gap:14px;
  margin-top:20px; padding-top:20px;
  border-top:1px solid var(--line-2);
}
.testi .avatar{
  width:46px; height:46px; flex-shrink:0; border-radius:50%;
  display:grid; place-items:center;
  font-weight:700; font-size:.94rem;
  color:var(--night-900); background:var(--sun-grad);
}
.testi .name{font-weight:700; color:var(--ink); font-size:.98rem; display:block;}
.testi .role{color:var(--mute); font-size:.88rem; display:block; margin-top:2px;}
.testi-nav{display:flex; justify-content:center; gap:8px; margin-top:30px;}
.testi-dot{
  width:9px; height:9px; border-radius:5px; padding:0;
  background:var(--line-2); border:1px solid var(--line);
  cursor:pointer;
  transition:background .25s var(--ease), width .25s var(--ease);
}
.testi-dot.active{background:var(--sun-500); border-color:var(--sun-500); width:26px;}

/* ═══════════════════════════════════════════
   FAQ
═══════════════════════════════════════════ */
#faq{background:var(--bg) !important;}
.faq-list{max-width:860px; margin:0 auto; display:flex; flex-direction:column; gap:12px;}
.fi{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:18px;
  transition:border-color .25s var(--ease), box-shadow .25s var(--ease);
}
.fi.open{border-color:var(--sun-300); box-shadow:var(--shadow-1);}
.fi-q{
  width:100%;
  display:flex; justify-content:space-between; align-items:center; gap:18px;
  padding:22px 24px;
  text-align:left;
  font-family:var(--font-display);
  font-weight:700; font-size:1.08rem; letter-spacing:-.015em;
  color:var(--ink);
}
.fi-q:hover{color:var(--sun-700);}
.fi-icon{
  flex-shrink:0; width:34px; height:34px; border-radius:50%;
  display:grid; place-items:center;
  background:var(--sun-50); color:var(--sun-700);
  transition:transform .3s var(--ease), background .3s var(--ease), color .3s var(--ease);
}
.fi-icon svg{width:16px; height:16px;}
.fi.open .fi-icon{transform:rotate(45deg); background:var(--sun-400); color:var(--night-900);}
.fi-a{max-height:0; overflow:hidden; transition:max-height .35s var(--ease);}
.fi.open .fi-a{max-height:480px;}
.fi-a-inner{padding:0 24px 24px; font-size:.97rem; line-height:1.75; max-width:720px;}
.fi-a-inner strong{color:var(--ink); font-weight:700;}

/* ═══════════════════════════════════════════
   CONTACTO
═══════════════════════════════════════════ */
.contact-dark{
  position:relative; overflow:hidden;
  background:var(--surface-2); color:var(--text);
  padding:120px 0 100px;
}
@media(max-width:900px){ .contact-dark{padding:80px 0 72px;} }
.contact-sun{
  position:absolute; right:-220px; top:-220px;
  width:560px; height:560px; border-radius:50%;
  background:radial-gradient(circle, rgba(255,196,77,.45) 0%, rgba(255,150,40,.15) 40%, transparent 68%);
  pointer-events:none;
}
.contact-dark .wrap{position:relative;}
.contact-dark .sect-head{margin-bottom:56px; text-align:center;}
.contact-dark h2{color:var(--ink);}
.contact-dark .lead{margin-inline:auto;}

.contact-grid{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);
  gap:24px; align-items:stretch;
}
@media(max-width:980px){ .contact-grid{grid-template-columns:1fr;} }

/* Panel */
.cp{
  position:relative; overflow:hidden;
  display:flex; flex-direction:column; gap:16px;
  padding:34px;
  border-radius:30px;
  background:
    radial-gradient(ellipse 70% 50% at 100% 0%, rgba(255,150,40,.3) 0%, transparent 70%),
    var(--cells),
    linear-gradient(165deg, var(--night-700), var(--night-900));
  box-shadow:0 40px 80px -36px rgba(7,17,31,.7);
  color:#fff;
}
@media(max-width:560px){ .cp{padding:24px 18px; border-radius:24px;} }
.cp-head h3{color:#fff; font-size:clamp(1.5rem, 2.6vw, 1.9rem); font-weight:800; letter-spacing:-.035em; margin:14px 0 6px;}
.cp-head p{color:rgba(255,255,255,.72); font-size:1.02rem;}
.cp-status{
  display:inline-flex; align-items:center; gap:8px;
  font-size:.8rem; font-weight:700; letter-spacing:.04em;
  padding:6px 13px; border-radius:100px;
}
.cp-status[hidden]{display:none;}
.cp-status::before{content:''; width:8px; height:8px; border-radius:50%;}
.cp-status.is-open{color:#6ee7a8; background:rgba(52,211,153,.12); border:1px solid rgba(52,211,153,.35);}
.cp-status.is-open::before{background:#34d399; animation:livePulse 2s ease-in-out infinite;}
.cp-status.is-closed{color:var(--sun-200); background:rgba(251,176,36,.1); border:1px solid rgba(251,176,36,.3);}
.cp-status.is-closed::before{background:var(--sun-400);}

/* Teléfono · protagonista */
.cp-phone{
  display:flex; align-items:center; gap:18px;
  padding:20px 22px;
  border-radius:22px;
  background:var(--sun-grad);
  color:var(--night-900);
  box-shadow:0 18px 40px -16px rgba(255,140,30,.7);
  transition:transform .25s var(--ease), box-shadow .25s var(--ease);
}
.cp-phone:hover{transform:translateY(-3px); box-shadow:0 24px 48px -16px rgba(255,140,30,.85);}
.cp-phone-ic{
  flex-shrink:0; width:58px; height:58px; border-radius:50%;
  display:grid; place-items:center;
  background:var(--night-900); color:var(--sun-300);
}
.cp-phone-ic svg{width:26px; height:26px;}
.cp-phone-text{flex:1; display:flex; flex-direction:column; line-height:1.1; min-width:0;}
.cp-phone-lbl{font-size:.8rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; opacity:.75;}
.cp-phone-num{font-family:var(--font-display); font-weight:800; font-size:clamp(1.7rem, 3.4vw, 2.3rem); letter-spacing:-.03em; margin-top:4px; white-space:nowrap;}
.cp-phone-go{
  flex-shrink:0; width:44px; height:44px; border-radius:50%;
  display:grid; place-items:center;
  background:rgba(7,17,31,.12);
  transition:transform .25s var(--ease), background .25s var(--ease);
}
.cp-phone:hover .cp-phone-go{transform:translateX(4px); background:rgba(7,17,31,.2);}
.cp-phone-go svg{width:20px; height:20px;}
@media(max-width:420px){ .cp-phone{gap:12px; padding:16px;} .cp-phone-ic{width:48px; height:48px;} .cp-phone-go{display:none;} }

/* WhatsApp + email */
.cp-row{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
@media(max-width:480px){ .cp-row{grid-template-columns:1fr;} }
.cp-tile{
  display:grid; grid-template-columns:auto 1fr; grid-template-areas:"ic lbl" "ic val";
  column-gap:14px; align-items:center;
  padding:16px 18px;
  border-radius:20px;
  transition:transform .25s var(--ease), background .25s var(--ease), border-color .25s var(--ease);
}
.cp-tile:hover{transform:translateY(-2px);}
.cp-tile-ic{grid-area:ic; width:46px; height:46px; border-radius:50%; display:grid; place-items:center;}
.cp-tile-ic svg{width:22px; height:22px;}
.cp-tile-lbl{grid-area:lbl; font-weight:800; font-size:1.05rem; line-height:1.2;}
.cp-tile-val{grid-area:val; font-size:.9rem; line-height:1.3; opacity:.85; overflow-wrap:anywhere;}
.cp-wa{background:#128c4a; color:#fff;}
.cp-wa:hover{background:#0e7a40;}
.cp-wa .cp-tile-ic{background:rgba(255,255,255,.18);}
.cp-mail{background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.16); color:#fff;}
.cp-mail:hover{background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.3);}
.cp-mail .cp-tile-ic{background:var(--sun-400); color:var(--night-900);}

/* Horario y oficina */
.cp-info{
  margin-top:auto;
  display:grid; grid-template-columns:1fr; gap:14px;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.1);
}
.cp-info-item{display:flex; gap:12px; align-items:flex-start;}
.cp-info-ic{
  flex-shrink:0; width:40px; height:40px; border-radius:50%;
  display:grid; place-items:center;
  background:rgba(251,176,36,.14); color:var(--sun-300);
  border:1px solid rgba(251,176,36,.3);
}
.cp-info-ic svg{width:18px; height:18px;}
.cp-info-lbl{display:block; font-size:.74rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--sun-300); margin-bottom:4px;}
.cp-info-val{display:inline; font-size:.98rem; line-height:1.45; color:rgba(255,255,255,.88);}

/* Mapa */
.map-card{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:30px;
  overflow:hidden;
  box-shadow:var(--shadow-2);
  display:flex; flex-direction:column;
  min-height:520px;
}
@media(max-width:980px){ .map-card{min-height:400px;} }
.map-head{
  display:flex; align-items:center; justify-content:space-between;
  gap:14px; flex-wrap:wrap;
  padding:18px 22px;
  border-bottom:1px solid var(--line-2);
}
.map-head-left{display:flex; align-items:center; gap:14px; min-width:0;}
.map-pin{width:44px; height:44px; border-radius:50%; display:grid; place-items:center; background:var(--sun-400); color:var(--night-900); flex-shrink:0;}
.map-pin svg{width:20px; height:20px;}
.map-head-text{min-width:0;}
.map-head-text h4{font-size:1.08rem; font-weight:700; margin:0 0 2px;}
.map-head-text p{font-size:.92rem; color:var(--mute); line-height:1.3;}
.map-btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:12px 20px; border-radius:100px;
  background:var(--night-800); color:#fff;
  font-size:.92rem; font-weight:700;
  transition:background .2s var(--ease), transform .2s var(--ease);
  flex-shrink:0;
}
.map-btn:hover{background:var(--night-700); transform:translateY(-1px);}
.map-btn svg{width:15px; height:15px;}
.map-frame{flex:1; width:100%; border:0; display:block; min-height:320px; filter:saturate(.9) sepia(.06);}

/* Franja de confianza */
.contact-trust{
  list-style:none;
  margin-top:24px;
  display:grid; grid-template-columns:repeat(4, 1fr); gap:12px;
}
@media(max-width:1100px){ .contact-trust{grid-template-columns:repeat(2, 1fr);} }
@media(max-width:560px){ .contact-trust{grid-template-columns:1fr;} }
.contact-trust li{
  display:inline-flex; align-items:center; gap:10px;
  padding:14px 18px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:18px;
  font-size:.96rem; font-weight:600; color:var(--ink); line-height:1.35;
}
.ct-dot{flex-shrink:0; width:9px; height:9px; border-radius:50%; background:var(--sun-400); box-shadow:0 0 0 4px var(--sun-100);}

/* ═══════════════════════════════════════════
   FOOTER
═══════════════════════════════════════════ */
footer{
  position:relative; overflow:hidden;
  background:var(--cells), var(--night-900);
  color:rgba(255,255,255,.65);
  padding:88px 0 30px;
}
footer::before{
  content:''; position:absolute; left:0; right:0; top:0; height:3px;
  background:var(--sun-grad);
}
.foot{display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:48px; margin-bottom:56px;}
@media(max-width:800px){ .foot{grid-template-columns:1fr 1fr; gap:40px 24px;} }
@media(max-width:500px){ .foot{grid-template-columns:1fr;} }
.foot .logo{color:#fff; margin-bottom:18px;}
.foot p{color:rgba(255,255,255,.6); margin-bottom:22px; font-size:.93rem; line-height:1.7; max-width:380px;}
.foot h4{color:#fff; font-family:var(--font); font-size:.74rem; text-transform:uppercase; letter-spacing:.16em; margin-bottom:18px; font-weight:700;}
.foot ul{list-style:none;}
.foot ul li{margin-bottom:10px;}
.foot ul a, .foot ul li{font-size:.92rem; color:rgba(255,255,255,.7); transition:color .2s;}
.foot ul a:hover{color:var(--sun-300);}
.foot-socials{display:flex; gap:8px;}
.foot-socials a{
  width:38px; height:38px; border-radius:50%;
  display:grid; place-items:center;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.12);
  color:rgba(255,255,255,.75);
  transition:background .2s, border-color .2s, color .2s;
}
.foot-socials a svg{width:16px; height:16px;}
.foot-socials a:hover{background:var(--sun-400); border-color:var(--sun-400); color:var(--night-900);}
.foot-bottom{
  padding-top:28px;
  border-top:1px solid rgba(255,255,255,.08);
  display:flex; justify-content:space-between; gap:18px; flex-wrap:wrap;
  font-size:.84rem; color:rgba(255,255,255,.45);
}
.foot-bottom a:hover{color:var(--sun-300);}

/* ═══════════════════════════════════════════
   FAB · WhatsApp (principal) + llamada (secundaria)
═══════════════════════════════════════════ */
.fab-stack{
  position:fixed; bottom:22px; right:22px; z-index:40;
  display:flex; flex-direction:column; align-items:flex-end; gap:10px;
}
.fab{
  display:inline-flex; align-items:center; gap:10px;
  padding:13px 20px 13px 15px;
  background:#128c4a; color:#fff;
  border-radius:100px;
  box-shadow:0 12px 28px rgba(7,17,31,.25);
  font-weight:700; font-size:.98rem;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .2s var(--ease);
}
.fab:hover{transform:translateY(-2px); background:#0e7a40; box-shadow:0 18px 34px rgba(7,17,31,.3);}
.fab svg{width:24px; height:24px;}
.fab-call{
  width:50px; height:50px; border-radius:50%;
  display:grid; place-items:center;
  background:var(--night-800); color:var(--sun-300);
  border:2px solid var(--sun-400);
  box-shadow:0 10px 24px rgba(7,17,31,.25);
  margin-right:6px;
  transition:transform .25s var(--ease), background .2s var(--ease), color .2s var(--ease);
}
.fab-call:hover{transform:translateY(-2px); background:var(--sun-400); color:var(--night-900);}
.fab-call svg{width:21px; height:21px;}
@media(max-width:600px){
  .fab-stack{bottom:16px; right:16px;}
  .fab .lbl{display:none;}
  .fab{padding:15px; border-radius:50%;}
  .fab svg{width:26px; height:26px;}
  .fab-call{width:48px; height:48px; margin-right:4px;}
}

/* ═══════════════════════════════════════════
   REVEAL
═══════════════════════════════════════════ */
.reveal{opacity:0; transform:translateY(22px); transition:opacity .75s var(--ease), transform .75s var(--ease);}
.reveal.in{opacity:1; transform:none;}
.d1{transition-delay:.08s;} .d2{transition-delay:.16s;} .d3{transition-delay:.24s;} .d4{transition-delay:.32s;}
/* .client.featured lleva su propio transform: no lo pisa el reveal */
.client.featured.reveal.in{transform:translateY(-12px);}
@media(max-width:960px){ .client.featured.reveal.in{transform:none;} }

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important;}
}

/* ═══════════════════════════════════════════
   PARTNER MODAL · Administradores de Fincas
═══════════════════════════════════════════ */
.partner-overlay{
  position:fixed; inset:0; z-index:9000;
  background:rgba(5,13,24,.72);
  backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px);
  opacity:0; pointer-events:none;
  transition:opacity .35s var(--ease);
}
.partner-overlay.open{opacity:1; pointer-events:auto;}
.partner-modal{
  position:fixed; z-index:9001;
  width:min(520px, 96vw);
  background:var(--cells), linear-gradient(165deg, var(--night-700), var(--night-900));
  bottom:0; left:50%;
  transform:translateX(-50%) translateY(110%);
  border-radius:var(--radius-lg) var(--radius-lg) 0 0;
  display:flex; flex-direction:column;
  overflow:hidden;
  max-height:84vh; max-height:84dvh;
  transition:transform .44s cubic-bezier(.22,.9,.24,1);
  will-change:transform;
  border-top:3px solid var(--sun-400);
  pointer-events:none;
}
.partner-modal.open{transform:translateX(-50%) translateY(0); pointer-events:auto;}
.partner-body{
  flex:1 1 auto; min-height:0;
  overflow-y:auto; overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  padding:2px 32px 30px;
  padding-bottom:calc(30px + env(safe-area-inset-bottom, 0px));
}
@media(min-width:640px){
  .partner-modal{
    top:50%; bottom:auto;
    transform:translate(-50%,-50%) scale(.95);
    border-radius:26px;
    border:1px solid rgba(251,176,36,.4);
    max-height:calc(100vh - 40px); max-height:calc(100dvh - 40px);
    opacity:0;
    transition:transform .42s cubic-bezier(.22,.9,.24,1), opacity .3s var(--ease);
    box-shadow:0 40px 80px -20px rgba(0,0,0,.6);
  }
  .partner-modal.open{transform:translate(-50%,-50%) scale(1); opacity:1;}
}
.partner-close{
  flex:0 0 auto; align-self:flex-end;
  margin:12px 12px 0;
  width:44px; height:44px; border-radius:50%;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.24);
  color:#fff;
  display:flex; align-items:center; justify-content:center;
  -webkit-tap-highlight-color:transparent;
  transition:background .2s, border-color .2s, transform .15s var(--ease);
}
.partner-close:hover{background:rgba(255,255,255,.18);}
.partner-close:active{transform:scale(.92);}
.partner-close svg{width:21px; height:21px;}
@media(max-width:639px){
  .partner-body{padding:2px 22px 24px; padding-bottom:calc(24px + env(safe-area-inset-bottom, 0px));}
  .partner-close{margin:10px 10px 0;}
}
.partner-eyebrow{display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin-bottom:12px;}
.partner-eyebrow-text{
  font-size:clamp(.8rem, 3.2vw, 1rem);
  font-weight:700; letter-spacing:.04em; text-transform:uppercase;
  color:#fff; line-height:1.35;
}
.partner-exclusive-tag{
  background:var(--sun-grad); color:var(--night-900);
  font-size:.62rem; font-weight:800; letter-spacing:.08em;
  padding:3px 9px; border-radius:100px; line-height:1.6;
}
.partner-icon{
  width:46px; height:46px; border-radius:50%;
  background:rgba(251,176,36,.14);
  display:flex; align-items:center; justify-content:center;
  margin-bottom:14px;
}
.partner-icon svg{width:22px; height:22px; stroke:var(--sun-300);}
.partner-title{font-size:clamp(1.5rem,3.8vw,2rem); color:#fff; margin-bottom:10px; line-height:1.08; letter-spacing:-.035em;}
.partner-lead{font-size:.95rem; color:rgba(255,255,255,.68); line-height:1.7; margin-bottom:22px;}
.partner-lead strong{color:var(--sun-300);}
.partner-perks{list-style:none; display:flex; flex-direction:column; gap:10px; margin-bottom:26px;}
.partner-perks li{display:flex; align-items:flex-start; gap:11px; font-size:.92rem; color:rgba(255,255,255,.8); line-height:1.55;}
.perk-icon{
  flex-shrink:0; width:20px; height:20px; margin-top:1px;
  background:var(--sun-400); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
}
.perk-icon svg{width:10px; height:10px; stroke:var(--night-900);}
.partner-actions{display:flex; flex-direction:column; gap:10px; margin-bottom:18px;}
@media(min-width:440px){ .partner-actions{flex-direction:row; align-items:center;} }
.partner-cta{
  flex:1;
  background:var(--sun-400); color:var(--night-900);
  padding:15px 18px; font-size:.96rem; font-weight:700;
  border-radius:100px; gap:9px; justify-content:center;
  transition:background .2s var(--ease), transform .2s var(--ease), box-shadow .2s var(--ease);
}
.partner-cta svg{width:18px; height:18px; flex-shrink:0;}
.partner-cta:hover{background:var(--sun-300); transform:translateY(-1px); box-shadow:var(--glow);}
.partner-dismiss{color:rgba(255,255,255,.4); font-size:.84rem; padding:8px 10px; transition:color .2s; white-space:nowrap; flex-shrink:0;}
.partner-dismiss:hover{color:rgba(255,255,255,.7);}
.partner-proof{display:flex; align-items:center; gap:7px; font-size:.76rem; color:rgba(255,255,255,.4); justify-content:center; line-height:1.4;}
.partner-proof svg{width:13px; height:13px; flex-shrink:0;}
@media(max-height:520px){
  .partner-modal{max-height:94vh; max-height:94dvh;}
  .partner-icon{display:none;}
  .partner-title{margin-bottom:8px;}
  .partner-lead{margin-bottom:14px;}
  .partner-perks{gap:7px; margin-bottom:16px;}
  .partner-actions{margin-bottom:12px;}
}


/* ═══════════════════════════════════════════
   LEGIBILIDAD · público 40–65+
   Textos secundarios más grandes y con más contraste.
═══════════════════════════════════════════ */
:root{ --mute:#556070; }
.lead{font-size:1.15rem;}
.stat .l{font-size:.95rem; color:rgba(255,255,255,.75);}
.offer-steps li span:not(.os-ic){font-size:.93rem; color:rgba(255,255,255,.75);}
.og span:not(.og-ic){font-size:.95rem; color:rgba(255,255,255,.75);}
.oc-note{font-size:.85rem;}
.client .quien, .client .cuanto, .client ul li{font-size:1rem;}
.grant-body > p, .grant-body ul li{font-size:1rem;}
.step p{font-size:1rem; color:rgba(255,255,255,.78);}
.wc p{font-size:1rem;}
.fi-a-inner{font-size:1.03rem;}
.hc-label{font-size:.76rem;}
.btn{font-size:1rem;}


/* ═══════════════════════════════════════════
   PORTADA · botones principales
═══════════════════════════════════════════ */
.hero-actions{display:flex; flex-wrap:wrap; gap:12px; margin-top:32px;}
.hero-cta{box-shadow:var(--glow);}
.hero-cta svg{width:22px; height:22px;}
.hero-actions + .hero-contact{margin-top:22px;}
@media(max-width:560px){
  .hero-actions .btn{width:100%;}
}

/* ═══════════════════════════════════════════
   TEST · ¿Me corresponde la ayuda?
═══════════════════════════════════════════ */
.quiz-section{padding:110px 0; background:var(--surface-2);}
@media(max-width:900px){ .quiz-section{padding:76px 0;} }
.quiz{display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:56px; align-items:center;}
@media(max-width:960px){ .quiz{grid-template-columns:1fr; gap:32px;} }
.quiz-perks{list-style:none; margin-top:24px; display:flex; flex-direction:column; gap:10px;}
.quiz-perks li{
  display:flex; align-items:center; gap:10px;
  font-size:1.05rem; font-weight:600; color:var(--ink);
}
.quiz-perks li::before{
  content:''; width:24px; height:24px; border-radius:50%; flex-shrink:0;
  background:var(--leaf) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/12px no-repeat;
}

.quiz-card{
  position:relative;
  background:var(--surface);
  border:2px solid var(--sun-200);
  border-radius:30px;
  padding:30px;
  box-shadow:var(--shadow-2);
  min-height:430px;
}
@media(max-width:560px){ .quiz-card{padding:22px 18px; border-radius:24px; min-height:0;} }
.quiz-top{display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:36px;}
.quiz-count{margin-left:auto; font-size:.86rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--sun-700);}
.quiz-back{
  display:inline-flex; align-items:center; gap:6px;
  padding:7px 12px 7px 8px; border-radius:100px;
  font-size:.92rem; font-weight:600; color:var(--mute);
  border:1px solid var(--line);
  transition:color .2s, border-color .2s;
}
.quiz-back[hidden]{display:none;}
.quiz-back:hover{color:var(--ink); border-color:var(--sun-300);}
.quiz-back svg{width:16px; height:16px;}
.quiz-bar{height:8px; border-radius:8px; background:var(--sun-50); margin:12px 0 26px; overflow:hidden;}
.quiz-bar span{display:block; height:100%; width:0; background:var(--sun-grad); border-radius:8px; transition:width .45s var(--ease);}

.quiz-step{display:none;}
.quiz-step.is-active{display:block; animation:quizIn .35s var(--ease);}
@keyframes quizIn{from{opacity:0; transform:translateX(16px);} to{opacity:1; transform:none;}}
.quiz-step h3{font-size:clamp(1.35rem, 2.6vw, 1.7rem); margin-bottom:20px; letter-spacing:-.03em;}
.quiz-opts{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
@media(max-width:480px){ .quiz-opts{grid-template-columns:1fr;} }
.quiz-opts--prov{grid-template-columns:repeat(4, 1fr);}
@media(max-width:620px){ .quiz-opts--prov{grid-template-columns:repeat(2, 1fr);} }
.quiz-opt{
  display:flex; align-items:center; gap:14px;
  min-height:64px;
  padding:14px 16px;
  text-align:left;
  font-size:1.05rem; font-weight:600; color:var(--ink);
  background:var(--bg);
  border:2px solid var(--line);
  border-radius:18px;
  transition:border-color .2s var(--ease), background .2s var(--ease), transform .15s var(--ease);
}
.quiz-opt:hover{border-color:var(--sun-400); background:var(--sun-50);}
.quiz-opt:active{transform:scale(.98);}
.quiz-opt.is-picked{border-color:var(--sun-500); background:var(--sun-100);}
.quiz-opt--sm{justify-content:center; text-align:center; min-height:56px;}
.qo-ic{
  flex-shrink:0; width:42px; height:42px; border-radius:50%;
  display:grid; place-items:center;
  background:var(--sun-400); color:var(--night-900);
}
.qo-ic svg{width:20px; height:20px;}

.quiz-result{text-align:center; padding:6px 4px 0; animation:quizIn .35s var(--ease);}
.quiz-result[hidden]{display:none;}
.qr-ic{
  width:70px; height:70px; border-radius:50%;
  display:grid; place-items:center; margin:0 auto 18px;
  background:var(--leaf); color:#fff;
  box-shadow:0 0 0 10px var(--leaf-50);
}
.qr-ic svg{width:32px; height:32px;}
.qr-title{font-size:clamp(1.3rem, 2.5vw, 1.65rem); margin-bottom:12px; letter-spacing:-.03em;}
.qr-text{font-size:1.05rem; line-height:1.65; max-width:520px; margin:0 auto;}
.qr-note{
  margin:14px auto 0; max-width:520px;
  font-size:.98rem; color:var(--sun-800);
  background:var(--sun-50); border:1px solid var(--sun-200);
  border-radius:14px; padding:10px 14px;
}
.qr-note[hidden]{display:none;}
.qr-btn{margin-top:22px; width:100%; max-width:420px;}
.qr-btn svg{width:22px; height:22px;}
.quiz-restart{display:block; margin:14px auto 0; font-size:.95rem; font-weight:600; color:var(--mute); text-decoration:underline; text-underline-offset:3px;}
.quiz-restart:hover{color:var(--ink);}
.quiz-noscript{font-size:1.05rem; font-weight:600;}

/* ═══════════════════════════════════════════
   RENDIMIENTO · móviles y equipos modestos
   Se quitan los efectos más costosos (desenfoques,
   giros continuos, filtros) donde menos se notan.
═══════════════════════════════════════════ */
@media (max-width:900px){
  .step{backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); background:rgba(16,31,53,.55);}
  .hero-sun-rays{animation:none;}
  .hero-sun-core{animation:none;}
  .offer-glow{animation:none;}
  .header, .hero-panel, .hero-contact, .drawer-backdrop, .partner-overlay{
    backdrop-filter:none; -webkit-backdrop-filter:none;
  }
  .header{background:rgba(253,249,242,.97);}
  .hero-panel{background:rgba(7,17,31,.9);}
  .hero-contact{background:rgba(7,17,31,.8);}
  .cityline img, .map-frame{filter:none;}
  .gallery-col--pin figure:hover img, .gallery-col--flow figure:hover img{transform:none;}
}
@media (prefers-reduced-motion: reduce){
  .hero-sun-rays, .hero-sun-rays::after, .hero-sun-core, .offer-glow, .hp-live,
  .client-badge.destacado::before, .cp-status.is-open::before{animation:none !important;}
}


/* ═══════════════════════════════════════════
   PARA QUIÉN + AYUDAS · detalle del programa en cada tarjeta
═══════════════════════════════════════════ */
#servicios .grant-soon{margin-bottom:40px;}
.client-prog{
  margin:0 0 26px;
  padding:16px 18px 10px;
  background:var(--bg);
  border:1px solid var(--line);
  border-radius:18px;
}
.cp-prog-head{
  display:flex; align-items:center; gap:12px;
  padding-bottom:12px; margin-bottom:6px;
  border-bottom:1px solid var(--line);
}
.cp-prog-ic{
  flex-shrink:0; width:38px; height:38px; border-radius:12px;
  display:grid; place-items:center;
  background:var(--sun-grad); color:var(--night-900);
}
.cp-prog-ic svg{width:19px; height:19px;}
.cp-prog-text{display:flex; flex-direction:column; min-width:0; line-height:1.25;}
.cp-prog-kicker{font-size:.7rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--mute);}
.cp-prog-name{font-family:var(--font-display); font-weight:800; font-size:1.08rem; letter-spacing:-.02em; color:var(--ink); margin-top:2px;}
.cp-prog-sub{font-size:.86rem; color:var(--mute); margin-top:1px;}
.client .client-prog ul{margin:0;}
.client .client-prog ul li{font-size:.97rem;}
.client.featured .client-prog{background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.14);}
.client.featured .cp-prog-head{border-bottom-color:rgba(255,255,255,.12);}
.client.featured .cp-prog-kicker, .client.featured .cp-prog-sub{color:rgba(255,255,255,.6);}
.client.featured .cp-prog-name{color:#fff;}
.program-stats--after{margin:28px 0 0;}

/* Por qué · 5 tarjetas: la última fila queda centrada */
.why-grid{display:flex; flex-wrap:wrap; justify-content:center; gap:18px;}
.why-grid .wc{flex:0 1 calc((100% - 36px) / 3);}
@media(max-width:960px){ .why-grid .wc{flex-basis:calc((100% - 18px) / 2);} }
@media(max-width:620px){ .why-grid .wc{flex-basis:100%;} }

/* Sello "Sin sorpresas" (sustituye al 0 €) */
.zg-icon{display:grid; place-items:center;}
.zg-icon svg{width:54px; height:54px;}
@media(max-width:700px){ .zg-icon svg{width:42px; height:42px;} }
.zg-label{
  text-align:center; line-height:1.2;
  margin-top:6px; padding:0 18px;
  font-size:.62rem; letter-spacing:.1em;
}
.zg-icon svg{width:44px; height:44px;}
@media(max-width:700px){
  .zg-label{font-size:.54rem; padding:0 14px; margin-top:4px;}
  .zg-icon svg{width:34px; height:34px;}
}

/* Titular de portada algo más largo: un punto menos de tamaño */
.hero h1{font-size:clamp(2.2rem, 4.4vw, 3.9rem);}
