:root{
  --cream:#F0ECEF;
  --cocoa:#1B2A4A;
  --cocoa-soft:#3D4E70;
  --honey:#E8A33D;
  --bow:#FF2E1F;
  --balloon:#5B9BD1;
  --line:#DCE2EC;
  --navy:#1B2A4A;
  --navy-soft:#AEB9CC;
  --header-h:80px;
}
*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; background:var(--cream); color:var(--cocoa); font-family:'Inter', sans-serif; }
a{ color:inherit; text-decoration:none; }

/* ---------- Header / Nav ---------- */
header{
  position:sticky; top:0; z-index:100; height:var(--header-h);
  display:flex; align-items:center; justify-content:space-between;
  padding:0 40px; background:var(--navy);
  border-bottom:2px solid var(--navy);
}
.wordmark{ font-family:'Fredoka', sans-serif; font-weight:700; font-size:32px; letter-spacing:0.06em; text-transform:uppercase; color:#fff; text-decoration:none; }
.wordmark:hover{ opacity:0.85; }
.wordmark span{ color:var(--bow); }

nav ul{ display:flex; align-items:center; gap:34px; margin:0; padding:0; list-style:none; }
nav > ul > li{ position:relative; }
.nav-link{
  font-family:'Fredoka', sans-serif; font-weight:500; font-size:14px;
  letter-spacing:0.03em; text-transform:uppercase; color:#fff;
  padding:8px 2px; position:relative; display:inline-block;
}
.nav-link::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:3px;
  border-radius:3px; background:var(--bow);
  transform:scaleX(0); transform-origin:left; transition:transform 0.2s ease;
}
.nav-link:hover::after, .nav-link:focus-visible::after,
li.has-dropdown:hover .nav-link::after, li.has-dropdown:focus-within .nav-link::after{ transform:scaleX(1); }
.nav-link:focus-visible{ outline:2px solid var(--bow); outline-offset:4px; border-radius:4px; }
.nav-link.is-active::after{ transform:scaleX(1); }

li.has-dropdown > .nav-link{ display:inline-flex; align-items:center; gap:6px; }
.caret{
  width:8px; height:8px; border-right:2px solid #fff; border-bottom:2px solid #fff;
  transform:rotate(45deg); transition:transform 0.2s ease; margin-top:-3px;
}
li.has-dropdown:hover .caret, li.has-dropdown:focus-within .caret{ transform:rotate(-135deg); margin-top:3px; }

.submenu{
  list-style:none; margin:0; padding:8px; position:absolute; top:calc(100% + 12px); left:50%;
  transform:translateX(-50%) translateY(-6px); min-width:240px; background:#fff;
  border:2px solid var(--line); border-radius:16px; box-shadow:0 14px 30px rgba(74,47,30,0.14);
  opacity:0; visibility:hidden; transition:opacity 0.18s ease, transform 0.18s ease, visibility 0.18s;
}
li.has-dropdown:hover .submenu, li.has-dropdown:focus-within .submenu{
  opacity:1; visibility:visible; transform:translateX(-50%) translateY(0);
}
.submenu li{ border-radius:10px; }
.submenu a{ display:flex; flex-direction:column; gap:2px; padding:10px 14px; border-radius:10px; font-family:'Fredoka', sans-serif; }
.submenu a:hover, .submenu a:focus-visible{ background:var(--cream); outline:none; }
.submenu .event-month{ font-size:11px; font-weight:600; letter-spacing:0.08em; text-transform:uppercase; color:var(--bow); }
.submenu .event-name{ font-size:15px; font-weight:500; color:var(--cocoa); text-transform:none; letter-spacing:0; }
.submenu li:nth-child(2) .event-month{ color:var(--balloon); }

@media (max-width: 760px){
  header{ padding:0 20px; height:auto; flex-direction:column; align-items:flex-start; gap:14px; padding-top:16px; padding-bottom:16px; }
  nav ul{ flex-wrap:wrap; gap:16px 20px; }
  .submenu{ position:static; transform:none; box-shadow:none; border:none; opacity:1; visibility:visible; display:none; min-width:0; margin-top:6px; padding:0 0 0 10px; }
  li.has-dropdown:hover .submenu, li.has-dropdown:focus-within .submenu{ display:block; transform:none; }
}

/* ---------- Simple centered page (kept for the eventual home page) ---------- */
main.simple{ max-width:720px; margin:0 auto; padding:120px 24px 160px; text-align:center; }
main.simple h1{ font-family:'Fredoka', sans-serif; font-weight:600; font-size:clamp(28px, 4vw, 44px); line-height:1.25; margin:0 0 14px; }
main.simple p{ font-size:16px; line-height:1.6; color:var(--cocoa-soft); margin:0; }

/* ---------- Content pages ---------- */
main.content{ max-width:760px; margin:0 auto; padding:72px 24px 140px; }

.page-hero{ text-align:center; padding-bottom:56px; border-bottom:2px solid var(--line); margin-bottom:56px; }
.eyebrow{ font-family:'Fredoka', sans-serif; font-style:italic; font-weight:500; font-size:15px; color:var(--bow); text-transform:uppercase; letter-spacing:0.06em; margin:0 0 12px; }
.page-hero h1{ font-family:'Fredoka', sans-serif; font-weight:600; font-size:clamp(30px, 4.4vw, 46px); line-height:1.2; margin:0 0 18px; }
.lead{ font-size:18px; line-height:1.7; color:var(--cocoa-soft); max-width:600px; margin:0 auto; }

.block{ margin-bottom:52px; }
.block h2{
  font-family:'Fredoka', sans-serif; font-weight:600; font-size:24px; color:var(--cocoa);
  border-left:4px solid var(--bow); padding-left:14px; margin:0 0 20px;
}
.block h3{ font-family:'Fredoka', sans-serif; font-weight:600; font-size:19px; color:var(--cocoa); margin:26px 0 10px; }
.block p{ font-size:16px; line-height:1.75; color:var(--cocoa-soft); margin:0 0 16px; }
.block p:last-child{ margin-bottom:0; }

.pull{
  font-family:'Fredoka', sans-serif; font-weight:600; font-size:22px; line-height:1.4;
  color:var(--cocoa); text-align:center; margin:34px auto; max-width:520px;
}
.pull.big{ font-size:30px; color:var(--bow); }
.pull-stack{ text-align:center; margin:34px auto; }
.pull-stack p{ font-family:'Fredoka', sans-serif; font-weight:600; font-size:20px; color:var(--cocoa); line-height:1.6; margin:0; }

.callout{
  background:#fff; border:2px solid var(--line); border-left:4px solid var(--honey);
  border-radius:12px; padding:20px 24px; margin:28px 0; font-family:'Fredoka', sans-serif;
  font-weight:600; font-size:18px; color:var(--cocoa);
}

.timeline{ list-style:none; margin:0; padding:0; border-left:3px solid var(--line); }
.timeline-item{ position:relative; padding:2px 0 30px 30px; }
.timeline-item:last-child{ padding-bottom:0; }
.timeline-item::before{
  content:""; position:absolute; left:-9px; top:6px; width:14px; height:14px;
  border-radius:50%; background:var(--bow); border:3px solid var(--cream);
}
.timeline-year{
  display:inline-block; font-family:'Fredoka', sans-serif; font-weight:700; font-size:13px;
  letter-spacing:0.05em; color:#fff; background:var(--navy); padding:3px 10px; border-radius:20px; margin-bottom:8px;
}
.timeline-item h3{ margin:6px 0 8px; }

.arrow-chain{
  font-family:'Fredoka', sans-serif; font-weight:600; font-size:16px; color:var(--cocoa);
  background:#fff; border:2px solid var(--line); border-radius:12px; padding:16px 18px;
  margin:16px 0; line-height:1.8; text-align:center;
}

.video-embed{
  border:2px dashed var(--navy-soft); border-radius:16px; background:#fff;
  aspect-ratio:16/9; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:14px; margin:28px 0; padding:24px; text-align:center;
}
.video-embed .play-icon{
  width:56px; height:56px; border-radius:50%; background:var(--bow);
  display:flex; align-items:center; justify-content:center;
}
.video-embed .play-icon::after{
  content:""; border-style:solid; border-width:10px 0 10px 16px;
  border-color:transparent transparent transparent #fff; margin-left:4px;
}
.video-embed .video-label{ font-family:'Fredoka', sans-serif; font-weight:600; font-size:15px; color:var(--cocoa); }
.video-embed .video-link{ font-size:14px; color:var(--bow); font-weight:600; text-decoration:underline; }

.video-frame{
  position:relative; width:100%; aspect-ratio:16/9; margin:28px 0;
  border-radius:16px; overflow:hidden; border:2px solid var(--line); background:#000;
}
.video-frame iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.video-frame.is-short{ max-width:360px; aspect-ratio:9/16; margin-left:auto; margin-right:auto; }
.video-caption{ font-family:'Fredoka', sans-serif; font-weight:600; font-size:14px; color:var(--cocoa-soft); text-align:center; margin-top:-16px; margin-bottom:28px; }

.hero-image{ width:100%; border-radius:16px; overflow:hidden; border:2px solid var(--line); margin:28px 0; }
.hero-image img{ display:block; width:100%; height:auto; }

.teaser-block{ display:flex; flex-direction:column; gap:6px; margin:36px 0; }
.teaser-line{
  font-family:'Fredoka', sans-serif; font-weight:600; font-size:clamp(24px,4vw,34px);
  line-height:1.35; color:var(--cocoa); text-decoration:none; padding:10px 0;
  border-bottom:2px solid transparent; transition:color 0.15s ease, border-color 0.15s ease;
}
.teaser-line:hover{ color:var(--bow); border-color:var(--bow); }

.resource-links{ list-style:none; margin:0; padding:0; display:grid; gap:12px; }
.resource-links li{ background:#fff; border:2px solid var(--line); border-radius:12px; padding:14px 18px; transition:border-color 0.15s ease; }
.resource-links li:hover{ border-color:var(--bow); }
.resource-links a{ display:flex; flex-direction:column; gap:4px; }
.resource-links .r-title{ font-family:'Fredoka', sans-serif; font-weight:600; font-size:15px; color:var(--cocoa); display:block; }
.resource-links .r-url{ font-size:13px; color:var(--cocoa-soft); word-break:break-all; display:block; }

.footnotes{ list-style:decimal; margin:0; padding-left:20px; display:grid; gap:8px; }
.footnotes a{ color:var(--bow); text-decoration:underline; font-size:14px; word-break:break-all; }

.event-card{ background:#fff; border:2px solid var(--line); border-radius:20px; padding:32px; margin-bottom:32px; }
.event-month-tag{
  display:inline-block; font-family:'Fredoka', sans-serif; font-weight:700; font-size:13px;
  letter-spacing:0.06em; text-transform:uppercase; color:#fff; background:var(--balloon);
  padding:5px 14px; border-radius:20px; margin-bottom:16px;
}
.event-card.november .event-month-tag{ background:var(--bow); }
.event-card h2{ margin-top:0; }
.event-meta{ display:flex; flex-wrap:wrap; gap:20px; margin:20px 0; padding:16px 0; border-top:2px solid var(--line); border-bottom:2px solid var(--line); }
.event-meta div{ font-size:14px; }
.event-meta .meta-label{ font-family:'Fredoka', sans-serif; font-weight:600; font-size:11px; text-transform:uppercase; letter-spacing:0.05em; color:var(--cocoa-soft); display:block; margin-bottom:3px; }
.event-cta{
  display:inline-block; font-family:'Fredoka', sans-serif; font-weight:600; font-size:14px;
  text-transform:uppercase; letter-spacing:0.03em; color:#fff; background:var(--bow);
  padding:12px 26px; border-radius:30px; margin-top:8px;
}
.event-cta:hover{ background:#d92c1f; }
.social-row{ display:flex; flex-wrap:wrap; gap:12px; margin-top:16px; }
.social-row a{
  font-family:'Fredoka', sans-serif; font-weight:600; font-size:13px; color:var(--cocoa);
  background:var(--cream); border:2px solid var(--line); padding:8px 16px; border-radius:20px;
}

.next-page{
  margin-top:64px; padding-top:36px; border-top:2px solid var(--line);
  text-align:center;
}
.next-page .next-label{ font-family:'Fredoka', sans-serif; font-size:13px; text-transform:uppercase; letter-spacing:0.06em; color:var(--cocoa-soft); margin-bottom:8px; }
.next-page a{
  font-family:'Fredoka', sans-serif; font-weight:600; font-size:22px; color:var(--cocoa);
  display:inline-flex; align-items:center; gap:10px;
}
.next-page a:hover{ color:var(--bow); }
.next-page a::after{ content:"→"; }

.assumption-note{
  max-width:760px; margin:0 auto 0; padding:14px 24px; text-align:center;
  font-size:12px; color:var(--cocoa-soft); font-style:italic;
}

footer.site-footer{ text-align:center; padding:28px 24px 48px; font-size:13px; color:var(--cocoa-soft); }
