#book-direct { scroll-margin-top: 100px; outline: none; }
@media (min-width: 900px) {
  .site-footer { padding-bottom: calc(112px + env(safe-area-inset-bottom, 0px)); }
}
.footer-contact { margin-top: 64px; font: 400 16px/1.6 var(--font-serif); }
.footer-contact p { margin: 0 0 8px; }
.footer-contact .footer-contact-mark { margin-bottom: 16px; font: 500 11px/1.4 var(--font-mono); letter-spacing: .09em; text-transform: uppercase; }
.stay-preview:empty { display: none; }
.footer-contact a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.footer-utility { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 48px; padding-top: 20px; border-top: 1px solid rgba(240,235,222,.2); color: #c3c6b9; font: 400 10px/1.5 var(--font-mono); }
.footer-utility nav { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.footer-credit { opacity: .75; }
.footer-utility button { min-height: 44px; padding: 0; border: 0; background: none; color: inherit; font: inherit; cursor: pointer; }
.footer-utility p { margin: 0; }
.footer-utility button:hover { color: #f0ebde; }
.footer-utility button:focus-visible { outline: 1px solid #f0ebde; outline-offset: 4px; }
.legal-preview > p { margin: 24px 0 0; font: 400 17px/1.5 var(--font-serif); }
.legal-preview a { color: inherit; }
@media (max-width: 899px) {
  .footer-contact { margin-top: 48px; }
  .footer-utility { flex-wrap: wrap; gap: 4px 20px; margin-top: 32px; padding-bottom: calc(100px + env(safe-area-inset-bottom, 0px)); }
}
.outside-gallery-sequence .gallery-filmstrip { padding-bottom: 0; }
.booking-band {
  background: #181818;
  color: #f0ebde;
}
.booking-band .band-number,
.booking-band .band-title,
.booking-band .band-context,
.booking-band .band-dot { color: inherit; }
.outside-gallery-sequence .booking-band {
  position: relative;
  z-index: 2;
  margin-top: 128px;
}
@media (max-width: 600px) {
  .outside-gallery-sequence .booking-band { margin-top: 80px; }
}
@media (min-width: 900px) {
  /* Override the shared desktop ticker spacing: its previous rendered gap was 128px. */
  .outside-gallery-sequence .booking-band { margin-top: 256px !important; }
}
.site-footer { padding-top: 128px; }
.site-footer .site-footer-book { margin-top: 0; }
@media (max-width: 899px) {
  .site-footer { padding-top: 80px; }
}
.site-footer .site-footer-book { font-weight: 400; cursor: default; }
.site-footer .site-footer-book:hover { opacity: 1; }
.stay-panel { display: grid; grid-template-columns: 1fr 1fr .8fr 1.3fr; margin-top: 32px; padding: 20px; background: #f0ebde; color: #1b211d; }
.stay-panel button, .stay-panel select { color: inherit; border: 0; border-radius: 0; background: transparent; cursor: pointer; }
.stay-date, .stay-guests { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 10px; padding: 16px 24px; text-align: left; border-right: 1px solid rgba(27,33,29,.2) !important; }
.stay-label { font: 500 10px/1.4 var(--font-mono); text-transform: uppercase; letter-spacing: .1em; }
.stay-date > span:last-child, .stay-guests select { font: 400 clamp(20px, 1.6vw, 28px)/1.2 var(--font-serif); }
.stay-guests select { width: 100%; padding: 0; }
.stay-panel .stay-check { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 8px 0 8px 20px; padding: 18px; background: #1b211d; color: #f0ebde; font: 500 11px/1.4 var(--font-mono); text-transform: uppercase; letter-spacing: .04em; }
.stay-panel :focus-visible, .stay-calendar button:focus-visible { outline: 2px solid #b76545; outline-offset: 3px; }
.stay-preview { margin-top: 16px; color: #c3c6b9; font: 400 11px/1.6 var(--font-mono); }
dialog.stay-calendar { width: min(520px, calc(100% - 32px)); max-height: calc(100svh - 48px); box-sizing: border-box; padding: 28px; border: 1px solid #89877d; border-radius: 2px; background: #f0ebde; color: #1b211d; }
.stay-calendar::backdrop { background: rgba(15,22,18,.65); backdrop-filter: blur(6px); }
.stay-calendar-heading, .stay-month-nav { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.stay-calendar-heading h2 { margin: 0; font: 400 28px/1.1 var(--font-serif); }
.stay-calendar button { color: inherit; background: transparent; border: 0; border-radius: 0; cursor: pointer; min-height: 44px; font: 400 12px/1.2 var(--font-mono); }
.stay-month-nav { margin: 24px 0 12px; }
.stay-month-nav h3 { font: 400 20px/1.2 var(--font-serif); }
.stay-weekdays, .stay-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); text-align: center; gap: 4px; }
.stay-weekdays { padding-bottom: 12px; border-bottom: 1px solid rgba(27,33,29,.2); font: 400 10px/1.5 var(--font-mono); }
.stay-days { margin-top: 12px; }
.stay-days button:disabled { opacity: .3; cursor: default; }
.stay-days button.is-selected { background: #1b211d; color: #f0ebde; }
.stay-days button:not(:disabled):hover { box-shadow: inset 0 0 0 1px #89877d; }
.stay-calendar-note { margin: 24px 0 0; font: 400 11px/1.6 var(--font-mono); color: #64685b; }
@media (max-width: 899px) {
  .stay-panel { grid-template-columns: 1fr 1fr; padding: 12px; gap: 0; }
  .stay-date > span:last-child { font-size: clamp(17.6px, 1.408vw, 24.64px); }
  .stay-date, .stay-guests { padding: 16px 12px; }
  .stay-date[data-stay-date="leave"] { border-right: 0 !important; }
  .stay-guests { grid-column: 1 / -1; border-right: 0 !important; border-top: 1px solid rgba(27,33,29,.2); }
  .stay-panel .stay-check { grid-column: 1 / -1; margin: 8px 0 0; min-height: 52px; }
  dialog.stay-calendar { padding: 20px; }
}
