/* Live online booking additions (time slots and confirmation page). */
.slot-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:10px;margin:22px 0 8px}
.slot-list .slot-hint{grid-column:1/-1;margin:0;font-size:14px;line-height:1.6;color:#efd5c1}
.slot-list .slot-hint a{color:#f6c18b}
.slot{font:600 14px/1 var(--sans,'DM Sans',sans-serif);padding:14px 10px;background:#6c321e;color:#fff0e3;border:1px solid #9e6345;cursor:pointer;transition:border-color .2s ease,background .2s ease,transform .2s ease}
.slot:hover,.slot:focus-visible{border-color:#f2c79a;background:#713821;transform:translateY(-2px);outline:none}
.slot[aria-checked="true"]{background:#edb277;border-color:#edb277;color:#441b0d}
.booking-live .confirm-line a{color:#f6c18b}
.confirm-card{max-width:760px;padding:clamp(28px,4vw,56px);background:#582716;border:1px solid #ad6d4b;margin:0 auto clamp(80px,10vw,130px)}
.confirm-card h2{font:400 clamp(29px,3vw,43px)/1.14 var(--serif);letter-spacing:-.035em;margin:16px 0 18px}
.confirm-card h2 em{color:#edb277}
.confirm-card p,.confirm-card li{font-size:15px;line-height:1.7;color:#efd5c1}
.confirm-lines{list-style:none;padding:14px 0 0;margin:18px 0;border-top:1px solid #a36e4e}
.confirm-lines li{display:flex;justify-content:space-between;gap:16px;padding:6px 0}
.confirm-total{display:flex;justify-content:space-between;border-top:1px solid #a36e4e;padding-top:14px;font-weight:600;color:#fff2e7}
.terms-body{max-width:820px;margin:0 auto clamp(80px,10vw,130px);padding:clamp(28px,4vw,56px);background:#582716;border:1px solid #ad6d4b}
.terms-body h2{font:400 26px/1.25 var(--serif);margin:30px 0 10px;color:#fff0e3}
.terms-body p,.terms-body li{font-size:15px;line-height:1.7;color:#efd5c1}
.draft-banner{background:#edb277;color:#441b0d;padding:14px 20px;font-weight:600;margin-bottom:24px}
.slot-heading{margin:26px 0 0;font:400 22px/1.3 var(--serif,'Playfair Display',serif);color:#fff0e3}
.promo-note{margin:12px 0 0;padding:10px 12px;background:#edb277;color:#441b0d;font-size:13px;font-weight:600;line-height:1.45}
/* Keep "Your planned visit" in view on desktop while the guest scrolls through date, time and details.
   main's overflow:hidden (booking.css) creates a scroll container that stops position:sticky working;
   overflow-x:clip still trims decorative overflow without breaking sticky. */
.booking-page main{overflow:visible;overflow-x:clip}
@media(min-width:901px){
  .booking-layout{align-items:start}
  .booking-summary{position:sticky;top:24px;max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);overflow-y:auto;overscroll-behavior:contain}
}
.booking-summary #guest-total{transition:color .3s ease}
.booking-summary #guest-total.price-updated{animation:solace-price-pulse .9s ease}
@keyframes solace-price-pulse{0%{color:#b0461f;transform:scale(1.08)}100%{color:inherit;transform:scale(1)}}
#guest-total{display:inline-block;transform-origin:right center}
@media(prefers-reduced-motion:reduce){.booking-summary #guest-total.price-updated{animation:none}}
/* Gift certificate box in the price panel */
.gift-box{margin:16px 0 4px;padding:14px 0 0;border-top:1px solid #c79b76}
.gift-label{display:block;font-size:13px;font-weight:600;color:#5b2f1a;margin:0 0 8px}
.gift-row{display:flex;gap:8px}
.gift-row input{flex:1;min-width:0;padding:10px 12px;border:1px solid #b98a66;background:#f7ebdd;color:#3b1a0e;font:600 14px/1.2 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.06em;text-transform:uppercase}
.gift-row input:focus{outline:2px solid #8b4c29;outline-offset:1px}
.gift-apply{padding:10px 16px;border:0;background:#441b0d;color:#f7ebdd;font:600 13px/1 inherit;letter-spacing:.04em;cursor:pointer;transition:background .2s ease}
.gift-apply:hover{background:#6b2f17}.gift-apply:disabled{opacity:.6;cursor:wait}
.gift-applied p{display:flex;justify-content:space-between;align-items:baseline;margin:0 0 6px;font-size:14px;color:#422014}
.gift-applied .gift-due{font-size:16px;font-weight:700}
.gift-applied .gift-due strong{font:400 26px/1 var(--serif)}
.gift-meta{font-size:12px!important;color:#6b4430!important;gap:8px}
.gift-remove{border:0;background:none;padding:0;color:#8b4c29;font:600 12px/1 inherit;text-decoration:underline;cursor:pointer}
.gift-status{margin:8px 0 0;font-size:12px;line-height:1.5;color:#6b4430;min-height:1em}
