/* Desktop enhancement only; mobile retains its original booking UI. */
@media (min-width:981px) {
/* Header booking concept: ivory bar, two-month calendar and guest cards. */
.hb-form{--hb-accent:var(--red,#8b0304);--hb-range:color-mix(in srgb,var(--hb-accent) 12%,#fffdfa);--hb-ink:#29231f;--hb-line:#e5dfd5;color:var(--hb-ink)}
.desktop-booking-panel:has(.hb-form){overflow:visible!important;padding-bottom:28px;background:#faf8f3}
.desktop-booking-form.hb-form{display:flex!important;align-items:stretch!important;gap:0!important;max-width:1320px!important;width:calc(100% - 64px)!important;margin:16px auto 0!important;padding:5px!important;background:#f7f5ef;border:1px solid var(--hb-line);border-radius:12px;box-shadow:0 12px 35px #3628150c}
.hb-form .booking-field{position:relative;min-width:0;padding:18px 22px!important;border:0!important;border-right:1px solid var(--hb-line)!important;flex:1}
.hb-form .booking-date-field{flex:1.35}.hb-form .booking-guest-field{flex:1.3}.hb-form .booking-collection{flex:.9}
.hb-form .booking-field>span,.hb-form .mobile-booking-label>span{display:block;font-size:9px!important;font-weight:600;letter-spacing:2px!important;text-transform:uppercase;margin-bottom:8px}
.hb-form .booking-picker-trigger{padding:0!important;width:100%;background:transparent!important;border:0!important;text-align:left;min-height:35px}
.hb-form .booking-picker-trigger strong{font-family:"Montserrat",Arial,serif!important;font-weight:400!important;font-size:17px!important;line-height:1.4!important;white-space:normal}
.hb-form .booking-picker-trigger small{display:block;margin-top:5px;font-size:9px!important;letter-spacing:1.4px;text-transform:uppercase;color:#8d7f73}
.hb-form input[name=promo],.hb-form input[name=promoCode]{width:100%;padding:4px 0!important;background:transparent!important;border:0!important;border-bottom:1px solid var(--hb-line)!important;font:17px "Montserrat",Arial,serif!important;outline-offset:4px}
.hb-form .booking-submit{align-self:stretch!important;flex:1;min-width:180px;margin:0 0 0 7px!important;padding:22px!important;background:var(--hb-accent)!important;border-radius:5px!important;color:#fff!important;font-size:10px!important;letter-spacing:1.8px;line-height:1.6;border:0}
.hb-form .booking-submit::after{content:' →';font-size:21px;margin-left:12px}
.hb-form .booking-popover{border:1px solid var(--hb-line)!important;border-radius:12px!important;background:#fffdfa!important;box-shadow:0 20px 45px #30200e16!important;top:calc(100% + 10px)!important;padding:24px!important}
.hb-form .hb-calendar{width:min(1120px,calc(100vw - 90px))!important;max-width:none!important;left:0!important;display:none!important;transform:none!important}
.hb-form .hb-calendar.is-open{display:grid!important;grid-template-columns:minmax(0,1fr) 260px;gap:28px}
.hb-calendar-main{position:relative;min-width:0}.hb-navigation{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;pointer-events:none}.hb-navigation button{pointer-events:auto;border:0;background:none;font:26px "Montserrat",Arial;color:#5e4d40;cursor:pointer;width:34px;height:36px}
.hb-months{display:grid;grid-template-columns:1fr 1fr;gap:26px}.hb-month+ .hb-month{border-left:1px solid var(--hb-line);padding-left:26px}
.hb-month h3{text-align:center;font:18px "Montserrat",Arial,serif;margin:4px 0 23px!important;color:var(--hb-ink)}
.hb-week,.hb-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center;gap:3px}.hb-week{font-size:9px;letter-spacing:1px;margin-bottom:12px}
.hb-day{height:36px;width:100%;border:0;border-radius:50%;font:15px "Montserrat",Arial,serif;background:transparent;color:var(--hb-ink);cursor:pointer}.hb-day.is-muted,.hb-day:disabled{color:#c3beb8}.hb-day:disabled{cursor:default}.hb-day.is-range{background:var(--hb-range);border-radius:5px}.hb-day.is-selected{background:var(--hb-accent);color:white}.hb-day:not(:disabled):hover{outline:1px solid var(--hb-accent)}
.hb-summary{border-left:1px solid var(--hb-line);padding-left:26px}.hb-summary>small,.hb-guest-summary>small{font-size:9px;letter-spacing:2px;display:block;margin-bottom:15px}.hb-summary>div{padding:14px;border:1px solid var(--hb-line);background:#f9f7f3;border-radius:7px;margin-bottom:12px}.hb-summary span{display:block;color:#8d7f73;font:13px "Montserrat",Arial}.hb-summary strong{display:block;font:17px "Montserrat",Arial;margin-top:6px}.hb-summary p{text-transform:uppercase;letter-spacing:2px;font-size:10px;border-top:1px solid var(--hb-line);padding-top:18px;margin-top:22px}
.hb-summary button,.hb-form .booking-popover-done{width:100%;padding:14px!important;background:var(--hb-accent)!important;color:#fff!important;border:0!important;border-radius:5px;font:16px "Montserrat",Arial!important;cursor:pointer}
.hb-form .hb-guests{width:min(820px,calc(100vw - 100px))!important;max-width:none!important;left:auto!important;right:0!important;display:none!important;transform:none!important;gap:24px}
.hb-form .hb-guests.is-open{display:grid!important;grid-template-columns:repeat(3,1fr) 1.6fr}
.hb-form .booking-counter-row{display:flex!important;flex-direction:column;align-items:flex-start!important;justify-content:space-between;gap:18px;padding:0 20px 0 0!important;border:0!important;border-right:1px solid var(--hb-line)!important;margin:0!important}
.hb-form .booking-counter-row strong{font-size:10px;letter-spacing:1.5px;text-transform:uppercase}.hb-form .booking-counter-row small{font-size:10px!important;color:#91877d;margin-top:7px;display:block}.hb-form .booking-counter{display:flex;align-items:center;gap:13px}.hb-form .booking-counter button{width:34px!important;height:34px!important;border-radius:50%!important;background:#f3f0e9!important;border:0!important;color:#503e32!important;font-size:20px}.hb-form .booking-counter b{font:20px "Montserrat",Arial}.hb-guest-summary strong{display:block;font:16px "Montserrat",Arial;margin:0 0 14px;line-height:1.5}
.hb-form button:focus-visible{outline:2px solid var(--hb-accent)!important;outline-offset:3px}
@media(min-width:981px) and (max-width:1200px){.desktop-booking-form.hb-form{width:calc(100% - 32px)!important}.hb-form .booking-field{padding:16px 12px!important}.hb-form .booking-picker-trigger strong{font-size:14px!important}.hb-form .booking-submit{min-width:150px;padding:15px!important}}
@media(max-width:980px){.mobile-booking-form.hb-form{padding-bottom:30px!important}.hb-form .booking-field{padding:15px 0!important;border-right:0!important}.hb-form .hb-calendar{position:relative!important;top:auto!important;width:100%!important;margin-top:16px;padding:16px!important}.hb-form .hb-calendar.is-open{grid-template-columns:1fr;gap:18px}.hb-months{grid-template-columns:1fr}.hb-month+.hb-month{display:none}.hb-summary{border-left:0;border-top:1px solid var(--hb-line);padding:18px 0 0}.hb-summary>div{display:inline-block;width:48%;vertical-align:top;padding:10px}.hb-summary strong{font-size:14px}.hb-summary p{margin-top:8px;padding-top:10px}.hb-form .hb-guests{position:relative!important;top:auto!important;width:100%!important;margin-top:16px;padding:16px!important}.hb-form .hb-guests.is-open{grid-template-columns:1fr;gap:18px}.hb-form .booking-counter-row{flex-direction:row;border-right:0!important;padding:0!important}.hb-form .booking-submit{margin:18px 0 0!important;width:100%;min-height:55px}.hb-form .mobile-booking-dates{display:none!important}.hb-form .booking-date-field>[data-booking-toggle=calendar]{display:block!important}}
.hb-day.is-muted{visibility:hidden}
@media(min-width:981px){
.hb-form .booking-date-field,.hb-form .booking-guest-field{padding-left:52px!important}
.hb-form .booking-date-field::before,.hb-form .booking-guest-field::before{content:'';position:absolute;left:18px;top:36px;width:23px;height:23px;background:center/contain no-repeat}
.hb-form .booking-date-field::before{background-color:var(--hb-accent);mask:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%23594a3e' stroke-width='1.5' viewBox='0 0 24 24'%3E%3Crect x='3' y='5' width='18' height='17' rx='2'/%3E%3Cpath d='M7 2v6m10-6v6M3 11h18m-13 3h2m3 0h2m-7 4h2m3 0h2'/%3E%3C/svg%3E")}
.hb-form .booking-guest-field::before{background-color:var(--hb-accent);mask:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%23594a3e' stroke-width='1.5' viewBox='0 0 24 24'%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M2 22v-3a7 7 0 0 1 14 0v3M16 3a4 4 0 0 1 0 8m3 11v-3a9 9 0 0 0-2-6'/%3E%3C/svg%3E")}
.hb-form [data-booking-toggle][aria-expanded=true]{color:var(--hb-accent)}
}
@media(min-width:981px){.hb-form [data-booking-toggle]{position:relative;padding-right:18px!important}.hb-form [data-booking-toggle]::after{content:'⌄';position:absolute;right:0;top:3px;font:18px "Montserrat",Arial;transform:none;border:0;width:auto;height:auto}.hb-form [data-booking-toggle][aria-expanded=true]::after{content:'⌃'}}
/* Property cards and type system, matching the approved reference. */
.hb-form,.hb-form button,.hb-form input,.hb-form small,.hb-form span{font-family:"Montserrat",Arial,sans-serif}
.hb-form .booking-picker-trigger strong,.hb-form .booking-counter b,.hb-form input[name=promo],.hb-form input[name=promoCode],.hb-form .hb-month h3,.hb-form .hb-day,.hb-form .hb-summary strong,.hb-form .hb-summary button,.hb-form .hb-guest-summary strong,.hb-form .booking-popover-done,.hb-form .hb-property-copy strong{font-family:"Montserrat",Arial,serif!important;font-weight:400!important}
.hb-form .booking-collection-popover{left:0!important;width:360px!important;max-width:calc(100vw - 40px)!important;padding:8px!important;background:#f8f6f0!important}
.hb-property-heading{display:flex;align-items:center;justify-content:space-between;padding:5px 3px 15px;gap:12px}
.hb-property-heading>span{font:600 9px "Montserrat",Arial,sans-serif;letter-spacing:2.6px}
.hb-form .hb-property-heading button{width:24px!important;min-height:24px!important;padding:0!important;border:0!important;background:none!important;font:26px "Montserrat",Arial,sans-serif;color:#29231f;display:block;text-align:center}
.hb-form .hb-property-heading button::after{display:none}
.hb-form [data-collection-option]{display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:13px!important;min-height:77px!important;padding:6px!important;border:1px solid transparent!important;border-bottom-color:#e7e1d7!important;border-radius:0!important;background:transparent!important;color:#29231f!important;transition:background .2s,border-color .2s}
.hb-form [data-collection-option]::after{display:none!important}
.hb-form [data-collection-option].is-selected,.hb-form [data-collection-option]:hover{border:1px solid #b9a389!important;border-radius:4px!important;background:#eee9df!important}
.hb-form [data-collection-option] img{width:118px;height:59px;object-fit:cover;border-radius:2px;flex-shrink:0}
.hb-property-copy{display:block;flex:1;min-width:0}.hb-form .hb-property-copy strong{display:block;font-size:15px!important;line-height:1.35!important}.hb-form .hb-property-copy small{display:block;margin-top:7px!important;font:8px "Montserrat",Arial,sans-serif!important;letter-spacing:1.5px;color:#988875}
.hb-property-arrow{font-size:26px;padding-right:5px;font-weight:300}
.hb-form .hb-grid{gap:3px 0}
.hb-form .hb-day{position:relative;border-radius:0;background:transparent;isolation:isolate}
.hb-form .hb-day.is-start,.hb-form .hb-day.is-end{background:transparent!important;border:0!important}
.hb-form .hb-day.is-range{background:var(--hb-range)!important;border-radius:0;color:var(--hb-accent)!important}
.hb-form .hb-day.is-start{color:#fff!important;border-radius:50% 0 0 50%}
.hb-form .hb-day.is-start::before{content:'';position:absolute;inset:0 0 0 50%;background:var(--hb-range);z-index:-2}
.hb-form .hb-day.is-start::after{content:'';position:absolute;width:36px;height:36px;top:0;left:50%;transform:translateX(-50%);background:var(--hb-accent);border-radius:50%;z-index:-1}
.hb-form .hb-day.is-end{background:var(--hb-range)!important;color:var(--hb-accent)!important;border-radius:0 24px 24px 0!important}
@media(max-width:980px){.hb-form .booking-collection-popover{position:relative!important;top:auto!important;width:100%!important;max-width:none!important;margin-top:12px}.hb-form [data-collection-option]{gap:11px!important}.hb-form [data-collection-option] img{width:108px;height:57px}.hb-form .hb-property-copy strong{font-size:14px!important}}
.hb-form .hb-day.is-start{background:linear-gradient(to right,transparent 50%,var(--hb-range) 50%)!important}
.hb-form .hb-day:hover:not(:focus-visible){outline:0}
@media(min-width:1201px){.desktop-booking-form.hb-form:has([data-collection-input]) .booking-picker-trigger strong{font-size:15px!important}}
@media(max-width:980px){.hb-form .booking-collection-popover{display:none!important;transition:none!important}.hb-form .booking-collection-popover.is-open{display:block!important;max-height:none!important;opacity:1!important;visibility:visible!important;overflow:visible!important}.hb-form .hb-property-heading{padding-bottom:12px}.hb-form .hb-property-heading button{width:24px!important;min-height:24px!important}}
.hb-form .hb-property-copy,.hb-form .hb-property-copy strong{text-transform:none!important;text-align:left!important;letter-spacing:0!important}
@media(max-width:980px){.hb-form .booking-collection-popover{width:calc(100% + 16px)!important;max-width:calc(100vw - 44px)!important;margin-left:-8px!important}.hb-form .hb-property-copy strong{font-size:14px!important;white-space:nowrap}.hb-form [data-collection-option]{gap:10px!important}.hb-form [data-collection-option] img{width:108px!important}.hb-form .hb-property-arrow{padding-right:0}}
/* Keep Rooms visible and align all guest controls with the apply action. */
.hb-form .hb-guests .booking-counter-row{align-items:center!important;text-align:center;justify-content:center;min-height:132px;padding:0 18px 0 0!important;gap:20px}
.hb-form .hb-guests .booking-counter{justify-content:center;width:100%}
.hb-form .hb-guests .hb-guest-summary{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-width:0;gap:12px}
.hb-form .hb-guests .hb-guest-summary>small,.hb-form .hb-guests .hb-guest-summary>strong{margin:0!important}
.hb-form .hb-guests .hb-guest-summary .booking-popover-done{display:flex!important;align-items:center;justify-content:center;margin:0!important;min-height:44px;text-align:center;letter-spacing:0!important;line-height:1.25!important}
@media(max-width:980px){
.mobile-booking-form.hb-form .hb-guests .booking-counter-row:first-child{display:flex!important}
.mobile-booking-form.hb-form .hb-guests .booking-counter-row{flex-direction:row!important;align-items:center!important;justify-content:space-between!important;text-align:left;min-height:76px;padding:12px 0!important;gap:12px}
.mobile-booking-form.hb-form .hb-guests .booking-counter{width:auto;flex-shrink:0}
.mobile-booking-form.hb-form .hb-guests .hb-guest-summary{border-top:1px solid var(--hb-line);padding-top:18px;gap:14px}
.mobile-booking-form.hb-form .hb-guests .hb-guest-summary .booking-popover-done{display:flex!important;width:100%!important}
}
@media(max-width:980px){
.mobile-booking-form.hb-form .booking-guest-field>[data-booking-toggle="guest"]{display:block!important}
.mobile-booking-panel.is-open .mobile-booking-form.hb-form .hb-guests{display:none!important}
.mobile-booking-panel.is-open .mobile-booking-form.hb-form .hb-guests.is-open{display:grid!important;grid-template-columns:1fr;gap:14px;padding:16px!important;margin-top:14px!important;border:1px solid var(--hb-line)!important;background:#fffdfa!important;border-radius:12px!important}
}
/* Unified Montserrat typography throughout the header booking forms. */
.desktop-booking-form.hb-form,
.mobile-booking-form.hb-form,
.desktop-booking-form.hb-form *,
.mobile-booking-form.hb-form *,
.desktop-booking-form.hb-form *::before,
.desktop-booking-form.hb-form *::after,
.mobile-booking-form.hb-form *::before,
.mobile-booking-form.hb-form *::after {
  font-family: "Montserrat", Arial, sans-serif !important;
}
/* Shared rhythm: compact Montserrat values, consistent labels and line icons. */
.hb-form{--hb-label-size:10px;--hb-value-size:14px;--hb-caption-size:9px}
.hb-form .booking-field>span,.hb-form .mobile-booking-label>span{font-size:var(--hb-label-size)!important;font-weight:600!important;letter-spacing:1.5px!important;line-height:1.5!important;margin-bottom:7px!important}
.hb-form .booking-picker-trigger strong{font-size:var(--hb-value-size)!important;font-weight:400!important;line-height:1.6!important;letter-spacing:0!important;text-transform:none!important}
.hb-form .booking-picker-trigger small{font-size:var(--hb-caption-size)!important;line-height:1.5!important;letter-spacing:1px!important;margin-top:5px!important}
.hb-form input[name=promo],.hb-form input[name=promoCode]{font-size:var(--hb-value-size)!important;line-height:1.6!important;font-weight:400!important;letter-spacing:0!important;padding:0 0 5px!important;border-radius:0!important;color:var(--hb-ink)}
.hb-form input::placeholder{color:#968c81;opacity:1}
.hb-form label:has(input[name=promo]),.hb-form label:has(input[name=promoCode]){position:relative}
.hb-form label:has(input[name=promo])::before,.hb-form label:has(input[name=promoCode])::before{content:'';position:absolute;width:20px;height:20px;left:18px;top:50%;transform:translateY(-50%);background-color:var(--hb-accent);mask:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%23594a3e' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M3 11.5 12.5 2H20l2 2v7.5L12.5 21a2 2 0 0 1-2.8 0L3 14.3a2 2 0 0 1 0-2.8Z'/%3E%3Ccircle cx='17' cy='7' r='1.2'/%3E%3C/svg%3E");pointer-events:none}
.hb-form .booking-submit{font-size:10px!important;font-weight:600!important;letter-spacing:1.3px!important;line-height:1.5!important}
.hb-form .hb-month h3{font-size:16px!important;line-height:1.5!important;font-weight:500!important}
.hb-form .hb-day{font-size:13px!important;font-weight:400!important}
.hb-form .hb-week{font-size:9px!important;font-weight:500;letter-spacing:1px}
.hb-form .hb-summary strong,.hb-form .hb-guest-summary strong{font-size:14px!important;line-height:1.6!important}
.hb-form .hb-summary button,.hb-form .booking-popover-done{font-size:12px!important;font-weight:500!important;letter-spacing:.3px!important;min-height:44px}
.hb-form .booking-counter-row strong{font-size:10px!important;font-weight:600!important;letter-spacing:1.3px!important;line-height:1.5!important}
.hb-form .booking-counter-row small{font-size:9px!important;letter-spacing:.3px!important;line-height:1.5!important}
.hb-form .booking-counter b{font-size:18px!important;font-weight:500!important;min-width:22px;text-align:center;line-height:1.5}
.hb-form .booking-counter button{display:inline-flex;align-items:center;justify-content:center;font-size:20px!important;font-weight:300;line-height:1!important;padding:0!important}
@media(min-width:981px){
.desktop-booking-form.hb-form{display:grid!important;grid-template-columns:1.4fr 1.45fr 1fr 1.15fr;align-items:stretch!important}
.desktop-booking-form.hb-form:has([data-collection-input]){grid-template-columns:.9fr 1.45fr 1.5fr 1fr 1.15fr}
.desktop-booking-form.hb-form .booking-field{padding:18px 18px!important;display:flex;flex-direction:column;justify-content:center}
.desktop-booking-form.hb-form .booking-date-field,.desktop-booking-form.hb-form .booking-guest-field,.desktop-booking-form.hb-form label:has(input[name=promo]),.desktop-booking-form.hb-form label:has(input[name=promoCode]){padding-left:48px!important}
.desktop-booking-form.hb-form .booking-date-field::before,.desktop-booking-form.hb-form .booking-guest-field::before{width:20px;height:20px;left:16px;top:50%;transform:translateY(-50%)}
.desktop-booking-form.hb-form label:has(input[name=promo])::before,.desktop-booking-form.hb-form label:has(input[name=promoCode])::before{left:16px}
.desktop-booking-form.hb-form .booking-submit{min-width:0!important;margin-left:5px!important;padding:18px 12px!important;display:flex;align-items:center;justify-content:center;gap:8px}
.desktop-booking-form.hb-form .booking-submit::after{margin:0;font-size:18px}
.desktop-booking-form.hb-form .booking-picker-trigger{min-height:42px}
}
@media(min-width:981px) and (max-width:1200px){.desktop-booking-form.hb-form{--hb-value-size:12px;--hb-label-size:9px}.desktop-booking-form.hb-form .booking-field{padding:16px 12px!important}.desktop-booking-form.hb-form .booking-date-field,.desktop-booking-form.hb-form .booking-guest-field,.desktop-booking-form.hb-form label:has(input[name=promo]),.desktop-booking-form.hb-form label:has(input[name=promoCode]){padding-left:40px!important}.desktop-booking-form.hb-form .booking-submit{font-size:9px!important}}
@media(max-width:980px){.mobile-booking-form.hb-form{--hb-value-size:14px}.mobile-booking-form.hb-form label:has(input[name=promo]),.mobile-booking-form.hb-form label:has(input[name=promoCode]){display:block!important;padding:18px 0 18px 34px!important}.mobile-booking-form.hb-form label:has(input[name=promo])::before,.mobile-booking-form.hb-form label:has(input[name=promoCode])::before{left:0}.mobile-booking-form.hb-form .booking-picker-trigger strong{font-size:14px!important}.mobile-booking-form.hb-form .hb-guest-summary{gap:12px!important}}
/* Preserve the previous mobile palette; brand colour variants are desktop-only. */
@media(max-width:980px){
  .mobile-booking-form.hb-form{--hb-accent:#8b0304;--hb-range:#f4e9e3}
  .mobile-booking-form.hb-form label:has(input[name=promo])::before,
  .mobile-booking-form.hb-form label:has(input[name=promoCode])::before{background-color:#594a3e}
}

}
