:root {
  --pine: #7f8d82;
  --pine-deep: #4f666d;
  --blue: #657a82;
  --sky: #e8efed;
  --sand: #ece8e1;
  --cream: #f6f4ef;
  --paper: #fdfcf9;
  --clay: #566d75;
  --clay-soft: #9aa79d;
  --ink: #33484e;
  --muted: #65736f;
  --line: rgba(51, 72, 78, 0.16);
  --serif: "Cormorant Garamond", Georgia, serif;
  --sans: "Manrope", Arial, sans-serif;
  --script: "Oooh Baby", "Segoe Print", cursive;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--sans); font-size: 16px; line-height: 1.65; }
a { color: inherit; }
img { display: block; max-width: 100%; }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 99; padding: .75rem 1rem; background: white; }
.skip-link:focus { top: 1rem; }

.site-header { position: absolute; inset: 0 0 auto; z-index: 10; color: white; border-bottom: 1px solid rgba(255,255,255,.28); }
.site-header.inner { position: relative; background: var(--pine-deep); }
.nav { width: min(1240px, calc(100% - 48px)); min-height: 84px; margin: auto; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.brand { text-decoration: none; font-family: var(--serif); font-size: clamp(1.35rem, 2.2vw, 1.8rem); font-weight: 600; letter-spacing: .02em; }
.nav-links { display: flex; align-items: center; gap: 1.7rem; font-size: .84rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.nav-links a { text-decoration: none; }
.nav-links a:hover, .nav-links a:focus-visible { text-decoration: underline; text-underline-offset: .35rem; }
.nav-toggle { display: none; border: 0; background: transparent; color: white; font: inherit; font-weight: 700; }

.button { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: .8rem 1.35rem; border: 1px solid currentColor; text-decoration: none; font-size: .8rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; transition: transform .2s ease, background .2s ease, color .2s ease; }
.button:hover { transform: translateY(-2px); }
.button.light { background: var(--paper); color: var(--pine-deep); border-color: var(--paper); }
.button.ghost { color: white; background: rgba(255,255,255,.06); }
.button.dark { color: white; background: var(--blue); border-color: var(--blue); }

.hero { min-height: 92svh; position: relative; display: grid; align-items: end; color: white; background:
  linear-gradient(110deg, rgba(38,61,64,.74) 0%, rgba(44,67,69,.45) 48%, rgba(48,70,70,.16) 100%),
  url('/assets/dusk-exterior.webp') center 42% / cover no-repeat; overflow: hidden; }
.hero::after { content: ""; position: absolute; inset: 0; opacity: .24; background: radial-gradient(circle at 82% 28%, transparent 0 15%, rgba(255,255,255,.18) 15.2% 15.5%, transparent 15.8%), linear-gradient(135deg, transparent 63%, rgba(255,255,255,.09) 63.2% 64%, transparent 64.2%); }
.hero-content { position: relative; z-index: 1; width: min(1240px, calc(100% - 48px)); margin: 0 auto; padding: 12rem 0 7rem; }
.eyebrow { margin: 0 0 1.1rem; font-size: .77rem; font-weight: 800; letter-spacing: .17em; text-transform: uppercase; }
.script-note { margin: 0 0 .7rem; color: var(--clay); font-family: var(--script); font-size: clamp(3.2rem, 5.7vw, 5.9rem); line-height: 1.04; font-weight: 400; letter-spacing: -.015em; }
.hero-script, .page-hero .script-note, .cta .script-note { color: #f7f4ed; text-shadow: 0 2px 16px rgba(42,54,52,.24); }
h1,h2,h3 { font-family: var(--serif); line-height: .98; font-weight: 500; }
h1 { max-width: 850px; margin: 0; font-size: clamp(3.4rem, 8.2vw, 7.4rem); letter-spacing: -.035em; }
.hero-copy { max-width: 690px; margin: 1.7rem 0 2.2rem; font-size: clamp(1.05rem, 1.7vw, 1.3rem); }
.hero-actions { display: flex; flex-wrap: wrap; gap: .8rem; }

.facts { position: relative; z-index: 2; margin-top: -1px; background: var(--cream); border-bottom: 1px solid var(--line); }
.facts-inner { width: min(1240px, calc(100% - 48px)); margin: auto; display: grid; grid-template-columns: repeat(5, 1fr); }
.fact { padding: 1.35rem 1rem; text-align: center; border-right: 1px solid var(--line); font-size: .75rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.fact:last-child { border-right: 0; }
.paw { display: inline-block; margin-right: .38rem; color: var(--blue); font-family: "Segoe UI Symbol", "Apple Symbols", sans-serif; font-size: 1.02rem; line-height: 1; filter: grayscale(1); transform: translateY(.06em); }
.proof-strip { background: var(--paper); border-bottom: 1px solid var(--line); }
.proof-strip-inner { width: min(960px, calc(100% - 48px)); margin: auto; padding: 2rem 0; display: grid; grid-template-columns: 1fr auto; gap: 2rem; align-items: center; }
.proof-strip blockquote { margin: 0; font-family: var(--serif); font-size: clamp(1.3rem, 2.2vw, 1.8rem); line-height: 1.3; }
.proof-strip footer { padding: 0; color: var(--muted); background: transparent; font-family: var(--sans); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }

.section { padding: clamp(5rem, 9vw, 9rem) 0; }
.container { width: min(1180px, calc(100% - 48px)); margin: auto; }
.narrow { width: min(810px, calc(100% - 48px)); margin: auto; }
.section h2 { margin: 0 0 1.4rem; font-size: clamp(2.7rem, 5.7vw, 5.4rem); letter-spacing: -.025em; }
.lede { font-size: clamp(1.16rem, 2vw, 1.45rem); color: var(--muted); }
.split { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr); gap: clamp(3rem, 7vw, 7rem); align-items: center; }
.visual-frame { min-height: 620px; background: linear-gradient(rgba(11,42,39,.03),rgba(11,42,39,.08)), url('/assets/living-room.webp') center / cover no-repeat; position: relative; overflow: hidden; }
.visual-frame::before { content: "Coastal ease."; position: absolute; left: 2rem; bottom: 4.2rem; color: white; text-shadow: 0 2px 22px rgba(0,0,0,.38); font-family: var(--serif); font-size: clamp(2rem, 4vw, 4.3rem); }
.visual-frame::after { content: "Serena & Lily in the Blue Ridge"; position: absolute; left: 2.2rem; bottom: 1.8rem; color: white; text-shadow: 0 2px 14px rgba(0,0,0,.5); font-size: .76rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.detail-list { margin: 2rem 0 2.5rem; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.detail-list li { display: flex; justify-content: space-between; gap: 2rem; padding: .9rem 0; border-bottom: 1px solid var(--line); }
.detail-list span:first-child { font-weight: 700; }

.season { color: var(--ink); background: var(--cream); border-block: 1px solid var(--line); }
.season-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(3rem, 8vw, 8rem); align-items: end; }
.season h2 { color: var(--ink); }
.season .lede { color: var(--muted); }
.season .button.light { color: white; background: var(--blue); border-color: var(--blue); }
.fall-window { border-left: 2px solid var(--pine); padding-left: 2rem; }
.fall-window p { margin: .35rem 0; }
.fall-window strong { font-family: var(--serif); font-size: 2rem; font-weight: 500; }

.cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; margin-top: 3rem; }
.card { min-height: 420px; padding: 2rem; display: flex; flex-direction: column; justify-content: flex-end; color: white; background-position: center; background-size: cover; border: 1px solid var(--line); position: relative; isolation: isolate; }
.card::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(transparent 30%, rgba(42,62,63,.76)); }
.card:nth-child(1) { background-image: url('/assets/mountain-view.webp'); }
.card:nth-child(2) { background-image: url('/assets/living-room.webp'); }
.card:nth-child(3) { background-image: url('/assets/bonus-room.webp'); }
.card h3 { margin: 0 0 .7rem; font-size: 2.1rem; }
.card p { margin: 0; }

.proximity { background: var(--sky); }
.proximity-heading, .trip-heading, .interest-heading { display: grid; grid-template-columns: .95fr 1.05fr; gap: clamp(2.5rem, 7vw, 7rem); align-items: end; margin-bottom: 3.5rem; }
.proximity-heading h2, .trip-heading h2, .interest-heading h2 { margin-bottom: 0; }
.proximity-heading .lede, .trip-heading .lede, .interest-heading .lede { margin: 0; }
.proximity-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(30,41,39,.25); border-bottom: 1px solid rgba(30,41,39,.25); }
.proximity-grid article { padding: 2.2rem clamp(1.2rem, 3vw, 2.5rem); border-right: 1px solid rgba(30,41,39,.25); }
.proximity-grid article:first-child { padding-left: 0; }
.proximity-grid article:last-child { padding-right: 0; border-right: 0; }
.proximity-grid h3 { margin: .4rem 0 1rem; font-size: clamp(2.1rem, 3vw, 3rem); }
.place-time { margin: 0; color: var(--clay); font-size: .75rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.proximity-link { margin: 2.2rem 0 0; font-weight: 800; }
.proximity-link a { text-underline-offset: .3rem; }

.owner-welcome { background: var(--sky); }
.owner-welcome-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(3rem, 8vw, 8rem); align-items: start; }
.owner-welcome .script-note { max-width: 11ch; margin-bottom: 1.2rem; font-size: clamp(3rem, 4.6vw, 4.7rem); line-height: .98; }
.owner-welcome h2 { margin-bottom: 0; font-size: clamp(3rem, 4.8vw, 4.8rem); line-height: .98; }
.owner-copy { margin-top: .4rem; font-family: var(--serif); font-size: clamp(1.55rem, 2.5vw, 2.25rem); line-height: 1.4; }
.owner-signature { margin-top: 2rem; color: var(--clay); font-size: .78rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }

.reviews { background: var(--paper); }
.reviews-heading { display: grid; grid-template-columns: .7fr 1.3fr; gap: clamp(2rem, 7vw, 7rem); align-items: end; margin-bottom: 3.5rem; }
.reviews-heading h2 { margin-bottom: 0; }
.reviews-heading .lede { margin: 0; }
.review-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.review-card { min-height: 350px; margin: 0; padding: clamp(1.7rem, 3vw, 2.7rem); display: flex; flex-direction: column; background: var(--cream); border: 1px solid var(--line); }
.review-card.featured { color: white; background: var(--pine-deep); }
.stars { margin: 0 0 1.3rem; color: var(--clay); font-size: 1rem; letter-spacing: .16em; }
.featured .stars { color: #f0c393; }
.review-card h3 { margin: 0 0 1.1rem; font-size: clamp(1.7rem, 2.6vw, 2.5rem); line-height: 1.08; }
.review-card blockquote { margin: 0 0 2rem; font-family: var(--serif); font-size: clamp(1.25rem, 1.7vw, 1.65rem); line-height: 1.4; }
.review-card footer { margin-top: auto; padding: 0; color: inherit; background: transparent; font-size: .75rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.cta { color: white; text-align: center; background: var(--pine-deep); }
.cta h2 { max-width: 900px; margin-inline: auto; }
.cta p:not(.script-note) { max-width: 650px; margin: 0 auto 2rem; font-size: 1.15rem; }

.page-hero { padding: 8rem 0 5.5rem; color: white; background: var(--pine-deep); }
.page-hero.photo { min-height: 68svh; display: flex; align-items: end; padding-top: 13rem; background-position: center; background-size: cover; }
.page-hero.house-photo { background-image: linear-gradient(90deg,rgba(51,79,84,.69),rgba(51,79,84,.12)), url('/assets/day-exterior.webp'); }
.page-hero.fall-photo { background-image: linear-gradient(90deg,rgba(54,76,76,.7),rgba(54,76,76,.16)), url('/assets/porch.webp'); background-position: center 54%; }
.page-hero.explore-photo { background-image: linear-gradient(270deg,rgba(44,65,71,.76),rgba(44,65,71,.08) 72%), url('/assets/bikes-arrival.webp'); background-position: center 58%; }
.explore-photo .hero-copy-panel { width: min(650px, 56%); margin-left: auto; }
.page-hero h1 { font-size: clamp(3.2rem, 7vw, 6.5rem); }
.page-hero p:not(.script-note) { max-width: 760px; margin: 1.5rem 0 0; color: rgba(255,255,255,.88); font-size: 1.2rem; }
.prose h2 { margin-top: 4rem; font-size: clamp(2.2rem, 4vw, 3.8rem); }
.prose h3 { margin: 2.4rem 0 .6rem; font-size: 2rem; }
.prose p, .prose li { color: #46514f; }
.prose a { color: var(--pine); font-weight: 700; }
.page-hero + .section { padding-top: clamp(4rem, 7vw, 7rem); padding-bottom: clamp(4rem, 7vw, 7rem); }
.room-tour { padding-top: 1rem; }
.room-cluster { padding: clamp(3.5rem, 7vw, 7rem) 0; border-top: 1px solid var(--line); }
.room-cluster:first-child { border-top: 0; }
.room-cluster-heading { display: grid; grid-template-columns: minmax(240px,.72fr) 1.28fr; gap: clamp(2rem, 7vw, 7rem); align-items: end; margin-bottom: 2.5rem; }
.room-cluster-heading h2 { margin: 0; }
.room-cluster-heading p { margin: 0; }
.photo-grid { display: grid; grid-template-columns: repeat(12,1fr); grid-auto-rows: 240px; gap: 1rem; }
.photo-grid figure { position: relative; grid-column: span 4; margin: 0; overflow: hidden; background: var(--cream); }
.photo-grid figure.span-5 { grid-column: span 5; }
.photo-grid figure.span-6 { grid-column: span 6; }
.photo-grid figure.span-7 { grid-column: span 7; }
.photo-grid figure.span-8 { grid-column: span 8; }
.photo-grid figure.span-12 { grid-column: span 12; }
.photo-grid figure.tall { grid-row: span 2; }
.photo-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.photo-grid figure:hover img { transform: scale(1.025); }
.photo-grid figcaption { position: absolute; inset: auto 0 0; padding: 2.5rem 1.25rem 1rem; color: white; background: linear-gradient(transparent,rgba(42,61,66,.72)); font-size: .76rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.photo-note { margin: 1rem 0 0; color: var(--muted); font-size: .9rem; }
.good-to-know { background: var(--sky); }
.booking-heading { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(2.5rem, 7vw, 7rem); align-items: end; margin-bottom: 3.5rem; }
.booking-heading h2, .booking-heading .lede { margin-bottom: 0; }
.booking-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); }
.booking-item { padding: 2rem clamp(1rem, 2.5vw, 2.2rem); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.booking-item:nth-child(3n+1) { padding-left: 0; }
.booking-item:nth-child(3n) { padding-right: 0; border-right: 0; }
.booking-item h3 { margin: .35rem 0 .65rem; font-size: clamp(1.6rem, 2.4vw, 2.25rem); }
.booking-item p { margin: 0; color: var(--muted); }
.booking-kicker { margin: 0; color: var(--clay); font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.booking-actions { margin-top: 2.5rem; display: flex; justify-content: space-between; align-items: center; gap: 2rem; }
.booking-actions p { margin: 0; }
.booking-actions a:not(.button) { font-weight: 800; text-underline-offset: .3rem; }
.policy-note { max-width: 760px; margin: 1.2rem 0 0; color: var(--muted); font-size: .88rem; }
.related { padding: 0; background: var(--paper); border-bottom: 1px solid var(--line); }
.related-inner { display: grid; grid-template-columns: repeat(2, 1fr); }
.related a { padding: 2rem; text-decoration: none; border-right: 1px solid var(--line); }
.related a:first-child { padding-left: 0; }
.related a:last-child { padding-right: 0; border-right: 0; }
.related a:hover strong, .related a:focus-visible strong { text-decoration: underline; text-underline-offset: .35rem; }
.related span { display: block; color: var(--clay); font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.related strong { display: block; margin-top: .35rem; font-family: var(--serif); font-size: clamp(1.5rem, 2.4vw, 2.15rem); font-weight: 500; }
.image-break { width: min(1180px, calc(100% - 48px)); margin: 0 auto; }
.image-break img { width: 100%; max-height: 690px; object-fit: cover; }
.day-to-dusk { width: min(1180px, calc(100% - 48px)); margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.day-to-dusk figure { margin: 0; position: relative; overflow: hidden; background: var(--cream); }
.day-to-dusk img { width: 100%; height: 430px; object-fit: cover; }
.day-to-dusk figcaption { position: absolute; inset: auto 0 0; padding: 3rem 1.4rem 1.1rem; color: white; background: linear-gradient(transparent,rgba(42,61,66,.72)); font-size: .76rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }

.trip-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.trip-card { min-height: 330px; padding: clamp(1.7rem, 3vw, 2.5rem); display: flex; flex-direction: column; background: var(--cream); border: 1px solid var(--line); }
.trip-card.big-day { color: white; background: var(--blue); }
.trip-card.big-day .place-time { color: #f4c5a8; }
.trip-card h3, .interest-card h3 { margin: .65rem 0 1rem; font-size: clamp(2.2rem, 4vw, 3.7rem); }
.trip-card a, .interest-card a { margin-top: auto; padding-top: 1.6rem; font-weight: 800; text-underline-offset: .3rem; }
.interests { background: var(--cream); }
.interest-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.interest-card { min-height: 350px; padding: clamp(1.6rem, 3vw, 2.5rem); display: flex; flex-direction: column; background: var(--paper); border: 1px solid var(--line); }
.interest-card h3 { font-size: clamp(2rem, 3.2vw, 3rem); }
.interest-number { margin: 0; color: var(--clay); font-family: var(--serif); font-size: 1.5rem; }
.source-note { max-width: 850px; margin: 2.2rem 0 0; color: var(--muted); font-size: .9rem; }
.further-afield { margin-top: 1rem; padding: clamp(1.8rem, 4vw, 3rem); display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(2rem, 6vw, 6rem); align-items: center; color: white; background: var(--blue); }
.further-afield .place-time { color: white; }
.further-afield h3 { margin: .5rem 0 0; font-size: clamp(2.2rem, 4vw, 3.7rem); }
.further-afield p { margin: 0 0 1rem; }
.further-afield a { font-weight: 800; text-underline-offset: .3rem; }

.fall-intro { background: var(--paper); }
.fall-intro-grid, .foliage-heading { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(3rem, 8vw, 8rem); align-items: end; }
.fall-intro-grid h2, .foliage-heading h2 { margin-bottom: 0; }
.fall-intro-grid .lede, .foliage-heading .lede { margin-top: 0; }
.fall-tools { background: var(--sky); }
.fall-tools-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.fall-tools a { min-height: 230px; padding: 2.2rem; display: flex; flex-direction: column; text-decoration: none; border-right: 1px solid var(--line); }
.fall-tools a:first-child { padding-left: 0; }
.fall-tools a:last-child { padding-right: 0; border-right: 0; }
.fall-tools a:hover strong, .fall-tools a:focus-visible strong { text-decoration: underline; text-underline-offset: .35rem; }
.fall-tools span { color: var(--clay); font-family: var(--serif); font-size: 1.4rem; }
.fall-tools strong { margin: auto 0 .7rem; font-family: var(--serif); font-size: clamp(1.7rem, 2.6vw, 2.35rem); line-height: 1.05; font-weight: 500; }
.fall-tools small { color: var(--muted); font-size: .9rem; }
.foliage { background: var(--cream); }
.foliage-heading { margin-bottom: 3.5rem; }
.foliage-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.foliage-card { min-height: 340px; padding: clamp(1.8rem, 4vw, 3rem); display: flex; flex-direction: column; background: var(--paper); border: 1px solid var(--line); }
.foliage-card:nth-child(2), .foliage-card:nth-child(3) { background: #eef4f3; }
.foliage-card h3 { margin: .65rem 0 1rem; font-size: clamp(2.25rem, 4vw, 3.6rem); }
.foliage-card a { margin-top: auto; padding-top: 1.5rem; font-weight: 800; text-underline-offset: .3rem; }
.fall-plan { background: var(--paper); }
.fall-plan-heading { max-width: 850px; margin-bottom: 3rem; }
.fall-days { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); }
.fall-days article { padding: 2rem clamp(1.2rem, 3vw, 2.5rem); border-right: 1px solid var(--line); }
.fall-days article:first-child { padding-left: 0; }
.fall-days article:last-child { padding-right: 0; border-right: 0; }
.fall-days span { color: var(--clay); font-size: .77rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.fall-days h3 { margin: .65rem 0 .8rem; font-size: 2.25rem; }

footer { padding: 3.5rem 0; color: white; background: var(--pine-deep); }
.footer-grid { width: min(1180px, calc(100% - 48px)); margin: auto; display: grid; grid-template-columns: 1fr auto; gap: 2rem; align-items: end; }
.footer-brand { font-family: var(--serif); font-size: 2rem; }
.footer-meta { color: rgba(255,255,255,.65); font-size: .85rem; }
.footer-question { display: inline-block; margin-top: .55rem; color: white; font-size: .86rem; font-weight: 700; text-underline-offset: .28rem; }
.mobile-book-bar { display: none; }

@media (max-width: 820px) {
  .nav { min-height: 72px; }
  .nav-toggle { display: block; }
  .nav-links { position: absolute; top: 72px; left: 0; right: 0; display: none; padding: 1.5rem 24px 2rem; background: var(--pine-deep); flex-direction: column; align-items: flex-start; }
  .nav-links.open { display: flex; }
  .facts-inner { grid-template-columns: repeat(2,1fr); }
  .fact { border-bottom: 1px solid var(--line); }
  .fact:last-child { grid-column: 1 / -1; }
  .split, .season-grid, .cards, .reviews-heading, .review-grid, .proximity-heading, .trip-heading, .interest-heading, .owner-welcome-grid, .fall-intro-grid, .foliage-heading, .foliage-grid, .fall-tools-grid, .fall-days, .room-cluster-heading, .booking-heading, .further-afield { grid-template-columns: 1fr; }
  .trip-grid, .interest-grid { grid-template-columns: repeat(2, 1fr); }
  .day-to-dusk { grid-template-columns: 1fr; }
  .day-to-dusk img { height: 360px; }
  .proximity-grid { grid-template-columns: 1fr; }
  .proximity-grid article, .proximity-grid article:first-child, .proximity-grid article:last-child { padding: 1.6rem 0; border-right: 0; border-bottom: 1px solid rgba(30,41,39,.25); }
  .proximity-grid article:last-child { border-bottom: 0; }
  .review-card { min-height: auto; }
  .fall-tools a, .fall-tools a:first-child, .fall-tools a:last-child { min-height: auto; padding: 1.6rem 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .fall-tools a:last-child { border-bottom: 0; }
  .fall-tools strong { margin: .8rem 0 .4rem; }
  .fall-days article, .fall-days article:first-child, .fall-days article:last-child { padding: 1.5rem 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .fall-days article:last-child { border-bottom: 0; }
  .photo-grid { grid-template-columns: 1fr 1fr; grid-auto-rows: 230px; }
  .photo-grid figure, .photo-grid figure.span-5, .photo-grid figure.span-6, .photo-grid figure.span-7, .photo-grid figure.span-8, .photo-grid figure.span-12 { grid-column: span 1; grid-row: span 1; }
  .photo-grid figure:first-child { grid-column: 1 / -1; }
  .proof-strip-inner { grid-template-columns: 1fr; gap: .65rem; }
  .proof-strip footer { white-space: normal; }
  .booking-grid { grid-template-columns: repeat(2, 1fr); }
  .booking-item:nth-child(n) { padding: 1.5rem; border-right: 1px solid var(--line); }
  .booking-item:nth-child(2n+1) { padding-left: 0; }
  .booking-item:nth-child(2n) { padding-right: 0; border-right: 0; }
  .booking-actions { align-items: flex-start; flex-direction: column; }
  .related-inner { grid-template-columns: 1fr; }
  .related a, .related a:first-child, .related a:last-child { padding: 1.5rem 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .related a:last-child { border-bottom: 0; }
  .page-hero.explore-photo { background-image: linear-gradient(90deg,rgba(44,65,71,.73),rgba(44,65,71,.36)), url('/assets/bikes-arrival.webp'); background-position: 42% center; }
  .explore-photo .hero-copy-panel { width: min(650px, 72%); }
  .visual-frame { min-height: 430px; }
  .footer-grid { grid-template-columns: 1fr; }
  body { padding-bottom: calc(68px + env(safe-area-inset-bottom)); }
  .mobile-book-bar { position: fixed; inset: auto 0 0; z-index: 40; display: block; padding: .65rem 16px calc(.65rem + env(safe-area-inset-bottom)); background: rgba(253,252,249,.96); border-top: 1px solid var(--line); box-shadow: 0 -8px 26px rgba(32,52,56,.12); }
  .mobile-book-bar a { min-height: 46px; width: 100%; }
}

@media (max-width: 520px) {
  .nav, .hero-content, .facts-inner, .container, .narrow, .footer-grid { width: min(100% - 32px, 1180px); }
  .hero { min-height: 88svh; }
  .hero-content { padding-bottom: 4.5rem; }
  h1 { font-size: 3.4rem; }
  .script-note { font-size: 3.25rem; }
  .button { width: 100%; }
  .trip-grid, .interest-grid, .photo-grid { grid-template-columns: 1fr; }
  .booking-grid { grid-template-columns: 1fr; }
  .booking-item:nth-child(n) { padding: 1.35rem 0; border-right: 0; }
  .photo-grid figure:nth-child(n) { grid-column: 1; }
  .explore-photo .hero-copy-panel { width: 100%; }
}

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .button { transition: none; } }
