/* October refinements: clearer hierarchy and optional detail. */
:root { --ink-3: #5c6260; --motion-short: 180ms; --motion-reveal: 700ms; }
.title .soft { color: #65706b; }
button, input, textarea { font-family: inherit; }
:focus-visible { outline: 3px solid #167a84; outline-offset: 4px; }
.construction-notice { min-height: 2.5rem; }
.hero-overlay { padding: calc(var(--construction-bar-height) + 1rem) clamp(1.5rem, 4vw, 4rem) 5rem; }
.hero-brand-lockup { gap: .8rem; }
.hero-cta { width: 100%; justify-content: space-between; align-items: center; flex-wrap: nowrap; gap: 1.5rem; }
.hero-cta .hero-brand-lockup { position: relative; min-width: 0; flex: none; }
.hero-cta .hero-kicker { position: absolute; left: 0; top: calc(100% + .8rem); }
.hero-cta > .pill { flex: none; }
.site-header.on-hero .header-nav { visibility: hidden; pointer-events: none; }
.hero-logo { margin: 0; padding: 0; border-radius: 0; background: transparent; overflow: hidden; }
.hero-logo img { width: clamp(190px, 23vw, 320px); height: auto; }
.hero-kicker { margin: 0; font: 500 .72rem var(--mono); letter-spacing: .14em; line-height: 1.4; text-transform: uppercase; color: #fff; text-shadow: 0 2px 12px #172e32; }
.hero-title { color: #fff; font-size: clamp(3.4rem, 5.8vw, 6.5rem); font-weight: 500; line-height: 1.04; letter-spacing: -.052em; margin: 0; }
.hero-lead { gap: 1.1rem; }
.hero-facts { font-size: .95rem; color: #fff; line-height: 1.6; }
.hero-facts span { margin: 0 .5rem; color: #e6b97a; }
.hero-price, .hero-price strong, .hero-credit { color: #fff; }
.hero-sub { font-size: .85rem; max-width: 20rem; line-height: 1.55; }
.hero-media::after { background: linear-gradient(0deg, rgba(9,26,31,.85), rgba(9,26,31,.35) 48%, rgba(9,26,31,.14) 75%); }
.hero-slide--exterior { object-position: 50% 50%; }
.hero-media::before { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; opacity: 0; background: radial-gradient(ellipse at 14% 12%, rgba(255,205,145,.42), rgba(246,165,90,.14) 35%, transparent 68%); mix-blend-mode: screen; transition: opacity 1.8s ease; }
.hero-media:has(.hero-slide--exterior.is-active)::before { opacity: 1; }
.hero-media:has(.hero-slide--exterior.is-active)::after { background: linear-gradient(0deg, rgba(9,26,31,.76), rgba(9,26,31,.25) 24%, rgba(9,26,31,.06) 52%, transparent 80%); }
@media (max-width: 700px) and (orientation: portrait) {
 .hero { height: calc(100svh - var(--construction-bar-height)); margin-top: var(--construction-bar-height); }
 .hero-media .hero-slide--exterior { inset: 0; height: 100%; object-fit: cover; object-position: 50% 62%; }
 .hero-media:has(.hero-slide--exterior.is-active)::after { background: linear-gradient(180deg, rgba(9,26,31,.22), transparent 28%, transparent 60%, rgba(9,26,31,.78)); }
}
/* Preserve the approved desktop photograph's colour and wider framing. */
@media (min-width: 701px), (orientation: landscape) {
 .hero-media:has(.hero-slide--exterior.is-active)::before { opacity: 0; }
 .hero-media:has(.hero-slide--exterior.is-active)::after { background: linear-gradient(0deg, rgba(9,26,31,.72), rgba(9,26,31,.18) 18%, transparent 34%); }
 .hero:has(.hero-slide--exterior.is-active) :is(.hero-title, .hero-sub) { text-shadow: 0 2px 14px rgba(9,26,31,.42); }
}
.menu-switch { padding: .75rem 1.1rem; gap: .65rem; min-height: 44px; }
.menu-icon { width: 20px; height: 16px; position: relative; display: inline-block; }
.menu-icon i { position: absolute; width: 20px; height: 2px; left: 0; top: 4px; background: currentColor; transition: transform var(--motion-short), top var(--motion-short); }
.menu-icon i + i { top: 11px; }
.menu-switch[aria-expanded="true"] .menu-icon i { top: 7px; transform: rotate(45deg); }
.menu-switch[aria-expanded="true"] .menu-icon i + i { transform: rotate(-45deg); }
.quick-stays { padding-block: clamp(3.5rem, 7vw, 6rem); }
.quick-stays-head { display: flex; justify-content: space-between; gap: 2rem; align-items: flex-end; margin-bottom: 2rem; }
.quick-stays-head > p { max-width: 24rem; color: var(--ink-2); line-height: 1.65; }
.stay-cards { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .75rem; }
.stay-cards a { display: flex; flex-direction: column; padding: 1.5rem; border: 1px solid #ced4cf; border-radius: 20px; background: var(--paper); transition: background var(--motion-short), transform var(--motion-short); }
.stay-cards a:hover { background: #fff; transform: translateY(-3px); }
.stay-cards span { font-weight: 500; }
.stay-cards strong { font-size: clamp(2rem,3.5vw,3.5rem); font-weight: 400; letter-spacing: -.04em; margin: .85rem 0 .6rem; }
.stay-cards .stay-count-unit { font-size: .45em; letter-spacing: 0; font-weight: 400; }
.stay-cards small { font-size: .78rem; color: #4f5a55; line-height: 1.5; }
.stay-cards b { font-size: .8rem; font-weight: 500; margin-top: 1.4rem; }
.stay-cards a:nth-child(3) { background: #dde8e2; border-color: #b8cbbf; }
.stay-note { font-size: .85rem; color: #515c56; line-height: 1.6; margin-top: 1.3rem; }
.stay-note a { text-decoration: underline; text-underline-offset: 3px; }
.build-story { padding-block: 3rem; display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(2rem,6vw,6rem); }
.build-story figure { margin: 0; }
.build-story img { width: 100%; height: auto; aspect-ratio: 4/4.5; object-fit: cover; border-radius: 28px; }
.build-story figcaption { color: #56625b; font-size: .75rem; line-height: 1.6; margin: .8rem .4rem 0; }
.build-story .lead { margin: 1.5rem 0 1rem; }
.build-story div > p:not(.label) { color: #46534b; line-height: 1.65; }
.build-story ul { list-style: none; border-top: 1px solid var(--line); margin-top: 1.5rem; }
.build-story li { padding: .8rem 0; border-bottom: 1px solid var(--line); font-size: .9rem; }
.build-story li::before { content: '↗'; margin-right: .6rem; color: #297f7d; }
.text-link { display: inline-block; margin-top: 1.5rem; border-bottom: 1px solid currentColor; padding-bottom: .3rem; font-size: .95rem; }
.tour-section { padding-block: 3rem 5rem; display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: start; }
.tour-section .lead { margin-top: 1rem; }
.optional-tour { border: 1px solid #c3cbc5; background: var(--paper); border-radius: 20px; overflow: hidden; }
.optional-tour summary { padding: 1.5rem; display: flex; gap: 1rem; align-items: center; cursor: pointer; list-style: none; font-size: 1.15rem; }
.optional-tour summary::-webkit-details-marker { display: none; }
.optional-tour summary > span:last-child { margin-left: auto; }
.optional-tour summary small { display: block; font-size: .78rem; color: #56625b; margin-top: .35rem; }
.play-icon { display: grid; place-items: center; border-radius: 50%; width: 48px; height: 48px; background: #dce8e1; font-size: .9rem; flex: none; }
.optional-tour[open] summary > span:last-child { transform: rotate(45deg); }
.optional-tour video { width: 100%; display: block; aspect-ratio: 16/10; background: #20322e; }
.optional-tour div > p { padding: 1rem 1.5rem 1.5rem; font-size: .85rem; line-height: 1.6; color: #46534b; }
.lakes { padding-top: 3rem; }
.strip img, .strip.is-open img { filter: none; }
.strip::after { background: linear-gradient(to top, rgba(20,20,20,.52), transparent 32%); }
.strip-bar { text-shadow: 0 1px 5px rgba(0,0,0,.7); }
.strip-bar .strip-n { background: rgba(20,20,20,.35); border-radius: 999px; padding: .3rem .45rem; }
.strip-name { background: rgba(20,20,20,.35); border-radius: 999px; padding: .65rem .4rem; }
.gallery-hint { display: block; margin-top: .8rem; color: var(--ink); font-size: .9rem; }
.strip-bar { inset: 0; width: 100%; padding: 1.2rem 0 1.4rem; border: 0; background: transparent; font: inherit; cursor: pointer; }
.strip-bar:focus-visible, .strip.is-open .strip-bar:focus-visible { outline: 3px solid var(--amber); outline-offset: -5px; opacity: 1; }
.strip-icon { display: none; }
.strip::after { pointer-events: none; }
.day-activities { border-top: 1px solid var(--line); margin: 0 0 1.3rem; }
.activity-heading { display: flex; align-items: center; justify-content: space-between; gap: .6rem; padding: .95rem 0 .6rem; font-size: 1.05rem; font-weight: 500; }
.activity-heading small { color: var(--ink-3); font-family: var(--mono); font-size: .65rem; font-weight: 400; white-space: nowrap; }
.activity-intro, .activity-fine { font-size: .8rem; line-height: 1.6; color: var(--ink-2); }
.activity-intro { margin-bottom: 1rem; }
.activity-item { overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: #fbfcf8; margin-bottom: 1rem; }
.activity-photo { position: relative; margin: 0; background: var(--mist); }
.activity-photo img { display: block; width: 100%; height: auto; aspect-ratio: 2 / 1; object-fit: cover; }
.activity-credit { padding: .35rem .8rem; color: #59645c; font-size: .6rem; line-height: 1.5; }
.activity-credit a { text-decoration: underline; text-underline-offset: 2px; }
.activity-copy { padding: 1rem 1.1rem .85rem; }
.activity-meta { color: #3f6f6b; font-family: var(--mono); font-size: .63rem; letter-spacing: .045em; text-transform: uppercase; }
.activity-item h5 { font-size: 1.1rem; font-weight: 500; letter-spacing: -.025em; margin-top: .3rem; }
.activity-description { font-size: .9rem; line-height: 1.55; color: var(--ink-2); margin-top: .45rem; }
.activity-note { font-size: .78rem; line-height: 1.5; color: var(--ink-3); margin-top: .4rem; }
.activity-link { display: inline-block; color: #285d59; font-size: .85rem; padding: .7rem 0 .35rem; text-decoration: underline; text-underline-offset: 4px; }
.activity-fine { padding: .1rem 0 .5rem; }
@media (max-width: 960px) {
  .strips { display: flex; flex-direction: column; gap: 10px; height: auto; min-height: 0; overflow: visible; scroll-snap-type: none; padding-inline: var(--gutter); }
  .strip, .strip.is-open { flex: none; width: 100%; height: auto; min-height: 0; background: var(--paper); cursor: default; }
  .strip::after { display: none; }
  .strip .strip-bar, .strip.is-open .strip-bar { position: relative; inset: auto; display: flex; flex-direction: row; justify-content: start; min-height: 68px; gap: .85rem; padding: .8rem 1rem; color: var(--ink); opacity: 1; text-shadow: none; }
  .strip-bar .strip-n { background: transparent; padding: 0; color: #3f6f6b; }
  .strip-name { writing-mode: horizontal-tb; transform: none; white-space: normal; text-align: left; font-size: 1.15rem; background: transparent; padding: 0; }
  .strip-icon { display: grid; place-items: center; flex: none; width: 28px; height: 28px; border: 1px solid var(--line); border-radius: 50%; margin-left: auto; font-size: 1.2rem; line-height: 1; }
  .strip.is-open .strip-icon { transform: rotate(45deg); }
  .strip-panel { display: none; }
  .strip.is-open .strip-panel { display: block; }
  .strip img, .strip.is-open img { position: relative; display: block; inset: auto; width: 100%; height: clamp(190px, 55vw, 350px); object-fit: cover; transform: none; }
  .strip .strip-body { position: static; padding: 1.1rem 1.2rem 1.3rem; color: var(--ink); opacity: 1; transform: none; pointer-events: auto; transition: none; }
  .strip-body h3 { display: none; }
  .strip-coord { color: #3f6f6b; font-size: .63rem; margin-bottom: .6rem; }
  .strip-body p:not(.strip-coord) { margin-top: 0; color: var(--ink-2); font-size: .94rem; line-height: 1.6; max-width: none; }
}
.details-grid { grid-template-columns: minmax(0,1fr); }
.details-grid .spec { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 3rem; }
.plan { min-width: 0; }
.fp-svg { min-width: 0; }
[data-fp-svg="plan"] { --fp-taupe-10: #dde0db; --fp-taupe-20: #ced2cd; --fp-amber-20: #e9dbbd; --fp-amber-30: #e8d0a7; }
.plan-footer { display: flex; flex-wrap: wrap; align-items: baseline; gap: .75rem 1.5rem; margin-top: 1rem; }
.plan-footer .plan-cap { margin-top: 0; flex: 1 1 24rem; }
.plan-enlarge { color: var(--ink-2); font-size: .8rem; text-underline-offset: .2em; }
.plan-enlarge:hover { color: var(--ink); }
.plan-enlarge:focus-visible { outline: 2px solid var(--bracken); outline-offset: 5px; border-radius: 2px; }
.routeband { height: auto; min-height: 420px; padding-block: clamp(4rem,7.5vw,7.5rem); }
.routeband-stage { position: relative; width: 100%; display: grid; place-items: center; isolation: isolate; }
.routeband-track { top: 0; z-index: 0; pointer-events: none; }
.routeband-track span { color: #c5c8c5; }
.routeband-track span::after { background: currentColor; }
.routeband-track--bottom { top: 100%; }
.routeband-card { width: min(70vw,960px); aspect-ratio: 16/9; background: #27302d; }
.routeband-card video { width: 100%; height: 100%; display: block; object-fit: cover; }
.routeband-card::after { content: ""; position: absolute; inset: 45% 0 0; pointer-events: none; background: linear-gradient(transparent,rgba(0,0,0,.72)); }
.routeband-card figcaption { position: absolute; bottom: 1.7rem; left: 2rem; right: 10rem; z-index: 3; color: #fff; line-height: 1.4; pointer-events: none; }
.routeband-card figcaption > span { display: block; font-size: clamp(1.1rem,2.2vw,1.8rem); letter-spacing: -.025em; }
.routeband-card figcaption small { display: block; margin-top: .3rem; font-size: .7rem; color: rgba(255,255,255,.85); }
.road-film-toggle { position: absolute; z-index: 4; right: 1.5rem; bottom: 1.7rem; min-height: 44px; padding: .75rem 1rem; border: 1px solid rgba(255,255,255,.65); border-radius: 999px; background: rgba(20,30,26,.7); color: #fff; font: inherit; font-size: .8rem; cursor: pointer; }
.road-film-toggle:hover { background: #fff; color: #22352a; }
.road-film-toggle:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }
.road-film-status { position: absolute; z-index: 4; top: 1.5rem; left: 1.5rem; right: 1.5rem; color: #fff; font-size: .8rem; }
.trip-stats { grid-template-columns: repeat(3,minmax(0,1fr)); }
.trip-stats dd { font-size: clamp(1.4rem,2.3vw,2.1rem); }
.trip-cost-note { color: #56625b; font-size: .85rem; line-height: 1.6; margin: 0 0 1rem; }
.lm-fells, .lm-towns text { display: none; }
.lm-lake-labels text.is-on { opacity: 0; }
.lake-map.show-labels .lm-lake-labels text.is-on, .lm-lake-labels text.is-hot { opacity: 1; }
.lm-pins .pin-start text { fill: var(--ink); }
.lm-pins .pin text { font-size: calc(16px * var(--k)); font-weight: 600; }
.lm-pins .pin-start text { font-size: calc(10px * var(--k)); }
.lm-pins .pin[data-wide] text { font-size: calc(14px * var(--k)); }
.rate-price span { font-size: .3em; vertical-align: baseline; margin-left: .12em; }
.rate-unit[href]:hover { text-decoration: underline; }
.bs-total span:last-child { font-size: 1rem; line-height: 1.45; letter-spacing: 0; max-width: 60%; text-align: right; }
.seasonal-rates .rate-price { font-size: clamp(3.5rem, 6vw, 6rem); }
.rate-from { margin: 1.1rem 0 -.9rem; color: var(--ink-2); font-size: .85rem; }
.seasonal-note { margin-top: 1.25rem; color: var(--ink-2); font-size: .85rem; line-height: 1.65; }
.seasonal-note a { display: inline-block; margin-left: .5rem; text-decoration: underline; text-underline-offset: .2em; }
.bs-total span:last-child:not(:empty) { font-variant-numeric: tabular-nums; }
.bs-rate-breakdown { color: #48574e; font-size: .84rem; line-height: 1.55; text-align: right; margin-top: .3rem; }
.bs-rate-breakdown[hidden] { display: none; }
.lm-pins .pin[role="button"] { cursor: pointer; }
.lm-pins .pin:focus-visible circle { stroke: #167a84; stroke-width: calc(4px * var(--k)); }
.map-tools { position: absolute; bottom: 2.9rem; left: 1rem; right: 1rem; display: flex; justify-content: space-between; gap: .5rem; align-items: center; }
.map-tools label, .map-tools button { background: rgba(250,251,248,.97); color: #283e32; border: 1px solid #c8d1ca; border-radius: 999px; padding: .6rem .85rem; font-size: .8rem; line-height: 1; min-height: 38px; cursor: pointer; }
.map-tools label { display: flex; align-items: center; gap: .4rem; }
.map-tools input { accent-color: #2b6e66; }
.map-mode { max-width: 100%; font-size: .62rem; letter-spacing: .02em; }
.map-reset { font-size: .7rem; padding: .6rem .7rem; flex: none; }
.map-key { color: #45584c; }
.lake-chips li { padding: 0; background: none; }
.lake-chips li::before { display: none; }
.lake-chips li:hover { background: none; }
.lake-chips button { border: 1px solid #c4d2cb; border-radius: 999px; background: var(--paper); color: #42574b; cursor: pointer; font-size: .8rem; padding: .5rem .8rem; }
.lake-chips button[aria-pressed="true"] { background: #284e41; color: #fff; }
.stop-photo { position: absolute; top: 3.8rem; left: 1rem; right: 1rem; z-index: 3; border: 1px solid #c9d0ca; border-radius: 18px; background: var(--paper); box-shadow: 0 8px 24px rgba(30,40,35,.08); overflow: hidden; }
.stop-photo[hidden], .stop-photo-body[hidden] { display: none; }
.stop-photo-head { display: flex; align-items: center; gap: .45rem; padding: .2rem .5rem .2rem .9rem; border-bottom: 1px solid var(--line); }
.stop-photo-head p { flex: 1; min-width: 0; font: 500 .65rem var(--mono); letter-spacing: .04em; line-height: 1.4; }
.stop-photo button { min-height: 44px; border: 0; background: transparent; color: var(--ink); cursor: pointer; font: inherit; font-size: .75rem; padding: .5rem .6rem; border-radius: 10px; }
.stop-photo button:hover { background: #e3e8e1; }
.stop-photo .stop-photo-close { font-size: 1.25rem; min-width: 44px; }
.stop-photo-body { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.25fr); align-items: start; gap: 1rem; padding: .85rem; margin: 0; }
.stop-photo-body.has-no-photo { grid-template-columns: minmax(0,1fr); }
.stop-photo-body.is-lake-photo { grid-template-columns: minmax(0,1fr); gap: .45rem; }
.stop-photo-body.is-lake-photo #stopPhotoImage { height: 200px; }
.stop-photo-body.is-lake-photo .stop-photo-title { font-size: .8rem; }
#stopPhotoImage { display: block; width: 100%; height: 148px; object-fit: contain; background: #e9ede6; border-radius: 10px; }
#stopPhotoImage[hidden] { display: none; }
.stop-photo-title { font-size: .68rem; line-height: 1.4; color: var(--ink-2); }
.stop-photo-area { font-size: .78rem; color: var(--ink-2); margin-top: .5rem; line-height: 1.4; }
.stop-photo-credit { font-size: .65rem; color: #59645c; margin-top: .65rem; line-height: 1.6; }
.stop-photo-credit a[href] { text-decoration: underline; text-underline-offset: 2px; }
.stop-photo-status { font-size: .72rem; color: var(--ink-2); line-height: 1.4; }
.stop-photo-status:empty { display: none; }
.stop-site[hidden], #stopPhotoColumn[hidden] { display: none; }
.stop-site-kicker { font: 500 .58rem var(--mono); letter-spacing: .055em; text-transform: uppercase; color: var(--ink-2); margin: .6rem 0 .3rem; }
.stop-site h3 { font-size: 1rem; line-height: 1.25; letter-spacing: -.025em; font-weight: 500; }
.stop-site-detail, .stop-site-note { font-size: .72rem; line-height: 1.45; margin-top: .45rem; color: var(--ink-2); }
.stop-site-note { font-size: .68rem; }
.stop-site-book { display: inline-flex; align-items: center; justify-content: space-between; gap: .8rem; min-height: 44px; margin-top: .45rem; font-size: .75rem; font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }
.day-stay .day-site-link { font-size: .75rem; margin-left: .5rem; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.map-panel.has-stop-photo { min-height: calc(9.3rem + var(--stop-photo-height) + 240px); }
.map-panel.has-stop-photo .lake-map { inset: calc(3.8rem + var(--stop-photo-height)) 0 5.5rem; height: calc(100% - 9.3rem - var(--stop-photo-height)); }
#mapPanel .stop-photo-map-return { display: none; }
.day-photo-dock:empty { display: none; }
.day-photo-dock > .stop-photo { position: relative; inset: auto; margin: .4rem 0 1rem; box-shadow: none; }
.day-photo-dock .stop-photo-body { grid-template-columns: minmax(0,1fr); gap: .65rem; }
.day-photo-dock #stopPhotoImage { height: 160px; }
.day-photo-dock .stop-photo-title { font-size: .72rem; }
.day-photo-dock .stop-photo-area { margin-top: .25rem; }
.day-photo-dock .stop-photo-credit { margin-top: .35rem; }
.day-photo-dock .stop-photo-head { padding-left: .65rem; }
.day-photo-dock .stop-photo-map-return { padding-left: 0; }
.map-dialog { width: min(1100px,calc(100vw - 2rem)); height: min(940px,calc(100dvh - 2rem)); max-width: none; max-height: none; border: 0; border-radius: 24px; padding: 1.25rem; color: var(--ink); background: var(--mist); margin: auto; }
.map-dialog::backdrop { background: rgba(17,31,28,.65); backdrop-filter: blur(3px); }
.map-dialog[open] { display: flex; flex-direction: column; }
.map-dialog-head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 1rem; }
.map-dialog-head h2 { font-size: 1.25rem; font-weight: 500; letter-spacing: -.02em; }
.map-dialog-head .label { margin-bottom: .3rem; }
.map-dialog button { cursor: pointer; }
.map-dialog-head > button, .map-zoom button { padding: .7rem .9rem; border: 1px solid #c4d2cb; border-radius: 999px; background: var(--paper); font-size: .85rem; white-space: nowrap; }
.map-dialog-body { flex: 1; min-height: 0; }
.map-dialog .map-panel { height: 100%; min-height: 0; max-height: none; border-radius: 14px; }
.map-dialog .stop-photo-body { max-height: min(230px,32dvh); overflow-y: auto; overscroll-behavior: contain; }
.map-dialog #mapExpand { display: none; }
.map-zoom { display: flex; justify-content: center; gap: .4rem; margin-top: .8rem; flex-wrap: wrap; }
.map-help { font-size: .75rem; color: #46534b; line-height: 1.5; text-align: center; margin-top: .7rem; }
.form-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(100%); }
.form-privacy, .form-service, .form-email { font-size: .78rem; color: #48574e; line-height: 1.5; }
.form-service:empty { display: none; }
.email-enquiry[hidden] { display: none; }
.form-email a { text-decoration: underline; overflow-wrap: anywhere; }
.form-done { color: #46534b; font-size: .9rem; line-height: 1.5; }
.form-done.is-sent { color: #23603b; }
.form-done.is-error { color: #a32924; }
.book-form button:disabled { opacity: .6; cursor: wait; }
.book-sub, .bs-fine, .cal-hint, .cal-legend { color: #48574e; }
.tour-replay::before { content: none; }
.tour.is-open .tour-video { filter: none; transform: none; transition: none; }
.tour-video-status { color: var(--ink-2); font-size: .85rem; line-height: 1.5; margin-top: .75rem; }
.tour-video-status:empty { display: none; }
.tour-card { transition-duration: var(--motion-short); }
@media (max-width: 960px) {
 .site-header .header-nav { display: none; }
 .hero-overlay { padding-top: calc(var(--construction-bar-height) + 1rem); padding-bottom: 6rem; }
 .hero-title { font-size: clamp(2.7rem,7.5vw,4.8rem); }
 .quick-stays-head { display: block; }
 .quick-stays-head > p { margin-top: 1.3rem; }
 .stay-cards { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .build-story { gap: 2rem; }
 .tour-section { gap: 2rem; }
 .routeband-card { width: 88vw; }
 .map-panel { height: 52svh; min-height: 390px; }
 .trip-map { position: relative; top: auto; }
 .map-key { display: inline-flex; font-size: .55rem; }
 .map-key:has(.key-lake) { display: none; }
 .book-bar { bottom: calc(10px + env(safe-area-inset-bottom,0px)); }
 body:has(.menu-overlay.is-open) .book-bar { visibility: hidden; }
}
@media (max-width: 700px) {
 .construction-notice { min-height: 3.2rem; font-size: .7rem; padding: .35rem .75rem; line-height: 1.35; gap: .5rem; }
 .construction-notice__detail a { white-space: nowrap; }
 .hero-overlay { padding: calc(var(--construction-bar-height) + .75rem) 1.5rem 6.8rem; }
 @media (orientation: portrait) { .hero-overlay { padding-top: .75rem; } }
 .details-grid .spec { display: block; }
 .hero-logo { padding: 0; border-radius: 0; }
 .hero-cta .hero-logo img { width: clamp(120px,36vw,160px); }
 .hero-cta > .pill { font-size: .8rem; padding: .75rem .9rem; min-height: 44px; }
 .hero-kicker { font-size: .6rem; letter-spacing: .1em; }
 .hero-title { font-size: clamp(2.55rem,11.4vw,4.5rem); line-height: 1.07; }
 .hero-title br { display: none; }
 .hero-facts { font-size: .79rem; max-width: 20rem; }
 .hero-facts span { margin: 0 .2rem; }
 .hero-price { font-size: .81rem; }
 .hero-cta { gap: .6rem; }
 .hero-media img[data-caption="Inside Aventura (visualisation)"] { object-position: 77% 18%; }
 .hero-media::after { background: linear-gradient(0deg,rgba(9,26,31,.93),rgba(9,26,31,.62) 38%,transparent 72%); }
 .hero-sub { display: none; }
 .hero-hint { display: none; }
 .hero-lead { gap: 1.1rem; }
 .quick-stays { padding-block: 3rem; }
 .quick-stays .title { font-size: 2.15rem; }
 .stay-cards { gap: .55rem; }
 .stay-cards a { padding: 1.05rem; border-radius: 16px; }
 .stay-cards strong { font-size: 2.35rem; margin-top: .6rem; }
 .stay-cards small { font-size: .73rem; min-height: 2.8em; }
 .stay-cards b { font-size: .73rem; margin-top: 1rem; }
 .stay-cards strong { font-size: clamp(1.65rem,7vw,2.1rem); }
 .routeband { height: auto; min-height: 350px; padding-block: 3rem; }
 .routeband-card { width: 94vw; border-radius: 24px; }
 .routeband-card figcaption { bottom: 1rem; left: 1rem; right: 7rem; }
 .routeband-card figcaption > span { font-size: 1rem; }
 .routeband-card figcaption small { font-size: .58rem; }
 .road-film-toggle { right: .75rem; bottom: 1rem; padding: .6rem .7rem; font-size: .72rem; }
 .stay-note { font-size: .8rem; }
 .build-story { grid-template-columns: 1fr; padding-block: 1rem 2rem; }
 .build-story img { aspect-ratio: 4/3; }
 .build-story .title { font-size: 2.5rem; }
 .tour-section { display: block; padding-block: 2rem 3rem; }
 .tour-section .title { font-size: 2.5rem; }
 .optional-tour { margin-top: 1.5rem; }
 .optional-tour summary { padding: 1.1rem; font-size: 1rem; }
 .trip-stats { grid-template-columns: repeat(3,minmax(0,1fr)); }
 .trip-stats > div, .trip-stats > div + div { padding: .8rem .45rem 0; }
 .trip-stats dt { font-size: .58rem; letter-spacing: .02em; }
 .trip-stats dd { font-size: 1.18rem; white-space: nowrap; }
 .map-top { top: .75rem; left: .75rem; right: .75rem; gap: .5rem; }
 .map-mode { padding: .5rem .6rem; }
 .map-tools { left: .75rem; right: .75rem; }
 .map-panel { min-height: 420px; height: 54svh; }
 .lake-map { inset: 3rem 0 5.5rem; height: calc(100% - 8.5rem); }
 .map-dialog { width: calc(100vw - .6rem); height: calc(100dvh - .6rem); padding: .8rem; border-radius: 16px; }
 .map-dialog-head h2 { font-size: 1rem; }
 .map-dialog-head .label { font-size: .58rem; }
 .map-dialog-head > button { padding: .65rem .75rem; font-size: .75rem; }
 .map-zoom { gap: .3rem; }
 .map-zoom button { padding: .65rem .75rem; }
 .map-help { font-size: .7rem; }
 .vanview-cap { color: #46534b; font-size: .65rem; line-height: 1.4; }
 .vanview-head .soft { color: #56625b; }
 .vv-desc { color: #56625b; }
 .menu-foot p { color: #46534b; font-size: .82rem; }
}
@media (prefers-reduced-motion: reduce) {
 *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition-duration: 0ms !important; }
 .hero-reveal > .hero { transform: none !important; }
 .hero-slide { transform: none !important; }
 .vanview { overflow: visible; }
}

.tour.is-open .tour-card { opacity: 1; visibility: visible; transform: none; transition: none; }
@media (max-width: 760px) {
 .tour.is-open .tour-photo { position: relative; inset: auto; float: right; width: 100px; aspect-ratio: 4 / 5; margin: 0 0 .75rem 1rem; border-radius: 12px; opacity: 1; transition: none; }
 .tour.is-open .tour-photo img { transform: none; transition: none; }
 .tour-card { display: flow-root; }
 .tour-media { min-height: 180px; }
}
.grain { animation: none; }
/* Keep the date controls close to their section heading. */
.book-marquee { padding-top: 2rem; }
.book-marquee-track span { font-size: clamp(2rem,5.5vw,5rem); }
.book-inner { padding-top: 2rem; }
.book-title { font-size: clamp(2.4rem,4.5vw,4.3rem); }
.menu-overlay { visibility: hidden; transition: clip-path .7s var(--ease), visibility 0s .7s; }
.menu-overlay.is-open { visibility: visible; transition: clip-path .7s var(--ease), visibility 0s; }
/* Hidden modal children must never intercept clicks beneath the overlay. */
.tour[aria-hidden="true"] { display: none; pointer-events: none; }
.tour.is-open { display: block; pointer-events: auto; }
.no-motion *, .no-motion *::before, .no-motion *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
@media (max-width: 360px) {
 .hero-cta { gap: .4rem; }
 .hero-cta .hero-logo img { width: 105px; }
 .hero-cta .hero-kicker { font-size: .55rem; letter-spacing: .05em; }
}
#optionalPlay { margin: 1rem 1.5rem 0; padding: .6rem 1rem; border: 1px solid #bfcfc6; border-radius: 999px; color: #254a39; background: #e3ece5; cursor: pointer; font-size: .85rem; }
#optionalVideoStatus:empty { display: none; }
/* Menu destinations can be tapped as soon as the menu opens. */
.menu-overlay { clip-path: none; opacity: 0; transform: translateY(12px); pointer-events: none; transition: opacity 180ms ease, transform 180ms ease, visibility 0s 180ms; }
.menu-overlay.is-open { opacity: 1; transform: none; pointer-events: auto; transition: opacity 180ms ease, transform 180ms ease, visibility 0s; }

/* October speed and launch refinements */
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.notice-short { display: none; }
.build-progress-link { margin-left: 1.5rem; }
.routeband-card figcaption small a { text-decoration: underline; pointer-events: auto; }
.launch-signup { margin-top: 2rem; padding: 1.5rem; border: 1px solid #bac8be; border-radius: 20px; background: #f3f5ef; }
.launch-signup h3 { font-size: 1.35rem; }
.launch-signup p { margin: .65rem 0 1rem; line-height: 1.6; font-size: .88rem; }
.launch-signup > label { font-size: .8rem; }
.launch-signup-row { display: flex; gap: .6rem; margin-top: .4rem; }
.launch-signup-row input { min-width: 0; flex: 1; border: 1px solid #a6b7ac; border-radius: 12px; background: #fff; padding: .8rem; font-size: 1rem; }
.launch-signup-row button { flex: none; font-size: .82rem; }
.signup-consent { display: flex; align-items: flex-start; gap: .6rem; margin-top: 1rem; line-height: 1.5; }
.signup-consent input { margin-top: .2rem; accent-color: #286858; }
.launch-signup .signup-privacy { font-size: .72rem; margin-bottom: 0; }
.signup-privacy a { text-decoration: underline; overflow-wrap: anywhere; }
.signup-status { font-weight: 500; }
.cal-day.is-booked { background: #deded5; color: #748176; text-decoration: line-through; opacity: .65; }
.lg-booked { background: #deded5; }
.reservation-conditions { border: 1px solid #bcc9bd; border-radius: 16px; padding: 1.1rem; background: #f1f4ed; font-size: .8rem; line-height: 1.6; }
.reservation-conditions h3 { font-size: 1rem; margin-bottom: .6rem; }
.reservation-conditions p { margin-bottom: .65rem; }
.book-form .booking-consent { display: block; line-height: 1.6; }
.book-form .booking-consent input { width: 18px; height: 18px; padding: 0; display: inline-block; vertical-align: middle; margin-right: .35rem; accent-color: #286858; }
.booking-consent a, .form-privacy a { text-decoration: underline; }
.book-form select { width: 100%; padding: .85rem 1rem; border: 1px solid #bbc8be; border-radius: 10px; background: #fff; color: #1d2822; font: inherit; }
.form-done.is-sent { padding: 1rem; border-radius: 12px; background: #e5eee0; color: #203c2d; line-height: 1.6; }
.circuit-reading { display: flex; flex-wrap: wrap; gap: .6rem 1.3rem; margin-top: 1.8rem; font-size: .85rem; line-height: 1.6; }
.circuit-reading a { text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 560px) {
 .construction-notice { flex-direction: row; flex-wrap: nowrap; min-height: 32px; padding: .3rem .6rem; gap: .55rem; font-size: .65rem; }
 .construction-notice__label { padding: .15rem .3rem; white-space: nowrap; font-size: .58rem; }
 .construction-notice__detail { white-space: nowrap; }
 .notice-long { display: none; } .notice-short { display: inline; margin-right: .6rem; }
 .hero-logo { background: rgba(244,246,241,.97); padding: .5rem .6rem; border-radius: 12px; }
 .hero-logo img { width: clamp(135px,39vw,195px); }
 .hero-cta { gap: .7rem; }
 .launch-signup { padding: 1.1rem; }
 .launch-signup-row { flex-direction: column; }
 .launch-signup-row button { justify-content: center; }
 .build-progress-link { margin-left: 0; display: block; width: fit-content; }
}

/* The new side cutaway keeps the whole camper and woodland in view. */
.vanview--autumn .vanview-inner {
 grid-template-rows: auto minmax(0, 1fr) auto auto;
 grid-template-areas: "head van" "list van" "feats van" "cap van";
}
.vanview--autumn .vanview-van { width: min(100%, calc((max(100svh, 560px) - var(--construction-bar-height) - var(--header-h) - 4rem) * 1.2736)); }
.vanview--autumn .vanview-img { border-radius: 24px; box-shadow: 0 22px 50px -24px rgba(30,34,36,.4); }
.vanview--autumn .vanview-shadow { display: none; }
.vanview--autumn .vanview-feats { grid-area: feats; display: flex; flex-wrap: wrap; gap: .35rem; list-style: none; }
.vanview--autumn .vanview-feats li { padding: .3rem .65rem; border-radius: 999px; border: 1px solid var(--line); font: 500 .58rem var(--mono); letter-spacing: .06em; text-transform: uppercase; color: var(--ink-2); }
@media (max-width: 900px) {
 .vanview--autumn .vanview-inner { grid-template-rows: auto minmax(0,1fr) auto auto auto; grid-template-areas: "head" "van" "feats" "list" "cap"; }
 .vanview--autumn .vanview-van { width: 100%; }
 .vanview--autumn .vanview-img { border-radius: 18px; }
 .vanview--autumn .vanview-feats { margin: 0; padding: 0; overflow: visible; }
}
@media (max-width: 560px) {
 .construction-notice__detail { font-size: .7rem; }
}
.vanview--autumn .gpin { min-width: 44px; min-height: 44px; }
.vanview--autumn .vanview-list button { min-height: 44px; }
@media (max-width: 900px) {
 /* Let the photo and room links take the space they need on short screens. */
 .hero-reveal > .vanview--autumn { position: relative; margin-top: 0; height: auto; overflow: visible; }
 .hero-reveal:has(> .vanview--autumn) .hero-reveal-spacer { display: none; }
 .vanview--autumn .vanview-inner { height: auto; grid-template-rows: auto auto auto auto auto; padding-top: 2rem; padding-bottom: 5rem; }
}

/* Keep the room list beneath its heading on taller desktop screens. */
@media (min-width: 901px) {
 .vanview--autumn .vanview-inner { grid-template-rows: auto auto auto minmax(0, 1fr); }
 .vanview--autumn .vanview-list, .vanview--autumn .vanview-cap { align-self: start; }
 .vanview--autumn .vanview-list { margin-top: .5rem; }
}
@media (min-width: 901px) and (max-height: 850px) {
 .vanview--autumn .vanview-inner { row-gap: .45rem; }
 .vanview--autumn .vanview-list button { padding-block: .3rem; }
 .vanview--autumn .vv-desc { font-size: .8rem; }
}


/* Mobile refinements: centred touch markers and stay options. */
@media (max-width: 900px) {
 .vanview--autumn .gpin,
 .vanview--autumn .gpin.is-on,
 .no-motion .vanview--autumn .gpin {
   width: 44px; height: 44px; padding: 0; gap: 0;
   display: grid; place-items: center;
   background: transparent; box-shadow: none;
   transform: translate(-50%, -50%); transform-origin: center;
 }
 .vanview--autumn .gpin::before {
   content: ''; position: absolute; inset: 5px; border-radius: 50%;
   background: rgba(247,247,245,.96);
   box-shadow: 0 5px 14px rgba(30,34,36,.2);
 }
 .vanview--autumn .gpin .gpin-name { display: none; }
 .vanview--autumn .gpin .gpin-num { width: 26px; height: 26px; font-size: .62rem; }
 .vanview--autumn .gpin:focus-visible { outline: 2px solid var(--amber); outline-offset: 2px; }
 .site-foot .foot-cols { transform: none !important; opacity: 1 !important; visibility: visible !important; }
 .site-foot .foot-mark { transform: none !important; }
}
@media (max-width: 700px) {
 .circuit-reading { margin-bottom: 1.75rem; }
 .duration-btn {
   flex-direction: column; align-items: center; justify-content: center;
   min-height: 88px; gap: .35rem; padding: 1rem .5rem; text-align: center;
 }
 .duration-btn b { font-size: 1.85rem; line-height: 1; }
 .duration-btn span { font-size: .78rem; line-height: 1.4; text-align: center; }
}
/* Tall footers reveal their top first, then scroll normally to every link. */
.site-foot, .site-foot.is-static {
 position: sticky; bottom: var(--footer-reveal-bottom, 0px);
}
@media (max-width: 900px) {
 .site-foot { padding-bottom: calc(5.5rem + env(safe-area-inset-bottom, 0px)); }
}

/* Keep the deeper camper page close to the five-room overview. */
.vanview--autumn .vanview-cap { display: block; }
.vanview-details { display: block; width: fit-content; padding-block: .65rem; font: 600 1.15rem/1.25 var(--font); letter-spacing: 0; text-transform: none; color: var(--ink); text-decoration: underline; text-underline-offset: .25rem; }
.vanview-details:hover { color: var(--bracken); }
.vanview-details:focus-visible { outline: 2px solid var(--bracken); outline-offset: 4px; }
.vanview-details { min-height: 44px; }
@media (min-width: 901px) {
 .vanview--autumn .vv-name { line-height: 1.2; }
 .vanview--autumn .vv-desc { line-height: 1.4; }
}
