/* LY LY V10: safe scoped layout patch, preserving approved typography, content and colors. */
html { scroll-padding-top: 110px; }
#main-content { position: relative; min-width: 0; }
#main-content .subhero, #main-content .hero, #main-content section[id] { scroll-margin-top: 110px; }
.site-header { isolation: isolate; }
.site-header .header-inner, .site-header .header-cta-group { min-width: 0; }
.site-header .brand { flex-shrink: 0; }
.site-header .header-nav { z-index: 130; }
/* Reserve predictable space for mobile sticky navigation and title areas. */
@media (max-width: 1160px) {
  .site-header { height: auto; min-height: 78px; }
  .site-header .header-inner { height: auto; min-height: 78px; gap: 12px; flex-wrap: nowrap; }
  .site-header .menu-toggle { flex: 0 0 auto; z-index: 131; }
  .site-header .header-nav { top: 100%; }
  .site-header .header-cta-group { margin-left: auto; }
}
@media (min-width: 821px) and (max-width: 1060px) {
  /* One header CTA at smaller laptop width; reservation remains in content. */
  .site-header .header-cta-group .header-reserve { display: none; }
}
@media (max-width: 820px) {
  .site-header { height: auto; min-height: 73px; }
  .site-header .header-inner { min-height: 73px; align-items: center; position: relative; }
  .site-header .brand { flex: 1 1 auto; min-width: 0; max-width: calc(100% - 62px); }
  .site-header .brand > span:last-child { min-width: 0; overflow: hidden; }
  .site-header .brand-sub { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .site-header .menu-toggle { margin-left: auto; }
  .site-header .header-nav { right: 0; left: auto; width: min(400px, calc(100vw - 20px)); }
  #main-content .subhero, #main-content .hero, #main-content section[id] { scroll-margin-top: 88px; }
  .subhero-copy { padding-top: max(54px, 5vw); }
  .subhero-copy h1 { position: relative; z-index: 1; }
  .mobile-cta { padding-bottom: calc(11px + env(safe-area-inset-bottom)); }
  body { padding-bottom: calc(85px + env(safe-area-inset-bottom)); }
}
@media (max-width: 430px) {
  .site-header .container { width: calc(100% - 26px); }
  .site-header .brand { gap: 8px; }
  .site-header .brand-main { font-size: clamp(24px, 7.1vw, 29px); }
  .site-header .brand-sub { letter-spacing: .075em; font-size: 7px; }
  .site-header .menu-toggle { width: auto; min-width: 46px; min-height: 46px; padding: 0 8px; }
  .subhero-copy { padding-top: 44px; }
  .subhero-copy h1 { margin-top: 9px; }
  .menu-photo-card img { aspect-ratio: 1055 / 1491; object-fit: contain; }
  .mobile-cta .btn { min-height: 52px; }
}
@media (max-width: 360px) {
  .site-header .menu-toggle-label { display: none; }
  .site-header .brand-main { font-size: 24px; }
}

/* V14: Only when Elementor Theme Builder supplies the replacement header.
   Keep the mobile header in document flow instead of obscuring page headings.
   No global script-dequeue, no text changes. */
@media (max-width: 820px) {
  .elementor-location-header { position: relative; inset: auto; z-index: 80; }
  .elementor-location-header .elementor-sticky--active {
    position: relative !important; top: auto !important;
    transform: none !important;
  }
  .elementor-location-header + #main-content .subhero-copy,
  .elementor-location-header ~ #main-content .subhero-copy { padding-top: 62px; }
}
