/* ═══════════════════════════════════════════════════════════════════════
   CAMP SUMMIT  |  P2 Summer 2026
   ═══════════════════════════════════════════════════════════════════════ */

:root {
  --navy:        #0b243f;
  --navy-alt:    #152b49;
  --navy-mid:    #003352;
  --rust:        #C4552A;
  --rust-light:  #E0714A;
  --blue:        #14A3D6;
  --blue-light:  #3DC0EE;
  --cream:       #F0E6D3;
  --cream-muted: #B8A88A;
  --pine:        #1F4030;
  --pine-dk:     #162D22;
  --gold:        #C9A84C;
  --gold-light:  #E8C870;

  --font-camp: 'Cooper Black', 'Cooper Std', serif; /* H1 & H2 only */
  --font-head: 'Manrope', sans-serif;
  --font-body: 'Manrope', sans-serif;
}

/* ─── Self-hosted Cooper Black (removed from Google Fonts) ──────────── */
@font-face {
  font-family: 'Cooper Black';
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: local('Cooper Black'),
       url('../fonts/CooperBlack.woff') format('woff');
}

/* ─── Reset ─────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }

body {
  background: var(--navy);
  color: var(--cream);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.65;
  overflow-x: hidden;
}

a { color: var(--rust-light); text-decoration: none; transition: color .2s; }
a:hover { color: #F5906A; }

/* ─── Pine tree colour token (matches illustrated trees in collateral) ─ */
/* hero forest SVG fills are set inline; section dividers use this via CSS */

/* ─── Star canvas (fixed, full-screen, non-interactive) ─────────────── */
#star-canvas {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  will-change: transform;
}

/* ══════════════════════════════════════════════════════════════════════
   HERO
   ══════════════════════════════════════════════════════════════════════ */
#hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: transparent;
  z-index: 1;
  padding-bottom: 0;
}


/* Sparkles */
.hero-sparkles { position: absolute; inset: 0; pointer-events: none; }
.sp {
  position: absolute;
  color: var(--cream);
  animation: sparkle 3s ease-in-out infinite alternate;
}
.sp1  { top: 12%; left:  8%; font-size: 11px; animation-delay: 0s; }
.sp2  { top: 18%; left: 78%; font-size: 14px; animation-delay: .5s; }
.sp3  { top: 28%; left: 22%; font-size:  7px; animation-delay: 1s; }
.sp4  { top:  9%; left: 55%; font-size: 10px; animation-delay: 1.5s; }
.sp5  { top: 42%; left: 88%; font-size:  7px; animation-delay: .3s; }
.sp6  { top: 32%; left: 42%; font-size:  9px; animation-delay: .8s; }
.sp7  { top: 52%; left: 15%; font-size:  7px; animation-delay: 1.2s; }
.sp8  { top: 22%; left: 92%; font-size: 12px; animation-delay: .6s; }
@keyframes sparkle {
  from { opacity: .2; transform: scale(.7); }
  to   { opacity: 1;  transform: scale(1.3); }
}

/* Hero content */
.hero-content {
  text-align: center;
  position: relative;
  z-index: 2;
  padding: 16px 0 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
}

/* Hero graphic */
.hero-img-wrap {
  position: relative;
  width: 100%;
  max-width: 1080px;
  padding: 0 20px;
  margin-bottom: 32px;
}
.hero-img {
  width: 100%;
  height: auto;
  display: block;
}

/* Gradient fade — bleeds all four edges into the navy background */
.hero-img-wrap::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(to right,  var(--navy) 0%, transparent 12%, transparent 88%, var(--navy) 100%),
    linear-gradient(to bottom, var(--navy) 0%, transparent 3%),
    linear-gradient(to top,    var(--navy) 0%, transparent 6%);
}

/* Hero nav tiles */
.hero-nav {
  display: flex;
  gap: 10px;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 8px;
}

.hn-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  padding: 18px 22px 14px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(240,230,211,.18);
  color: var(--cream);
  font-family: var(--font-head);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  transition: background .2s, border-color .2s, transform .2s;
  min-width: 110px;
}
.hn-item:hover {
  background: rgba(77,175,224,.14);
  border-color: rgba(77,175,224,.6);
  color: var(--cream);
  transform: translateY(-3px);
}
.hn-icon  { font-size: 24px; }
.hn-label { font-size: 14px; }
.hn-date  { font-size: 12px; font-weight: 400; color: var(--cream-muted); letter-spacing: .05em; }


/* ══════════════════════════════════════════════════════════════════════
   FIXED NAV — always at top
   ══════════════════════════════════════════════════════════════════════ */
#top-nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 200;
  display: flex;
  justify-content: center;
  gap: 48px;
  padding: 18px 24px;
  background: rgba(11,28,49,0.65);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(240,230,211,.08);
}

#top-nav a {
  font-family: var(--font-head);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .12em;
  color: var(--cream);
  transition: color .2s;
  text-transform: uppercase;
}
#top-nav a:hover,
#top-nav a.active { color: var(--blue); }

/* push everything below the fixed nav */
body { padding-top: 58px; }

/* ══════════════════════════════════════════════════════════════════════
   CONTENT SECTIONS
   ══════════════════════════════════════════════════════════════════════ */
.section {
  position: relative;
  z-index: 1;
  padding: 80px 24px 56px;
  background: var(--navy);
  scroll-margin-top: 60px;
}
.alt-section { background: var(--navy-alt); }

.container {
  max-width: 900px;
  margin: 0 auto;
}

.eyebrow {
  font-family: var(--font-camp);
  font-size: clamp(30px, 5vw, 46px);
  color: var(--cream);
  letter-spacing: .04em;
  text-transform: uppercase;
  line-height: 1.1;
  margin-bottom: 8px;
  font-variant-numeric: lining-nums;
  font-feature-settings: "lnum" 1;
}

/* Force Manrope for the · separator inside Cooper Black eyebrow
   (Cooper Black lacks the middle-dot glyph; Safari falls back to a
   heavy serif and renders it as an oversized blob) */
.eyebrow .sep {
  font-family: var(--font-body);
  font-size: .82em;
  letter-spacing: 0;
  vertical-align: .12em;   /* nudge up so it sits centred with the caps */
  opacity: .75;
}

.section-title {
  font-family: var(--font-head);
  font-size: clamp(15px, 2vw, 18px);
  font-weight: 500;
  font-style: italic;
  color: var(--blue);
  letter-spacing: .04em;
  margin-bottom: 17px;
}

.section-sub {
  font-size: 16px;
  color: var(--cream-muted);
  margin-bottom: 40px;
}

/* MAPS eyebrow + decorative camp trail SVG */
.eyebrow-trail-row {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}
.eyebrow-trail-row .eyebrow { margin-bottom: 0; }
.camp-trail { flex-shrink: 0; opacity: .9; }

/* Eyebrow + venue badge on same row */
.eyebrow-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px 20px;
  margin-bottom: 44px;
}
.eyebrow-row .eyebrow { margin-bottom: 0; }
.eyebrow-row .venue-tag { margin-bottom: 0; }

/* Venue tag (small location badge below section title) */
.venue-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-head);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .06em;
  color: var(--cream-muted);
  padding: 6px 14px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(240,230,211,.12);
  margin-bottom: 44px;
}
.venue-map-link {
  margin-left: 6px;
  font-size: 13px;
  color: var(--rust-light);
}
.venue-map-link:hover { color: #F5906A; }


/* ══════════════════════════════════════════════════════════════════════
   FEATURED EVENT CARD  (Pre-Camp)
   ══════════════════════════════════════════════════════════════════════ */
.feature-card {
  display: flex;
  gap: 36px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(240,230,211,.1);
  padding: 32px 36px;
  margin-top: 16px;
}
.precamp-card { border-left: 4px solid var(--blue); }

.fc-time {
  font-family: var(--font-head);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: .04em;
  color: var(--blue);
  min-width: 150px;
  padding-top: 3px;
  line-height: 1.4;
}

.fc-heading {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 6px;
  flex-wrap: wrap;
}
.fc-heading h3 {
  font-family: var(--font-head);
  font-size: 26px;
  font-weight: 700;
  color: var(--cream);
}

.fc-location {
  font-family: var(--font-head);
  font-size: 13px;
  color: var(--cream-muted);
  margin-bottom: 14px;
  letter-spacing: .03em;
}

.fc-body > p {
  font-size: 16px;
  color: var(--cream-muted);
  margin-bottom: 22px;
}
.precamp-card .fc-body > p {
  color: var(--cream);
}

/* Pills / badges */
.pill {
  font-family: var(--font-head);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: 1px 9px;
  display: inline-block;
}
.pill-blue {
  background: rgba(20,163,214,.1);
  color: var(--blue);
  /* no border — label, not a button */
}
.pill-gold {
  background: rgba(201,168,76,.12);
  color: var(--gold);
}

/* Map buttons */
.map-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-family: var(--font-head);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--rust-light);
  border: 1px solid rgba(224,113,74,.5);
  padding: 8px 16px;
  transition: background .2s, color .2s;
}
.map-btn:hover {
  background: rgba(224,113,74,.12);
  color: #F5906A;
}

/* ══════════════════════════════════════════════════════════════════════
   TIMELINE
   ══════════════════════════════════════════════════════════════════════ */
.timeline {
  position: relative;
  padding-left: 36px;
  border-left: 2px solid rgba(77,175,224,.2);
  margin-left: 6px;
}

.tl-item {
  position: relative;
  display: grid;
  grid-template-columns: 165px 1fr;
  gap: 20px;
  padding: 20px 0;
  border-bottom: 1px solid rgba(240,230,211,.06);
}
.tl-item:last-child,
.tl-last { border-bottom: none; }

/* Dot on the timeline line */
.tl-item::before {
  content: '';
  position: absolute;
  left: -44px;  /* centres the 12px dot on the 2px border-left line */
  top: 28px;    /* aligns with the vertical centre of the first title line */
  width: 12px;
  height: 12px;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  background: var(--navy);
  border: 2px solid var(--blue);
  opacity: .8;
}

.tl-time {
  font-family: var(--font-head);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .03em;
  color: var(--blue);
  padding-top: 1px;
  line-height: 1.5;
}

.tl-title {
  font-family: var(--font-head);
  font-size: 20px;
  font-weight: 700;
  color: var(--cream);
  letter-spacing: .02em;
  margin-bottom: 6px;
}

/* Featured (Team Time / Workshops) */
.tl-wide .tl-body {
  background: rgba(255,255,255,.025);
  border: 1px solid rgba(201,168,76,.18);
  border-left: 3px solid var(--gold);
  padding: 18px 20px;
}
.tl-wide::before { border-color: var(--gold); }

/* Campfire event */
.tl-fire::before { border-color: var(--rust); }
.fire-body {
  background: rgba(196,85,42,.08);
  border: 1px solid rgba(196,85,42,.28);
  border-left: 3px solid var(--rust);
  padding: 18px 20px;
}
.fire-heading {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}
.fire-emoji { font-size: 22px; }
.fire-venue {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  font-size: 16px;
  color: var(--cream-muted);
}
.fire-venue strong { color: var(--cream); font-size: 18px; }
.fire-addr { font-size: 14px; color: var(--cream-muted); }

/* Sub-sessions (morning block) */
.sub-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 12px;
}
.sub-item {
  display: flex;
  align-items: baseline;
  gap: 12px;
  flex-wrap: wrap;
  font-size: 15px;
}
.sub-time { font-family: var(--font-head); font-size: 13px; color: var(--cream-muted); min-width: 88px; letter-spacing: .03em; }
.sub-name { font-weight: 600; color: var(--cream); }
.sub-who  { font-size: 14px; color: var(--cream-muted); }

/* Session pill — matches .pill-blue (Open Invite style) */
.session-pill {
  font-family: var(--font-head);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  display: inline-block;
  padding: 3px 11px;
  margin-left: 10px;
  vertical-align: middle;
  background: rgba(20,163,214,.1);
  color: var(--blue);
}


.grid-map-row {
  margin-bottom: 10px;
}
.grid-map-link {
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 600;
  color: var(--rust-light);
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  letter-spacing: .02em;
  transition: color .2s;
}
.grid-map-link:hover { color: #F5906A; }

/* ══════════════════════════════════════════════════════════════════════
   ROOM CARDS  (Team Time)
   ══════════════════════════════════════════════════════════════════════ */
.rooms-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 10px;
  margin-top: 16px;
}

.room-card {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(240,230,211,.1);
  padding: 14px 16px;
}

.room-name {
  font-family: var(--font-head);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--cream-muted);
  margin-bottom: 6px;
}

.room-team {
  font-family: var(--font-head);
  font-size: 18px;
  font-weight: 700;
  color: var(--cream);
  display: flex;
  align-items: baseline;
  gap: 8px;
}

/* Floor labels */
.room-floor {
  font-size: 13px;
  margin-top: 5px;
  font-family: var(--font-body);
}
.floor-2nd  { color: var(--rust-light); }
.floor-3rd  { color: #7EC8A0; }
.floor-note { color: var(--cream-muted); }
.floor-high { color: var(--gold); }
.floor-tbd  { color: var(--cream-muted); opacity: .55; }

/* Room name inherits same color as its floor label */
.room-location:has(.floor-2nd) .room-name,
.ws-location:has(.floor-2nd) .ws-room   { color: var(--rust-light); }
.room-location:has(.floor-3rd) .room-name,
.ws-location:has(.floor-3rd) .ws-room   { color: #7EC8A0; }
.room-location:has(.floor-note) .room-name,
.ws-location:has(.floor-note) .ws-room  { color: var(--cream-muted); }
.room-location:has(.floor-high) .room-name,
.ws-location:has(.floor-high) .ws-room  { color: var(--gold); }

/* Room / workshop location row: "TERRACE  |  2nd Floor" */
.room-location,
.ws-location {
  margin-top: 6px;
  line-height: 1.6;
}

/* Inline so they sit on the same text baseline */
.room-location .room-name,
.ws-location .ws-room {
  display: inline;
  margin-bottom: 0;
}
.room-location .room-floor,
.ws-location .ws-floor {
  display: inline;
  font-size: 12px;
  font-family: var(--font-body);
  margin-top: 0;
  margin-bottom: 0;
}

/* Comma on room name ::after so it's glued with no space before it */
.room-location .room-name::after,
.ws-location .ws-room::after {
  content: ",";
}

/* ══════════════════════════════════════════════════════════════════════
   MAP MODAL
   ══════════════════════════════════════════════════════════════════════ */
.map-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 500;
  background: rgba(0,0,0,.82);
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.map-modal.open { display: flex; }

.map-modal-inner {
  background: var(--navy);
  border: 1px solid rgba(240,230,211,.14);
  width: 100%;
  max-width: 760px;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.map-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 20px;
  background: rgba(20,163,214,.1);
  border-bottom: 1px solid rgba(240,230,211,.1);
  font-family: var(--font-head);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .06em;
  color: var(--cream);
  flex-shrink: 0;
}

.map-modal-close {
  background: none;
  border: none;
  color: var(--cream-muted);
  font-size: 20px;
  cursor: pointer;
  padding: 0 4px;
  line-height: 1;
  transition: color .2s;
}
.map-modal-close:hover { color: var(--cream); }

.map-modal-body {
  overflow: auto;
  flex: 1;
}
.map-modal-body img {
  width: 100%;
  height: auto;
  display: block;
}

.map-modal-key {
  padding: 12px 20px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 24px;
  border-bottom: 1px solid rgba(240,230,211,.08);
  background: rgba(0,0,0,.2);
  flex-shrink: 0;
}
.mf-item {
  font-size: 13px;
  line-height: 1.5;
}
.mf-2nd { flex-basis: 100%; }
.mf-row {
  flex-basis: 100%;
  display: flex;
  flex-wrap: wrap;
  gap: 4px 28px;
}
.mf-item::before { margin-right: 5px; }
.mf-2nd  { color: var(--rust-light); }
.mf-2nd::before  { content: '🗺'; }
.mf-1st  { color: var(--cream-muted); }
.mf-1st::before  { content: '↓'; }
.mf-high { color: var(--gold); }
.mf-high::before { content: '↑'; }
.mf-tbd  { color: var(--cream-muted); opacity: .6; }
.mf-tbd::before  { content: '?'; }
.mf-3rd  { color: #7EC8A0; }
.mf-3rd::before  { content: '↑'; }

/* ══════════════════════════════════════════════════════════════════════
   WORKSHOP CARDS  (AI Breakouts)
   ══════════════════════════════════════════════════════════════════════ */
.workshop-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
  gap: 10px;
  margin-top: 14px;
}

.ws-card {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(240,230,211,.1);
  padding: 14px 16px;
}

.ws-room {
  font-family: var(--font-head);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--blue);
  margin-bottom: 8px;
}

.ws-topic {
  font-size: 15px;
  font-weight: 600;
  color: var(--cream);
  line-height: 1.4;
  margin-bottom: 8px;
}

.ws-floor {
  font-size: 12px;
  margin-top: 2px;
  margin-bottom: 8px;
  font-family: var(--font-body);
}

.ws-leads {
  font-size: 14px;
  color: var(--cream-muted);
}

/* ══════════════════════════════════════════════════════════════════════
   WIFI SECTION
   ══════════════════════════════════════════════════════════════════════ */
/* WiFi section — title left, card right */
.wifi-layout {
  display: flex;
  align-items: center;
  gap: 48px;
}

.wifi-header-col {
  flex: 0 0 auto;
}
.wifi-header-col .eyebrow    { margin-bottom: 8px; }
.wifi-header-col .section-title { margin-bottom: 0; }

.wifi-card {
  flex: 1;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(240,230,211,.1);
  border-left: 4px solid var(--blue);
  display: flex;
  flex-direction: row;
  align-items: stretch;
}

.wifi-col {
  flex: 1;
  padding: 28px 32px;
  border-right: 1px solid rgba(240,230,211,.08);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.wifi-col:last-child { border-right: none; }

.wifi-label {
  font-family: var(--font-head);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--blue);
  margin-bottom: 6px;
}

.wifi-value {
  font-family: var(--font-head);
  font-size: 20px;
  font-weight: 700;
  color: var(--cream);
  letter-spacing: .01em;
}

.wifi-pw-row {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}

.wifi-copy {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: none;
  border: 1px solid rgba(240,230,211,.2);
  color: var(--cream-muted);
  cursor: pointer;
  padding: 6px 12px;
  font-family: var(--font-head);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  transition: border-color .2s, color .2s;
}
.wifi-copy:hover {
  border-color: var(--blue);
  color: var(--blue);
}
.wifi-copy.copied {
  border-color: var(--gold);
  color: var(--gold);
}

/* ══════════════════════════════════════════════════════════════════════
   VENUE CARDS
   ══════════════════════════════════════════════════════════════════════ */
.venue-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin-top: 40px;
}

/* Colcord card: left column, spans both rows */
.vc-wide {
  grid-column: 1;
  grid-row: 1 / span 2;
}


/* Rooms section wrapper */
.vc-rooms-section {
  margin-top: 20px;
}

/* ROOMS label + map link on same row */
.vc-rooms-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}

/* Rooms grid — single column */
.vc-rooms-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
}
.vc-rooms-col {
  display: flex;
  flex-direction: column;
}
.vc-room-item {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 6px 0;
  border-bottom: 1px solid rgba(240,230,211,.06);
  font-family: var(--font-head);
  font-size: 14px;
}
.vc-rooms-col .vc-room-item:last-child { border-bottom: none; }

.vc-room-name { font-weight: 600; }
.vc-room-floor { font-size: 12px; opacity: .9; }

/* Address then button stacked vertically */
.vc-addr-btn-row {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 14px;
}
.vc-addr-btn-row .vc-btn {
  width: 100%;
  margin-top: 0;
}

/* Floor colour classes (match the agenda section) */
.fl-2nd  { color: var(--rust-light); }
.fl-3rd  { color: #7EC8A0; }
.fl-note { color: var(--cream-muted); }
.fl-high { color: var(--gold); }

/* "View 2nd Floor Map" — plain right-aligned link */
.vc-map-link {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 600;
  color: var(--rust-light);
  letter-spacing: .02em;
  transition: color .2s;
}
.vc-map-link:hover { color: #F5906A; }

/* Inline event + badge row */
.vc-event-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}

/* Small venue cards (Flora / Chicken Shack): white event line, addr pushed down, 10px gap to button */
.vc:not(.vc-wide) .vc-event {
  color: var(--cream);
  font-size: 15px;
}
/* Wide card (Colcord): white event label, button stays in place before rooms */
.vc-wide .vc-event {
  color: var(--cream);
  font-size: 15px;
  margin-bottom: 12px;
}
.vc-wide .vc-btn {
  margin-top: 10px;
}
.vc:not(.vc-wide) .vc-addr {
  margin-top: auto;
}
.vc:not(.vc-wide) .vc-btn {
  margin-top: 10px;
}


.vc {
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(240,230,211,.1);
  overflow: hidden;
  transition: border-color .2s;
  display: flex;
  flex-direction: column;
}

.vc-header {
  padding: 14px 20px;
  background: rgba(255,255,255,.04);
  border-bottom: 1px solid rgba(240,230,211,.07);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.vc-daytag {
  display: block;
  font-family: var(--font-head);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--blue);
  margin-bottom: 0;
}

.vc-name {
  font-family: var(--font-head);
  font-size: 22px;
  font-weight: 700;
  color: var(--cream);
}

.vc-sub {
  font-family: var(--font-head);
  font-size: 12px;
  font-weight: 500;
  color: var(--cream-muted);
  letter-spacing: .04em;
  margin-top: 3px;
  opacity: .8;
}

.vc-body {
  padding: 18px 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1;
}

.vc-event {
  font-family: var(--font-head);
  font-size: 14px;
  font-weight: 600;
  color: var(--cream-muted);
  letter-spacing: .04em;
}

.vc-addr {
  font-size: 15px;
  color: var(--cream-muted);
  line-height: 1.5;
}

.vc-rooms-label {
  font-family: var(--font-head);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--blue);
}

.vc-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-family: var(--font-head);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--rust-light);
  border: 1px solid rgba(224,113,74,.5);
  padding: 10px 14px;
  margin-top: auto;
  width: 100%;
  transition: background .2s, color .2s;
}
.vc-btn:hover {
  background: rgba(224,113,74,.12);
  color: #F5906A;
}

/* ══════════════════════════════════════════════════════════════════════
   FOOTER
   ══════════════════════════════════════════════════════════════════════ */
footer {
  position: relative;
  z-index: 1;
  background: #060f1a;
  text-align: center;
  padding: 56px 24px 48px;
  overflow: hidden;
}


.footer-logo {
  font-family: var(--font-camp);
  font-size: 36px;
  color: var(--cream);
  margin-bottom: 8px;
}

.footer-sub {
  font-family: var(--font-head);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .3em;
  color: var(--blue);
  margin-bottom: 20px;
}

.footer-wave {
  font-size: 18px;
  color: var(--cream-muted);
  margin-bottom: 20px;
}

.footer-copy {
  font-size: 12px;
  letter-spacing: .12em;
  color: rgba(184,168,138,.4);
}

/* ══════════════════════════════════════════════════════════════════════
   RESPONSIVE
   ══════════════════════════════════════════════════════════════════════ */
@media (max-width: 680px) {
  #hero {
    justify-content: flex-start;
    padding-top: 56px;
    min-height: auto;
  }

  .hero-content {
    padding-top: 8px;
  }

  .hero-img-wrap {
    padding: 0;
    margin-bottom: 8px;
    overflow: hidden;
  }
  .hero-img {
    width: 120%;
    margin-left: -10%;
  }

  .tl-item {
    grid-template-columns: 1fr;
    gap: 4px;
  }
  .tl-item::before { top: 22px; }

  .feature-card {
    flex-direction: column;
    gap: 16px;
    padding: 24px 20px;
  }
  .fc-time { min-width: unset; }

  .rooms-grid    { grid-template-columns: 1fr 1fr; }
  .workshop-grid { grid-template-columns: 1fr; }
  .venue-cards   { grid-template-columns: 1fr; }
  .vc-wide       { grid-column: auto; grid-row: auto; }
  /* Flora first on mobile since it's the earliest date */
  .venue-cards > .vc:nth-child(2) { order: -1; }

  /* Agenda sub-items: indent wrap lines under event name, not time */
  .sub-item {
    display: grid;
    grid-template-columns: 88px 1fr;
    gap: 2px 12px;
    align-items: baseline;
  }
  .sub-time { grid-column: 1; grid-row: 1 / span 2; align-self: start; padding-top: 2px; }
  .sub-name { grid-column: 2; grid-row: 1; }
  .sub-who  { grid-column: 2; grid-row: 2; }

  /* Map button fills card width on mobile (.vc-btn is already 100%) */
  .map-btn {
    display: flex;
    width: 100%;
    justify-content: center;
    box-sizing: border-box;
  }

  #top-nav { padding-left: 20px; padding-right: 20px; gap: 20px; }
  .camp-trail { display: none; }

  /* Tighten scroll offset on mobile so the previous section's color doesn't bleed above */
  .section { scroll-margin-top: 58px; }

  .hero-nav { gap: 8px; }
  .hn-item  { min-width: 80px; padding: 14px 14px 10px; }

  .nav-links { gap: 18px; }

  .tl-wide .tl-body { padding: 14px 14px; }
  .fire-body         { padding: 14px 14px; }


  /* WiFi layout stacks on mobile */
  .wifi-layout { flex-direction: column; align-items: flex-start; gap: 24px; }
  .wifi-card   { flex-direction: column; width: 100%; }
  .wifi-col    { border-right: none; border-bottom: 1px solid rgba(240,230,211,.08); padding: 20px 24px; }
  .wifi-col:last-child { border-bottom: none; }

  /* vc-btn already full-width; keep map-btn full on mobile */
  .map-btn { display: flex; width: 100%; justify-content: center; box-sizing: border-box; }
}

@media (max-width: 400px) {
  .rooms-grid { grid-template-columns: 1fr; }
}
