.stay-booking{--stay-shell:#EFE7D7;--stay-bark:#49392E;--stay-blue:#3D6B87;--stay-line:#49392e35;box-sizing:border-box;border:0;padding:0;margin:0;inset:0;width:100%;max-width:none;height:100%;height:100dvh;max-height:none;color:var(--stay-bark);background:var(--stay-shell);font-family:var(--nav-display);overflow:auto;overscroll-behavior:contain}
.stay-booking:not([open]):not(.stay-booking-standalone){display:none}.stay-booking::backdrop{background:#49392e3b}.stay-booking [hidden]{display:none!important}.stay-booking *{box-sizing:border-box}.stay-booking button,.stay-booking input,.stay-booking select{font:inherit;color:inherit}.stay-booking button,.stay-booking a{touch-action:manipulation}.stay-booking a{color:inherit}.stay-booking :focus-visible{outline:2px solid var(--stay-bark);outline-offset:4px}.stay-layout{display:grid;grid-template-columns:38% 62%;min-height:100%;isolation:isolate}.stay-scene{position:sticky;top:0;height:100dvh;display:grid;grid-template-rows:minmax(0,1fr) auto;background:#D9C9B3}.stay-photo{position:relative;min-height:0;margin:0;overflow:hidden}.stay-photo>img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}.stay-photo:after{content:"";position:absolute;inset:40% 0 0;background:linear-gradient(transparent,#231a136e);pointer-events:none}.stay-photo figcaption{position:absolute;z-index:1;bottom:42px;left:42px;right:30px;color:#fff;font-family:var(--nav-reading);font-size:clamp(34px,3.8vw,64px);line-height:1.04;letter-spacing:-.04em;text-shadow:0 1px 12px #231a1340}.stay-address{display:flex;gap:20px;justify-content:space-between;align-items:center;padding:30px 35px;background:var(--stay-shell)}.stay-address>div>span{font-size:32px;font-weight:700;letter-spacing:-.06em}.stay-address p{font-family:var(--nav-reading);font-size:16px;line-height:1.35;margin:10px 0 0}.stay-address>img{width:48%;max-width:220px;height:auto;mix-blend-mode:multiply}.stay-panel{position:relative;min-width:0;background:var(--stay-shell);isolation:isolate}.stay-panel:before{position:absolute;content:"";inset:0;pointer-events:none;background:url('/assets/navigation/nav-shell-plaster.webp') top center/1100px auto;opacity:.12;mix-blend-mode:multiply;z-index:-1}.stay-topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:28px clamp(28px,4.2vw,76px) 0;min-height:70px}.stay-topbar>a:first-child{display:inline-flex;align-items:center;min-height:44px}.stay-topbar img{display:block;width:25px;height:36px}.stay-close{display:flex;align-items:center;gap:18px;min-height:44px;font-size:12px;font-weight:600;text-decoration:none}.stay-close svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.2;transition:transform .25s}.stay-close:hover svg{transform:rotate(90deg)}.stay-content{max-width:820px;margin:auto;padding:38px clamp(28px,4.2vw,76px) 40px}.stay-content #booking-title{font-family:var(--nav-display);font-size:clamp(44px,5.3vw,82px);font-weight:600;letter-spacing:-.065em;line-height:.98;margin:0 0 20px}.stay-introduction{font-family:var(--nav-reading);font-size:20px;line-height:1.35;margin:0 0 28px}.stay-preference{font-size:12px;line-height:1.5;border-left:2px solid var(--stay-blue);padding-left:12px;margin:0 0 22px}.stay-date-fields{display:grid;grid-template-columns:1fr 1fr;border-block:1px solid var(--stay-line);margin-top:8px}.stay-date-fields>div{padding:14px 18px 12px 0;min-width:0}.stay-date-fields>div+div{border-left:1px solid var(--stay-line);padding-left:24px}.stay-date-fields label{font-size:11px;font-weight:600;display:block;margin-bottom:5px}.stay-date-fields input{border:0;border-radius:0;display:block;width:100%;min-width:0;min-height:32px;font-family:var(--nav-reading);font-size:21px;background:transparent;padding:0;color-scheme:light}.stay-date-fields input::-webkit-calendar-picker-indicator{opacity:.55;width:17px;height:17px;cursor:pointer}.stay-error{color:#913a28;font-size:11px;line-height:1.5;display:block}.stay-error:empty{display:none}.stay-calendar{padding-top:12px}.stay-calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:38px;margin-bottom:7px}.stay-calendar-toolbar p{font-family:var(--nav-reading);font-size:16px;margin:0}.stay-calendar-toolbar>div{display:flex;gap:5px}.stay-calendar-toolbar button{display:grid;place-items:center;border:0;background:transparent;width:38px;height:38px;padding:8px;cursor:pointer}.stay-calendar-toolbar svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.3}.stay-calendar-toolbar button:disabled{opacity:.25;cursor:default}.stay-calendar-months{display:grid;grid-template-columns:1fr 1fr;gap:26px}.stay-calendar-month h2{font-size:13px;font-weight:600;letter-spacing:-.01em;margin:0 0 12px;line-height:1.3}.stay-weekdays,.stay-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}.stay-weekdays{margin-bottom:6px}.stay-weekdays>span{font-size:10px;text-align:center;opacity:.65;line-height:1.8}.stay-day{display:grid;place-items:center;position:relative;border:0;border-radius:0;background:transparent;min-width:0;padding:0;aspect-ratio:1.05;font-size:12px;cursor:pointer}.stay-day:hover:not(:disabled){background:#3D6B8717}.stay-day:disabled{opacity:.28;cursor:default}.stay-day[aria-current=date]:after{content:"";position:absolute;bottom:4px;left:calc(50% - 1px);width:2px;height:2px;background:currentColor}.stay-day.is-between{background:#3D6B8712}.stay-day[aria-pressed=true]{background:var(--stay-blue);color:var(--stay-shell)}.stay-calendar-month .stay-day:focus-visible{z-index:1;outline-offset:0}.stay-party{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px 20px;border-block:1px solid var(--stay-line);padding:16px 0;margin-top:20px}.stay-party label{font-size:13px;font-weight:600}.stay-party p{font-family:var(--nav-reading);font-size:15px;margin:5px 0 0}.stay-party-control{display:flex;align-items:center;gap:4px}.stay-party-control button{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--stay-line);background:transparent;cursor:pointer}.stay-party-control button:disabled{opacity:.3;cursor:default}.stay-party-control svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.2}.stay-party-control select{background:transparent;border:0;width:48px;min-height:38px;font-size:17px;text-align:center;padding-left:8px;cursor:pointer}.stay-party>.stay-error{grid-column:1/-1}.stay-submit-area{padding-top:20px}.stay-summary{font-family:var(--nav-reading);font-size:17px;line-height:1.3;margin:0 0 13px}.stay-continue{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:58px;width:100%;padding:17px 22px;border:0;background:var(--stay-blue);color:var(--stay-shell)!important;font-size:13px;font-weight:600;text-decoration:none;cursor:pointer;transition:background .2s}.stay-continue svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.2;transition:transform .2s}.stay-continue:hover{background:#315970}.stay-continue:hover svg{transform:translateX(4px)}.stay-handoff{font-family:var(--nav-reading);font-size:14px;line-height:1.4;margin:12px 0 0;max-width:450px}.stay-feedback{font-family:var(--nav-reading);font-size:16px;line-height:1.4;margin:14px 0 0}.stay-feedback:empty{display:none}.stay-practice-banner{font-size:12px;font-weight:600;line-height:1.5;border-bottom:1px solid var(--stay-line);padding-bottom:12px;margin:0 0 25px}.stay-practice-banner span{display:block;font-weight:400}.stay-practice-result{padding-top:28px;border-top:1px solid var(--stay-line)}.stay-practice-result h2{font-size:28px;font-weight:600;letter-spacing:-.04em;line-height:1.1;margin:0 0 16px}.stay-practice-result p{font-family:var(--nav-reading);font-size:20px;line-height:1.4}.stay-practice-result button{background:none;border:0;border-bottom:1px solid currentColor;padding:10px 0;min-height:44px;font-size:13px;cursor:pointer}
.stay-booking [data-booking-legacy]{margin-top:32px;max-width:520px}.stay-booking [data-booking-legacy]>p{font-family:var(--nav-reading);font-size:21px;line-height:1.45;margin:0 0 28px}.stay-photo figcaption{white-space:pre-line}
body:has(#stay-booking[open]) .apt-mobile-booking{visibility:hidden;pointer-events:none}
@media(min-width:761px) and (max-height:840px){.stay-topbar{padding-top:15px;min-height:59px}.stay-content{padding-top:20px;padding-bottom:24px}.stay-content #booking-title{font-size:50px;margin-bottom:12px}.stay-introduction{font-size:18px;margin-bottom:20px}.stay-calendar-month h2{margin-bottom:8px}.stay-day{max-height:31px;aspect-ratio:auto;min-height:30px}.stay-party{margin-top:14px;padding-block:12px}.stay-submit-area{padding-top:15px}.stay-continue{min-height:52px}.stay-photo figcaption{font-size:44px}}
@media(min-width:761px) and (max-width:1050px){.stay-layout{grid-template-columns:30% 70%}.stay-photo figcaption{left:25px;bottom:30px;font-size:38px}.stay-address{padding:25px;display:block}.stay-address>img{width:100%;margin-top:20px}.stay-content,.stay-topbar{padding-inline:35px}}
@media(max-width:760px),(max-width:1024px) and (max-height:480px){.stay-layout{display:block;min-height:100%}.stay-scene{display:none}.stay-topbar{padding:15px 24px 0;min-height:61px}.stay-topbar img{width:22px;height:32px}.stay-close{font-size:11px;gap:12px}.stay-content{padding:25px 24px 28px}.stay-content #booking-title{font-size:48px;line-height:.98;margin-bottom:16px}.stay-content #booking-title br{display:none}.stay-introduction{font-size:18px;margin-bottom:24px;max-width:260px}.stay-date-fields>div{padding-top:12px}.stay-date-fields>div+div{padding-left:16px}.stay-date-fields input{font-size:18px;min-height:34px}.stay-calendar{padding-top:8px}.stay-calendar-months{grid-template-columns:1fr;gap:0}.stay-calendar-month h2{font-size:14px;margin-bottom:10px}.stay-calendar-toolbar{margin-bottom:6px}.stay-day{aspect-ratio:auto;min-height:36px;font-size:13px}.stay-weekdays>span{font-size:10px}.stay-party{margin-top:18px;padding-block:13px}.stay-party p{font-size:14px}.stay-submit-area{padding-top:17px}.stay-continue{min-height:56px;padding-inline:18px;font-size:12px}.stay-handoff{font-size:14px;max-width:320px}.stay-preference{margin-bottom:20px}.stay-practice-banner{margin-bottom:22px}}
@media(max-width:360px){.stay-content,.stay-topbar{padding-inline:20px}.stay-content #booking-title{font-size:40px}.stay-date-fields input{font-size:16px}.stay-party{gap:8px}.stay-party p{font-size:13px}.stay-party-control{gap:2px}.stay-party-control button{width:34px}.stay-party-control select{width:40px}.stay-introduction{font-size:17px}.stay-day{min-height:34px}}
@media(prefers-reduced-motion:reduce){.stay-booking *{transition:none!important;scroll-behavior:auto!important}}
@media(min-width:761px) and (max-height:840px){.stay-topbar{padding-top:10px;min-height:54px}.stay-content{padding-top:14px;padding-bottom:20px}.stay-content #booking-title{font-size:42px;line-height:1.05;margin-bottom:12px}.stay-content #booking-title br{display:none}.stay-introduction{font-size:17px;margin-bottom:16px}.stay-date-fields>div{padding-block:10px}.stay-date-fields input{font-size:19px;min-height:29px}.stay-calendar-toolbar{min-height:30px;margin-bottom:4px}.stay-calendar-toolbar button{height:30px;width:34px}.stay-calendar-month h2{margin-bottom:7px}.stay-day{min-height:27px;max-height:27px}.stay-party{margin-top:12px;padding-block:10px}.stay-submit-area{padding-top:13px}.stay-summary{font-size:15px;margin-bottom:9px}.stay-handoff{font-size:13px;margin-top:9px}.stay-continue{min-height:50px;padding-block:14px}.stay-preference{margin-bottom:14px}}
/* A top-layer dialog covers the root's reserved scrollbar gutter as well. */
dialog.stay-booking{width:100vw}
html:has(.stay-booking-standalone){scrollbar-gutter:auto;overflow:hidden}
html:has(dialog.stay-booking[open]){scrollbar-gutter:auto;overflow:hidden}
.stay-booking{overflow-x:hidden;overflow-y:auto}
.stay-day[aria-pressed=true]:hover:not(:disabled){background:var(--stay-blue)}
.stay-topbar{position:sticky;top:0;z-index:3;background:var(--stay-shell)}
.stay-booking .stay-close:focus-visible{outline-offset:-2px}
.stay-booking[data-pointer-open] .stay-close:focus-visible{outline:none}
@media(max-width:760px),(max-width:1024px) and (max-height:480px){.stay-date-fields>div{padding-right:12px}.stay-date-fields>div+div{padding-right:0;padding-left:12px}}

/* One dates action, shared by the native handoff and ELIOT dates stage. The
   measured border-box height already contains the device safe-area inset. */
@media (max-width: 760px), (max-width: 1024px) and (max-height: 480px) {
  .stay-booking:has([data-booking-form]:not([hidden])) {
    scroll-padding-top: 100px;
    scroll-padding-bottom: calc(var(--stay-action-height, 208px) + 24px);
  }
  .stay-booking .stay-content:has(> [data-booking-form]:not([hidden])) {
    padding-bottom: calc(var(--stay-action-height, 208px) + 24px);
  }
  .stay-booking [data-booking-form]:not([hidden]) > .stay-submit-area {
    position: fixed;
    z-index: 40;
    inset: auto 0 0;
    padding: 13px 24px calc(14px + env(safe-area-inset-bottom, 0px));
    border-top: 1px solid var(--stay-line);
    background-color: var(--stay-shell);
    background-image: linear-gradient(#efe7d7e8, #efe7d7e8), url('/assets/navigation/nav-shell-plaster.webp');
    background-size: auto, 1100px auto;
    box-shadow: 0 -9px 24px #49392e08;
  }
  .stay-booking [data-booking-form] > .stay-submit-area .stay-summary {
    margin: 0 0 9px;
    font-size: 17px;
    line-height: 1.3;
  }
  .stay-booking [data-booking-form] > .stay-submit-area .stay-continue {
    min-height: 54px;
    padding: 14px 18px;
    font-size: 12px;
    line-height: 1.4;
  }
  .stay-booking [data-booking-form] > .stay-submit-area .stay-handoff {
    max-width: none;
    margin: 9px 0 0;
    font-size: 14px;
    line-height: 1.35;
  }
  .stay-booking .stay-calendar-months { grid-template-columns: minmax(0, 1fr); }
  .stay-booking .stay-calendar-month { min-width: 0; }
  .stay-booking .stay-calendar-toolbar button,
  .stay-booking .stay-party-control button {
    width: 44px;
    min-width: 44px;
    height: 44px;
    min-height: 44px;
    flex-shrink: 0;
  }
  .stay-booking .stay-date-fields input {
    min-height: 44px;
    font-size: clamp(16px, 4.6vw, 18px);
  }
  .stay-booking .stay-party-control select { min-height: 44px; }
  .stay-booking .stay-day { min-height: 44px; max-height: none; }
  .stay-booking .stay-date-fields > div,
  .stay-booking .stay-party,
  .stay-booking .stay-feedback { scroll-margin-block: 12px; }
}

@media (max-width: 360px) {
  .stay-booking [data-booking-form]:not([hidden]) > .stay-submit-area { padding-inline: 20px; }
  .stay-booking .stay-party { gap: 10px; }
  .stay-booking .stay-party-control { gap: 2px; }
  .stay-booking .stay-party-control select { width: 38px; padding-left: 4px; }
}

/* In short landscape views, give the calendar and native fields the available
   height. The same summary and action follow them in the document flow. */
@media (max-width: 1024px) and (max-height: 480px) {
  .stay-booking:has([data-booking-form]:not([hidden])) { scroll-padding: 0; }
  .stay-booking .stay-content:has(> [data-booking-form]:not([hidden])) { padding-bottom: 28px; }
  .stay-booking [data-booking-form]:not([hidden]) > .stay-submit-area {
    position: static;
    inset: auto;
    padding: 17px 0 0;
    border: 0;
    background: none;
    box-shadow: none;
  }
}

/* Shared property availability rail. */
/* The property navigation keeps its own height, surface and sticky position.
   Only the new action and phone availability rail share this treatment. */
[data-property-availability-nav] > .property-availability-nav-action {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: space-between;
  gap: 19px;
  min-height: 44px;
  padding: 10px 15px;
  border: 1px solid #49392E;
  color: #49392E;
  font-family: var(--nav-display);
  font-size: 11px;
  font-weight: 600;
  line-height: 1.4;
  text-decoration: none;
  white-space: nowrap;
  transition: color 180ms, background-color 180ms;
}
[data-property-availability-nav] > .property-availability-nav-action:hover {
  background: #49392E;
  color: #EFE7D7;
}
.property-availability-nav-action svg,
.property-availability-action svg {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.2;
  transition: transform 180ms;
}
.property-availability-nav-action:hover svg,
.property-availability-action:hover svg { transform: translate(2px,-2px); }
[data-property-availability-nav] > .property-availability-nav-action:focus-visible,
.property-availability-mobile > .property-availability-action:focus-visible {
  outline: 2px solid #49392E;
  outline-offset: 4px;
}
.property-availability-mobile { display: none; }

@media (min-width: 761px) {
  [data-property-availability-nav] { gap: clamp(14px,2vw,25px); }
  [data-property-availability-nav] > div {
    margin-left: auto;
    gap: clamp(17px,2.5vw,44px);
  }
}
@media (min-width: 761px) and (max-width: 1050px) {
  [data-property-availability-nav] > .property-availability-nav-action {
    gap: 12px;
    padding-inline: 12px;
    font-size: 10px;
  }
  [data-property-availability-nav] > div { gap: 18px; }
}

@media (max-width: 760px) {
  html:has(body[data-property-availability]) {
    scroll-padding-bottom: calc(var(--property-availability-height, calc(110px + env(safe-area-inset-bottom,0px))) + 16px);
  }
  body[data-property-availability] {
    padding-bottom: var(--property-availability-height, calc(110px + env(safe-area-inset-bottom,0px)));
  }
  [data-property-availability-nav] > .property-availability-nav-action { display: none; }
  .property-availability-mobile {
    position: fixed;
    inset: auto 0 0;
    z-index: 20;
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    align-items: center;
    gap: 18px;
    padding: 13px 24px calc(13px + env(safe-area-inset-bottom,0px));
    border-top: 1px solid #49392E3D;
    background-color: #EFE7D7;
    background-image: linear-gradient(#EFE7D7E8,#EFE7D7E8),url('/assets/navigation/nav-shell-plaster.webp');
    background-size: auto,1100px auto;
    color: #49392E;
  }
  .property-availability-place {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
  }
  .property-availability-place > span:first-child {
    font-family: var(--nav-display);
    font-size: clamp(14px,4.1vw,17px);
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -.04em;
    overflow-wrap: break-word;
  }
  .property-availability-place > span:last-child {
    font-family: var(--nav-reading);
    font-size: 14px;
    line-height: 1.2;
  }
  .property-availability-mobile > .property-availability-action {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    min-height: 50px;
    padding: 13px 16px;
    border: 1px solid #3D6B87;
    background: #3D6B87;
    color: #EFE7D7;
    font-family: var(--nav-display);
    font-size: 11px;
    font-weight: 600;
    line-height: 1.4;
    text-decoration: none;
    white-space: nowrap;
    transition: background-color 180ms,border-color 180ms;
  }
  .property-availability-mobile > .property-availability-action:hover { background: #315970; border-color: #315970; }
  body[data-property-availability]:has(dialog[open]) > .property-availability-mobile {
    visibility: hidden;
    pointer-events: none;
  }
}
@media (max-width: 360px) {
  .property-availability-mobile { gap: 12px; padding-inline: 20px; }
  .property-availability-mobile > .property-availability-action { padding-inline: 12px; font-size: 10px; }
  .property-availability-action svg { display: none; }
  .property-availability-place > span:last-child { font-size: 13px; }
}
@media (max-width: 760px) and (max-height: 480px) {
  .property-availability-mobile { padding-block: 8px calc(8px + env(safe-area-inset-bottom,0px)); }
  .property-availability-place > span:last-child { display: none; }
  .property-availability-mobile > .property-availability-action { min-height: 44px; padding-block: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .property-availability-nav-action,
  .property-availability-action,
  .property-availability-nav-action svg,
  .property-availability-action svg { transition: none; }
  .property-availability-nav-action:hover svg,
  .property-availability-action:hover svg { transform: none; }
}
