/* Local public-page study. No form, booking, pricing or analytics logic.
   Match the approved homepage rhythm without making information pages
   wait behind a full-screen photograph. */
.booking-first-page {
 --pad-section:clamp(88px,8vw,120px);
 --bf-heading-space:clamp(48px,5vw,64px);
 --bf-photo-gap:clamp(32px,4vw,56px);
 --radius:4px; --shadow:none;
}
.booking-first-page main section { content-visibility:visible; }
.booking-first-page main>section:not(.subhero):not(.hero):not(.cta):not(.arrival):not(.winter-booking) { padding-block:var(--pad-section); }
.booking-first-page :is(main,.site-head,.book-bar,.bookmark-cta) * {
 text-shadow:none; box-shadow:none; -webkit-text-stroke:0; font-style:normal;
}
.booking-first-page main :is(h1,h2,h3,p,li,dd) { word-break:normal; overflow-wrap:break-word; text-wrap:pretty; }
@supports(word-break:auto-phrase) {
 html[lang=ja] .booking-first-page main :is(h1,h2,h3,p,li,dd) { word-break:auto-phrase; }
}
.booking-first-page main .center { text-align:left; }
.booking-first-page main .center .s-lead { margin-left:0; margin-right:0; }
.booking-first-page main .center .eyebrow { justify-content:flex-start; }
.booking-first-page .eyebrow { font-size:.75rem; margin-bottom:12px; }
.booking-first-page .eyebrow::before,
.booking-first-page .benefits li::before,
.booking-first-page .benefits li::after,
.booking-first-page .fit-card li::before { display:none; }
.booking-first-page :is(.reason__n,.feature__n,.scroll-cue) { display:none; }
.booking-first-page .s-title { font-size:clamp(1.7rem,2.8vw,2.4rem); }
.booking-first-page .feature__t { font-size:clamp(1.5rem,2.5vw,2.1rem); }
.booking-first-page :is(.s-title,.feature__t,.scard__t,.spot__t) { line-height:1.6; }
.booking-first-page main :is(.prose p,.feature__d,.timeline__d,.fact-card p,.sleep-card>p:last-child,.family-amenities p,.winter-practical li,.winter-scenes figcaption) { line-height:1.65; }
.booking-first-page[data-reading-type] main :is(.s-lead,.reason__d,.scard__d,.spot__d,.season__d,.subhero__sub) { font-size:.8125rem!important; line-height:1.65; }
.booking-first-page .s-lead { margin-top:16px; }
.booking-first-page :is(.note-box,.safety-note) { border:0; border-radius:0; line-height:1.65; padding:20px 24px; }
.booking-first-page .note-box p:last-child { margin-bottom:0; }
.booking-first-page :is(.btn,select) { border-radius:4px; }
.booking-first-page :is(.hero,.subhero,.reason__img,.scard picture,.feature__media,.feature__media img,.spot,.spot__img,.area__photos img,.direct__img img,.season__card,.winter-scenes img,.cta) { border-radius:0; }
.booking-first-page .timeline img { border-radius:0!important; }
.booking-first-page :is(.btn,.reason,.scard,.spot,.rev,.pill):hover { transform:none; box-shadow:none; }

/* Photographic pages share the edge-to-edge first impression. Existing
   scroll listeners still own the solid-header state. */
.bf-photo-page .subhero,
.bf-language-page .hero {
 width:100%; max-width:none; margin:0; padding:0;
 min-height:560px;
 min-height:max(560px,calc(100svh - var(--bf-preview-top,0px)));
}
.bf-photo-page .subhero__inner { padding:132px 5% 64px; }
.bf-language-page .hero__inner { padding:132px 5% 64px; }
.booking-first-page .subhero__title { font-size:clamp(1.75rem,3.6vw,3.25rem); line-height:1.55; }
.bf-language-page .hero__title { font-size:clamp(2rem,4vw,3.8rem); }
.booking-first-page .subhero__eyebrow { border:0; padding:0; font-size:.75rem; margin-bottom:12px; }
.booking-first-page .subhero__sub { max-width:38em; margin-top:16px; opacity:1; }
.booking-first-page .subhero__actions { gap:12px 20px; margin-top:24px; }
:is(.bf-photo-page,.bf-language-page) .site-head:not(.site-head--solid) {
 background:linear-gradient(to bottom,rgba(26,23,19,.72),rgba(26,23,19,.3) 70%,transparent);
 border-bottom:0;
}
:is(.bf-photo-page,.bf-language-page) .site-head:not(.site-head--solid) :is(.brand,.nav-toggle),
:is(.bf-photo-page,.bf-language-page) .site-head:not(.site-head--solid) .nav:not(.open) a { color:#fff; }
:is(.bf-photo-page,.bf-language-page) .site-head:not(.site-head--solid) .nav.open~.nav-toggle { color:var(--sumi); }
:is(.bf-photo-page,.bf-language-page) .site-head:not(.site-head--solid) .nav:not(.open) a:focus-visible { outline-color:#fff; }
/* Match both scroll states without changing the color transition. */
@media(max-width:700px) {
 .booking-first-page .site-head .brand { font-size:1.35rem; }
}

/* Prices and answers: a short entrance, not another full-screen pause. */
.bf-info-page .subhero { width:100%; margin:90px 0 0; min-height:240px; }
.bf-info-page .subhero__inner { padding:32px max(24px,5vw); }
.bf-info-page .subhero__title { font-size:clamp(1.6rem,2.8vw,2.4rem); }
.booking-first-page.pricing-page .price-intro { min-height:150px; }
.booking-first-page.pricing-page .price-intro .subhero__inner { padding:24px max(24px,5vw); }
.booking-first-page.pricing-page .price-overview { padding-top:24px; }

/* Photo and heading form one unit; chapters retain generous separation. */
.booking-first-page .feature { gap:clamp(48px,7vw,96px); }
.booking-first-page .feature--text-only { display:block; }
.booking-first-page :is(.reasons__grid,.spotgrid,.stay__grid) { margin-top:var(--bf-heading-space); gap:72px var(--bf-photo-gap); align-items:start; }
.booking-first-page .stay__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.booking-first-page .stay__grid .scard { margin-top:0; }
.booking-first-page .scard picture,
.booking-first-page .scard:first-child picture,
.booking-first-page .scard:last-child picture { aspect-ratio:3/2; }
.booking-first-page :is(.reason__body,.scard__body,.spot__body) { padding:24px 0 0; }
.booking-first-page :is(.reason__t,.scard__t,.spot__t) { font-size:1.2rem; margin:0 0 8px; }
.booking-first-page .spot { background:none; border:0; overflow:visible; }
.booking-first-page .spot__img { overflow:hidden; }
.booking-first-page .spot__dist { background:none; border:0; border-radius:0; padding:0; margin-bottom:10px; font-weight:500; }
.booking-first-page .spot__tags { gap:8px 16px; }
.booking-first-page .spot__tags span { background:none; border:0; border-radius:0; padding:0; }
.booking-first-page .area__head,
.booking-first-page .direct__grid { gap:clamp(48px,7vw,96px); }
.booking-first-page .pills { border:0; margin-top:32px; gap:0; }
.booking-first-page .pill { border:0; padding-block:5px; line-height:1.6; }
.booking-first-page :is(.fit-guide__grid,.sleep-choice-grid,.fact-grid,.family-age-grid) { margin-top:var(--bf-heading-space); gap:40px var(--bf-photo-gap); }
.booking-first-page :is(.fit-card,.fit-card--match,.sleep-card,.sleep-card--recommended,.fact-card) { border:0; border-radius:0; padding:0; background:none; }
.booking-first-page .sleep-card__tag { padding:0; background:none; border-radius:0; }
.booking-first-page .fit-card ul { list-style:disc; padding-left:1.15em; line-height:1.6; }
.booking-first-page .fit-card li { padding:3px 0; border:0; }
.booking-first-page .fit-guide__note { margin-left:0; text-align:left; line-height:1.65; }
.booking-first-page .family-amenities { gap:48px; }
.booking-first-page .benefits { list-style:disc; padding-left:1.15em; margin-top:24px; }
.booking-first-page .benefits li { padding:6px 0; border:0; line-height:1.65; }
.booking-first-page ol.benefits { list-style:decimal; padding-left:1.75em; }
.booking-first-page ol.benefits li { padding:10px 0 10px 8px; }
.booking-first-page ol.benefits li::marker { color:var(--mokubu-text); font-variant-numeric:tabular-nums; }
.booking-first-page .bf-direct-support { margin-top:20px; line-height:1.65; }
.booking-first-page .timeline { margin-top:var(--bf-heading-space); }
.booking-first-page .timeline__item { margin-bottom:32px; }
.booking-first-page .timeline__time { line-height:1.6; }
.booking-first-page .timeline__d { margin-top:6px; }
.booking-first-page .reviews__grid { margin-top:var(--bf-heading-space); gap:32px 56px; }
.booking-first-page .rev { padding:0; border:0; text-align:left; }
.booking-first-page .rev__stars { margin-bottom:6px; line-height:1.4; }
.booking-first-page .rev__q { line-height:1.65; }
.booking-first-page .rev__by { margin-top:8px; line-height:1.5; }
.booking-first-page .proto-note { text-align:left; line-height:1.65; }
.booking-first-page .faq summary { line-height:1.6; min-height:48px; padding-block:18px; }
.booking-first-page .faq p { line-height:1.7; }
.booking-first-page .info dl { row-gap:10px; line-height:1.65; }
.booking-first-page .season__body { padding:clamp(32px,4vw,56px); }
.booking-first-page .season__note { border:0; padding-top:0; }
.booking-first-page .winter-scenes figure:nth-child(2) { margin-top:0; }
.booking-first-page .winter-practical li { margin-bottom:12px; }
.booking-first-page :is(.winter-booking__panel,.winter-benefits__card) { border:0; border-radius:0; }
.booking-first-page .winter-booking__access { border:0; }
.booking-first-page .winter-booking__panel--access-only { display:block; }
.booking-first-page .winter-booking__panel--access-only .winter-booking__access { padding:0; }
.booking-first-page .winter-booking__panel--access-only h2 { font:600 1rem/1.7 var(--sans); margin:0 0 10px; }
.booking-first-page .winter-benefits__grid { gap:40px; }
.booking-first-page .winter-benefits__card { background:none; padding:0; }
.booking-first-page .winter-benefits__card p { line-height:1.65; }
.booking-first-page .related__grid { justify-content:flex-start; gap:8px 28px; }
.booking-first-page .related__grid a { border:0; border-radius:0; background:none; padding:10px 0; text-decoration:underline; text-underline-offset:5px; line-height:1.6; }
.booking-first-page :is(.foot,.foot__copy) { text-align:left; }
.booking-first-page :is(.foot__links,.foot__social) { justify-content:flex-start; }
.booking-first-page .foot__sitemap { max-width:none; }
.booking-first-page .bookmark-cta { top:auto; right:24px; bottom:24px; writing-mode:horizontal-tb; clip-path:none; border-radius:4px; padding:14px 24px; font-family:var(--sans); letter-spacing:.02em; }

/* Access: use the same content edges and chapter rhythm as the photo pages.
   Keep routes and their details close; group destinations with their duration. */
.booking-first-page.access-page :is(.feature,.breadcrumb) { padding-inline:clamp(24px,5vw,64px); }
.booking-first-page.access-page .feature { align-items:start; }
.booking-first-page.access-page .feature__t { margin-bottom:0; }
.booking-first-page.access-page .benefits { list-style:none; padding-left:0; display:grid; gap:16px; }
.booking-first-page.access-page .benefits li { padding:0; line-height:1.6; }
.booking-first-page.access-page .benefits li b { display:block; font-weight:500; line-height:1.5; margin-bottom:2px; }
.booking-first-page.access-page[data-reading-type] main :is(.benefits li,.feature__d,.access-parking) { font-size:.8125rem!important; line-height:1.6; }
.booking-first-page.access-page .feature__d { max-width:40em; }
.booking-first-page.access-page .access-heading .s-lead { margin:12px 0 0; max-width:44em; }
.booking-first-page.access-page .access-distances { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px var(--bf-photo-gap); margin-top:var(--bf-heading-space); }
.booking-first-page.access-page .access-distances>div { display:flex; align-items:baseline; justify-content:space-between; gap:16px; line-height:1.6; }
.booking-first-page.access-page .access-distances dt { font-size:.9375rem; }
.booking-first-page.access-page .access-distances dd { margin:0; font:500 1rem/1.6 var(--serif); color:var(--mokubu-text); white-space:nowrap; }
.booking-first-page.access-page .access-location { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px var(--bf-photo-gap); margin-top:var(--bf-heading-space); align-items:start; }
.booking-first-page.access-page .access-address { font-size:.875rem; line-height:1.6; }
.booking-first-page.access-page .access-parking { color:var(--sumi-light); margin:0; }
@media(max-width:700px) {
 .booking-first-page.access-page :is(.access-distances,.access-location) { grid-template-columns:minmax(0,1fr); }
 .booking-first-page.access-page :is(.feature,.breadcrumb) { padding-inline:24px; }
}
@media(max-width:360px) {
 .booking-first-page.access-page :is(.feature,.breadcrumb) { padding-inline:20px; }
}

/* Retain rate-table separators, open/close affordances and safety information. */
.booking-first-page.pricing-page .price-disclosure .benefits li { border:0; line-height:1.65; }
.booking-first-page.pricing-page .price-disclosure ol.benefits { list-style:decimal; padding-left:1.75em; }
.booking-first-page.pricing-page .price-fireworks { border:0; padding-left:0; }
.booking-first-page.pricing-page :is(.price-conditions,.price-help,.price-footnote,.price-stay__list,.price-disclosure__body,.price-disclosure .prose p,.price-disclosure .ota-note) { line-height:1.65; }
.booking-first-page.pricing-page .price-stay__list li+li { margin-top:5px; }
.booking-first-page.pricing-page .price-child-rate { margin-top:var(--bf-price-block-space); }
.booking-first-page.pricing-page .price-faq { margin-top:var(--pad-section); }
.booking-first-page.pricing-page .price-faq>h3 { font:500 1.3rem/1.6 var(--serif); margin-bottom:24px; }
.booking-first-page.pricing-page .price-faq .price-disclosure__body p { line-height:1.65; }
.booking-first-page.pricing-page .price-child-rate h3 { font:500 1.125rem/1.4 var(--serif); margin-bottom:8px; }
.booking-first-page.pricing-page .price-child-rate dl>div { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.booking-first-page.pricing-page .price-child-rate dt { font-size:1rem; line-height:1.45; }
.booking-first-page.pricing-page .price-child-rate dt span { display:block; font-size:.8125rem; color:var(--sumi-light); margin-top:2px; line-height:1.45; }
.booking-first-page.pricing-page .price-child-rate dd { font:500 1.5rem/1.4 var(--serif); white-space:nowrap; }

/* Only the explanations selected by the owner use a smaller font. Keep
   amounts, labels and controls at their existing sizes. */
.booking-first-page.pricing-page[data-reading-type] main :is(
 .price-overview>.prose>p,
 #price-children,
 .price-footnote,
 .price-child-rate>.price-help,
 .price-stay__list,
 .price-stay__list li,
 .price-stay__benefit>p:not(.price-help),
 .price-options>p.price-help:last-child
) { font-size:.75rem!important; line-height:1.5; }
.booking-first-page.pricing-page .price-stay__list li+li { margin-top:3px; }

/* Pricing has distinct chapters too. Keep each amount, unit and condition
   together; add breathing room between decisions rather than between lines. */
.booking-first-page.pricing-page {
 --bf-price-block-space:clamp(56px,6vw,80px);
 --bf-price-inner-space:clamp(40px,4vw,56px);
}
.booking-first-page.pricing-page .price-sheet { margin-top:var(--bf-heading-space); padding-top:0; border-top:0; gap:var(--bf-price-block-space); }
.booking-first-page.pricing-page .price-selection { margin-top:var(--bf-price-inner-space); }
.booking-first-page.pricing-page .price-stay { display:grid; align-content:start; row-gap:var(--bf-price-block-space); }
.booking-first-page.pricing-page .price-stay__benefit { margin:0; padding:0; border:0; }
.booking-first-page.pricing-page .price-next { margin:0; }
.booking-first-page.pricing-page .price-guide__heading { margin-bottom:var(--bf-price-block-space); }
.booking-first-page.pricing-page .price-options { padding-bottom:var(--bf-price-block-space); }
.booking-first-page.pricing-page .price-guide>.price-disclosure+.price-disclosure { margin-top:24px; }
.booking-first-page.pricing-page .price-guide>.price-disclosure>summary { padding-block:28px; }
.booking-first-page.pricing-page .price-guide>.price-disclosure>.price-disclosure__body { padding-bottom:32px; }

/* Compact the information inside each pricing block, not the space between
   chapters. Font sizes, rate data and the booking button remain unchanged. */
.booking-first-page.pricing-page .price-child-rate>.price-help,
.booking-first-page.pricing-page .price-child-rate+.price-help { margin-top:8px; line-height:1.5; }
.booking-first-page.pricing-page .price-child-rate+.price-help .price-textlink { display:inline-block; line-height:1.5; }
.booking-first-page.pricing-page .price-stay__benefit { display:grid; row-gap:6px; align-content:start; }
.booking-first-page.pricing-page .price-stay__benefit>p,
.booking-first-page.pricing-page .price-stay__benefit>h3 { margin:0; }
.booking-first-page.pricing-page .price-stay__benefit>h3 { line-height:1.45; }
.booking-first-page.pricing-page .price-stay__benefit>.price-help { line-height:1.5; }
.booking-first-page.pricing-page .price-stay__benefit>.price-textlink { justify-self:start; margin-top:4px; line-height:1.5; }
.booking-first-page.pricing-page .price-options>h3 { line-height:1.45; }
.booking-first-page.pricing-page .price-options>.price-help { margin-top:8px; line-height:1.5; }
.booking-first-page.pricing-page .price-options dl { margin-top:12px; }
.booking-first-page.pricing-page .price-options dl>div { padding-block:14px; }
.booking-first-page.pricing-page .price-options dt { line-height:1.5; }
.booking-first-page.pricing-page .price-options dt span { line-height:1.45; }
.booking-first-page.pricing-page .price-options dd { line-height:1.4; }
.booking-first-page.pricing-page .price-disclosure__body,
.booking-first-page.pricing-page .price-disclosure .prose p,
.booking-first-page.pricing-page .price-disclosure .ota-note,
.booking-first-page.pricing-page .price-faq .price-disclosure__body p { line-height:1.55; }
.booking-first-page.pricing-page .price-disclosure__body>p+p { margin-top:8px; }
.booking-first-page.pricing-page .price-disclosure .benefits li { padding-block:8px; line-height:1.55; }
.booking-first-page.pricing-page .price-equipment { row-gap:8px; line-height:1.55; }
@media(max-width:900px) {
 .booking-first-page.pricing-page .price-stay { padding-top:0; border-top:0; }
}
@media(max-width:700px) {
 .booking-first-page.pricing-page .price-stay { grid-template-columns:minmax(0,1fr); }
}
.booking-first-page .nf__rule { display:none; }
.booking-first-page .nf__btn { border-radius:4px; }

@media(max-width:1100px) {
 .bf-photo-page .subhero__inner,
 .bf-language-page .hero__inner { padding-bottom:calc(112px + env(safe-area-inset-bottom)); }
}
@media(max-width:780px) {
 .booking-first-page :is(.sleep-choice-grid,.family-age-grid,.family-amenities,.fit-guide__grid) { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:700px) {
 .booking-first-page { --pad-section:72px; --bf-heading-space:40px; --bf-photo-gap:40px; }
 .booking-first-page :is(.wrap,.narrow) { padding-inline:24px; }
 .bf-photo-page .subhero,
 .bf-language-page .hero { min-height:max(560px,calc(100svh - var(--bf-preview-top,0px))); }
 .bf-photo-page .subhero__inner,
 .bf-language-page .hero__inner { padding:120px 24px calc(112px + env(safe-area-inset-bottom)); }
 .booking-first-page .subhero__title { font-size:1.75rem; }
 .bf-language-page .hero__title { font-size:clamp(1.75rem,6.8vw,2rem); }
 .booking-first-page .subhero__actions .btn { padding-inline:16px; }
 .bf-info-page .subhero { margin-top:66px; min-height:210px; }
 .bf-info-page .subhero__inner { padding:28px 24px; }
 .bf-info-page .subhero__title { font-size:1.6rem; }
 .booking-first-page.pricing-page .price-intro { min-height:130px; }
 .booking-first-page.pricing-page .price-intro .subhero__inner { padding:20px 24px; }
 .booking-first-page.pricing-page .price-overview { padding-top:16px; }
 .booking-first-page .feature { gap:32px; }
 .booking-first-page :is(.area__head,.direct__grid) { gap:48px; }
 .booking-first-page :is(.spotgrid,.stay__grid) { grid-template-columns:minmax(0,1fr); gap:56px; }
 .booking-first-page .reasons__grid { gap:40px; }
 .booking-first-page .reason { grid-template-columns:104px minmax(0,1fr); gap:20px; }
 .booking-first-page .reason__body { padding-top:0; }
 .booking-first-page .reason__t { font-size:1.125rem; }
 .booking-first-page .scard__t { font-size:1.125rem; }
 .booking-first-page .cta { margin-inline:0; }
 .booking-first-page .season__body { padding:32px 24px; }
 .booking-first-page .reviews__grid { gap:32px; }
}
@media(max-width:360px) {
 .booking-first-page :is(.wrap,.narrow) { padding-inline:20px; }
 .booking-first-page .reason { grid-template-columns:88px minmax(0,1fr); gap:16px; }
 .booking-first-page .reason__t { font-size:1rem; }
}

/* Shared reading rhythm, extended from the approved access page.
   Keep the separately approved access/pricing layouts, monetary displays,
   inputs, booking controls, image sources and all page content untouched. */
.booking-first-page:not(:is(.access-page,.pricing-page)) {
 --bf-gutter:clamp(24px,5vw,64px);
 --bf-copy-size:.8125rem;
 --bf-copy-line:1.6;
 --bf-block-title:1.2rem;
}
.booking-first-page:not(:is(.access-page,.pricing-page)) :is(.breadcrumb,main>section>.feature,main>section>.prose) { padding-inline:var(--bf-gutter); }
.booking-first-page:not(:is(.access-page,.pricing-page)) main>section>:is(.prose,.narrow) { max-width:var(--content); }
.booking-first-page:not(:is(.access-page,.pricing-page)) main>section>.prose>p { max-width:52rem; }
.booking-first-page:not(:is(.access-page,.pricing-page)) :is(.wrap,.narrow)>.prose { max-width:none; margin-inline:0; padding-inline:0; }
.booking-first-page:not(:is(.access-page,.pricing-page)) main :is(.s-title,.feature__t) { text-align:left!important; line-height:1.6; }
.booking-first-page:not(:is(.access-page,.pricing-page)) main h2.s-title { font-size:clamp(1.7rem,2.8vw,2.4rem)!important; }
.booking-first-page:not(:is(.access-page,.pricing-page)) main h2.feature__t { font-size:clamp(1.5rem,2.5vw,2.1rem); }
.booking-first-page:not(:is(.access-page,.pricing-page)) main :is(h3.s-title,h3.feature__t,.reason__t,.scard__t,.spot__t,.fit-card__title,.fact-card h3,.sleep-card h3,.family-amenities h3,.winter-benefits__card h3) { font-size:var(--bf-block-title)!important; font-weight:500; line-height:1.5; margin-bottom:8px!important; }
.booking-first-page:not(:is(.access-page,.pricing-page)) main .related[aria-label="関連ページ"] .s-title { font-size:1.4rem!important; }
.booking-first-page:not(:is(.access-page,.pricing-page)) main :is(.s-lead,.prose p,.feature__d,.reason__d,.scard__d,.spot__d,.timeline__d,.fact-card p,.sleep-card>p:not(.sleep-card__capacity),.family-amenities p,.season__d,.season__note,.note-box,.safety-note,.fit-guide__note,.family-source,.faq p,.winter-benefits__card p,.winter-benefits__note,.winter-booking__copy>p,.winter-booking__access p,.bf-direct-support) { font-size:var(--bf-copy-size)!important; line-height:var(--bf-copy-line)!important; }
.booking-first-page:not(:is(.access-page,.pricing-page)) main :is(.s-lead,.prose p,.narrow>p,.note-box,.safety-note) { text-align:left!important; }
.booking-first-page:not(:is(.access-page,.pricing-page)) main .s-lead { margin:12px 0 0!important; max-width:44em; }
.booking-first-page:not(:is(.access-page,.pricing-page)) .feature__t { margin-bottom:8px; }
.booking-first-page:not(:is(.access-page,.pricing-page)) .feature__d+.feature__d { margin-top:8px!important; }
.booking-first-page:not(:is(.access-page,.pricing-page)) .prose p { margin-bottom:12px; }
.booking-first-page:not(:is(.access-page,.pricing-page)) .note-box { margin-block:16px; }
.booking-first-page:not(:is(.access-page,.pricing-page)) :is(.wrap,.prose,.narrow):has(>.s-title)+.wrap>.feature,
.booking-first-page:not(:is(.access-page,.pricing-page)) :is(.wrap,.prose,.narrow):has(>.s-title)+.feature,
.booking-first-page:not(:is(.access-page,.pricing-page)) .wrap:has(>.s-title)+.prose { margin-top:var(--bf-heading-space)!important; }
.booking-first-page:not(:is(.access-page,.pricing-page)) :is(.narrow,.prose)>.s-title:has(+.faq) { margin-bottom:var(--bf-heading-space)!important; }
.booking-first-page:not(:is(.access-page,.pricing-page)) main :is(.s-lead,.feature__d)>b { font-weight:600; }
.booking-first-page:not(:is(.access-page,.pricing-page)) main :is(.benefits li,.fit-card li,.family-amenities li,.winter-practical li,.prose li) { font-size:var(--bf-copy-size)!important; line-height:var(--bf-copy-line)!important; }
.booking-first-page:not(:is(.access-page,.pricing-page)) .benefits li { padding-block:6px; }
.booking-first-page:not(:is(.access-page,.pricing-page)) :is(.family-amenities,.winter-practical) li { margin-bottom:8px; }
.booking-first-page:not(:is(.access-page,.pricing-page)) main .prose>ul { line-height:var(--bf-copy-line)!important; }
.booking-first-page:not(:is(.access-page,.pricing-page)) main .prose>h2:not([class]) { font:500 var(--bf-block-title)/1.5 var(--serif)!important; margin-block:40px 8px!important; }
.booking-first-page:not(:is(.access-page,.pricing-page)) .timeline { max-width:var(--content); padding-inline:calc(var(--bf-gutter) + 28px) var(--bf-gutter); }
.booking-first-page:not(:is(.access-page,.pricing-page)) .timeline::before { left:calc(var(--bf-gutter) + 8px); }
.booking-first-page:not(:is(.access-page,.pricing-page)) .timeline__time { font-weight:500; line-height:1.5; }
.booking-first-page:not(:is(.access-page,.pricing-page)) .timeline__d { margin-top:4px; max-width:52rem; }
.booking-first-page:not(:is(.access-page,.pricing-page)) .pills { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px var(--bf-photo-gap); }
.booking-first-page:not(:is(.access-page,.pricing-page)) .pill { min-width:0; margin:0!important; padding:0; font-size:var(--bf-copy-size); line-height:var(--bf-copy-line); }
.booking-first-page:not(:is(.access-page,.pricing-page)) .pill b { font-weight:500; white-space:normal; }
.booking-first-page:not(:is(.access-page,.pricing-page)) .cta__d { line-height:var(--bf-copy-line); margin-bottom:24px; }
.booking-first-page:not(:is(.access-page,.pricing-page)) .cta__note { line-height:var(--bf-copy-line); margin-top:12px; }
@media(max-width:700px) {
 .booking-first-page:not(:is(.access-page,.pricing-page)) { --bf-gutter:24px; --bf-block-title:1.125rem; }
 .booking-first-page:not(:is(.access-page,.pricing-page)) .pills { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:360px) {
 .booking-first-page:not(:is(.access-page,.pricing-page)) { --bf-gutter:20px; }
}

/* Desktop editorial pairs use the same axis and inset as the homepage.
   Preserve single-column introductions, forms, rate tables and mobile layouts. */
@media(min-width:1001px) {
 .booking-first-page {
  --bf-desktop-gutter:clamp(24px,5vw,64px);
  --bf-desktop-gap:clamp(48px,6vw,80px);
 }
 .booking-first-page :is(.arrival__grid,.feature:not(.feature--text-only),.area__head,.direct__grid,.info__grid,.winter-scenes,.stay__grid,.spotgrid,.family-amenities,.fact-grid,.fit-guide__grid) {
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:var(--bf-desktop-gap);
 }
 .booking-first-page.access-page :is(.access-location,.access-distances) { column-gap:var(--bf-desktop-gap); }
 .booking-first-page .family-amenities { max-width:var(--content); }
 .booking-first-page :is(.atmo,.cta,.season__card,.winter-discovery__card) {
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:0;
 }
 .booking-first-page :is(.atmo,.cta) {
  width:calc(100% - 2 * var(--bf-desktop-gutter));
  max-width:calc(var(--content) - 2 * var(--bf-desktop-gutter));
  margin-inline:auto;
 }
 .booking-first-page :is(.atmo__inner,.cta__inner,.season__body,.winter-discovery__body) {
  padding-inline:calc(var(--bf-desktop-gap) / 2);
 }
 .booking-first-page :is(.arrival__grid,.feature,.area__head,.direct__grid,.info__grid,.winter-scenes,.stay__grid,.spotgrid,.family-amenities,.fact-grid,.fit-guide__grid,.atmo,.cta,.season__card,.winter-discovery__card)>* { min-width:0; }
}
