:root {
  --ink: #10231f;
  --forest: #0b2f2a;
  --forest-2: #16483e;
  --lime: #d9ff63;
  /* --orange reads well on the forest surfaces but only reaches 2.3-2.7:1 on cream,
     paper and mist, so it fails AA everywhere it was used for small caps label text.
     --accent-ink is the same hue darkened until it clears 4.5:1 on all three. Use
     --orange on dark surfaces and for graphics, --accent-ink for text on light. */
  --orange: #f37b43;
  --accent-ink: #b8420f;
  --cream: #f5f2e9;
  --paper: #fffdf8;
  --mist: #e6ece7;
  --muted: #5b6a65;
  --line: rgba(16, 35, 31, .14);
  --shadow: 0 18px 55px rgba(11, 47, 42, .12);
  --radius: 22px;
  --max: 1240px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--cream); font: 16px/1.6 Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration-thickness: .08em; text-underline-offset: .2em; }
button, input, select { font: inherit; }
button, .button { cursor: pointer; }
/* Two-tone ring: the dark outline carries the indicator on light surfaces, the lime
   halo carries it on the forest ones. A single accent colour cannot clear 3:1 on both. */
:where(a, button, input, select):focus-visible { outline: 3px solid var(--accent-ink); outline-offset: 2px; box-shadow: 0 0 0 6px rgba(217, 255, 99, .65); }
h1, h2, h3 { margin: 0 0 .5em; font-family: Georgia, "Times New Roman", serif; font-weight: 500; line-height: 1.04; letter-spacing: -.035em; }
h1 { font-size: clamp(3rem, 7vw, 6.8rem); }
h2 { font-size: clamp(2.1rem, 4.5vw, 4rem); }
h3 { font-size: clamp(1.35rem, 2vw, 1.8rem); }
p { margin: 0 0 1.2em; }

.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 1000; padding: .7rem 1rem; background: var(--lime); color: var(--ink); }
.skip-link:focus { top: 1rem; }
.site-header { position: sticky; z-index: 40; top: 0; min-height: 66px; display: flex; align-items: center; gap: 1.5rem; padding: .7rem max(4vw, calc((100vw - var(--max)) / 2)); background: var(--forest); color: white; box-shadow: 0 1px rgba(255,255,255,.08); }
.site-header nav { margin-left: auto; display: flex; align-items: center; gap: clamp(.75rem, 1.6vw, 1.55rem); }
.site-header nav a { padding: .25rem 0; color: rgba(255,255,255,.78); text-decoration: none; font-size: .82rem; font-weight: 750; letter-spacing: .02em; border-bottom: 2px solid transparent; }
.site-header nav a:hover, .site-header nav a:focus-visible, .site-header nav a[aria-current="page"] { color: var(--lime); border-color: currentColor; }
.quick-nav { display: flex; align-items: center; justify-content: center; gap: clamp(1rem, 3vw, 3rem); min-height: 40px; padding: .45rem max(4vw, calc((100vw - var(--max)) / 2)); overflow-x: auto; background: #071f1c; color: rgba(255,255,255,.68); scrollbar-width: thin; }
.quick-nav a { flex: 0 0 auto; color: inherit; text-decoration: none; font-size: .72rem; white-space: nowrap; }
.quick-nav a:hover, .quick-nav a:focus-visible { color: white; }
.quick-nav a > span { margin-right: .35rem; color: var(--orange); font-size: .61rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.quick-nav strong { margin-right: .15rem; color: var(--lime); font-size: .78rem; }
.brand { display: inline-flex; align-items: center; gap: .7rem; color: white; text-decoration: none; font-weight: 800; letter-spacing: -.03em; white-space: nowrap; }
.brand > span:last-child > span { color: var(--lime); }
.brand-mark { position: relative; width: 34px; height: 34px; display: inline-block; border: 2px solid currentColor; border-radius: 50%; }
.brand-mark::before, .brand-mark::after { content: ""; position: absolute; top: 13px; width: 9px; height: 9px; border: 2px solid currentColor; border-radius: 50%; }
.brand-mark::before { left: 2px; } .brand-mark::after { right: 2px; }
.brand-mark span:first-child { position: absolute; width: 17px; height: 2px; background: currentColor; left: 7px; top: 11px; transform: rotate(-48deg); }
.brand-mark span:last-child { position: absolute; width: 12px; height: 2px; background: currentColor; left: 11px; top: 18px; transform: rotate(48deg); }
.button { appearance: none; display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: .8rem 1.2rem; border: 1px solid var(--lime); border-radius: 99px; background: var(--lime); color: var(--ink); text-decoration: none; font-size: .82rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.button { transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, color .18s ease, border-color .18s ease; }
.button:hover { transform: translateY(-1px); box-shadow: 0 8px 24px rgba(217,255,99,.18); }
.button.small { min-height: 40px; padding: .55rem .9rem; font-size: .72rem; }
.button.ghost { background: transparent; color: white; border-color: rgba(255,255,255,.42); }
.button.ghost.dark { color: var(--forest); border-color: var(--forest); }
.page-hero .button.ghost.dark { color: white; border-color: rgba(255,255,255,.42); }

.hero { position: relative; overflow: hidden; display: flex; align-items: center; min-height: 550px; padding: clamp(2.8rem, 5vw, 4.4rem) max(4vw, calc((100vw - var(--max)) / 2)); background: var(--forest); color: white; }
.hero-photo, .hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-photo { object-fit: cover; object-position: center; }
.hero-shade { background: linear-gradient(90deg, rgba(3,23,20,.98) 0%, rgba(5,29,25,.94) 32%, rgba(5,29,25,.66) 56%, rgba(5,29,25,.16) 82%), linear-gradient(0deg, rgba(3,23,20,.5), transparent 60%); }
.hero-copy { position: relative; z-index: 2; width: min(57%, 720px); }
.hero h1 { font-size: clamp(3.25rem, 5vw, 5.25rem); }
.hero h1 em { color: var(--lime); font-weight: inherit; }
.hero .lede { max-width: 650px; color: rgba(255,255,255,.8); font-size: clamp(1.02rem, 1.55vw, 1.18rem); }
.hero-modes { display: flex; flex-wrap: wrap; gap: .45rem; margin: 1.15rem 0 0; }
.hero-modes span { padding: .28rem .62rem; border: 1px solid rgba(255,255,255,.26); border-radius: 99px; background: rgba(7,31,28,.42); color: rgba(255,255,255,.82); font-size: .68rem; font-weight: 750; }
.kicker { display: flex; align-items: center; gap: .65rem; margin-bottom: 1.4rem; color: var(--accent-ink); font-size: .76rem; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.kicker span { width: 26px; height: 2px; background: currentColor; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.35rem; }
.hero-trust { display: flex; flex-wrap: wrap; gap: 1.2rem; margin-top: 1.45rem; color: rgba(255,255,255,.66); font-size: .8rem; }
.hero-trust strong { display: block; color: white; font-size: 1.05rem; }
.topo { position: absolute; inset: 0 0 0 48%; opacity: .08; background: repeating-radial-gradient(ellipse at 80% 35%, transparent 0 35px, var(--lime) 37px 39px, transparent 41px 65px); transform: rotate(-9deg) scale(1.3); }
.hero-panel { position: relative; z-index: 1; align-self: center; padding: 1rem; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.16); border-radius: 26px; backdrop-filter: blur(12px); box-shadow: 0 30px 80px rgba(0,0,0,.22); transform: rotate(1deg); }
.panel-map, .mini-map { position: relative; overflow: hidden; min-height: 330px; border-radius: 22px; background: #dce8dd; }
.panel-map { height: 190px; min-height: 190px; }
.panel-map svg { height: 100%; min-height: 0; }
.hero-panel h2 { margin-bottom: .35rem; font-size: clamp(2rem, 3.5vw, 3.15rem); }
.hero-panel .eyebrow { margin: .7rem 0 .25rem; }
.trip-board-band { position: relative; display: grid; grid-template-columns: minmax(260px, .75fr) minmax(0, 1.55fr); gap: 2rem; align-items: center; padding: 2.2rem max(4vw, calc((100vw - var(--max)) / 2)); overflow: hidden; border-bottom: 1px solid var(--line); background: var(--mist); }
.trip-board-intro h2 { font-size: clamp(2.2rem, 3.5vw, 3.5rem); }
.trip-board-intro p:last-child { max-width: 440px; margin-bottom: 0; color: var(--muted); }
.trip-board-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: var(--line); box-shadow: var(--shadow); }
.trip-board-grid a { position: relative; min-height: 92px; padding: .75rem .85rem; background: var(--paper); color: var(--ink); text-decoration: none; }
.trip-board-grid a::after { content: ""; position: absolute; right: .55rem; top: .55rem; width: 7px; height: 7px; border: 2px solid var(--lime); border-radius: 50%; }
.trip-board-grid a:hover, .trip-board-grid a:focus-visible { background: var(--forest); color: white; }
.trip-board-grid span, .trip-board-grid strong, .trip-board-grid small { display: block; }
.trip-board-grid span { color: var(--accent-ink); font-size: .61rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.trip-board-grid strong { margin-top: .2rem; color: var(--lime); font-size: 1.25rem; line-height: 1.1; }
.trip-board-grid a:not(:hover):not(:focus-visible) strong { color: var(--forest); }
.trip-board-grid small { color: var(--muted); font-size: .68rem; }
.trip-board-grid a:hover small, .trip-board-grid a:focus-visible small { color: rgba(255,255,255,.7); }
.trip-board-report { position: absolute; left: max(4vw, calc((100vw - var(--max)) / 2)); bottom: .7rem; color: var(--forest-2); font-size: .68rem; font-weight: 750; }
.panel-map svg, .mini-map svg { width: 100%; height: 100%; min-height: inherit; }
.panel-map svg .map-grid, .mini-map svg .map-grid { fill: none; stroke: var(--forest); stroke-width: 1; opacity: .18; }
.panel-map svg .map-route, .mini-map svg .map-route { fill: none; stroke: var(--orange); stroke-width: 7; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 3px 0 rgba(255,255,255,.8)); }
.panel-map svg .map-route.faint, .mini-map svg .map-route.faint { opacity: .65; }
.panel-map svg circle, .mini-map svg circle { fill: var(--lime); stroke: var(--forest); stroke-width: 4; }
.panel-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin: .65rem 0; background: rgba(255,255,255,.12); }
.stat { padding: .8rem; background: var(--forest); }
.stat strong, .stat span, .stat small { display: block; }
.stat strong { color: var(--lime); font-size: 1.25rem; line-height: 1.1; }
.stat span { margin-top: .3rem; color: white; font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; }
.stat small { color: rgba(255,255,255,.58); }

.planner-section, .featured-destinations, .destination-index, .destination-summary, .discipline-section, .route-table-section, .report-grid, .prose, .source-list, .guide-grid, .route-tools, .next-panel { padding: clamp(4rem, 8vw, 7rem) max(4vw, calc((100vw - var(--max)) / 2)); }
.planner-section { background: var(--paper); }
.section-heading { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: end; margin-bottom: 2.5rem; }
.section-heading p { max-width: 560px; color: var(--muted); }
.planner { display: grid; grid-template-columns: repeat(6, 1fr) auto; gap: .7rem; padding: 1rem; border-radius: 18px; background: var(--forest); box-shadow: var(--shadow); }
.planner label, .filter-row label { color: rgba(255,255,255,.65); font-size: .68rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.planner select, .planner input, .filter-row input, .route-tools input { display: block; width: 100%; min-height: 48px; margin-top: .25rem; padding: .7rem .8rem; border: 1px solid rgba(255,255,255,.2); border-radius: 10px; color: white; background: rgba(255,255,255,.09); outline: none; }
.planner select:focus, .planner input:focus, .route-tools input:focus { border-color: var(--lime); box-shadow: 0 0 0 3px rgba(217,255,99,.16); }
.planner .button { align-self: end; border-radius: 10px; }
.match-results { margin-top: 1.5rem; }
.match-results[hidden] { display: none; }
.match-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .9rem; }
.match-card { overflow: hidden; display: grid; grid-template-columns: 140px 1fr; background: var(--cream); border: 1px solid var(--line); border-radius: 16px; }
.match-card img { width: 100%; height: 100%; min-height: 170px; object-fit: cover; }
.match-card > div { padding: 1rem; }
.match-actions { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: 1rem; }
.match-actions a { display: inline-flex; align-items: center; min-height: 44px; padding: .45rem .7rem; border: 1px solid var(--forest); border-radius: 99px; color: var(--forest); text-decoration: none; font-size: .72rem; font-weight: 800; }
.match-actions a:hover, .match-actions a:focus-visible { background: var(--forest); color: white; }

.split-intro { display: grid; grid-template-columns: .9fr 1.1fr; gap: 4rem; align-items: end; padding: clamp(4rem, 7vw, 6rem) max(4vw, calc((100vw - var(--max)) / 2)); }
.split-intro p { color: var(--muted); font-size: 1.1rem; }
.featured-destinations { padding-top: 0; }
.section-bar { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 2rem; }
.section-bar a, .arrow-link { color: var(--forest-2); font-size: .82rem; font-weight: 850; text-decoration: none; text-transform: uppercase; letter-spacing: .06em; }
.card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.3rem; }
.destination-card, .route-card, .source-state, .method-cards article, .guide-grid article { overflow: hidden; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 8px 35px rgba(11,47,42,.06); }
.card-image { position: relative; display: block; overflow: hidden; aspect-ratio: 1.45; background: var(--mist); }
.card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.destination-card:hover img { transform: scale(1.035); }
.difficulty { position: absolute; right: .8rem; top: .8rem; padding: .35rem .6rem; border-radius: 99px; background: var(--forest); color: white; font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.card-body { padding: 1.3rem; }
.card-body h3 a, .route-card h3 a { text-decoration: none; }
.eyebrow { margin-bottom: .5rem; color: var(--accent-ink); font-size: .68rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.eyebrow.light, .kicker.light { color: var(--lime); }
/* The lime `.light` variant is only legible on the forest surfaces. On the lime search
   band it was lime-on-lime and on the paper source card it was lime-on-white; both
   templates now use a surface-appropriate class instead. */
.eyebrow.on-lime { color: var(--forest); }
/* Dark surfaces put the original --orange back: it clears 5:1 there and the darkened
   --accent-ink would not. */
.hero .kicker, .page-hero .kicker, .route-detail-hero .kicker,
.hero-panel .eyebrow, .next-panel .eyebrow, .source-card.on-dark .eyebrow,
.layer-check-grid article.available span,
.trip-board-grid a:hover span, .trip-board-grid a:focus-visible span { color: var(--orange); }
.chips { display: flex; flex-wrap: wrap; gap: .4rem; margin: 1rem 0; }
.chips span, .activity-cloud span { padding: .3rem .55rem; border-radius: 99px; background: var(--mist); font-size: .72rem; }
.card-meta { display: flex; justify-content: space-between; gap: .8rem; padding-top: 1rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .78rem; }
.card-meta strong { color: var(--ink); }

.route-search-band { display: grid; grid-template-columns: 1fr auto; gap: 2rem; align-items: center; padding: 3rem max(4vw, calc((100vw - var(--max)) / 2)); background: var(--lime); }
.route-search-band form { display: flex; gap: .5rem; }
.route-search-band input { min-width: min(440px, 50vw); min-height: 50px; padding: .8rem 1rem; border: 0; border-radius: 99px; background: var(--paper); }
.country-links { display: flex; flex-wrap: wrap; gap: .5rem; padding: 1.3rem max(4vw, calc((100vw - var(--max)) / 2)); border-bottom: 1px solid var(--line); background: var(--paper); }
.country-links a { padding: .4rem .75rem; border: 1px solid var(--line); border-radius: 99px; text-decoration: none; font-size: .78rem; }
.holiday-regions { padding: clamp(2rem, 4vw, 3rem) max(4vw, calc((100vw - var(--max)) / 2)); border-bottom: 1px solid var(--line); background: var(--mist); }
.holiday-regions.compact { padding-top: 1.5rem; padding-bottom: 1.5rem; }
.holiday-regions > div:last-child { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .7rem; }
.holiday-regions > div:last-child a { display: grid; gap: .15rem; min-height: 72px; padding: .85rem 1rem; border: 1px solid var(--line); border-radius: 13px; background: var(--paper); color: var(--ink); text-decoration: none; }
.holiday-regions > div:last-child a:hover, .holiday-regions > div:last-child a:focus-visible, .holiday-regions > div:last-child a[aria-current="page"] { border-color: var(--forest); box-shadow: 0 8px 22px rgba(11,47,42,.1); }
.holiday-regions > div:last-child a[aria-current="page"] { background: var(--forest); color: white; }
.holiday-regions > div:last-child span { color: var(--muted); font-size: .72rem; }
.holiday-regions > div:last-child a[aria-current="page"] span { color: rgba(255,255,255,.68); }
.faq-section { padding: clamp(3rem, 6vw, 5rem) max(4vw, calc((100vw - var(--max)) / 2)); background: var(--mist); border-top: 1px solid var(--line); }
.faq-section details { margin-top: .65rem; border: 1px solid var(--line); border-radius: 13px; background: var(--paper); }
.faq-section summary { min-height: 48px; padding: .9rem 1rem; cursor: pointer; font-weight: 800; }
.faq-section details p { max-width: 75ch; margin: 0; padding: 0 1rem 1rem; color: var(--muted); }
@media (max-width: 1000px) { .holiday-regions > div:last-child { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 680px) { .holiday-regions > div:last-child { grid-template-columns: 1fr; } }
.trip-layer-home { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; padding: clamp(4rem, 7vw, 6rem) max(4vw, calc((100vw - var(--max)) / 2)); background: var(--mist); }
.trip-layer-home > div:first-child p:last-child { color: var(--muted); }
.trip-layer-actions { display: grid; gap: .8rem; }
.trip-layer-actions a { display: flex; justify-content: space-between; gap: 1rem; padding: 1.4rem; border-radius: var(--radius); background: var(--forest); color: white; text-decoration: none; }
.trip-layer-actions strong { color: var(--lime); }.trip-layer-actions span { color: rgba(255,255,255,.72); text-align: right; }
.trust-section { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); }
.trust-section > div { min-height: 270px; padding: clamp(2rem, 5vw, 4rem); background: var(--forest); color: white; }
.trust-section p { color: rgba(255,255,255,.65); }
.big-number { color: var(--lime); font: 500 clamp(3rem, 6vw, 5rem)/1 Georgia, serif; }

.page-hero { position: relative; isolation: isolate; overflow: hidden; padding: clamp(2.25rem, 4.5vw, 3.7rem) max(4vw, calc((100vw - var(--max)) / 2)); background: var(--forest); color: white; }
.page-hero::after { content: ""; position: absolute; z-index: -1; right: -5%; bottom: -58%; width: min(48vw, 650px); height: 120%; border: 2px dashed rgba(217,255,99,.16); border-radius: 50% 45% 52% 38%; transform: rotate(-11deg); box-shadow: 0 0 0 55px rgba(217,255,99,.025), 0 0 0 110px rgba(217,255,99,.018); }
.page-hero.compact h1 { max-width: 1050px; font-size: clamp(2.55rem, 5vw, 4.7rem); }
.page-hero p:not(.kicker) { max-width: 760px; color: rgba(255,255,255,.68); font-size: 1.08rem; }
.page-hero p:last-child { margin-bottom: 0; }
.crumbs { margin-bottom: 1rem; color: rgba(255,255,255,.56); font-size: .78rem; }
.crumbs ol { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin: 0; padding: 0; list-style: none; }
.crumbs li { display: inline-flex; gap: .5rem; align-items: center; }
.crumbs a { color: white; }
.filter-row { display: grid; grid-template-columns: auto minmax(220px, 1fr) auto; gap: .8rem; align-items: center; margin: 0 0 2rem; padding: 1rem; background: var(--forest); border-radius: 16px; }
.filter-row label { color: white; }
.filter-row > span { color: var(--lime); font-size: .78rem; font-weight: 800; white-space: nowrap; }
.filter-row input { margin: 0; }
.destination-hero { position: relative; min-height: 470px; display: flex; align-items: end; overflow: hidden; background: var(--forest); color: white; }
.destination-hero img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.destination-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(4,25,22,.9), rgba(4,25,22,.22)), linear-gradient(0deg, rgba(4,25,22,.7), transparent 65%); }
.destination-copy { position: relative; z-index: 1; max-width: 900px; padding: clamp(2.5rem, 5vw, 4.5rem) max(4vw, calc((100vw - var(--max)) / 2)); }
.destination-hero h1 { font-size: clamp(3.2rem, 7vw, 6.4rem); }
.destination-summary { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; padding-top: 0; padding-bottom: 0; background: var(--line); }
.destination-summary .stat { min-height: 145px; padding: 1.5rem; background: var(--paper); }
.destination-summary .stat strong { color: var(--forest); font-size: 1.6rem; }.destination-summary .stat span { color: var(--muted); }
.journey-nav { padding: 1rem max(4vw, calc((100vw - var(--max)) / 2)); border-bottom: 1px solid var(--line); background: #dfe8e1; }
.journey-label { display: block; margin-bottom: .55rem; color: var(--forest-2); font-size: .65rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.journey-nav > div { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(168px, 1fr); gap: .55rem; overflow-x: auto; padding: .15rem .15rem .45rem; scroll-snap-type: x proximity; scrollbar-width: thin; }
.journey-nav a { scroll-snap-align: start; min-height: 92px; padding: .75rem .85rem; border: 1px solid rgba(16,35,31,.13); border-radius: 13px; background: var(--paper); color: var(--ink); text-decoration: none; }
.journey-nav a:hover, .journey-nav a:focus-visible { border-color: var(--forest); box-shadow: 0 7px 22px rgba(11,47,42,.1); }
.journey-nav a span, .journey-nav a strong, .journey-nav a small { display: block; }
.journey-nav a span { color: var(--accent-ink); font-size: .62rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.journey-nav a strong { margin: .16rem 0; font-size: .92rem; }
.journey-nav a small { color: var(--muted); font-size: .68rem; line-height: 1.3; }
.place-section-nav { display: flex; gap: .5rem; overflow-x: auto; padding: .8rem max(4vw, calc((100vw - var(--max)) / 2)); border-bottom: 1px solid var(--line); background: var(--mist); scrollbar-width: thin; }
.place-section-nav a { display: inline-flex; flex: 0 0 auto; align-items: center; min-height: 44px; padding: .45rem .8rem; border: 1px solid var(--line); border-radius: 99px; background: var(--paper); text-decoration: none; font-size: .76rem; font-weight: 800; }
.place-section-nav a[aria-current="page"] { border-color: var(--forest); background: var(--forest); color: var(--lime); }
.destination-layout { display: grid; grid-template-columns: 1.2fr .8fr; gap: 4rem; padding: clamp(4rem, 8vw, 7rem) max(4vw, calc((100vw - var(--max)) / 2)); background: var(--paper); }
.callout, .data-caveat, .warning { padding: 1.2rem; border-left: 4px solid var(--orange); background: #fff2e9; border-radius: 0 14px 14px 0; }
.season-card { padding: 1.5rem; background: var(--forest); color: white; border-radius: var(--radius); }
.month-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: .4rem; }
.month-grid span { padding: .5rem .2rem; text-align: center; border-radius: 6px; background: rgba(255,255,255,.08); font-size: .7rem; }
.month-grid .active { background: var(--lime); color: var(--ink); font-weight: 800; }
.discipline-bars { display: grid; gap: .9rem; }
.discipline-bars > div { display: grid; grid-template-columns: 170px 1fr 48px; gap: .7rem; align-items: center; }
.discipline-bars > div > div { height: 10px; border-radius: 99px; background: var(--mist); overflow: hidden; }
.discipline-bars i { display: block; height: 100%; background: var(--orange); }

.route-tools { padding-bottom: 1.4rem; }
.route-tools form { max-width: 760px; }
.route-tools form > div { display: flex; gap: .6rem; }
.route-tools input { margin: 0; color: var(--ink); background: white; border-color: var(--line); }
.route-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.1rem; padding: 0 max(4vw, calc((100vw - var(--max)) / 2)) 5rem; }
.route-card { position: relative; padding: 1.45rem; }
.scenic-hero { position: relative; isolation: isolate; min-height: min(760px, 82vh); display: grid; align-items: end; overflow: hidden; padding: clamp(3rem, 8vw, 7rem) max(4vw, calc((100vw - var(--max)) / 2)); background: var(--forest); color: white; }
.scenic-hero > img, .scenic-hero-shade { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.scenic-hero-shade { z-index: -1; background: linear-gradient(90deg, rgba(3,25,21,.94) 0%, rgba(3,25,21,.74) 47%, rgba(3,25,21,.18) 100%), linear-gradient(0deg, rgba(3,25,21,.78), transparent 46%); }
.scenic-hero-content { max-width: 820px; }
.scenic-hero h1 { margin: .55rem 0 1rem; max-width: 850px; color: white; font-size: clamp(3.2rem, 7vw, 6.9rem); line-height: .92; letter-spacing: -.055em; }
.scenic-hero h1 em { color: var(--lime); font-weight: inherit; }
.scenic-hero-content > p:not(.kicker) { max-width: 690px; color: rgba(255,255,255,.83); font-size: clamp(1rem, 1.8vw, 1.22rem); }
.scenic-hero-card { position: absolute; right: max(4vw, calc((100vw - var(--max)) / 2)); bottom: clamp(3rem, 8vw, 7rem); display: grid; gap: .2rem; max-width: 280px; padding: 1rem 1.1rem; border: 1px solid rgba(255,255,255,.26); border-radius: 14px; background: rgba(3,25,21,.68); backdrop-filter: blur(12px); }
.scenic-hero-card span, .scenic-hero-card small { color: rgba(255,255,255,.7); }
.scenic-hero-card span { font-size: .65rem; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.scenic-proof { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(4,1fr); width: min(calc(100% - 2rem), var(--max)); margin: -1.7rem auto 0; overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: var(--paper); box-shadow: 0 18px 55px rgba(11,47,42,.13); }
.scenic-proof div { display: grid; gap: .15rem; padding: 1.15rem 1.4rem; border-right: 1px solid var(--line); }
.scenic-proof div:last-child { border: 0; }
.scenic-proof strong { color: var(--forest); font-size: clamp(1.6rem,3vw,2.3rem); line-height: 1; }
.scenic-proof span { color: var(--muted); font-size: .76rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.scenic-explorer { display: grid; grid-template-columns: minmax(0,.9fr) minmax(320px,1.1fr); gap: clamp(2rem,6vw,5rem); align-items: end; padding: clamp(4rem,8vw,7rem) max(4vw, calc((100vw - var(--max)) / 2)) 2rem; }
.scenic-explorer h2 { margin: .25rem 0 .7rem; font-size: clamp(2.2rem,4vw,4rem); line-height: 1; }
.scenic-explorer-copy > p:last-child { max-width: 620px; color: var(--muted); }
.scenic-controls { padding: 1.15rem; border-radius: 18px; background: var(--forest); box-shadow: 0 15px 42px rgba(11,47,42,.15); }
.scenic-controls label { display: block; margin-bottom: .45rem; color: white; font-size: .72rem; font-weight: 850; text-transform: uppercase; letter-spacing: .08em; }
.scenic-controls input { width: 100%; min-height: 52px; padding: .8rem 1rem; border: 1px solid rgba(255,255,255,.25); border-radius: 11px; background: rgba(255,255,255,.1); color: white; font: inherit; }
.scenic-controls input::placeholder { color: rgba(255,255,255,.55); }
.scenic-controls input:focus { outline: 3px solid rgba(217,255,99,.28); border-color: var(--lime); }
.scenic-theme-filters { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .75rem; }
.scenic-theme-filters button { min-height: 40px; padding: .5rem .75rem; border: 1px solid rgba(255,255,255,.22); border-radius: 999px; color: rgba(255,255,255,.82); background: transparent; font: inherit; font-size: .78rem; font-weight: 800; cursor: pointer; }
.scenic-theme-filters button:hover, .scenic-theme-filters button:focus-visible, .scenic-theme-filters button.active { border-color: var(--lime); color: var(--forest); background: var(--lime); }
.scenic-controls > p { margin: .75rem 0 0; color: rgba(255,255,255,.7); font-size: .8rem; }
.scenic-route-intro { margin: 1rem auto 2rem; width: min(calc(100% - 2rem), var(--max)); padding: 1.25rem 1.4rem; border-left: 4px solid var(--accent-ink); background: var(--paper); }
.scenic-route-intro p { margin: .35rem 0 0; color: var(--muted); }
.scenic-route-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; padding: 0 max(4vw, calc((100vw - var(--max)) / 2)) 4rem; }
.scenic-route-card { overflow: hidden; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 12px 40px rgba(11,47,42,.08); transition: transform .25s ease, box-shadow .25s ease; }
.scenic-route-card:hover { transform: translateY(-4px); box-shadow: 0 24px 60px rgba(11,47,42,.14); }
.route-idea-card { overflow: hidden; }
.route-idea-photo { display: block; margin: -1.15rem -1.15rem 1rem; overflow: hidden; background: var(--forest); aspect-ratio: 16 / 10; }
.route-idea-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.route-idea-card:hover .route-idea-photo img { transform: scale(1.035); }
.destination-idea-gallery { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .45rem; padding: clamp(1rem, 2vw, 1.6rem) max(4vw, calc((100vw - var(--max)) / 2)); background: var(--forest); }
.destination-idea-gallery figure { position: relative; overflow: hidden; min-height: 150px; margin: 0; border-radius: 12px; background: #061d1a; }
.destination-idea-gallery figure:first-child { grid-column: span 2; grid-row: span 2; }
.destination-idea-gallery img { width: 100%; height: 100%; object-fit: cover; }
.destination-idea-gallery figcaption { position: absolute; right: .5rem; bottom: .5rem; padding: .2rem .45rem; border-radius: 99px; background: rgba(6,29,26,.78); color: white; font-size: .62rem; font-weight: 800; }
.scenic-route-gallery { display: grid; grid-auto-flow: column; grid-auto-columns: 82%; gap: .45rem; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; background: var(--forest); }
.scenic-route-card figure { position: relative; margin: 0; aspect-ratio: 16 / 9; overflow: hidden; background: var(--forest); scroll-snap-align: start; }
.scenic-route-image-pending { display: grid; place-items: center; min-height: 180px; padding: 1rem; color: rgba(255,255,255,.78); background: var(--forest); text-align: center; }
.scenic-route-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.scenic-route-card:hover img { transform: scale(1.025); }
.scenic-route-card figcaption { position: absolute; inset: auto 0 0; display: flex; justify-content: space-between; gap: 1rem; padding: 2rem .8rem .55rem; background: linear-gradient(transparent, rgba(3,23,20,.9)); color: rgba(255,255,255,.82); font-size: .72rem; }
.scenic-route-card figcaption a { color: white; }
.scenic-route-card > .scenic-route-copy { padding: 1.45rem; }
.scenic-route-meta { display: flex; justify-content: space-between; gap: 1rem; align-items: center; }
.scenic-route-meta p { margin: 0; }
.scenic-route-meta > span { flex: none; padding: .28rem .52rem; border-radius: 999px; color: var(--forest); background: var(--lime-soft); font-size: .69rem; font-weight: 850; }
.scenic-route-card h2 { margin: .2rem 0 .65rem; font-size: clamp(1.45rem, 2.3vw, 2rem); }
.scenic-route-card h2 a { color: inherit; text-decoration: none; }
.scenic-route-card p:not(.eyebrow) { color: var(--muted); }
.scenic-route-actions { display: flex; justify-content: space-between; gap: 1rem; align-items: center; margin-top: 1rem; font-size: .86rem; }
.scenic-route-facts { display: grid; grid-template-columns: 1fr 1fr; margin: 1.1rem 0 0; padding-top: .9rem; border-top: 1px solid var(--line); }
.scenic-route-facts div + div { padding-left: 1rem; border-left: 1px solid var(--line); }
.scenic-route-facts dt { color: var(--muted); font-size: .66rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.scenic-route-facts dd { margin: .18rem 0 0; color: var(--forest); font-size: .86rem; font-weight: 800; }
.scenic-empty { width: min(calc(100% - 2rem),760px); margin: 0 auto 4rem; padding: 3rem; border-radius: var(--radius); background: var(--paper); text-align: center; }
.route-line { width: 64px; height: 18px; margin-bottom: 1.5rem; border-top: 4px solid var(--orange); border-radius: 50%; transform: rotate(-8deg); }
.route-place { color: var(--muted); }
.route-stats { display: flex; flex-wrap: wrap; gap: .8rem; margin: 1.2rem 0; }
.route-stats span { color: var(--muted); font-size: .72rem; }
.route-stats strong { display: block; color: var(--ink); font-size: .9rem; }
.pager { display: flex; justify-content: center; gap: 1rem; padding: 0 1rem 5rem; }
.pager a { padding: .6rem 1rem; border: 1px solid var(--forest); border-radius: 99px; text-decoration: none; font-weight: 700; }
.empty-state { grid-column: 1/-1; padding: 3rem; text-align: center; background: white; border-radius: var(--radius); }
.data-caveat { margin: 0 max(4vw, calc((100vw - var(--max)) / 2)) 4rem; }
.destination-trip-layer, .nearby-layer { padding: clamp(3rem, 7vw, 6rem) max(4vw, calc((100vw - var(--max)) / 2)); background: var(--mist); }
.route-layer-check, .readiness-section { padding: clamp(3rem, 6vw, 5rem) max(4vw, calc((100vw - var(--max)) / 2)); }
.route-layer-check { border-top: 1px solid var(--line); background: var(--paper); }
.layer-check-grid, .readiness-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.layer-check-grid article, .readiness-grid article { padding: 1.25rem; border: 1px solid var(--line); border-radius: 16px; background: var(--paper); }
.layer-check-grid article { border-top: 4px solid var(--muted); }
.layer-check-grid article.available { border-top-color: var(--lime); background: var(--forest); color: white; }
.layer-check-grid span, .layer-check-grid strong, .layer-check-grid small { display: block; }
.layer-check-grid span { color: var(--accent-ink); font-size: .64rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.layer-check-grid strong { margin: .3rem 0; font-size: 1.05rem; }
.layer-check-grid small { color: var(--muted); line-height: 1.45; }
.layer-check-grid article.available small { color: rgba(255,255,255,.68); }
.route-transport-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.route-transport-grid article { display: flex; flex-direction: column; min-height: 210px; padding: 1.25rem; border: 1px solid var(--line); border-radius: 16px; background: var(--paper); }
.route-transport-grid article a { margin-top: auto; font-weight: 800; }
.readiness-section.muted { background: var(--mist); }
.readiness-grid article { min-height: 260px; }
.readiness-grid article small { display: block; margin-top: 1.2rem; color: var(--muted); }
.readiness-state { display: inline-flex; min-height: 28px; align-items: center; margin-bottom: 1rem; padding: .2rem .6rem; border-radius: 99px; color: var(--forest); background: var(--mist); font-size: .65rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.readiness-state.live { background: var(--lime); }.readiness-state.hold { color: #7b381b; background: #ffe2d4; }.readiness-state.directory { background: #d9e7ff; }
.road-context-layer { background: var(--paper); }
.road-context-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; margin: 1.5rem 0; }
.road-context-grid > article { padding: 1.5rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--cream); }
.road-context-grid h3 { margin-top: 0; font-family: var(--serif); font-size: clamp(1.8rem, 3vw, 2.8rem); line-height: 1; }
.context-number { display: block; color: var(--forest); font-family: var(--serif); font-size: 3.4rem; line-height: 1; }
.context-scope { display: grid; grid-template-columns: minmax(150px, .35fr) 1fr; gap: 1rem; align-items: center; padding: 1rem 1.2rem; border-radius: 14px; background: var(--forest); color: white; }
.context-scope strong { color: var(--lime); }.context-scope p { margin: 0; color: rgba(255,255,255,.76); }
.facts.compact { grid-template-columns: repeat(3, 1fr); margin: 1rem 0 0; }
.trip-layer-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; }
.trip-layer-grid > a { position: relative; min-height: 210px; padding: 1.5rem; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); color: var(--ink); text-decoration: none; }
.trip-layer-grid > a::before { content: ""; position: absolute; right: 1.25rem; top: 1.2rem; width: 12px; height: 12px; border: 3px solid var(--orange); border-radius: 50%; box-shadow: 0 0 0 5px var(--mist); }
.trip-layer-grid > a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 5px; background: linear-gradient(90deg, var(--orange) 0 38%, var(--lime) 38% 70%, var(--forest) 70%); }
.trip-layer-grid > a span { display: block; margin-bottom: 2rem; color: var(--accent-ink); font-size: .7rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.trip-layer-grid > a strong { display: block; font: 700 1.55rem/1.12 Georgia, serif; }.trip-layer-grid > a p { color: var(--muted); }
.place-toolbar { display: flex; justify-content: space-between; gap: 2rem; padding: 1.5rem max(4vw, calc((100vw - var(--max)) / 2)); background: var(--paper); border-bottom: 1px solid var(--line); }
.place-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; padding: 2rem max(4vw, calc((100vw - var(--max)) / 2)) 5rem; }
.place-grid.compact { padding: 0; }
.place-card { display: flex; flex-direction: column; min-height: 230px; padding: 1.35rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); box-shadow: 0 8px 35px rgba(11,47,42,.05); }
.place-card h2 { font-size: 1.35rem; }.place-card > p:not(.eyebrow) { color: var(--muted); }
.place-links { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--line); }
.place-links a { font-size: .76rem; font-weight: 800; }
.trip-place-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; padding: clamp(3rem, 6vw, 5rem) max(4vw, calc((100vw - var(--max)) / 2)); }
.trip-place-destination { padding: 1.5rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); }
.trip-place-destination h2 a { text-decoration: none; }
.place-counts { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; margin-top: 1.2rem; }
.place-counts a { padding: .8rem; border-radius: 10px; background: var(--mist); color: var(--muted); text-decoration: none; font-size: .72rem; }
.place-counts strong { display: block; color: var(--forest); font-size: 1.1rem; }
.fishing-layer { background: var(--paper); }
.fishing-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: .8rem; }
.fishing-grid article { padding: 1.2rem; border-left: 3px solid var(--orange); background: var(--mist); }
.fishing-grid h3 { font-size: 1.15rem; }.fishing-grid p:last-child { color: var(--muted); font-size: .84rem; }
.access-grid, .transport-grid, .infrastructure-grid, .gear-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; padding: clamp(2rem, 5vw, 4rem) max(4vw, calc((100vw - var(--max)) / 2)); }
.access-card, .transport-card, .infrastructure-grid article, .gear-card { display: flex; flex-direction: column; min-height: 230px; padding: 1.35rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); box-shadow: 0 8px 35px rgba(11,47,42,.05); }
.access-card h2, .transport-card h2, .infrastructure-grid h2, .gear-card h2 { font-size: 1.4rem; }
.access-card > a, .transport-card > a { margin-top: auto; padding-top: 1rem; font-size: .78rem; font-weight: 800; }
.access-details { display: grid; gap: .35rem; margin: .8rem 0 1.2rem; color: var(--muted); font-size: .78rem; }
.access-details span, .metric-list span { display: block; }
.metric-list { display: grid; gap: .35rem; margin: 1rem 0; padding: .8rem; border-radius: 10px; background: var(--mist); color: var(--muted); font-size: .78rem; }
.metric-list span { display: flex; justify-content: space-between; gap: 1rem; }
.gear-card { overflow: hidden; padding: 0; }
.gear-card img { width: 100%; aspect-ratio: 1.35; object-fit: contain; padding: .8rem; background: white; }
.gear-card > div { display: flex; flex: 1; flex-direction: column; padding: 1.25rem; }
.gear-card .button { align-self: start; margin-top: auto; }
.route-library-switch { display: flex; flex-wrap: wrap; gap: 1.2rem; }

.route-detail-hero { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(300px, .55fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: end; padding: clamp(2.25rem, 4vw, 3.6rem) max(4vw, calc((100vw - var(--max)) / 2)); background: var(--forest); color: white; }
.route-detail-hero h1 { max-width: 1050px; font-size: clamp(2.55rem, 5vw, 4.8rem); }
.route-detail-hero aside { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; overflow: hidden; border: 1px solid rgba(255,255,255,.12); border-radius: 15px; background: rgba(255,255,255,.12); }
.route-detail-hero aside > .eyebrow { grid-column: 1 / -1; margin: 0; padding: .65rem .8rem; background: var(--forest); }
.route-detail-hero aside .stat { min-height: 88px; }
.route-detail-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 2rem; padding: 2rem max(4vw, calc((100vw - var(--max)) / 2)) 5rem; }
#route-record, #road-context, #trip-stops, #route-access, #fishing-context, #source, #routes { scroll-margin-top: 120px; }
.facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-bottom: 2rem; background: var(--line); }
.facts div { padding: 1rem; background: var(--paper); }
.facts strong, .facts span { display: block; }.facts span { color: var(--muted); font-size: .72rem; }
.map-card, .source-card { padding: 1.3rem; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); }
.mini-map { min-height: 300px; }
.source-card { margin-top: 1rem; }
.fine-print { color: var(--muted); font-size: .76rem; }

.report-summary { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--line); }
.report-summary .stat { min-height: 118px; padding: 1.35rem; background: var(--paper); }
.report-summary .stat span { color: var(--muted); }
.report-summary .stat strong { color: var(--forest); font-size: 2rem; }
.report-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
.report-grid > a, .report-grid > article, .method-cards > div, .method-cards article, .guide-grid article { padding: 1.6rem; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); text-decoration: none; }
.report-grid > a > span { color: var(--accent-ink); font-weight: 900; letter-spacing: .08em; }
.report-grid dl { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; margin: 1.5rem 0 0; }.report-grid dt { color: var(--muted); font-size: .68rem; text-transform: uppercase; }.report-grid dd { margin: 0; font-weight: 800; }
.report-table { width: 100%; border-collapse: collapse; background: var(--paper); }
.report-table > .section-bar, .report-table > .table-wrap, .report-table > .activity-cloud, .report-table > .table-note { margin-left: max(4vw, calc((100vw - var(--max)) / 2)); margin-right: max(4vw, calc((100vw - var(--max)) / 2)); }
table { width: 100%; border-collapse: collapse; background: var(--paper); }
th, td { padding: .8rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
th { font-size: .72rem; text-transform: uppercase; letter-spacing: .07em; }
.report-table td:not(:first-child), .report-table th:not(:first-child) { text-align: right; }
.report-table td:first-child > span { display: block; margin-top: .15rem; color: var(--muted); font-size: .8rem; }
.report-table { padding: 3rem 0; }
.table-wrap { overflow-x: auto; }
.route-ideas-table td:first-child > span { display: block; margin-top: .2rem; color: var(--muted); font-size: .82rem; }
.good { color: #14734e; }
.method-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin: 2rem 0; }
.source-list { display: grid; gap: .8rem; }
.source-list article { display: grid; grid-template-columns: 1fr 1.5fr; gap: 2rem; padding: 1.4rem; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); }
.source-list article dl { display: grid; grid-template-columns: repeat(2, 1fr); gap: .7rem; margin: 0; }
.source-list article dt { color: var(--muted); font-size: .7rem; text-transform: uppercase; }.source-list article dd { margin: 0; }
.source-list article .source-state { display: inline-block; padding: .25rem .55rem; border-radius: 99px; background: var(--lime); font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.source-list .attribution { grid-column: 1/-1; color: var(--muted); font-size: .8rem; }
.licence-register { padding: clamp(2.5rem, 5vw, 4rem) max(4vw, calc((100vw - var(--max)) / 2)); background: var(--paper); }
.licence-register .section-bar { padding: 0 0 1.2rem; }
.licence-register .table-wrap { border: 1px solid var(--line); border-radius: var(--radius); }
.rights-table { min-width: 880px; }
.rights-table caption { padding: .85rem 1rem; border-bottom: 1px solid var(--line); background: var(--mist); color: var(--muted); font-size: .82rem; text-align: left; }
.rights-table thead { background: var(--forest); color: white; }
.rights-table thead th { border-bottom: 0; }
.rights-table th:first-child { width: 42%; }
.rights-table th[scope="row"] { font-size: .92rem; letter-spacing: 0; text-transform: none; }
.rights-table th[scope="row"] > a, .rights-table td > a { font-weight: 800; }
.rights-table th[scope="row"] > span, .rights-table td > span { display: block; margin-top: .25rem; color: var(--muted); font-size: .76rem; font-weight: 400; line-height: 1.4; }
.rights-table td:nth-child(3), .rights-table td:nth-child(4) { width: 16%; }
.rights-yes { display: inline-block; color: #14734e; font-size: .88rem; }
.rights-no { display: inline-block; color: #9f2d12; font-size: .88rem; }
.licence-notes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; padding: 0 max(4vw, calc((100vw - var(--max)) / 2)) clamp(2.5rem, 5vw, 4rem); background: var(--paper); }
.licence-notes > div { padding: 1.35rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--mist); }
.licence-notes h2 { font-size: 1.35rem; }
.guide-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.activity-cloud { display: flex; flex-wrap: wrap; gap: .5rem; }
.prose { max-width: 900px; }
.prose h2 { margin-top: 1.5em; }
.next-panel { display: flex; justify-content: space-between; align-items: center; gap: 2rem; background: var(--forest); color: white; }
.callout.wide { margin: 2rem max(4vw, calc((100vw - var(--max)) / 2)); }

/* Dated weather, flood and timetable decision layer. */
.conditions-search { display: grid; grid-template-columns: minmax(240px, .65fr) minmax(0, 1.35fr); gap: 2rem; align-items: end; padding: clamp(2.2rem, 5vw, 4rem) max(4vw, calc((100vw - var(--max)) / 2)); border-bottom: 1px solid var(--line); background: var(--mist); }
.conditions-search form { display: grid; grid-template-columns: 1.4fr .6fr 1fr auto; gap: .7rem; align-items: end; }
.conditions-search label { color: var(--forest-2); font-size: .68rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.conditions-search select { display: block; width: 100%; min-height: 48px; margin-top: .3rem; padding: .65rem .75rem; border: 1px solid var(--line); border-radius: 10px; background: var(--paper); color: var(--ink); }
.conditions-search .button { border-radius: 10px; white-space: nowrap; }
.condition-focus { display: flex; gap: .5rem; overflow-x: auto; padding: .75rem max(4vw, calc((100vw - var(--max)) / 2)); border-bottom: 1px solid var(--line); background: var(--paper); scrollbar-width: thin; }
.condition-focus a { flex: 0 0 auto; min-height: 42px; display: inline-flex; align-items: center; padding: .45rem .85rem; border: 1px solid var(--line); border-radius: 99px; text-decoration: none; font-size: .76rem; font-weight: 850; }
.condition-focus a[aria-current="page"] { border-color: var(--forest); background: var(--forest); color: var(--lime); }
.conditions-result { padding: clamp(2.5rem, 5vw, 4.5rem) max(4vw, calc((100vw - var(--max)) / 2)); }
.conditions-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.condition-panel { min-width: 0; padding: 1.4rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); box-shadow: 0 8px 35px rgba(11,47,42,.06); }
.condition-panel.unavailable { border-style: dashed; background: var(--mist); box-shadow: none; }
.condition-panel h2 { font-size: clamp(1.7rem, 3vw, 2.35rem); }
.condition-panel h3 { margin-top: 1.4rem; font-size: 1.2rem; }
.condition-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin: 1.2rem 0; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: var(--line); }
.condition-facts div { padding: .8rem; background: var(--paper); }
.condition-facts dt { color: var(--muted); font-size: .65rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.condition-facts dd { margin: .2rem 0 0; font-weight: 800; }
.station-list { display: grid; gap: .45rem; margin: 0 0 1.2rem; padding: 0; list-style: none; }
.station-list a { display: block; min-height: 54px; padding: .65rem .8rem; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); text-decoration: none; }
.station-list strong, .station-list span { display: block; }
.station-list span { margin-top: .15rem; color: var(--muted); font-size: .76rem; }
.timetable-panel { grid-column: 1 / -1; }
.timetable-table { min-width: 760px; }
.timetable-table th[scope="row"] { font-size: .88rem; letter-spacing: 0; text-transform: none; }
.timetable-table th[scope="row"] span { display: block; color: var(--muted); font-size: .72rem; font-weight: 500; }
.conditions-commerce { display: grid; grid-template-columns: 1.25fr .75fr; gap: 3rem; align-items: center; padding: clamp(2.8rem, 5vw, 4.5rem) max(4vw, calc((100vw - var(--max)) / 2)); background: var(--forest); color: white; }
.conditions-commerce > div:last-child { display: grid; justify-items: start; gap: .8rem; }
.conditions-commerce small { color: rgba(255,255,255,.68); }
.conditions-provenance code { display: inline-block; max-width: 38ch; overflow-wrap: anywhere; color: var(--forest-2); font-size: .72rem; }
.unavailable-sources { border-top: 1px solid var(--line); background: var(--mist); }
.unavailable-sources table { min-width: 760px; }

.site-footer { display: grid; grid-template-columns: 2fr 1fr 1fr 1.2fr; gap: 3rem; padding: 4rem max(4vw, calc((100vw - var(--max)) / 2)) 2rem; background: #071f1c; color: rgba(255,255,255,.68); }
.site-footer h2 { color: white; font: 800 .75rem/1 sans-serif; text-transform: uppercase; letter-spacing: .1em; }
.site-footer > div > a:not(.brand) { display: block; margin: .45rem 0; text-decoration: none; }
.footer-brand { margin-bottom: 1rem; }
.freshness { padding: 1rem; border: 1px solid rgba(255,255,255,.13); border-radius: 14px; }
.freshness strong, .freshness span { display: block; }.freshness strong { color: white; }
.status-dot { display: inline-block !important; width: 9px; height: 9px; margin-bottom: .7rem; border-radius: 50%; background: var(--lime); box-shadow: 0 0 0 5px rgba(217,255,99,.12); }
.footer-bottom { grid-column: 1/-1; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.1); font-size: .76rem; }
.consent { position: fixed; z-index: 50; right: 1rem; bottom: 1rem; max-width: 420px; padding: 1.2rem; border: 1px solid var(--line); border-radius: 18px; background: var(--paper); box-shadow: var(--shadow); }
.consent p { margin-bottom: .8rem; }.consent div { display: flex; gap: 1rem; align-items: center; }
.text-button { border: 0; background: transparent; text-decoration: underline; }
.error-page { min-height: 70vh; display: grid; place-content: center; text-align: center; padding: 2rem; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }

@media (max-width: 1000px) {
  .site-header { flex-wrap: wrap; gap: .65rem 1rem; }.site-header nav { order: 3; width: 100%; justify-content: space-between; }
  .hero-copy { width: min(75%, 720px); }
  .trip-board-band { grid-template-columns: 1fr; gap: 1.5rem; padding-bottom: 3rem; }
  .planner { grid-template-columns: repeat(2, 1fr); }.planner .button { grid-column: 1/-1; }
  .card-grid, .route-grid { grid-template-columns: repeat(2, 1fr); }
  .site-footer { grid-template-columns: repeat(2, 1fr); }
  .route-detail-hero, .route-detail-grid, .destination-layout { grid-template-columns: 1fr; }
  .route-detail-hero aside { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .route-detail-grid .map-card { order: -1; }
  .road-context-grid { grid-template-columns: 1fr; }
  .destination-summary { grid-template-columns: repeat(2, 1fr); }
  .match-grid { grid-template-columns: 1fr; }
  .report-grid, .method-cards, .layer-check-grid, .readiness-grid { grid-template-columns: repeat(2, 1fr); }
  .licence-notes { grid-template-columns: 1fr; }
  .route-transport-grid { grid-template-columns: repeat(2, 1fr); }
  .place-grid, .fishing-grid, .access-grid, .transport-grid, .infrastructure-grid, .gear-grid { grid-template-columns: repeat(2, 1fr); }
  .conditions-search { grid-template-columns: 1fr; }
  .conditions-search form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .conditions-search .button { align-self: end; }
}

@media (max-width: 680px) {
  .destination-idea-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .destination-idea-gallery figure:first-child { grid-column: span 2; }
  .scenic-hero { min-height: 680px; padding: 2rem 1rem; }
  .scenic-hero h1 { font-size: clamp(3rem,15vw,4.6rem); }
  .scenic-hero-card { position: static; margin-top: 1.5rem; max-width: none; }
  .scenic-proof { grid-template-columns: 1fr 1fr; }
  .scenic-proof div:nth-child(2) { border-right: 0; }
  .scenic-proof div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .scenic-explorer { grid-template-columns: 1fr; padding-right: 1rem; padding-left: 1rem; }
  .scenic-library-cta { display: grid; margin-right: 1rem; margin-left: 1rem; }
  #route-record, #road-context, #trip-stops, #route-access, #fishing-context, #source, #routes { scroll-margin-top: 24px; }
  h1 { font-size: 3rem; }
  .site-header { position: relative; padding: .65rem 1rem .75rem; }.site-header > .button { display: none; }.site-header nav { display: grid; grid-template-columns: repeat(3, 1fr); gap: .15rem .8rem; overflow: visible; padding: 0; }.site-header nav a { display: flex; align-items: center; min-height: 40px; padding: .15rem 0; font-size: .75rem; white-space: nowrap; }
  .quick-nav { justify-content: start; min-height: 36px; gap: 1.2rem; padding: .4rem 1rem; }
  .hero { min-height: 590px; align-items: end; padding: 3rem 1.2rem 3.4rem; }
  .hero-photo { object-position: 76% center; }
  .hero-shade { background: linear-gradient(90deg, rgba(3,23,20,.97), rgba(3,23,20,.76)), linear-gradient(0deg, rgba(3,23,20,.84), rgba(3,23,20,.04) 70%); }
  .hero-copy { width: 100%; }
  .hero h1 { font-size: clamp(2.9rem, 14vw, 3.55rem); }
  .hero .kicker { margin-bottom: 1rem; }
  .hero .lede { font-size: 1rem; }
  .hero-modes { margin-top: .8rem; }
  .trip-board-band { padding: 2.4rem 1rem 3rem; }
  .trip-board-grid { grid-template-columns: repeat(2, 1fr); }
  .trip-board-report { left: 1rem; bottom: .7rem; }
  .consent { right: .75rem; bottom: .75rem; left: .75rem; max-width: none; padding: .8rem 1rem; border-radius: 14px; }
  .consent p { margin-bottom: .55rem; font-size: .82rem; line-height: 1.38; }
  .consent div { gap: .75rem; }
  .consent .button.small { min-height: 36px; padding: .4rem .7rem; font-size: .64rem; }
  .consent .text-button { font-size: .8rem; }
  .page-hero { padding: 1.85rem 1rem 2.15rem; }
  .page-hero.compact h1, .route-detail-hero h1 { font-size: clamp(2.45rem, 12vw, 3.2rem); }
  .route-detail-hero { gap: 1.5rem; padding: 2rem 1rem; }
  .route-detail-hero aside { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .destination-hero { min-height: 450px; }
  .destination-copy { padding: 2.5rem 1rem; }
  .destination-hero h1 { font-size: clamp(3.2rem, 17vw, 4.5rem); }
  .journey-nav { padding: .75rem 1rem; }
  .journey-nav > div { grid-auto-columns: minmax(190px, 76vw); }
  .filter-row { grid-template-columns: 1fr; }
  .filter-row > span { justify-self: start; }
  .section-heading, .split-intro { grid-template-columns: 1fr; gap: 1rem; }
  .planner { grid-template-columns: 1fr; }.planner .button { grid-column: auto; }
  .card-grid, .route-grid, .scenic-route-grid, .trust-section, .report-grid, .method-cards, .guide-grid, .layer-check-grid, .readiness-grid, .route-transport-grid { grid-template-columns: 1fr; }
  .trip-layer-home, .trip-layer-grid, .trip-place-grid, .place-grid, .fishing-grid, .access-grid, .transport-grid, .infrastructure-grid, .gear-grid { grid-template-columns: 1fr; }
  .place-toolbar { display: block; }.place-counts { grid-template-columns: 1fr; }
  .route-search-band { grid-template-columns: 1fr; }.route-search-band form { flex-direction: column; }.route-search-band input { min-width: 0; }
  .panel-stats, .facts, .report-summary, .facts.compact { grid-template-columns: 1fr; }
  .source-list article { grid-template-columns: 1fr; gap: .5rem; }.source-list .attribution { grid-column: 1; }
  .licence-register { padding-right: 1rem; padding-left: 1rem; }
  .licence-register .section-bar { align-items: flex-start; flex-direction: column; gap: .5rem; }
  .licence-notes { padding-right: 1rem; padding-left: 1rem; }
  .road-context-layer .section-bar { flex-direction: column; align-items: flex-start; gap: .75rem; }
  .context-scope { grid-template-columns: 1fr; gap: .25rem; }
  .route-ideas-table { overflow: visible; }
  .route-ideas-table table, .route-ideas-table tbody { display: block; width: 100%; }
  .route-ideas-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
  .route-ideas-table tr { display: grid; width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .25rem .9rem; margin-bottom: 1rem; padding: .9rem 1rem; border: 1px solid var(--line); border-radius: 14px; background: var(--paper); box-shadow: 0 8px 26px rgba(11,47,42,.06); }
  .route-ideas-table td { display: block; width: 100%; padding: .4rem 0; border: 0; }
  .route-ideas-table td::before { content: attr(data-label); display: block; margin-bottom: .16rem; color: var(--muted); font-size: .66rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
  .route-ideas-table td:first-child, .route-ideas-table td:last-child { grid-column: 1 / -1; }
  .route-ideas-table td:first-child { display: block; padding-bottom: .7rem; border-bottom: 1px solid var(--line); }
  .route-ideas-table td:first-child::before { display: block; margin-bottom: .25rem; }
  .route-ideas-table td:last-child a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 800; }
  .site-footer { grid-template-columns: 1fr; }.footer-bottom { grid-column: 1; }
  .discipline-bars > div { grid-template-columns: 110px 1fr 42px; }
  .month-grid { grid-template-columns: repeat(3, 1fr); }
  .conditions-search, .conditions-result, .conditions-commerce { padding-right: 1rem; padding-left: 1rem; }
  .conditions-search form, .conditions-grid, .conditions-commerce { grid-template-columns: 1fr; }
  .conditions-search .button, .timetable-panel { grid-column: auto; }
  .condition-facts { grid-template-columns: 1fr; }
  .conditions-result .section-bar { align-items: flex-start; flex-direction: column; gap: .5rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  .button:hover, .journey-nav a:hover, .destination-card:hover, .place-grid article:hover { transform: none !important; }
}

/* Time-of-year climate table and the bike/rider-level summary. */
.climate-section, .fit-section { padding: clamp(3rem, 6vw, 5rem) max(4vw, calc((100vw - var(--max)) / 2)); background: var(--paper); border-top: 1px solid var(--line); }
.fit-section { background: var(--mist); }
.climate-grid { display: grid; gap: 1px; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: var(--line); }
.climate-row { display: grid; grid-template-columns: 1.3fr repeat(4, .8fr) 1.4fr; gap: 1px; align-items: center; padding: .6rem .85rem; background: var(--paper); font-size: .86rem; }
.climate-row.climate-head { background: var(--forest); color: white; font-size: .68rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.climate-row.peak { background: #f2f8e8; }
.climate-row strong { font-weight: 800; }
.climate-row small { display: block; color: var(--accent-ink); font-size: .62rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.climate-row span:last-child { display: flex; align-items: center; gap: .5rem; }
.comfort-bar { flex: 1; height: 7px; border-radius: 99px; background: var(--mist); overflow: hidden; }
.comfort-bar::after { content: ""; display: block; width: var(--v, 0%); height: 100%; background: var(--forest-2); }
.climate-row b { min-width: 2ch; font-size: .78rem; }
.fit-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem; }
.fit-grid article { padding: 1.4rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); }
.fit-list { display: grid; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.fit-list li { display: grid; grid-template-columns: 1fr auto; align-items: baseline; gap: .2rem .8rem; padding: .55rem 0; border-bottom: 1px solid var(--line); }
.fit-list li:last-child { border-bottom: 0; }
.fit-list span { font-weight: 800; }
.fit-list strong { font-size: 1.3rem; color: var(--forest); }
.fit-list small { grid-column: 1 / -1; color: var(--muted); font-size: .74rem; line-height: 1.4; }
.callout-inline { margin: .9rem 0 0; padding: .8rem 1rem; border-left: 4px solid var(--accent-ink); border-radius: 0 12px 12px 0; background: #fff2e9; font-size: .85rem; }
@media (max-width: 1000px) { .fit-grid { grid-template-columns: 1fr; } }
@media (max-width: 680px) {
  .climate-row { grid-template-columns: 1fr 1fr; gap: .15rem .6rem; padding: .7rem .8rem; }
  .climate-row.climate-head { display: none; }
  .climate-row span::before { content: attr(data-l); display: block; color: var(--muted); font-size: .62rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
  .climate-row span:first-child { grid-column: 1 / -1; }
}
.section-note { max-width: 60ch; margin: .5rem 0 0; color: var(--muted); font-size: .84rem; }
.match-climate, .match-bikes { margin: .35rem 0 0; font-size: .8rem; line-height: 1.45; }
.match-bikes { color: var(--forest-2); font-weight: 700; }
.match-climate.muted-note { color: var(--muted); }

/* OSM viewpoints near a destination base. */
.viewpoint-section { padding: clamp(3rem, 6vw, 5rem) max(4vw, calc((100vw - var(--max)) / 2)); background: var(--paper); border-top: 1px solid var(--line); }
.viewpoint-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7rem; margin: 0 0 1.2rem; padding: 0; list-style: none; }
.viewpoint-grid a { display: block; min-height: 72px; padding: .8rem .95rem; border: 1px solid var(--line); border-radius: 13px; background: var(--paper); color: var(--ink); text-decoration: none; }
.viewpoint-grid a:hover, .viewpoint-grid a:focus-visible { border-color: var(--forest); box-shadow: 0 7px 22px rgba(11,47,42,.1); }
.viewpoint-grid strong { display: block; font-size: .95rem; line-height: 1.25; }
.viewpoint-grid span { display: block; margin-top: .25rem; color: var(--muted); font-size: .76rem; }
@media (max-width: 1000px) { .viewpoint-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 680px) { .viewpoint-grid { grid-template-columns: 1fr; } }

/* /when-to-ride month explorer */
.month-picker { padding: 1rem max(4vw, calc((100vw - var(--max)) / 2)); border-bottom: 1px solid var(--line); background: var(--mist); }
.month-tabs { display: flex; gap: .4rem; overflow-x: auto; padding-bottom: .2rem; scrollbar-width: thin; }
.month-tabs button { flex: 0 0 auto; min-height: 44px; padding: .5rem 1rem; border: 1px solid var(--line); border-radius: 99px; background: var(--paper); color: var(--ink); font-size: .82rem; font-weight: 800; }
.month-tabs button[aria-selected="true"] { border-color: var(--forest); background: var(--forest); color: var(--lime); }
.month-panel { padding: clamp(2.5rem, 5vw, 4rem) max(4vw, calc((100vw - var(--max)) / 2)); background: var(--paper); }
.month-panel[hidden] { display: none; }
.month-rank { display: grid; gap: .55rem; margin: 0; padding: 0; list-style: none; counter-reset: rank; }
.month-rank a { display: grid; grid-template-columns: auto 1fr auto; gap: 1rem; align-items: center; padding: .85rem 1rem; border: 1px solid var(--line); border-radius: 14px; background: var(--paper); color: var(--ink); text-decoration: none; }
.month-rank a:hover, .month-rank a:focus-visible { border-color: var(--forest); box-shadow: 0 8px 24px rgba(11,47,42,.1); }
.month-rank .peak a, .month-rank li.peak a { background: #f2f8e8; }
.rank-mark { min-width: 3ch; font-size: 1.5rem; font-weight: 800; color: var(--forest); text-align: center; }
.rank-body strong { display: block; font-size: 1.02rem; }
.rank-body small, .rank-facts small { display: block; color: var(--muted); font-size: .74rem; }
.rank-facts { text-align: right; font-weight: 700; font-size: .88rem; white-space: nowrap; }
@media (max-width: 680px) {
  .month-rank a { grid-template-columns: auto 1fr; gap: .5rem .8rem; }
  .rank-facts { grid-column: 2; text-align: left; font-weight: 600; }
}

/* Generated loops from a destination base. */
.loop-section { padding: clamp(3rem, 6vw, 5rem) max(4vw, calc((100vw - var(--max)) / 2)); background: var(--mist); border-top: 1px solid var(--line); }
.loop-group { margin-top: 1.6rem; }
.loop-group h3 { margin-bottom: .7rem; font-family: inherit; font-size: .72rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; color: var(--accent-ink); }
.loop-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.loop-card { display: grid; grid-template-columns: 96px 1fr; gap: .9rem; padding: 1rem; border: 1px solid var(--line); border-radius: 16px; background: var(--paper); }
.loop-shape { align-self: start; border-radius: 12px; background: #e7efe8; }
.loop-shape svg { display: block; width: 100%; height: auto; }
.loop-line { fill: rgba(22,72,62,.10); stroke: var(--forest-2); stroke-width: 2.4; stroke-linejoin: round; }
.loop-facts > strong { display: block; font-size: 1.45rem; line-height: 1; color: var(--forest); }
.loop-facts dl { display: grid; gap: .15rem; margin: .6rem 0 .8rem; }
.loop-facts dl > div { display: flex; justify-content: space-between; gap: .6rem; font-size: .78rem; }
.loop-facts dt { color: var(--muted); }
.loop-facts dd { margin: 0; font-weight: 800; }
@media (max-width: 1000px) { .loop-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 680px) { .loop-grid { grid-template-columns: 1fr; } }

/* Homepage: the loops you can actually leave with. */
.ride-band { padding: clamp(3rem, 6vw, 5rem) max(4vw, calc((100vw - var(--max)) / 2)); background: var(--paper); border-top: 1px solid var(--line); }
.ride-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.ride-grid a { display: block; padding: 1.2rem; border: 1px solid var(--line); border-radius: 16px; background: var(--paper); color: var(--ink); text-decoration: none; }
.ride-grid a:hover, .ride-grid a:focus-visible { border-color: var(--forest); box-shadow: 0 8px 26px rgba(11,47,42,.1); }
.ride-where { display: block; color: var(--accent-ink); font-size: .68rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.ride-grid strong { display: block; margin: .3rem 0 .15rem; font-size: 1.9rem; line-height: 1; color: var(--forest); }
.ride-facts { display: block; color: var(--muted); font-size: .82rem; }
@media (max-width: 1000px) { .ride-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 680px) { .ride-grid { grid-template-columns: 1fr; } }

/* Transparent matcher: every active constraint is shown as a pass or fail. */
.constraint-note { margin: .9rem 0 0; color: var(--muted); font-size: .8rem; }
.constraint-checks { display: grid; gap: .42rem; margin: .85rem 0 0; padding: 0; list-style: none; }
.constraint-checks li { display: grid; grid-template-columns: minmax(105px, auto) 1fr; gap: .65rem; align-items: baseline; padding: .5rem .65rem; border-radius: 10px; font-size: .76rem; }
.constraint-checks li.pass { background: #eef8e8; }
.constraint-checks li.fail { background: #fff1eb; }
.constraint-checks strong { color: var(--forest); }
.constraint-checks .fail strong { color: #8c311e; }
.constraint-checks span { color: var(--muted); }
.excluded-matches { margin-top: 1rem; border: 1px solid var(--line); border-radius: 14px; background: var(--paper); }
.excluded-matches summary { min-height: 44px; padding: .8rem 1rem; cursor: pointer; font-weight: 800; }
.excluded-matches ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; margin: 0; padding: 0 1rem 1rem; list-style: none; }
.excluded-matches li { padding: .65rem; border-radius: 10px; background: var(--mist); }
.excluded-matches a { display: block; font-weight: 800; }
.excluded-matches span { display: block; margin-top: .2rem; color: var(--muted); font-size: .72rem; line-height: 1.4; }

/* Exact fixed-GPX comparison lab. */
.compare-controls, .comparison-summary, .compare-cards, .compare-table { padding-right: max(4vw, calc((100vw - var(--max)) / 2)); padding-left: max(4vw, calc((100vw - var(--max)) / 2)); }
.compare-controls { display: grid; grid-template-columns: minmax(220px, .65fr) 1.35fr; gap: 2rem; padding-top: 2.8rem; padding-bottom: 2.8rem; background: var(--mist); }
.compare-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; }
.compare-form label { display: grid; gap: .35rem; color: var(--forest); font-size: .72rem; font-weight: 800; }
.compare-form select, .compare-form input { width: 100%; min-height: 46px; padding: .7rem .8rem; border: 1px solid var(--line); border-radius: 11px; background: var(--paper); color: var(--ink); font: inherit; }
.compare-form .button { align-self: end; }
.input-unit { display: grid; grid-template-columns: 1fr auto; align-items: center; border: 1px solid var(--line); border-radius: 11px; background: var(--paper); }
.input-unit input { border: 0; background: transparent; }
.input-unit small { padding-right: .75rem; color: var(--muted); font-size: .68rem; }
.comparison-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--paper); }
.compare-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; padding-top: 3rem; padding-bottom: 3rem; background: var(--paper); }
.compare-cards article { padding: 1.1rem; border: 1px solid var(--line); border-radius: 18px; background: var(--paper); box-shadow: 0 10px 30px rgba(11,47,42,.07); }
.compare-shape { max-width: 150px; margin-bottom: 1rem; border-radius: 14px; background: #e7efe8; }
.compare-shape svg { display: block; width: 100%; }
.compare-cards h2 { margin-bottom: .8rem; font-size: 1.35rem; }
.compare-cards dl { display: grid; gap: .25rem; }
.compare-cards dl div { display: flex; justify-content: space-between; gap: .7rem; padding: .45rem 0; border-bottom: 1px solid var(--line); font-size: .8rem; }
.compare-cards dt { color: var(--muted); }
.compare-cards dd { margin: 0; font-weight: 800; }
.compare-actions, .loop-actions { display: flex; flex-wrap: wrap; gap: .65rem; align-items: center; margin-top: 1rem; }
.compare-actions > a:not(.button), .loop-actions > a:not(.button) { font-size: .76rem; font-weight: 800; }
.compare-table { padding-top: 3rem; padding-bottom: 3rem; background: var(--mist); }
.compare-table th span { display: block; color: var(--muted); font-size: .68rem; font-weight: 500; }

@media (max-width: 1000px) {
  .compare-controls { grid-template-columns: 1fr; }
  .compare-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .comparison-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .compare-cards { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  .constraint-checks li { grid-template-columns: 1fr; gap: .15rem; }
  .excluded-matches ul { grid-template-columns: 1fr; }
  .compare-form { grid-template-columns: 1fr; }
  .comparison-summary { grid-template-columns: 1fr; }
}

.month-table { width: 100%; border-collapse: collapse; }
.month-table caption { text-align: left; font-weight: 800; padding: .4rem 0 .7rem; }
.month-table th, .month-table td { padding: .55rem .75rem; border-bottom: 1px solid var(--line); text-align: left; }
.month-table thead th { background: var(--forest); color: #fff; font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; }
.month-table tr.peak { background: #f2f8e8; }

/* September review: put discovery controls ahead of background data. */
.hero { min-height: 540px; padding-top: 2.5rem; padding-bottom: 2.5rem; }
.hero-copy { width: min(64%, 740px); }
.hero h1 { font-size: clamp(2.8rem, 4.5vw, 4.6rem); }
.hero .lede { max-width: 590px; }
.hero-search { max-width: 660px; margin-top: 1.3rem; }
.hero-search label { display: block; font-size: .9rem; font-weight: 700; margin-bottom: .4rem; }
.hero-search > div { display: flex; gap: .4rem; padding: .4rem; border-radius: 14px; background: var(--paper); }
.hero-search input { width: 100%; min-width: 0; border: 0; background: transparent; color: var(--ink); padding: .6rem .8rem; font-size: 1rem; }
.hero-search .button { flex-shrink: 0; border-radius: 10px; }
.hero-modes a { padding: .3rem .7rem; border: 1px solid rgba(255,255,255,.35); border-radius: 30px; color: white; font-size: .875rem; text-decoration: none; min-height: 40px; display: inline-flex; align-items: center; }
.hero-modes a:hover { background: var(--lime); color: var(--ink); }
.hero-text-link { display: inline-flex; align-items: center; min-height: 44px; font-size: .9rem; font-weight: 700; }
.hero-actions { gap: .5rem 1.4rem; margin-top: .5rem; }
.hero-trust { font-size: .8rem; gap: .5rem 1.2rem; margin-top: .65rem; }
.planner-section { padding-top: 3rem; padding-bottom: 3rem; scroll-margin-top: 90px; }
.planner-section .section-heading { display: block; margin-bottom: 1.5rem; }
.planner-section .section-heading .kicker { margin-bottom: .7rem; }
.planner-section .section-heading h2 { font-size: clamp(2rem,3.5vw,3rem); }
.planner-section .section-heading p:last-child { max-width: 720px; margin-bottom: 0; }
.planner { grid-template-columns: repeat(3, minmax(0,1fr)); }
.planner label { font-size: .8rem; letter-spacing: .025em; }
.planner :is(select,input) { font-size: 1rem; min-width: 0; }
.site-header nav a { min-height: 44px; display: inline-flex; align-items: center; }
.idea-hero { padding-bottom: 2rem; }
.idea-hero h1 { font-size: clamp(2.6rem,5vw,4.7rem); }
.idea-hero-links { display: flex; flex-wrap: wrap; gap: .4rem 1.5rem; }
.idea-hero-links a { color: var(--lime); font-size: .95rem; min-height: 44px; display: inline-flex; align-items: center; }
.idea-tools { padding: 1.6rem max(4vw,calc((100vw - var(--max))/2)); background: var(--paper); border-bottom: 1px solid var(--line); }
.idea-filters { display: grid; grid-template-columns: 2fr repeat(4,minmax(110px,1fr)) auto; gap: .8rem; align-items: end; }
.idea-filters label { font-size: .875rem; font-weight: 750; min-width: 0; }
.idea-filters input, .idea-filters select { width: 100%; min-width: 0; min-height: 48px; margin-top: .35rem; padding: .65rem .7rem; border: 1px solid #a2b1a9; border-radius: 9px; background: white; color: var(--ink); font-size: 1rem; }
.idea-filters .button { border-radius: 9px; }
.idea-filter-note { margin-top: 1rem; display: flex; justify-content: space-between; flex-wrap: wrap; gap: .3rem 1rem; font-size: .875rem; color: var(--muted); }
.idea-filter-note a { font-weight: 700; color: var(--forest); }
.idea-results { padding: 2.5rem max(4vw,calc((100vw - var(--max))/2)); scroll-margin-top: 90px; }
.idea-results > .section-bar { align-items: center; gap: 1rem; }
.idea-results > .section-bar h2 { font-size: clamp(1.8rem,3vw,2.8rem); }
.idea-results > .section-bar p { color: var(--muted); margin: 0; font-size: .9rem; }
.route-grid.idea-grid { padding: 0; align-items: stretch; }
.idea-card-content { display: flex; flex: 1; flex-direction: column; }
.route-idea-card { display: flex; flex-direction: column; padding: 1.2rem; border-top: 3px solid var(--forest-2); }
.route-idea-card h3 { font-size: 1.7rem; line-height: 1.15; overflow-wrap: anywhere; }
.route-idea-card h3 a { text-decoration: none; }
.route-idea-card h3 a:hover { text-decoration: underline; }
.route-idea-card .eyebrow { font-size: .8rem; letter-spacing: .07em; }
.idea-location { color: var(--muted); margin-bottom: 1rem; }
.idea-facts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem; padding-top: .9rem; margin-top: auto; border-top: 1px solid var(--line); }
.idea-facts dt { color: var(--muted); font-size: .8rem; }
.idea-facts dd { margin: .25rem 0 0; font-size: .95rem; }
.route-idea-card .arrow-link { min-height: 44px; display: inline-flex; align-items: center; font-size: .9rem; }
.idea-pager { padding: 1rem 0; margin: 0 0 1rem; gap: .5rem; }
.idea-pager a { display: inline-flex; align-items: center; min-height: 44px; padding: .35rem .8rem; border: 1px solid var(--line); border-radius: 8px; font-size: .95rem; background: var(--paper); }
.idea-pager:last-child { margin-top: 1rem; margin-bottom: 0; }
.idea-notice { padding: 1.5rem max(4vw,calc((100vw - var(--max))/2)); background: var(--mist); border-top: 1px solid var(--line); }
.idea-notice p { max-width: 920px; margin: .4rem 0 0; color: var(--muted); font-size: .95rem; }
.idea-grid .empty-state { grid-column: 1 / -1; }
.destination-idea-gallery { padding-top: 2rem; padding-bottom: 2rem; }
.destination-idea-gallery figcaption { font-size: .875rem; }
@media (max-width: 1100px) {
  .idea-filters { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .idea-query { grid-column: span 2; }
}
@media (max-width: 680px) {
  .hero { min-height: 0; padding: 2.2rem 1rem; }
  .hero-copy { width: 100%; }
  .hero h1 { font-size: clamp(2.6rem,12vw,3.3rem); }
  .hero-search > div { flex-direction: column; }
  .hero-search input { min-height: 48px; }
  .hero-search .button { width: 100%; }
  .hero-trust { display: none; }
  .hero-modes { gap: .4rem; }
  .hero-modes a { min-height: 44px; }
  .hero-actions { display: grid; gap: 0; }
  .site-header nav { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .site-header nav a { font-size: .8rem; white-space: normal; line-height: 1.2; }
  .planner { grid-template-columns: 1fr; }
  .planner-section { padding: 2.5rem 1rem; scroll-margin-top: 20px; }
  .idea-filters { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .idea-filters .button { grid-column: 1 / -1; }
  .idea-results > .section-bar { display: block; }
  .idea-results > .section-bar > a { display: inline-block; margin-top: .8rem; }
  .idea-tools, .idea-results, .idea-notice { padding-left: 1rem; padding-right: 1rem; }
  .idea-pager { font-size: .875rem; }
  .idea-results { scroll-margin-top: 20px; }
}
.nav-toggle { display: none; }
@media (max-width: 680px) {
  .nav-toggle:not([hidden]) { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; margin-left: auto; padding: .4rem .8rem; border: 1px solid rgba(255,255,255,.4); border-radius: 8px; color: white; background: transparent; font-size: .875rem; font-weight: 750; }
  .site-header.mobile-nav-ready:not(.nav-open) nav { display: none; }
  .idea-hero { padding-top: 1.4rem; padding-bottom: 1.4rem; }
  .idea-hero h1 { font-size: 2.6rem; }
  .idea-hero .kicker { margin-bottom: .8rem; }
}
.scenic-library-actions { display: flex; flex-wrap: wrap; gap: .7rem; }
@media (max-width: 680px) {
  .scenic-hero { min-height: 0; }
  .scenic-hero h1 { font-size: 2.85rem; }
  .scenic-hero .hero-actions { gap: .65rem; }
  .scenic-library-actions { display: grid; }
}

/* Destination notes retain the site's forest, cream and lime palette. */
.guide-planning{display:grid;grid-template-columns:2fr 1fr;gap:32px;padding:36px 0}.guide-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.guide-facts>div{border-bottom:1px solid #d8dfd5;padding-bottom:18px}.guide-facts dt{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:#536258}.guide-facts dd{margin:8px 0 0;font-size:1.15rem;font-weight:600}.guide-research{padding:24px 0 40px}.guide-research-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.guide-research-links a{display:flex;flex-direction:column;gap:8px;border:1px solid #d8dfd5;border-radius:14px;padding:20px;overflow-wrap:anywhere}.guide-research-links span{font-size:.85rem}.guide-directory{padding:32px 0}.guide-directory-card{padding:24px}.guide-directory-card h3{font-size:1.5rem}@media(max-width:700px){.guide-planning,.guide-research-links{grid-template-columns:1fr}.guide-facts{gap:16px}.guide-facts dd{font-size:1rem}.guide-planning{gap:8px}}

.guide-planning,.guide-research,.guide-directory,.guide-tools,.guide-reading-note{width:min(1180px,calc(100% - 48px));margin-left:auto;margin-right:auto}.guide-tools{margin-top:32px}.guide-reading-note{margin-bottom:40px}

/* Destination stories keep planning and photography ahead of the catalogue. */
.destination-intro { padding: 1.4rem max(4vw,calc((100vw - var(--max))/2)) 2.8rem; background: var(--forest); color: white; }
.destination-intro-grid { display: grid; grid-template-columns: .95fr 1.1fr; gap: clamp(1.5rem,4vw,4.4rem); align-items: center; }
.destination-intro-copy { min-width: 0; padding: 1rem 0; }
.destination-intro h1 { font-size: clamp(2.7rem,5.5vw,5.6rem); line-height: .99; margin-bottom: .35em; overflow-wrap: anywhere; }
.destination-intro h1 em { color: var(--lime); font-weight: 400; }
.destination-intro .kicker { color: var(--lime); }
.destination-intro-copy > p { max-width: 580px; color: #c6d7cf; }
.destination-intro-copy .destination-strap { color: white; font-size: 1.15rem; margin-bottom: .8rem; }
.destination-actions { display:flex; flex-wrap:wrap; gap: .8rem 1.5rem; align-items:center; margin:1.6rem 0 1rem; }
.destination-actions > a:not(.button) { min-height:44px; display:inline-flex; align-items:center; font-size:.9rem; }
.destination-intro-copy .destination-collection-note { margin: 1rem 0 0; font-size:.8rem; color:#b7cec3; }
.destination-photo { margin: 0; min-width: 0; }
.destination-photo img { width: 100%; height: auto; aspect-ratio: 1.65; object-fit: cover; border-radius: 16px; }
.destination-photo-hero img { aspect-ratio: 1.18; max-height: 540px; }
.destination-photo figcaption { font-size: .72rem; line-height: 1.5; padding: .75rem .15rem 0; overflow-wrap: anywhere; color: var(--muted); }
.destination-intro .destination-photo figcaption { color:#b7cec3; }
.destination-text-panel { min-height:300px; padding:2rem; border:1px solid #41665b; border-radius:20px; display:flex; flex-direction:column; justify-content:space-between; background:var(--forest-2); }
.destination-text-panel span { font:italic clamp(3rem,6vw,5rem)/1 Georgia,serif; color:var(--lime); }
.destination-section { padding: 3.3rem max(4vw,calc((100vw - var(--max))/2)); scroll-margin-top:85px; }
.destination-section-heading { display:flex; justify-content:space-between; align-items:end; gap:1rem 2rem; margin-bottom:1.7rem; }
.destination-section-heading h2 { font-size:clamp(2rem,3.5vw,3.4rem); margin-bottom:0; }
.destination-section-heading > p { margin:0; max-width:390px; font-size:.9rem; color:var(--muted); }
.destination-section-heading > a { font-size:.9rem; min-height:44px; display:inline-flex; align-items:center; }
.destination-option-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; }
.destination-option-grid article { display:flex; flex-direction:column; border-top:1px solid #afbeb5; padding-top:1rem; }
.destination-number { color:var(--accent-ink); font-weight:800; font-size:.8rem; letter-spacing:.12em; margin-bottom:1rem; }
.destination-option-grid h3 { font-size:1.7rem; line-height:1.12; }
.destination-option-grid p { color:var(--muted); font-size:.95rem; }
.destination-option-grid a { margin-top:auto; padding:.4rem 0; font-size:.88rem; font-weight:700; }
.destination-source-note { margin:1.4rem 0 0; color:var(--muted); font-size:.78rem; }
.destination-season { background:var(--mist); border-block:1px solid var(--line); }
.destination-months { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:.45rem; }
.destination-months a { min-width:0; display:flex; flex-direction:column; gap:.55rem; background:var(--paper); border:1px solid #b9c9bf; border-radius:12px; padding:.8rem .5rem; text-align:center; text-decoration:none; }
.destination-months a > span:first-child { font-size:.85rem; font-weight:700; }
.destination-months strong { font-size:1.2rem; font-weight:600; }
.destination-month-bar { height:4px; border-radius:5px; background:linear-gradient(to right,var(--forest-2) var(--month-fill),#dce4de var(--month-fill)); }
.destination-months a:hover,.destination-months a[aria-current] { border-color:var(--forest); background:var(--forest); color:var(--lime); }
.destination-months a:is(:hover,[aria-current]) .destination-month-bar { background:linear-gradient(to right,var(--lime) var(--month-fill),#456b5b var(--month-fill)); }
.destination-style-row { margin-top:1.8rem; display:flex; gap:1rem; align-items:center; flex-wrap:wrap; }
.destination-style-row > span { font-size:.85rem; font-weight:750; }
.destination-style-row nav { display:flex; flex-wrap:wrap; gap:.5rem; }
.destination-style-row a { display:flex; align-items:center; min-height:44px; padding:.45rem .9rem; border:1px solid #9dad9f; border-radius:99px; text-decoration:none; font-size:.85rem; }
.destination-style-row a[aria-current] { background:var(--forest); color:var(--lime); border-color:var(--forest); }
.destination-base-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.destination-base-grid article { background:var(--paper); padding:1.5rem; border:1px solid var(--line); border-radius:16px; }
.destination-base-grid h3 { font-size:2rem; }
.destination-base-grid dl { margin:1.3rem 0; }
.destination-base-grid dl > div { margin:.75rem 0; }
.destination-base-grid dt { font-size:.75rem; color:var(--muted); }
.destination-base-grid dd { margin:.15rem 0; font-size:.9rem; }
.destination-base-grid a,.destination-more { font-size:.85rem; font-weight:750; display:inline-flex; align-items:center; min-height:44px; }
.destination-more { margin-top:1rem; }
.destination-views { background:var(--paper); border-top:1px solid var(--line); }
.destination-view-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.4rem; }
@media(max-width:900px) {
 .destination-intro-grid { grid-template-columns:1fr 1fr; gap:1.5rem; }
 .destination-photo-hero img { aspect-ratio:.85; }
 .destination-months { grid-template-columns:repeat(6,minmax(0,1fr)); }
 .destination-base-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .destination-section-heading { align-items:start; flex-direction:column; }
}
@media(max-width:680px) {
 .destination-intro { padding:1rem 1rem 2rem; }
 .destination-intro-grid { grid-template-columns:1fr; gap:1.2rem; }
 .destination-intro h1 { font-size:clamp(3rem,12vw,4.5rem); }
 .destination-intro-copy { padding:.5rem 0 0; }
 .destination-photo-hero img { aspect-ratio:1.4; }
 .destination-section { padding:2.5rem 1rem; scroll-margin-top:25px; }
 .destination-option-grid,.destination-base-grid,.destination-view-grid { grid-template-columns:1fr; }
 .destination-option-grid { gap:1.5rem; }
 .destination-months { gap:.35rem; }
 .destination-months a { padding:.7rem .3rem; }
 .destination-style-row { align-items:start; flex-direction:column; }
}

/* All navigation choices stay visible, including on a narrow screen. */
.site-header { display:grid; grid-template-columns:1fr auto; gap:.5rem 1.5rem; padding-top:.7rem; padding-bottom:.65rem; }
.site-header .brand { grid-column:1; grid-row:1; }
.site-header > .button { grid-column:2; grid-row:1; display:inline-flex; }
.site-header #main-navigation { grid-column:1 / -1; grid-row:2; display:grid; grid-template-columns:repeat(9,minmax(0,1fr)); gap:.4rem; width:100%; margin:0; overflow:visible; }
.site-header #main-navigation a { min-height:46px; padding:.55rem .4rem; justify-content:center; text-align:center; white-space:normal; font-size:.86rem; line-height:1.3; color:white; background:#18473e; border:1px solid #3d6558; border-radius:8px; }
.site-header #main-navigation a:hover,.site-header #main-navigation a[aria-current] { background:var(--lime); color:var(--ink); border-color:var(--lime); }
.quick-nav { flex-wrap:wrap; justify-content:center; overflow:visible; gap:.15rem 2rem; min-height:44px; padding-top:0; padding-bottom:0; background:#071f1c; color:#d4e4db; }
.quick-nav a { display:inline-flex; align-items:center; min-height:44px; font-size:.83rem; }
.destination-shortcuts { display:flex; flex-wrap:wrap; gap:.35rem .65rem; align-items:center; padding:.8rem max(4vw,calc((100vw - var(--max))/2)); background:var(--lime); border-bottom:1px solid #bdd858; }
.destination-shortcuts > span { font-size:.85rem; font-weight:800; margin-right:.6rem; }
.destination-shortcuts a { min-height:44px; display:inline-flex; align-items:center; padding:.45rem .85rem; border:1px solid #8ba649; border-radius:8px; text-decoration:none; font-size:.83rem; font-weight:700; }
.destination-shortcuts a:hover { background:var(--paper); }
.destination-shortcuts .destination-rides-link { background:var(--forest); color:var(--lime); border-color:var(--forest); }
.destination-section,.idea-results { scroll-margin-top:160px; }
@media(max-width:1000px) {
 .site-header #main-navigation { grid-template-columns:repeat(5,minmax(0,1fr)); }
 .site-header { position:relative; }
 .destination-section,.idea-results { scroll-margin-top:20px; }
}
@media(max-width:680px) {
 .site-header { padding:.7rem 1rem; gap:.7rem; }
 .site-header .brand { gap:.45rem; font-size:.95rem; }
 .site-header .brand-mark { width:30px; height:30px; }
 .site-header > .button { font-size:.66rem; min-height:40px; padding:.4rem .7rem; }
 .site-header #main-navigation { grid-template-columns:repeat(3,minmax(0,1fr)); gap:.4rem; }
 .site-header #main-navigation a { font-size:.83rem; min-height:44px; }
 .quick-nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 .8rem; padding:0 1rem; }
 .quick-nav a { font-size:.8rem; white-space:normal; justify-content:center; }
 .destination-shortcuts { padding:.8rem 1rem; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.4rem; }
 .destination-shortcuts > span { grid-column:1 / -1; margin-bottom:.2rem; }
 .destination-shortcuts a { padding:.4rem .6rem; font-size:.8rem; line-height:1.35; }
}
