/* ═══════════════════════════════════════════════════════════════
   CARRERA HÉROES DE MALVINAS — style.css v3.1
   Glassmorphism · Mapa · Auspiciantes · Animaciones pro
═══════════════════════════════════════════════════════════════ */

:root {
  --bg-dark:   #07111d;
  --bg-dark-2: #0a1726;
  --bg-hero:   #040a12;
  --bg-light:  #f5f5f7;
  --bg-light-2:#ffffff;
  --text-dark:      #1d1d1f;
  --text-dark-soft: #4b5563;
  --text-light:     #f4f7fb;
  --text-light-soft:#cad5e2;
  --text-muted:     #7e8da3;
  --accent:   #4dbdf5;
  --accent-2: #c9efff;
  --wa-green: #25d366;
  --line-light: rgba(17,24,39,0.08);
  --line-dark:  rgba(255,255,255,0.10);
  --shadow-soft: 0 18px 50px rgba(17,24,39,0.08);
  --shadow-dark: 0 28px 80px rgba(0,0,0,0.28);
  --radius-xl: 30px;
  --radius-lg: 22px;
  --radius-md: 18px;
  --container: 1280px;
  --header-height: 84px;
  --transition: 220ms ease;
}

*   { box-sizing: border-box; }
html{ scroll-behavior: smooth; }

body {
  margin: 0;
  min-width: 320px;
  font-family: "Inter", system-ui, sans-serif;
  background: var(--bg-light);
  color: var(--text-dark);
  line-height: 1.5;
  overflow-x: hidden;
}

img { max-width:100%; display:block; }
a   { color:inherit; text-decoration:none; }
button,input,textarea,select{ font:inherit; }
button { cursor:pointer; }

.container {
  width: min(100% - 32px, var(--container));
  margin-inline: auto;
}

/* ─── Secciones ─── */
.light-section { background: var(--bg-light); color: var(--text-dark); }

.dark-section {
  background:
    radial-gradient(circle at 18% 20%, rgba(77,189,245,0.08), transparent 20%),
    radial-gradient(circle at 82% 20%, rgba(77,189,245,0.05), transparent 18%),
    linear-gradient(180deg, var(--bg-dark) 0%, var(--bg-dark-2) 100%);
  color: var(--text-light);
}

/* ─── Paneles ─── */
.panel-light {
  background: rgba(255,255,255,0.88);
  border: 1px solid var(--line-light);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-soft);
  backdrop-filter: blur(12px);
}

.panel-dark {
  background: linear-gradient(180deg, rgba(10,21,36,0.88) 0%, rgba(7,16,29,0.82) 100%);
  border: 1px solid var(--line-dark);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-dark);
  backdrop-filter: blur(18px);
}

/* ─── Tipografía ─── */
.dark-title,.hero-title,.section-title,
.distance-card h3,.route-info h3,
.timeline-item h3,.registration-block h3,.final-cta h2 {
  font-family: "Barlow Condensed", sans-serif;
  text-transform: uppercase;
  line-height: 0.95;
  letter-spacing: 0.01em;
}

.hero-title {
  margin: 18px 0 0;
  font-size: clamp(3.6rem,8vw,7.2rem);
  color: var(--text-light);
}
.hero-title span,.section-title span { color: var(--accent); }
.section-title { margin: 12px 0 0; font-size: clamp(2.2rem,4.2vw,4rem); }
.dark-title    { color: var(--text-dark); }
.dark-text     { color: var(--text-dark-soft); }

.section-kicker,.card-kicker,.brand-kicker,.visual-tag,.meta-label,.dark-kicker {
  display: inline-block;
  font-size: 0.72rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
}
.section-kicker,.card-kicker,.brand-kicker,.visual-tag,.meta-label { color: var(--accent-2); }
.dark-kicker { color: #2d6c8f; }

/* ─── Botones ─── */
.btn {
  display: inline-flex; align-items:center; justify-content:center; gap:10px;
  min-height:48px; border-radius:999px; padding:0 22px;
  transition: transform var(--transition), box-shadow var(--transition),
              background-color var(--transition), border-color var(--transition), color var(--transition);
  white-space:nowrap; border:0;
}
.btn:hover { transform: translateY(-2px); }
.btn-large  { min-height:54px; padding:0 24px; font-size:0.98rem; font-weight:800; }

.btn-primary {
  background: linear-gradient(135deg, #74d2ff 0%, #d8f5ff 100%);
  color:#06111d; font-weight:800;
  box-shadow: 0 16px 34px rgba(77,189,245,0.18);
}
.btn-primary:hover { box-shadow: 0 20px 40px rgba(77,189,245,0.28); }

.btn-secondary { background:rgba(255,255,255,0.05); border:1px solid var(--line-dark); color:var(--text-light); font-weight:700; }
.btn-secondary:hover { background:rgba(255,255,255,0.10); }
.btn-secondary-light { background:rgba(17,24,39,0.03); border:1px solid rgba(17,24,39,0.10); color:var(--text-dark); font-weight:700; }
.btn-secondary-light:hover,.btn-dark-line:hover { background:rgba(17,24,39,0.04); }
.btn-dark-line { margin-top:auto; background:transparent; border:1px solid rgba(17,24,39,0.12); color:var(--text-dark); font-weight:800; }

/* ─── Header ─── */
.site-header {
  position:sticky; top:0; z-index:50; height:var(--header-height);
  background: rgba(4,10,18,0.34); border-bottom:1px solid rgba(255,255,255,0.06);
  backdrop-filter:blur(18px);
  transition: background var(--transition), border-color var(--transition), height var(--transition);
}
.site-header.scrolled { background:rgba(4,10,18,0.88); border-bottom-color:rgba(255,255,255,0.10); height:76px; }

.header-inner {
  height:100%; display:grid;
  grid-template-columns: auto 1fr auto;
  align-items:center; gap:22px;
}

.brand { display:inline-flex; align-items:center; gap:12px; min-width:0; }
.brand-logo { height:44px; width:auto; object-fit:contain; }
.brand-text  { display:flex; flex-direction:column; }
.brand-kicker{ font-size:0.62rem; letter-spacing:0.18em; color:var(--accent-2); }
.brand-title { font-weight:800; font-size:0.92rem; color:var(--text-light); white-space:nowrap; }

.main-nav { display:flex; align-items:center; justify-content:center; gap:26px; }
.main-nav a { color:var(--text-light-soft); font-size:0.95rem; transition:color var(--transition); }
.main-nav a:hover { color:var(--text-light); }

.header-actions { display:flex; align-items:center; gap:14px; }
.header-phone   { color:var(--text-light-soft); font-size:0.92rem; }

.menu-toggle {
  display:none; width:46px; height:46px; border-radius:14px;
  border:1px solid rgba(255,255,255,0.08); background:rgba(255,255,255,0.04);
  align-items:center; justify-content:center; flex-direction:column; gap:5px;
}
.menu-toggle span { display:block; width:18px; height:2px; background:white; border-radius:10px; }

/* ─── Hero ─── */
.hero-section {
  position:relative; min-height:calc(100vh - var(--header-height));
  padding-top:44px; padding-bottom:44px; overflow:hidden; background:var(--bg-hero);
}

.hero-bg {
  position:absolute; inset:-4% -4% 0 -4%;
  background:
    linear-gradient(180deg, rgba(3,9,17,0.18), rgba(3,9,17,0.78)),
    radial-gradient(circle at 20% 22%, rgba(77,189,245,0.10), transparent 22%),
    radial-gradient(circle at 78% 18%, rgba(77,189,245,0.08), transparent 20%),
    url("assets/hero-bg.jpg") center/cover no-repeat;
  will-change:transform; transform:translate3d(0,0,0) scale(1.05);
}
.hero-overlay {
  position:absolute; inset:0;
  background: linear-gradient(90deg, rgba(4,10,18,0.76) 0%, rgba(4,10,18,0.45) 44%, rgba(4,10,18,0.72) 100%);
}

/* Partículas héro */
.hero-particles { position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.particle {
  position:absolute; border-radius:50%;
  background: radial-gradient(circle, rgba(77,189,245,0.55) 0%, transparent 70%);
  animation: particleFloat linear infinite;
}
.p1 { width:280px; height:280px; left:-60px; top:10%;  animation-duration:24s; opacity:.22; }
.p2 { width:180px; height:180px; right:5%;  top:8%;   animation-duration:18s; animation-delay:-7s; opacity:.16; }
.p3 { width:120px; height:120px; left:30%;  top:72%;  animation-duration:20s; animation-delay:-12s; opacity:.14; }
.p4 { width:90px;  height:90px;  right:20%; top:58%;  animation-duration:15s; animation-delay:-4s; opacity:.12; }
.p5 { width:60px;  height:60px;  left:60%;  top:20%;  animation-duration:22s; animation-delay:-9s; opacity:.18; }
.p6 { width:40px;  height:40px;  left:10%;  top:45%;  animation-duration:17s; animation-delay:-2s; opacity:.13; }

@keyframes particleFloat {
  0%   { transform: translate(0,0) scale(1); }
  33%  { transform: translate(18px,-24px) scale(1.06); }
  66%  { transform: translate(-12px,16px) scale(0.96); }
  100% { transform: translate(0,0) scale(1); }
}

.hero-grid {
  position:relative; z-index:2; display:grid;
  grid-template-columns: 0.92fr 1.08fr; gap:26px; align-items:stretch;
  min-height: calc(100vh - var(--header-height) - 90px);
}
.hero-copy { color:var(--text-light); }

.eyebrow {
  display:inline-flex; padding:10px 16px; border-radius:999px;
  background:rgba(255,255,255,0.05); border:1px solid rgba(125,211,252,0.14);
  color:var(--accent-2); font-size:0.75rem; letter-spacing:0.22em; text-transform:uppercase;
}

.hero-actions  { display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.hero-text     { margin:18px 0 0; font-size:1.05rem; line-height:1.68; color:var(--text-light-soft); }

.hero-inline-meta {
  display:grid; grid-template-columns: repeat(3,1fr);
  gap:12px; margin-top:28px; padding-top:22px;
  border-top:1px solid rgba(255,255,255,0.08);
}
.hero-inline-item { display:flex; flex-direction:column; gap:4px; }
.hero-inline-item span { font-size:0.68rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--text-muted); }
.hero-inline-item strong { font-size:0.92rem; color:var(--text-light); }

.hero-visual-panel { display:flex; flex-direction:column; gap:16px; min-height:100%; }

.hero-main-image {
  position:relative; flex:1; min-height:520px; overflow:hidden;
  border-radius:34px; border:1px solid rgba(255,255,255,0.10); box-shadow:var(--shadow-dark);
}
.hero-main-image img {
  width:100%; height:100%; min-height:520px; object-fit:cover;
  filter:saturate(0.95) contrast(1.02);
  transition: transform 600ms cubic-bezier(0.2,0.8,0.2,1);
}
.hero-main-image:hover img { transform: scale(1.03); }
.hero-main-image::after {
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(135deg, rgba(4,10,19,0.14) 0%, rgba(4,10,19,0.54) 72%),
    linear-gradient(180deg, transparent 0%, rgba(4,10,19,0.86) 100%);
}
.hero-main-image-overlay {
  position:absolute; left:20px; right:20px; bottom:20px; z-index:2;
  padding:22px; border-radius:24px;
  background:rgba(4,9,18,0.58); border:1px solid rgba(255,255,255,0.08);
  backdrop-filter:blur(14px);
}
.hero-main-image-overlay h2 {
  margin:10px 0 0; font-family:"Barlow Condensed",sans-serif;
  font-size:clamp(2rem,4vw,3rem); text-transform:uppercase; line-height:0.95; color:var(--text-light);
}
.hero-main-image-overlay p { margin:12px 0 0; font-size:0.84rem; color:var(--text-light-soft); line-height:1.5; }

.visual-tag {
  display:inline-block; padding:5px 12px; border-radius:999px;
  background:rgba(77,189,245,0.12); border:1px solid rgba(77,189,245,0.22);
  color:var(--accent); font-size:0.68rem; letter-spacing:0.2em; text-transform:uppercase;
}

.hero-bottom-strip {
  display:grid; grid-template-columns:1fr 1fr; gap:14px;
}

.hero-countdown-block,.hero-contact-block {
  padding:20px 22px; border-radius:26px;
  background:rgba(4,9,18,0.52); border:1px solid rgba(255,255,255,0.08);
  backdrop-filter:blur(14px);
}

.countdown-grid {
  display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:12px;
}
.count-box {
  display:flex; flex-direction:column; align-items:center; gap:3px;
  padding:10px 4px; border-radius:16px;
  background:rgba(77,189,245,0.06); border:1px solid rgba(77,189,245,0.10);
}
.count-box span {
  font-family:"Barlow Condensed",sans-serif;
  font-size:2rem; line-height:1; color:var(--accent); font-weight:700;
}
.count-box small { font-size:0.6rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--text-muted); }

.hero-contact-links { display:flex; flex-direction:column; gap:10px; margin-top:12px; }
.mini-action {
  display:inline-flex; align-items:center; gap:8px;
  padding:9px 14px; border-radius:12px;
  background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.08);
  color:var(--text-light); font-size:0.85rem; font-weight:600;
  transition: background var(--transition), border-color var(--transition), transform var(--transition);
}
.mini-action:hover { background:rgba(255,255,255,0.10); transform:translateX(3px); }

.mini-action-wa {
  background: rgba(37,211,102,0.12);
  border-color: rgba(37,211,102,0.22);
  color: #6effa4;
}
.mini-action-wa:hover { background:rgba(37,211,102,0.20); border-color:rgba(37,211,102,0.36); }
.mini-action-wa svg { flex-shrink:0; }

.mini-action-email {
  background: rgba(77,189,245,0.08);
  border-color: rgba(77,189,245,0.16);
  color: var(--accent-2);
  font-size:0.78rem;
  word-break:break-all;
}
.mini-action-email:hover { background:rgba(77,189,245,0.16); border-color:rgba(77,189,245,0.28); }
.mini-action-email svg { flex-shrink:0; }

/* ─── Quick info band ─── */
.quick-info { padding:0; }
.quick-info-band {
  background: var(--bg-light-2);
  border-bottom: 1px solid var(--line-light);
  box-shadow: 0 6px 24px rgba(17,24,39,0.04);
}
.quick-info-band-inner {
  display:grid; grid-template-columns:repeat(4,1fr);
}
.quick-stat {
  display:flex; flex-direction:column; gap:4px;
  padding:22px 28px;
  border-right:1px solid rgba(17,24,39,0.06);
  transition: background var(--transition);
}
.quick-stat:hover { background:rgba(77,189,245,0.04); }
.quick-stat:last-child { border-right:0; }
.quick-stat-label { font-size:0.68rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--text-muted); }
.quick-stat-value { font-weight:700; font-size:0.95rem; }
.quick-stat-cta   { justify-content:center; }

/* ─── Story / Homenaje ─── */
.story-section,.distances-section,.routes-section,
.agenda-section,.faq-section,.final-cta-section,
.registration-section,.sponsors-section,
.info-operativa-section,.requisitos-section {
  padding-top:80px; padding-bottom:80px;
}

.story-grid {
  display:grid; grid-template-columns:1.2fr 0.8fr; gap:24px; align-items:start;
}
.story-main,.registration-main,.route-controls,.agenda-main { padding:38px; }
.story-side   { display:flex; flex-direction:column; gap:16px; }
.section-head {
  display:flex; align-items:flex-end; justify-content:space-between; gap:18px;
  margin-bottom:36px;
}
.section-text { margin:16px 0 0; line-height:1.72; }

.mini-panel {
  padding:24px 26px;
  transition: transform var(--transition), box-shadow var(--transition);
}
.mini-panel:hover { transform:translateY(-3px); }
.mini-panel-title {
  display:block; font-weight:800; font-size:0.9rem;
  letter-spacing:0.06em; text-transform:uppercase; color:#1c6f95; margin-bottom:8px;
}

/* ─── Distance cards glassmorphism ─── */
.distance-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }

.distance-card-glass {
  position:relative; overflow:hidden; border-radius:28px;
  min-height:560px; display:flex; flex-direction:column;
  border:1px solid rgba(255,255,255,0.22);
  box-shadow: 0 24px 60px rgba(0,0,0,0.18);
  cursor:default;
  transform-style:preserve-3d;
  transition: transform 320ms cubic-bezier(0.2,0.8,0.2,1), box-shadow 320ms ease;
}
.distance-card-glass:hover { box-shadow: 0 36px 80px rgba(0,0,0,0.28); }

.dcg-bg {
  position:absolute; inset:-6%; z-index:0;
  background:
    linear-gradient(135deg, #0d1f31 0%, #152538 60%, #0a1520 100%);
  background-size:cover; background-position:center;
  filter:saturate(1.04) brightness(1.16) contrast(1.03);
  transform:scale(1.05);
  transition:transform 400ms cubic-bezier(0.2,0.8,0.2,1);
}
.dcg-overlay {
  position:absolute; inset:0; z-index:1;
  background: linear-gradient(180deg,
    rgba(4,10,18,0.16) 0%,
    rgba(4,10,18,0.42) 38%,
    rgba(4,10,18,0.76) 100%);
}
.dcg-content {
  position:relative; z-index:2; display:flex; flex-direction:column;
  flex:1; padding:30px 28px;
  background: rgba(4,9,18,0.14); backdrop-filter:blur(10px);
}
.dcg-top    { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.dcg-badge  {
  padding:5px 12px; border-radius:999px;
  background:rgba(255,255,255,0.10); border:1px solid rgba(255,255,255,0.16);
  color:var(--text-light-soft); font-size:0.68rem; letter-spacing:0.18em; text-transform:uppercase;
}
.dcg-badge-accent {
  background:rgba(77,189,245,0.15); border-color:rgba(77,189,245,0.28); color:var(--accent);
}
.dcg-price  { font-family:"Barlow Condensed",sans-serif; font-size:1.8rem; color:var(--text-light); line-height:1; }
.dcg-price-accent { color:var(--accent); }
.dcg-title  { margin:0 0 12px; font-family:"Barlow Condensed",sans-serif; font-size:3rem; text-transform:uppercase; line-height:0.95; color:var(--text-light); }
.dcg-desc   { margin:0 0 18px; font-size:0.88rem; line-height:1.6; color:var(--text-light-soft); }
.dcg-list   {
  margin:0 0 22px; padding:0; list-style:none;
  display:flex; flex-direction:column; gap:9px;
}
.dcg-list li {
  padding-left:16px; font-size:0.86rem; color:var(--text-light-soft);
  position:relative;
}
.dcg-list li::before {
  content:""; position:absolute; left:0; top:8px;
  width:5px; height:5px; border-radius:50%;
  background:var(--accent); opacity:0.7;
}
.dcg-btn {
  display:block; text-align:center;
  padding:14px 22px; border-radius:14px; margin-top:auto;
  background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.14);
  color:var(--text-light); font-weight:700; font-size:0.9rem;
  transition: background var(--transition), border-color var(--transition), transform var(--transition);
}
.dcg-btn:hover { background:rgba(255,255,255,0.15); transform:translateY(-2px); }
.dcg-btn-accent {
  background:linear-gradient(135deg, rgba(77,189,245,0.22) 0%, rgba(77,189,245,0.10) 100%);
  border-color:rgba(77,189,245,0.30); color:var(--accent);
}
.dcg-btn-accent:hover { background:rgba(77,189,245,0.32); }

.dcg-featured {
  box-shadow: 0 0 0 2px rgba(77,189,245,0.28), 0 36px 80px rgba(0,0,0,0.28);
  transform: scale(1.022);
}
.dcg-featured:hover { transform: scale(1.022) translateY(-4px); }

/* ─── Registration ─── */
.registration-grid {
  display:grid; grid-template-columns:1.3fr 0.7fr; gap:24px; align-items:start;
}
.registration-block { margin-bottom:26px; padding-bottom:26px; border-bottom:1px solid var(--line-dark); }
.registration-block:last-of-type { border-bottom:0; }
.registration-block h3 { font-size:1.5rem; color:var(--accent-2); margin:0 0 10px; }
.registration-block p  { margin:6px 0; color:var(--text-light-soft); font-size:0.92rem; }
.registration-block strong { color:var(--text-light); }
.registration-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }
.registration-side { display:flex; flex-direction:column; gap:16px; }
.side-card { padding:26px; }
.side-title {
  display:block; font-weight:800; font-size:0.78rem; letter-spacing:0.16em;
  text-transform:uppercase; color:var(--accent); margin-bottom:14px;
}
.clean-list { margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:10px; }
.clean-list li {
  padding:10px 14px; border-radius:12px;
  background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.06);
  color:var(--text-light-soft); font-size:0.88rem;
}

/* ─── INFO OPERATIVA (Inscripción presencial + Kits + Documentación) ─── */
.info-operativa-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:20px;
}
.info-op-card {
  padding:32px 28px; display:flex; flex-direction:column; gap:10px;
  transition: transform var(--transition), box-shadow var(--transition);
}
.info-op-card:hover { transform:translateY(-4px); box-shadow:0 28px 60px rgba(17,24,39,0.12); }
.info-op-icon {
  width:52px; height:52px; border-radius:16px;
  background:rgba(77,189,245,0.08); border:1px solid rgba(77,189,245,0.14);
  display:flex; align-items:center; justify-content:center;
  margin-bottom:6px;
}
.info-op-label {
  font-size:0.68rem; letter-spacing:0.22em; text-transform:uppercase;
  color:#2d6c8f; font-weight:700;
}
.info-op-title {
  font-family:"Barlow Condensed",sans-serif; font-size:1.6rem;
  text-transform:uppercase; line-height:1; margin:4px 0 6px;
}
.info-op-subtitle {
  font-family:"Barlow Condensed",sans-serif; font-size:1.1rem;
  text-transform:uppercase; line-height:1; margin:18px 0 8px;
  color:var(--text-dark);
}
.info-op-list {
  margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:7px;
}
.info-op-list li {
  padding:8px 14px; border-radius:10px;
  background:rgba(17,24,39,0.03); border:1px solid rgba(17,24,39,0.06);
  font-size:0.86rem; color:var(--text-dark-soft);
  position:relative; padding-left:24px;
}
.info-op-list li::before {
  content:""; position:absolute; left:10px; top:14px;
  width:5px; height:5px; border-radius:50%;
  background:#1c6f95; opacity:0.6;
}
.info-op-notice {
  margin-top:12px; padding:14px 16px; border-radius:14px;
  background:rgba(77,189,245,0.06); border:1px solid rgba(77,189,245,0.12);
}
.info-op-notice p {
  margin:0 0 8px; font-size:0.82rem; line-height:1.58; color:#1c6f95;
}
.info-op-notice p:last-child { margin-bottom:0; }

/* ─── Recorridos ─── */
.routes-grid { display:grid; grid-template-columns:0.75fr 1.25fr; gap:24px; align-items:start; }
.route-controls { padding:32px; }

.route-tabs {
  display:flex; gap:8px; margin-bottom:24px; padding:5px;
  background:rgba(17,24,39,0.05); border-radius:16px; width:fit-content;
}
.route-tab {
  padding:8px 22px; border-radius:12px; border:0;
  background:transparent; color:var(--text-dark-soft);
  font-weight:700; font-size:0.9rem;
  transition: background var(--transition), color var(--transition), box-shadow var(--transition);
}
.route-tab.active {
  background:var(--bg-dark); color:var(--text-light);
  box-shadow: 0 4px 14px rgba(0,0,0,0.18);
}
.route-tab:hover:not(.active) { background:rgba(17,24,39,0.08); }

.route-info h3 { margin:0 0 10px; font-size:2.2rem; }
.route-info p  { margin:0 0 22px; font-size:0.9rem; line-height:1.64; }
.route-meta    { display:flex; flex-direction:column; gap:12px; margin-bottom:20px; }
.route-meta-card {
  padding:14px 16px; border-radius:16px;
  background:rgba(17,24,39,0.04); border:1px solid rgba(17,24,39,0.06);
}
.route-meta-card span  { display:block; font-size:0.66rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--text-muted); margin-bottom:4px; }
.route-meta-card strong{ font-weight:700; color:var(--text-dark); }
.route-stats-card { padding:16px 18px; }
.route-stats-row { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:10px; }
.route-stat-item { display:flex; flex-direction:column; align-items:center; gap:2px; }
.route-stat-item strong { font-family:"Barlow Condensed",sans-serif; font-size:1.6rem; color:var(--text-dark); }
.route-stat-item small  { font-size:0.64rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--text-muted); }

.download-button {
  display:inline-flex; align-items:center; gap:9px;
  padding:12px 20px; border-radius:14px;
  background:var(--bg-dark); color:var(--accent);
  font-weight:700; font-size:0.88rem;
  transition: background var(--transition), transform var(--transition), box-shadow var(--transition);
  box-shadow: 0 8px 24px rgba(0,0,0,0.14);
}
.download-button:hover { background:#0d1f31; transform:translateY(-2px); box-shadow:0 12px 28px rgba(0,0,0,0.2); }
.route-links-list { display:flex; flex-wrap:wrap; gap:12px; margin-top:16px; }
.route-links-list a { display:inline-flex; align-items:center; justify-content:center; min-height:42px; padding:0 16px; border-radius:999px; background:#edf7ff; border:1px solid rgba(77,189,245,0.24); color:#0d3752; font-weight:700; font-size:0.85rem; text-decoration:none; transition:transform var(--transition), box-shadow var(--transition), background var(--transition); }
.route-links-list a:hover { transform:translateY(-2px); box-shadow:0 10px 24px rgba(13,55,82,0.10); background:#ffffff; }

.route-map-card { padding:22px; }
.route-map-leaflet-wrap { position:relative; border-radius:18px; overflow:hidden; }
.route-map-leaflet { height:400px; border-radius:18px; z-index:1; }

/* Leaflet overrides */
.leaflet-container { font-family:"Inter",sans-serif; background:#05101c; }
.leaflet-control-attribution {
  background:rgba(4,9,18,0.75) !important; color:#7e8da3 !important;
  border-radius:8px 0 0 0 !important; font-size:0.65rem !important;
}
.leaflet-control-attribution a { color:var(--accent) !important; }
.leaflet-control-zoom-in,.leaflet-control-zoom-out {
  background:rgba(4,9,18,0.82) !important; color:var(--text-light) !important;
  border:1px solid rgba(255,255,255,0.10) !important;
}

.km-marker-inner {
  padding:3px 7px; border-radius:8px;
  background:rgba(4,9,18,0.80); border:1px solid currentColor;
  font-size:0.7rem; font-weight:700; font-family:"Inter",sans-serif;
  white-space:nowrap;
}
.route-marker-pin {
  padding:4px 10px; border-radius:10px; font-size:0.72rem; font-weight:700;
  font-family:"Inter",sans-serif; color:#06111d; white-space:nowrap;
}
.route-marker-start { background:var(--accent); }
.route-marker-end   { background:#74f9a8; }

.map-fullscreen-btn {
  position:absolute; top:12px; right:12px; z-index:10;
  width:36px; height:36px; border-radius:10px;
  background:rgba(4,9,18,0.80); border:1px solid rgba(255,255,255,0.12);
  color:var(--text-light); display:flex; align-items:center; justify-content:center;
  transition: background var(--transition), transform var(--transition);
}
.map-fullscreen-btn:hover { background:rgba(10,21,36,0.95); transform:scale(1.08); }

/* Perfil de elevación */
.elevation-wrap {
  margin-top:18px; padding:18px 20px; border-radius:18px;
  background:rgba(4,9,18,0.88); border:1px solid rgba(77,189,245,0.12);
}
.elevation-label {
  display:block; font-size:0.66rem; letter-spacing:0.18em;
  text-transform:uppercase; color:var(--text-muted); margin-bottom:14px;
}
.elevation-chart-container {
  position:relative; height:120px; width:100%;
}
.elev-no-data {
  display:flex; align-items:center; justify-content:center; height:100%;
  font-size:0.8rem; color:var(--text-muted); font-style:italic;
}

/* Modal mapa */
.map-modal {
  position:fixed; inset:0; z-index:200;
  background:rgba(3,8,16,0.92); backdrop-filter:blur(6px);
  opacity:0; pointer-events:none;
  transition: opacity 280ms ease;
}
.map-modal.active { opacity:1; pointer-events:all; }
.map-modal-container { width:100%; height:100%; }
.map-modal-close {
  position:absolute; top:18px; right:18px; z-index:10;
  width:44px; height:44px; border-radius:999px;
  background:rgba(4,9,18,0.80); border:1px solid rgba(255,255,255,0.14);
  color:var(--text-light); font-size:1.1rem;
  display:flex; align-items:center; justify-content:center;
  backdrop-filter:blur(8px);
  transition: background var(--transition), transform var(--transition);
}
.map-modal-close:hover { background:rgba(10,21,36,0.95); transform:scale(1.08); }

/* ─── Agenda ─── */
.agenda-grid { display:grid; grid-template-columns:1.4fr 0.6fr; gap:24px; align-items:start; }
.agenda-main { padding:38px; }
.agenda-side { display:flex; flex-direction:column; gap:14px; }
.timeline    { display:grid; gap:12px; margin-top:24px; }
.timeline-item {
  display:grid; grid-template-columns:110px 1fr; gap:16px; align-items:start;
  padding:18px; border-radius:22px;
  background:rgba(17,24,39,0.025); border:1px solid rgba(17,24,39,0.05);
  transition: background var(--transition), transform var(--transition);
}
.timeline-item:hover { background:rgba(77,189,245,0.04); transform:translateX(4px); }
.timeline-hour { font-family:"Barlow Condensed",sans-serif; font-size:2rem; line-height:1; color:#1c6f95; }
.small-title   { font-size:1.8rem; }

/* Timeline highlight para largadas */
.timeline-item-highlight {
  background:rgba(77,189,245,0.06);
  border-color:rgba(77,189,245,0.14);
  box-shadow: inset 3px 0 0 var(--accent);
}
.timeline-item-highlight:hover {
  background:rgba(77,189,245,0.10);
}
.timeline-item-highlight .timeline-hour {
  color:var(--accent);
}

/* ─── Requisitos ─── */
.requisitos-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:18px;
}
.requisito-card {
  padding:28px 24px; display:flex; flex-direction:column; gap:10px;
  transition: transform var(--transition), box-shadow var(--transition);
}
.requisito-card:hover { transform:translateY(-4px); box-shadow:0 36px 80px rgba(0,0,0,0.36); }
.requisito-icon {
  width:48px; height:48px; border-radius:14px;
  background:rgba(77,189,245,0.08); border:1px solid rgba(77,189,245,0.14);
  display:flex; align-items:center; justify-content:center;
}
.requisito-card h3 {
  font-family:"Barlow Condensed",sans-serif; font-size:1.3rem;
  text-transform:uppercase; color:var(--accent-2); margin:4px 0 0; line-height:1;
}
.requisito-card p {
  margin:0; font-size:0.86rem; line-height:1.58; color:var(--text-light-soft);
}

/* ─── Reglamento ─── */
.reglamento-grid {
  display:grid; grid-template-columns:1.15fr 0.85fr; gap:24px; align-items:stretch;
}
.reglamento-main,.reglamento-side { padding:38px; }
.reglamento-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }
.reglamento-list { margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:10px; }
.reglamento-list li {
  padding:12px 16px 12px 28px; border-radius:12px;
  background:rgba(17,24,39,0.03); border:1px solid rgba(17,24,39,0.06);
  color:var(--text-dark-soft); font-size:0.9rem; position:relative;
}
.reglamento-list li::before {
  content:""; position:absolute; left:12px; top:18px;
  width:6px; height:6px; border-radius:50%;
  background:#1c6f95; opacity:0.7;
}

/* ─── AUSPICIANTES — MEJORADO ─── */
.sponsors-section { background: var(--bg-light); }
.sponsors-head { text-align:center; margin-bottom:48px; }
.sponsors-intro { max-width:980px; margin:14px auto 0; }
.sponsor-tier { margin-bottom:44px; }
.sponsor-tier-text { text-align:center; margin:-8px auto 18px; max-width:920px; color:var(--text-muted); font-size:0.95rem; line-height:1.6; }

.sponsor-tier-label {
  text-align:center; display:block;
  font-size:0.68rem; letter-spacing:0.24em; text-transform:uppercase;
  color:#2d6c8f; margin-bottom:22px;
}

/* Organizador principal — CONTENEDOR AJUSTADO, IMAGEN GRANDE */
.sponsor-tier-main .sponsor-main-logo {
  display:flex; justify-content:center; align-items:center;
  padding:24px 30px; border-radius:28px;
  background:rgba(255,255,255,0.92); border:1px solid var(--line-light);
  box-shadow: var(--shadow-soft);
  max-width:320px; margin:0 auto;
  transition: transform var(--transition), box-shadow var(--transition);
}
.sponsor-tier-main .sponsor-main-logo:hover {
  transform:translateY(-3px); box-shadow:0 28px 60px rgba(17,24,39,0.12);
}
.sponsor-tier-main .sponsor-main-logo img {
  max-height:190px; max-width:260px; object-fit:contain; width:auto;
}

/* Logos secundarios */
.sponsor-logos-row {
  display:flex; flex-wrap:wrap; justify-content:center; gap:20px;
}
.sponsor-logos-grid {
  display:grid; grid-template-columns:repeat(3, minmax(160px, 1fr)); gap:20px;
}
.sponsor-logo-card {
  display:flex; align-items:center; justify-content:center;
  min-height:118px; padding:14px 18px; border-radius:22px;
  background:rgba(255,255,255,0.90); border:1px solid var(--line-light);
  box-shadow:var(--shadow-soft); transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition), background var(--transition);
}
.sponsor-logo-card:hover {
  transform:translateY(-4px); box-shadow:0 24px 50px rgba(17,24,39,0.12);
  border-color:rgba(77,189,245,0.20);
}
.sponsor-logo-card img {
  max-height:92px; max-width:180px; object-fit:contain; width:auto;
  filter:grayscale(0.15) contrast(1.05);
  transition: filter var(--transition);
}
.sponsor-logo-card:hover img { filter:grayscale(0) contrast(1.08); }
.sponsor-logo-card.is-empty { background:rgba(255,255,255,0.55); border-style:dashed; }

.sponsor-cta {
  text-align:center; margin-top:10px; display:flex; flex-direction:column;
  align-items:center; gap:14px;
}
.sponsor-cta .dark-text { font-size:0.9rem; }

/* ─── FAQ ─── */
.faq-list { display:grid; gap:14px; }
.faq-item { overflow:hidden; transition:transform var(--transition),box-shadow var(--transition); }
.faq-item:hover { transform:translateY(-2px); }
.faq-question {
  width:100%; min-height:74px; padding:22px 24px;
  display:flex; align-items:center; justify-content:space-between; gap:18px;
  background:transparent; border:0; color:var(--text-dark);
  font-weight:700; text-align:left; font-size:1rem;
}
.faq-question span { font-size:1.4rem; line-height:1; color:#2d6c8f; transition:transform var(--transition); }
.faq-item.active .faq-question span { transform:rotate(45deg); }
.faq-answer { max-height:0; overflow:hidden; transition:max-height 280ms ease; }
.faq-answer p { margin:0; padding:0 24px 24px; }

/* ─── Final CTA ─── */
.final-cta {
  padding:32px; display:grid; grid-template-columns:1fr auto; gap:24px; align-items:center;
}
.final-cta-actions { display:flex; flex-wrap:wrap; gap:12px; justify-content:end; }

/* ─── Footer ─── */
.site-footer { padding-top:10px; padding-bottom:34px; }
.footer-inner {
  padding-top:18px; border-top:1px solid rgba(255,255,255,0.08);
  display:flex; align-items:start; justify-content:space-between; gap:24px;
}
.footer-inner strong { display:block; margin-bottom:6px; color:var(--text-light); }
.footer-inner p { margin:4px 0; font-size:0.88rem; color:var(--text-muted); }
.footer-links { display:flex; flex-wrap:wrap; gap:18px; }
.footer-links a { color:var(--text-light-soft); font-size:0.9rem; transition:color var(--transition); }
.footer-links a:hover { color:var(--text-light); }

/* ─── WhatsApp flotante — VERDE ─── */
.floating-whatsapp {
  position:fixed; right:18px; bottom:18px; z-index:60;
  min-height:54px; padding:0 20px 0 16px; border-radius:999px;
  background: linear-gradient(135deg, #25d366 0%, #128c7e 100%);
  color:#ffffff; font-weight:800; font-size:0.9rem;
  display:inline-flex; align-items:center; gap:10px;
  justify-content:center;
  box-shadow: 0 18px 38px rgba(37,211,102,0.30);
  transition: transform var(--transition), box-shadow var(--transition);
  animation: waPulse 3.5s ease-in-out infinite;
}
.floating-whatsapp:hover {
  transform:translateY(-3px) scale(1.04);
  box-shadow:0 24px 44px rgba(37,211,102,0.40);
  animation:none;
}
.floating-whatsapp svg { flex-shrink:0; }

@keyframes waPulse {
  0%,100% { box-shadow: 0 18px 38px rgba(37,211,102,0.28); }
  50%      { box-shadow: 0 18px 50px rgba(37,211,102,0.46), 0 0 0 8px rgba(37,211,102,0.08); }
}

/* ─── Reveal ─── */
.reveal {
  opacity:0; transform:translateY(28px);
  transition: opacity 700ms ease, transform 700ms cubic-bezier(0.2,0.8,0.2,1);
  will-change:opacity,transform;
}
.reveal.is-visible { opacity:1; transform:translateY(0); }

/* stagger para logos de sponsors */
.sponsor-logo-card:nth-child(1) { transition-delay:0ms; }
.sponsor-logo-card:nth-child(2) { transition-delay:80ms; }
.sponsor-logo-card:nth-child(3) { transition-delay:160ms; }

/* ═══════════════════════════════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════════════════════════════ */
@media (max-width: 1140px) {
  .hero-grid,.story-grid,.registration-grid,.routes-grid,.agenda-grid,.final-cta,.reglamento-grid {
    grid-template-columns:1fr;
  }
  .hero-bottom-strip  { grid-template-columns:1fr; }
  .quick-info-band-inner { grid-template-columns:repeat(2,1fr); }
  .hero-grid         { min-height:auto; }
  .distance-grid     { grid-template-columns:repeat(2,1fr); }
  .info-operativa-grid { grid-template-columns:1fr; }
  .requisitos-grid   { grid-template-columns:repeat(2,1fr); }
  .final-cta-actions { justify-content:start; }
  .route-map-leaflet { height:340px; }
}

@media (max-width: 920px) {
  .header-inner     { grid-template-columns:1fr auto auto; }
  .hero-inline-meta { grid-template-columns:1fr; }
  .menu-toggle      { display:inline-flex; }
  .main-nav {
    position:absolute; top:calc(var(--header-height) - 1px);
    left:16px; right:16px; padding:16px; border-radius:24px;
    background:rgba(6,12,22,0.96); border:1px solid rgba(255,255,255,0.08);
    box-shadow:var(--shadow-dark); display:none; flex-direction:column;
    align-items:flex-start; gap:12px; z-index:100;
  }
  .main-nav.active { display:flex; }
  .header-actions  { display:none; }
  .hero-title      { font-size:clamp(3.2rem,10vw,5.8rem); }
  .countdown-grid  { grid-template-columns:repeat(2,1fr); }
  .timeline-item   { grid-template-columns:1fr; }
  .distance-grid   { grid-template-columns:1fr; }
  .dcg-featured    { order:-1; }
  .requisitos-grid { grid-template-columns:1fr; }
  .sponsor-logos-row { gap:14px; }
  .sponsor-logo-card { min-width:130px; padding:16px 18px; }
}

@media (max-width: 640px) {
  :root { --header-height:76px; }
  .quick-info-band-inner { grid-template-columns:1fr; }
  .quick-stat { border-right:0; border-bottom:1px solid rgba(17,24,39,0.06); }
  .quick-stat:last-child { border-bottom:0; }
  .hero-main-image,.hero-main-image img { min-height:420px; }
  .container { width:min(100% - 24px, var(--container)); }
  .hero-section { padding-top:24px; }
  .hero-actions,.registration-actions,.final-cta-actions { flex-direction:column; align-items:stretch; }
  .btn,.btn-large,.btn-secondary,.btn-secondary-light,.btn-dark-line { width:100%; }
  .story-main,.registration-main,.route-controls,.route-map-card,.agenda-main,.reglamento-main,.reglamento-side { padding:22px; }
  .side-card,.final-cta { padding:22px; }
  .route-map-leaflet { height:260px; }
  .distance-card-glass { min-height:480px; }
  .footer-inner { flex-direction:column; }
  .floating-whatsapp { right:12px; left:12px; bottom:12px; border-radius:18px; }
  .floating-whatsapp-label { flex:1; text-align:center; }
  .story-section,.distances-section,.routes-section,.agenda-section,
  .faq-section,.final-cta-section,.registration-section,.sponsors-section,
  .info-operativa-section,.requisitos-section,.reglamento-section {
    padding-top:52px; padding-bottom:52px;
  }
  .route-stats-row { grid-template-columns:repeat(3,1fr); gap:6px; }
  .sponsor-tier-main .sponsor-main-logo { padding:20px 24px; max-width:260px; }
  .sponsor-logos-row { gap:12px; }
  .sponsor-logo-card { min-width:calc(50% - 6px); flex:unset; }
  .info-op-card { padding:22px 20px; }
}

/* ─── Reduced motion ─── */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .reveal,.btn,.mini-action,.distance-card-glass,.faq-item,
  .floating-whatsapp,.site-header,.route-tab,.dcg-bg,.dcg-content,
  .particle,.timeline-item,.sponsor-logo-card,.hero-main-image img,
  .info-op-card,.requisito-card {
    transition:none !important; animation:none !important;
  }
  .reveal { opacity:1 !important; transform:none !important; }
  .hero-bg { transform:none !important; }
}


/* ═══════════════════════════════════════════════════════════════
   v4.0 overrides y nuevas secciones de conversión
═══════════════════════════════════════════════════════════════ */

.hero-title {
  max-width: 12ch;
  font-size: clamp(3.1rem, 7vw, 6.2rem);
}

.hero-text {
  max-width: 62ch;
  font-size: 1.02rem;
}

.hero-proof-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 20px;
}

.hero-proof-item {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 0 14px;
  border-radius: 999px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.10);
  color: var(--text-light-soft);
  font-size: 0.78rem;
  font-weight: 600;
}

.hero-cta-note {
  margin: 14px 0 0;
  color: var(--text-muted);
  font-size: 0.84rem;
}

.hero-image-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}

.hero-image-badges span {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0 12px;
  border-radius: 999px;
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.10);
  color: var(--text-light-soft);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.section-intro {
  margin: 12px 0 0;
  max-width: 60ch;
}

.trust-strip {
  padding: 26px 0 12px;
  background: linear-gradient(180deg, rgba(245,245,247,1) 0%, rgba(255,255,255,1) 100%);
}

.trust-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.trust-card {
  padding: 24px 24px 22px;
}

.trust-label {
  display: inline-block;
  margin-bottom: 10px;
  font-size: 0.68rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #2d6c8f;
}

.trust-card strong {
  display: block;
  font-size: 1rem;
  margin-bottom: 8px;
}

.process-section {
  padding: 0 0 80px;
  background: var(--bg-light);
}

.process-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}

.process-card {
  padding: 26px;
}

.process-step {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0 12px;
  border-radius: 999px;
  background: rgba(77,189,245,0.10);
  border: 1px solid rgba(77,189,245,0.18);
  color: #1c6f95;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.process-card h3 {
  margin: 18px 0 10px;
}

.pricing-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-top: 26px;
  margin-bottom: 28px;
}

.pricing-card {
  padding: 20px 18px;
  border-radius: 20px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
}

.pricing-card-highlight {
  background: rgba(77,189,245,0.10);
  border-color: rgba(77,189,245,0.22);
  box-shadow: inset 0 0 0 1px rgba(77,189,245,0.10);
}

.pricing-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 12px;
}

.pricing-card h3 {
  margin: 0;
  font-size: 1.55rem;
  color: var(--text-light);
}

.pricing-price {
  font-family: "Barlow Condensed", sans-serif;
  font-size: 1.95rem;
  line-height: 1;
  color: var(--accent);
}

.pricing-card p {
  margin: 6px 0;
  font-size: 0.9rem;
  color: var(--text-light-soft);
}

.mobile-action-bar {
  display: none;
}

@media (max-width: 1080px) {
  .trust-grid,
  .process-grid,
  .pricing-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 860px) {
  .hero-title {
    max-width: none;
    font-size: clamp(2.8rem, 12vw, 4.6rem);
  }

  .trust-grid,
  .process-grid,
  .pricing-grid {
    grid-template-columns: 1fr;
  }

  .trust-strip {
    padding-top: 18px;
  }
}

@media (max-width: 640px) {
  .hero-proof-list {
    gap: 8px;
  }

  .hero-proof-item,
  .hero-image-badges span {
    font-size: 0.72rem;
  }

  .mobile-action-bar {
    position: fixed;
    left: 12px;
    right: 12px;
    bottom: 12px;
    z-index: 70;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    padding: 10px;
    border-radius: 18px;
    background: rgba(4,10,18,0.92);
    border: 1px solid rgba(255,255,255,0.08);
    box-shadow: 0 18px 50px rgba(0,0,0,0.28);
    backdrop-filter: blur(18px);
  }

  .mobile-action-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 0 14px;
    border-radius: 14px;
    font-size: 0.88rem;
    font-weight: 800;
    text-align: center;
  }

  .mobile-action-primary {
    background: linear-gradient(135deg, #74d2ff 0%, #d8f5ff 100%);
    color: #06111d;
  }

  .mobile-action-secondary {
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.10);
    color: var(--text-light);
  }

  .floating-whatsapp {
    bottom: 88px;
  }

  body {
    padding-bottom: 92px;
  }
}

@media (max-width: 900px) {
  .sponsor-logos-grid { grid-template-columns:repeat(2, minmax(140px, 1fr)); }
}
@media (max-width: 640px) {
  .sponsor-logos-grid { grid-template-columns:1fr; }
  .route-links-list a { width:100%; }
}

/* v5.0 | Sponsors + animaciones avanzadas */
.hero-section{
  position:relative;
  overflow:hidden;
}
.hero-title,
.eyebrow,
.hero-actions .btn,
.count-box{
  animation-fill-mode:both;
  will-change:transform, opacity, filter;
}
.eyebrow{
  animation:slideInLeft .9s cubic-bezier(.22,.61,.36,1) .12s both;
}
.hero-title{
  animation:titleReveal 1s cubic-bezier(.22,.61,.36,1) .08s both;
}
.hero-actions .btn{
  animation:fadeInUp .85s cubic-bezier(.22,.61,.36,1) both;
}
.hero-actions .btn:nth-child(1){ animation-delay:.26s; }
.hero-actions .btn:nth-child(2){ animation-delay:.38s; }

.count-box{
  animation:countPulse .9s cubic-bezier(.2,.9,.25,1.15) both;
}
.count-box:nth-child(1){ animation-delay:.22s; }
.count-box:nth-child(2){ animation-delay:.32s; }
.count-box:nth-child(3){ animation-delay:.42s; }
.count-box:nth-child(4){ animation-delay:.52s; }

.distance-card-glass{
  transform-style:preserve-3d;
  will-change:transform;
  animation:floatCard 6s ease-in-out infinite;
}
.distance-card-glass:nth-child(2){ animation-delay:1.2s; }
.distance-card-glass:nth-child(3){ animation-delay:2.4s; }
.dcg-featured{
  animation-duration:5.2s;
}

.btn-primary{
  position:relative;
  overflow:hidden;
}
.btn-primary::after{
  content:"";
  position:absolute;
  inset:-120% auto -120% -35%;
  width:42%;
  transform:rotate(18deg) translateX(-180%);
  background:linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,.32), rgba(255,255,255,0));
  pointer-events:none;
  transition:transform .75s ease;
}
.btn-primary:hover::after,
.btn-primary:focus-visible::after{
  transform:rotate(18deg) translateX(520%);
}

.sponsors-section{
  position:relative;
  overflow:hidden;
}
.sponsors-section::before{
  content:"";
  position:absolute;
  top:0;
  left:-30%;
  width:160%;
  height:2px;
  background:linear-gradient(90deg, rgba(77,189,245,0), rgba(77,189,245,.9), rgba(201,239,255,.95), rgba(77,189,245,0));
  animation:gradientSlide 7s linear infinite;
  pointer-events:none;
}
.sponsor-tier-sponsors{
  position:relative;
  margin-top:10px;
  padding-top:26px;
}
.sponsor-tier-sponsors::before{
  content:"";
  position:absolute;
  top:0;
  left:50%;
  width:min(180px, 45%);
  height:1px;
  transform:translateX(-50%);
  background:linear-gradient(90deg, rgba(77,189,245,0), rgba(77,189,245,.8), rgba(77,189,245,0));
}
.sponsor-logos-4col{
  grid-template-columns:repeat(4, minmax(0, 1fr));
}
.sponsor-card-animated{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  transform-style:preserve-3d;
  transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease, background .35s ease;
}
.sponsor-card-animated::before{
  content:"";
  position:absolute;
  inset:-1px;
  border-radius:inherit;
  padding:1px;
  background:linear-gradient(120deg, rgba(77,189,245,0), rgba(77,189,245,.85), rgba(201,239,255,.9), rgba(77,189,245,0));
  -webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  opacity:0;
  transform:translateX(-45%);
  transition:opacity .3s ease, transform .65s ease;
  pointer-events:none;
}
.sponsor-card-animated:hover,
.sponsor-card-animated:focus-within{
  transform:translateY(-7px) scale(1.01);
  box-shadow:0 18px 45px rgba(77,189,245,.16), 0 0 0 1px rgba(77,189,245,.14) inset;
}
.sponsor-card-animated:hover::before,
.sponsor-card-animated:focus-within::before{
  opacity:1;
  transform:translateX(42%);
}
.sponsor-logo-card.is-empty{
  border-style:dashed;
  border-color:rgba(77,189,245,.24);
  background:linear-gradient(180deg, rgba(77,189,245,.05), rgba(255,255,255,.01));
}
.sponsor-logo-card.is-empty::after{
  content:none;
  display:none;
}
.main-nav a.is-active{
  color:var(--accent);
}
.main-nav a.is-active::after{
  transform:scaleX(1);
  opacity:1;
}

.hero-section::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:26px;
  width:24px;
  height:40px;
  border-radius:999px;
  border:1px solid rgba(201,239,255,.34);
  transform:translateX(-50%);
  background:rgba(255,255,255,.02);
  box-shadow:0 0 0 1px rgba(77,189,245,.06), 0 10px 28px rgba(0,0,0,.18);
  animation:scrollHint 2.1s ease-in-out infinite;
  pointer-events:none;
}
.hero-section::before{
  content:"";
  position:absolute;
  left:50%;
  bottom:38px;
  width:5px;
  height:9px;
  border-radius:999px;
  background:linear-gradient(180deg, #c9efff 0%, #4dbdf5 100%);
  transform:translateX(-50%);
  box-shadow:0 0 12px rgba(77,189,245,.45);
  animation:scrollDot 2.1s ease-in-out infinite;
  pointer-events:none;
}

.v5-scroll-progress{
  position:fixed;
  top:0;
  left:0;
  height:3px;
  width:0%;
  z-index:100;
  pointer-events:none;
  background:linear-gradient(90deg, #4dbdf5 0%, #c9efff 50%, #4dbdf5 100%);
  box-shadow:0 0 14px rgba(77,189,245,.42);
}

.hero-cursor-particle{
  position:absolute;
  width:8px;
  height:8px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(201,239,255,.95) 0%, rgba(77,189,245,.7) 45%, rgba(77,189,245,0) 72%);
  pointer-events:none;
  transform:translate(-50%, -50%);
  filter:blur(.2px);
  animation:particleFade 1s ease-out forwards;
  z-index:2;
}

@keyframes titleReveal{
  from{ opacity:0; transform:translateY(24px); filter:blur(16px); }
  to{ opacity:1; transform:translateY(0); filter:blur(0); }
}
@keyframes slideInLeft{
  from{ opacity:0; transform:translateX(-26px); }
  to{ opacity:1; transform:translateX(0); }
}
@keyframes fadeInUp{
  from{ opacity:0; transform:translateY(18px); }
  to{ opacity:1; transform:translateY(0); }
}
@keyframes countPulse{
  0%{ opacity:0; transform:scale(.88); }
  60%{ opacity:1; transform:scale(1.06); }
  100%{ opacity:1; transform:scale(1); }
}
@keyframes floatCard{
  0%,100%{ transform:translateY(0); }
  50%{ transform:translateY(-6px); }
}
@keyframes gradientSlide{
  from{ transform:translateX(-18%); }
  to{ transform:translateX(18%); }
}
@keyframes scrollHint{
  0%,100%{ opacity:.62; transform:translateX(-50%) translateY(0); }
  50%{ opacity:1; transform:translateX(-50%) translateY(5px); }
}
@keyframes scrollDot{
  0%{ opacity:0; transform:translateX(-50%) translateY(-4px); }
  20%{ opacity:1; }
  70%{ opacity:1; transform:translateX(-50%) translateY(12px); }
  100%{ opacity:0; transform:translateX(-50%) translateY(16px); }
}
@keyframes particleFade{
  from{ opacity:.95; transform:translate(-50%, -50%) scale(1); }
  to{ opacity:0; transform:translate(-50%, -65%) scale(.2); }
}

@media (max-width: 1080px){
  .sponsor-logos-4col{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 640px){
  .sponsor-logos-4col{
    grid-template-columns:1fr;
  }
  .hero-section::before,
  .hero-section::after{
    display:none;
  }
}

@media (prefers-reduced-motion: reduce){
  .hero-title,
  .eyebrow,
  .hero-actions .btn,
  .count-box{
    opacity:1 !important;
    transform:none !important;
    filter:none !important;
    animation:none !important;
  }
  .distance-card-glass,
  .dcg-featured{
    animation:none !important;
    transform:none !important;
  }
  .sponsor-card-animated,
  .sponsor-card-animated::before{
    animation:none !important;
    transition:none !important;
  }
  .sponsor-card-animated::before{
    display:none !important;
  }
  .hero-section::before,
  .hero-section::after,
  .v5-scroll-progress,
  .hero-cursor-particle{
    display:none !important;
  }
}
