/* ==========================================================================
   FEDOECUESTRE — Stylesheet
   Structure: 1. Tokens  2. Reset/Base  3. Layout utilities  4. Components
              5. Header/Nav  6. Sections (in page order)  7. Footer
              8. Media queries
   ========================================================================== */

/* ---------------------------------------------------------------------- */
/* 1. DESIGN TOKENS                                                        */
/* ---------------------------------------------------------------------- */
:root{
  /* Navy — deep to mid, used for dark sections & text */
  --navy-950:#0a1526;
  --navy-900:#0f1f38;
  --navy-800:#14294a;
  --navy-700:#1d3a63;
  --navy-600:#2a4d80;

  /* Gold — a full metallic scale, deep bronze shadow through pale champagne highlight */
  --gold-950:#3a2a10;
  --gold-900:#54390f;
  --gold-800:#6f4915;
  --gold-700:#8f5f1c;
  --gold-600:#ab7c26;
  --gold-500:#c79a3a;
  --gold-400:#dab252;
  --gold-300:#e7c874;
  --gold-200:#f0da9c;
  --gold-100:#f6e6bd;
  --gold-50:#fbf3de;

  /* Foil-style gradients built from the scale above — reused for buttons & accent text */
  --gold-foil: linear-gradient(135deg, var(--gold-200) 0%, var(--gold-400) 28%, var(--gold-600) 55%, var(--gold-400) 78%, var(--gold-200) 100%);
  --gold-foil-deep: linear-gradient(160deg, var(--gold-300) 0%, var(--gold-500) 45%, var(--gold-700) 100%);

  /* Cream / ivory — warm off-whites, never pure white */
  --cream-100:#faf6ec;
  --cream-200:#f4ecdb;
  --ivory:#fffdf7;

  /* Neutrals for text on light backgrounds */
  --ink-900:#171712;
  --ink-600:#4a4a42;
  --ink-400:#7c7a6e;

  /* Type */
  --font-display:'Fraunces', Georgia, serif;
  --font-body:'Inter', -apple-system, BlinkMacSystemFont, sans-serif;

  /* Spacing scale */
  --sp-1:.5rem;  --sp-2:.75rem; --sp-3:1rem;  --sp-4:1.5rem;
  --sp-5:2rem;   --sp-6:3rem;   --sp-7:4.5rem; --sp-8:7rem;

  /* Radius & shadow */
  --radius-sm:6px; --radius-md:12px; --radius-lg:20px;
  --shadow-soft:0 20px 60px -20px rgba(10,21,38,.25);
  --shadow-hard:0 30px 80px -24px rgba(10,21,38,.45);

  --ease:cubic-bezier(.22,.61,.36,1);
}

/* ---------------------------------------------------------------------- */
/* 2. RESET / BASE                                                         */
/* ---------------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important;}
}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink-900);
  background:var(--cream-100);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;}
ul{list-style:none;margin:0;padding:0;}
h1,h2,h3,h4{font-family:var(--font-display);margin:0;line-height:1.1;font-weight:600;}
p{margin:0;}
input,textarea{font-family:inherit;}

:focus-visible{
  outline:3px solid var(--gold-400);
  outline-offset:3px;
  border-radius:4px;
}

.container{
  width:100%;
  max-width:1240px;
  margin:0 auto;
  padding:0 var(--sp-4);
}
section{position:relative;}
.section-pad{padding:var(--sp-8) 0;}
.section-pad-sm{padding:var(--sp-7) 0;}

.eyebrow{
  display:inline-block;
  font-size:.75rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--gold-600);
  margin-bottom:var(--sp-3);
}
.eyebrow.on-dark{color:var(--gold-300);}

.section-head{
  max-width:640px;
  margin-bottom:var(--sp-6);
}
.section-head h2{
  font-size:clamp(1.9rem,3.4vw,2.7rem);
  color:var(--navy-900);
}
.section-head p{
  margin-top:var(--sp-3);
  color:var(--ink-600);
  font-size:1.05rem;
}
.section-head.on-dark h2{color:var(--ivory);}
.section-head.on-dark p{color:rgba(250,246,236,.72);}

.italic-accent{font-style:italic;color:var(--gold-500);}
.on-dark .italic-accent{color:var(--gold-300);}

/* reveal-on-scroll */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s var(--ease),transform .7s var(--ease);}
.reveal.is-visible{opacity:1;transform:none;}

/* ---------------------------------------------------------------------- */
/* 3. BUTTONS                                                              */
/* ---------------------------------------------------------------------- */
.btn{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  padding:.95rem 2rem;
  border-radius:999px;
  font-size:.95rem;
  font-weight:600;
  letter-spacing:.02em;
  border:1.5px solid transparent;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
  white-space:nowrap;
  isolation:isolate;
  overflow:hidden;
}
.btn:hover{transform:translateY(-2px);}
.btn:active{transform:translateY(0);}

/* Gold — layered foil gradient + inner highlight rim + ambient glow, with a sheen sweep on hover */
.btn-gold{
  background:var(--gold-foil);
  background-size:220% 220%;
  background-position:0% 50%;
  color:var(--navy-950);
  box-shadow:
    0 14px 34px -12px rgba(111,73,21,.55),
    inset 0 1px 0 rgba(255,255,255,.55),
    inset 0 -2px 4px rgba(84,57,15,.35);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), background-position .5s var(--ease);
}
.btn-gold::before{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.65) 48%,rgba(255,255,255,.65) 52%,transparent 70%);
  transform:translateX(-130%);
  transition:transform .7s var(--ease);
  z-index:1;
  pointer-events:none;
}
.btn-gold > *{position:relative;z-index:2;}
.btn-gold:hover{
  background-position:100% 50%;
  box-shadow:
    0 20px 44px -12px rgba(111,73,21,.65),
    inset 0 1px 0 rgba(255,255,255,.6),
    inset 0 -2px 4px rgba(84,57,15,.4);
}
.btn-gold:hover::before{transform:translateX(130%);}
.btn-gold:active{
  box-shadow:
    0 8px 18px -10px rgba(111,73,21,.55),
    inset 0 1px 0 rgba(255,255,255,.4),
    inset 0 2px 6px rgba(84,57,15,.45);
}

.btn-outline{
  background:rgba(255,253,247,.04);
  backdrop-filter:blur(6px);
  border-color:rgba(231,200,116,.45);
  color:var(--ivory);
}
.btn-outline:hover{
  background:rgba(231,200,116,.14);
  border-color:var(--gold-300);
  color:var(--gold-100);
  box-shadow:0 10px 26px -14px rgba(0,0,0,.5);
}
.btn-outline.on-light{
  background:transparent;
  border-color:rgba(20,41,74,.3);
  color:var(--navy-900);
}
.btn-outline.on-light:hover{
  background:var(--navy-900);
  border-color:var(--navy-900);
  color:var(--gold-200);
}
.btn-sm{padding:.65rem 1.4rem;font-size:.85rem;}

@media (prefers-reduced-motion:reduce){
  .btn-gold::before{display:none;}
}

/* ---------------------------------------------------------------------- */
/* 4. HEADER / NAV                                                         */
/* ---------------------------------------------------------------------- */
.site-header{
  position:fixed;
  inset:0 0 auto 0;
  z-index:500;
  padding:var(--sp-3) 0;
  transition:background .35s var(--ease), box-shadow .35s var(--ease), padding .35s var(--ease);
}
.site-header::before{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(10,21,38,.55),rgba(10,21,38,0));
  opacity:1;
  transition:opacity .35s var(--ease);
  z-index:-1;
}
.site-header.is-scrolled{
  background:rgba(10,21,38,.92);
  backdrop-filter:blur(10px);
  box-shadow:0 12px 30px -18px rgba(0,0,0,.5);
  padding:var(--sp-2) 0;
}
.site-header.is-scrolled::before{opacity:0;}

.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--sp-4);
}
.brand{display:flex;align-items:center;gap:.65rem;color:var(--ivory);}
.brand-mark{
  width:38px;height:38px;border-radius:50%;
  border:1.5px solid var(--gold-400);
  display:flex;align-items:center;justify-content:center;
  color:var(--gold-300);font-family:var(--font-display);font-weight:600;font-size:.95rem;
  flex-shrink:0;
}
.brand-word{font-family:var(--font-display);font-weight:600;font-size:1.05rem;letter-spacing:.02em;}
.brand-word span{display:block;font-family:var(--font-body);font-weight:500;font-size:.62rem;letter-spacing:.16em;color:var(--gold-300);text-transform:uppercase;}

.main-nav{display:flex;align-items:center;gap:var(--sp-6);}
.main-nav ul{display:flex;gap:var(--sp-5);}
.main-nav a{
  color:rgba(255,253,247,.86);
  font-size:.92rem;
  font-weight:500;
  position:relative;
  padding:.3rem 0;
}
.main-nav a::after{
  content:"";position:absolute;left:0;right:100%;bottom:-2px;height:1.5px;background:var(--gold-400);
  transition:right .3s var(--ease);
}
.main-nav a:hover::after,.main-nav a:focus-visible::after{right:0;}
.main-nav a:hover{color:var(--ivory);}

.nav-toggle{
  display:none;
  width:44px;height:44px;
  border-radius:50%;
  border:1px solid rgba(255,253,247,.35);
  background:transparent;
  color:var(--ivory);
  align-items:center;justify-content:center;
}

.mobile-nav{
  position:fixed;inset:0;
  background:var(--navy-950);
  z-index:600;
  display:flex;flex-direction:column;
  padding:var(--sp-4);
  transform:translateX(100%);
  transition:transform .4s var(--ease);
}
.mobile-nav.is-open{transform:translateX(0);}
.mobile-nav-top{display:flex;justify-content:flex-end;}
.mobile-nav-close{
  width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,253,247,.35);
  background:transparent;color:var(--ivory);display:flex;align-items:center;justify-content:center;
}
.mobile-nav ul{
  margin-top:var(--sp-6);
  display:flex;flex-direction:column;gap:var(--sp-2);
}
.mobile-nav a{
  font-family:var(--font-display);
  font-size:1.8rem;
  color:var(--ivory);
  padding:.55rem 0;
  border-bottom:1px solid rgba(255,253,247,.08);
}
.mobile-nav .btn{margin-top:var(--sp-5);align-self:flex-start;}

/* ---------------------------------------------------------------------- */
/* 5. HERO                                                                 */
/* ---------------------------------------------------------------------- */
.hero{
  min-height:100svh;
  display:flex;
  align-items:flex-end;
  position:relative;
  background:
    linear-gradient(180deg,rgba(10,21,38,.35) 0%,rgba(10,21,38,.35) 40%,rgba(9,17,31,.92) 100%),
    linear-gradient(120deg,rgba(10,21,38,.55),rgba(20,41,74,.35)),
    url('https://images.unsplash.com/photo-1574695272842-52dfdb7989d0?w=1800&q=80') center 42%/cover no-repeat;
}
.hero-inner{padding:var(--sp-8) var(--sp-4) var(--sp-7);width:100%;}
.hero-content{max-width:760px;}
.hero h1{
  font-size:clamp(2.4rem,6vw,4.6rem);
  color:var(--ivory);
  margin-top:var(--sp-2);
}
.hero h1 em{font-style:italic;color:var(--gold-300);}
.hero-sub{
  margin-top:var(--sp-4);
  max-width:520px;
  color:rgba(255,253,247,.82);
  font-size:1.1rem;
}
.hero-ctas{display:flex;gap:var(--sp-3);flex-wrap:wrap;margin-top:var(--sp-6);}
.scroll-cue{
  position:absolute;left:50%;bottom:var(--sp-4);
  transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:.4rem;
  color:rgba(255,253,247,.7);
  font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;
}
.scroll-cue .line{width:1px;height:34px;background:linear-gradient(180deg,var(--gold-300),transparent);animation:scrollcue 2s infinite var(--ease);}
@keyframes scrollcue{0%{opacity:.2;transform:scaleY(.4);transform-origin:top;}50%{opacity:1;transform:scaleY(1);transform-origin:top;}100%{opacity:.2;transform:scaleY(.4);transform-origin:top;}}

/* ---------------------------------------------------------------------- */
/* 6. HERITAGE / INTRO                                                     */
/* ---------------------------------------------------------------------- */
.heritage{background:var(--cream-100);}
.heritage-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-7);align-items:center;}
.heritage-media{position:relative;}
.heritage-media img{border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);width:100%;aspect-ratio:4/5;object-fit:cover;}
.stat-medal{
  position:absolute;bottom:-1.5rem;left:-1.5rem;
  width:130px;height:130px;border-radius:50%;
  background:var(--navy-900);
  border:2px solid var(--gold-400);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  color:var(--ivory);box-shadow:var(--shadow-hard);
}
.stat-medal strong{
  font-family:var(--font-display);font-size:1.9rem;
  background:var(--gold-foil);-webkit-background-clip:text;background-clip:text;color:transparent;
}
.stat-medal span{font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,253,247,.75);margin-top:.15rem;text-align:center;padding:0 .6rem;}

.heritage-text h2{font-size:clamp(1.9rem,3.4vw,2.6rem);color:var(--navy-900);}
.heritage-text p{margin-top:var(--sp-4);color:var(--ink-600);font-size:1.05rem;}
.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4);margin-top:var(--sp-6);}
.stat-item{border-left:2px solid var(--gold-400);padding-left:var(--sp-3);}
.stat-item strong{display:block;font-family:var(--font-display);font-size:2.2rem;color:var(--navy-900);}
.stat-item span{font-size:.8rem;color:var(--ink-400);letter-spacing:.03em;}

/* ---------------------------------------------------------------------- */
/* 7. MILESTONE TIMELINE                                                   */
/* ---------------------------------------------------------------------- */
.timeline-section{
  background:
    radial-gradient(1200px 600px at 10% -10%,rgba(218,178,82,.1),transparent 60%),
    radial-gradient(900px 500px at 100% 110%,rgba(218,178,82,.06),transparent 55%),
    linear-gradient(160deg,var(--navy-950),var(--navy-900) 55%,var(--navy-800));
  color:var(--ivory);
  overflow:hidden;
}

.milestones{
  position:relative;
  padding:var(--sp-5) 0 var(--sp-3);
}

/* central connecting line + gold foil progress fill */
.milestones-line{
  position:absolute;
  left:50%;top:6px;bottom:6px;
  width:2px;
  background:rgba(255,253,247,.14);
  transform:translateX(-50%);
  border-radius:99px;
}
.milestones-line-fill{
  position:absolute;left:0;top:0;width:100%;height:0%;
  background:linear-gradient(180deg,var(--gold-200),var(--gold-500) 60%,var(--gold-700));
  border-radius:99px;
  box-shadow:0 0 14px rgba(218,178,82,.55);
  transition:height .12s linear;
}

.milestone{
  position:relative;
  display:grid;
  grid-template-columns:1fr 76px 1fr;
  align-items:center;
  column-gap:var(--sp-5);
  padding:var(--sp-4) 0;
}
.milestone-node{
  grid-column:2;
  width:64px;height:64px;
  border-radius:50%;
  background:radial-gradient(circle at 35% 30%,var(--navy-700),var(--navy-900) 70%);
  border:2px solid var(--gold-400);
  box-shadow:var(--shadow-hard), inset 0 0 0 3px rgba(10,21,38,.6);
  display:flex;align-items:center;justify-content:center;
  z-index:2;
  transition:border-color .3s var(--ease), box-shadow .3s var(--ease), transform .3s var(--ease);
}
.milestone-node span{
  font-family:var(--font-display);
  font-weight:700;
  font-size:.95rem;
  background:var(--gold-foil);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.milestone.is-visible .milestone-node{
  border-color:var(--gold-200);
  box-shadow:0 0 0 6px rgba(218,178,82,.14), var(--shadow-hard);
  transform:scale(1.06);
}

.milestone-card{
  background:linear-gradient(160deg,rgba(255,253,247,.06),rgba(255,253,247,.025));
  border:1px solid rgba(255,253,247,.12);
  border-radius:var(--radius-md);
  padding:var(--sp-4) var(--sp-5);
  max-width:380px;
  backdrop-filter:blur(2px);
  transition:border-color .3s var(--ease), background .3s var(--ease), transform .3s var(--ease);
}
.milestone-card:hover{
  border-color:rgba(231,200,116,.4);
  background:linear-gradient(160deg,rgba(255,253,247,.09),rgba(255,253,247,.03));
  transform:translateY(-3px);
}
.milestone-card h3{font-size:1.1rem;color:var(--ivory);}
.milestone-card p{margin-top:.5rem;font-size:.9rem;line-height:1.65;color:rgba(255,253,247,.68);}

.milestone[data-side="left"]{}
.milestone[data-side="left"] .milestone-card{grid-column:1;justify-self:end;text-align:right;}
.milestone[data-side="right"] .milestone-card{grid-column:3;justify-self:start;text-align:left;}

/* connector stub from node to card */
.milestone-card::before{
  content:"";position:absolute;top:50%;width:28px;height:1px;
  background:linear-gradient(90deg,var(--gold-400),transparent);
  transform:translateY(-50%);
}
.milestone[data-side="left"] .milestone-card::before{right:-28px;background:linear-gradient(270deg,var(--gold-400),transparent);}
.milestone[data-side="right"] .milestone-card::before{left:-28px;}

.milestones-cta{
  text-align:center;
  margin-top:var(--sp-6);
}
.milestones-cta p{color:rgba(255,253,247,.6);font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;}

/* ---------------------------------------------------------------------- */
/* 8. DISCIPLINES                                                          */
/* ---------------------------------------------------------------------- */
.disciplines{background:var(--cream-100);}
.discipline-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-4);
}
.discipline-card{
  background:var(--ivory);
  border-radius:var(--radius-md);
  padding:var(--sp-4);
  border:1px solid rgba(20,41,74,.08);
  box-shadow:0 14px 40px -28px rgba(10,21,38,.3);
  display:flex;flex-direction:column;
  min-height:230px;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease);
}
.discipline-card:hover{
  transform:translateY(-6px);
  box-shadow:var(--shadow-soft), 0 0 0 1px rgba(231,200,116,.35);
  border-color:rgba(231,200,116,.4);
}
.discipline-num{font-family:var(--font-display);font-size:1.6rem;color:var(--gold-500);}
.discipline-tag{
  align-self:flex-start;
  font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;
  color:var(--navy-700);background:var(--gold-100);
  padding:.25rem .6rem;border-radius:99px;margin-top:.6rem;
}
.discipline-card h3{margin-top:var(--sp-2);font-size:1.15rem;color:var(--navy-900);}
.discipline-card .en{display:block;font-family:var(--font-body);font-size:.78rem;color:var(--ink-400);font-style:italic;margin-top:.1rem;}
.discipline-card p{margin-top:.6rem;font-size:.88rem;color:var(--ink-600);flex-grow:1;}
.discipline-card .link{margin-top:var(--sp-2);font-size:.85rem;font-weight:600;color:var(--gold-600);}
.discipline-card.featured{
  background:linear-gradient(160deg,var(--navy-900),var(--navy-700));
  color:var(--ivory);
  justify-content:center;
}
.discipline-card.featured h3{color:var(--ivory);}
.discipline-card.featured p{color:rgba(255,253,247,.75);}
.discipline-card.featured .discipline-tag{background:rgba(255,253,247,.14);color:var(--gold-200,#eed9a0);}
.discipline-card.featured .link{color:var(--gold-300);}

/* ---------------------------------------------------------------------- */
/* 9. EVENT SPOTLIGHT / COUNTDOWN                                          */
/* ---------------------------------------------------------------------- */
.event-spotlight{
  background:linear-gradient(150deg,var(--navy-950) 10%,var(--navy-800) 60%,var(--navy-700));
  color:var(--ivory);
  overflow:hidden;
  position:relative;
}
.event-spotlight::after{
  content:"";position:absolute;right:-10%;top:-30%;width:60%;height:160%;
  background:radial-gradient(closest-side,rgba(216,182,82,.16),transparent 70%);
}
.event-inner{position:relative;display:grid;grid-template-columns:1.1fr 1fr;gap:var(--sp-7);align-items:center;}
.event-copy h2{font-size:clamp(2rem,3.6vw,2.9rem);}
.event-copy p{margin-top:var(--sp-3);color:rgba(255,253,247,.78);max-width:480px;}
.event-ctas{display:flex;gap:var(--sp-3);flex-wrap:wrap;margin-top:var(--sp-5);}

.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-3);}
.countdown-block{
  background:rgba(255,253,247,.05);
  border:1px solid rgba(216,182,82,.35);
  border-radius:var(--radius-md);
  padding:var(--sp-4) var(--sp-2);
  text-align:center;
}
.countdown-block strong{font-family:var(--font-display);font-size:clamp(1.8rem,4vw,2.6rem);color:var(--gold-300);display:block;font-variant-numeric:tabular-nums;}
.countdown-block span{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,253,247,.65);}

/* ---------------------------------------------------------------------- */
/* 10. ATHLETES                                                            */
/* ---------------------------------------------------------------------- */
.athletes{background:var(--cream-100);}
.section-head-row{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:var(--sp-3);}
.link-more{font-weight:600;color:var(--gold-600);font-size:.92rem;white-space:nowrap;}
.athlete-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-4);}
.athlete-card{
  position:relative;border-radius:var(--radius-md);overflow:hidden;
  aspect-ratio:3/4;box-shadow:0 14px 40px -26px rgba(10,21,38,.4);
}
.athlete-card img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease);}
.athlete-card:hover img{transform:scale(1.06);}
.athlete-scrim{
  position:absolute;inset:auto 0 0 0;height:55%;
  background:linear-gradient(180deg,transparent,rgba(10,21,38,.92));
  display:flex;flex-direction:column;justify-content:flex-end;padding:var(--sp-3);
}
.athlete-scrim h3{color:var(--ivory);font-size:1.05rem;}
.athlete-scrim span{
  display:inline-block;margin-top:.35rem;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--navy-950);background:var(--gold-300);padding:.2rem .55rem;border-radius:99px;font-weight:700;
}

/* ---------------------------------------------------------------------- */
/* 11. EVENTS CALENDAR                                                     */
/* ---------------------------------------------------------------------- */
.calendar{background:var(--ivory);}
.calendar-list{border-top:1px solid rgba(20,41,74,.12);}
.calendar-row{
  display:flex;align-items:center;gap:var(--sp-4);
  padding:var(--sp-4) 0;
  border-bottom:1px solid rgba(20,41,74,.12);
}
.date-block{
  flex:0 0 74px;text-align:center;background:var(--navy-900);color:var(--ivory);
  border-radius:var(--radius-sm);padding:.55rem 0;
}
.date-block strong{display:block;font-family:var(--font-display);font-size:1.5rem;color:var(--gold-300);}
.date-block span{font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;}
.calendar-main{flex-grow:1;min-width:0;}
.calendar-main h3{font-size:1.1rem;color:var(--navy-900);}
.calendar-main p{margin-top:.3rem;font-size:.9rem;color:var(--ink-500,var(--ink-600));}
.tag{
  flex:0 0 auto;font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  padding:.35rem .75rem;border-radius:99px;
}
.tag-nacional{background:#e7eef7;color:var(--navy-700);}
.tag-fei{background:var(--gold-100);color:var(--gold-600);}
.tag-centro{background:#f0e6f6;color:#6b3f8f;}

/* ---------------------------------------------------------------------- */
/* 12. RANKING TABLE                                                       */
/* ---------------------------------------------------------------------- */
.ranking{background:var(--cream-100);}
.ranking-tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:var(--sp-5);}
.ranking-tab{
  padding:.55rem 1.2rem;border-radius:99px;border:1.5px solid rgba(20,41,74,.18);
  background:var(--ivory);color:var(--navy-800);font-size:.88rem;font-weight:600;
  transition:all .25s var(--ease);
}
.ranking-tab:hover{border-color:var(--gold-400);}
.ranking-tab.is-active{background:var(--navy-900);color:var(--gold-300);border-color:var(--navy-900);}
.ranking-table-wrap{
  background:var(--ivory);border-radius:var(--radius-md);overflow-x:auto;
  box-shadow:0 14px 40px -30px rgba(10,21,38,.35);
}
table.ranking-table{width:100%;border-collapse:collapse;min-width:560px;}
.ranking-table th{
  text-align:left;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink-400);padding:var(--sp-3) var(--sp-4);border-bottom:2px solid rgba(20,41,74,.1);
}
.ranking-table td{padding:var(--sp-3) var(--sp-4);font-size:.95rem;border-bottom:1px solid rgba(20,41,74,.08);}
.ranking-table tbody tr:nth-child(even){background:rgba(20,41,74,.025);}
.ranking-table tbody tr:hover{background:var(--gold-100);}
.ranking-table .rank-num{font-family:var(--font-display);color:var(--gold-600);font-weight:600;}
.ranking-table a.athlete-link{font-weight:600;color:var(--navy-900);}
.ranking-table a.athlete-link:hover{color:var(--gold-600);}

/* ---------------------------------------------------------------------- */
/* 13. NEWS                                                                */
/* ---------------------------------------------------------------------- */
.news{background:var(--ivory);}
.news-layout{display:grid;grid-template-columns:1.3fr 1fr;gap:var(--sp-5);align-items:start;}
.news-card{
  border-radius:var(--radius-md);overflow:hidden;background:var(--cream-100);
  border:1px solid rgba(20,41,74,.08);
  display:block;transition:transform .3s var(--ease),box-shadow .3s var(--ease);
}
.news-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-soft);}
.news-card.featured{display:flex;flex-direction:column;}
.news-card.featured img{aspect-ratio:16/10;object-fit:cover;width:100%;}
.news-card .news-body{padding:var(--sp-4);}
.news-card.featured .news-body{padding:var(--sp-5);}
.news-cat{
  font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-600);
}
.news-card.featured h3{font-size:1.5rem;margin-top:.5rem;color:var(--navy-900);}
.news-card.featured p{margin-top:.6rem;color:var(--ink-600);}
.news-date{display:block;margin-top:var(--sp-3);font-size:.8rem;color:var(--ink-400);}

.news-list{display:flex;flex-direction:column;gap:var(--sp-3);}
.news-list .news-card{display:flex;gap:var(--sp-3);align-items:stretch;padding:var(--sp-2);}
.news-list .news-card img{width:110px;height:88px;object-fit:cover;border-radius:var(--radius-sm);flex-shrink:0;}
.news-list .news-body{padding:0;display:flex;flex-direction:column;justify-content:center;min-width:0;}
.news-list h3{font-size:1rem;margin-top:.3rem;color:var(--navy-900);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.news-skeleton{
  background:linear-gradient(100deg,var(--cream-200) 30%,#efe6d0 50%,var(--cream-200) 70%);
  background-size:200% 100%;animation:shimmer 1.4s infinite;
  border-radius:var(--radius-md);
}
@keyframes shimmer{0%{background-position:200% 0;}100%{background-position:-200% 0;}}
.news-error{
  padding:var(--sp-5);text-align:center;color:var(--ink-600);
  border:1px dashed rgba(20,41,74,.25);border-radius:var(--radius-md);
}

/* ---------------------------------------------------------------------- */
/* 14. CLUBS                                                               */
/* ---------------------------------------------------------------------- */
.clubs{background:var(--cream-100);}
.club-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4);}
.club-card{
  background:var(--ivory);border-radius:var(--radius-md);padding:var(--sp-4);
  border:1px solid rgba(20,41,74,.08);height:100%;display:flex;flex-direction:column;
}
.club-card h3{font-size:1.1rem;color:var(--navy-900);}
.club-loc{display:flex;align-items:center;gap:.4rem;margin-top:.4rem;font-size:.85rem;color:var(--ink-600);}
.club-tags{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:var(--sp-3);}
.club-tags span{font-size:.7rem;background:var(--gold-100);color:var(--gold-600);padding:.2rem .55rem;border-radius:99px;font-weight:600;}
.club-contact{margin-top:auto;padding-top:var(--sp-3);font-size:.85rem;color:var(--ink-600);border-top:1px solid rgba(20,41,74,.08);}

/* ---------------------------------------------------------------------- */
/* 15. SPONSORS                                                            */
/* ---------------------------------------------------------------------- */
.sponsors{background:var(--ivory);}
.sponsor-tier{margin-bottom:var(--sp-5);}
.tier-label{
  display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  padding:.3rem .8rem;border-radius:99px;margin-bottom:var(--sp-3);
}
.tier-oro .tier-label{background:var(--gold-100);color:var(--gold-600);}
.tier-plata .tier-label{background:#e9edf1;color:#5b6773;}
.tier-bronce .tier-label{background:#f3e3d3;color:#8a5a34;}
.tier-oficial .tier-label{background:#e7eef7;color:var(--navy-700);}
.sponsor-row{display:flex;flex-wrap:wrap;gap:var(--sp-4);}
.sponsor-item{
  background:var(--cream-100);border-radius:var(--radius-sm);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-display);color:var(--navy-800);font-weight:600;
  border:1px solid rgba(20,41,74,.08);
}
.tier-oro .sponsor-item{padding:var(--sp-4) var(--sp-6);font-size:1.2rem;}
.tier-plata .sponsor-item{padding:var(--sp-3) var(--sp-5);font-size:1.05rem;}
.tier-bronce .sponsor-item,.tier-oficial .sponsor-item{padding:var(--sp-2) var(--sp-4);font-size:.92rem;}

/* ---------------------------------------------------------------------- */
/* 16. NEWSLETTER                                                          */
/* ---------------------------------------------------------------------- */
.newsletter{
  background:linear-gradient(140deg,var(--navy-950),var(--navy-800));
  color:var(--ivory);text-align:center;
}
.newsletter h2{font-size:clamp(1.7rem,3vw,2.3rem);}
.newsletter p{margin-top:var(--sp-2);color:rgba(255,253,247,.75);}
.newsletter-form{
  display:flex;gap:.6rem;max-width:460px;margin:var(--sp-5) auto 0;flex-wrap:wrap;justify-content:center;
}
.newsletter-form input{
  flex:1 1 260px;padding:.9rem 1.2rem;border-radius:999px;border:1.5px solid rgba(255,253,247,.3);
  background:rgba(255,253,247,.06);color:var(--ivory);font-size:.95rem;
}
.newsletter-form input::placeholder{color:rgba(255,253,247,.5);}
.newsletter-note{margin-top:var(--sp-3);font-size:.85rem;color:var(--gold-300);}

/* ---------------------------------------------------------------------- */
/* 17. CONTACT                                                             */
/* ---------------------------------------------------------------------- */
.contact{background:var(--cream-100);}
.contact-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:var(--sp-7);}
.contact-info h2{font-size:clamp(1.8rem,3.2vw,2.4rem);color:var(--navy-900);}
.contact-info p{margin-top:var(--sp-3);color:var(--ink-600);max-width:420px;}
.contact-details{margin-top:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-3);}
.contact-details div{display:flex;gap:.7rem;font-size:.95rem;color:var(--ink-600);}
.contact-details strong{color:var(--navy-900);}

.contact-form{background:var(--ivory);padding:var(--sp-5);border-radius:var(--radius-md);border:1px solid rgba(20,41,74,.08);}
.form-row{margin-bottom:var(--sp-4);}
.form-row label{display:block;font-size:.85rem;font-weight:600;color:var(--navy-800);margin-bottom:.4rem;}
.form-row input,.form-row textarea{
  width:100%;padding:.8rem 1rem;border-radius:var(--radius-sm);border:1.5px solid rgba(20,41,74,.18);
  background:var(--cream-100);font-size:.95rem;transition:border-color .2s var(--ease);
}
.form-row input:focus,.form-row textarea:focus{border-color:var(--gold-500);outline:none;}
.form-row textarea{min-height:120px;resize:vertical;}
.form-row.has-error input,.form-row.has-error textarea{border-color:#b3413a;}
.field-error{display:none;color:#b3413a;font-size:.8rem;margin-top:.35rem;}
.form-row.has-error .field-error{display:block;}
.form-success{
  display:none;margin-top:var(--sp-3);padding:var(--sp-3);background:#e8f3ea;color:#2e6b3e;
  border-radius:var(--radius-sm);font-size:.9rem;
}
.form-success.is-visible{display:block;}

/* ---------------------------------------------------------------------- */
/* 18. FOOTER                                                              */
/* ---------------------------------------------------------------------- */
.site-footer{background:var(--navy-950);color:rgba(255,253,247,.8);}
.footer-top{
  display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:var(--sp-5);
  padding:var(--sp-7) 0 var(--sp-6);border-bottom:1px solid rgba(255,253,247,.1);
}
.footer-brand p{margin-top:var(--sp-3);font-size:.9rem;color:rgba(255,253,247,.65);max-width:260px;}
.social-row{display:flex;gap:.6rem;margin-top:var(--sp-4);}
.social-row a{
  width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,253,247,.25);
  display:flex;align-items:center;justify-content:center;font-size:.8rem;
  transition:border-color .2s var(--ease),color .2s var(--ease);
}
.social-row a:hover{border-color:var(--gold-400);color:var(--gold-300);}
.footer-col h4{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-300);margin-bottom:var(--sp-3);}
.footer-col ul{display:flex;flex-direction:column;gap:.6rem;}
.footer-col a{font-size:.9rem;color:rgba(255,253,247,.72);}
.footer-col a:hover{color:var(--ivory);}
.footer-bottom{
  padding:var(--sp-4) 0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--sp-2);
  font-size:.85rem;color:rgba(255,253,247,.55);
}
.footer-bottom a{color:rgba(255,253,247,.75);}
.footer-bottom a:hover{color:var(--gold-300);}
.footer-legal{display:flex;gap:var(--sp-4);}

/* back to top */
.back-to-top{
  position:fixed;right:var(--sp-4);bottom:var(--sp-4);z-index:400;
  width:46px;height:46px;border-radius:50%;
  background:var(--navy-900);color:var(--gold-300);border:1px solid var(--gold-500);
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;transform:translateY(10px);
  transition:opacity .3s var(--ease),transform .3s var(--ease);
  box-shadow:var(--shadow-soft);
}
.back-to-top.is-visible{opacity:1;pointer-events:auto;transform:none;}

/* ---------------------------------------------------------------------- */
/* 19. RESPONSIVE                                                         */
/* ---------------------------------------------------------------------- */
@media (max-width:1024px){
  .discipline-grid{grid-template-columns:repeat(2,1fr);}
  .athlete-grid{grid-template-columns:repeat(2,1fr);}
  .club-grid{grid-template-columns:repeat(2,1fr);}
  .heritage-grid,.event-inner,.news-layout,.contact-grid{grid-template-columns:1fr;}
  .footer-top{grid-template-columns:1fr 1fr;}
  .stat-medal{width:110px;height:110px;}
}

@media (max-width:768px){
  .main-nav{display:none;}
  .nav-toggle{display:flex;}
  .stat-row{grid-template-columns:1fr;gap:var(--sp-3);}
  .countdown{grid-template-columns:repeat(2,1fr);}
  .section-pad{padding:var(--sp-6) 0;}
  .section-pad-sm{padding:var(--sp-5) 0;}

  /* Milestone timeline collapses to a single left-aligned column */
  .milestones-line{left:31px;transform:none;}
  .milestone{grid-template-columns:64px 1fr;column-gap:var(--sp-4);}
  .milestone-node{grid-column:1;width:56px;height:56px;}
  .milestone[data-side="left"] .milestone-card,
  .milestone[data-side="right"] .milestone-card{
    grid-column:2;justify-self:start;text-align:left;max-width:none;
  }
  .milestone[data-side="left"] .milestone-card::before,
  .milestone[data-side="right"] .milestone-card::before{
    left:-24px;right:auto;background:linear-gradient(90deg,var(--gold-400),transparent);width:24px;
  }
}

@media (max-width:640px){
  .discipline-grid,.athlete-grid,.club-grid{grid-template-columns:1fr;}
  .footer-top{grid-template-columns:1fr;}
  .calendar-row{flex-wrap:wrap;}
  .news-list .news-card{flex-direction:row;}
  .hero-ctas .btn{width:100%;}
  .newsletter-form{flex-direction:column;}
  .newsletter-form input,.newsletter-form button{width:100%;}
}
