/* Shared refinements across every page, including touch navigation. */
.menu-toggle,.mobile-home,.mobile-booking { display:none; }
.brand { flex-shrink:0; white-space:nowrap; }
.site-header:not(.page-header) { background:linear-gradient(180deg,rgba(15,25,19,.48),rgba(15,25,19,.12)); }
.site-header nav a,.header-cta { white-space:nowrap; }
.site-header nav a[aria-current="page"] { text-decoration:underline; text-underline-offset:.4rem; }
main section > *, .availability-form > *, .outing-card { min-width:0; }
.button { max-width:100%; line-height:1.35; min-height:48px; }
.button span { flex-shrink:0; }
.text-link { max-width:100%; min-height:44px; }
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible { outline:2px solid currentColor; outline-offset:5px; }
.eyebrow { font-size:.75rem; line-height:1.6; }
.feature p:not(.eyebrow),.detail-list dd,.accordion details p,.info-panels p,.steps p,.outing-card p:not(.eyebrow),.travel-notes p { font-size:1rem; line-height:1.6; }
.outing-card { justify-content:flex-start; padding:2.2rem 1.8rem; }
.outing-card .eyebrow { min-height:2.4rem; margin-bottom:1.7rem; }
.outing-card h3 { min-height:2.8em; font-size:clamp(2rem,2.8vw,2.7rem); line-height:1; }
.outing-card p:not(.eyebrow) { max-width:none; margin-bottom:2rem; }
.outing-card a { margin-top:auto; font-size:.875rem; min-height:44px; align-items:center; }
.outings-heading { gap:2rem; }
.outings-heading .eyebrow { flex:0 0 28%; }
.availability-form { grid-template-columns:repeat(2,minmax(0,1fr)); }
.availability-form input,.availability-form select { min-width:0; min-height:48px; font-size:1rem; }
.availability-form input[type="date"] { color-scheme:dark; }
.availability-form select { appearance:auto; }
.availability-form label { font-size:.875rem; line-height:1.5; }
.form-note { font-size:.8125rem; line-height:1.6; }
.form-note a { text-decoration:underline; text-underline-offset:3px; }
.form-success { font-size:1rem; line-height:1.6; }
.form-error { color:#ffd6c7; }
.form-trap { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.button:disabled { cursor:wait; opacity:.7; transform:none; }
.note-block .button { margin-top:2.6rem; }
.gallery-grid figcaption { font-size:.75rem; background:rgba(24,33,27,.8); padding:.35rem .65rem; right:auto; max-width:calc(100% - 2rem); }
.feature-image figcaption { font-size:.75rem; background:rgba(24,33,27,.8); padding:.35rem .65rem; }
.footer-bottom { font-size:.8125rem; }
@media (min-width:801px) and (max-width:1200px) {
  .section-shell { padding-left:5vw; padding-right:5vw; }
  .page-hero-copy { padding:6rem 5vw; }
  .page-hero-copy h1 { font-size:clamp(3.6rem,6.4vw,5.4rem); }
  .feature { padding:2rem 1.4rem; }
  .feature h3 { font-size:3rem; }
  .interlude-copy,.field-feature-copy { padding:4rem 5vw; }
  .field-feature-copy h2 { font-size:4rem; }
  .availability { gap:5vw; padding:6rem 5vw; }
  .availability h2 { font-size:4rem; }
}
@media (max-width:1000px) {
  .site-header { height:80px; padding:0 5vw; gap:1rem; z-index:10; }
  .site-header>.header-cta { margin-left:auto; font-size:.875rem; }
  .menu-toggle { display:inline-flex; align-items:center; gap:.65rem; order:3; color:inherit; background:transparent; border:1px solid currentColor; border-radius:999px; padding:.65rem .9rem; min-height:44px; font:500 .875rem "DM Sans",sans-serif; cursor:pointer; }
  .menu-lines { width:17px; height:10px; border-top:1px solid currentColor; border-bottom:1px solid currentColor; }
  .menu-open .menu-lines { height:1px; border-bottom:0; }
  .site-header nav { display:none; position:absolute; left:0; right:0; top:100%; margin:0; padding:1.2rem 5vw 1.7rem; background:var(--paper); color:var(--ink); border-bottom:1px solid var(--line); box-shadow:0 18px 24px rgba(20,30,20,.14); }
  .site-header.menu-open nav { display:flex; align-items:stretch; flex-direction:column; gap:0; }
  .site-header nav a { display:block; min-height:52px; padding:.85rem 0; border-bottom:1px solid var(--line); font-size:1rem; }
  .site-header nav a:last-child { border-bottom:0; }
  .site-header nav .mobile-booking { margin-top:.8rem; padding:.8rem 1rem; display:flex; justify-content:space-between; align-items:center; background:var(--ink); color:var(--cream); border-radius:999px; }
}
@media (max-width:800px) {
  h1 { font-size:clamp(3.1rem,11.5vw,5rem); line-height:.98; }
  h2 { font-size:clamp(2.7rem,9vw,4rem); line-height:1; }
  h3 { line-height:1; }
  .site-header { height:76px; gap:.7rem; padding:0 1.25rem; }
  .site-header .brand { font-size:2rem; }
  .site-header>.header-cta { display:none; }
  .menu-toggle { margin-left:auto; }
  .hero { height:auto; min-height:100svh; max-height:none; }
  .hero-content { width:100%; padding:9rem 1.3rem 3rem; }
  .hero h1 { font-size:clamp(3.1rem,11.5vw,5rem); }
  .hero-intro { max-width:36ch; }
  .hero-facts { position:relative; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:1.2rem 1.3rem; gap:.6rem; }
  .hero-facts div { flex-direction:column; gap:.25rem; }
  .hero-facts strong { font-size:2rem; }
  .hero-facts span { font-size:.8125rem; }
  .feature-image { min-height:0; height:clamp(300px,75vw,560px); }
  .feature { min-height:0; padding:3rem 1.5rem; }
  .feature h3 { font-size:clamp(2.8rem,10vw,4.2rem); }
  .interlude-image { height:clamp(340px,90vw,560px); }
  .page-hero-copy { min-height:0; padding:4.5rem 1.3rem 4rem; }
  .page-hero-image { min-height:0; height:clamp(300px,85vw,560px); }
  .gallery-grid { grid-template-columns:minmax(0,1fr); grid-auto-rows:auto; }
  .gallery-grid .gallery-large,.gallery-grid .gallery-wide,.gallery-grid .gallery-tall,.gallery-grid .gallery-small { grid-column:auto; grid-row:auto; aspect-ratio:4/3; }
  .gallery-grid .gallery-tall { aspect-ratio:4/5; }
  .steps li { grid-template-columns:minmax(0,1fr); }
  .steps li p { grid-column:auto; }
  .terrain-hero,.terrain-title { min-height:0; }
  .terrain-title { padding:5rem 1.3rem 6.5rem; }
  .terrain-title h1 { font-size:clamp(3.1rem,11.5vw,5rem); line-height:.98; }
  .terrain-caption { font-size:.75rem; max-width:calc(100% - 2.6rem); }
  .field-feature-image { min-height:0; height:clamp(300px,75vw,560px); }
  .outings-heading .eyebrow { margin-bottom:1.5rem; }
  .outing-grid { grid-template-columns:minmax(0,1fr); grid-auto-rows:1fr; }
  .outing-card { min-height:0; padding:2rem 1.5rem; }
  .outing-card .eyebrow { min-height:0; }
  .outing-card h3 { min-height:0; font-size:2.5rem; }
  .availability-form { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .text-link { font-size:.875rem; }
  .footer-links { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.5rem 1.25rem; }
  .footer-links a { min-height:44px; display:flex; align-items:center; }
  .legal { padding-top:3rem; }
}
@media (max-width:480px) {
  .availability-form { grid-template-columns:minmax(0,1fr); }
  .note-block .button { gap:1rem; padding:1rem; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition:none!important; animation:none!important; }
}
