:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--booking-ink);background:var(--booking-background,#f7f6f2);font-synthesis:none;--booking-ink:#24372d;--booking-muted:#66736a;--booking-line:#dedfd5;--booking-paper:#fffefb;--booking-accent:#315c46;--booking-soft:#eef1e8;--booking-danger:#943e36;--booking-radius:18px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--booking-focus,#a17b36);outline-offset:4px}button,input,select,textarea{border-radius:10px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:500}h1,h2{font-family:Georgia,"Times New Roman",serif;letter-spacing:-.035em}h1{font-size:clamp(2.3rem,5vw,3.8rem);line-height:1.06;margin-bottom:16px}h2{font-size:2rem;line-height:1.15}button{min-height:46px;border:1px solid var(--booking-line);background:var(--booking-paper);color:inherit;padding:11px 17px;font-weight:600}button:hover:not(:disabled){background:var(--booking-soft)}input,select,textarea{width:100%;min-height:46px;border:1px solid #b8c1b7;background:var(--booking-paper);padding:11px 12px;color:inherit}input[type=checkbox],input[type=radio]{width:20px;height:20px;min-height:20px;accent-color:var(--booking-accent)}label{display:grid;gap:8px;font-size:.85rem;font-weight:600}small,.booking-muted{color:var(--booking-muted)}.booking-shell{max-width:1200px;margin:auto;padding:0 32px}.booking-header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:27px 0;border-bottom:1px solid var(--booking-line)}.booking-brand{display:flex;align-items:center;gap:13px;text-decoration:none;min-width:0}.booking-brand img{max-width:96px;max-height:54px;object-fit:contain}.booking-brand-name{font-family:Georgia,"Times New Roman",serif;font-size:1.6rem;line-height:1.1;overflow-wrap:anywhere}.booking-brand small{display:block;font:500 .63rem/1.5 Inter,ui-sans-serif,sans-serif;letter-spacing:.17em;margin-top:5px}.booking-lab{display:inline-flex;align-items:center;gap:7px;font-size:.69rem;font-weight:600;border:1px solid #d1d8c6;border-radius:99px;padding:6px 10px;white-space:nowrap}.booking-lab:before{content:"";width:6px;height:6px;background:#79935f;border-radius:50%}.booking-main{padding:39px 0 64px;min-height:66vh}.booking-progress{display:flex;gap:25px;padding:0;margin:0 0 42px;list-style:none;font-size:.74rem;color:var(--booking-muted)}.booking-progress li{display:flex;gap:8px;align-items:center}.booking-progress span{display:grid;place-items:center;border:1px solid var(--booking-line);border-radius:50%;width:25px;height:25px;font-size:.68rem}.booking-progress [aria-current=step]{color:var(--booking-ink);font-weight:650}.booking-progress [aria-current=step] span{background:var(--booking-ink);border-color:var(--booking-ink);color:white}.booking-intro{max-width:680px;margin:0 0 30px}.booking-eyebrow{font-size:.67rem;font-weight:650;letter-spacing:.17em;text-transform:uppercase;margin-bottom:16px;color:var(--booking-muted)}.booking-intro p:last-child{font-size:1rem;line-height:1.65;color:var(--booking-muted);max-width:520px}.booking-search{padding:25px;background:var(--booking-paper);border:1px solid var(--booking-line);border-radius:var(--booking-radius);display:grid;grid-template-columns:1fr 1fr .7fr .7fr;gap:17px;box-shadow:0 8px 30px #24372d04}.booking-search .booking-search-submit{grid-column:1/-1;display:flex;justify-content:flex-end;align-items:center;gap:20px}.booking-search-submit p{margin:0;font-size:.76rem;color:var(--booking-muted);flex:1}.booking-primary{background:var(--booking-accent);border-color:var(--booking-accent);color:white}.booking-primary:hover:not(:disabled){background:var(--booking-hover,#234b36)}.booking-search-submit button{min-width:245px}.booking-child-ages{grid-column:1/-1;display:flex;gap:12px;flex-wrap:wrap}.booking-child-ages label{max-width:135px}.booking-error{color:var(--booking-danger);background:#fcf1ed;border:1px solid #e8c4b9;border-radius:12px;padding:15px 17px;line-height:1.55;margin:0 0 20px}.booking-error:empty{display:none}.booking-error button{margin-top:12px;display:block}.booking-notice{padding:15px 17px;border:1px solid #d4dccc;border-radius:12px;background:var(--booking-soft);font-size:.82rem;line-height:1.6}.booking-searched{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 20px;background:var(--booking-paper);border:1px solid var(--booking-line);border-radius:14px;margin-bottom:32px}.booking-searched strong{font-size:.9rem}.booking-searched small{display:block;margin-top:5px}.booking-text-button{border:0;padding:6px 0;background:none;min-height:38px;font-size:.82rem;text-decoration:underline;text-underline-offset:4px}.booking-results-heading{display:flex;justify-content:space-between;gap:20px;align-items:baseline;margin-bottom:23px}.booking-results-heading h1{font-size:2.6rem;margin:0}.booking-results-heading p{font-size:.78rem;color:var(--booking-muted);margin:0}.booking-room-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px}.booking-room{border:1px solid var(--booking-line);background:var(--booking-paper);border-radius:var(--booking-radius);overflow:hidden}.booking-room-image{display:block;border:0;border-radius:0;padding:0;width:100%;height:250px;overflow:hidden;background:#e8e8df;position:relative}.booking-room-image img{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .4s}.booking-room-image:hover img{transform:scale(1.025)}.booking-photo-placeholder{height:100%;min-height:160px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#6a7869;background:linear-gradient(130deg,#e6eadf,#f2f0e9);font-size:.72rem}.booking-photo-placeholder span{font:3rem Georgia,serif;opacity:.4}.booking-room-content{padding:24px}.booking-room-top{display:flex;justify-content:space-between;gap:15px;align-items:baseline}.booking-room h2{font-size:1.9rem;margin:0 0 12px}.booking-capacity{font-size:.76rem;color:var(--booking-muted);white-space:nowrap}.booking-room-description{line-height:1.65;color:var(--booking-muted);font-size:.88rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:18px}.booking-amenities{display:flex;gap:7px;flex-wrap:wrap;padding:0;margin:0 0 22px;list-style:none}.booking-amenities li{font-size:.69rem;color:var(--booking-muted);border-radius:5px;background:var(--booking-soft);padding:6px 8px}.booking-room-bottom{display:flex;align-items:flex-end;gap:14px;justify-content:space-between;padding-top:20px;border-top:1px solid var(--booking-line)}.booking-price strong{font-size:1.4rem;display:block;font-weight:550;letter-spacing:-.025em}.booking-price small{font-size:.72rem;display:block;margin-top:6px;max-width:230px;line-height:1.4}.booking-empty{padding:50px 28px;border:1px solid var(--booking-line);border-radius:var(--booking-radius);text-align:center;background:var(--booking-paper)}.booking-empty h2{font-size:2rem}.booking-empty p{color:var(--booking-muted);max-width:450px;margin:0 auto 25px;line-height:1.6}.booking-checkout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);gap:36px;align-items:start}.booking-checkout h1{font-size:2.8rem}.booking-checkout-section{padding:27px 0;border-top:1px solid var(--booking-line)}.booking-checkout-section h2{font-family:inherit;letter-spacing:0;font-size:1.05rem;font-weight:600;margin-bottom:19px}.booking-payments{display:grid;gap:12px}.booking-payment{display:grid;grid-template-columns:22px 1fr;gap:13px;border:1px solid var(--booking-line);padding:18px;border-radius:12px;background:var(--booking-paper);font-weight:400;cursor:pointer}.booking-payment:has(input:checked){border:2px solid var(--booking-accent);padding:17px;background:var(--booking-soft)}.booking-payment strong{display:block;font-size:.94rem;font-weight:600;margin:2px 0 7px}.booking-payment small{line-height:1.6;display:block;white-space:pre-line}.booking-fields{display:grid;grid-template-columns:1fr 1fr;gap:17px}.booking-fields label:first-child{grid-column:1/-1}.booking-fields small{font-size:.72rem;font-weight:400;line-height:1.5}.booking-summary{padding:26px;border-radius:var(--booking-radius);border:1px solid var(--booking-line);background:var(--booking-paper);position:sticky;top:24px}.booking-summary img{width:100%;height:170px;object-fit:contain;border-radius:10px;margin-bottom:20px}.booking-summary h2{font-size:1.85rem;margin-bottom:8px}.booking-summary dl,.booking-receipt dl{margin:24px 0}.booking-summary dl>div,.booking-receipt dl>div{display:flex;justify-content:space-between;gap:20px;margin-bottom:15px;font-size:.84rem}.booking-summary dt,.booking-receipt dt{color:var(--booking-muted)}.booking-summary dd,.booking-receipt dd{margin:0;text-align:right}.booking-summary-total{border-top:1px solid var(--booking-line);padding-top:22px;display:flex;justify-content:space-between;gap:12px}.booking-summary-total strong{font-size:1.3rem}.booking-summary>p{font-size:.75rem;line-height:1.6;color:var(--booking-muted);margin:20px 0 0}.booking-policies{font-size:.76rem;line-height:1.7;color:var(--booking-muted)}.booking-policies nav{display:flex;gap:14px;flex-wrap:wrap;margin:8px 0 18px}.booking-policies details{margin:10px 0}.booking-policies summary{cursor:pointer}.booking-policies details p{white-space:pre-line;margin:10px 0}.booking-final-cta{width:100%;min-height:52px;margin-top:16px}.booking-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.booking-receipt{max-width:690px;margin:auto;text-align:center}.booking-receipt-check{display:grid;place-items:center;width:58px;height:58px;border:1px solid #b8c6ae;border-radius:50%;margin:0 auto 22px;font-size:1.5rem;color:var(--booking-accent);background:var(--booking-soft)}.booking-receipt h1{font-size:3rem}.booking-receipt-message{color:var(--booking-muted);line-height:1.7;white-space:pre-line;max-width:590px;margin:0 auto 27px}.booking-receipt-card{text-align:left;padding:28px;border:1px solid var(--booking-line);border-radius:var(--booking-radius);background:var(--booking-paper)}.booking-receipt-card h2{margin-bottom:10px}.booking-receipt-card>p{font-size:.87rem;color:var(--booking-muted);overflow-wrap:anywhere}.booking-receipt .booking-notice{margin:20px 0;text-align:left}.booking-reference{font-size:.7rem;color:var(--booking-muted);overflow-wrap:anywhere;margin:20px 0 0}.booking-footer{border-top:1px solid var(--booking-line);padding:24px 0 28px;display:flex;align-items:center;justify-content:space-between;gap:20px;color:var(--booking-muted);font-size:.69rem}.booking-footer strong{font-weight:550;color:var(--booking-ink);font-size:.9rem}.booking-footer nav{display:flex;gap:15px}.booking-loading{display:grid;place-content:center;justify-items:center;min-height:65vh;padding:25px;text-align:center;color:var(--booking-muted)}.booking-mark{font:3.5rem Georgia,serif;display:grid;place-items:center;width:80px;height:80px;border:1px solid var(--booking-line);border-radius:50%;margin-bottom:22px;color:var(--booking-accent)}.booking-skip{position:absolute;left:15px;top:-80px;background:white;padding:12px;z-index:10}.booking-skip:focus{top:10px}.booking-dialog{border:0;border-radius:20px;padding:0;width:min(820px,calc(100vw - 34px));max-height:92dvh;color:var(--booking-ink);background:var(--booking-paper)}.booking-dialog::backdrop{background:#1c2d23a6}.booking-dialog-close{position:absolute;right:14px;top:14px;width:44px;min-height:44px;padding:0;border-radius:50%;background:#fffefbf5;z-index:2;font-size:1.6rem}.booking-gallery{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;background:#e6eadf}.booking-gallery figure{margin:0;flex:0 0 100%;scroll-snap-align:start;height:100%}.booking-gallery img{width:100%;height:100%;object-fit:contain;object-position:center}.booking-gallery-controls{display:flex;justify-content:space-between;align-items:center;padding:10px 25px;color:var(--booking-muted);font-size:.75rem}.booking-gallery-controls button{padding:5px 10px;min-height:36px;background:none;border:0}.booking-dialog-body{padding:25px 32px 30px}.booking-dialog-body>p{line-height:1.7;color:var(--booking-muted);font-size:.9rem}.booking-dialog-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--booking-line);padding-top:20px}.booking-dialog-bottom button{min-width:220px}.booking-status{min-height:20px;font-size:.8rem;color:var(--booking-muted);margin-top:12px}.booking-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:760px){.booking-shell{padding:0 20px}.booking-header{padding:21px 0}.booking-brand-name{font-size:1.35rem}.booking-brand small{font-size:.56rem}.booking-brand img{max-width:65px;max-height:44px}.booking-main{padding:28px 0 43px}.booking-progress{gap:18px;margin-bottom:30px;font-size:.67rem}.booking-progress span{width:23px;height:23px}.booking-search{grid-template-columns:1fr 1fr;padding:19px;gap:18px 13px}.booking-search input{min-width:0;font-size:.88rem;padding:11px 8px}.booking-search-submit{flex-direction:column}.booking-search-submit p{text-align:center;order:2;font-size:.71rem}.booking-search-submit button{width:100%;min-width:0}.booking-intro{margin-bottom:24px}.booking-intro h1{max-width:330px}.booking-intro p:last-child{font-size:.9rem}.booking-results-heading{display:block}.booking-results-heading h1{font-size:2.2rem;margin-bottom:9px}.booking-room-grid{grid-template-columns:1fr;gap:20px}.booking-room-image{height:235px}.booking-room-content{padding:21px}.booking-room h2{font-size:1.75rem}.booking-searched{padding:15px}.booking-searched strong{font-size:.8rem}.booking-searched small{font-size:.7rem}.booking-searched button{font-size:.74rem}.booking-checkout{grid-template-columns:1fr;gap:25px}.booking-checkout h1{font-size:2.5rem}.booking-summary{position:static;grid-row:1;padding:20px}.booking-summary img{display:none}.booking-summary dl{margin:20px 0}.booking-fields{grid-template-columns:1fr}.booking-fields label:first-child{grid-column:auto}.booking-receipt h1{font-size:2.5rem}.booking-receipt-card{padding:23px}.booking-footer{align-items:flex-start;flex-wrap:wrap;gap:15px}.booking-footer>span{font-size:.65rem}.booking-dialog{width:calc(100vw - 20px);max-height:95dvh}.booking-dialog-body{padding:20px}.booking-dialog-bottom{flex-direction:column;align-items:stretch;gap:18px}.booking-dialog-bottom button{width:100%}.booking-gallery-controls{padding:8px 15px}.booking-room-bottom{gap:8px}.booking-room-bottom button{padding:11px 13px;font-size:.82rem}.booking-price strong{font-size:1.3rem}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media(max-width:760px){.booking-text-button,.booking-gallery-controls button{min-height:44px}.booking-footer nav a{display:inline-flex;align-items:center;min-height:44px;min-width:44px}}

/* International phone field inside the existing checkout. */
.booking-phone-field{grid-column:1/-1;border:0;padding:0;margin:0;min-width:0}.booking-phone-field legend{padding:0;margin-bottom:8px;font-weight:600;font-size:.9rem}.booking-phone-row{display:grid;grid-template-columns:minmax(0,180px) minmax(0,1fr);gap:8px}.booking-phone-row :is(input,select){min-width:0;width:100%;font-size:.88rem}.booking-phone-field small{display:block;margin-top:7px;font-size:.75rem;color:var(--booking-muted,#59665e)}.booking-phone-error{color:#9d3027;font-size:.83rem;line-height:1.4;margin:6px 0}.booking-phone-error:empty{display:none}.booking-phone-field [aria-invalid=true]{border-color:#9d3027}.booking-phone-field [data-phone-kind]{margin-top:10px}.booking-phone-field [data-phone-kind][hidden]{display:none}

.booking-phone-row{align-items:end}.booking-phone-number{display:grid;gap:7px}.booking-phone-number #booking-phone-example{margin:0;font-weight:400;font-size:.76rem}.booking-phone-field #booking-phone-national-help:empty{display:none}.booking-phone-country{font-size:.85rem}

.booking-fields .booking-phone-row > label{grid-column:auto}.booking-phone-country select{font-size:.8rem;padding-inline:8px}@media(max-width:760px){.booking-phone-row{grid-template-columns:minmax(0,44%) minmax(0,1fr)}}

.booking-conditions{margin:16px 0;text-align:left;font-size:.85rem;line-height:1.6}.booking-conditions summary{cursor:pointer;padding:10px 0;font-weight:600;min-height:44px}.booking-conditions>div{padding:10px 14px;border-left:2px solid #b8c6ae}.booking-conditions h3{font:600 .86rem sans-serif;margin:16px 0 6px}.booking-conditions ul{padding-left:20px}.booking-conditions-text{white-space:pre-line}.booking-conditions small{display:block;overflow-wrap:anywhere}.booking-condition-ack{display:flex;align-items:flex-start;gap:10px;margin:20px 0}.booking-condition-ack input{flex:0 0 20px}.booking-economic-summary{line-height:1.65}
/* Confirmation CTA remains a normal, user-initiated link with a touch target. */
a.booking-primary{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:11px 17px;border:1px solid var(--booking-accent);border-radius:10px;text-decoration:none;font-weight:600}
.booking-intro-photo{display:flow-root}.booking-intro-photo figure{float:right;width:42%;margin:0 0 24px 36px;max-width:460px}.booking-intro-photo img{display:block;width:100%;height:235px;object-fit:contain;border-radius:18px}.booking-intro-photo figcaption{font-size:12px;color:var(--booking-muted);padding-top:7px}.booking-inclusions h3{font-size:1.05rem}.booking-inclusions ul{padding-left:20px;line-height:1.7}.booking-cancellation{margin:20px 0;padding:14px 0;border-top:1px solid var(--booking-line)}.booking-cancellation summary{cursor:pointer;font-weight:600;min-height:32px}.booking-cancellation p{margin:12px 0 0;line-height:1.6}
@media(max-width:650px){.booking-intro-photo figure{float:none;width:100%;max-width:none;margin:0 0 24px}.booking-intro-photo img{height:190px}.booking-intro-photo h1{font-size:2.4rem}}

/* Property photos stay separate from each room's gallery. */
.booking-hotel-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;border-radius:18px;background:#e8e3d9;scrollbar-width:none;aspect-ratio:auto;margin-inline:auto;background:transparent}.booking-hotel-track::-webkit-scrollbar{display:none}
.booking-intro-photo .booking-hotel-track img{flex:0 0 100%;min-width:0;width:100%;height:100%;aspect-ratio:1/1;object-fit:contain;border-radius:0;scroll-snap-align:start}
.booking-hotel-controls{display:flex;align-items:center;gap:8px;margin-top:8px}.booking-hotel-controls span{flex:1;text-align:center;font-size:.8rem;color:var(--booking-muted)}.booking-hotel-controls button{width:44px;min-height:44px;padding:0;background:transparent;border:1px solid var(--booking-line);border-radius:50%;color:var(--booking-accent);font-size:1.1rem}.booking-hotel-track:focus-visible{outline:2px solid var(--booking-accent);outline-offset:3px}

.booking-intro-photo .booking-hotel-still img{height:auto;aspect-ratio:auto;object-fit:contain;width:auto;max-width:100%;max-height:320px;margin-inline:auto}

/* Dismissible promotions float outside the search layout. */
.booking-promos{position:fixed;z-index:20;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:stretch;gap:10px;width:min(270px,calc(100vw - 32px));max-height:50dvh;overflow-y:auto;overscroll-behavior:contain;padding:2px;margin:0;pointer-events:none}
.booking-promo{position:relative;flex:none;min-width:0;margin:0;padding:12px 44px 12px 14px;border:1px solid var(--booking-accent);border-radius:14px;background:var(--booking-promo,var(--booking-accent));color:#fffdf6;box-shadow:0 6px 20px #18382b30;overflow-wrap:anywhere;pointer-events:auto;max-height:220px;overflow-y:auto}
.booking-promo[hidden]{display:none!important}.booking-promo strong{display:block;font-size:1rem;line-height:1.25;font-weight:600;letter-spacing:-.02em}
.booking-promo p strong{display:inline;font-size:inherit;letter-spacing:normal}
.booking-promo p{font-size:.75rem;line-height:1.4;color:inherit;margin:6px 0 0;white-space:pre-line}
.booking-promo .booking-banner-image{display:block;width:100%;height:auto;max-height:72px;object-fit:cover;border-radius:8px;margin-bottom:8px}
.booking-promo button{position:absolute;right:0;top:0;width:44px;min-height:44px;padding:0;border:0;border-radius:50%;background:transparent;color:inherit;font-size:1.4rem}
.booking-promo button:focus-visible{outline:2px solid #fffdf6;outline-offset:-5px}
@media(max-width:650px){.booking-promos{left:auto;right:8px;bottom:max(8px,env(safe-area-inset-bottom));width:min(270px,calc(100vw - 16px));max-height:42dvh;flex-direction:column;align-items:stretch;overflow-x:hidden;overflow-y:auto}.booking-promo{flex:none;max-width:100%;max-height:220px}.booking-promo .booking-promo-description,.booking-promo .booking-promo-conditions,.booking-promo[data-promotion-banner] .booking-promo-subtitle,.booking-promo[data-promotion-banner] .booking-banner-image{display:none}.booking-main:has(input:focus,select:focus,textarea:focus) .booking-promos{visibility:hidden}}

.booking-search-services{grid-column:1/-1;min-width:0;border:0;padding:0;margin:0;display:grid;gap:12px}.booking-search-services legend{font-size:.84rem;font-weight:600;margin-bottom:10px}.booking-search-services .booking-payment input{width:20px;height:20px;min-height:20px;padding:0;margin:2px 0;accent-color:var(--booking-accent)}.booking-service-policy{margin-top:8px;color:var(--booking-muted)}.booking-service-breakdown{font-size:.8rem;line-height:1.6}.booking-service-breakdown p{margin:12px 0 0}

.booking-service-details[hidden]{display:none}
/* Keep the initial search focused on dates and guests; the full row stays tappable. */
.booking-search .booking-search-services{gap:8px}
.booking-search .booking-search-services legend{font-size:.78rem;font-weight:500;margin-bottom:7px}
.booking-search .booking-search-services .booking-payment{grid-template-columns:18px 1fr;gap:10px;padding:11px 12px;min-height:44px;align-items:start}
.booking-search .booking-search-services .booking-payment:has(input:checked){padding:10px 11px}
.booking-search .booking-search-services .booking-payment input{width:18px;height:18px;min-height:18px;margin:2px 0}
.booking-search .booking-search-services .booking-payment strong{font-size:.82rem;font-weight:500;margin:2px 0}
.booking-search .booking-search-services .booking-payment small{font-size:.76rem;line-height:1.5}
/* Promotion entry stays visible on both desktop and phone, using the hotel palette. */
.booking-code{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;margin:18px 0;padding:18px;border:1px solid var(--booking-accent);border-radius:16px;min-width:0}
.booking-code legend{font-weight:600;padding:0 5px}.booking-code label{min-width:0}.booking-code-actions{display:flex;gap:8px;flex-wrap:wrap}.booking-code button{min-height:44px;border:1px solid var(--booking-accent);border-radius:12px;padding:10px 14px;color:var(--booking-accent);background:transparent}.booking-code button:disabled{opacity:.55;cursor:wait}
.booking-code [data-promo-status]{grid-column:1/-1;margin:0;font-size:.9rem;line-height:1.5}.booking-code [data-promo-status]:empty{display:none}.booking-discount-breakdown small{display:block;margin:5px 0;line-height:1.5}.booking-promo-benefit{font-weight:700}.booking-promo-conditions{font-size:.7rem!important}
@media(max-width:650px){.booking-code{grid-template-columns:1fr}.booking-code-actions button{flex:1}.booking-code input{width:100%;min-width:0}}

.booking-code [data-booking-code-conditions]{grid-column:1/-1;min-width:0}.booking-code [data-booking-code-conditions]:empty{display:none}.booking-promo-terms{padding:12px 14px;background:var(--booking-soft);border-radius:10px;font-size:.8rem;line-height:1.5}.booking-promo-terms p{margin:6px 0 0;overflow-wrap:anywhere}

.booking-promo{background:var(--promo-background,var(--booking-promo,var(--booking-accent)));color:var(--promo-foreground,#fffdf6)}
.booking-promo [data-close-promo]{color:inherit}

/* Optional inline add-ons: no room inventory or modal changes. */
.booking-extra-list{margin:24px 0;gap:12px}.booking-service-photo{display:block;max-width:min(100%,220px);max-height:220px;object-fit:contain;border-radius:8px;margin:10px 0}.booking-extra-choice [data-service-quantity-area]{display:grid;gap:6px;margin:12px 0 0 18px;font-size:.85rem;font-weight:600}.booking-extra-choice [data-service-quantity-area][hidden]{display:none}.booking-extra-choice [data-extra-quantity]{width:100%;max-width:120px;padding:10px;border:1px solid var(--booking-line);border-radius:6px;background:var(--booking-paper);color:var(--booking-ink)}.booking-extra-actions{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin:24px 0}.booking-progress{flex-wrap:wrap}@media(max-width:650px){.booking-extra-actions>*{width:100%;text-align:center}.booking-progress{gap:10px;font-size:.8rem}}

@media(max-width:850px){.booking-extras>.booking-summary{grid-row:auto}.booking-extras>section{min-width:0}}

/* Visible quantity arrows also work on touch browsers without native spinners. */
.booking-extra-choice .booking-quantity-stepper{display:flex;width:148px;max-width:100%;border:1px solid var(--booking-line);border-radius:7px;overflow:hidden;background:var(--booking-paper)}.booking-extra-choice .booking-quantity-stepper [data-extra-quantity]{flex:1;min-width:0;width:100%;max-width:none;height:56px;border:0;border-radius:0;appearance:textfield;-moz-appearance:textfield}.booking-quantity-stepper input::-webkit-inner-spin-button,.booking-quantity-stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.booking-quantity-arrows{display:flex;flex-direction:column;width:44px;flex:none;border-left:1px solid var(--booking-line)}.booking-quantity-arrows button{display:flex;align-items:center;justify-content:center;width:44px;min-height:28px;height:28px;padding:0;border:0;border-radius:0;background:transparent;color:var(--booking-ink);cursor:pointer}.booking-quantity-arrows button+button{border-top:1px solid var(--booking-line)}.booking-quantity-arrows button:hover:not(:disabled){background:var(--booking-soft)}.booking-quantity-arrows button:disabled{opacity:.35;cursor:default}.booking-quantity-arrows svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* No announcement is displayed until a safe viewport position is available. */
.booking-promos[data-safe-placement="pending"],.booking-promos[data-safe-placement="blocked"]{visibility:hidden;pointer-events:none}
