/* The booking path: warm glass, calm type, generous touch targets. */
.stay-calendar-form { min-width: 0; }
.stay-date-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)) auto; gap: .75rem; align-items: end; }
.stay-date-fields label { min-width: 0; display: grid; gap: .5rem; font-size: .875rem; }
.stay-date-fields label > span { line-height: 1.3; }
.stay-date-fields input { width: 100%; min-width: 0; min-height: 3.3rem; padding: .75rem; border: 1px solid #b7a477; border-radius: 4px; background: rgba(255,255,255,.85); color: #292820; font: inherit; font-size: 1rem; color-scheme: light; box-sizing: border-box; }
.stay-date-fields input::-webkit-date-and-time-value { text-align: left; }
.stay-date-fields .button { min-height: 3.3rem; margin: 0; padding: .75rem 1.2rem; font-family: inherit; font-size: 1rem; white-space: normal; line-height: 1.4; cursor: pointer; }
.stay-selection { margin: .8rem 0 0; color: #5c584b; font-size: .875rem; line-height: 1.5; }
.stay-date-error { margin: 1rem 0 0; padding: .75rem; color: #802f25; background: #fff0eb; border-radius: 4px; font-size: 1rem; }
.booking-page { padding: clamp(2rem, 5vw, 4rem) var(--adm-pad) clamp(2rem, 4vw, 3.5rem); }
.booking-page-heading { max-width: 49rem; margin-bottom: 1.8rem; }
.booking-page-heading h1 { font-size: clamp(2.2rem, 4.8vw, 4.6rem); font-weight: 300; line-height: 1.12; margin: .6rem 0 1rem; }
.booking-page-heading > p:last-child { font-size: 1.1rem; color: #5c584b; max-width: 42rem; line-height: 1.6; }
.booking-page-layout { display: grid; grid-template-columns: minmax(0, 2.6fr) minmax(14rem, 1fr); gap: 1.25rem; align-items: start; }
.booking-calendar-card, .booking-help { padding: clamp(1rem, 2.6vw, 2rem); border: 1px solid #d2c5a4; border-radius: 7px; background: rgba(255,255,255,.94); color: var(--adm-ink); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); box-shadow: 0 10px 35px rgba(90,68,29,.05); }
.booking-help h2 { font-size: 1.8rem; line-height: 1.2; margin: .75rem 0; }
.booking-help p { line-height: 1.6; font-size: 1rem; }
.booking-help > .button { display: flex; margin-top: .85rem; width: 100%; min-height: 3rem; white-space: normal; text-align: center; font-family: inherit; cursor: pointer; padding: .7rem; box-sizing: border-box; }
.booking-help .booking-help-note { font-size: .875rem; color: #5c584b; margin-top: 1.25rem; }
.booking-help > .text-link { display: block; font-size: .875rem; margin-top: 1rem; }
.calendar-toolbar { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-top: 1.5rem; border-top: 1px solid #d2c5a4; padding-top: 1.25rem; }
.calendar-toolbar p { margin: 0; font-size: .875rem; text-align: center; color: #5c584b; }
.calendar-toolbar button, .calendar-caption button { min-height: 2.75rem; padding: .5rem .65rem; border: 1px solid #c3ae7f; border-radius: 4px; background: rgba(255,255,255,.8); color: #54472b; font: inherit; font-size: .875rem; cursor: pointer; }
.calendar-toolbar button:disabled { opacity: .4; cursor: default; }
.calendar-months { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.25rem; }
.calendar-month { min-width: 0; padding-top: 1.2rem; }
.calendar-month h3 { font-family: inherit; font-size: 1.2rem; font-weight: 400; margin: 0 0 1rem; line-height: 1.4; }
.calendar-days { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: .2rem 0; }
.calendar-weekday { font-size: .8rem; color: #6c6554; text-align: center; padding-bottom: .5rem; }
.calendar-days button { min-width: 0; min-height: 2.75rem; padding: .45rem 0; border: 1px solid transparent; border-radius: 3px; background: transparent; font: inherit; font-size: .95rem; color: #292820; cursor: pointer; }
.calendar-days button[aria-current="date"] { text-decoration: underline; text-underline-offset: .4em; }
.calendar-days button:not(:disabled):hover { border-color: #987a39; background: #eee3c9; }
.calendar-days button.is-in-range { background: #eee3c9; border-radius: 0; }
.calendar-days button.is-selected { color: white; background: #79602c; }
.calendar-days button:disabled { opacity: .32; cursor: default; }
.calendar-caption { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1.25rem; color: #5c584b; font-size: .8rem; line-height: 1.5; }
.calendar-caption button { flex-shrink: 0; border: 0; background: none; text-decoration: underline; text-underline-offset: .25em; }
.stay-calendar[hidden], .stay-date-error[hidden] { display: none; }
.stay-calendar-form :focus-visible, .booking-help :focus-visible { outline: 2px solid #80672e; outline-offset: 3px; }
.assistant-panel { display: flex; flex-direction: column; max-height: min(44rem, calc(100dvh - 7rem)); }
.assistant-panel .assistant-messages { min-height: 6rem; flex: 1 1 auto; overflow-y: auto; overscroll-behavior: contain; }
.assistant-panel > header, .assistant-prompts, .assistant-form, .assistant-disclaimer { flex: 0 0 auto; }
.assistant-message { white-space: pre-wrap; overflow-wrap: anywhere; }
.assistant-message.is-loading { color: #d0b579; }
.assistant-form button:disabled, .assistant-prompts button:disabled { opacity: .5; cursor: progress; }
@media (max-width: 1100px) {
  .booking-page-layout { grid-template-columns: minmax(0,1fr); }
  .booking-help { max-width: none; }
}
@media (max-width: 650px) {
  .stay-date-fields { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .stay-date-fields .button { grid-column: 1 / -1; width: 100%; }
  .calendar-months { grid-template-columns: minmax(0,1fr); gap: .5rem; }
  .calendar-days button { min-height: 2.85rem; }
  .calendar-caption { align-items: start; }
  .booking-page-heading > p:last-child { font-size: 1rem; }
  .assistant-panel { max-height: calc(100dvh - 7rem); }
}
@media (max-width: 360px) { .stay-date-fields { grid-template-columns: minmax(0,1fr); } }

.assistant-panel > header { position: static; }
.assistant-panel > header div { min-width: 0; overflow-wrap: anywhere; }
.assistant-panel .assistant-messages { max-height: none; }
.assistant-panel .assistant-form input { min-width: 0; font-size: 1rem; }
.assistant-panel .assistant-disclaimer { margin: 0; line-height: 1.5; }
.calendar-days button.is-selected:hover, .calendar-days button.is-selected:focus-visible { background: #654c20; color: #fff; border-color: #654c20; }
.assistant-launcher { left: auto; right: var(--adm-pad); bottom: max(.75rem, env(safe-area-inset-bottom)); min-height: 3rem; max-width: calc(100% - 2 * var(--adm-pad)); padding: .65rem 1rem; }
.assistant-launcher strong { letter-spacing: 0 !important; text-transform: none; }
.assistant-panel { left: auto; right: var(--adm-pad); bottom: calc(4.5rem + env(safe-area-inset-bottom)); width: min(28rem, calc(100% - 2 * var(--adm-pad))); }
.site-footer { padding-bottom: calc(5rem + env(safe-area-inset-bottom)); }
html { scroll-padding-bottom: calc(4rem + env(safe-area-inset-bottom)); }
@media (min-width: 761px) {
  .campaign .header-film-control { bottom: calc(4.75rem + env(safe-area-inset-bottom)); }
}
@media (max-width: 650px) {
  .assistant-panel { left: .75rem; right: .75rem; width: auto; }
}
