.booking-page { padding-top: 135px; padding-bottom: 105px; }
.booking-intro { margin-bottom: 52px; }
.booking-intro h1 { font-size: clamp(5rem, 8vw, 9rem); }
.booking-layout { gap: 5%; }
.booking-progress { margin-bottom: 42px; }
.booking-progress li { min-width: 0; padding-bottom: 18px; }
.booking-progress li.done { color: #315444; }
.booking-panel h2 { font-size: clamp(3.9rem, 6vw, 6.5rem); }
.booking-panel > p { margin: 18px 0 34px; }
.booking-help { background: #e4ebe2; }
.booking-form { max-width: none; gap: 32px; }
.booking-form input[type="radio"] { width: 18px; height: 18px; min-height: 18px; padding: 0; accent-color: #17352c; }

.booking-calendar {
  border: 1px solid rgba(24,39,37,.2);
  background: #f8faf6;
  padding: clamp(18px, 2.5vw, 30px);
}

.booking-calendar-head {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 16px;
  margin-bottom: 25px;
}

.booking-calendar-caption {
  display: block;
  color: #62746a;
  font-size: .75rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-bottom: 5px;
}

.booking-calendar-head h3 { font: 400 clamp(2.2rem, 3.4vw, 3.5rem)/1 var(--serif); }
.booking-calendar-arrows { display: flex; gap: 8px; }

.booking-calendar-arrows button {
  width: 42px;
  height: 42px;
  border: 1px solid #a8b8ab;
  background: transparent;
  color: #17352c;
  font-size: 1.7rem;
  line-height: 1;
  cursor: pointer;
}

.booking-calendar-arrows button:hover:not(:disabled) { background: #17352c; color: #fff; }
.booking-calendar-arrows button:disabled { opacity: .35; cursor: default; }
.booking-calendar-days,
.booking-calendar-week { display: grid; grid-template-columns: 50px repeat(7, minmax(0,1fr)); align-items: center; }
.booking-calendar-days { padding: 0 8px 10px; color: #64776b; font-size: .72rem; text-align: center; }
.booking-calendar-week {
  width: 100%;
  min-height: 56px;
  border: 1px solid transparent;
  border-top-color: rgba(24,39,37,.14);
  background: transparent;
  color: #17352c;
  padding: 0 8px;
  cursor: pointer;
  text-align: center;
}

.booking-calendar-week:hover:not(:disabled) { background: #e5ede3; }
.booking-calendar-week.selected { background: #17352c; border-color: #17352c; color: #fff; }
.booking-calendar-week:disabled { color: #9aa99d; cursor: default; }
.booking-calendar-week-label { font-size: .72rem; font-weight: 700; }
.booking-calendar-day { font-size: .9rem; }
.booking-calendar-day.outside { opacity: .42; }
.booking-selected-stay{margin-top:19px;padding:17px 19px;background:#e9eee7;border-left:3px solid #17352c;color:#17352c}
.booking-stay-summary-title{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:13px;font-size:.72rem;color:#64776b}
.booking-stay-summary-title strong{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:#17352c}
.booking-stay-summary-dates{display:flex;flex-wrap:wrap;gap:24px 48px}
.booking-stay-summary-dates div{display:grid;gap:4px}
.booking-stay-summary-dates small{font-size:.63rem;letter-spacing:.09em;text-transform:uppercase;color:#64776b}
.booking-stay-summary-dates strong{font-size:.9rem;font-weight:600}
.booking-selected-stay-empty p{font-size:.78rem;color:#64776b}

.booking-party { max-width: 480px; }
.booking-week-options { display: grid; gap: 8px; }
.booking-week-option { display: grid; grid-template-columns: 18px 1fr 1fr auto; align-items: center; gap: 18px; width: 100%; padding: 14px 18px; border: 1px solid var(--line); background: transparent; color: var(--ink); text-align: left; cursor: pointer; }
.booking-week-option small,.booking-week-option strong { display: block; }
.booking-week-option small { font-size: .65rem; opacity: .75; }
.booking-week-option strong { font-size: 1rem; font-weight: 500; }
.booking-week-mark { width: 15px; height: 15px; border: 1px solid currentColor; border-radius: 50%; }
.booking-week-status { font-size: .72rem; }
.booking-week-option:hover:not(:disabled) { background: #e5ede3; }
.booking-week-option.selected,.booking-week-option.selected:hover { color: white; background: #17352c; }
.booking-week-option.selected .booking-week-mark { background: currentColor; box-shadow: inset 0 0 0 3px #17352c; }
.booking-week-option:disabled { opacity: .4; cursor: default; }
.booking-selected-cottage a { display: inline-block; margin-top: 7px; font-size: .78rem; text-decoration: underline; text-underline-offset: 3px; }
.booking-calendar-head { align-items: center; }
.booking-calendar-instruction { margin:-10px 0 16px; color:#64776b; font-size:.78rem; line-height:1.5; }
.booking-month-picker { position: relative; width: fit-content; max-width: min(100%, 520px); margin-top: 4px; color: #17352c; z-index: 5; }
.booking-month-trigger { display: flex; align-items: center; gap: 17px; max-width: 100%; border: 0; border-bottom: 1px solid transparent; background: transparent; color: inherit; padding: 0 3px 5px 0; font: 400 clamp(2rem, 3.4vw, 3.5rem)/1 var(--serif); text-align: left; cursor: pointer; }
.booking-month-trigger:hover,.booking-month-trigger[aria-expanded="true"] { border-bottom-color: currentColor; }
.booking-month-trigger:focus-visible { outline: 2px solid #a96e49; outline-offset: 4px; }
.booking-month-chevron { flex:0 0 15px; width:15px; height:15px; transition: transform .2s; }
.booking-month-trigger[aria-expanded="true"] .booking-month-chevron { transform: rotate(180deg); }
.booking-calendar-tools{display:flex;align-items:center;gap:19px}
.booking-calendar-clear{border:0;border-bottom:1px solid currentColor;background:transparent;color:#52675c;padding:5px 0;font:500 .7rem/1.2 var(--sans);cursor:pointer;white-space:nowrap}
.booking-calendar-clear:hover{color:#8a573f}
.booking-calendar-clear:disabled{opacity:.36;cursor:default}
.booking-month-options { position: absolute; top: calc(100% + 14px); left: 0; z-index: 20; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 5px 8px; width: min(520px,calc(100vw - 64px)); max-height: 380px; overflow-y: auto; padding: 13px; border: 0; background: #fff; box-shadow: none; scrollbar-color: #718277 #e7ebe4; scrollbar-width: thin; }
.booking-month-options[hidden] { display: none; }
.booking-month-option { min-width: 0; min-height:44px; border: 0; border-bottom: 1px solid rgba(24,39,37,.1); background: transparent; color: #17352c; padding: 13px 15px; font: 500 .82rem/1.25 var(--sans); text-align: left; cursor: pointer; }
.booking-month-option:hover { background: #e7ede5; }
.booking-month-option[aria-pressed="true"] { background: #17352c; color: #fff; }
.booking-month-option:focus-visible { position: relative; z-index: 1; outline: 2px solid #a96e49; outline-offset: -2px; }
.booking-month-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); border-top: 1px solid rgba(24,39,37,.14); border-left: 1px solid rgba(24,39,37,.14); }
.booking-weekday { min-height: 38px; display: grid; place-items: center; color: #62746a; font-size: .7rem; font-weight: 600; text-transform: uppercase; border-right: 1px solid rgba(24,39,37,.14); border-bottom: 1px solid rgba(24,39,37,.14); }
.booking-date-cell { min-width: 0; min-height: clamp(58px,6.2vw,76px); display: grid; place-items: stretch; border-right: 1px solid rgba(24,39,37,.14); border-bottom: 1px solid rgba(24,39,37,.14); color: #17352c; }
.booking-date-cell > span { display: grid; place-items: start center; padding-top: 10px; font-size: .85rem; }
.booking-date-cell.outside-month { color: #9aa99d; background: rgba(255,255,255,.23); }
.booking-date-cell.selected-week { background: #17352c; border-color: rgba(255,255,255,.2); color: #fff; }
.booking-date-cell.available-week:not(.selected-week) { background: #edf4ed; }
.booking-date-cell.booked-week:not(.selected-week) { background: #f4e8e4; color: #8e5146; }
.booking-date-cell.past-week:not(.selected-week),
.booking-date-cell.not-offered-week:not(.selected-week) { background: #f1f1ed; color: #9aa99d; }
.booking-date-cell button { width: 100%; min-width: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; border: 0; background: transparent; color: inherit; cursor: pointer; padding: 5px 2px; font: inherit; }
.booking-date-cell button > span { font-size: .9rem; }
.booking-date-cell button small { color: #397657; font-size: .57rem; line-height: 1.15; }
.booking-date-cell button:hover:not(:disabled) { background: #d8e4d7; }
.booking-date-cell.selected-week button:hover:not(:disabled) { background: #24483b; }
.booking-date-cell.arrival-day.stay-start-week button { background: #17352c; color: #fff; }
.booking-date-cell.arrival-day.stay-start-week button small { color: #e1eee1; }
.booking-date-cell.arrival-day.stay-end-week button { background:#44685a; color:#fff; }
.booking-date-cell.arrival-day.stay-end-week button small { color:#e1eee1; }
.booking-date-cell button:disabled { color: #89978d; cursor: default; }
.booking-date-cell button:disabled small { color: #8a968d; }
.booking-date-cell.selected-week button:disabled { color: #fff; opacity: .78; }
.booking-date-cell.selected-week button:disabled small { color: #e1eee1; }
.booking-date-cell.booked-week button small { color: #a34f43; }
.booking-date-cell button:focus-visible { position: relative; z-index: 1; outline: 2px solid #a96e49; outline-offset: -3px; }
.booking-calendar-legend { display:flex; gap:18px; margin-top:15px; color:#62746a; font-size:.7rem; }
.booking-calendar-legend span { display:inline-flex; align-items:center; gap:7px; }
.booking-calendar-legend span::before { content:""; width:10px; height:10px; background:#dcebdd; border:1px solid #9cb49e; }
.booking-calendar-legend .legend-booked::before { background:#f0dcd7; border-color:#c89a90; }
.booking-range-error { margin-top:10px; color:#9b4c40; font-size:.78rem; }
.booking-stay-form > .button { margin-top: 0; margin-bottom: 12px; }
.booking-stay-form > .button:disabled { opacity: .45; cursor: not-allowed; }
.booking-alternatives { border-top: 1px solid var(--line); padding-top: 24px; margin-top: 2px; }
.booking-alternatives .booking-cottage-heading { margin-bottom: 18px; }
.booking-show-cottages { border: 0; border-bottom: 1px solid currentColor; background: transparent; color: var(--ink); padding: 5px 0; cursor: pointer; font-size: .78rem; }
@media (max-width: 520px) {
  .booking-date-cell { min-height: 52px; }
  .booking-date-cell > span { padding-top: 9px; font-size: .77rem; }
  .booking-date-cell button { gap: 3px; padding: 3px 1px; }
  .booking-date-cell button > span { font-size: .78rem; }
  .booking-date-cell button small { font-size: .49rem; }
  .booking-weekday { min-height: 32px; font-size: .6rem; }
  .booking-month-trigger { font-size: 2rem; }
  .booking-calendar-caption { font-size: .65rem; }
}

@media (max-width: 760px) {
  .booking-calendar-head { align-items: flex-start; gap: 12px; }
  .booking-calendar-tools { flex-direction: column; align-items: flex-end; gap: 12px; }
  .booking-stay-summary-dates { gap: 18px 28px; }
}

@media (max-width: 760px) {
  .booking-calendar-panel { top: 132px; left: 0; width: min(760px, calc(100vw - 32px)); max-height: calc(100svh - 150px); padding: 16px; }
}
@media (max-width: 520px) {
  .booking-calendar-tools { flex-direction: row; flex-wrap: wrap; justify-content: flex-end; }
  .booking-calendar-clear { font-size: .62rem; }
  .booking-month-options { width: min(460px,calc(100vw - 48px)); max-height: 320px; padding: 10px; }
  .booking-month-option { min-height: 42px; padding: 11px 10px; font-size: .72rem; }
  .booking-selected-stay { padding: 14px 13px; }
  .booking-stay-summary-title { align-items: flex-start; flex-direction: column; gap: 6px; }
  .booking-stay-summary-dates { gap: 14px 22px; }
  .booking-stay-summary-dates strong { font-size: .8rem; }
  .booking-date-summary { grid-template-columns:1fr 1fr auto; }
  .booking-date-summary-guests { grid-column:1 / -2; border-top:1px solid rgba(24,39,37,.2); border-right:0; }
  .booking-date-summary-chevron { grid-column:3; grid-row:1 / span 2; margin-right:12px; }
  .booking-date-summary-cell { min-height:64px; padding:12px 13px; }
  .booking-date-summary-guests { min-height:52px; padding:11px 13px; }
}
.booking-party label { font-weight: 600; }
.booking-cottage-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; border-bottom: 1px solid var(--line); padding-bottom: 13px; }
.booking-cottage-heading h3 { font: 400 2.7rem/1 var(--serif); }
.booking-cottage-heading p { color: #65766b; font-size: .8rem; text-align: right; }
.booking-cottage-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; }

.booking-stay-form .booking-cottage-card {
  position: relative;
  display: grid;
  grid-template-columns: 116px minmax(0,1fr);
  gap: 0;
  min-height: 138px;
  border: 1px solid rgba(24,39,37,.2);
  background: #f8faf6;
  cursor: pointer;
  overflow: hidden;
}

.booking-stay-form .booking-cottage-card:has(input:checked) { border: 2px solid #17352c; }
.booking-stay-form .booking-cottage-card.is-selected { background:#e5ebe2; }
.booking-stay-form .booking-cottage-card.is-selected .booking-cottage-status { color:#17352c; text-transform:uppercase; letter-spacing:.08em; }
.booking-stay-form .booking-cottage-card:has(input:focus-visible) { outline: 2px solid #17352c; outline-offset: 3px; }
.booking-stay-form .booking-cottage-card.unavailable { opacity: .48; cursor: default; }
.booking-stay-form .booking-cottage-card input[type="radio"] { position: absolute; opacity: 0; width: 1px; height: 1px; min-height: 1px; }
.booking-stay-form .booking-cottage-card img { width: 116px; height: 100%; object-fit: cover; }
.booking-cottage-card-body { display: flex; flex-direction: column; align-items: start; padding: 15px; min-width: 0; }
.booking-cottage-card-body strong { font: 400 1.75rem/1 var(--serif); }
.booking-cottage-card-body small { display: inline-block; margin: 9px 0 7px; color: #397657; font-size: .72rem; font-weight: 700; }
.booking-cottage-card.unavailable small { color: #64766b; }
.booking-cottage-card-body > span { color: #627168; font-size: .75rem; line-height: 1.35; }
.booking-show-cottages { justify-self: start; border: 0; border-bottom: 1px solid currentColor; background: transparent; color: #17352c; padding: 0 0 4px; font-size: .82rem; font-weight: 700; cursor: pointer; }
.booking-selection-feedback { margin:18px 0 0; padding:12px 15px; border-left:2px solid #17352c; background:#e5ebe2; color:#52625d; font-size:.8rem; line-height:1.45; }
.booking-selection-feedback strong { color:#17352c; }
.booking-calendar-prompt { padding:20px; background:#f1f3ee; color:#64766b; font-size:.84rem; line-height:1.5; }
.booking-date-choice { position:relative; display:grid; gap:24px; scroll-margin-top:125px; }
.booking-date-choice>h3 { margin:4px 0 -8px; font:400 clamp(2.4rem,4vw,3.8rem)/1 var(--serif); scroll-margin-top:125px; }
.booking-date-choice .booking-field-row { max-width:600px; }
.booking-date-choice>.button { justify-self:start; }
.booking-date-summary { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(130px,.7fr) auto; align-items:stretch; width:100%; max-width:760px; padding:0; border:1px solid rgba(24,39,37,.28); background:#f8faf6; color:var(--ink); text-align:left; cursor:pointer; transition:border-color .2s,box-shadow .2s,background .2s; }
.booking-date-summary:hover,.booking-date-summary[aria-expanded="true"] { border-color:#17352c; box-shadow:none; background:#fff; }
.booking-date-summary-cell,.booking-date-summary-guests { display:grid; gap:6px; align-content:center; min-height:76px; padding:15px 18px; border-right:1px solid rgba(24,39,37,.2); }
.booking-date-summary small { color:#64776b; font-size:.62rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.booking-date-summary strong { font-size:.88rem; font-weight:500; }
.booking-date-summary-guests { border-right:0; }
.booking-date-summary-chevron { align-self:center; width:16px; height:16px; margin:0 17px 0 4px; color:#17352c; transform:translateY(-2px); transition:transform .2s; }
.booking-date-summary[aria-expanded="true"] .booking-date-summary-chevron { transform:rotate(180deg) translateY(2px); }
.booking-calendar-panel { position:absolute; top:148px; left:0; z-index:15; display:block; width:min(900px,calc(100vw - 100px)); max-width:none; max-height:calc(100svh - 150px); overflow-y:auto; padding:24px; background:#fff; border:1px solid rgba(24,39,37,.2); box-shadow:0 22px 60px rgba(24,39,37,.14); animation:booking-calendar-reveal .2s ease-out; }
.booking-calendar-panel .booking-calendar { border:0; background:#fff; padding:0; }
@keyframes booking-calendar-reveal { from { opacity:0; transform:translateY(-6px); } to { opacity:1; transform:translateY(0); } }

/* Keep booking typography in the same restrained visual language as Home. */
.booking-intro h1,
.booking-panel h2 {
  font-family: var(--serif) !important;
  font-weight: 400 !important;
  letter-spacing: .015em;
  text-transform: uppercase;
}
.booking-intro h1 { font-size: clamp(3.2rem, 5.4vw, 6.4rem) !important; }
.booking-panel h2 { font-size: clamp(2.5rem, 4vw, 4.8rem) !important; }
.booking-help h2 {
  max-width: 100%;
  font-size: clamp(2.2rem, 3vw, 3rem) !important;
  overflow-wrap: anywhere;
}
.booking-date-choice > h3 {
  font: 400 clamp(2rem, 3vw, 3.2rem)/.98 var(--serif) !important;
  letter-spacing: .015em;
  text-transform: uppercase;
}
.booking-month-trigger {
  font: 400 clamp(1.75rem, 2.6vw, 2.75rem)/1.02 var(--serif) !important;
  letter-spacing: .015em;
  text-transform: uppercase;
}

.booking-package-fieldset,
.booking-guest-fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.booking-package-fieldset legend,
.booking-guest-fieldset legend { font: 400 2.8rem/1 var(--serif); margin-bottom: 22px; }
.booking-details-form .package-choice {
  display: flex;
  align-items: start;
  justify-content: start;
  gap: 17px;
  border: 1px solid rgba(24,39,37,.2);
  padding: 20px;
  background: #f8faf6;
  cursor: pointer;
}

.booking-details-form .package-choice:has(input:checked) { border: 2px solid #17352c; padding: 19px; }
.booking-details-form .package-choice strong { font: 400 2rem/1 var(--serif); }
.booking-details-form .package-choice small { margin-top: 6px; }
.booking-details-form .package-choice small:last-child { color: #17352c; font-weight: 700; }
.booking-details-form .package-choice input { margin-top: 7px; flex: 0 0 18px; }
.booking-guest-fieldset { display: grid; gap: 20px; max-width: 600px; }
.booking-guest-note { max-width: 560px; margin: -12px 0 2px; color: #627168; font-size: .8rem; line-height: 1.5; }

.booking-payment-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(250px, .75fr); gap: 30px; align-items: start; }
.booking-payment-layout .booking-summary { margin-top: 0; }
.summary-total { background: #e4ebe2; padding: 20px !important; margin-top: 8px; }
.summary-total dd { font-size: 1.3rem; }
.booking-payment-panel { background: #17352c; color: #fff; padding: 25px; }
.booking-payment-panel h3 { font: 400 2.6rem/1 var(--serif); margin-bottom: 22px; }
.booking-payment-kicker { margin:0 0 10px; color:#c8dcca; font-size:.65rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.booking-payment-intro { color:#dce7de; font-size:.85rem; line-height:1.5; margin:0 0 20px; }
.booking-handoff-preview { display:grid; gap:5px; margin:24px 0 0; padding:16px; border:1px solid rgba(255,255,255,.35); background:#24473a; }
.booking-handoff-preview span { color:#c8dcca; font-size:.65rem; letter-spacing:.1em; text-transform:uppercase; }
.booking-handoff-preview strong { font-size:1rem; letter-spacing:.08em; }
.booking-handoff-preview small { color:#dce7de; font-size:.75rem; line-height:1.4; }
.booking-payment-option { display: flex; align-items: center; gap: 15px; border: 1px solid rgba(255,255,255,.4); padding: 15px; margin-bottom: 10px; cursor: pointer; }
.booking-payment-choices { border:0; margin:0; padding:0; }
.booking-payment-choices legend { padding:0 0 10px; font-weight:600; }
.booking-payment-option:has(input:disabled) { opacity:.65; cursor:not-allowed; }
.booking-price-breakdown { display:grid; gap:10px; margin:0 0 24px; padding:15px 0; border-top:1px solid rgba(255,255,255,.3); border-bottom:1px solid rgba(255,255,255,.3); }
.booking-price-breakdown>div { display:flex; justify-content:space-between; gap:12px; font-size:.78rem; line-height:1.4; }
.booking-price-breakdown strong { flex:none; text-align:right; }
.booking-price-breakdown .booking-price-total { padding-top:12px; border-top:1px solid rgba(255,255,255,.25); font-size:.94rem; }
.booking-price-breakdown p { margin:2px 0 0; color:#cbd9cd; font-size:.72rem; line-height:1.5; }
.booking-checkout-layout>.booking-payment-panel .booking-price-breakdown,.booking-checkout-layout>div>.booking-price-breakdown { margin-top:22px; padding:18px; border:1px solid #cbd4ca; color:#182725; }
.booking-checkout-layout>div>.booking-price-breakdown p { color:#52625d; }
.booking-method-note { margin:20px 0 0; padding:14px; border-left:3px solid #c8dcca; background:#24473a; color:#fff; font-size:.78rem; line-height:1.55; }
.booking-payment-due { display:grid; gap:5px; margin:0 0 22px; padding:17px; border:1px solid rgba(255,255,255,.5); background:#24473a; }
.booking-payment-due span { color:#c8dcca; font-size:.68rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.booking-payment-due strong { font:400 2rem/1.1 var(--serif); }
.booking-payment-due small { color:#e1eee2; font-size:.75rem; line-height:1.45; }
.booking-payment-option:has(input:checked) { background: #315444; border-color: #e7f0e4; }
.booking-payment-option input { accent-color: #c8dcca; }
.booking-payment-option strong,.booking-payment-option small { display: block; }
.booking-payment-option small { color: #cbd9cd; margin-top: 3px; }
.booking-payment-method { display: flex; align-items: center; gap: 14px; border-top: 1px solid rgba(255,255,255,.3); margin-top: 24px; padding-top: 20px; }
.booking-payment-methods { border:0; margin:24px 0 0; padding:0; }
.booking-payment-methods legend { padding:0 0 10px; font-weight:600; }
.booking-payment-method { border:0; margin:0; padding:7px 0; cursor:pointer; font-size:.86rem; }
.booking-payment-method input { accent-color:#c8dcca; }
.booking-payment-note { color: #cbd9cd; font-size: .75rem; line-height: 1.45; margin-top: 16px; }
.booking-payment-panel .button { width: 100%; margin-top: 25px; cursor: pointer; }
.booking-checkout-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,.8fr); gap:30px; align-items:start; }
.booking-checkout-layout .booking-summary { margin-top:0; }
.booking-checkout-panel .booking-payment-panel { min-width:0; }
.booking-card-fields { display:grid; gap:16px; }
.booking-card-fields label { display:grid; gap:8px; color:#fff; font-size:.82rem; font-weight:600; }
.booking-card-fields input { width:100%; border:1px solid rgba(255,255,255,.45); background:#f8faf6; color:#182725; padding:12px 14px; font:400 .9rem var(--sans); }
.booking-offline-payment { padding:16px 0; border-top:1px solid rgba(255,255,255,.3); border-bottom:1px solid rgba(255,255,255,.3); }
.booking-offline-payment strong { display:block; margin-bottom:8px; }
.booking-offline-payment p { color:#cbd9cd; font-size:.8rem; line-height:1.5; margin:0; }
.booking-inquiry-panel h3 { margin-bottom:12px; }
.booking-inquiry-intro { color:#cbd9cd; font-size:.86rem; line-height:1.5; margin:0 0 22px; }
.booking-inquiry-panel>label { display:grid; gap:8px; margin:18px 0; color:#fff; font-size:.82rem; font-weight:600; }
.booking-inquiry-panel input,.booking-inquiry-panel textarea { width:100%; border:1px solid rgba(255,255,255,.45); background:#f8faf6; color:#182725; padding:12px 14px; font:400 .9rem var(--sans); }
.booking-inquiry-panel textarea { min-height:110px; resize:vertical; }
.booking-inquiry-status { color:#cbd9cd; font-size:.74rem; line-height:1.5; margin-top:14px; }
.booking-inquiry-status a { color:#fff; text-decoration:underline; text-underline-offset:3px; }
.booking-done .booking-final-note { max-width: 650px; }

.booking-package-intro,.booking-package-footnote { color:#596a62; font-size:.86rem; line-height:1.55; max-width:760px; }
.booking-package-intro { margin:-10px 0 22px; }
.booking-package-footnote { margin:18px 0 0; }
.booking-details-form .package-choice-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.booking-details-form .package-choice { position:relative; min-width:0; min-height:100%; display:flex; flex-direction:column; padding:0; background:#f4f6f1; }
.booking-details-form .package-choice:has(input:checked) { padding:0; background:#e5ebe2; border:2px solid #17352c; }
.booking-details-form .package-choice-select { display:flex; align-items:flex-start; gap:14px; flex:1; padding:20px; cursor:pointer; }
.booking-details-form .package-choice-unavailable { background:#f0f1ed; color:#68766e; }
.booking-details-form .package-choice-unavailable .package-choice-select { cursor:pointer; }
.booking-details-form .package-choice-unavailable:has(input:checked) { border-color:#17352c; }
.booking-details-form .package-choice-content { display:flex; flex:1; min-width:0; flex-direction:column; align-items:flex-start; }
.booking-details-form .package-choice strong { margin-top:8px; font-size:1.85rem; }
.booking-details-form .package-choice .package-choice-category { margin:0; color:#9c5f3f; font-size:.65rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.booking-details-form .package-choice .package-choice-fit { display:block; margin-top:10px; color:#52625d; font-size:.83rem; line-height:1.45; }
.package-choice-includes { display:grid; gap:6px; margin:14px 0 5px; }
.package-choice-includes span { font-size:.75rem; line-height:1.4; color:#17352c; }
.package-choice-includes span:before { content:"—"; margin-right:7px; color:#9c5f3f; }
.booking-details-form .package-choice .package-choice-rate { display:block; margin-top:auto; padding-top:16px; color:#17352c; font-weight:700; }
.package-choice-recommended { display:inline-block; margin-top:8px; color:#315f49; font-size:.64rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.package-choice-details { margin:0 20px 18px 52px; border-top:1px solid rgba(24,39,37,.16); padding-top:12px; }
.package-choice-details summary { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:24px; color:#17352c; font-size:.76rem; font-weight:700; cursor:pointer; list-style:none; }
.package-choice-details summary::-webkit-details-marker { display:none; }
.package-choice-details summary:after { content:"+"; display:inline-grid; place-items:center; flex:0 0 20px; width:20px; height:20px; margin-left:auto; font-size:1rem; line-height:1; }
.package-choice-details[open] summary:after { content:"−"; }
.package-choice-note { display:block; margin-top:10px; color:#65736c; font-size:.72rem; line-height:1.45; }
.package-choice-reason { margin:0 20px 18px 52px; color:#68766e; font-size:.74rem; line-height:1.5; }
.package-choice-reason strong { display:block; margin:0 0 4px; color:#52625d; font:700 .69rem/1.4 var(--sans); }
.booking-package-alert { padding:16px 18px; margin:0 0 20px; border-left:3px solid #a96e49; background:#f1e8dc; color:#43544e; font-size:.83rem; line-height:1.5; }
.booking-package-alert strong { display:block; margin-bottom:4px; color:#182725; }
.booking-duration-picker { margin:22px 0 8px; padding:18px 0 0; border:0; border-top:1px solid var(--line); }
.booking-duration-picker legend { margin-bottom:12px; color:var(--ink); font:400 1.55rem/1.1 var(--serif); }
.booking-duration-picker>div { display:flex; flex-wrap:wrap; gap:9px; }
.booking-duration-picker label { cursor:pointer; }
.booking-duration-picker input { position:absolute; width:1px; height:1px; opacity:0; }
.booking-duration-picker label span { display:block; min-width:108px; padding:13px 18px; border:1px solid var(--line); color:var(--ink); text-align:center; font-size:.78rem; }
.booking-duration-picker input:checked+span { border-color:var(--ink); background:#e4ebe2; font-weight:700; }
.booking-duration-picker input:focus-visible+span { outline:2px solid #a96e49; outline-offset:2px; }
.booking-duration-picker p { margin:12px 0 0; color:#64776b; font-size:.76rem; line-height:1.5; }
.booking-details-form .package-choice-list-single { grid-template-columns:minmax(0, 1fr); max-width:720px; }
.booking-details-form .package-choice-select { cursor:pointer; }
.booking-details-form .package-choice-estimate { display:block; margin-top:8px; color:#315f49; font-size:.76rem; font-weight:700; line-height:1.4; }
.package-details-trigger,.package-browse-trigger { border:0; border-top:1px solid rgba(24,39,37,.15); background:transparent; color:#17352c; text-align:left; padding:13px 20px; font:600 .76rem var(--sans); cursor:pointer; }
.package-details-trigger:hover,.package-browse-trigger:hover { color:#9c5f3f; }
.package-details-trigger span { float:right; font-size:1rem; }
.package-browse-trigger { border-top:0; border-bottom:1px solid currentColor; padding:8px 0 5px; margin-top:18px; }
.package-details-dialog { position:fixed; inset:50% auto auto 50%; transform:translate(-50%,-50%); width:min(1000px,calc(100vw - 36px)); max-width:none; max-height:min(86vh,900px); overflow:auto; border:1px solid rgba(24,39,37,.2); background:#f8faf6; color:#182725; padding:clamp(24px,4vw,52px); box-shadow:0 24px 90px rgba(10,22,18,.25); }
.package-details-dialog::backdrop { background:rgba(13,28,24,.68); }
.package-dialog-head { display:flex; justify-content:space-between; align-items:center; gap:16px; }
.package-dialog-head .eyebrow { margin:0; color:#9c5f3f; font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; }
.package-dialog-close { width:42px; height:42px; border:0; background:#17352c; color:#fff; font-size:1.8rem; line-height:1; cursor:pointer; }
.package-details-dialog h2 { margin:14px 0 8px; font:400 clamp(2.5rem,5vw,4.5rem)/.98 var(--serif); }
.package-dialog-intro { max-width:700px; color:#596a62; }
.package-dialog-columns { display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(24px,5vw,60px); margin-top:30px; }
.package-dialog-columns h3 { margin:24px 0 12px; font:400 1.75rem/1 var(--serif); }
.package-dialog-columns section:first-child h3:first-child { margin-top:0; }
.package-dialog-columns ul { padding-left:19px; }
.package-dialog-columns li { margin:0 0 9px; color:#43544e; font-size:.88rem; line-height:1.5; }
.package-dialog-note { padding:16px; background:#e5ebe2; color:#43544e; font-size:.84rem; line-height:1.5; }
.package-rate-table { border-top:1px solid var(--line); }
.package-rate-table>div { display:grid; grid-template-columns:1fr auto; gap:12px; padding:13px 0; border-bottom:1px solid var(--line); font-size:.78rem; line-height:1.45; }
.package-rate-table>div strong { font-weight:500; }
.package-rate-table>div span { text-align:right; font-weight:700; }
.package-current-estimate { display:grid; gap:7px; padding:18px; margin:22px 0; background:#e5ebe2; }
.package-current-estimate small { color:#68766e; font-size:.7rem; text-transform:uppercase; letter-spacing:.08em; }
.package-current-estimate strong { color:#17352c; font-size:1rem; line-height:1.4; }
.package-current-estimate span { color:#596a62; font-size:.72rem; line-height:1.45; }
.booking-summary .summary-total dd { font:400 1.8rem/1.1 var(--serif); }

@media(max-width:650px) { .booking-details-form .package-choice-list { grid-template-columns:1fr; }.package-dialog-columns { grid-template-columns:1fr; }.package-rate-table>div { grid-template-columns:1fr; }.package-rate-table>div span { text-align:left; } }

@media (max-width: 1150px) {
  .booking-payment-layout { grid-template-columns: 1fr; }
  .booking-checkout-layout { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
  .booking-layout { grid-template-columns: 1fr; }
  .booking-help { position: static; margin-top: 70px; }
}

@media (max-width: 760px) {
  .booking-page { padding: 125px 20px 80px; }
  .booking-intro { margin-bottom: 42px; }
  .booking-intro h1 { font-size: clamp(4.8rem, 13vw, 7rem); }
  .booking-progress { overflow: visible; }
  .booking-progress li { min-width: 0; font-size: .75rem; }
  .booking-panel h2 { font-size: clamp(3.8rem, 11vw, 5rem); }
  .booking-month-trigger { font-size: 2.2rem; }
  .booking-cottage-grid { grid-template-columns: 1fr; }
  .booking-cottage-heading { display: block; }
  .booking-cottage-heading p { text-align: left; margin-top: 7px; }
}

@media (max-width: 420px) {
  .booking-calendar { padding: 16px 10px; }
  .booking-month-trigger { font-size: 1.85rem; }
  .booking-month-options { width: min(460px,calc(100vw - 48px)); max-height: 320px; padding: 10px; }
  .booking-month-option { min-height: 42px; padding: 11px 10px; font-size: .72rem; }
  .booking-date-cell { min-height: 48px; }
  .booking-date-cell button small { font-size: .45rem; }
  .booking-stay-form .booking-cottage-card { grid-template-columns: 100px minmax(0,1fr); }
  .booking-stay-form .booking-cottage-card img { width: 100px; }
  .booking-summary > div { grid-template-columns: 36% minmax(0,1fr); gap: 10px; padding: 12px 0; }
  .booking-summary dt { font-size: .78rem; }
  .booking-summary dd { font-size: .88rem; }
  .summary-total dd { font-size: 1.1rem; }
}
.booking-help .eyebrow{margin:0;color:#8a573f;font-size:.66rem;letter-spacing:.13em;text-transform:uppercase}.booking-help h2{margin-top:16px;font-size:clamp(2.7rem,4vw,3.4rem);line-height:.98}.booking-help h2 em{font-family:var(--serif);font-weight:400}
.booking-selected-cottage-preview { display:flex; align-items:center; gap:15px; max-width:560px; margin:14px 0 18px; padding:10px; border:1px solid var(--line); background:#e9eee7; }
.booking-selected-cottage-preview img { width:78px; height:66px; flex:0 0 78px; object-fit:cover; }
.booking-selected-cottage-preview div { min-width:0; }
.booking-selected-cottage-preview span { display:block; color:#52625d; font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; }
.booking-selected-cottage-preview strong { display:block; margin-top:3px; font:400 1.55rem/1 var(--serif); }
.booking-selected-cottage-preview small { display:block; margin-top:5px; color:#397657; font-size:.7rem; font-weight:700; }
.booking-selected-cottage-preview p { margin-top:4px; color:#52625d; font-size:.72rem; line-height:1.35; }
.booking-capacity-note { margin:10px 0 0; color:#627168; font-size:.76rem; line-height:1.4; }
.booking-capacity-warning { margin:12px 0 0; padding:12px 14px; border-left:3px solid #a96e49; background:#f2e7dc; color:#6d3e2d; font-size:.78rem; line-height:1.45; }
.package-details-trigger { text-decoration:none; text-underline-offset:4px; }
.package-details-trigger:hover,.package-details-trigger:focus-visible { color:#17352c; text-decoration:underline; }
.package-details-trigger span { display:none; }
.booking-calendar-panel{scrollbar-color:#718277 #e7ebe4;scrollbar-width:thin}
@media (max-width:760px){.booking-calendar-panel{top:132px;max-height:calc(100svh - 150px)}}

/* Give the date picker the space of a real calendar popover. */
@media (min-width:761px) {
  .booking-calendar-panel {
    position: fixed;
    top: 118px;
    left: clamp(24px, 6vw, 100px);
    width: min(1120px, calc(100vw - 2 * clamp(24px, 6vw, 100px)));
    max-height: calc(100svh - 145px);
    z-index: 120;
    padding: 30px;
  }
}

@media (max-width:760px) {
  .booking-calendar-panel {
    position: fixed;
    top: 84px;
    left: 16px;
    width: calc(100vw - 32px);
    max-height: calc(100svh - 100px);
    z-index: 120;
  }
}

.booking-help h2 {
  font-size: clamp(2.2rem, 2.6vw, 2.6rem) !important;
  line-height: .94 !important;
  letter-spacing: 0 !important;
}

/* Keep the booking flow focused instead of stretching it across the viewport. */
@media (min-width: 901px) {
  .booking-page {
    width: min(1240px, calc(100% - 48px));
    margin-inline: auto;
    padding-right: 0;
    padding-left: 0;
  }

  .booking-intro {
    grid-template-columns: minmax(0, 1.3fr) minmax(260px, .7fr);
  }

  .booking-layout {
    grid-template-columns: minmax(0, 1fr) 260px;
    gap: 56px;
  }

  .booking-details-form .package-choice-list {
    grid-template-columns: minmax(0, 720px);
  }
}

@media (max-width: 900px) and (min-width: 761px) {
  .booking-page {
    width: min(820px, calc(100% - 48px));
    margin-inline: auto;
    padding-right: 0;
    padding-left: 0;
  }
}

/* Booking palette and calendar confirmation. Keep the checkout neutral and let the
   dark resort accents carry the hierarchy instead of the previous green wash. */
.booking-help {
  background: #111 !important;
  color: #fff;
}
.booking-help .eyebrow { color: #d28f6d; }
.booking-help p:not(.eyebrow),
.booking-help a { color: rgba(255,255,255,.8); }
.booking-help h2 {
  font-size: clamp(2rem, 2.3vw, 2.35rem) !important;
  line-height: .98 !important;
  max-width: 100%;
  overflow-wrap: normal;
}

.booking-selected-cottage-preview,
.booking-stay-form .booking-cottage-card.is-selected,
.booking-selection-feedback,
.booking-calendar-prompt,
.booking-selected-stay,
.booking-start-package,
.booking-weeks-status,
.booking-inline-note,
.booking-final-note {
  background: #f1f1ee;
  color: #111;
}
.booking-selection-feedback { border-left-color: #111; }
.booking-selection-feedback strong,
.booking-stay-form .booking-cottage-card.is-selected .booking-cottage-status { color: #111; }
.booking-selected-stay { border-left-color: #111; }

.booking-date-cell.selected-week,
.booking-calendar-week.selected,
.booking-date-cell.arrival-day.stay-start-week button,
.booking-date-cell.arrival-day.stay-end-week button {
  background: #111 !important;
  border-color: #111;
}
.booking-date-cell.available-week:not(.selected-week) { background: #f1f1ee; }
.booking-calendar-legend span::before { background: #f1f1ee; border-color: #111; }

.booking-calendar-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid rgba(17,17,17,.16);
}
.booking-calendar-actions .button { min-width: 120px; }

/* Give the help rail enough room for its contact details and keep the title balanced. */
@media (min-width: 901px) {
  .booking-layout {
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 48px;
  }
}
.booking-help { padding: 34px !important; }
.booking-help .eyebrow { color: #fff !important; }
.booking-help h2 {
  font-size: clamp(2.15rem, 2.55vw, 2.8rem) !important;
  line-height: .96 !important;
}
.booking-help .whatsapp-contact {
  width: 100%;
  max-width: none;
  align-items: center !important;
  gap: 12px;
  white-space: normal;
}
.booking-help .whatsapp-contact .whatsapp-icon {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  margin: 0;
  transform: none;
}
.booking-help .whatsapp-contact > span { line-height: 1.3; }

/* Month changes replace the calendar markup; replaying the panel entrance here
   causes a visible jump, so keep the open panel visually stable. */
.booking-calendar-panel { animation: none !important; }
.booking-date-note {
  margin: -10px 0 18px;
  color: #596a62;
  font-size: .76rem;
  line-height: 1.45;
}

/* Use the same lake-pine green throughout the booking states. */
:root {
  --resort-forest: #1d5147;
  --resort-forest-deep: #143d36;
  --resort-sage: #d9e5da;
  --resort-sage-soft: #e7eee7;
}
.booking-calendar-week.selected,
.booking-week-option.selected,
.booking-week-option.selected:hover,
.booking-date-cell.selected-week,
.booking-date-cell.arrival-day.stay-start-week button,
.booking-date-cell.arrival-day.stay-end-week button,
.booking-payment-panel { background: var(--resort-forest) !important; }
.booking-calendar-week.selected,
.booking-week-option.selected,
.booking-date-cell.selected-week { border-color: var(--resort-forest) !important; }
.booking-date-cell.available-week:not(.selected-week),
.booking-stay-form .booking-cottage-card.is-selected,
.booking-selection-feedback,
.booking-calendar-prompt,
.booking-selected-stay,
.booking-start-package,
.summary-total { background: var(--resort-sage) !important; }
.booking-calendar-week:hover:not(:disabled),
.booking-week-option:hover:not(:disabled) { background: var(--resort-sage-soft); }
.booking-month-option[aria-pressed="true"] { background: var(--resort-forest); }
.booking-calendar-arrows button:hover:not(:disabled) { background: var(--resort-forest); }
.booking-stay-form .booking-cottage-card.is-selected .booking-cottage-status,
.booking-selection-feedback strong,
.booking-show-cottages,
.booking-month-picker,
.booking-month-option,
.booking-date-cell,
.booking-date-summary-chevron { color: var(--resort-forest); }
.booking-stay-form .booking-cottage-card:has(input:checked),
.booking-stay-form .booking-cottage-card:has(input:focus-visible),
.booking-details-form .package-choice:has(input:checked) { border-color: var(--resort-forest); }
.booking-stay-form .booking-cottage-card.is-selected { border-color: var(--resort-forest); }
.booking-calendar-legend .legend-available::before { background: var(--resort-sage); border-color: var(--resort-forest); }
.booking-date-cell.selected-week,
.booking-date-cell.selected-week button,
.booking-calendar-week.selected { color: #fff !important; }

/* Review first, then choose payment in the same full-width column. */
.booking-payment-layout,.booking-checkout-layout{grid-template-columns:minmax(0,1fr);gap:36px}
.booking-payment-layout>.booking-payment-panel,.booking-checkout-layout>.booking-payment-panel{width:100%;min-width:0;padding:clamp(24px,3vw,40px)}
.booking-payment-panel h3{max-width:700px}
.booking-panel>h2:focus{outline:none}

/* Dates only; guest counts are edited in their dedicated fields below. */
.booking-date-summary { grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; }
.booking-date-summary-chevron { grid-column:3; grid-row:1; }
.booking-calendar-panel { margin:0; color:var(--ink); }
.booking-calendar-dialog-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:20px; font:600 .9rem var(--sans); }
.booking-calendar-close { display:grid; place-items:center; width:44px; height:44px; padding:10px; border:1px solid var(--line); border-radius:50%; background:transparent; color:var(--ink); cursor:pointer; }
.booking-calendar-close svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.5; }
@media(max-width:760px) {
  html.booking-calendar-open { overflow:hidden; }
  .booking-date-summary { grid-template-columns:minmax(0,1fr) minmax(0,1fr) 32px; border-radius:12px; overflow:hidden; }
  .booking-date-summary-cell { min-height:84px; padding:16px 12px; }
  .booking-date-summary strong { font-size:.85rem; line-height:1.4; }
  .booking-date-summary-chevron { margin:0 8px; }
  .booking-date-summary-cell:nth-child(2) { border-right:0; }
  .booking-calendar-panel[open] { position:fixed; inset:0; z-index:200; width:100%; max-width:none; height:100dvh; max-height:none; margin:0; border:0; border-radius:0; padding:0 16px max(20px,env(safe-area-inset-bottom)); overflow-y:auto; overscroll-behavior:contain; animation:none; }
  .booking-calendar-panel::backdrop { background:#fff; }
  .booking-calendar-dialog-head { position:sticky; top:0; z-index:25; margin:0 -16px 20px; padding:calc(12px + env(safe-area-inset-top)) 16px 12px; background:#fff; border-bottom:1px solid var(--line); }
  .booking-calendar-panel .booking-calendar-actions { position:sticky; bottom:0; padding:16px 0 max(16px,env(safe-area-inset-bottom)); background:#fff; }
  .booking-calendar-panel .booking-calendar-actions .button { width:100%; justify-content:center; min-height:48px; }
}

@media(min-width:761px) {
  html.booking-calendar-open { overflow:hidden; }
  .booking-calendar-panel[open] { position:fixed; inset:0; margin:auto; width:min(1280px,calc(100vw - 80px)); max-width:none; max-height:calc(100dvh - 64px); height:fit-content; padding:28px 40px 32px; border:1px solid var(--line); box-shadow:0 24px 80px rgba(0,0,0,.2); animation:none; overscroll-behavior:contain; }
  .booking-calendar-panel::backdrop { background:rgba(12,24,20,.45); }
  .booking-calendar-panel .booking-calendar { width:100%; max-width:none; }
  .booking-calendar-panel .booking-calendar-dialog-head { position:sticky; top:-28px; z-index:25; margin:-28px -40px 24px; padding:20px 40px; background:white; border-bottom:1px solid var(--line); }
  .booking-calendar-panel .booking-calendar-actions { position:sticky; bottom:-32px; padding:20px 0; background:white; }
}

.booking-cottage-option { display:grid; grid-template-rows:1fr auto; min-width:0; }
.booking-cottage-preview-trigger { min-height:42px; padding:9px 15px; border:1px solid var(--line); border-top:0; background:#edf2eb; color:#17352c; font-size:.78rem; font-weight:700; text-align:left; cursor:pointer; }
.booking-cottage-preview-trigger:hover { background:#dce6dc; }
.booking-cottage-preview.package-details-dialog { padding:0; width:min(1200px,calc(100vw - 32px)); border:0; }
.booking-cottage-preview-content { display:grid; grid-template-columns:1fr 1fr; }
.booking-cottage-preview-photo { min-height:clamp(360px,43vw,560px); }
.booking-cottage-preview-copy { position:relative; padding:clamp(26px,4vw,52px); padding-top:68px; }
.booking-cottage-preview-copy .package-dialog-close { position:absolute; top:14px; right:14px; }
.booking-cottage-preview-copy .booking-cottage-preview-facts { margin:14px 0; font-weight:700; }
.booking-cottage-preview-copy .button { margin-top:24px; white-space:normal; }
@media(max-width:640px) {
  .booking-cottage-preview-content { grid-template-columns:1fr; }
  .booking-cottage-preview-photo { min-height:0; height:clamp(140px,30vh,240px); }
  .booking-cottage-preview-copy { position:static; padding:24px; }
}

.booking-date-summary { grid-template-columns:minmax(0,1fr) minmax(0,1fr) clamp(38px,5vw,56px); }
.booking-date-summary-chevron { place-self:center; margin:0; transform:none; }
.booking-date-summary[aria-expanded="true"] .booking-date-summary-chevron { transform:rotate(180deg); }

.booking-split-option { margin-top:16px; padding:16px; border:1px solid currentColor; }
.booking-split-option p { margin-top:8px; }
.booking-split-panel { margin-top:24px; display:grid; gap:16px; }
.booking-split-panel .button { justify-self:start; }
.booking-split-panel input { display:block; width:100%; margin-top:8px; }
