/* Compatible browser defaults; original section design and colour variables are preserved. */
html { line-height: 1.15; scroll-behavior: smooth; }
body { margin: 0; }
*, *::before, *::after { box-sizing: border-box; }
p, li, ul, pre, div, h1, h2, h3, h4, h5, h6, figure, blockquote, figcaption { margin: 0; padding: 0; }
button, input, optgroup, select, textarea { font-family: inherit; font-size: 100%; margin: 0; }
button { background-color: transparent; }
button, select { text-transform: none; }
a { color: inherit; text-decoration: inherit; }
img { display: block; height: auto; max-width: 100%; }
.site-header { position: relative; z-index: 1000; width: 100%; }
.site-main { width: 100%; min-width: 0; }
.site-main > * { min-width: 0; }
:where(img, picture, video, canvas) { min-width: 0; max-width: 100%; }
:where(h1, h2, h3, h4, h5, h6) { overflow-wrap: break-word; }
:where(p, a, span) { overflow-wrap: break-word; }
:where(a[href],button,summary) { -webkit-tap-highlight-color: transparent; }
:where(a[href],button) { cursor: pointer; }
:where(a[href],button,input,textarea,summary,[tabindex="0"]):focus-visible {
  outline: 2px solid var(--color-primary); outline-offset: 3px;
}
.navigation-hamburger, .navigation-close { background: none; border: none; font: inherit; appearance: none; line-height: 0; }
.navigation-hamburger { position: relative; z-index: 1; }
.navigation-overlay.is-open { display: block; }
.navigation-overlay-panel { max-height: calc(100dvh - 2 * var(--spacing-md)); overscroll-behavior: contain; }
body.site-menu-open { overflow: hidden; }
.navigation-overlay-footer { margin-top: auto; padding: var(--spacing-xl); }
.navigation-overlay-link:hover, .navigation-overlay-link:focus-visible { color: var(--color-primary); }
.footer-action-btn {
  color: var(--color-on-primary); border: 1px solid var(--color-on-primary);
  display: inline-block; padding: var(--spacing-md) var(--spacing-xl);
  font-family: var(--font-family-body); font-weight: var(--font-weight-medium);
  border-radius: var(--border-radius-full); letter-spacing: .05em; text-transform: uppercase;
  transition: color .2s, background-color .2s;
}
.footer-action-btn:hover, .footer-action-btn:focus-visible { color: var(--color-primary); background-color: var(--color-on-primary); }
.footer-legal-right { flex-wrap: wrap; row-gap: .4rem; }
.footer-legal-nav:hover, .footer-legal-nav:focus-visible { text-decoration: underline; text-underline-offset: .25em; }
.footer-newsletter-contact {
  width: 100%; max-width: 300px; color: var(--color-on-primary);
  font-size: var(--font-size-sm); line-height: 1.65; opacity: .88;
  overflow-wrap: anywhere;
}
.footer-contact-links span.footer-detail-link { cursor: default; }
.gallery-track-outer, .gallery-strip-track-wrapper {
  max-width: 100%; scroll-snap-type: x proximity; scroll-behavior: smooth;
  overscroll-behavior-x: contain; cursor: grab; touch-action: pan-x pan-y;
}
.gallery-track-outer.is-dragging, .gallery-strip-track-wrapper.is-dragging { cursor: grabbing; scroll-behavior: auto; scroll-snap-type: none; user-select: none; }
.gallery-tile-item, .gallery-tile { scroll-snap-align: start; }
.gallery-track-outer img, .gallery-strip-track-wrapper img { -webkit-user-drag: none; user-select: none; }
.site-legal-content {
  color: var(--color-on-surface); width: 100%; max-width: 860px;
  margin: 0 auto; padding: clamp(7.5rem, 11vw, 9rem) clamp(1.25rem, 4vw, 2.25rem) 4.5rem;
  display: flex; flex-direction: column; gap: 1rem; min-width: 0;
}
.site-legal-content h1 { font-family: var(--font-family-heading); font-size: clamp(2.3rem,5vw,3.7rem); line-height: 1.14; }
.site-legal-content h2 { font-family: var(--font-family-heading); font-size: clamp(1.25rem,2.5vw,1.7rem); line-height: 1.3; padding-top: .9rem; scroll-margin-top: 7rem; }
.site-legal-content p { font-size: 1rem; line-height: 1.8; color: var(--color-on-surface-secondary); }
.site-legal-content strong { color: var(--color-on-surface); }
.site-legal-content a { color: var(--color-primary); text-decoration: underline; text-underline-offset: .18em; }
.site-legal-content .site-legal-date { color: var(--color-on-surface-secondary); font-size: .87rem; }
.site-legal-content .site-legal-intro { font-size: 1.08rem; color: var(--color-on-surface); margin: .3rem 0 .8rem; }
.site-legal-content .site-legal-back { margin-top: 1.5rem; }
.site-legal-content [data-address] { overflow-wrap: anywhere; }
@media (max-width: 767px) {
  .site-header { z-index: 1500; }
  .navigation-overlay { z-index: 1501; }
  .navigation-overlay-panel { left: var(--spacing-md); right: var(--spacing-md); top: var(--spacing-md); }
  .navigation-capsule { max-width: 100%; min-width: 0; }
  .navigation-overlay-header { padding: var(--spacing-md); }
  .navigation-overlay-links { padding: var(--spacing-lg); }
  .footer-legal-left, .footer-legal-right { min-width: 0; }
  .site-legal-content { padding-top: 7.3rem; padding-bottom: 3.5rem; }
  .site-legal-content p { font-size: .96rem; }
}
@media (max-width: 359px) {
  .navigation-section { padding: var(--spacing-sm); }
  .navigation-capsule { padding: .55rem .75rem; }
  .logo-name { font-size: .82rem; }
  .site-legal-content { padding-inline: 1rem; }
  .footer-details-grid, .footer-main { min-width: 0; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; }
  .gallery-track-outer, .gallery-strip-track-wrapper { scroll-snap-type: none; }
}
@media (max-width: 767px) {
  /* Keep the existing footer composition while letting additional legal links fit. */
  .footer-inner { height: auto; min-height: 19rem; }
  .footer-details-grid, .footer-main, .footer-legal-bar { min-width: 0; }
}
@media (max-width: 359px) {
  .cinematic-poster-panel { min-height: max(80svh, 44rem); padding-top: 2.5rem; }
  .cinematic-poster-title { font-size: clamp(2.35rem, 12vw, 2.65rem); line-height: 1.12; }
}
@media (max-width: 479px) {
  /* Fix two naturally long call-to-action labels rather than masking overflow. */
  .private-gatherings-btn, .kitchen-action-btn {
    max-width: calc(100vw - 3rem); width: auto; min-width: 0;
    white-space: normal; text-align: center; justify-content: center;
    padding: .7rem 1.1rem;
  }
  .private-gatherings-btn span, .kitchen-action-btn span {
    white-space: normal; overflow-wrap: break-word;
  }
}
@media (max-width: 359px) {
  .story-hero-headline {
    max-width: 100%; font-size: clamp(2.15rem, 11vw, 2.55rem);
    line-height: 1.15; overflow-wrap: anywhere;
  }
  .story-hero-content { padding-inline: var(--spacing-md); }
}
@media (max-width: 479px) {
  .experience-hero { padding-inline: 1rem; }
  .experience-hero-headline-group { padding-left: .85rem; }
  .experience-hero-title { font-size: clamp(2.15rem, 10vw, 2.7rem); line-height: 1.16; overflow-wrap: normal; }
}
