html { scroll-padding-bottom: 110px; }
body { overflow-wrap: break-word; }
.skip-link { position: absolute; top: 8px; left: 12px; z-index: 100; transform: translateY(-180%); padding: 12px 18px; color: white; background: #262522; }
.skip-link:focus { transform: none; }
a:focus-visible, button:focus-visible, [tabindex]:focus-visible { outline: 3px solid #947347; outline-offset: 4px; }
.btn { max-width: 100%; white-space: normal; text-align: center; }
.stay-option, .stay-option > *, .stay-hero-grid > *, .stay-options > *, .visit-grid > *, .navlinks > * { min-width: 0; }
.stay-actions .btn { padding-block: 12px; }
.story .eyebrow, .gallery .eyebrow, .occasions .eyebrow, .visit .eyebrow, .delivery .eyebrow, .stay-teaser .eyebrow, .card-no { color: #796044; }
.capacity-note { margin: 0 0 28px; padding: 24px; border: 1px solid var(--line); }
.capacity-note h2 { font-family: var(--sans); font-size: 1.62rem; line-height: 1.3; }
.capacity-note p { margin-top: 12px; color: var(--muted); }
.capacity-source { font-size: .8rem; }
@media (max-width: 900px) {
  .mobile-cta { bottom: max(10px, env(safe-area-inset-bottom, 0px)); }
  footer { padding-bottom: calc(110px + env(safe-area-inset-bottom, 0px)); }
}
@media (max-width: 560px) {
  .topbar a { display: inline-flex; align-items: center; min-height: 44px; }
  .hours { grid-template-columns: minmax(0, 1fr) auto; gap: 8px; font-size: .875rem; }
  .visit-panel { padding-inline: 20px; }
  .stay-hero h1 { font-size: clamp(2.16rem, 9.504vw, 2.916rem); }
  .hero-content { padding-top: 70px; }
  .hero h1 { font-size: clamp(2.808rem, 11.88vw, 4.32rem); }
  .category-scroll { min-width: 28px; }
  .category-shell { grid-template-columns: 28px minmax(0, 1fr) 28px; }
  .photo-dialog img { max-height: 65dvh; }
}
