/* Targeted repairs only; palette and desktop composition stay unchanged. */
*, *::before, *::after {box-sizing: border-box;}
html {max-width: 100%; scroll-padding-top: 5.5rem;}
body {margin: 0; max-width: 100%;}
.site-main {display: block; width: 100%; min-width: 0;}
.site-main > section {min-width: 0;}
.site-main img, .site-main video {max-width: 100%;}
.site-main img {height: auto;}
/* Preserve every original full-height object-fit photo crop. */
.site-main :is(.zelvari-hero-img, .zelvari-signature-img, .ent-hero-img, .ent-overview-img,
  .events-hero-img, .events-mosaic-img, .events-single-img, .events-gallery-img,
  .zelvari-gallery-img, .dining-hero-img, .beverage-img) {height:100%;}
/* Photo cards with a purposefully fixed viewing window keep object-fit framing. */
.zelvari-gallery-img, .events-gallery-img {height: 100% !important;}
.ent-gallery-img {height: auto;}
[data-company], [data-address] {overflow-wrap: anywhere;}
.navigation-section {position: sticky; top: 0; z-index: 1000;}
.navigation-hamburger, .navigation-close {
  border: 0; background: transparent; cursor: pointer; padding: 0;
  flex-shrink: 0; touch-action: manipulation;
}
.navigation-mobile-overlay {z-index: 9999; overflow-x: clip; width: 100%; height: 100dvh; min-height: 100vh;}
.navigation-overlay-links a {display: block; width: fit-content; max-width: 100%; text-decoration: none;}
.navigation-overlay-links a:hover .navigation-overlay-link,
.navigation-overlay-links a:focus-visible .navigation-overlay-link {color: var(--color-accent);}
.navigation-close:hover, .navigation-hamburger:hover {color: var(--color-accent);}
.navigation-section a, .zelvari-footer-nav a, .zelvari-footer-legal-links a {cursor: pointer;}
.navigation-section a:focus-visible, .navigation-section button:focus-visible,
.zelvari-footer-root a:focus-visible, .site-main a:focus-visible,
.legal-content a:focus-visible, .gallery-scroll:focus-visible {
  outline: 3px solid var(--color-accent); outline-offset: 4px;
}
.navigation-mobile-overlay .navigation-overlay-header {min-width: 0; gap: 1rem;}
.navigation-mobile-overlay .navigation-overlay-link {overflow-wrap: anywhere;}
.site-menu-open {overflow: hidden;}
.legal-content {color: var(--color-on-surface); min-width: 0; max-width: 860px;}
.legal-title {color: var(--color-on-surface); margin: 0; font-family: var(--font-family-heading);}
.legal-date {color: var(--color-on-surface-secondary); margin: 0; font-size: .92rem;}
.legal-intro {color: var(--color-on-surface-secondary); font-size: 1rem; line-height: 1.8;}
.legal-section {width: 100%; min-width: 0;}
.legal-section h2 {font-family: var(--font-family-heading); color: var(--color-on-surface); font-size: clamp(1.35rem, 2.5vw, 1.75rem); line-height: 1.3; margin: .45rem 0 .7rem;}
.legal-section p {color: var(--color-on-surface-secondary); font-size: .96rem; line-height: 1.8; margin: 0 0 .55rem; overflow-wrap: anywhere;}
.legal-home a, .legal-contact a {color: var(--color-primary); text-decoration: underline; text-underline-offset: .2em;}
.legal-contact {border: 1px solid var(--color-outline); padding: clamp(1rem, 3vw, 1.65rem); border-radius: var(--border-radius-card); background: var(--color-surface-tint);}
.legal-contact strong {color: var(--color-on-surface);}
.events-contact-link {cursor: text; text-decoration: none;}
/* Gallery rows are intentionally internally scrollable, never page-wide. */
.gallery-scroll {max-width: 100%; overscroll-behavior-inline: contain; -webkit-overflow-scrolling: touch; scroll-snap-type: x proximity;}
.gallery-scroll > *, .gallery-scroll > div > * {scroll-snap-align: start;}
.gallery-scroll:focus-visible {outline-offset: -4px;}
.zelvari-footer-legal-links {flex-wrap: wrap;}
.zelvari-footer-address {overflow-wrap: anywhere;}
@media (max-width: 767px) {
  .navigation-section.is-menu-open .navigation-mobile-overlay {display: flex;}
  .navigation-overlay-header .navigation-logo-link {max-width: calc(100vw - 130px);}
  .navigation-overlay-header .logo-brand-name {white-space: normal;}
  .navigation-rail {min-width: 0; max-width: 100%;}
  .navigation-brand-block {min-width: 0;}
  .site-main > section {max-width: 100%;}
  .site-main :is(.zelvari-hero-grid, .zelvari-signature-split, .zelvari-philosophy-container, .events-contact-layout) > * {min-width: 0;}
  .site-main :is(h1, h2, h3, p, a) {overflow-wrap: break-word;}
  .site-main :is(.events-contact-action-wrapper, .events-contact-row, .events-contact-matrix) {min-width: 0; max-width: 100%;}
  .site-main :is(.events-gallery-strip-wrapper, .zelvari-gallery-strip-wrapper) {max-width: 100%;}
  .legal-content {padding: clamp(1.25rem, 5vw, 2rem) clamp(1rem, 4vw, 2rem) !important;}
}
@media (max-width: 479px) {
  .navigation-mobile-overlay {padding: 1.35rem 1.2rem;}
  .navigation-overlay-links {gap: 1.3rem;}
  .navigation-overlay-link {font-size: clamp(1.25rem, 6vw, 1.65rem);}
  .site-main :is(.zelvari-hero-headline, .events-hero-title, .dining-hero-title, .ent-hero-title) {font-size: clamp(1.75rem, 8.5vw, 2.65rem);}
  .site-main :is(.events-contact-row, .menu-matrix-grid, .events-contact-layout) {grid-template-columns: minmax(0, 1fr);}
  .site-main .events-contact-row {gap: .4rem;}
  .site-main .zelvari-gallery-tile {width: min(18rem, 80vw);}
  .site-main .events-gallery-tile {width: min(17.5rem, 78vw);}
  .site-main .events-gallery-strip {grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: min(17.5rem, 78vw); width: max-content;}
  .site-main .ent-gallery-strip {grid-template-columns: minmax(0, 1fr);}
}
/* Intrinsic CTA widths: prevent the text/icon combination from widening 320px screens. */
@media (max-width: 479px) {
  .site-main :is(.zelvari-responsible-actions, .events-packages-action, .ent-overview-actions,
    .dining-hero-action-wrap) {width:100%; min-width:0; max-width:100%;}
  .site-main :is(.zelvari-responsible-actions, .events-packages-action, .ent-overview-actions,
    .dining-hero-action-wrap) > a {display:block; width:100%; min-width:0; max-width:100%;}
  .site-main :is(.zelvari-responsible-actions, .events-packages-action, .ent-overview-actions,
    .dining-hero-action-wrap) :is(.btn, .homepage-btn, .events-packages-cta,
    .ent-overview-cta, .dining-hero-cta) {
     width:100%; max-width:100%; min-width:0;
     padding-left: .8rem; padding-right: .8rem;
     white-space:normal; overflow-wrap:anywhere; height:auto;
     justify-content:center; text-align:center;
  }
  .site-main .dining-hero-cta-icon {flex:0 0 20px; margin-left:.35rem;}
}
