/* Additive booking features. Existing editorial layout remains intact. */
.booking-bar{margin:24px auto 32px;padding:24px 28px;background:#fffcf5;border:1px solid #deded2;display:grid;grid-template-columns:1fr 1fr .7fr .7fr .7fr 1fr;gap:18px;align-items:end}
.booking-bar label{font-size:9px;letter-spacing:.06em;min-width:0}.booking-bar input,.booking-bar select{width:100%;min-height:44px;font-size:12px;background:none;border:0;border-bottom:1px solid #bfcabd;border-radius:0;padding:10px 0;color:#0a2721}.booking-bar button{min-height:46px;padding:13px 18px;background:#0a2721;color:#f8f4ec;border:0;font:11px var(--sans)}
.booking-bar .booking-hint{grid-column:1/-1;margin:0;font-size:10px;line-height:1.6;color:#52685a}.booking-showcase{padding-block:45px 70px}.booking-showcase h2{font-size:clamp(42px,4.5vw,64px)}.booking-featured{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.booking-featured img{display:block;width:100%;height:240px;object-fit:cover}.booking-featured h3{font:36px/1.05 var(--serif);margin:20px 0 13px}.booking-featured p{font-size:11px;margin:0 0 16px}.booking-featured a{font-size:11px;text-underline-offset:7px}.booking-catalogue{padding-bottom:75px}.booking-filters{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0 30px}.booking-filters button{border:1px solid #bac8b8;background:none;color:#0a2721;border-radius:30px;padding:10px 22px;font:11px var(--sans);min-height:44px}.booking-filters button[aria-pressed=true]{background:#0a2721;color:#f8f4ec}.booking-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:35px;align-items:start}.booking-card-list{display:grid;gap:32px}.booking-card{display:grid;grid-template-columns:43% minmax(0,1fr);background:#fffcf5;border:1px solid #e0e2d7;scroll-margin-top:170px}.booking-card figure{margin:0;position:relative;min-width:0}.booking-card figure>img{width:100%;height:100%;object-fit:cover;min-height:330px;display:block}.booking-card figcaption{position:absolute;bottom:12px;left:12px;right:12px;background:#fffcf5e8;padding:8px 10px;font-size:8px;line-height:1.5;color:#0a2721}.booking-card-copy{padding:28px}.booking-card-copy .eyebrow{font-size:8px;margin-bottom:14px}.booking-card h2{font:38px/1.02 var(--serif);margin:0 0 18px}.booking-card-copy>p{font-size:11px;line-height:1.8;margin-bottom:15px}.booking-facts{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.booking-facts span{border:1px solid #d5ddcf;padding:5px 9px;font-size:9px}.booking-card details{border-top:1px solid #d5ddcf;padding-top:12px;font-size:10px;margin:18px 0}.booking-card summary{cursor:pointer;min-height:30px}.booking-mini-gallery{display:flex;gap:10px;margin-top:12px}.booking-mini-gallery a{width:50%}.booking-mini-gallery img{width:100%;height:100px;object-fit:cover}.booking-quantity{display:flex;gap:15px;align-items:center;justify-content:space-between;border-top:1px solid #d5ddcf;padding-top:18px;font-size:10px}.booking-stepper{display:flex;align-items:center}.booking-stepper button{width:36px;height:38px;border:1px solid #c5d0bf;background:#f4f0e8;color:#0a2721;font:19px Arial}.booking-stepper output{width:33px;text-align:center;font-size:12px}.booking-summary{padding:25px;background:#eee9dc;position:sticky;top:170px;scroll-margin-top:170px}.booking-summary h2{font:42px/1.05 var(--serif);margin-bottom:22px}.booking-summary .eyebrow{font-size:8px;margin-bottom:16px}.booking-summary dl{margin:0 0 20px}.booking-summary dl>div{display:flex;justify-content:space-between;gap:15px;font-size:11px;border-bottom:1px solid #c7d0bd;padding:12px 0}.booking-summary dd{margin:0;text-align:right}.booking-summary dt{color:#58705d}.booking-selection-item{padding:12px 0;border-bottom:1px solid #c7d0bd;font-size:11px}.booking-summary p{font-size:10px;line-height:1.8;margin:16px 0}.booking-summary .button{display:flex;justify-content:space-between;gap:15px;font-size:10px;min-height:46px;margin-top:20px}.booking-summary button.button{width:100%;border:0;background:#0a2721;color:#f8f4ec;font-family:var(--sans);text-align:left;padding:16px;cursor:pointer}.booking-summary button:disabled{opacity:.45;cursor:default}.booking-partner{border-top:1px solid #c7d0bd;margin-top:25px;padding-top:20px;display:grid;gap:9px;font-size:10px}.booking-partner a{text-underline-offset:5px}.booking-partner small{font-size:9px;line-height:1.7}.booking-policy{padding-block:60px;background:#eee9de}.booking-policy h2{font:52px/1.03 var(--serif);margin:0 0 28px}.booking-policy-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 45px}.booking-policy details{border-top:1px solid #c6cdbd;padding:19px 0}.booking-policy summary{font-size:12px;cursor:pointer;min-height:28px}.booking-policy details p{font-size:11px;line-height:1.9;margin:15px 0 0}.booking-contact-summary{margin:24px 0;padding:22px;background:#eee9dc}.booking-contact-summary h3{font:30px var(--serif);margin:0 0 15px}.booking-contact-summary p{font-size:11px;line-height:1.8;margin:8px 0}.booking-contact-summary a{font-size:11px;text-underline-offset:5px}.booking-contact-room{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 0;border-top:1px solid #ccd4c1;font-size:11px}.booking-contact-room input{width:70px;min-height:40px;text-align:center}.booking-note{font-size:11px;line-height:1.9;max-width:70ch}.booking-review-link{margin-bottom:20px;font-size:12px}.booking-gallery-dialog{background:#f8f4ec;color:#0a2721;width:min(1050px,94vw);border:0;padding:20px}.booking-gallery-dialog img{width:100%;max-height:75vh;object-fit:contain}.booking-gallery-dialog button{border:0;background:none;color:#0a2721;padding:10px;float:right;font:12px var(--sans)}.booking-gallery-dialog::backdrop{background:#061c17cf}.booking-gallery-dialog p{font-size:11px;margin:10px 0}.booking-card[hidden]{display:none}
@media(max-width:1050px){.booking-bar{grid-template-columns:repeat(3,1fr)}.booking-layout{grid-template-columns:minmax(0,1fr) 270px;gap:22px}.booking-card{grid-template-columns:1fr}.booking-card figure>img{height:260px;min-height:0}.booking-card h2{font-size:38px}.booking-summary{padding:22px}.booking-featured{gap:20px}.booking-featured img{height:210px}}
@media(max-width:700px){.booking-bar{grid-template-columns:1fr 1fr;padding:20px;gap:15px;margin-top:20px;margin-bottom:20px}.booking-bar input,.booking-bar select{font-size:14px}.booking-bar label{font-size:9px}.booking-bar button{font-size:10px}.booking-showcase{padding-block:40px 50px}.booking-featured{grid-template-columns:1fr;gap:28px}.booking-featured article{display:grid;grid-template-columns:42% 1fr;gap:20px;align-items:center}.booking-featured img{height:160px}.booking-featured h3{font-size:30px;margin-top:0}.booking-featured p{font-size:10px}.booking-layout{grid-template-columns:1fr}.booking-summary{position:static;scroll-margin-top:140px;padding:26px}.booking-card{scroll-margin-top:140px}.booking-card-copy{padding:24px}.booking-card h2{font-size:38px}.booking-card-copy>p{font-size:12px}.booking-quantity{font-size:11px}.booking-stepper button{width:42px;height:42px}.booking-summary p,.booking-summary dl>div,.booking-selection-item{font-size:12px}.booking-policy-grid{grid-template-columns:1fr}.booking-policy{padding-block:45px}.booking-policy h2{font-size:45px}.booking-filters button{padding-inline:18px}.booking-contact-room{font-size:11px}}

/* SVG controls share the existing site icon system. */
.booking-stepper button{display:inline-flex;align-items:center;justify-content:center;font-family:inherit}.booking-stepper .icon{width:16px;height:16px}.booking-bar button{display:flex;align-items:center;justify-content:center;gap:8px}.booking-partner a .icon,.booking-review-link .icon,.booking-featured a .icon,#booking-edit-selection .icon{width:15px;height:15px;margin-left:5px}.booking-gallery-dialog button{display:inline-flex;align-items:center;gap:8px}
