:root {
  --green: #153825;
  --green-deep: #0d291b;
  --green-soft: #214d34;
  --gold: #b98930;
  --gold-dark: #936b20;
  --ink: #17211b;
  --muted: #657067;
  --line: #dfe4df;
  --wash: #f4f6f2;
  --paper: #fffdf8;
  --white: #ffffff;
  --max: 1280px;
  --radius: 16px;
  --shadow: 0 18px 50px rgba(13, 41, 27, .10);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--white);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.nav-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 4px; }

.container { width: min(calc(100% - 48px), var(--max)); margin-inline: auto; }
.narrow { width: min(calc(100% - 48px), 860px); margin-inline: auto; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position: fixed; z-index: 9999; left: 16px; top: -80px; padding: 10px 14px; background: var(--green); color: #fff; text-decoration: none; border-radius: 6px; }
.skip-link:focus { top: 16px; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(21,56,37,.08);
}
.header-inner { min-height: 80px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.brand { display: inline-flex; align-items: center; width: 132px; text-decoration: none; }
.brand img { width: 100%; height: auto; }
.primary-nav { display: flex; align-items: center; gap: 28px; }
.primary-nav a { position: relative; text-decoration: none; font-size: 13px; font-weight: 750; color: var(--green-deep); }
.primary-nav a:not(.nav-cta)::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -9px; height: 2px; background: var(--gold); transition: right .2s ease; }
.primary-nav a:hover::after, .primary-nav a.is-active::after { right: 0; }
.nav-cta { padding: 11px 18px; border: 1px solid var(--green); border-radius: 999px; }
.nav-cta:hover, .nav-cta.is-active { background: var(--green); color: #fff; }
.nav-toggle { display: none; width: 42px; height: 42px; border: 0; background: transparent; cursor: pointer; }
.nav-toggle span:not(.sr-only) { display: block; width: 23px; height: 2px; margin: 6px auto; background: var(--green); transition: transform .2s ease; }

.eyebrow { margin: 0 0 14px; color: var(--gold-dark); font-size: 11px; font-weight: 850; letter-spacing: .19em; text-transform: uppercase; }
h1, h2, h3 { color: var(--green-deep); margin: 0; font-weight: 760; letter-spacing: -.04em; }
h1 { font-size: clamp(52px, 7vw, 96px); line-height: .96; }
h2 { font-size: clamp(38px, 5.2vw, 70px); line-height: 1; }
h3 { font-size: clamp(24px, 3vw, 38px); line-height: 1.06; }
p { margin-top: 0; }
.lead { font-size: clamp(19px, 2vw, 23px); line-height: 1.55; color: #47544b; }
.section-copy { color: #4f5b53; font-size: 18px; max-width: 760px; }

.button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; gap: 9px; padding: 0 22px; border-radius: 999px; font-size: 13px; font-weight: 800; text-decoration: none; transition: transform .2s ease, background-color .2s ease, color .2s ease, border-color .2s ease; }
.button:hover { transform: translateY(-1px); }
.button-primary { background: var(--green); color: #fff; border: 1px solid var(--green); }
.button-primary:hover { background: var(--green-deep); }
.button-gold { background: var(--gold); color: #fff; border: 1px solid var(--gold); }
.button-gold:hover { background: var(--gold-dark); }
.button-quiet { border: 1px solid rgba(21,56,37,.22); color: var(--green); background: rgba(255,255,255,.74); }
.button-quiet:hover { border-color: var(--gold); }
.button-white { border: 1px solid rgba(255,255,255,.42); color: #fff; background: rgba(255,255,255,.08); }
.button-white:hover { background: #fff; color: var(--green); }
.text-link { display: inline-flex; align-items: center; gap: 8px; color: var(--green); text-decoration: none; font-weight: 800; font-size: 14px; }
.text-link::after { content: "→"; transition: transform .2s ease; }
.text-link:hover::after { transform: translateX(4px); }

.hero-home { position: relative; min-height: calc(100vh - 80px); min-height: 720px; display: grid; align-items: end; overflow: hidden; background: var(--green-deep); }
.hero-home .hero-media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-home::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(8,26,17,.84) 0%, rgba(8,26,17,.57) 45%, rgba(8,26,17,.14) 78%), linear-gradient(0deg, rgba(8,26,17,.44), rgba(8,26,17,.04) 45%); }
.hero-home-inner { position: relative; z-index: 2; padding: 90px 0 82px; color: #fff; }
.hero-home .eyebrow { color: #e4c67f; }
.hero-home h1 { color: #fff; max-width: 950px; font-size: clamp(64px, 9vw, 122px); }
.hero-home .hero-copy { max-width: 720px; margin: 26px 0 0; font-size: clamp(18px, 2vw, 23px); color: rgba(255,255,255,.86); line-height: 1.55; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.hero-caption { position: absolute; z-index: 2; right: 28px; bottom: 26px; color: rgba(255,255,255,.68); font-size: 11px; letter-spacing: .04em; }

.route-intro { padding: 112px 0 96px; background: #fff; }
.split-heading { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(280px,.62fr); gap: 80px; align-items: end; }
.split-heading .section-copy { margin: 0; }

.route-stage { padding: 0 0 120px; background: #fff; }
.route-shell { overflow: hidden; border-radius: 22px; background: var(--green-deep); box-shadow: var(--shadow); }
.route-visual { position: relative; min-height: 490px; }
.route-visual img { width: 100%; height: 490px; object-fit: cover; }
.route-visual::after { content:""; position:absolute; inset:0; background: linear-gradient(90deg, rgba(7,23,15,.84) 0%, rgba(7,23,15,.52) 45%, rgba(7,23,15,.06) 82%); }
.route-detail { position: absolute; z-index: 2; left: 48px; bottom: 46px; max-width: 600px; color:#fff; }
.route-detail .eyebrow { color: #e4c67f; }
.route-detail h3 { color:#fff; font-size: clamp(34px, 4.6vw, 62px); }
.route-detail p:last-child { margin: 18px 0 0; max-width: 590px; color: rgba(255,255,255,.82); font-size: 17px; }
.route-track { display: grid; grid-template-columns: repeat(7, minmax(145px, 1fr)); overflow-x: auto; background: #fff; scrollbar-width: thin; }
.route-tab { position: relative; min-height: 92px; border: 0; border-right: 1px solid var(--line); background:#fff; text-align:left; padding: 20px 20px 18px; color: var(--green-deep); cursor:pointer; }
.route-tab:last-child { border-right:0; }
.route-tab small { display:block; color: var(--gold-dark); font-size:10px; font-weight:850; letter-spacing:.14em; margin-bottom:7px; }
.route-tab strong { display:block; white-space:nowrap; font-size:15px; }
.route-tab::after { content:""; position:absolute; left:20px; right:20px; bottom:0; height:3px; background:transparent; }
.route-tab.is-active { background: var(--paper); }
.route-tab.is-active::after { background: var(--gold); }

.experience-band { padding: 118px 0; background: var(--wash); border-block: 1px solid var(--line); }
.pillars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-top: 58px; background: var(--line); border: 1px solid var(--line); }
.pillar { min-height: 270px; padding: 34px; background: #fff; }
.pillar-number { display:block; margin-bottom: 44px; color: var(--gold-dark); font-size: 11px; letter-spacing: .16em; font-weight:800; }
.pillar h3 { font-size: 30px; }
.pillar p { margin: 16px 0 0; color: var(--muted); }

.editorial-split { display:grid; grid-template-columns: 1.1fr .9fr; min-height: 560px; }
.editorial-media { min-height: 560px; overflow:hidden; }
.editorial-media img { width:100%; height:100%; object-fit:cover; }
.editorial-content { display:flex; align-items:center; padding: 70px clamp(32px,6vw,96px); background: var(--green); color:#fff; }
.editorial-content h2 { color:#fff; }
.editorial-content .eyebrow { color:#e4c67f; }
.editorial-content p:not(.eyebrow) { max-width:610px; margin:24px 0 0; color:rgba(255,255,255,.8); font-size:18px; }
.editorial-content .button { margin-top:30px; }

.feature-links { padding: 112px 0; background: #fff; }
.feature-link-row { display:grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top:52px; }
.feature-link { position:relative; min-height:330px; overflow:hidden; border-radius:18px; text-decoration:none; background:var(--green); }
.feature-link img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; transition:transform .45s ease; }
.feature-link::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(8,26,17,.80), rgba(8,26,17,.08) 70%); }
.feature-link-content { position:absolute; z-index:2; left:30px; right:30px; bottom:26px; color:#fff; }
.feature-link-content span { color:#e6c87f; text-transform:uppercase; letter-spacing:.15em; font-size:10px; font-weight:800; }
.feature-link-content h3 { color:#fff; margin-top:8px; font-size:34px; }
.feature-link:hover img { transform:scale(1.025); }

.story-strip { padding: 112px 0; background: var(--paper); border-top:1px solid var(--line); }
.story-header { display:flex; align-items:end; justify-content:space-between; gap:30px; }
.story-row { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:48px; }
.story-card { border-top:1px solid var(--line); padding-top:16px; text-decoration:none; }
.story-card-image { aspect-ratio: 16/9; overflow:hidden; border-radius:12px; background:var(--wash); }
.story-card img { width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.story-card:hover img { transform:scale(1.02); }
.story-card .eyebrow { margin-top:20px; }
.story-card h3 { font-size:28px; }
.story-card p:last-child { color:var(--muted); margin:12px 0 0; }

.final-cta { padding: 105px 0; background: var(--green-deep); color:#fff; }
.final-cta-inner { display:flex; justify-content:space-between; gap:60px; align-items:end; }
.final-cta h2 { color:#fff; max-width:760px; }
.final-cta .eyebrow { color:#e4c67f; }

.page-hero { padding: 108px 0 84px; background: var(--paper); border-bottom:1px solid var(--line); }
.page-hero h1 { max-width:1050px; font-size:clamp(54px,7.5vw,102px); }
.page-hero .lead { max-width:780px; margin:28px 0 0; }
.page-hero-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:30px; }

.fullbleed-image { min-height: 530px; position:relative; overflow:hidden; background:var(--green-deep); }
.fullbleed-image img { width:100%; height:530px; object-fit:cover; }
.fullbleed-image::after { content:""; position:absolute; inset:0; box-shadow: inset 0 0 0 1px rgba(255,255,255,.04); }

.route-page { padding: 110px 0; }
.route-chapters { display:grid; gap:0; border-top:1px solid var(--line); }
.route-chapter { display:grid; grid-template-columns: 120px .68fr 1fr; gap:36px; align-items:start; padding:46px 0; border-bottom:1px solid var(--line); }
.route-chapter-number { color:var(--gold-dark); font-size:12px; font-weight:850; letter-spacing:.16em; }
.route-chapter h2 { font-size:clamp(34px,4vw,54px); }
.route-chapter p { color:var(--muted); font-size:17px; margin:4px 0 0; }

.content-section { padding:110px 0; }
.content-section.alt { background:var(--wash); border-block:1px solid var(--line); }
.content-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:28px; margin-top:54px; }
.landscape-card { display:grid; grid-template-columns: .95fr 1.05fr; min-height:265px; overflow:hidden; border:1px solid var(--line); border-radius:16px; background:#fff; }
.landscape-card-media { min-height:265px; overflow:hidden; }
.landscape-card-media img { width:100%; height:100%; object-fit:cover; }
.landscape-card-body { padding:30px; align-self:center; }
.landscape-card-body h3 { font-size:28px; }
.landscape-card-body p { color:var(--muted); margin:14px 0 0; }
.landscape-card-body .text-link { margin-top:18px; }

.filter-bar { display:flex; flex-wrap:wrap; gap:9px; margin-top:38px; }
.filter-chip { appearance:none; border:1px solid #ccd4cd; background:#fff; color:var(--green); padding:9px 14px; border-radius:999px; font-weight:750; font-size:12px; cursor:pointer; }
.filter-chip.is-active, .filter-chip:hover { background:var(--green); color:#fff; border-color:var(--green); }

.plan-patterns { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:48px; }
.plan-pattern { border:1px solid var(--line); border-radius:16px; padding:30px; background:#fff; }
.plan-pattern strong { display:block; color:var(--gold-dark); font-size:11px; letter-spacing:.15em; text-transform:uppercase; margin-bottom:28px; }
.plan-pattern h3 { font-size:29px; }
.plan-pattern ul { margin:20px 0 0; padding:0; list-style:none; color:var(--muted); }
.plan-pattern li { padding:8px 0; border-top:1px solid var(--line); }

.notice { margin-top:40px; padding:20px 22px; border-left:3px solid var(--gold); background:var(--paper); color:#566158; }

.article-wrap { padding:90px 0 120px; }
.article-header { max-width:930px; }
.article-header h1 { font-size:clamp(52px,7vw,92px); }
.article-deck { max-width:760px; margin:26px 0 0; font-size:21px; color:#526057; }
.article-meta { margin-top:26px; font-size:12px; color:var(--muted); text-transform:uppercase; letter-spacing:.12em; font-weight:750; }
.article-image { margin:54px 0; aspect-ratio:16/8.5; overflow:hidden; border-radius:18px; background:var(--wash); }
.article-image img { width:100%; height:100%; object-fit:cover; }
.article-body { max-width:800px; }
.article-body h2 { font-size:40px; margin:52px 0 20px; }
.article-body p, .article-body li { font-size:18px; color:#465248; }
.article-body ul { padding-left:22px; }

.contact-layout { display:grid; grid-template-columns:.75fr 1.25fr; gap:70px; padding:100px 0 120px; }
.contact-copy h2 { font-size:50px; }
.contact-copy p { color:var(--muted); font-size:18px; margin-top:22px; }
.contact-links { display:grid; gap:10px; margin-top:30px; }
.contact-links a { font-weight:800; color:var(--green); text-decoration:none; }
.contact-form { border:1px solid var(--line); border-radius:18px; padding:32px; background:#fff; box-shadow:var(--shadow); }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.form-field { display:grid; gap:7px; }
.form-field.full { grid-column:1/-1; }
.form-field label { font-size:12px; font-weight:800; color:var(--green-deep); }
.form-field input, .form-field select, .form-field textarea { width:100%; border:1px solid #cad2cb; border-radius:10px; padding:12px 13px; background:#fff; color:var(--ink); }
.form-field textarea { min-height:160px; resize:vertical; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { border-color:var(--gold); outline:0; box-shadow:0 0 0 3px rgba(185,137,48,.12); }
.form-actions { margin-top:20px; }
.form-status { margin-bottom:20px; padding:13px 15px; border-radius:10px; font-size:14px; }
.form-status.success { background:#edf5ef; color:#1a5733; }
.form-status.error { background:#fff0ed; color:#822f22; }
.honeypot { position:absolute!important; left:-9999px!important; }

.credits-list { display:grid; gap:0; border-top:1px solid var(--line); margin-top:44px; }
.credit-row { display:grid; grid-template-columns:1.2fr .7fr .55fr 1fr; gap:25px; padding:26px 0; border-bottom:1px solid var(--line); }
.credit-row p { margin:0; color:var(--muted); font-size:14px; }
.credit-row strong { color:var(--green-deep); }
.credit-row a { color:var(--green); }

.site-footer { padding: 68px 0 26px; border-top: 1px solid var(--line); background: #fff; }
.footer-top { display:grid; grid-template-columns:1fr .8fr; gap:70px; align-items:start; }
.footer-brand-block { max-width:390px; }
.footer-logo { width:160px; height:auto; }
.footer-brand-block p { margin:20px 0 0; color:var(--muted); }
.footer-nav { display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.footer-nav div { display:grid; gap:8px; }
.footer-nav strong { font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-dark); margin-bottom:8px; }
.footer-nav a { color:#536057; text-decoration:none; font-size:14px; }
.footer-nav a:hover { color:var(--green); }
.footer-bottom { display:flex; justify-content:space-between; gap:30px; margin-top:48px; padding-top:22px; border-top:1px solid var(--line); }
.footer-bottom p { margin:0; color:var(--muted); font-size:12px; }
.footer-bottom a { color:inherit; }

.error-page { min-height:70vh; display:grid; align-items:center; }
.error-inner { padding-block:100px; }
.error-inner h1 { font-size:clamp(46px,7vw,84px); }
.error-inner p:not(.eyebrow) { margin:26px 0; color:var(--muted); font-size:18px; }

@media (max-width: 1040px) {
  .primary-nav { gap:20px; }
  .primary-nav a { font-size:12px; }
  .route-tab { min-width:150px; }
  .landscape-card { grid-template-columns:1fr; }
  .landscape-card-media { min-height:220px; }
  .plan-patterns { grid-template-columns:1fr; }
}

@media (max-width: 900px) {
  .container, .narrow { width:min(calc(100% - 32px), var(--max)); }
  .header-inner { min-height:72px; }
  .brand { width:118px; }
  .nav-toggle { display:block; }
  .primary-nav { position:fixed; inset:72px 0 0 0; display:none; flex-direction:column; align-items:stretch; gap:0; padding:18px 20px 32px; background:#fff; overflow:auto; }
  .primary-nav.is-open { display:flex; }
  .primary-nav a { padding:15px 2px; font-size:15px; border-bottom:1px solid var(--line); }
  .primary-nav a::after { display:none; }
  .primary-nav .nav-cta { margin-top:12px; text-align:center; padding:13px 18px; border-bottom:1px solid var(--green); }
  .hero-home { min-height:650px; }
  .hero-home::before { background:linear-gradient(90deg, rgba(8,26,17,.82), rgba(8,26,17,.48)), linear-gradient(0deg, rgba(8,26,17,.45), transparent); }
  .hero-home-inner { padding:72px 0 64px; }
  .split-heading { grid-template-columns:1fr; gap:28px; }
  .route-detail { left:28px; right:28px; bottom:32px; }
  .pillars { grid-template-columns:1fr; }
  .pillar { min-height:unset; }
  .editorial-split { grid-template-columns:1fr; }
  .editorial-media { min-height:390px; }
  .editorial-content { min-height:420px; }
  .feature-link-row, .story-row, .content-grid-2 { grid-template-columns:1fr; }
  .feature-link { min-height:280px; }
  .final-cta-inner { display:grid; gap:30px; }
  .route-chapter { grid-template-columns:70px 1fr; }
  .route-chapter p { grid-column:2; }
  .contact-layout { grid-template-columns:1fr; gap:42px; }
  .footer-top { grid-template-columns:1fr; }
  .credit-row { grid-template-columns:1fr 1fr; }
}

@media (max-width: 560px) {
  h1 { font-size:clamp(48px,14vw,68px); }
  h2 { font-size:clamp(36px,11vw,52px); }
  .hero-home h1 { font-size:clamp(58px,17vw,82px); }
  .hero-caption { display:none; }
  .route-intro, .experience-band, .feature-links, .story-strip, .content-section, .route-page { padding-block:80px; }
  .route-stage { padding-bottom:84px; }
  .route-visual, .route-visual img { min-height:440px; height:440px; }
  .route-detail { left:22px; right:22px; }
  .route-track { margin-right:-16px; }
  .pillar { padding:28px 24px; }
  .editorial-media { min-height:300px; }
  .editorial-content { padding:58px 24px; }
  .feature-link { min-height:240px; }
  .feature-link-content { left:22px; right:22px; bottom:22px; }
  .story-header { display:grid; }
  .page-hero { padding:78px 0 62px; }
  .fullbleed-image, .fullbleed-image img { min-height:360px; height:360px; }
  .route-chapter { grid-template-columns:1fr; gap:8px; padding:34px 0; }
  .route-chapter p { grid-column:auto; }
  .form-grid { grid-template-columns:1fr; }
  .form-field.full { grid-column:auto; }
  .contact-form { padding:22px; }
  .credit-row { grid-template-columns:1fr; gap:8px; }
  .footer-nav { grid-template-columns:1fr 1fr; }
  .footer-bottom { flex-direction:column; gap:8px; }
}

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

/* Phase 2 interaction polish */
.route-visual [data-route-image] { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.route-tab:focus-visible { outline-offset:-4px; z-index:2; }
.route-tab[aria-selected="true"] strong { color:var(--green-deep); }
@media (hover:hover) {
  .route-tab:hover { background:var(--paper); }
}
