/* ============================================================
   Claudette Moore · Independent Mountain Guide · Cape Town
   Colours and fonts live in :root below. Change one there and
   it changes everywhere.
   ============================================================ */
:root{
  --cream:#F4EEE3; --paper:#FBF7EF; --sand:#E8DCC4; --ink:#2A1F17; --ink-2:#5A4A3E;
  --clay:#B34C22; --clay-soft:#E9B89C; --sun:#F2B630; --sun-soft:#F8D77E; --sea:#1F4E6B; --sea-d:#163A50;
  --display:"Bricolage Grotesque", system-ui, sans-serif; --hand:"Kalam", "Comic Sans MS", cursive;
}
body{margin:0; background:var(--cream); color:var(--ink); font-family:var(--display); font-size:18px; line-height:1.55; -webkit-font-smoothing:antialiased}
a{color:var(--clay)} a:hover{color:var(--ink)}
*{box-sizing:border-box}
img,svg{display:block}
.page{position:relative; overflow-x:clip}

/* ---------- type ---------- */
.eyebrow{margin:0 0 14px; font-size:14px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--clay)}
.sub-eyebrow{margin:-8px 0 14px; font-size:15px; color:var(--ink-2)}
.h1{margin:0; font-size:clamp(42px,6.4vw,92px); line-height:.95; font-weight:800; letter-spacing:-.025em}
.h2{margin:0 0 18px; font-size:clamp(34px,4.6vw,62px); line-height:1; font-weight:800; letter-spacing:-.02em}
.h3{margin:0 0 8px; font-size:24px; line-height:1.15; font-weight:800; letter-spacing:-.01em}
.lede{margin:18px 0 0; font-size:clamp(19px,1.8vw,24px); line-height:1.35; max-width:30ch}
.body-l{font-size:20px; max-width:56ch}
.hand{font-family:var(--hand)}
.sig{font-family:var(--hand); font-weight:700; font-size:34px; color:var(--clay); margin:6px 0 18px; transform:rotate(-4deg); transform-origin:left; width:max-content}
mark{background:linear-gradient(transparent 55%, var(--sun) 55%); color:inherit; padding:0 4px}

/* ---------- buttons ---------- */
.btns{display:flex; flex-wrap:wrap; gap:12px; margin-top:28px}
.btns.center{justify-content:center}
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:50px; padding:0 24px; border-radius:999px; border:2px solid var(--ink); font-weight:700; font-size:17px; text-decoration:none; transition:transform .15s ease, box-shadow .15s ease}
.btn:hover{transform:translateY(-2px); box-shadow:0 4px 0 var(--ink)}
.btn-clay{background:var(--clay); border-color:var(--ink); color:var(--paper)}
.btn-clay:hover{color:var(--paper)}
.btn-ink{background:var(--ink); color:var(--paper)}
.btn-ink:hover{color:var(--paper)}
.btn-ghost{background:transparent; color:var(--ink)}
.btn-ghost:hover{color:var(--ink)}
.btn-light{background:transparent; color:var(--paper); border-color:var(--paper)}
.btn-light:hover{color:var(--paper); box-shadow:0 4px 0 var(--paper)}
.btn-sm{min-height:44px; padding:0 18px; font-size:15px}

/* ---------- sketches ---------- */
.sk *{fill:none; stroke:var(--ink); stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round}
.sk .fs{fill:var(--sun-soft)} .sk .fc{fill:var(--clay)} .sk .fp{fill:var(--paper)} .sk .fk{fill:var(--ink)}
.sk .fsand{fill:var(--sand)} .sk .fcl{fill:var(--clay-soft)} .sk .fsea{fill:var(--sea)}
.sk .ss{stroke:var(--sun)} .sk .sc{stroke:var(--clay)} .sk .sw{stroke:var(--sea)} .sk .sp{stroke:var(--paper)}
.sk .nos{stroke:none}
.fprint *{fill:var(--clay); stroke:none; opacity:.75}

/* ---------- contour background ---------- */
.contours{position:absolute; inset:0; pointer-events:none; z-index:0}
.contours svg{position:absolute; width:720px; height:720px}
.contours path{fill:none; stroke:var(--ink); stroke-width:1.4; opacity:.09}
.contours .k1{top:780px; left:-260px}
.contours .k2{top:4200px; right:-300px; transform:rotate(40deg)}
.contours .k3{top:6600px; left:-220px; transform:rotate(-20deg)}
.contours .k4{top:9100px; right:-260px; transform:rotate(70deg)}
.page > *:not(.contours){position:relative; z-index:1}

/* ---------- nav ---------- */
.nav{position:sticky; top:0; z-index:60 !important; background:rgba(244,238,227,.93); backdrop-filter:blur(8px)}
.nav-in{max-width:1280px; margin:0 auto; padding:14px clamp(16px,3vw,40px); display:flex; flex-wrap:wrap; align-items:center; gap:12px 28px}
.logo{display:flex; align-items:center; gap:10px; font-weight:800; font-size:20px; color:var(--ink); text-decoration:none; letter-spacing:-.01em}
.logo:hover{color:var(--ink)}
.logo svg{width:36px; height:36px}
.nav-links{display:flex; flex-wrap:wrap; gap:6px 24px; list-style:none; margin:0 0 0 auto; padding:0}
.nav-links a{color:var(--ink); text-decoration:none; font-weight:600; font-size:16px; padding:8px 0; display:inline-block}
.nav-links a:hover{color:var(--clay)}

/* ---------- card stack ---------- */
.stack{display:flex; flex-direction:column; gap:56px; padding:20px clamp(16px,3vw,40px) 140px; timeline-scope:--c1,--c2,--c3,--c4,--c5}
.card{position:sticky; top:96px; width:100%; max-width:1280px; min-height:610px; margin:0 auto; border:2px solid var(--ink); border-radius:34px; padding:clamp(24px,4.4vw,60px); display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:clamp(24px,4vw,64px); align-items:center; transform-origin:50% 0; box-shadow:0 22px 50px -28px rgba(42,31,23,.55); overflow:hidden}
.c1{view-timeline-name:--c1} .c2{view-timeline-name:--c2} .c3{view-timeline-name:--c3} .c4{view-timeline-name:--c4} .c5{view-timeline-name:--c5}
.t-paper{background:var(--paper)}
.t-sun{background:var(--sun)}
.t-ink{background:var(--ink); color:var(--paper); border-color:var(--ink)}
.t-ink .eyebrow{color:var(--sun)}
.t-clay{background:var(--clay); color:var(--paper)}
.t-clay .eyebrow{color:var(--sun-soft)}
.t-sun .eyebrow{color:var(--ink)}
.t-close{background:var(--cream); grid-template-columns:minmax(0,1fr); text-align:center; justify-items:center}

/* effect A: deal on top (deck piles up, edges peek) */
.deal .c2{top:112px; rotate:.7deg}
.deal .c3{top:128px; rotate:-.6deg}
.deal .c4{top:144px; rotate:.5deg}
.deal .c5{top:160px}
/* effect B: tuck behind (earlier card sinks back) */
@supports (animation-timeline: view()){
  .tuck .c1{animation:tuck linear both; animation-timeline:--c2; animation-range:entry 0% entry 100%}
  .tuck .c2{animation:tuck linear both; animation-timeline:--c3; animation-range:entry 0% entry 100%}
  .tuck .c3{animation:tuck linear both; animation-timeline:--c4; animation-range:entry 0% entry 100%}
  .tuck .c4{animation:tuck linear both; animation-timeline:--c5; animation-range:entry 0% entry 100%}
}
@keyframes tuck{to{transform:scale(.9) translateY(-14px); filter:brightness(.78)}}

.tags{display:flex; flex-wrap:wrap; gap:8px; list-style:none; padding:0; margin:22px 0 0}
.tags li{border:2px solid currentColor; border-radius:999px; padding:4px 14px; font-size:15px; font-weight:600}
.scroll-hint{display:flex; align-items:center; gap:8px; margin:26px 0 0; font-family:var(--hand); font-size:22px; color:var(--clay)}
.scroll-hint svg{width:44px; height:40px}
.stats{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin:30px 0 0; padding:22px 0 0; border-top:2px dashed rgba(42,31,23,.3)}
.stats div{margin:0}
.stats dt{font-weight:800; font-size:26px; line-height:1.1; letter-spacing:-.01em}
.stats dd{margin:4px 0 0; font-size:14px; line-height:1.35; color:var(--ink-2)}
.card-art{position:absolute; pointer-events:none}
.card-art.sunrise{right:34px; top:26px; width:120px}
.card-art.arch{right:30px; bottom:22px; width:150px; opacity:.9}

.close-inner{max-width:860px}
.close-list{list-style:none; padding:0; margin:0 0 18px; display:grid; gap:4px}
.close-list li{font-size:clamp(24px,3vw,40px); font-weight:800; line-height:1.15; letter-spacing:-.015em; color:var(--ink-2)}
.close-and{font-size:clamp(24px,3vw,38px); font-weight:800; margin:10px 0 6px; line-height:1.2}
.hand-big{font-family:var(--hand); font-weight:700; font-size:clamp(46px,6vw,84px); color:var(--clay); margin:6px 0 0; line-height:1.05; transform:rotate(-2deg)}
.close-feet{width:70px; margin:0 auto 18px}

/* ---------- polaroids & placeholders ---------- */
.pola{position:relative; margin:0; background:#fff; padding:12px 12px 44px; box-shadow:0 18px 36px -18px rgba(42,31,23,.5); border-radius:4px}
.pola::before{content:""; position:absolute; top:-13px; left:50%; width:96px; height:28px; background:rgba(242,182,48,.6); transform:translateX(-50%) rotate(-4deg)}
.tilt-r{rotate:2.5deg} .tilt-l{rotate:-2.5deg}
.ph{display:flex; align-items:center; justify-content:center; text-align:center; padding:18px; aspect-ratio:4/3; background:repeating-linear-gradient(135deg,#ECE3D2 0 14px,#E3D7C1 14px 28px); color:var(--ink-2); font-family:var(--hand); font-size:19px; line-height:1.3}
.ph-tall{aspect-ratio:4/5}
.ph-port{aspect-ratio:4/5}
.ph-wide{aspect-ratio:16/10}
.pola img{display:block; width:100%; aspect-ratio:4/5; object-fit:cover}
.hike img{display:block; width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:18px}

/* ---------- marquee ---------- */
.marquee{background:var(--ink); color:var(--paper); width:104%; margin:-40px -2% 0; padding:14px 0; rotate:-1.5deg; overflow:hidden}
.mq-track{display:flex; width:max-content; animation:mq 46s linear infinite}
.mq-track span{white-space:nowrap; font-family:var(--hand); font-size:28px; padding-right:28px}
.mq-track b{color:var(--sun); font-weight:400; padding:0 12px}
@keyframes mq{to{transform:translateX(-50%)}}

/* ---------- trail waypoints ---------- */
.wp{position:relative; height:210px; display:flex; justify-content:center}
.wp-path{width:130px; height:210px}
.wp-path path{fill:none; stroke:var(--clay); stroke-width:3.2; stroke-linecap:round; stroke-dasharray:1 11}
.wp-art{position:absolute; top:50%; left:calc(50% + 96px); width:140px; transform:translateY(-50%) rotate(3deg)}
.wp-l .wp-art{left:auto; right:calc(50% + 96px); transform:translateY(-50%) rotate(-3deg)}
.wp-sign{position:absolute; top:22px; font-family:var(--hand); font-size:22px; color:var(--clay); white-space:nowrap}
.wp-r .wp-sign{right:calc(50% + 70px)}
.wp-l .wp-sign{left:calc(50% + 70px)}
.wp-dot{position:absolute; bottom:-8px; left:50%; width:18px; height:18px; margin-left:-9px; border-radius:50%; background:var(--sun); border:2px solid var(--ink)}
.trailhead{height:240px}
.trailhead .wp-art{width:110px}
@supports (animation-timeline: view()){
  .wp-path{animation:draw linear both; animation-timeline:view(); animation-range:entry 20% cover 55%}
  .wp-art{animation:pop linear both; animation-timeline:view(); animation-range:entry 30% cover 45%}
  .wp-l .wp-art{animation-name:popl}
}
@keyframes draw{from{clip-path:inset(0 0 100% 0)} to{clip-path:inset(0 0 0 0)}}
@keyframes pop{from{opacity:0; transform:translateY(-30%) rotate(-8deg) scale(.85)} to{opacity:1; transform:translateY(-50%) rotate(3deg) scale(1)}}
@keyframes popl{from{opacity:0; transform:translateY(-30%) rotate(8deg) scale(.85)} to{opacity:1; transform:translateY(-50%) rotate(-3deg) scale(1)}}

/* ---------- sections ---------- */
.sec{max-width:1240px; margin:0 auto; padding:30px clamp(16px,4vw,48px)}
.about-grid{display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:clamp(32px,6vw,90px); align-items:center}
.about-photo{padding:20px}
.cred{display:flex; gap:18px; align-items:flex-start; margin-top:30px; padding:20px 22px; border:2px dashed rgba(42,31,23,.35); border-radius:20px; background:var(--paper)}
.cred svg{width:64px; flex:none}
.cred p{margin:0; font-size:16px; color:var(--ink-2)}
.cred .cred-t{font-weight:800; color:var(--ink); font-size:18px; margin-bottom:4px}

.hikes-intro{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(24px,5vw,72px); align-items:start; margin-bottom:44px}
.hikes-intro .punch{font-family:var(--hand); font-weight:700; font-size:26px; color:var(--clay); margin:0; line-height:1.3}
.hikes-intro p{margin:0 0 16px}
.hikes-intro .solo{font-size:16px; color:var(--ink-2); border-left:0; padding:14px 18px; background:var(--paper); border-radius:16px; border:2px solid rgba(42,31,23,.15)}
.hike-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px}
.hike{background:var(--paper); border:2px solid var(--ink); border-radius:28px; padding:16px 16px 24px; display:flex; flex-direction:column}
.hike .ph{border-radius:18px; aspect-ratio:16/9}
.hike-body{padding:20px 8px 0; display:flex; flex-direction:column; flex:1}
.hike .tags{margin:0 0 14px}
.hike .tags li{font-size:13px; padding:2px 12px; border-color:rgba(42,31,23,.4)}
.hike p{margin:0 0 18px; color:var(--ink-2); font-size:17px}
.price{margin-top:auto; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; padding-top:16px; border-top:2px dashed rgba(42,31,23,.25)}
.price strong{font-size:22px; font-weight:800}
.price span{font-size:14px; color:var(--ink-2); display:block}
.center-row{display:flex; justify-content:center; margin-top:36px}

.book-head{max-width:720px; margin-bottom:36px}
.book-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px}
.route{border:2px solid var(--ink); border-radius:28px; padding:clamp(24px,3vw,40px); background:var(--paper); display:flex; flex-direction:column}
.route.alt{background:var(--sun)}
.route .tagline{font-family:var(--hand); font-size:24px; color:var(--clay); margin:0 0 4px}
.route.alt .tagline{color:var(--ink)}
.steps{list-style:none; padding:0; margin:18px 0 26px; display:grid; gap:18px; counter-reset:s}
.steps li{display:grid; grid-template-columns:44px minmax(0,1fr); gap:14px; counter-increment:s; font-size:17px}
.steps li::before{content:counter(s); width:44px; height:44px; border-radius:50%; border:2px solid var(--ink); display:flex; align-items:center; justify-content:center; font-family:var(--hand); font-weight:700; font-size:22px; background:var(--paper)}
.steps b{display:block; font-size:18px}
.route .btn{margin-top:auto; align-self:flex-start}
.notes{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; margin-top:28px}
.note{border-radius:22px; padding:22px 24px; font-size:16px; color:var(--ink-2); border:2px dashed rgba(42,31,23,.3)}
.note.wa{display:flex; flex-wrap:wrap; gap:14px; align-items:center; justify-content:space-between; background:var(--paper); border-style:solid; color:var(--ink)}
.note.wa p{margin:0; flex:1 1 260px}

.incl-grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px; margin:30px 0 22px}
.incl{padding:22px; border-radius:22px; background:var(--paper); border:2px solid rgba(42,31,23,.18)}
.incl svg{width:52px; height:52px; margin-bottom:12px}
.incl b{display:block; font-size:19px; margin-bottom:4px}
.incl p{margin:0; font-size:16px; color:var(--ink-2)}
.not-incl{font-size:16px; color:var(--ink-2); max-width:80ch}

.heart{background:var(--ink); color:var(--paper); border-radius:40px; padding:clamp(32px,6vw,80px); position:relative}
.heart .eyebrow{color:var(--sun)}
.heart blockquote{margin:0; font-size:clamp(28px,3.6vw,48px); font-weight:800; line-height:1.15; letter-spacing:-.015em; max-width:24ch}
.heart .sig{color:var(--sun-soft); margin-top:16px}
.vals{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px; margin-top:44px; padding-top:32px; border-top:2px dashed rgba(251,247,239,.3)}
.vals b{display:block; color:var(--sun); font-size:19px; margin-bottom:6px}
.vals p{margin:0; font-size:16px; color:#E6DDD0}
.heart-art{position:absolute; right:clamp(20px,5vw,70px); top:clamp(20px,4vw,60px); width:110px}
.heart-art *{stroke:var(--paper)}

.rev-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; margin:30px 0}
.rev{background:var(--paper); border-radius:6px; padding:30px 26px 26px; box-shadow:0 16px 30px -18px rgba(42,31,23,.5); position:relative}
.rev::before{content:""; position:absolute; top:-12px; left:30px; width:80px; height:24px; background:rgba(179,76,34,.35); rotate:-4deg}
.rev:nth-child(1){rotate:-1.5deg} .rev:nth-child(2){rotate:1deg} .rev:nth-child(3){rotate:-.6deg}
.rev q{display:block; font-size:19px; font-weight:600; line-height:1.4; margin-bottom:16px}
.rev p{margin:0; font-family:var(--hand); font-size:18px; color:var(--clay)}
.rev-cta{text-align:center; color:var(--ink-2)}
.snaps{display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:22px; margin:10px 0 40px; padding:22px 4px 10px}
.snap{margin:0; background:#fff; padding:9px 9px 0; border-radius:4px; box-shadow:0 14px 28px -16px rgba(42,31,23,.55); position:relative; transition:transform .2s ease}
.snap::before{content:""; position:absolute; top:-11px; left:50%; width:64px; height:22px; background:rgba(242,182,48,.6); transform:translateX(-50%) rotate(-5deg)}
.snap:nth-child(odd){rotate:-2.5deg} .snap:nth-child(even){rotate:2deg; margin-top:18px} .snap:nth-child(3n){rotate:-1deg}
.snap:hover{transform:scale(1.04); z-index:2}
.snap img{display:block; width:100%; aspect-ratio:4/5; object-fit:cover}
.snap figcaption{font-family:var(--hand); font-size:18px; line-height:1.2; color:var(--ink-2); text-align:center; padding:9px 2px 11px}
@media (max-width: 900px){
  .snaps{display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:20px; padding:24px 16px 18px; margin:0 -16px 30px}
  .snap{flex:0 0 200px; scroll-snap-align:center}
}
@media (prefers-reduced-motion: reduce){ .snap{transition:none} }

.faq-wrap{max-width:900px; margin:0 auto}
.faq-head{display:flex; flex-wrap:wrap; justify-content:space-between; gap:18px; align-items:end; margin-bottom:24px}
.faq-head p{margin:0; max-width:40ch; color:var(--ink-2); font-size:17px}
details{border-bottom:2px dashed rgba(42,31,23,.25)}
summary{list-style:none; cursor:pointer; padding:20px 44px 20px 0; position:relative; font-weight:700; font-size:20px}
summary::-webkit-details-marker{display:none}
summary::after{content:"+"; position:absolute; right:6px; top:50%; transform:translateY(-50%); width:32px; height:32px; border-radius:50%; border:2px solid var(--ink); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:20px; line-height:1}
details[open] summary::after{content:"–"; background:var(--sun)}
details p{margin:0 0 20px; color:var(--ink-2); max-width:70ch}

.closing{text-align:center; padding-top:10px}
.closing .h2{font-size:clamp(46px,7vw,96px)}
.closing p{margin:0 auto; max-width:46ch; font-size:20px}
.lighthouse{width:min(260px,60vw); margin:0 auto -6px}
.closing .sig{margin:28px auto 0; transform:rotate(-3deg); transform-origin:center}

/* ---------- ocean footer ---------- */
.sea-edge{display:block; width:100%; height:80px; margin-top:40px}
.sea-edge path{fill:var(--sea); stroke:none}
.sea-edge .w2{fill:none; stroke:var(--paper); stroke-width:2; opacity:.35; stroke-dasharray:2 10; stroke-linecap:round}
.foot{background:var(--sea); color:var(--paper); padding:30px clamp(16px,4vw,48px) 0; margin-top:-2px}
.foot-in{max-width:1240px; margin:0 auto}
.foot a{color:var(--sun-soft)} .foot a:hover{color:var(--paper)}
.hosts{display:flex; flex-wrap:wrap; gap:18px 30px; align-items:center; justify-content:space-between; padding:26px 30px; border:2px solid rgba(251,247,239,.35); border-radius:26px; margin-bottom:54px}
.hosts p{margin:0; flex:1 1 380px; font-size:17px}
.hosts b{display:block; font-family:var(--hand); font-size:24px; color:var(--sun); font-weight:700}
.foot-grid{display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr); gap:36px}
.foot-grid h3{margin:0 0 10px; font-size:15px; text-transform:uppercase; letter-spacing:.12em; color:var(--sun)}
.foot-grid p{margin:0; font-size:16px; color:#D9E3EA}
.foot-grid ul{list-style:none; padding:0; margin:0; display:grid; gap:8px; font-size:16px}
.foot-brand{font-weight:800; font-size:24px; margin:0 0 8px; color:var(--paper)}
.legal{display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:44px; padding-top:20px; border-top:1px solid rgba(251,247,239,.25); font-size:14px; color:#C9D6DF}
.giant{font-family:var(--hand); font-weight:700; font-size:clamp(90px,22vw,320px); line-height:.8; text-align:center; color:rgba(251,247,239,.12); margin:30px 0 0; letter-spacing:.02em; user-select:none}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  .mq-track{animation:none}
  .tuck .card, .wp-path, .wp-art{animation:none !important}
  .btn{transition:none}
}

/* ---------- tablet / phone ---------- */
@media (max-width: 900px){
  .card{grid-template-columns:minmax(0,1fr); min-height:0; top:16px; gap:22px; padding:24px 22px 28px; border-radius:26px}
  .deal .c2{top:26px} .deal .c3{top:36px} .deal .c4{top:46px} .deal .c5{top:56px}
  .card .pola{max-width:260px; padding:8px 8px 26px; justify-self:center}
  .card .ph, .card .pola img{aspect-ratio:16/10}
  .card .btns{margin-top:20px}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 16px; margin-top:20px; padding-top:16px}
  .stats dt{font-size:20px} .stats dd{font-size:13px}
  .scroll-hint{display:none}
  .card-art.sunrise{width:70px; right:16px; top:16px}
  .card-art.arch{display:none}
  .nav{position:relative}
  .nav-links{order:3; width:100%; margin:0; gap:4px 20px}
  .nav-in .btn{margin-left:auto}
  .nav-in{gap:10px 12px}
  .logo{font-size:18px; gap:8px}
  .logo svg{width:30px; height:30px}
  .nav-in .btn{padding:0 16px}
  .about-grid,.hikes-intro,.hike-grid,.book-grid,.notes{grid-template-columns:minmax(0,1fr)}
  .about-photo{max-width:340px; margin:0 auto}
  .incl-grid,.vals{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rev-grid{grid-template-columns:minmax(0,1fr)}
  .foot-grid{grid-template-columns:minmax(0,1fr)}
  .heart-art{display:none}
  .wp-art{width:96px; left:calc(50% + 70px)}
  .wp-l .wp-art{right:calc(50% + 70px)}
  .wp-sign{font-size:18px}
}
@media (max-width: 520px){
  .incl-grid,.vals{grid-template-columns:minmax(0,1fr)}
  .stack{gap:40px}
  .h1{font-size:40px}
  .lede{font-size:18px}
}

/* ---------- buttons in hike cards ---------- */
.price-btns{display:flex; flex-wrap:wrap; gap:8px}
:focus-visible{outline:3px solid var(--sun); outline-offset:3px}
.skip{position:absolute; left:-9999px; top:10px; z-index:100; background:var(--ink); color:var(--paper); padding:10px 18px; border-radius:999px; font-weight:700; text-decoration:none}
.skip:focus{left:16px; color:var(--paper)}

/* ---------- trail reveal for browsers without scroll-driven animation (set by script.js) ---------- */
.js-reveal .wp-path{clip-path:inset(0 0 100% 0); transition:clip-path 1.4s ease}
.js-reveal .wp-art{opacity:0; transform:translateY(-35%) rotate(-6deg) scale(.9); transition:opacity .6s ease .3s, transform .6s ease .3s}
.js-reveal .wp-l .wp-art{transform:translateY(-35%) rotate(6deg) scale(.9)}
.js-reveal .wp.is-in .wp-path{clip-path:inset(0 0 0 0)}
.js-reveal .wp.is-in .wp-art{opacity:1; transform:translateY(-50%) rotate(3deg)}
.js-reveal .wp-l.is-in .wp-art{transform:translateY(-50%) rotate(-3deg)}

/* ---------- inner pages ---------- */
.sub-head{max-width:880px; margin:0 auto; padding:56px clamp(16px,4vw,48px) 16px}
.sub-head .h1{font-size:clamp(40px,6vw,76px); margin-bottom:8px}
.prose{max-width:820px; margin:0 auto; padding:10px clamp(16px,4vw,48px) 40px}
.prose h2{font-size:clamp(26px,3vw,34px); font-weight:800; letter-spacing:-.01em; line-height:1.1; margin:44px 0 12px}
.prose p{margin:0 0 16px}
.todo{display:block; margin:12px 0 22px; padding:18px 20px; border:2px dashed rgba(42,31,23,.35); border-radius:18px; background:var(--paper); font-family:var(--hand); font-size:20px; line-height:1.4; color:var(--ink-2)}
.route-list{display:grid; gap:18px; margin:18px 0 10px}
.route-item{padding:22px 24px 6px; background:var(--paper); border:2px solid rgba(42,31,23,.15); border-radius:22px}
.route-item h3{margin:0 0 4px; font-size:23px; letter-spacing:-.01em}
.story-photo{max-width:340px; margin:10px auto 34px}

/* ---------- enquiry form ---------- */
.form-wrap{max-width:880px; margin:0 auto; padding:0 clamp(16px,4vw,48px) 40px}
.form{background:var(--paper); border:2px solid var(--ink); border-radius:28px; padding:clamp(22px,4vw,44px); display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 22px}
.field{display:flex; flex-direction:column; gap:6px; min-width:0}
.field.full{grid-column:1 / -1}
.field label{font-weight:700; font-size:16px}
.field .hint{font-size:14px; color:var(--ink-2); margin:0}
.field input,.field select,.field textarea{font:inherit; font-size:17px; color:var(--ink); background:#fff; border:2px solid rgba(42,31,23,.35); border-radius:14px; padding:12px 14px; min-height:50px; width:100%}
.field textarea{min-height:120px; resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid var(--sun); outline-offset:1px; border-color:var(--ink)}
.check{grid-column:1 / -1; display:flex; gap:12px; align-items:flex-start; font-size:16px; color:var(--ink-2)}
.check input{width:22px; height:22px; margin:2px 0 0; accent-color:var(--clay); flex:none}
.hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden}
.form .btn{justify-self:start; cursor:pointer}
.form .btn[disabled]{opacity:.6; cursor:wait}
.form-status{grid-column:1 / -1; margin:0; font-weight:700}
.form-status:empty{display:none}
.form-status.ok{color:#1F6B3A}
.form-status.err{color:var(--clay)}
.form-wrap .note.wa{margin-top:28px}
@media (max-width: 700px){ .form{grid-template-columns:minmax(0,1fr)} }
