/* =========================================================
   DE SELECCIÓN — Estilos globales
   Colores de marca: #5A67EB · #000236 · blanco · negro
   Tipografía títulos: Apotek Variable (Adobe Fonts, kit bde4hdx)
   Tipografía textos / bajadas: Inter (Google Fonts)
   ========================================================= */

:root{
  /* Marca */
  --azul:#5A67EB;
  --azul-claro:#8a94f2;
  --navy:#000236;
  --negro:#000000;
  --blanco:#ffffff;

  /* Derivados */
  --bg:var(--negro);
  --bg-alt:var(--navy);
  --card:#0b0d2e;
  --line:rgba(255,255,255,.12);
  /* Regla: los textos sobre fondos oscuros van en blanco (sin grises) */
  --muted:#ffffff;
  --wa:#25d366;

  /* Tipografía — si en el kit de Adobe el nombre de la familia es otro, cambiarlo acá */
  --font-head:"apotek-variable","apotek",system-ui,sans-serif;   /* títulos h1, h2, h3 y números grandes */
  --font-body:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif; /* todo lo demás: textos, botones, etiquetas, menú */
  --font-head-settings:"wght" 800,"wdth" 70;
  --font-sub-settings:"wght" 600,"wdth" 85;

  --max:1200px;
  --radius:20px;
  --header-h:84px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:var(--header-h)}
body{background:var(--bg);color:var(--blanco);font-family:var(--font-body);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden;overflow-x:clip}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit}
.wrap{max-width:var(--max);margin:0 auto;padding:0 20px}

/* ---------- Tipografía ---------- */
/* Apotek SOLO para h1, h2 y h3 */
h1,h2,h3,.display{font-family:var(--font-head);font-variation-settings:var(--font-head-settings);font-weight:800;text-transform:uppercase;line-height:.92}
h4{font-family:var(--font-body);font-weight:700;text-transform:uppercase;line-height:1.15}
h1{font-size:clamp(56px,10vw,132px)}
h2{font-size:clamp(40px,6vw,76px)}
h3{font-size:clamp(26px,3vw,36px)}
h4{font-size:24px}
p{color:var(--muted)}
/* Subtítulos (Manifiesto, Propósito, etc.): Inter light, tipo oración, interletrado normal */
.eyebrow{display:block;font-family:var(--font-body);font-variation-settings:normal;font-weight:300;text-transform:none;font-size:18px;line-height:1.3;color:var(--azul-claro);margin-bottom:14px}
.accent{color:var(--azul)}
/* Botones, etiquetas y rótulos: Inter (Apotek solo para h1/h2/h3 y números grandes) */
/* Interletrado: siempre el normal de cada tipografía (no se modifica) */
.btn,.tag,.next-event b,.page-hero .sub,
.comp-meta,.steps span,.docs b,.foot h5{font-family:var(--font-body);font-variation-settings:normal}
/* Números grandes (pilares, datos, cuenta regresiva): Apotek */
.pillar .num,.stats b,.countdown b{font-family:var(--font-head)!important;font-variation-settings:var(--font-head-settings)!important;font-weight:800!important}
/* Inter no tiene eje de ancho: se resetean los ajustes variables en textos */
p,.lead,.prose p,.manifesto blockquote,.dropdown span,.next-event small,.stats span,.countdown span,.foot li,.copy{font-family:var(--font-body);font-variation-settings:normal}

.lead{font-size:clamp(18px,2vw,22px);color:var(--blanco)}

/* ---------- Secciones ---------- */
section{padding:110px 0;position:relative}
.section-navy{background:var(--navy)}
.section-line{border-top:1px solid var(--line)}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:56px}
.sec-head p{max-width:460px}

/* ---------- Botones ---------- */
.btn{display:inline-flex;align-items:center;gap:10px;font-variation-settings:normal;font-weight:700;text-transform:uppercase;font-size:16px;padding:15px 28px;border-radius:999px;border:2px solid var(--blanco);color:var(--blanco);transition:background .2s,color .2s,border-color .2s,transform .2s;white-space:nowrap;cursor:pointer;background:transparent}
.btn:hover{background:var(--blanco);color:var(--negro)}
.btn svg{width:20px;height:20px;flex:none}
.btn-primary{background:var(--azul);border-color:var(--azul)}
.btn-primary:hover{background:var(--blanco);border-color:var(--blanco);color:var(--navy)}
.btn-wa{background:var(--wa);border-color:var(--wa);color:#04170a}
.btn-wa:hover{background:var(--blanco);border-color:var(--blanco);color:#04170a}
.btn-sm{font-size:14px;padding:11px 20px}

.tag{display:inline-flex;align-items:center;gap:8px;font-variation-settings:normal;font-weight:600;text-transform:uppercase;font-size:12px;padding:6px 14px;border-radius:999px;border:1px solid var(--line);color:var(--muted);background:rgba(0,0,0,.35)}
.tag-live{border-color:var(--wa);color:var(--wa)}
.tag-live::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--wa);animation:pulse 1.6s infinite}
.tag-azul{border-color:var(--azul);color:var(--blanco);background:var(--azul)}
@keyframes pulse{50%{opacity:.25}}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:100;height:var(--header-h);background:rgba(0,0,0,.82);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:100%;gap:20px}
.brand{display:flex;align-items:center}
.site-header .brand img{height:56px;width:auto}
.menu{display:flex;align-items:center;gap:4px;list-style:none}
.menu>li{position:relative}
/* Menú: todo en Inter */
.menu-link{display:flex;align-items:center;gap:6px;font-family:var(--font-body);font-variation-settings:normal;font-weight:600;text-transform:uppercase;font-size:14px;padding:10px 14px;border-radius:10px;background:none;border:0;color:var(--blanco);cursor:pointer;white-space:nowrap;transition:color .2s}
.menu-link:hover,.menu-link.is-active{color:var(--azul-claro)}
.menu-link .caret{width:12px;height:12px;transition:transform .2s}
.dropdown{position:absolute;top:calc(100% + 6px);left:0;min-width:290px;background:var(--navy);border:1px solid var(--line);border-radius:16px;padding:8px;list-style:none;opacity:0;visibility:hidden;transform:translateY(6px);transition:.18s;box-shadow:0 20px 50px rgba(0,0,0,.5)}
.has-dropdown:hover .dropdown,.has-dropdown:focus-within .dropdown,.has-dropdown.is-open .dropdown{opacity:1;visibility:visible;transform:none}
.has-dropdown:hover .caret,.has-dropdown.is-open .caret{transform:rotate(180deg)}
.dropdown a{display:block;padding:14px 16px;border-radius:12px;transition:background .2s}
.dropdown a:hover{background:rgba(90,103,235,.18)}
.dropdown strong{display:block;font-family:var(--font-body);font-variation-settings:normal;font-weight:700;text-transform:uppercase;font-size:17px;line-height:1.2}
.dropdown span{display:block;margin-top:4px;font-size:13px;color:var(--muted)}
.menu .badge{font-family:var(--font-body);font-weight:600;font-size:10px;padding:2px 7px;border-radius:999px;background:rgba(90,103,235,.25);color:var(--azul-claro);text-transform:uppercase}
.menu-cta-mobile{display:none}
.burger{display:none;background:none;border:0;color:var(--blanco);cursor:pointer;padding:6px}
.burger svg{width:32px;height:32px;display:block}
.burger .ic-close{display:none}
.burger[aria-expanded="true"] .ic-open{display:none}
.burger[aria-expanded="true"] .ic-close{display:block;animation:spin-in .25s ease}
@keyframes spin-in{from{transform:rotate(-90deg);opacity:0}to{transform:none;opacity:1}}

@media (max-width:1080px){
  /* backdrop-filter haría que el menú fijo quede atrapado dentro del header */
  .site-header{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--negro)}
  .burger{display:block}
  .nav>.btn{display:none}
  .menu{position:fixed;top:var(--header-h);left:0;right:0;bottom:0;flex-direction:column;align-items:stretch;background:var(--negro);padding:16px 20px 32px;gap:0;overflow-y:auto;display:none}
  .menu.is-open{display:flex}
  .menu-link{width:100%;justify-content:space-between;padding:18px 4px;font-size:20px;border-bottom:1px solid var(--line);border-radius:0}
  .dropdown{position:static;opacity:1;visibility:visible;transform:none;display:none;background:transparent;border:0;box-shadow:none;padding:6px 0 10px 8px}
  .has-dropdown.is-open .dropdown{display:block}
  .menu-cta-mobile{display:block;margin-top:24px}
  .menu-cta-mobile .btn{width:100%;justify-content:center}
}

/* ---------- Hero ---------- */
.hero{min-height:calc(100svh - var(--header-h));display:flex;align-items:center;padding:60px 0;overflow:hidden}
/* Portadas: la versión en alta calidad va en el HTML; en celular se cambia por un recorte vertical (ver bloque MOBILE) */
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,2,54,.25) 0%,rgba(0,2,54,.55) 45%,var(--negro) 100%)}
.hero .wrap{position:relative;width:100%}
.hero .lead{max-width:640px;margin:22px 0 34px}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px}
.next-event{display:inline-flex;align-items:center;gap:14px;flex-wrap:nowrap;white-space:nowrap;margin-bottom:22px}
.next-event:hover b{color:var(--azul-claro)}
.next-event b{display:block;white-space:nowrap;transition:color .2s;font-variation-settings:normal;font-weight:700;text-transform:uppercase;font-size:22px;line-height:1}
.next-event small{font-size:14px;color:var(--muted)}

/* Hero de página interna */
/* Portadas internas: mismo alto, degradado y centrado que la del inicio */
.page-hero{min-height:calc(100svh - var(--header-h));display:flex;align-items:center;padding:60px 0;overflow:hidden}
.page-hero .wrap{position:relative;width:100%}
.page-hero .sub{font-variation-settings:normal;font-weight:600;text-transform:uppercase;font-size:clamp(18px,2.4vw,26px);margin-top:18px;color:var(--blanco)}
.page-hero .tag{margin-bottom:22px}

/* ---------- Manifiesto ---------- */
.manifesto blockquote{font-weight:600;font-size:clamp(26px,3.4vw,44px);line-height:1.18;max-width:1050px}
.manifesto blockquote em{font-style:normal;color:var(--azul)}
/* "Leer más" desplegable */
.read-more-btn{display:inline-flex;align-items:center;gap:8px;margin-top:30px;background:none;border:0;padding:6px 0;color:var(--blanco);font-family:var(--font-body);font-weight:500;font-size:17px;cursor:pointer;border-bottom:1px solid var(--azul);transition:color .2s,border-color .2s}
.read-more-btn:hover{color:var(--azul-claro);border-color:var(--azul-claro)}
.read-more-btn svg{width:16px;height:16px;transition:transform .3s}
.read-more-btn[aria-expanded="true"] svg{transform:rotate(180deg)}
.read-more{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s ease,opacity .45s ease;opacity:0}
.read-more.is-open{grid-template-rows:1fr;opacity:1}
.read-more>div{overflow:hidden}
.manifesto .rest{margin-top:22px;max-width:780px;font-size:19px;color:var(--blanco)}

/* ---------- Grillas y tarjetas ---------- */
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
@media (max-width:980px){.grid-4{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:1fr}}
@media (max-width:640px){.grid-2,.grid-4{grid-template-columns:1fr}}

.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:34px;position:relative;overflow:hidden}
.card h3{margin-bottom:14px}
/* Cards destacadas: contorno en degradado violeta (sin brillo de fondo) */
.card-glow{border:1.5px solid transparent;background:linear-gradient(var(--card),var(--card)) padding-box,linear-gradient(135deg,var(--azul) 0%,rgba(90,103,235,.25) 45%,rgba(90,103,235,.25) 60%,var(--azul) 100%) border-box}

.pillar{display:flex;flex-direction:column;gap:14px;min-height:320px;transition:transform .25s,border-color .25s,background .25s}
.pillar:hover{transform:translateY(-6px);border-color:var(--azul);background:var(--navy)}
.pillar .num{font-variation-settings:normal;font-weight:700;font-size:72px;line-height:1;color:transparent;-webkit-text-stroke:1.5px var(--azul)}
.pillar h3{font-size:clamp(24px,2.1vw,42px);margin:0;overflow-wrap:normal;word-break:keep-all}
.pillar img{width:42px;height:42px;margin-top:auto;opacity:.9}

.feature{display:flex;gap:20px;align-items:flex-start}
.feature .ic{flex:0 0 56px;height:56px;border-radius:16px;background:rgba(90,103,235,.18);display:grid;place-items:center;color:var(--azul-claro)}
.feature .ic svg{width:26px;height:26px}
.feature .ic img{width:28px;height:28px}
.feature h4{margin-bottom:8px}

/* ---------- Tarjetas de competencias ---------- */
.comp{border-radius:24px;overflow:hidden;border:1px solid var(--line);background:var(--card);display:flex;flex-direction:column;transition:transform .25s,border-color .25s}
.comp:hover{transform:translateY(-6px)}
.comp-img{aspect-ratio:16/10;background-size:cover;background-position:center;position:relative}
.comp-img .tag{position:absolute;top:16px;left:16px}
.comp-body{padding:30px;display:flex;flex-direction:column;gap:12px;flex:1}
.comp-meta{font-variation-settings:normal;font-weight:600;text-transform:uppercase;font-size:16px}
.comp-body .btn{margin-top:auto;align-self:flex-start}
.comp.is-featured{border-color:var(--azul);box-shadow:0 0 0 1px var(--azul),0 30px 70px -25px rgba(90,103,235,.7)}

/* ---------- Texto largo ---------- */
.prose p{font-size:19px;margin-bottom:20px;max-width:800px}
.prose p strong{color:var(--blanco)}
.split{display:grid;grid-template-columns:1.1fr 1fr;gap:60px;align-items:center}
@media (max-width:900px){.split{grid-template-columns:1fr;gap:40px}}
.split-media img{border-radius:var(--radius);width:100%}

.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:20px;overflow:hidden;margin-top:56px}
.stats div{background:var(--navy);padding:28px}
.stats b{display:block;font-variation-settings:normal;font-weight:700;font-size:52px;line-height:1;text-transform:uppercase}
.stats span{color:var(--muted);font-size:15px}
@media (max-width:700px){.stats{grid-template-columns:repeat(2,1fr)}}

/* ---------- Formato / llaves ---------- */
.format{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
@media (max-width:820px){.format{grid-template-columns:1fr}}
.steps{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.steps span{font-variation-settings:normal;font-weight:600;text-transform:uppercase;font-size:14px;padding:8px 14px;border-radius:10px;background:rgba(90,103,235,.15);border:1px solid rgba(90,103,235,.35)}
.steps span.final{background:var(--azul);border-color:var(--azul)}

/* ---------- Galería ---------- */
.gallery{columns:3 280px;column-gap:14px}
.gallery a{display:block;margin-bottom:14px;border-radius:16px;overflow:hidden;break-inside:avoid;cursor:zoom-in}
.gallery img{width:100%;transition:transform .5s}
.gallery a:hover img{transform:scale(1.05)}

.lightbox{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.94);display:none;align-items:center;justify-content:center;padding:20px}
.lightbox.is-open{display:flex}
.lightbox img{max-height:88vh;max-width:100%;border-radius:12px}
.lightbox button{position:absolute;background:rgba(255,255,255,.1);border:0;color:#fff;width:52px;height:52px;border-radius:50%;cursor:pointer;display:grid;place-items:center}
.lightbox button:hover{background:var(--azul)}
.lightbox button svg{width:24px;height:24px}
.lb-close{top:20px;right:20px}
.lb-prev{left:20px;top:50%;transform:translateY(-50%)}
.lb-next{right:20px;top:50%;transform:translateY(-50%)}

/* ---------- Instagram ---------- */
.ig-embed{display:flex;justify-content:center}
.ig-embed .instagram-media{min-width:280px!important;max-width:470px!important;width:100%!important;border-radius:18px!important;margin:0!important}

/* ---------- Documentos ---------- */
.docs a{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;border:1px solid var(--line);border-radius:16px;margin-bottom:12px;transition:.2s}
.docs a:hover{border-color:var(--azul);background:var(--navy)}
.docs b{font-variation-settings:normal;font-weight:700;text-transform:uppercase;font-size:17px}
.docs svg{width:22px;height:22px;flex:none;color:var(--azul-claro)}

/* ---------- Cuenta regresiva ---------- */
.countdown{display:flex;gap:12px;margin:30px 0 36px;flex-wrap:wrap}
.countdown div{background:rgba(0,2,54,.85);border:1px solid rgba(90,103,235,.45);border-radius:18px;padding:16px 18px;min-width:100px;text-align:center}
.countdown b{display:block;font-variation-settings:normal;font-weight:700;font-size:54px;line-height:1}
.countdown span{font-size:12px;text-transform:uppercase;color:var(--muted)}

/* ---------- Sede ---------- */
.venue-photos-old{display:grid;grid-template-columns:1fr 1.6fr;gap:14px}
.venue-photos img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius);aspect-ratio:4/3}
@media (max-width:640px){.venue-photos{grid-template-columns:1fr}}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 30px}
.map{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);aspect-ratio:16/7;margin-top:30px}
.map iframe{width:100%;height:100%;border:0;filter:grayscale(1) invert(.92) hue-rotate(200deg) contrast(.9)}

/* ---------- CAF7 ---------- */
.caf-title{font-size:clamp(34px,4.4vw,64px)}
.caf-logo{height:130px;width:auto;margin-bottom:34px}
.circuit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.circuit-grid img{border-radius:16px;aspect-ratio:1;object-fit:cover;width:100%}
@media (max-width:640px){.circuit-grid{grid-template-columns:repeat(2,1fr)}}
.map-america{max-width:620px;margin:0 auto}

/* ---------- Sponsors (marquesina) ---------- */
.sponsors{padding:70px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--negro);overflow:hidden}
.sponsors .eyebrow{text-align:center;margin-bottom:36px}
.marquee{position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.marquee-track{display:flex;width:max-content;animation:marquee 35s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-group{display:flex;align-items:center;gap:90px;padding-right:90px}
.marquee-group img{height:56px;width:auto;max-width:200px;object-fit:contain;opacity:.75;transition:opacity .2s}
.marquee-group img:hover{opacity:1}
.marquee-group img.tall{height:72px}
@keyframes marquee{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.marquee-track{animation:none;flex-wrap:wrap}}

/* ---------- CTA ---------- */
.cta-band{text-align:center;background:radial-gradient(ellipse at 50% 60%,rgba(90,103,235,.45),transparent 62%),var(--navy)}
.cta-band h2{margin-bottom:18px}
.cta-band p{margin:0 auto 34px;max-width:580px;font-size:19px}
.cta-band .actions{display:flex;justify-content:center;flex-wrap:wrap;gap:14px}

/* ---------- Footer ---------- */
.site-footer{padding:80px 0 34px;background:var(--navy)}
.foot{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:40px}
@media (max-width:760px){.foot{grid-template-columns:1fr}}
.foot .brand{display:inline-flex}
.foot .brand img{height:48px;width:auto;margin-bottom:20px}
.foot h5{font-variation-settings:normal;font-weight:600;text-transform:uppercase;font-size:13px;color:var(--azul-claro);margin-bottom:16px}
.foot ul{list-style:none}
.foot li{margin-bottom:10px;color:var(--muted)}
.foot a{color:var(--blanco);transition:color .2s}
.foot a:hover{color:var(--azul-claro)}
.copy{margin-top:56px;padding-top:24px;border-top:1px solid var(--line);font-size:14px;color:var(--muted);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}

/* ---------- WhatsApp flotante ---------- */
.wa-float{position:fixed;right:20px;bottom:20px;z-index:90;width:60px;height:60px;border-radius:50%;background:var(--wa);display:grid;place-items:center;box-shadow:0 10px 30px rgba(0,0,0,.45);transition:transform .2s}
.wa-float:hover{transform:scale(1.08)}
.wa-float svg{width:32px;height:32px;color:#fff}

/* ---------- Animación de aparición ---------- */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.reveal.is-visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}}

.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* =========================================================
   MOBILE — optimización (tablet ≤ 900px · celular ≤ 640px)
   ========================================================= */

/* Barra fija de inscripción (solo celular, la genera main.js) */
.mobile-bar{display:none}
.carousel-hint{display:none}
.split>*,.grid-2>*,.grid-3>*,.grid-4>*{min-width:0}
h1,h2,h3{overflow-wrap:break-word;hyphens:manual}

@media (max-width:900px){
  section{padding:80px 0}
  .sec-head{margin-bottom:40px}
  .map{aspect-ratio:4/3}
}

@media (max-width:640px){
  :root{--header-h:72px;--radius:16px}
  body{font-size:16px}
  .wrap{padding:0 18px}

  /* Ritmo vertical más compacto */
  section{padding:64px 0}
  .sec-head{margin-bottom:28px;gap:14px}
  .sec-head p{font-size:15px}
  .eyebrow{font-size:16px;margin-bottom:10px}

  /* Títulos */
  h1{font-size:clamp(48px,14vw,64px)}
  h2{font-size:clamp(34px,10vw,44px);overflow-wrap:break-word}
  h3{font-size:26px}
  h4{font-size:21px}
  .lead{font-size:17px}
  .prose p,.manifesto .rest,.cta-band p{font-size:16px}

  /* Header */
  .site-header .brand img{height:46px}
  .menu-link{font-size:18px;padding:16px 4px}

  /* Botones: ancho completo y fáciles de tocar */
  .btn{padding:15px 22px;font-size:15px;justify-content:center}
  .hero-actions,.cta-band .actions{flex-direction:column;align-items:stretch}
  .hero-actions .btn,.cta-band .actions .btn{width:100%}
  .page-hero .btn,.cta-band .btn{width:100%}

  /* Hero */
  .hero{min-height:calc(100svh - var(--header-h));padding:40px 0}
  .hero .lead{margin:16px 0 26px}
  .hero-bg{background-position:center!important}
  .hero-home{background-image:url("../img/portadas/home-m.jpg")!important}
  .hero-copa-ds{background-image:url("../img/portadas/copa-ds-m.jpg")!important}
  .hero-copa-regional{background-image:url("../img/portadas/copa-regional-m.jpg")!important}
  .hero-caf7{background-image:url("../img/portadas/caf7-m.jpg")!important}
  .next-event{gap:10px;margin-bottom:18px;max-width:100%}
  .next-event .tag{font-size:10px;padding:5px 9px}
  .next-event b{font-size:clamp(12px,3.8vw,19px)}
  .hide-m{display:none}
  .page-hero{padding:40px 0}
  .page-hero .sub{font-size:16px;margin-top:12px}
  .page-hero .tag{margin-bottom:16px}

  /* Manifiesto */
  .manifesto blockquote{font-size:24px;line-height:1.25}
  .manifesto .rest{margin-top:22px}

  /* Tarjetas */
  .card{padding:24px}
  .card h3{margin-bottom:10px}
  .grid-2,.grid-3,.grid-4{gap:14px}
  .feature{flex-direction:column;gap:14px}
  .feature .ic{flex:none;width:48px;height:48px;border-radius:14px}

  /* Carruseles horizontales (pilares y competencias) */
  .carousel-m{display:flex!important;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;margin:0 -18px;padding:4px 18px 18px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .carousel-m::-webkit-scrollbar{display:none}
  .carousel-m>*{flex:0 0 82%;scroll-snap-align:center}
  .carousel-hint{display:flex;justify-content:center;gap:6px;margin-top:2px}
  .carousel-hint i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.25);transition:background .2s,width .2s}
  .carousel-hint i.on{background:var(--azul);width:18px;border-radius:3px}
  .pillar{min-height:0}
  .pillar .num{font-size:52px}
  .pillar h3{font-size:34px}
  .pillar:hover,.comp:hover{transform:none}
  .comp-body{padding:22px}
  .comp-body .btn{width:100%}

  /* Stats */
  .stats{margin-top:36px}
  .stats div{padding:18px}
  .stats b{font-size:34px}
  .stats span{font-size:13px}

  /* Cuenta regresiva en una sola fila */
  .countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:24px 0 26px}
  .countdown div{min-width:0;padding:12px 4px;border-radius:14px}
  .countdown b{font-size:34px}
  .countdown span{font-size:10px}

  /* Formato */
  .steps span{font-size:13px;padding:7px 11px}

  /* Galería en 2 columnas */
  .gallery{columns:2;column-gap:8px}
  .gallery a{margin-bottom:8px;border-radius:10px}
  .lightbox{padding:10px}
  .lb-prev,.lb-next{top:auto!important;bottom:24px;transform:none!important}
  .lb-prev{left:calc(50% - 64px)!important}
  .lb-next{right:calc(50% - 64px)!important}

  /* Split / media */
  .split{gap:32px}
  .split-media img{max-width:280px!important;margin:0 auto!important}
  .venue-photos img{aspect-ratio:16/10}
  .chips{margin:18px 0 22px}
  .map{margin-top:20px}

  /* CAF7 */
  .caf-logo{height:84px;margin-bottom:24px}
  .circuit-grid{gap:8px}
  .circuit-grid img{border-radius:10px}

  /* Documentos */
  .docs a{padding:16px 18px}
  .docs b{font-size:15px}

  /* Sponsors */
  .sponsors{padding:44px 0}
  .sponsors .eyebrow{margin-bottom:24px}
  .marquee-track{animation-duration:24s}
  .marquee-group{gap:48px;padding-right:48px}
  .marquee-group img{height:38px;max-width:130px}
  .marquee-group img.tall{height:50px}

  /* Footer */
  .site-footer{padding:56px 0 calc(96px + env(safe-area-inset-bottom))}
  .foot{gap:30px}
  .copy{margin-top:36px;flex-direction:column;gap:6px}

  /* WhatsApp: en celular se reemplaza por la barra fija */
  .wa-float{display:none}
  .mobile-bar{display:flex;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:95;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:rgba(0,2,54,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid rgba(90,103,235,.4);transform:translateY(110%);transition:transform .3s ease}
  .mobile-bar.is-visible{transform:none}
  .mobile-bar .btn{flex:1;padding:13px 16px;font-size:14px}
  .mobile-bar .btn-icon{flex:0 0 50px;padding:0;border-color:rgba(255,255,255,.35)}
  body.menu-open .mobile-bar{transform:translateY(110%)}
}

@media (max-width:360px){
  .wrap{padding:0 16px}
  h2{font-size:32px}
  .countdown b{font-size:28px}
  .next-event .tag{font-size:9px;padding:4px 7px}
}


/* ---------- Íconos de cards ---------- */
.feature .ic .arrow-ur{width:24px;height:24px;color:var(--blanco)}
.card-icon{display:flex;align-items:center;justify-content:flex-start;width:48px;height:48px;margin-bottom:22px}
.card-icon img{max-width:100%;max-height:100%;object-fit:contain}

/* ---------- Galería de la sede ---------- */
.venue-main{display:block;border-radius:var(--radius);overflow:hidden;cursor:zoom-in}
.venue-main img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .5s}
.venue-main:hover img{transform:scale(1.04)}
.venue-gallery{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;margin-top:30px}
.venue-gallery a{display:block;border-radius:12px;overflow:hidden;cursor:zoom-in}
.venue-gallery img{width:100%;aspect-ratio:1;object-fit:cover;transition:transform .5s}
.venue-gallery a:hover img{transform:scale(1.06)}
@media (max-width:900px){.venue-gallery{grid-template-columns:repeat(4,1fr)}}
@media (max-width:640px){.venue-gallery{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:8px;margin:20px -18px 0;padding:0 18px 6px;scrollbar-width:none}.venue-gallery::-webkit-scrollbar{display:none}.venue-gallery a{flex:0 0 42%;scroll-snap-align:start;border-radius:10px}}

/* ---------- Ajustes finales mobile ---------- */
@media (max-width:640px){
  .br-d{display:none}
  .stats b{font-size:30px}
  .countdown span{font-size:11px}
  .page-hero .sub{line-height:1.35}
}

/* ---------- Cursor personalizado (solo con mouse) ---------- */
.cursor-dot,.cursor-ring{position:fixed;top:0;left:0;z-index:9999;pointer-events:none;border-radius:50%;transform:translate3d(-100px,-100px,0);opacity:0;transition:opacity .2s}
.cursor-dot{width:8px;height:8px;margin:-4px 0 0 -4px;background:var(--blanco)}
.cursor-ring{width:36px;height:36px;margin:-18px 0 0 -18px;border:1.5px solid var(--blanco);transition:opacity .2s,width .25s ease,height .25s ease,margin .25s ease,background .25s ease,border-color .25s ease}
.has-cursor .cursor-dot,.has-cursor .cursor-ring{opacity:1}
/* Sobre un elemento interactivo: el aro crece y se rellena en violeta */
.cursor-hover .cursor-ring{width:64px;height:64px;margin:-32px 0 0 -32px;background:rgba(90,103,235,.25);border-color:var(--azul)}
.cursor-hover .cursor-dot{background:var(--azul)}
.cursor-down .cursor-ring{width:28px;height:28px;margin:-14px 0 0 -14px}
@media (hover:hover) and (pointer:fine){
  .has-cursor,.has-cursor *{cursor:none!important}
  .has-cursor input,.has-cursor textarea{cursor:text!important}
}
@media (hover:none),(pointer:coarse){.cursor-dot,.cursor-ring{display:none}}

/* ---------- Pantalla de carga ---------- */
.loader{position:fixed;inset:0;z-index:10000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:42px;
  background:radial-gradient(ellipse at 50% 45%,#5A67EB 0%,#2a3199 28%,var(--navy) 62%,#000 100%);
  transition:opacity .6s ease,visibility .6s ease}
.loader.is-hidden{opacity:0;visibility:hidden;pointer-events:none}
.loader-logo{width:clamp(110px,16vw,170px);height:auto;overflow:visible;animation:loader-in .7s cubic-bezier(.2,.8,.2,1) both}
.loader-logo path{fill:#fff}
.loader-base{opacity:.18}
/* El isotipo se "llena" de abajo hacia arriba, en loop */
.loader-fill-rect{transform-box:fill-box;transform-origin:50% 100%;animation:loader-fill 1.6s cubic-bezier(.65,0,.35,1) infinite}
.loader-dot{transform-box:fill-box;transform-origin:50% 50%;animation:loader-dot 1.6s ease-in-out infinite}
.loader-bar{width:clamp(120px,14vw,180px);height:2px;border-radius:2px;background:rgba(255,255,255,.18);overflow:hidden}
.loader-bar span{display:block;width:40%;height:100%;background:#fff;border-radius:2px;animation:loader-bar 1.2s ease-in-out infinite}
@keyframes loader-in{from{opacity:0;transform:scale(.85)}to{opacity:1;transform:none}}
@keyframes loader-fill{0%{transform:scaleY(0)}55%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}
@keyframes loader-dot{0%,100%{transform:scale(1)}50%{transform:scale(1.45)}}
@keyframes loader-bar{0%{transform:translateX(-110%)}100%{transform:translateX(260%)}}
body.is-loading{overflow:hidden}
@media (prefers-reduced-motion:reduce){
  .loader-logo,.loader-fill-rect,.loader-dot,.loader-bar span{animation:none}
}
