/* Layout-preserving fixes for accessibility, navigation, galleries and content pages. */
.site-main { display: block; width: 100%; min-width: 0; }
.site-header { display: block; position: sticky; top: 0; width: 100%; z-index: 1000; }
.site-header .navigation-section { position: relative; }
.site-main { scroll-margin-top: 4.5rem; }
.site-header a:focus-visible, .lumari-footer a:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.site-skip-link { position: fixed; top: -80px; left: 10px; z-index: 2000; padding: 10px 18px; background: var(--color-surface); color: var(--color-primary); border: 2px solid currentColor; text-decoration: none; }
.site-skip-link:focus { top: 8px; }
.navigation-section { isolation: isolate; }
.navigation-hamburger, .navigation-close { border: 0; border-radius: 2px; padding: 0; background: transparent; }
.navigation-hamburger:focus-visible, .navigation-close:focus-visible { outline: 2px solid var(--color-on-primary); outline-offset: 3px; }
.navigation-mobile-overlay { max-width: 100vw; max-height: 100dvh; overscroll-behavior: contain; }
.navigation-mobile-overlay.is-open { display: flex; }
body.menu-is-open { overflow: hidden; }
.navigation-mobile-overlay a { cursor: pointer; }
.navigation-link, .navigation-mobile-link, .lumari-footer-link, .lumari-footer-legal-link { cursor: pointer; }
.lumari-footer-legal-links { flex-wrap: wrap; column-gap: var(--spacing-md); row-gap: var(--spacing-sm); }
.lumari-footer-address { overflow-wrap: anywhere; }
.lumari-footer-legal-link { color: rgba(255,255,255,.9); font-size: .8125rem; }
.lumari-footer-address, .lumari-footer-rights { color: rgba(255,255,255,.85); font-size: .8125rem; }
.portfolio-rail-track-outer, .exp-gallery-track { max-width: 100%; touch-action: pan-x pan-y; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; }
.portfolio-rail-track-outer img, .exp-gallery-track img { -webkit-user-drag: none; user-select: none; }
.portfolio-rail-track-outer.is-dragging, .exp-gallery-track.is-dragging { cursor: grabbing; scroll-behavior: auto; scroll-snap-type: none; user-select: none; }
.portfolio-rail-track-outer:focus-visible, .exp-gallery-track:focus-visible { outline: 2px solid var(--color-primary); outline-offset: -2px; }
.site-legal-main { gap: 1.15rem; max-width: 860px; }
.site-legal-main h1 { font-family: var(--font-family-heading); font-size: clamp(2.2rem, 5vw, 3.5rem); color: var(--color-on-surface); font-weight: 600; margin: 0 0 .6rem; line-height: 1.15; }
.site-legal-main h2 { font-family: var(--font-family-heading); font-size: clamp(1.3rem, 3vw, 1.7rem); line-height: 1.3; color: var(--color-on-surface); font-weight: 600; margin: 0 0 .75rem; }
.site-legal-main p, .site-legal-main li { color: var(--color-on-surface-secondary); font-size: 1rem; line-height: 1.8; overflow-wrap: anywhere; }
.site-legal-main section { margin: .5rem 0; }
.site-legal-main section p + p { margin-top: .75rem; }
.site-legal-main ul { padding-left: 1.5rem; }
.site-legal-main a { text-decoration: underline; text-underline-offset: 3px; color: var(--color-primary); }
.site-legal-main a:hover { color: var(--color-accent); }
.site-legal-main .site-legal-date { color: var(--color-on-surface-secondary); font-size: .875rem; margin: 0 0 1rem; }
.site-legal-main .site-legal-back { margin-top: 2rem; font-weight: 600; }
.site-contact-lead { font-size: var(--font-size-lg) !important; }
.site-contact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; margin: 1.5rem 0; }
.site-contact-panel { padding: 1.5rem; min-width: 0; background: var(--color-surface-elevated); border: 1px solid var(--color-outline); border-radius: var(--border-radius-card); }
.site-contact-kicker { display: block; color: var(--color-secondary); text-transform: uppercase; letter-spacing: .12em; font-size: .78rem; margin-bottom: .75rem; }
.site-contact-detail { font-size: var(--font-size-lg) !important; color: var(--color-on-surface) !important; overflow-wrap: anywhere; margin: .8rem 0; }
[data-company], [data-address] { overflow-wrap: anywhere; }
@media (max-width: 920px) {
 .navigation-desktop-links { display: none; }
 .navigation-hamburger { display: flex; }
}
@media (max-width: 767px) {
  .navigation-mobile-overlay { padding: 1.25rem; }
  .navigation-overlay-header { margin-bottom: 2rem; }
  .navigation-overlay-links { gap: 1.25rem; }
  .lumari-footer-legal { gap: 1rem; }
  .lumari-footer-inner { padding-left: var(--spacing-lg); padding-right: var(--spacing-lg); }
  .site-legal-main { padding: 2.8rem 1.25rem !important; }
  .site-contact-grid { grid-template-columns: 1fr; }
  .portfolio-rail-card { max-width: calc(100vw - 2.5rem); }
  .exp-gallery-slide { max-width: calc(100vw - 2.5rem); }
  .studio-space-action-wrap { width: 100%; max-width: 100%; min-width: 0; }
  .studio-space-primary-action { max-width: 100%; min-width: 0; white-space: normal; overflow-wrap: anywhere; }
}
@media (max-width: 479px) {
  .navigation-container { padding-left: 1rem; padding-right: 1rem; gap: .5rem; }
  .navigation-logo-link { min-width: 0; }
  .company-logo-name { font-size: .875rem; letter-spacing: .025em; }
  .company-logo-text-group { min-width: 0; }
  .navigation-hamburger { flex-shrink: 0; }
  .lumari-footer-nav { flex-direction: row; justify-content: center; }
  .site-contact-panel { padding: 1rem; }
  .site-legal-main { padding-left: 1rem !important; padding-right: 1rem !important; }
  .studio-space-action-wrap .btn { white-space: normal; min-width: 0; text-align: center; }
}
