/* Shared navigation, accessibility and motion preferences. */
:focus-visible { outline: 2px solid var(--gold); outline-offset: 5px; }
.menu-toggle { display: none; }
.lightbox:not(.open) { visibility: hidden; }
.lb-arrow.hidden { visibility: hidden; }
button.lb-dot { padding: 0; border: 0; }
.ct-reveal { opacity: 1; transform: none; }
@media (max-width: 720px) {
  /* Extra right-side breathing room on phones: push the menu button and
     NO/EN switch in from the screen edge so the EN link isn't crammed
     into the corner and hard to tap. Left side (logo) is untouched. */
  .site-header { flex-wrap: wrap; padding-right: calc(var(--gutter) + 1.25rem); }
  .site-header nav { gap: 1rem; }
  .site-header .nav-links { display: flex; flex-wrap: wrap; gap: 1rem; }
  .site-header nav:not(.menu-ready) { flex-wrap: wrap; }
  .menu-ready .menu-toggle { display: inline-flex; align-items: center; min-height: 44px; background: var(--bg-0, #0a0a0a); color: var(--gold-light); border: 1px solid var(--gold-dim); padding: .4rem .75rem; font: inherit; cursor: pointer; }
  .site-header .menu-ready .nav-links { display: none; position: absolute; top: 100%; left: 0; right: 0; margin: 0; padding: 1rem 1.5rem; background: #0a0a0a; border-bottom: 1px solid var(--gold-dim); grid-template-columns: 1fr 1fr; }
  .site-header .menu-ready.menu-open .nav-links { display: grid; }
  .menu-ready .nav-links a { display: block; padding: .75rem 0; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .reveal, .reveal-stagger > *, .service, .process-step, .mosaic-tile, .ct-reveal { opacity: 1 !important; transform: none !important; }
}
