:root {
  --ink: #0e1a27;
  --forest: #0d2235;
  --forest-2: #254a6a;
  --moss: #7d9fc1;
  --lime: #a8d8ff;
  --sand: #ecf2f8;
  --paper: #f6f8fc;
  --white: #ffffff;
  --muted: #68788b;
  --line: rgba(13, 27, 42, .12);
  --radius: 22px;
  --radius-lg: 34px;
  --shadow: 0 24px 60px rgba(2, 12, 8, .16);
  --max: 1380px;
  --header-h: 98px;
  --ease: cubic-bezier(.2,.8,.2,1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: "Aptos", "Segoe UI", Arial, sans-serif;
  line-height: 1.55;
  overflow-x: hidden;
}
body.nav-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
::selection { background: var(--lime); color: var(--ink); }

:where(.display, .section-title, .hero-content h1, .page-hero h1, .trail-body h3, .exp-copy h2, .post-copy h2, .blog-card h3, .plan-panel h3, .cta-band h2, .story-copy blockquote, .brand-copy strong) {
  font-family: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Georgia, serif;
  font-weight: 600;
}


.container { width: min(calc(100% - 64px), var(--max)); margin-inline: auto; }
.section { padding: 110px 0; position: relative; }
.section-tight { padding: 78px 0; }
.eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: 11px; font-weight: 800; text-transform: uppercase;
  letter-spacing: .18em; color: var(--forest-2);
}
.eyebrow::before { content: ""; width: 30px; height: 1px; background: currentColor; }
.display {
  margin: 14px 0 0;
  font-size: clamp(52px, 7vw, 108px);
  line-height: .9;
  letter-spacing: -.055em;
  font-weight: 770;
}
.display .serif, .serif {
  font-family: Georgia, "Times New Roman", serif;
  font-style: italic;
  font-weight: 400;
  letter-spacing: -.04em;
}
.section-title {
  margin: 10px 0 18px;
  font-size: clamp(40px, 4.8vw, 72px);
  line-height: .98;
  letter-spacing: -.045em;
  font-weight: 750;
}
.lede { font-size: clamp(17px, 1.45vw, 22px); line-height: 1.55; color: #4e6175; max-width: 680px; }
.muted { color: var(--muted); }

/* HEADER */
.site-header {
  position: fixed; inset: 0 0 auto 0; z-index: 1000;
  height: var(--header-h);
  color: var(--white);
  transition: height .35s var(--ease), background .35s, border-color .35s, backdrop-filter .35s;
  border-bottom: 1px solid transparent;
}
.site-header.scrolled {
  height: 76px;
  background: rgba(9, 21, 34, .78);
  backdrop-filter: blur(18px) saturate(130%);
  -webkit-backdrop-filter: blur(18px) saturate(130%);
  border-bottom-color: rgba(255,255,255,.1);
}
.header-inner { width: min(calc(100% - 64px), 1500px); height: 100%; margin: auto; display: flex; align-items: center; justify-content: space-between; }
.brand { display: inline-flex; align-items: center; gap: 12px; position: relative; z-index: 1002; }
.brand-mark { width: 44px; height: 44px; display: grid; place-items: center; transition: transform .35s var(--ease), width .35s, height .35s; }
.brand-mark svg { width: 100%; height: 100%; }
.site-header.scrolled .brand-mark { width: 34px; height: 34px; transform: rotate(-2deg); }
.brand-copy { display: grid; line-height: .9; }
.brand-copy strong { font-size: 16px; letter-spacing: .14em; font-weight: 850; }
.brand-copy span { font-size: 8px; letter-spacing: .22em; opacity: .7; margin-top: 5px; }
.nav { display: flex; align-items: center; gap: 34px; }
.nav a { position: relative; font-size: 12px; text-transform: uppercase; letter-spacing: .13em; font-weight: 750; color: rgba(255,255,255,.82); padding: 12px 0; }
.nav a::after { content:""; position:absolute; left:0; right:100%; bottom:4px; height:1px; background:var(--lime); transition:right .25s var(--ease); }
.nav a:hover, .nav a.active { color: #fff; }
.nav a:hover::after, .nav a.active::after { right: 0; }
.nav-cta { border: 1px solid rgba(255,255,255,.42); border-radius: 999px; padding: 12px 18px !important; }
.nav-cta::after { display:none; }
.menu-toggle { display:none; position:relative; z-index:1002; width:46px; height:46px; border-radius:50%; border:1px solid rgba(255,255,255,.32); background:rgba(0,0,0,.1); color:white; }
.menu-toggle span { position:absolute; left:13px; width:19px; height:1.5px; background:white; transition:transform .3s, top .3s; }
.menu-toggle span:first-child { top:18px; }
.menu-toggle span:last-child { top:26px; }
.nav-open .menu-toggle span:first-child { top:22px; transform:rotate(45deg); }
.nav-open .menu-toggle span:last-child { top:22px; transform:rotate(-45deg); }

/* HOME QUAD HERO */
.quad-hero { min-height: 880px; height: 100svh; position: relative; overflow: hidden; background: #0a1623; color: white; }
.hero-panels { position:absolute; inset:0; display:flex; gap:3px; }
.hero-panel { flex: 1; min-width: 0; position:relative; overflow:hidden; isolation:isolate; transition:flex .85s var(--ease); cursor:pointer; }
.hero-panel::before { content:""; position:absolute; inset:0; background:none; z-index:-2; }
.hero-panel .panel-bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transform:scale(1.04); transition:transform 1.2s var(--ease), filter .8s; z-index:-2; }
.hero-panel::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(2,8,6,.12), rgba(2,8,6,.4) 58%, rgba(2,8,6,.78)); z-index:-1; transition:opacity .6s; }
.hero-panel.active { flex: 2.25; }
.hero-panel.active .panel-bg { transform:scale(1); }
.hero-panel:not(.active) .panel-bg { filter:saturate(.72) brightness(.72); }
.panel-meta { position:absolute; left:28px; bottom:30px; display:grid; gap:6px; opacity:.72; transition:opacity .35s; }
.hero-panel.active .panel-meta { opacity:1; }
.panel-meta span { font-size:9px; text-transform:uppercase; letter-spacing:.18em; }
.panel-meta strong { font-size:15px; letter-spacing:-.01em; }
.panel-index { position:absolute; top:120px; right:22px; writing-mode:vertical-rl; font-size:10px; letter-spacing:.2em; opacity:.62; }
.hero-shade { position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg, rgba(3,10,7,.72) 0%, rgba(3,10,7,.26) 46%, transparent 72%); }
.hero-content { position:absolute; z-index:10; top:50%; left:max(32px, calc((100vw - 1500px)/2)); transform:translateY(-44%); width:min(760px, 52vw); pointer-events:none; }
.hero-kicker { display:flex; align-items:center; gap:12px; text-transform:uppercase; letter-spacing:.22em; font-size:10px; font-weight:800; color:var(--lime); }
.hero-kicker::before { content:""; width:42px; height:1px; background:var(--lime); }
.hero-content h1 { margin:18px 0 20px; font-size:clamp(68px, 8.6vw, 150px); line-height:.78; letter-spacing:-.075em; font-weight:780; text-shadow:0 20px 60px rgba(0,0,0,.24); }
.hero-content h1 .serif { display:block; color:#dceeff; padding-left:.65em; }
.hero-content p { margin:0; width:min(560px, 100%); font-size:clamp(16px, 1.25vw, 20px); color:rgba(228,241,255,.88); }
.hero-actions { display:flex; gap:12px; margin-top:30px; pointer-events:auto; }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:52px; padding:0 24px; border-radius:999px; font-size:11px; text-transform:uppercase; letter-spacing:.13em; font-weight:800; border:1px solid transparent; transition:transform .25s var(--ease), background .25s, color .25s, border-color .25s; }
.btn:hover { transform:translateY(-2px); }
.btn-light { background:white; color:var(--ink); }
.btn-ghost { border-color:rgba(255,255,255,.38); color:white; backdrop-filter:blur(8px); background:rgba(255,255,255,.06); }
.btn-dark { background:var(--forest); color:white; }
.btn-outline { border-color:rgba(14,28,21,.25); color:var(--forest); }
.hero-ui { position:absolute; z-index:15; right:max(32px, calc((100vw - 1500px)/2)); bottom:42px; display:flex; align-items:center; gap:14px; }
.hero-count { font-size:11px; letter-spacing:.18em; color:rgba(255,255,255,.7); }
.hero-progress { width:150px; height:2px; background:rgba(255,255,255,.25); overflow:hidden; }
.hero-progress span { display:block; width:100%; height:100%; background:var(--lime); transform-origin:left; transform:scaleX(0); }
.hero-progress.running span { animation:heroProgress 5s linear forwards; }
@keyframes heroProgress { to { transform:scaleX(1); } }
.scroll-cue { position:absolute; z-index:10; left:max(32px, calc((100vw - 1500px)/2)); bottom:38px; display:flex; align-items:center; gap:12px; font-size:9px; text-transform:uppercase; letter-spacing:.2em; color:rgba(255,255,255,.66); }
.scroll-cue i { width:42px; height:42px; border-radius:50%; border:1px solid rgba(255,255,255,.25); display:grid; place-items:center; font-style:normal; font-size:16px; }

/* HOME SECTIONS */
.intro-grid { display:grid; grid-template-columns: .78fr 1.22fr; gap:8vw; align-items:end; }
.intro-note { font-size:12px; color:var(--muted); text-transform:uppercase; letter-spacing:.16em; max-width:260px; }
.intro-copy { max-width:840px; }
.intro-copy p { font-size:clamp(28px, 3.2vw, 52px); line-height:1.12; letter-spacing:-.035em; margin:0; }
.intro-copy p .serif { color:#4b7192; }

.cards-head { display:flex; justify-content:space-between; align-items:end; gap:30px; margin-bottom:42px; }
.cards-head .lede { margin:0; }
.adventure-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.adventure-card { position:relative; min-height:580px; border-radius:var(--radius-lg); overflow:hidden; color:white; isolation:isolate; box-shadow:var(--shadow); }
.adventure-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform .8s var(--ease); }
.adventure-card::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 24%, rgba(3,12,8,.82) 100%); z-index:-1; }
.adventure-card:hover img { transform:scale(1.045); }
.card-top { position:absolute; top:22px; left:22px; right:22px; display:flex; justify-content:space-between; align-items:center; }
.pill { display:inline-flex; align-items:center; min-height:32px; padding:0 13px; border-radius:999px; background:rgba(12,25,18,.42); backdrop-filter:blur(10px); border:1px solid rgba(255,255,255,.2); text-transform:uppercase; font-size:9px; letter-spacing:.16em; font-weight:800; color:white; }
.card-number { font-size:10px; letter-spacing:.18em; opacity:.65; }
.card-bottom { position:absolute; bottom:28px; left:28px; right:28px; }
.card-bottom h3 { font-size:clamp(30px,3vw,46px); margin:0 0 8px; letter-spacing:-.045em; line-height:1; }
.card-bottom p { margin:0 0 22px; color:rgba(255,255,255,.72); max-width:360px; font-size:14px; }
.text-link { display:inline-flex; align-items:center; gap:12px; text-transform:uppercase; letter-spacing:.14em; font-size:10px; font-weight:800; }
.text-link .arrow { width:34px; height:34px; border-radius:50%; border:1px solid rgba(255,255,255,.3); display:grid; place-items:center; transition:transform .25s, background .25s; }
.text-link:hover .arrow { transform:translateX(4px); background:white; color:var(--ink); }

.dark-experience { background:var(--forest); color:white; overflow:hidden; }
.dark-experience::before { content:""; position:absolute; width:720px; height:720px; border:1px solid rgba(255,255,255,.08); border-radius:50%; right:-220px; top:-240px; box-shadow:0 0 0 80px rgba(255,255,255,.018), 0 0 0 160px rgba(255,255,255,.012); }
.experience-grid { display:grid; grid-template-columns:1fr 1.08fr; gap:8vw; align-items:center; }
.experience-copy .eyebrow { color:var(--lime); }
.experience-copy .section-title { max-width:620px; }
.experience-copy .lede { color:rgba(255,255,255,.66); }
.stats { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(255,255,255,.14); margin-top:42px; }
.stat { padding:24px 18px 0 0; }
.stat strong { display:block; font-size:34px; letter-spacing:-.04em; }
.stat span { display:block; font-size:9px; letter-spacing:.15em; text-transform:uppercase; color:rgba(255,255,255,.52); margin-top:6px; }
.image-stack { position:relative; min-height:720px; }
.stack-main { position:absolute; inset:0 0 90px 90px; border-radius:28px; overflow:hidden; }
.stack-main img, .stack-float img { width:100%; height:100%; object-fit:cover; }
.stack-float { position:absolute; left:0; bottom:0; width:44%; height:42%; border:10px solid var(--forest); border-radius:24px; overflow:hidden; box-shadow:0 30px 60px rgba(0,0,0,.3); }
.stack-tag { position:absolute; right:28px; top:28px; width:110px; height:110px; border-radius:50%; background:var(--lime); color:var(--ink); display:grid; place-items:center; text-align:center; font-size:9px; letter-spacing:.14em; text-transform:uppercase; font-weight:900; transform:rotate(8deg); }

.editorial-strip { overflow:hidden; padding:28px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:#eff4fa; }
.marquee { display:flex; width:max-content; animation:marquee 34s linear infinite; }
.marquee span { font-family:Georgia,serif; font-style:italic; font-size:clamp(44px,6vw,92px); white-space:nowrap; color:#17314c; opacity:.9; padding-right:48px; }
.marquee b { font-family:Inter, sans-serif; font-style:normal; font-size:.16em; letter-spacing:.22em; vertical-align:middle; margin:0 34px; color:#6d8fb0; }
@keyframes marquee { to { transform:translateX(-50%); } }

.story-grid { display:grid; grid-template-columns:.92fr 1.08fr; gap:30px; align-items:stretch; }
.story-image { min-height:640px; border-radius:var(--radius-lg); overflow:hidden; position:relative; }
.story-image img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }
.story-copy { border-radius:var(--radius-lg); background:#eaf0f7; padding:clamp(40px,6vw,84px); display:flex; flex-direction:column; justify-content:center; }
.story-copy blockquote { margin:0; font-family:Georgia,serif; font-style:italic; font-size:clamp(34px,4vw,62px); line-height:1.05; letter-spacing:-.04em; color:#17314c; }
.story-copy p { max-width:560px; color:#6b7d91; }

.cta-band { margin:0 auto 110px; width:min(calc(100% - 64px), var(--max)); border-radius:34px; min-height:430px; background:linear-gradient(115deg, rgba(4,13,9,.92), rgba(4,13,9,.34)), url('../images/maroon-bells.jpg') center/cover; color:white; display:grid; place-items:center; text-align:center; padding:70px 24px; box-shadow:var(--shadow); }
.cta-band h2 { margin:0; font-size:clamp(48px,6.5vw,98px); line-height:.9; letter-spacing:-.055em; }
.cta-band p { max-width:620px; color:rgba(255,255,255,.72); margin:20px auto 28px; font-size:17px; }

/* SUBPAGE HERO */
.page-hero { min-height:650px; height:72svh; color:white; display:flex; align-items:end; position:relative; overflow:hidden; isolation:isolate; }
.page-hero::before { content:""; position:absolute; inset:0; background:none; z-index:-2; transform:scale(1.02); }
.page-hero-media { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transform:scale(1.02); }
.page-hero::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, rgba(3,12,8,.14), rgba(3,12,8,.78)); }
.page-hero .container { padding-bottom:74px; }
.page-hero h1 { margin:10px 0 12px; font-size:clamp(64px,9vw,138px); line-height:.82; letter-spacing:-.065em; }
.page-hero p { max-width:650px; color:rgba(228,241,255,.86); font-size:18px; }
.page-hero .eyebrow { color:var(--lime); }

/* TRAILS */
.filter-bar { display:flex; flex-wrap:wrap; gap:10px; margin:34px 0 46px; }
.filter-btn { border:1px solid var(--line); background:transparent; color:#415669; min-height:42px; padding:0 18px; border-radius:999px; font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.12em; transition:.25s; }
.filter-btn:hover, .filter-btn.active { background:var(--forest); color:white; border-color:var(--forest); }
.trail-grid { display:grid; grid-template-columns:repeat(2, 1fr); gap:24px; }
.trail-card { background:#fff; border-radius:26px; overflow:hidden; display:grid; grid-template-columns:1.08fr .92fr; min-height:390px; box-shadow:0 15px 45px rgba(12,22,18,.07); transition:transform .35s var(--ease), opacity .25s; }
.trail-card:hover { transform:translateY(-5px); }
.trail-card.hidden { display:none; }
.trail-photo { position:relative; overflow:hidden; min-height:320px; }
.trail-photo img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; transition:transform .7s var(--ease); }
.trail-card:hover img { transform:scale(1.04); }
.trail-body { padding:34px; display:flex; flex-direction:column; justify-content:space-between; }
.trail-body h3 { margin:8px 0 10px; font-size:32px; line-height:1; letter-spacing:-.04em; }
.trail-body p { font-size:14px; color:var(--muted); margin:0 0 24px; }
.trail-meta { display:flex; flex-wrap:wrap; gap:8px; }
.meta-chip { background:#edf3f9; color:#46637f; border-radius:999px; padding:8px 11px; font-size:9px; letter-spacing:.1em; text-transform:uppercase; font-weight:800; }
.safety-note { margin-top:60px; background:var(--forest); color:white; border-radius:28px; padding:38px 42px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:26px; }
.safety-icon { width:52px; height:52px; border-radius:50%; background:var(--lime); color:var(--ink); display:grid; place-items:center; font-size:20px; font-weight:900; }
.safety-note h4 { margin:0 0 6px; font-size:20px; }
.safety-note p { margin:0; color:rgba(255,255,255,.64); font-size:14px; }

/* EXPERIENCES */
.experience-list { display:grid; gap:22px; }
.exp-row { display:grid; grid-template-columns:.8fr 1.2fr; border-radius:30px; overflow:hidden; min-height:510px; background:#eaf1f7; }
.exp-row:nth-child(even) { grid-template-columns:1.2fr .8fr; }
.exp-row:nth-child(even) .exp-media { order:2; }
.exp-media { position:relative; min-height:480px; overflow:hidden; }
.exp-media img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.exp-row:hover .exp-media img { transform:scale(1.035); }
.exp-copy { padding:clamp(42px,5vw,76px); display:flex; flex-direction:column; justify-content:center; }
.exp-copy h2 { font-size:clamp(40px,5vw,72px); margin:10px 0 18px; line-height:.95; letter-spacing:-.05em; }
.exp-copy p { max-width:580px; color:#627588; }
.exp-details { display:flex; flex-wrap:wrap; gap:18px 30px; margin:24px 0 28px; border-top:1px solid rgba(15,27,21,.12); padding-top:18px; }
.exp-details span { font-size:9px; text-transform:uppercase; letter-spacing:.15em; color:#6f8194; }
.exp-details strong { display:block; margin-top:4px; color:#1b3249; font-size:13px; letter-spacing:0; text-transform:none; }

/* BLOG */
.feature-post { display:grid; grid-template-columns:1.15fr .85fr; min-height:620px; border-radius:32px; overflow:hidden; background:var(--forest); color:white; }
.feature-post .post-image { position:relative; min-height:520px; }
.feature-post .post-image img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.feature-post .post-copy { padding:clamp(44px,6vw,86px); display:flex; flex-direction:column; justify-content:center; }
.post-tag { font-size:9px; text-transform:uppercase; letter-spacing:.16em; color:var(--lime); font-weight:800; }
.post-copy h2 { font-size:clamp(42px,5.4vw,80px); line-height:.94; letter-spacing:-.052em; margin:14px 0 18px; }
.post-copy p { color:rgba(255,255,255,.66); max-width:540px; }
.post-meta { font-size:10px; text-transform:uppercase; letter-spacing:.12em; color:rgba(255,255,255,.46); margin-top:12px; }
.blog-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:44px; }
.blog-card { background:white; border-radius:24px; overflow:hidden; box-shadow:0 12px 42px rgba(16,28,21,.07); transition:transform .35s var(--ease); }
.blog-card:hover { transform:translateY(-6px); }
.blog-card .img { height:300px; overflow:hidden; }
.blog-card .img img { width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease); }
.blog-card:hover .img img { transform:scale(1.04); }
.blog-card .body { padding:26px; }
.blog-card h3 { font-size:26px; line-height:1.05; letter-spacing:-.035em; margin:8px 0 12px; }
.blog-card p { font-size:14px; color:var(--muted); margin:0; }
.blog-card .post-meta { color:#8799ab; margin-top:20px; }

/* PLAN */
.plan-grid { display:grid; grid-template-columns:.86fr 1.14fr; gap:80px; align-items:start; }
.sticky-intro { position:sticky; top:120px; }
.plan-panels { display:grid; gap:18px; }
.plan-panel { background:white; border-radius:24px; padding:34px; border:1px solid rgba(15,29,22,.06); }
.plan-panel h3 { margin:4px 0 10px; font-size:26px; letter-spacing:-.035em; }
.plan-panel p { color:var(--muted); font-size:14px; }
.season-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-top:18px; }
.season { padding:18px; border-radius:16px; background:#f0f5fb; }
.season strong { font-size:13px; }
.season span { display:block; color:#73859a; font-size:11px; margin-top:4px; }
.checklist { display:grid; gap:11px; margin-top:18px; }
.checkline { display:flex; gap:12px; align-items:flex-start; font-size:14px; color:#53687d; }
.checkline i { width:20px; height:20px; flex:0 0 20px; border-radius:50%; background:var(--lime); display:grid; place-items:center; color:var(--forest); font-style:normal; font-size:11px; font-weight:900; margin-top:1px; }
.faq { margin-top:18px; border-top:1px solid var(--line); }
.faq-item { border-bottom:1px solid var(--line); }
.faq-q { width:100%; background:none; border:0; padding:20px 0; display:flex; align-items:center; justify-content:space-between; text-align:left; font-weight:750; color:#1c3249; }
.faq-q span:last-child { width:28px; height:28px; border:1px solid var(--line); border-radius:50%; display:grid; place-items:center; transition:transform .3s; }
.faq-item.open .faq-q span:last-child { transform:rotate(45deg); }
.faq-a { max-height:0; overflow:hidden; transition:max-height .35s var(--ease); }
.faq-a p { margin:0 40px 20px 0; color:var(--muted); font-size:14px; }

/* FOOTER */
.footer { background:#081624; color:white; padding:76px 0 28px; }
.footer-top { display:grid; grid-template-columns:1.1fr .9fr; gap:80px; padding-bottom:64px; }
.footer-brand .brand { margin-bottom:22px; }
.footer-brand p { max-width:440px; color:rgba(228,241,255,.62); }
.footer-links { display:grid; grid-template-columns:repeat(3,1fr); gap:30px; }
.footer-links h5 { margin:0 0 18px; font-size:10px; text-transform:uppercase; letter-spacing:.16em; color:rgba(255,255,255,.38); }
.footer-links a { display:block; margin:10px 0; color:rgba(228,241,255,.82); font-size:13px; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.1); padding-top:24px; display:flex; justify-content:space-between; gap:20px; color:rgba(228,241,255,.46); font-size:10px; letter-spacing:.08em; text-transform:uppercase; }
.back-top { position:fixed; z-index:900; right:24px; bottom:24px; width:46px; height:46px; border-radius:50%; border:1px solid rgba(255,255,255,.2); color:white; background:rgba(8,17,13,.75); backdrop-filter:blur(12px); display:grid; place-items:center; opacity:0; pointer-events:none; transform:translateY(10px); transition:.3s; }
.back-top.visible { opacity:1; pointer-events:auto; transform:none; }

/* REVEAL */
.reveal { opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.in-view { opacity:1; transform:none; }

@media (max-width: 1120px) {
  :root { --header-h: 86px; }
  .nav { gap:20px; }
  .nav a { font-size:10px; }
  .hero-content { width:min(680px, 61vw); }
  .adventure-grid { grid-template-columns:1fr 1fr; }
  .adventure-card:last-child { grid-column:1/-1; min-height:500px; }
  .trail-grid { grid-template-columns:1fr; }
  .blog-grid { grid-template-columns:1fr 1fr; }
}

@media (max-width: 860px) {
  .container, .header-inner, .cta-band { width:min(calc(100% - 36px), var(--max)); }
  .site-header { height:82px; }
  .site-header.scrolled { height:70px; }
  .brand-mark { width:38px; height:38px; }
  .menu-toggle { display:block; }
  .nav { position:fixed; inset:0; width:100vw; height:100dvh; min-height:100vh; z-index:1000; background:#081624; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:100px 34px 50px; gap:4px; transform:translate3d(100%,0,0); visibility:hidden; pointer-events:none; transition:transform .55s var(--ease), visibility 0s linear .55s; overflow-y:auto; overscroll-behavior:contain; }
  .nav-open .nav { transform:translate3d(0,0,0); visibility:visible; pointer-events:auto; transition:transform .55s var(--ease), visibility 0s; }
  body.nav-open .site-header,
  body.nav-open .site-header.scrolled {
    height:100dvh;
    background:transparent;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
    border-bottom-color:transparent;
  }
  body.nav-open .header-inner { height:82px; align-items:center; position:absolute; inset:0 0 auto 0; }
  body.nav-open .site-header.scrolled .brand-mark { width:38px; height:38px; transform:none; }
  body.nav-open .brand,
  body.nav-open .menu-toggle { position:relative; z-index:1002; }
  .nav::before { content:"COLORADO / ROCKIES"; position:absolute; left:34px; top:118px; font-size:9px; letter-spacing:.22em; color:var(--lime); }
  .nav a { font-size:clamp(32px,9vw,56px); line-height:1.05; text-transform:none; letter-spacing:-.04em; padding:10px 0; font-weight:700; }
  .nav a::after { bottom:6px; }
  .nav-cta { margin-top:24px; font-size:12px !important; text-transform:uppercase !important; letter-spacing:.13em !important; padding:14px 20px !important; }

  .quad-hero { min-height:760px; }
  .hero-panels { display:block; }
  .hero-panel { position:absolute; inset:0; opacity:0; transition:opacity 1s var(--ease); pointer-events:none; }
  .hero-panel.active { opacity:1; pointer-events:auto; }
  .hero-panel::after { background:linear-gradient(180deg,rgba(0,0,0,.12),rgba(2,9,6,.7)); }
  .panel-meta { left:18px; bottom:92px; }
  .panel-index { display:none; }
  .hero-shade { background:linear-gradient(180deg, rgba(3,10,7,.1), rgba(3,10,7,.2) 45%, rgba(3,10,7,.74)); }
  .hero-content { left:18px; right:18px; top:auto; bottom:174px; transform:none; width:auto; }
  .hero-content h1 { font-size:clamp(62px,18vw,108px); }
  .hero-content h1 .serif { padding-left:.2em; }
  .hero-content p { font-size:15px; max-width:500px; }
  .hero-actions { margin-top:22px; }
  .hero-ui { right:18px; bottom:36px; }
  .scroll-cue { display:none; }

  .section { padding:78px 0; }
  .intro-grid, .experience-grid, .story-grid, .footer-top, .plan-grid { grid-template-columns:1fr; gap:38px; }
  .intro-note { max-width:none; }
  .intro-copy p { font-size:clamp(34px,8vw,52px); }
  .cards-head { align-items:flex-start; flex-direction:column; }
  .adventure-grid { grid-template-columns:1fr; }
  .adventure-card, .adventure-card:last-child { grid-column:auto; min-height:540px; }
  .experience-copy { order:1; }
  .image-stack { order:2; min-height:610px; }
  .story-image { min-height:520px; }
  .cta-band { margin-bottom:72px; }

  .page-hero { min-height:560px; height:68svh; }
  .page-hero .container { padding-bottom:44px; }
  .trail-card { grid-template-columns:1fr; }
  .trail-photo { min-height:360px; }
  .safety-note { grid-template-columns:auto 1fr; }
  .safety-note .btn { grid-column:1/-1; width:max-content; }
  .exp-row, .exp-row:nth-child(even) { grid-template-columns:1fr; }
  .exp-row:nth-child(even) .exp-media { order:0; }
  .feature-post { grid-template-columns:1fr; }
  .feature-post .post-image { min-height:430px; }
  .blog-grid { grid-template-columns:1fr; }
  .sticky-intro { position:static; }
  .footer-links { gap:20px; }
}

@media (max-width: 560px) {
  .container, .header-inner, .cta-band { width:min(calc(100% - 28px), var(--max)); }
  .brand-copy strong { font-size:14px; }
  .brand-copy span { font-size:7px; }
  .hero-content { bottom:184px; }
  .hero-content h1 { font-size:clamp(58px,19vw,88px); }
  .hero-content p { font-size:14px; max-width:330px; }
  .hero-actions { gap:8px; flex-wrap:wrap; }
  .btn { min-height:48px; padding:0 17px; font-size:9px; }
  .hero-progress { width:92px; }
  .panel-meta { display:none; }
  .section-title { font-size:clamp(38px,12vw,56px); }
  .lede { font-size:16px; }
  .adventure-card { min-height:470px; }
  .card-bottom { left:22px; right:22px; bottom:22px; }
  .image-stack { min-height:500px; }
  .stack-main { inset:0 0 70px 36px; }
  .stack-float { width:52%; height:38%; }
  .stats { grid-template-columns:1fr; gap:18px; }
  .stat { border-bottom:1px solid rgba(255,255,255,.1); padding-bottom:18px; }
  .story-copy { padding:34px 26px; }
  .page-hero h1 { font-size:clamp(58px,17vw,88px); }
  .trail-body { padding:26px; }
  .trail-photo { min-height:300px; }
  .safety-note { padding:28px; grid-template-columns:1fr; }
  .safety-note .btn { width:100%; }
  .exp-media { min-height:380px; }
  .exp-copy { padding:36px 26px; }
  .feature-post .post-image { min-height:360px; }
  .feature-post .post-copy { padding:38px 26px; }
  .blog-card .img { height:250px; }
  .season-grid { grid-template-columns:1fr; }
  .plan-panel { padding:28px 24px; }
  .footer-links { grid-template-columns:1fr 1fr; }
  .footer-links > div:last-child { grid-column:1/-1; }
  .footer-bottom { flex-direction:column; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior:auto !important; animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
}
