/* ==========================================================================
   CEA Williams — sistema de diseño
   Azul de marca con brillo, secciones oscuras inmersivas + interludios claros,
   movimiento al hacer scroll, fichas de vidrio con borde luminoso.
   ========================================================================== */

:root{
  --navy:#0A1A33;
  --navy-2:#0F2A52;
  --navy-3:#06101F;
  --blue:#1E5FA8;
  --blue-2:#2F80ED;
  --glow:#4BA3FF;
  --glow-soft:rgba(75,163,255,.45);
  --sky:#8FC2F2;
  --ice:#EAF1FB;
  --paper:#FFFFFF;
  --ink:#0E1726;
  --ink-soft:#4A5568;
  --line:#D7DEE8;
  --whatsapp:#22C55E;
  --whatsapp-dark:#16A34A;
  --radius:24px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
@property --ang{ syntax:'<angle>'; inherits:false; initial-value:0deg; }

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:84px; }
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
h1,h2,h3,h4{ font-family:'Space Grotesk',system-ui,sans-serif; margin:0; line-height:1.08; font-weight:700; color:var(--navy); letter-spacing:-.01em; }
p{ margin:0; line-height:1.65; color:var(--ink-soft); }
a{ color:inherit; }
img{ max-width:100%; display:block; }
ul{ margin:0; padding:0; list-style:none; }
.wrap{ max-width:1200px; margin:0 auto; padding:0 28px; }
.section{ position:relative; padding:110px 0; overflow:hidden; isolation:isolate; }
.on-dark h1,.on-dark h2,.on-dark h3,.on-dark h4{ color:#fff; }
.on-dark p{ color:#C5D5EC; }

.kicker{
  display:inline-flex; align-items:center; gap:10px;
  font-size:12.5px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--blue-2);
}
.kicker::before{ content:''; width:28px; height:2px; background:linear-gradient(90deg,var(--glow),transparent); border-radius:2px; }
.on-dark .kicker{ color:var(--glow); }
.section-head{ max-width:760px; margin-bottom:56px; }
.section-head h2{ font-size:clamp(30px,4vw,48px); margin-top:14px; }
.section-head p{ margin-top:16px; font-size:17px; }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
.section-head.center .kicker::before{ display:none; }

/* ---------- movimiento base ---------- */
.js .reveal{ opacity:0; transform:translateY(34px); transition:opacity .9s var(--ease), transform .9s var(--ease); transition-delay:var(--d,0s); }
.js .reveal.in{ opacity:1; transform:none; }
.js .reveal-left{ opacity:0; transform:translateX(-46px); transition:opacity .9s var(--ease), transform .9s var(--ease); transition-delay:var(--d,0s); }
.js .reveal-right{ opacity:0; transform:translateX(46px); transition:opacity .9s var(--ease), transform .9s var(--ease); transition-delay:var(--d,0s); }
.js .reveal-left.in,.js .reveal-right.in{ opacity:1; transform:none; }
.js .zoom-in{ opacity:0; transform:scale(.92); transition:opacity .9s var(--ease), transform .9s var(--ease); transition-delay:var(--d,0s); }
.js .zoom-in.in{ opacity:1; transform:none; }

.progress{ position:fixed; top:0; left:0; height:3px; width:100%; z-index:100; transform-origin:0 50%; transform:scaleX(0);
  background:linear-gradient(90deg,var(--blue),var(--glow),#9AD1FF); box-shadow:0 0 14px var(--glow); }

/* haces de luz giratorios y carretera animada (fondos oscuros) */
.fx{ position:absolute; inset:0; z-index:-1; pointer-events:none; overflow:hidden; }
.fx::before{
  content:''; position:absolute; width:140%; aspect-ratio:1; left:-20%; top:-60%;
  background:conic-gradient(from 0deg, transparent 0 62%, rgba(75,163,255,.20) 74%, transparent 86% 100%);
  animation:spin 34s linear infinite;
}
.fx::after{
  content:''; position:absolute; left:0; right:0; bottom:0; height:60%;
  background:radial-gradient(70% 90% at 80% 110%, rgba(47,128,237,.35), transparent 70%);
}
@keyframes spin{ to{ transform:rotate(360deg); } }
.roadline{ position:absolute; left:0; right:0; height:3px; z-index:0; opacity:.55;
  background:repeating-linear-gradient(90deg, rgba(143,194,242,.9) 0 46px, transparent 46px 92px);
  animation:road 3.2s linear infinite; }
@keyframes road{ to{ background-position:92px 0; } }
.ghost-text{
  position:absolute; left:0; top:50%; z-index:-1; white-space:nowrap; pointer-events:none;
  font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:clamp(120px,18vw,260px); line-height:1;
  color:transparent; -webkit-text-stroke:1.5px rgba(143,194,242,.13);
  transform:translateY(-50%); animation:ghost 46s linear infinite;
}
@keyframes ghost{ from{ transform:translate(0,-50%); } to{ transform:translate(-50%,-50%); } }

/* ---------- botones ---------- */
.btn{
  position:relative; display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:'Inter',sans-serif; font-weight:700; font-size:15px; text-decoration:none;
  padding:14px 26px; border-radius:12px; border:1px solid transparent; cursor:pointer;
  transition:transform .2s var(--ease), box-shadow .2s var(--ease), background .2s;
}
.btn:hover{ transform:translateY(-2px); }
.btn svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; transition:transform .2s var(--ease); }
.btn:hover svg{ transform:translateX(3px); }
.btn-whatsapp{ background:var(--whatsapp); color:#fff; box-shadow:0 8px 22px rgba(34,197,94,.35); }
.btn-whatsapp:hover{ background:var(--whatsapp-dark); box-shadow:0 12px 28px rgba(34,197,94,.5); }
.btn-blue{ color:#fff; background:linear-gradient(135deg,#2F80ED,#1E5FA8); box-shadow:0 8px 24px rgba(47,128,237,.45), inset 0 1px 0 rgba(255,255,255,.25); }
.btn-blue:hover{ box-shadow:0 14px 34px rgba(47,128,237,.65), inset 0 1px 0 rgba(255,255,255,.3); }
.btn-ghost{ color:#fff; border-color:rgba(255,255,255,.45); background:rgba(255,255,255,.06); backdrop-filter:blur(6px); }
.btn-ghost:hover{ background:rgba(255,255,255,.14); border-color:#fff; }
.btn-sm{ padding:10px 18px; font-size:14px; border-radius:10px; }
.btn-pulse::after{ content:''; position:absolute; inset:0; border-radius:inherit; box-shadow:0 0 0 0 rgba(34,197,94,.55); animation:pulse 2.4s infinite; }
@keyframes pulse{ 70%{ box-shadow:0 0 0 14px rgba(34,197,94,0); } 100%{ box-shadow:0 0 0 0 rgba(34,197,94,0); } }

/* ---------- encabezado ---------- */
.site-header{
  position:sticky; top:0; z-index:90;
  background:rgba(255,255,255,.84); backdrop-filter:blur(16px) saturate(1.4); -webkit-backdrop-filter:blur(16px) saturate(1.4);
  border-bottom:1px solid rgba(30,95,168,.12);
  transition:box-shadow .3s, background .3s;
}
.site-header.scrolled{ box-shadow:0 10px 34px -14px rgba(10,26,51,.45); background:rgba(255,255,255,.94); }
.site-header::after{ content:''; position:absolute; left:0; right:0; bottom:-1px; height:2px;
  background:linear-gradient(90deg,transparent,var(--glow),transparent); background-size:200% 100%; animation:slide 5s linear infinite; opacity:.8; }
@keyframes slide{ from{ background-position:200% 0; } to{ background-position:-200% 0; } }
.nav{ display:flex; align-items:center; justify-content:space-between; padding-top:10px; padding-bottom:10px; }
.brand img{ height:50px; width:auto; transition:transform .3s var(--ease); }
.brand:hover img{ transform:scale(1.05); }
.nav-links{ display:flex; gap:6px; }
.nav-links a{
  position:relative; display:block; font-size:15px; font-weight:600; color:var(--navy); text-decoration:none; padding:10px 16px; border-radius:10px;
  transition:color .2s, background .2s;
}
.nav-links a::after{ content:''; position:absolute; left:16px; right:16px; bottom:4px; height:2px; background:var(--glow); border-radius:2px;
  transform:scaleX(0); transform-origin:0 50%; transition:transform .3s var(--ease); box-shadow:0 0 10px var(--glow); }
.nav-links a:hover,.nav-links a.active{ color:var(--blue-2); }
.nav-links a:hover::after,.nav-links a.active::after{ transform:scaleX(1); }
.nav-cta{ display:flex; align-items:center; gap:14px; }
.menu-toggle{ display:none; width:44px; height:44px; border-radius:12px; border:1px solid var(--line); background:#fff; cursor:pointer; align-items:center; justify-content:center; }
.menu-toggle svg{ width:24px; height:24px; stroke:var(--navy); fill:none; stroke-width:2; stroke-linecap:round; }

/* ---------- hero con escena animada ---------- */
.hero{ position:relative; overflow:hidden; background:var(--navy-3); }
.hero-photo{ position:relative; width:100%; min-height:730px; padding-bottom:92px; display:flex; align-items:center; padding-left:clamp(28px,5vw,72px); overflow:hidden; }
.hero-photo::before{
  content:''; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(90deg, rgba(1,12,52,.6) 0%, rgba(1,14,60,.32) 28%, rgba(2,18,78,0) 48%),
             linear-gradient(0deg, rgba(6,16,31,.85) 0%, rgba(6,16,31,0) 22%);
}
.hero-copy{ position:relative; z-index:2; max-width:470px; padding:70px 0 96px; }
.eyebrow-tag{
  display:inline-flex; align-items:center; gap:9px; font-size:13px; font-weight:600; color:#fff;
  background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.26); border-radius:999px; padding:7px 15px 7px 11px; margin-bottom:24px;
  backdrop-filter:blur(6px);
}
.eyebrow-tag .dot{ width:8px; height:8px; border-radius:50%; background:var(--whatsapp); box-shadow:0 0 0 0 rgba(34,197,94,.7); animation:pulse 2s infinite; }
.hero h1{ font-size:clamp(34px,4.1vw,56px); color:#fff; text-shadow:0 4px 30px rgba(0,0,0,.35); }
.hero h1 em{ font-style:normal; background:linear-gradient(90deg,#9AD1FF,#4BA3FF,#9AD1FF); background-size:200% 100%; -webkit-background-clip:text; background-clip:text; color:transparent; animation:shine 6s linear infinite; }
@keyframes shine{ to{ background-position:-200% 0; } }
.hero p.lead{ font-size:17.5px; margin-top:20px; max-width:42ch; color:#D7E3F3; }
.hero-ctas{ display:flex; gap:14px; margin-top:32px; flex-wrap:wrap; }
.scroll-cue{ position:absolute; left:50%; bottom:22px; z-index:3; width:26px; height:42px; border:2px solid rgba(255,255,255,.5); border-radius:14px; transform:translateX(-50%); }
.scroll-cue::after{ content:''; position:absolute; left:50%; top:8px; width:4px; height:8px; margin-left:-2px; border-radius:2px; background:#fff; animation:cue 1.8s infinite; }
@keyframes cue{ 0%{ opacity:0; transform:translateY(0);} 30%{opacity:1;} 100%{ opacity:0; transform:translateY(14px);} }

/* escena: avenida + carro y moto con luces encendidas */
.hero-stage{ position:absolute; inset:0; z-index:0; overflow:hidden; background:#06122e; container-type:size;
  --grp-h:min(50cqh, calc((100cqw - 580px - 2cqw) / 2.18)); }
.stage-bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:left bottom; transform-origin:72% 85%; animation:stageDrift 28s ease-in-out infinite alternate; }
/* nubes en movimiento sobre el cielo de la avenida */
.stage-clouds{ position:absolute; left:0; right:0; top:0; height:40%; pointer-events:none; mix-blend-mode:screen;
  -webkit-mask-image:linear-gradient(to bottom,#000 35%,rgba(0,0,0,0) 100%); mask-image:linear-gradient(to bottom,#000 35%,rgba(0,0,0,0) 100%);
  background-repeat:repeat-x; background-size:900px 100%;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='900' height='300'%3E%3Cfilter id='f' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.0035 0.011' numOctaves='5' seed='7' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 .84 0 0 0 0 .86 2.6 0 0 0 -1.05'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23f)'/%3E%3C/svg%3E");
  opacity:.55; animation:cloudsA 55s linear infinite; }
.stage-clouds--b{ top:-4%; height:34%; opacity:.4; background-size:1300px 100%; animation:cloudsB 95s linear infinite; filter:blur(1px);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1300' height='300'%3E%3Cfilter id='f' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.0028 0.01' numOctaves='4' seed='23' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .8 0 0 0 0 .8 0 0 0 0 1 2.6 0 0 0 -1.1'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23f)'/%3E%3C/svg%3E"); }
@keyframes cloudsA{ from{ background-position-x:0; } to{ background-position-x:-900px; } }
@keyframes cloudsB{ from{ background-position-x:0; } to{ background-position-x:-1300px; } }
@keyframes stageDrift{ from{ transform:scale(1);} to{ transform:scale(1.05);} }
.vehicle{ position:absolute; z-index:1; isolation:isolate; height:var(--grp-h); aspect-ratio:992/455; bottom:calc(12cqh + 50px); right:2cqw; transform:translateZ(0); will-change:transform; }
.v-body{ position:relative; height:100%; z-index:1; }
.v-img{ display:block; height:100%; width:100%; filter:saturate(1.06) contrast(1.03); }
.v-refl{ position:absolute; left:0; top:100%; height:100%; width:100%; transform:scaleY(-1); opacity:.28; filter:blur(1.6px) saturate(.9);
  -webkit-mask-image:linear-gradient(to top,rgba(0,0,0,.95) 0%,rgba(0,0,0,0) 44%); mask-image:linear-gradient(to top,rgba(0,0,0,.95) 0%,rgba(0,0,0,0) 44%); }
.v-shadow{ position:absolute; left:2%; right:2%; bottom:-3%; height:12%; z-index:0; filter:blur(6px);
  background:radial-gradient(ellipse at center,rgba(0,0,14,.85) 0%,rgba(0,0,14,.5) 42%,rgba(0,0,14,0) 72%); }
.v-contact{ position:absolute; inset:0; z-index:0; pointer-events:none; filter:blur(3px); background:
  radial-gradient(ellipse 9% 4% at 6% 85%,rgba(0,0,12,.9),rgba(0,0,12,0) 100%),
  radial-gradient(ellipse 11% 4% at 26% 97%,rgba(0,0,12,.9),rgba(0,0,12,0) 100%),
  radial-gradient(ellipse 10% 4% at 70% 91%,rgba(0,0,12,.9),rgba(0,0,12,0) 100%),
  radial-gradient(ellipse 11% 4% at 93% 88%,rgba(0,0,12,.9),rgba(0,0,12,0) 100%); }
/* faros encendidos: auto (2) y moto (1) */
.v-head,.v-flare{ position:absolute; inset:0; z-index:2; pointer-events:none; animation:headPulse 3.6s ease-in-out infinite; }
.v-head{ background:
  radial-gradient(ellipse 9% 12% at 36% 54%,rgba(225,242,255,1),rgba(160,205,255,.5) 45%,rgba(160,205,255,0) 100%),
  radial-gradient(ellipse 6% 10% at 71.500% 51%,rgba(225,242,255,1),rgba(160,205,255,.4) 50%,rgba(160,205,255,0) 100%),
  radial-gradient(ellipse 7% 11% at 91% 38%,rgba(255,246,225,1),rgba(255,226,170,.5) 45%,rgba(255,226,170,0) 100%); }
.v-flare{ background:none; }
.v-flare::before,.v-flare::after{ content:''; position:absolute; height:1.8%; filter:blur(1.2px); }
.v-flare::before{ left:24%; width:26%; top:53.500%; background:linear-gradient(90deg,rgba(180,220,255,0),rgba(190,225,255,.85) 50%,rgba(180,220,255,0)); }
.v-flare::after{ left:80%; width:20%; top:37.500%; background:linear-gradient(90deg,rgba(255,230,180,0),rgba(255,236,200,.8) 50%,rgba(255,230,180,0)); }
/* luces de parqueo (intermitentes) de carro y moto: se prenden y se apagan */
.v-hazard{ position:absolute; inset:0; z-index:3; pointer-events:none; animation:hazard 1.2s infinite; background:
  radial-gradient(ellipse 2.2% 3.2% at 33% 52%,rgba(255,240,170,1),rgba(255,190,50,0.90) 60%,rgba(255,160,0,0) 100%),
  radial-gradient(ellipse 5.5% 8% at 33% 52%,rgba(255,150,0,0.5),rgba(255,130,0,0) 100%),
  radial-gradient(ellipse 1.8% 2.8% at 72.8% 50%,rgba(255,240,170,1),rgba(255,190,50,0.90) 60%,rgba(255,160,0,0) 100%),
  radial-gradient(ellipse 4.5% 7% at 72.8% 50%,rgba(255,150,0,0.5),rgba(255,130,0,0) 100%),
  radial-gradient(ellipse 1.6% 2.4% at 34.5% 78%,rgba(255,240,170,1),rgba(255,190,50,0.90) 60%,rgba(255,160,0,0) 100%),
  radial-gradient(ellipse 4% 6% at 34.5% 78%,rgba(255,150,0,0.5),rgba(255,130,0,0) 100%),
  radial-gradient(ellipse 1.3% 2.0% at 74.8% 72.5%,rgba(255,240,170,1),rgba(255,190,50,0.90) 60%,rgba(255,160,0,0) 100%),
  radial-gradient(ellipse 3.2% 5% at 74.8% 72.5%,rgba(255,150,0,0.5),rgba(255,130,0,0) 100%),
  radial-gradient(ellipse 1.4% 2.2% at 13.2% 39.8%,rgba(255,240,170,1),rgba(255,190,50,0.90) 60%,rgba(255,160,0,0) 100%),
  radial-gradient(ellipse 3.6% 5.5% at 13.2% 39.8%,rgba(255,150,0,0.5),rgba(255,130,0,0) 100%),
  radial-gradient(ellipse 1.2% 1.8% at 59.8% 33.8%,rgba(255,240,170,1),rgba(255,190,50,0.90) 60%,rgba(255,160,0,0) 100%),
  radial-gradient(ellipse 3% 4.5% at 59.8% 33.8%,rgba(255,150,0,0.5),rgba(255,130,0,0) 100%); }
/* la moto parpadea más lento que el carro */
.v-hazard--moto{ animation-duration:2.2s; animation-delay:0s; background:
  radial-gradient(ellipse 1.6% 2.4% at 94% 32%,rgba(255,240,170,1),rgba(255,190,50,0.90) 60%,rgba(255,160,0,0) 100%),
  radial-gradient(ellipse 4% 6% at 94% 32%,rgba(255,150,0,0.5),rgba(255,130,0,0) 100%),
  radial-gradient(ellipse 1.4% 2.0% at 87.9% 59.8%,rgba(255,240,170,1),rgba(255,190,50,0.90) 60%,rgba(255,160,0,0) 100%),
  radial-gradient(ellipse 3.4% 5% at 87.9% 59.8%,rgba(255,150,0,0.5),rgba(255,130,0,0) 100%); }
@keyframes hazard{ 0%,46%{ opacity:1; } 50%,96%{ opacity:0; } 100%{ opacity:1; } }
@keyframes headPulse{ 0%,100%{ opacity:.85;} 50%{ opacity:1;} }
@keyframes tailPulse{ 0%,100%{ opacity:.88;} 50%{ opacity:1;} }
/* luz sobre el asfalto mojado, delante de los faros */
.v-pool{ position:absolute; z-index:0; pointer-events:none; mix-blend-mode:screen; filter:blur(10px); left:40%; bottom:-14%; width:62%; height:26%;
  background:radial-gradient(ellipse at 40% 45%,rgba(170,210,255,.45),rgba(170,210,255,0) 72%); animation:headPulse 3.6s ease-in-out infinite; }

/* ---------- fichas de cifras (debajo del banner) ---------- */
.stats{ position:relative; z-index:5; margin-top:-92px; padding-bottom:0; }
.stats-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.glow-card{
  position:relative; border-radius:var(--radius);
  background:linear-gradient(160deg,rgba(24,52,96,.92),rgba(10,26,51,.94));
  box-shadow:0 24px 50px -18px rgba(0,0,0,.65), 0 0 40px rgba(47,128,237,.18);
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
  transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateZ(0);
}
.glow-card::before{
  content:''; position:absolute; inset:0; border-radius:inherit; padding:1.5px; pointer-events:none;
  background:conic-gradient(from var(--ang), rgba(75,163,255,.08), rgba(75,163,255,.95), rgba(75,163,255,.08) 38%, rgba(75,163,255,.08));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0); mask-composite:exclude;
  animation:ang 7s linear infinite;
}
@keyframes ang{ to{ --ang:360deg; } }
.glow-card:hover{ box-shadow:0 30px 60px -18px rgba(0,0,0,.7), 0 0 60px rgba(75,163,255,.38); }
.stat-card{ padding:30px 26px 28px; overflow:hidden; }
.stat-card::after{ content:''; position:absolute; right:-40px; top:-40px; width:140px; height:140px; border-radius:50%;
  background:radial-gradient(circle,rgba(75,163,255,.35),transparent 70%); animation:breathe 4s ease-in-out infinite; }
@keyframes breathe{ 0%,100%{ transform:scale(1); opacity:.7;} 50%{ transform:scale(1.25); opacity:1;} }
.badge{
  position:relative; width:62px; height:62px; border-radius:50%; display:grid; place-items:center; flex:none;
  background:radial-gradient(circle at 32% 28%,#8FC2F2 0%,#3875B8 58%,#122C52 100%);
  box-shadow:0 0 0 1px rgba(143,194,242,.5), 0 0 28px rgba(75,163,255,.7);
}
.badge::after{ content:''; position:absolute; inset:-8px; border-radius:50%; border:1.5px solid rgba(143,194,242,.45); animation:ring 3s ease-out infinite; }
@keyframes ring{ 0%{ transform:scale(.85); opacity:.9;} 100%{ transform:scale(1.35); opacity:0;} }
.badge svg{ width:30px; height:30px; fill:none; stroke:#fff; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; filter:drop-shadow(0 2px 6px rgba(0,0,0,.35)); }
.badge--lg{ width:76px; height:76px; } .badge--lg svg{ width:36px; height:36px; }
.stat-num{ display:block; margin-top:22px; font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:clamp(38px,4vw,54px); line-height:1;
  background:linear-gradient(180deg,#fff 20%,#9AD1FF); -webkit-background-clip:text; background-clip:text; color:transparent; }
.stat-label{ display:block; margin-top:10px; font-size:14.5px; font-weight:600; letter-spacing:.02em; color:#B9CCE8; }

.stats-wrap{ background:linear-gradient(180deg,var(--navy-3) 0,var(--navy-3) 92px,#fff 92px); }

/* ---------- cinta en movimiento ---------- */
.marquee{ position:relative; overflow:hidden; padding:26px 0; margin-top:70px; background:linear-gradient(90deg,#1E5FA8,#2F80ED 50%,#1E5FA8); box-shadow:0 0 50px rgba(47,128,237,.5); transform:rotate(-1.2deg) scale(1.03); }
.marquee-track{ display:flex; width:max-content; animation:marquee 32s linear infinite; }
.marquee span{ display:inline-flex; align-items:center; gap:34px; padding-right:34px; font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:clamp(20px,2.4vw,30px); letter-spacing:.06em; color:#fff; text-transform:uppercase; white-space:nowrap; }
.marquee span i{ width:10px; height:10px; border-radius:50%; background:#fff; box-shadow:0 0 14px #fff; display:inline-block; }
@keyframes marquee{ to{ transform:translateX(-50%); } }

/* ---------- cursos ---------- */
.cursos{ background:#fff; padding-top:130px; }
.cursos::before{ content:''; position:absolute; inset:0; z-index:-1;
  background:radial-gradient(600px 400px at 90% 10%,rgba(75,163,255,.12),transparent 70%), radial-gradient(500px 360px at 0% 90%,rgba(30,95,168,.08),transparent 70%); }
.course-row{ display:grid; grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); gap:32px; }
.course-item{ display:flex; flex-direction:column; gap:18px; }
.course-card{
  position:relative; overflow:hidden; min-height:580px; padding:30px 26px 26px; display:flex; flex-direction:column;
  background-size:cover; background-position:center; border-radius:26px; color:#fff;
  box-shadow:0 0 0 1px rgba(143,194,242,.3), 0 0 44px rgba(30,95,168,.25), 0 26px 50px -16px rgba(0,0,0,.55);
  transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.course-card:hover{ box-shadow:0 0 0 1px rgba(143,194,242,.7), 0 0 70px rgba(75,163,255,.45), 0 30px 60px -16px rgba(0,0,0,.6); }
.course-card::before{ content:''; position:absolute; inset:0; z-index:0; pointer-events:none; background:linear-gradient(100deg,rgba(6,16,50,.93) 0%,rgba(6,18,60,.68) 55%,rgba(6,18,60,.35) 100%); }
.course-card::after{ content:''; position:absolute; left:0; right:0; bottom:0; height:60%; z-index:0; pointer-events:none; background:linear-gradient(0deg,rgba(4,12,40,.95) 0%,rgba(4,12,40,0) 100%); }
.course-card > *{ position:relative; z-index:1; }
.course-card--a2{ background-image:url('../img/curso-a2.jpg'); }
.course-card--b1{ background-image:url('../img/curso-b1.jpg'); }
.course-card--c1{ background-image:url('../img/curso-c1.jpg'); }
.course-top{ display:flex; align-items:center; gap:15px; }
.course-code{ display:block; font-family:'Space Grotesk',sans-serif; font-size:36px; font-weight:700; line-height:1; color:#fff; }
.course-name{ display:block; margin-top:5px; font-size:14.5px; color:#C9DAF1; }
.course-body{ margin-top:18px; }
.course-body p{ font-size:15px; color:#DCE7F7; max-width:27ch; }
.course-list{ margin-top:16px; display:grid; gap:9px; }
.course-list li{ display:flex; gap:10px; align-items:flex-start; font-size:14px; color:#DCE7F7; line-height:1.45; }
.course-list li::before{ content:''; flex:none; margin-top:6px; width:8px; height:8px; border-radius:50%; background:var(--glow); box-shadow:0 0 10px var(--glow); }
.course-features{ display:flex; justify-content:space-between; gap:8px; margin-top:auto; padding-top:26px; }
.course-feature{ display:flex; flex-direction:column; align-items:center; gap:9px; flex:1; text-align:center; font-size:12.5px; line-height:1.3; color:#E4EDFA; }
.feature-icon{ width:48px; height:48px; border-radius:50%; display:grid; place-items:center; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.34); box-shadow:0 0 18px rgba(75,163,255,.35); transition:transform .3s var(--ease), box-shadow .3s; }
.course-card:hover .feature-icon{ transform:translateY(-4px); box-shadow:0 0 26px rgba(75,163,255,.7); }
.feature-icon svg{ width:23px; height:23px; fill:none; stroke:#fff; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.course-cta{ align-self:stretch; }
.link-more{ display:inline-flex; align-items:center; gap:10px; margin-top:44px; font-weight:700; color:var(--blue-2); text-decoration:none; }
.link-more svg{ width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; transition:transform .25s var(--ease); }
.link-more:hover svg{ transform:translateX(6px); }

/* ---------- banda de foto con parallax ---------- */
.photo-band{ position:relative; min-height:560px; display:flex; align-items:center; overflow:hidden; background:var(--navy-3); }
.photo-band .pb-img{ position:absolute; left:0; right:0; top:-12%; height:124%; background-size:cover; background-position:center 38%; will-change:transform; }
.photo-band::before{ content:''; position:absolute; inset:0; z-index:1; background:linear-gradient(90deg,rgba(6,16,31,.96) 0%,rgba(6,16,31,.88) 45%,rgba(6,16,31,.3) 80%); }
.photo-band::after{ content:''; position:absolute; inset:0; z-index:1; background:radial-gradient(60% 80% at 100% 100%,rgba(47,128,237,.35),transparent 70%); pointer-events:none; }
.photo-band .wrap{ position:relative; z-index:2; width:100%; }
.pb-copy{ max-width:520px; }
.pb-copy h2{ font-size:clamp(30px,4vw,50px); color:#fff; margin:14px 0 18px; }
.pb-copy p{ color:#D2E0F5; font-size:17px; }
.pb-actions{ display:flex; gap:14px; margin-top:30px; flex-wrap:wrap; }

/* ---------- opiniones ---------- */
.reviews{ background:linear-gradient(180deg,var(--navy-3),var(--navy) 60%,var(--navy-3)); }
.reviews-top{ display:grid; grid-template-columns:1fr auto; gap:40px; align-items:end; margin-bottom:46px; }
.score-card{ padding:26px 34px; display:flex; align-items:center; gap:22px; }
.score-card .big{ font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:64px; line-height:1; background:linear-gradient(180deg,#fff,#9AD1FF); -webkit-background-clip:text; background-clip:text; color:transparent; }
.score-card .txt strong{ display:block; color:#fff; font-size:17px; }
.score-card .txt span{ color:#B9CCE8; font-size:14px; }
.stars{ display:flex; gap:4px; margin-bottom:6px; }
.stars svg{ width:20px; height:20px; fill:#FFC93C; filter:drop-shadow(0 0 8px rgba(255,201,60,.6)); }
.review-grid{ align-items:start; display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.review-card{ padding:26px 22px; min-height:230px; display:flex; flex-direction:column; gap:14px; }
.review-card .quote{ font-family:'Space Grotesk',sans-serif; font-size:54px; line-height:.6; color:var(--glow); opacity:.9; }
.review-card p{ color:#C5D5EC; font-size:15px; }
.review-card .who{ margin-top:auto; display:flex; align-items:center; gap:12px; }
.avatar{ width:42px; height:42px; border-radius:50%; background:rgba(143,194,242,.18); border:1px dashed rgba(143,194,242,.6); display:grid; place-items:center; color:#9AD1FF; font-weight:700; font-size:14px; }
.who b{ display:block; color:#fff; font-size:14.5px; }
.who small{ color:#92A9CB; font-size:12.5px; }
.stars .off{ display:contents; }
.stars .off svg{ fill:rgba(255,255,255,.18); filter:none; }
.review-card .avatar{ border-style:solid; background:rgba(143,194,242,.22); }
.review-card.is-empty p{ font-style:italic; color:#8FA7CC; }
.reviews-cta{ margin-top:40px; display:flex; gap:14px; flex-wrap:wrap; }

/* ---------- ubicación ---------- */
.location{ background:linear-gradient(160deg,var(--ice),#DCE8FA); }
.loc-grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:34px; align-items:stretch; }
.loc-info{ padding:36px 32px; display:flex; flex-direction:column; gap:22px; }
.loc-info h3{ color:#fff; font-size:28px; }
.loc-row{ display:flex; gap:16px; align-items:flex-start; }
.loc-row .badge{ width:50px; height:50px; } .loc-row .badge svg{ width:23px; height:23px; }
.loc-row strong{ display:block; color:#fff; font-size:15px; margin-bottom:3px; }
.loc-row span{ color:#C5D5EC; font-size:15px; }
.map-embed{ position:relative; border-radius:var(--radius); overflow:hidden; min-height:420px;
  box-shadow:0 0 0 1px rgba(30,95,168,.35), 0 0 50px rgba(47,128,237,.3), 0 24px 50px -18px rgba(10,26,51,.55); }
.map-embed iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }

/* ---------- preguntas frecuentes ---------- */
.faq-section{ background:#fff; }
.faq{ max-width:860px; margin:0 auto; display:grid; gap:14px; }
.faq-item{ border-radius:18px; background:#fff; border:1px solid var(--line); box-shadow:0 10px 30px -18px rgba(10,26,51,.35); overflow:hidden; transition:border-color .3s, box-shadow .3s; }
.faq-item.open{ border-color:var(--glow); box-shadow:0 0 0 1px rgba(75,163,255,.5), 0 18px 40px -18px rgba(47,128,237,.5); }
.faq-q{ width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:22px 26px; background:none; border:none; cursor:pointer; text-align:left; font-family:'Space Grotesk',sans-serif; font-size:18px; font-weight:600; color:var(--navy); }
.plus{ position:relative; width:34px; height:34px; border-radius:50%; flex:none; background:var(--ice); transition:background .3s, transform .4s var(--ease); }
.plus::before,.plus::after{ content:''; position:absolute; left:50%; top:50%; width:14px; height:2px; background:var(--blue); transform:translate(-50%,-50%); transition:transform .35s var(--ease), background .3s; }
.plus::after{ transform:translate(-50%,-50%) rotate(90deg); }
.faq-item.open .plus{ background:var(--blue-2); transform:rotate(180deg); }
.faq-item.open .plus::before,.faq-item.open .plus::after{ background:#fff; }
.faq-item.open .plus::after{ transform:translate(-50%,-50%) rotate(0deg); }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .45s var(--ease); }
.faq-a p{ padding:0 26px 24px; }

/* ---------- llamado final ---------- */
.cta-band{ position:relative; overflow:hidden; isolation:isolate; text-align:center; padding:90px 28px; border-radius:34px; background:linear-gradient(135deg,var(--navy-2),var(--navy-3));
  box-shadow:0 0 0 1px rgba(143,194,242,.3), 0 0 80px rgba(47,128,237,.35); }
.cta-band h2{ color:#fff; font-size:clamp(30px,4vw,50px); }
.cta-band p{ color:#C9DAF1; margin:16px auto 32px; max-width:52ch; font-size:17px; }
.cta-section{ background:#fff; padding-top:30px; }
.faq-section{ padding-bottom:70px; }
.scroll-cue{ display:none; }
.stats-wrap{ overflow-x:clip; }

/* ---------- pie ---------- */
.site-footer{ position:relative; overflow:hidden; isolation:isolate; background:var(--navy-3); color:#C5D5EC; padding:80px 0 0; }
.foot-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:48px; }
.foot-brand img{ height:74px; width:auto; }
.site-footer h4{ color:#fff; font-size:15px; letter-spacing:.12em; text-transform:uppercase; margin-bottom:18px; }
.site-footer p{ color:#9FB4D4; margin-top:16px; max-width:34ch; font-size:14.5px; }
.foot-links{ display:grid; gap:11px; font-size:15px; }
.foot-links a{ text-decoration:none; color:#C5D5EC; transition:color .2s, padding-left .25s var(--ease); }
.foot-links a:hover{ color:#fff; padding-left:6px; }
.foot-bottom{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; margin-top:60px; padding:22px 0 26px; border-top:1px solid rgba(143,194,242,.18); font-size:13.5px; color:#8FA7CC; }
.float-wa{ position:fixed; right:22px; bottom:22px; z-index:80; width:60px; height:60px; border-radius:50%; display:grid; place-items:center; background:var(--whatsapp); box-shadow:0 10px 26px rgba(34,197,94,.55); transition:transform .25s var(--ease); }
.float-wa:hover{ transform:scale(1.1) rotate(-6deg); }
.float-wa::after{ content:''; position:absolute; inset:0; border-radius:50%; animation:pulse 2.4s infinite; }
.float-wa svg{ width:30px; height:30px; fill:#fff; }

/* ==========================================================================
   Páginas internas
   ========================================================================== */
.page-hero{ position:relative; min-height:460px; display:flex; align-items:center; overflow:hidden; isolation:isolate; background:var(--navy-3); }
.page-hero .ph-img{ position:absolute; left:0; right:0; top:-10%; height:120%; z-index:-2; background-size:cover; background-position:center; will-change:transform; }
.page-hero::before{ content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(6,16,31,.96) 0%,rgba(6,16,31,.84) 50%,rgba(6,16,31,.35) 100%); }
.page-hero::after{ content:''; position:absolute; inset:0; z-index:-1; background:radial-gradient(70% 90% at 90% 110%,rgba(47,128,237,.42),transparent 70%); }
.page-hero .wrap{ width:100%; padding-top:70px; padding-bottom:70px; }
.page-hero h1{ color:#fff; font-size:clamp(38px,5.4vw,70px); margin:16px 0 18px; text-shadow:0 4px 30px rgba(0,0,0,.4); }
.page-hero h1 em{ font-style:normal; background:linear-gradient(90deg,#9AD1FF,#4BA3FF,#9AD1FF); background-size:200% 100%; -webkit-background-clip:text; background-clip:text; color:transparent; animation:shine 6s linear infinite; }
.page-hero p{ color:#D2E0F5; font-size:18px; max-width:54ch; }
.crumbs{ display:flex; gap:8px; font-size:13.5px; color:#9FB4D4; margin-bottom:6px; }
.crumbs a{ color:#C5D5EC; text-decoration:none; } .crumbs a:hover{ color:#fff; }

.ph-img--cursos{ background-position:right center; }
@media (max-width:860px){
  .page-hero{ display:block; min-height:0; }
  .page-hero::before,.page-hero::after{ display:none; }
  .page-hero .ph-img{ position:relative; top:0; left:0; right:0; height:250px; transform:none !important; z-index:0; }
  .page-hero .ph-img::after{ content:''; position:absolute; inset:0; background:linear-gradient(0deg,#06101F 0%,rgba(6,16,31,.55) 28%,rgba(6,16,31,0) 62%); }
  .ph-img--cursos{ background-position:100% 62%; }
  .page-hero .wrap{ padding-top:6px; padding-bottom:54px; }
}
/* cabecera de Nosotros: recepción con luces de pared que titilan */
.page-hero .ph-img--nosotros{ container-type:size; overflow:hidden; top:0; height:100%; transform:none !important; }
.ph-stage{ position:absolute; right:0; width:max(100cqw, calc(100cqh * 2.6667)); aspect-ratio:1600/600; top:0; transform:none;
  background:url('../img/hero-nosotros.jpg') center/100% 100% no-repeat; }
.page-hero--nosotros::before{ background:linear-gradient(90deg,rgba(6,16,31,.92) 0%,rgba(6,16,31,.8) 36%,rgba(6,16,31,0) 60%); }
.page-hero--nosotros::after{ display:none; }
.page-hero--nosotros h1{ max-width:12ch; }
.wall-led{ position:absolute; top:0; border-radius:2px; pointer-events:none;
  background:linear-gradient(180deg,#fff 0%,#D5EAFF 65%,rgba(213,234,255,0) 100%);
  box-shadow:0 0 14px 5px rgba(205,230,255,.95), 0 0 46px 12px rgba(120,190,255,.6);
  animation:ledBlink 1.5s infinite; }
.wall-led--l{ left:70.35%; width:.28%; height:49%; box-shadow:0 0 8px 3px rgba(205,230,255,.95), 0 0 30px 8px rgba(120,190,255,.55); }
.wall-led--r{ left:93.7%; width:.55%; height:47%; animation-delay:-.45s; }
@keyframes ledBlink{ 0%,100%{ opacity:.25; } 10%{ opacity:1; } 18%{ opacity:.45; } 28%{ opacity:1; } 62%{ opacity:.95; } 80%{ opacity:.3; } }
/* vehículos en la cabecera de Cursos */
.page-hero--stage{ min-height:520px; }
.page-hero--stage .hero-stage{ z-index:-2; }
.page-hero--stage .hero-stage{ --grp-h:min(54cqh, calc((100cqw - 640px - 2cqw) / 2.18)); }

/* ---------- Por qué elegirnos (bento) ---------- */
.why{ background:linear-gradient(180deg,var(--navy-3),var(--navy)); }
.why-head{ display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:end; margin-bottom:56px; }
.why-head h2{ font-size:clamp(32px,4.4vw,56px); margin-top:14px; color:#fff; }
.why-head p{ font-size:17.5px; color:#C5D5EC; }
.bento{ display:grid; grid-template-columns:repeat(12,1fr); gap:22px; }
.b-card{ position:relative; overflow:hidden; padding:34px 30px; min-height:340px; display:flex; flex-direction:column; }
.b-card h3{ color:#fff; font-size:25px; margin:22px 0 12px; }
.b-card p{ color:#C5D5EC; font-size:15.5px; max-width:44ch; }
.b-nervio{ grid-column:span 5; }
.b-flex{ grid-column:span 7; }
.b-flota{ grid-column:span 7; min-height:560px; }
.b-gestion{ grid-column:span 5; min-height:560px; }
.b-flota .bg-photo,.b-gestion .bg-photo{ position:absolute; inset:0; z-index:0; background-size:cover; background-position:center; transition:transform 1.2s var(--ease); }
.b-flota:hover .bg-photo,.b-gestion:hover .bg-photo{ transform:scale(1.06); }
.b-flota .bg-photo{ background-image:url('../img/flota-moderna.jpg'); background-position:50% 12%; }
.b-gestion .bg-photo{ background-image:url('../img/gestion-integral.jpg'); background-size:auto 150%; background-position:90% 58%; background-repeat:no-repeat; }
.b-card.b-gestion > .content{ position:static; }
.b-gestion .badge{ position:absolute; left:30px; top:30px; z-index:2; }
.b-flota::after,.b-gestion::after{ content:''; position:absolute; inset:0; z-index:0; pointer-events:none; background:linear-gradient(0deg,rgba(6,16,31,.94) 0%,rgba(6,16,31,.72) 34%,rgba(6,16,31,0) 62%); }
.b-flota > *:not(.bg-photo),.b-gestion > *:not(.bg-photo){ position:relative; z-index:1; }
.b-flota .content,.b-gestion .content{ margin-top:auto; }
.b-flota h3,.b-gestion h3{ margin-top:18px; }
/* anillo de 40% */
.ring{ position:relative; width:150px; height:150px; margin-top:26px; }
.ring svg{ width:100%; height:100%; transform:rotate(-90deg); }
.ring circle{ fill:none; stroke-width:11; stroke-linecap:round; }
.ring .track{ stroke:rgba(143,194,242,.18); }
.ring .bar{ stroke:url(#ringGrad); stroke-dasharray:408; stroke-dashoffset:408; filter:drop-shadow(0 0 8px rgba(75,163,255,.9)); transition:stroke-dashoffset 2.2s var(--ease) .3s; }
.in .ring .bar,.ring.in .bar{ stroke-dashoffset:245; }
.ring .val{ position:absolute; inset:0; display:grid; place-items:center; font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:38px; color:#fff; }
.b-nervio .row{ display:flex; align-items:center; gap:28px; flex-wrap:wrap; }
.ecg{ position:absolute; left:46%; right:0; bottom:34px; height:90px; width:54%; opacity:.55; }
.ecg path{ fill:none; stroke:var(--glow); stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:420; stroke-dashoffset:420; animation:ecg 3.2s linear infinite; filter:drop-shadow(0 0 6px var(--glow)); }
@keyframes ecg{ 0%{ stroke-dashoffset:420;} 55%{ stroke-dashoffset:0;} 100%{ stroke-dashoffset:-420;} }
/* reloj y días */
.clock-row{ display:flex; align-items:center; gap:34px; flex-wrap:wrap; margin-top:24px; }
.dial{ position:relative; width:150px; height:150px; border-radius:50%; flex:none; background:radial-gradient(circle,rgba(75,163,255,.14),rgba(10,26,51,.2)); border:2px solid rgba(143,194,242,.45); box-shadow:0 0 34px rgba(75,163,255,.4), inset 0 0 24px rgba(75,163,255,.2); }
.dial::before{ content:''; position:absolute; inset:10px; border-radius:50%; background:repeating-conic-gradient(rgba(143,194,242,.55) 0 1deg, transparent 1deg 30deg); -webkit-mask:radial-gradient(circle,transparent 62%,#000 63%); mask:radial-gradient(circle,transparent 62%,#000 63%); }
.hand{ position:absolute; left:50%; bottom:50%; width:4px; border-radius:4px; transform-origin:50% 100%; background:linear-gradient(0deg,#fff,var(--glow)); box-shadow:0 0 10px var(--glow); }
.hand.h{ height:38px; margin-left:-2px; animation:spin 24s linear infinite; }
.hand.m{ height:56px; width:3px; margin-left:-1.5px; animation:spin 4s linear infinite; }
.dial i{ position:absolute; left:50%; top:50%; width:12px; height:12px; margin:-6px; border-radius:50%; background:#fff; box-shadow:0 0 12px var(--glow); }
.hours{ font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:clamp(26px,3vw,38px); color:#fff; line-height:1.1; }
.hours small{ display:block; margin-top:6px; font-family:'Inter',sans-serif; font-weight:600; font-size:13px; letter-spacing:.14em; text-transform:uppercase; color:var(--glow); }
.days{ display:flex; gap:8px; margin-top:18px; flex-wrap:wrap; }
.days span{ width:38px; height:38px; border-radius:12px; display:grid; place-items:center; font-weight:700; font-size:14px; color:#fff; background:rgba(75,163,255,.18); border:1px solid rgba(143,194,242,.45); animation:day 3.5s ease-in-out infinite; animation-delay:calc(var(--i) * .22s); }
@keyframes day{ 0%,100%{ background:rgba(75,163,255,.18); box-shadow:none;} 50%{ background:rgba(75,163,255,.7); box-shadow:0 0 16px rgba(75,163,255,.8);} }
.check-list{ display:grid; gap:10px; margin-top:6px; }
.check-list li{ display:flex; align-items:center; gap:10px; color:#E6EEFB; font-size:14.5px; font-weight:600; }
.check-list li::before{ content:''; width:20px; height:20px; border-radius:50%; flex:none; background:var(--glow) 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.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center/70% no-repeat; box-shadow:0 0 12px var(--glow); }

/* ---------- Nosotros ---------- */
.about-intro{ background:#fff; }
.split{ display:grid; grid-template-columns:1.05fr .95fr; gap:70px; align-items:center; }
.split h2{ font-size:clamp(30px,4vw,48px); margin:14px 0 22px; }
.split .lead{ font-size:19px; color:var(--navy); font-weight:500; line-height:1.55; }
.split p + p{ margin-top:16px; }
.photo-frame{ position:relative; border-radius:30px; }
.photo-frame .pf-img{ position:relative; border-radius:30px; overflow:hidden; aspect-ratio:4/5; background:var(--navy) url('../img/ensenanza.jpg') 50% 55%/cover;
  box-shadow:0 0 0 1px rgba(143,194,242,.5), 0 0 60px rgba(47,128,237,.35), 0 40px 70px -26px rgba(10,26,51,.7); }
.photo-frame::before{ content:''; position:absolute; inset:-14px; border-radius:38px; z-index:-1; background:conic-gradient(from var(--ang),transparent 0 55%,rgba(75,163,255,.9),transparent 80%); filter:blur(14px); animation:ang 8s linear infinite; opacity:.8; }
.float-chip{ position:absolute; display:flex; align-items:center; gap:12px; padding:14px 18px; border-radius:18px; color:#fff; font-weight:700; font-size:14px;
  background:linear-gradient(160deg,rgba(24,52,96,.95),rgba(10,26,51,.95)); box-shadow:0 18px 40px -14px rgba(0,0,0,.6), 0 0 30px rgba(75,163,255,.4); animation:bob 5s ease-in-out infinite; }
.float-chip .badge{ width:42px; height:42px; } .float-chip .badge svg{ width:20px; height:20px; } .float-chip .badge::after{ display:none; }
.float-chip small{ display:block; color:#9FB4D4; font-weight:500; font-size:12px; }
.fc-1{ left:-34px; bottom:56px; } .fc-2{ right:-26px; top:46px; animation-delay:-2.2s; }
@keyframes bob{ 0%,100%{ transform:translateY(0);} 50%{ transform:translateY(-10px);} }

.method{ background:linear-gradient(180deg,var(--navy),var(--navy-3)); }
.timeline{ position:relative; max-width:900px; margin:0 auto; display:grid; gap:26px; }
.timeline::before{ content:''; position:absolute; left:37px; top:20px; bottom:20px; width:3px; border-radius:3px; background:linear-gradient(180deg,var(--glow),rgba(75,163,255,.12)); box-shadow:0 0 14px var(--glow); }
.t-item{ position:relative; display:grid; grid-template-columns:76px 1fr; gap:26px; align-items:center; padding:24px 28px 24px 0; }
.t-item .card{ padding:24px 28px; }
.t-item h3{ color:#fff; font-size:21px; margin-bottom:6px; }
.t-item p{ color:#C5D5EC; font-size:15.5px; }
.t-item .badge{ position:relative; z-index:1; }
.on-dark .closing, .closing{ color:#fff; text-align:center; max-width:820px; margin:70px auto 0; font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:clamp(24px,3.2vw,38px); line-height:1.25; color:#fff; }
.closing em{ font-style:normal; background:linear-gradient(90deg,#9AD1FF,#4BA3FF,#9AD1FF); background-size:200% 100%; -webkit-background-clip:text; background-clip:text; color:transparent; animation:shine 6s linear infinite; }

.values{ background:#fff; }
.values .section-head h2{ color:var(--navy); }
.value-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.v-card{ padding:36px 30px 32px; min-height:290px; overflow:hidden; }
.v-card h3{ color:#fff; font-size:23px; margin:24px 0 12px; }
.v-card p{ color:#C5D5EC; font-size:15.5px; }
.v-card .num{ position:absolute; right:22px; top:10px; font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:92px; line-height:1; color:transparent; -webkit-text-stroke:1.5px rgba(143,194,242,.2); transition:-webkit-text-stroke-color .3s, transform .5s var(--ease); }
.v-card:hover .num{ -webkit-text-stroke-color:rgba(143,194,242,.55); transform:translateY(-6px); }
.v-card::after{ content:''; position:absolute; left:-40px; bottom:-60px; width:200px; height:200px; border-radius:50%; background:radial-gradient(circle,rgba(75,163,255,.3),transparent 70%); animation:breathe 5s ease-in-out infinite; }

.facilities{ background:linear-gradient(160deg,var(--ice),#DCE8FA); }
.fac-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.fac-card{ padding:30px 24px; text-align:center; }
.fac-card .badge{ margin:0 auto; }
.fac-card strong{ display:block; margin-top:20px; font-family:'Space Grotesk',sans-serif; font-size:21px; color:#fff; }
.fac-card > span:not(.badge){ display:block; margin-top:8px; color:#C5D5EC; font-size:14.5px; line-height:1.5; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width:1060px){
  .stats-grid{ grid-template-columns:repeat(2,1fr); }
  .review-grid{ grid-template-columns:repeat(2,1fr); }
  .fac-grid{ grid-template-columns:repeat(2,1fr); }
  .value-grid{ grid-template-columns:repeat(2,1fr); }
  .b-nervio,.b-flex,.b-flota,.b-gestion{ grid-column:span 12; }
  .why-head{ grid-template-columns:1fr; gap:20px; }
}
@media (max-width:860px){
  .section{ padding:76px 0; }
  .nav-links{ position:absolute; left:0; right:0; top:100%; flex-direction:column; gap:0; padding:10px 20px 18px; background:rgba(255,255,255,.98); border-bottom:1px solid var(--line); box-shadow:0 24px 40px -20px rgba(10,26,51,.4);
    transform-origin:50% 0; transform:scaleY(0); opacity:0; pointer-events:none; transition:transform .3s var(--ease), opacity .25s; }
  .nav-links.open{ transform:none; opacity:1; pointer-events:auto; }
  .nav-links a{ padding:14px 8px; border-bottom:1px solid var(--line); border-radius:0; }
  .menu-toggle{ display:flex; }
  .nav-cta .btn{ display:none; }
  .hero-photo{ min-height:0; padding:0 20px; flex-direction:column; align-items:stretch; background:linear-gradient(180deg,var(--navy-3),var(--navy)); }
  .hero-photo::before{ display:none; }
  .hero-stage{ position:relative; inset:auto; height:340px; order:-1; margin:0 -20px; --grp-h:min(60cqh, calc((100cqw - 6cqw) / 2.18)); }
  .stage-bg{ object-position:40% bottom; }
  .vehicle{ bottom:12cqh; right:3cqw; }
  .hero-copy{ max-width:none; padding:30px 0 100px; }
  .scroll-cue{ display:none; }
  .stats{ margin-top:-70px; }
  .reviews-top{ grid-template-columns:1fr; }
  .loc-grid{ grid-template-columns:1fr; }
  .split{ grid-template-columns:1fr; gap:46px; }
  .fc-1{ left:10px; } .fc-2{ right:10px; }
  .foot-grid{ grid-template-columns:1fr; gap:34px; }
  .photo-band::before{ background:linear-gradient(0deg,rgba(6,16,31,.95) 30%,rgba(6,16,31,.4)); }
  .photo-band{ align-items:flex-end; padding-bottom:50px; }
  .page-hero--stage .hero-stage{ position:absolute; inset:0; height:auto; order:0; margin:0; --grp-h:min(48cqh, calc((100cqw - 8cqw) / 2.18)); opacity:.5; }
  .course-card{ min-height:540px; }
  .t-item{ grid-template-columns:60px 1fr; gap:18px; padding-right:0; }
  .timeline::before{ left:29px; }
  .t-item .badge{ width:56px; height:56px; } .t-item .badge svg{ width:26px; height:26px; }
}
@media (max-width:560px){
  .stats-grid,.review-grid,.value-grid,.fac-grid{ grid-template-columns:1fr; }
  .wrap{ padding:0 20px; }
  .stat-card{ padding:24px 22px; }
  .marquee{ margin-top:50px; }
}
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  .js .reveal,.js .reveal-left,.js .reveal-right,.js .zoom-in{ opacity:1; transform:none; transition:none; }
  *,*::before,*::after{ animation:none !important; }
}

.review-card p{ display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:4; line-clamp:4; overflow:hidden; }
.review-card.open p{ -webkit-line-clamp:unset; line-clamp:unset; display:block; }
.review-more{ align-self:flex-start; background:none; border:0; padding:0; margin-top:-4px; color:#9AD1FF; font:600 14px 'Inter',sans-serif; cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.review-more:hover,.review-more:focus-visible{ color:#fff; }
.review-card{ min-height:0; }

.course-price{ margin-top:18px; display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; padding:14px 18px; border-radius:16px; background:rgba(75,163,255,.12); border:1px solid rgba(143,194,242,.35); box-shadow:inset 0 0 28px rgba(75,163,255,.12); }
.course-price small{ color:#9AD1FF; font-size:12.5px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
.course-price strong{ font-family:'Space Grotesk',sans-serif; color:#fff; font-size:34px; line-height:1; letter-spacing:-.01em; text-shadow:0 0 22px rgba(75,163,255,.7); }
.course-price sup{ font-size:.55em; vertical-align:.6em; margin-right:2px; color:#9AD1FF; }

.course-hours{ margin-top:16px; display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.course-hours div{ text-align:center; padding:12px 6px; border-radius:14px; background:rgba(255,255,255,.07); border:1px solid rgba(143,194,242,.28); }
.course-hours b{ display:block; font-family:'Space Grotesk',sans-serif; font-size:22px; color:#fff; text-shadow:0 0 16px rgba(75,163,255,.7); }
.course-hours span{ font-size:12px; color:#9AD1FF; letter-spacing:.06em; text-transform:uppercase; font-weight:600; }
.course-more{ margin-top:16px; border-top:1px solid rgba(143,194,242,.25); padding-top:12px; }
.course-more summary{ cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; color:#9AD1FF; font-weight:600; font-size:14.5px; }
.course-more summary::-webkit-details-marker{ display:none; }
.course-more summary::after{ content:''; width:9px; height:9px; border-right:2px solid #9AD1FF; border-bottom:2px solid #9AD1FF; transform:rotate(45deg); transition:transform .25s; margin-right:4px; }
.course-more[open] summary::after{ transform:rotate(-135deg); }
.course-more h4{ margin:14px 0 2px; color:#fff; font-size:13px; letter-spacing:.08em; text-transform:uppercase; }
.course-more .cm-no{ margin-top:10px; font-size:13.5px; color:#FFD27A; }
.course-list--ok li::before{ background:#4ADE80; box-shadow:0 0 10px #4ADE80; }

.btn-prog{ position:relative; overflow:hidden; color:#fff; font-weight:700; background:linear-gradient(135deg,#1F6BFF 0%,#2EA2FF 55%,#1F6BFF 100%); background-size:200% 100%; border:1px solid rgba(255,255,255,.35); box-shadow:0 0 0 0 rgba(46,162,255,.7), 0 8px 24px -6px rgba(31,107,255,.7); animation:progPulse 2.2s ease-out infinite, progFlow 4s linear infinite; display:inline-flex; align-items:center; gap:8px; white-space:nowrap; }
.btn-prog svg{ width:18px; height:18px; stroke:#fff; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; flex:none; }
.btn-prog::after{ content:''; position:absolute; top:0; bottom:0; width:40%; left:-60%; background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent); transform:skewX(-20deg); animation:progShine 3.2s ease-in-out infinite; }
.btn-prog:hover{ transform:translateY(-2px); box-shadow:0 0 0 0 rgba(46,162,255,.7), 0 12px 30px -6px rgba(31,107,255,.9); }
@keyframes progPulse{ 0%{ box-shadow:0 0 0 0 rgba(46,162,255,.65), 0 8px 24px -6px rgba(31,107,255,.7);} 70%{ box-shadow:0 0 0 14px rgba(46,162,255,0), 0 8px 24px -6px rgba(31,107,255,.7);} 100%{ box-shadow:0 0 0 0 rgba(46,162,255,0), 0 8px 24px -6px rgba(31,107,255,.7);} }
@keyframes progFlow{ 0%{ background-position:0 0;} 100%{ background-position:200% 0;} }
@keyframes progShine{ 0%,55%{ left:-60%;} 100%{ left:130%;} }
@media (prefers-reduced-motion:reduce){ .btn-prog,.btn-prog::after{ animation:none; } }
@media (max-width:860px){ .nav-cta .btn.btn-prog{ display:inline-flex; padding:10px 14px; font-size:13.5px; } }
@media (max-width:380px){ .nav-cta .btn.btn-prog span{ font-size:12.5px; } .nav-cta .btn.btn-prog svg{ display:none; } .nav-cta{ gap:8px; } }
@media (max-width:860px){
  .page-hero .ph-img--cursos{ height:min(78vw,380px); background-position:88% 50%; }
  .page-hero .ph-img--cursos::after{ background:linear-gradient(0deg,#06101F 0%,rgba(6,16,31,.35) 14%,rgba(6,16,31,0) 34%); }
  .page-hero--cursos .wrap{ padding-top:0; }
}
@media (max-width:860px){
  .page-hero .ph-img--nosotros{ position:relative; top:0; left:0; right:0; height:min(78vw,320px); z-index:0; }
  .page-hero .ph-img--nosotros::after{ content:''; position:absolute; inset:0; z-index:2; pointer-events:none; background:linear-gradient(0deg,#06101F 0%,rgba(6,16,31,.35) 14%,rgba(6,16,31,0) 34%); }
  .page-hero--nosotros .wrap{ padding-top:0; }
}

.rc1-card{ position:relative; overflow:hidden; margin-top:32px; padding:34px 34px 30px; border-radius:26px; color:#fff; background:linear-gradient(135deg,rgba(6,16,50,.96),rgba(10,40,100,.9)), url('../img/curso-c1.jpg') center/cover; box-shadow:0 0 0 1px rgba(143,194,242,.35), 0 0 50px rgba(30,95,168,.3), 0 26px 50px -16px rgba(0,0,0,.5); }
.rc1-head{ display:flex; align-items:center; gap:16px; }
.rc1-lead{ margin:14px 0 22px; color:#D2E0F5; font-size:16px; max-width:60ch; }
.rc1-cols{ display:grid; grid-template-columns:1fr 1.2fr 1fr; gap:34px; }
.rc1-cols h4{ margin:0 0 4px; color:#fff; font-size:13px; letter-spacing:.08em; text-transform:uppercase; }
.rc1-cols .course-hours{ margin-top:0; }
.course-hours--2{ grid-template-columns:repeat(2,1fr); }
.course-hours--2 span{ display:block; line-height:1.3; }
.rc1-cols .course-price{ margin-top:16px; }
.rc1-cols .cm-no{ margin-top:10px; font-size:13.5px; color:#FFD27A; }
.rc1-card--mini{ display:flex; align-items:center; gap:26px; flex-wrap:wrap; justify-content:space-between; padding:22px 28px; }
.rc1-card--mini .course-price{ margin:0; }
@media (max-width:860px){ .rc1-cols{ grid-template-columns:1fr; gap:24px; } .rc1-card{ padding:26px 22px; } .rc1-card--mini .btn{ width:100%; justify-content:center; } }
@media (max-width:860px){
  .hero-photo > .hero-stage:not(.page-hero--stage .hero-stage){ height:380px; }
  .hero-photo > .hero-stage::after{ content:''; position:absolute; left:0; right:0; bottom:0; height:34%; z-index:9; pointer-events:none; background:linear-gradient(0deg,#06101F 0%,rgba(6,16,31,.7) 28%,rgba(6,16,31,0) 100%); }
}
@media (max-width:860px){ .hero-photo > .hero-stage .vehicle{ bottom:19cqh; } }
@media (max-width:860px){ .hero-photo{ background:linear-gradient(180deg,#06101F 0,#06101F 380px,var(--navy) 100%); } .hero-photo > .hero-stage{ background:#06101F; } }

.v-cone{ position:absolute; z-index:3; height:34%; width:auto; pointer-events:none; filter:drop-shadow(0 6px 8px rgba(0,0,0,.45)); }
.v-cone--l{ left:7%; bottom:-24%; height:38%; }
.v-cone--r{ left:71%; bottom:-27%; height:34%; }

.combo-row{ display:grid; grid-template-columns:repeat(2,1fr); gap:32px; margin-top:28px; }
.combo-card{ position:relative; overflow:hidden; padding:30px 28px; border-radius:26px; color:#fff; display:flex; flex-direction:column; gap:12px; background:linear-gradient(135deg,#0A1A33 0%,#0F3C8C 100%); box-shadow:0 0 0 1px rgba(143,194,242,.35), 0 0 50px rgba(30,95,168,.3), 0 26px 50px -16px rgba(0,0,0,.5); }
.combo-card::after{ content:''; position:absolute; right:-60px; top:-60px; width:220px; height:220px; border-radius:50%; background:radial-gradient(circle,rgba(75,163,255,.4),transparent 70%); pointer-events:none; }
.combo-tag{ align-self:flex-start; padding:5px 12px; border-radius:99px; background:rgba(255,201,60,.16); color:#FFC93C; font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; border:1px solid rgba(255,201,60,.45); }
.combo-ico{ display:flex; align-items:center; gap:12px; margin:12px 0 4px; }
.combo-ico i{ font-style:normal; font-size:26px; color:#9AD1FF; font-weight:700; }
.combo-card h3{ margin:4px 0 0; font-family:'Space Grotesk',sans-serif; font-size:34px; color:#fff; }
.combo-card p{ margin:0; color:#D2E0F5; }
.combo-card .btn{ margin-top:6px; align-self:flex-start; }
@media (max-width:860px){ .combo-row{ grid-template-columns:1fr; } .combo-card .btn{ align-self:stretch; justify-content:center; } }

.sched{ list-style:none; margin:16px 0 0; padding:0; display:grid; gap:6px; font-size:14.5px; color:#D2E0F5; }
.sched b{ color:#fff; margin-right:6px; }

.tq-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:28px; }
.tq-card{ padding:26px 24px; border-radius:22px; color:#fff; background:linear-gradient(160deg,#0A1A33,#0F2F6B); box-shadow:0 0 0 1px rgba(143,194,242,.3), 0 20px 44px -18px rgba(10,26,51,.6); }
.tq-card h3{ margin:0; font-family:'Space Grotesk',sans-serif; font-size:24px; color:#fff; }
.tq-card small{ display:block; margin:4px 0 16px; color:#9AD1FF; font-size:13px; }
.tq-card ul{ list-style:none; margin:0; padding:0; display:grid; gap:9px; }
.tq-card li{ padding:10px 14px; border-radius:12px; background:rgba(75,163,255,.14); border:1px solid rgba(143,194,242,.3); font-weight:600; font-size:15px; transition:background .25s, transform .25s; }
.tq-card li:hover{ background:rgba(75,163,255,.3); transform:translateX(4px); }
@media (max-width:860px){ .tq-row{ grid-template-columns:1fr; } }
.sched a{ color:var(--glow); font-weight:600; }

.combo-card{ min-height:340px; background-color:#0A1A33; background-repeat:no-repeat; background-size:50% 100%, 50% 100%; background-position:left center, right center; }
.combo-card--b1{ background-image:url('../img/curso-a2.jpg'), url('../img/curso-b1.jpg'); }
.combo-card--c1{ background-image:url('../img/curso-a2.jpg'), url('../img/curso-c1.jpg'); }
.combo-card::before{ content:''; position:absolute; inset:0; z-index:0; pointer-events:none; background:linear-gradient(100deg,rgba(6,16,50,.93) 0%,rgba(6,18,60,.72) 55%,rgba(6,18,60,.5) 100%); }
.combo-card::after{ z-index:0; }
.combo-card > *{ position:relative; z-index:1; }
.combo-card > .combo-tag{ position:relative; }
.combo-card::after{ right:auto; top:0; left:0; width:100%; height:100%; border-radius:0; background:linear-gradient(90deg,transparent 30%,rgba(6,16,50,.92) 50%,transparent 70%); }
