/* Owner review: clearer sections, coherent galleries, booking stays on the site. */
.home section[aria-labelledby="intro-title"] { background:var(--lp-cream); }
.home section[aria-labelledby="breakfast-title"] { background:var(--lp-paper); }
.home section[aria-labelledby="benefits-title"] { background:var(--lp-cream); }
.home section[aria-labelledby="intro-title"],.home section[aria-labelledby="benefits-title"] { border-block:1px solid var(--lp-line); }

.entry-content .room-gallery { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); grid-auto-rows:155px; gap:12px; margin:28px 0 0; }
.entry-content .room-gallery > figure { min-width:0; width:100%; height:100%; margin:0; }
.entry-content .room-gallery > figure:first-child { grid-row:span 2; }
.entry-content .room-gallery .room-gallery-open { position:relative; height:100%; border-radius:8px; }
.entry-content .room-gallery .room-gallery-open::after { content:'⛶'; position:absolute; right:10px; bottom:10px; display:grid; place-items:center; width:30px; height:30px; border-radius:50%; background:rgba(255,253,248,.94); color:var(--lp-green-dark); font-size:1.1rem; }
.entry-content .room-gallery .room-gallery-open img { display:block; width:100%; height:100%; aspect-ratio:auto; object-fit:cover; transition:transform .2s; }
.entry-content .room-gallery .room-gallery-open:hover img { transform:scale(1.025); }
.entry-content .room-gallery .room-gallery-open:focus-visible { outline:3px solid var(--lp-gold); outline-offset:3px; }

.reservation-section .booking-shell--embedded { grid-template-columns:1fr; max-width:1200px; }
.reservation-section .booking-contact { position:static; display:grid; grid-template-columns:1fr 1fr 1fr; gap:12px 30px; }
.reservation-section .booking-contact > .eyebrow,.reservation-section .booking-contact > h2 { grid-column:1/-1; margin:0; }
.reservation-section .booking-contact-help { margin:0; padding:0; border:0; }
.reservation-section .booking-policy { margin:0; }
.reservation-section .booking-contact > p:last-child { grid-column:1/-1; margin:0; }
.reservation-section .stay-search--full { grid-template-columns:repeat(3,minmax(0,1fr)); }
.reservation-section .stay-search--full > .button { grid-column:1/-1; }
.booking-viewer { width:100%; max-width:none; max-height:none; margin:20px 0 0; padding:0; border:0; position:static; background:var(--lp-paper); color:var(--lp-ink); }
.booking-viewer .booking-frame-slot { margin:0; }
.booking-viewer-bar { display:none; }
.booking-viewer.is-expanded { position:fixed; inset:12px; display:flex; flex-direction:column; width:calc(100% - 24px); height:calc(100dvh - 24px); max-height:calc(100dvh - 24px); margin:auto; border:1px solid var(--lp-line); border-radius:10px; overflow:hidden; }
.booking-viewer::backdrop { background:rgba(14,35,28,.75); }
.booking-viewer.is-expanded .booking-viewer-bar { flex:none; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 24px; border-bottom:1px solid var(--lp-line); background:var(--lp-paper); }
.booking-viewer-brand img { display:block; width:190px; height:auto; }
.booking-viewer.is-expanded .booking-frame-slot { flex:1; min-height:0; }
.booking-viewer.is-expanded iframe { height:100%; border:0; border-radius:0; }
.booking-viewer-bar .button { min-height:44px; }
.booking-viewer.is-expanded .booking-viewer-body { flex:1; min-height:0; overflow:auto; padding:18px 24px; }
.booking-viewer.is-expanded .booking-result-heading [data-booking-expand] { display:none; }
.booking-viewer.is-expanded .booking-frame-slot { height:75dvh; min-height:480px; }
.booking-viewer.is-expanded .booking-frame-slot iframe { height:100%; min-height:0; }
.booking-viewer.is-expanded .availability-picker { max-width:780px; }
.booking-result-heading button { font:inherit; font-weight:800; }
.booking-stay-note { margin:18px 0 0; padding:16px 0 0; border-top:1px solid var(--lp-line); color:var(--lp-muted); font-size:.9rem; line-height:1.65; }
.booking-stay-note p { margin:0 0 8px; }
.booking-stay-note p:last-child { margin-bottom:0; }
.booking-stay-note strong { color:var(--lp-ink); }
.policy-table-scroll { overflow-x:auto; }
.mobile-contact.mobile-contact--booking { grid-template-columns:1fr; max-width:420px; margin-inline:auto; }
.mobile-contact--booking a:last-child { background:var(--lp-green-dark); color:var(--lp-white); }

.ski-station-photo { display:block; width:100%; height:240px; object-fit:cover; }
.ski-nordic-grid article { position:relative; padding:0 0 20px; border:1px solid var(--lp-line); border-radius:var(--lp-radius); overflow:hidden; background:var(--lp-white); }
.ski-nordic-photo { display:block; width:100%; height:180px; object-fit:cover; }
.ski-nordic-grid article > :is(h3,p) { margin:18px 20px 0; }
.ski-nordic-grid article > h3 { font-size:1.5rem; }
.ski-nordic-grid .ski-photo-season { position:absolute; top:148px; left:8px; margin:0; padding:3px 8px; border-radius:4px; background:var(--lp-paper); font-size:.74rem; color:var(--lp-muted); }
.ski-photo-credits { margin-top:26px; color:var(--lp-muted); font-size:.78rem; }
.ski-photo-credits > summary { cursor:pointer; }
.ski-photo-credits ul { padding-left:20px; }
@media(max-width:820px) { .reservation-section .stay-search--full { grid-template-columns:repeat(2,minmax(0,1fr)); } .reservation-section .booking-contact { grid-template-columns:1fr 1fr; } }
@media(max-width:580px) {
 .entry-content .room-gallery { grid-template-columns:1fr 1fr; grid-auto-rows:125px; gap:9px; }
 .entry-content .room-gallery > figure:first-child { grid-row:auto; grid-column:1/-1; height:210px; }
 .entry-content .room-gallery { grid-template-rows:210px 125px; }
 .reservation-section .stay-search--full,.reservation-section .booking-contact { grid-template-columns:1fr; }
 .booking-viewer.is-expanded { inset:0; width:100%; height:100dvh; max-height:100dvh; border:0; border-radius:0; }
 .booking-viewer.is-expanded .booking-viewer-bar { gap:10px; padding:10px 12px; }
 .booking-viewer-brand img { width:110px; }
 .booking-viewer-bar .button { padding:8px 12px; font-size:.78rem; }
 .booking-viewer.is-expanded .booking-viewer-body { padding:16px 12px; }
 .ski-station-photo { height:200px; }
}
@media(prefers-reduced-motion:reduce) { .entry-content .room-gallery .room-gallery-open img { transition:none; } }
