/* Small accessibility and responsive refinements; existing design is preserved. */
.navigation-mobile-overlay[hidden] { display: none !important; }
body.site-menu-open { overflow: hidden; }
.navigation-section, .navigation-overlay-header { isolation: isolate; }
.navigation-overlay-header { flex-shrink: 0; }
.navigation-overlay-content { min-height: 0; }
.navigation-overlay-links a { cursor: pointer; }
.naverin-footer-link, .navigation-overlay-link, .navigation-menu-pill, .navigation-close-btn { cursor: pointer; }
.naverin-footer-meta-link { cursor: default; }
.naverin-footer-copyright { color: color-mix(in srgb, var(--color-on-primary) 75%, transparent); }
.naverin-footer-meta-link:hover { color: inherit; }
.naverin-footer-stem { transition: height .2s ease, background-color .2s ease; }
.naverin-footer-stem-group:has(.naverin-footer-link:hover) .naverin-footer-stem,
.naverin-footer-stem-group:has(.naverin-footer-link:focus-visible) .naverin-footer-stem {
  height: 2.5rem;
  background: var(--color-accent);
}
.naverin-footer-nav-utility { gap: clamp(.75rem, 2vw, var(--spacing-4xl)); }
a:focus-visible, button:focus-visible, summary:focus-visible {
  outline: 2px solid var(--color-accent); outline-offset: 3px;
}
main { display: block; width: 100%; 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(.naverin-footer-contact-row, .navigation-footer-info) { overflow-wrap: anywhere; }
html { scroll-behavior: smooth; scroll-padding-top: 5.25rem; }
#contact { scroll-margin-top: 5.25rem; }
/* Strictly avoid change to desktop typography, palette, or section order. */
@media (max-width: 767px) {
  .navigation-overlay-content { padding-bottom: 2.25rem; }
  .navigation-overlay-links { width: 100%; min-width: 0; }
  .navigation-overlay-link { display: block; }
  .naverin-footer-nav-utility { gap: var(--spacing-md); }
  .naverin-footer-branding { min-width: 0; }
  .naverin-footer-logo-area { min-width: 0; }
  .naverin-footer-meta { min-width: 0; }
  .navigation-overlay-footer { overflow-wrap: anywhere; }
}
@media (max-width: 390px) {
  .navigation-bar, .navigation-overlay-header { padding-left: 1rem; padding-right: 1rem; }
  .logo-lockup { max-width: 100%; }
  .logo-brand-name { font-size: .94rem; }
  .naverin-footer-diagram { max-width: 100%; }
  .nt-hero-headline, .about-hero-display, .portfolio-hero-title, .services-hero-title {
    overflow-wrap: anywhere;
  }
}
/* Legal pages use the same typography and background system as Terms & Conditions. */
.legal-section-heading {
  color: var(--color-on-surface);
  font-family: var(--font-family-heading);
  font-weight: var(--font-weight-heading);
  font-size: clamp(1.25rem, 2.2vw, 1.65rem);
  line-height: 1.3;
  margin-top: 1.2rem;
}
.legal-paragraph, .legal-list {
  color: var(--color-on-surface);
  font-size: var(--font-size-base);
  font-family: var(--font-family-body);
  line-height: 1.8;
}
.legal-list { margin: 0 0 .6rem; padding-left: 1.5rem; }
.legal-list li { margin-bottom: .4rem; }
.legal-paragraph a, .legal-list a { color: var(--color-accent); text-decoration: underline; text-underline-offset: .18em; }
.legal-paragraph strong { color: var(--color-on-surface); }
.legal-contact { border-top: 1px solid var(--color-neutral); margin-top: 1rem; padding-top: 1rem; }
.legal-contact p { margin-bottom: .45rem; }
@media(max-width: 767px) { .legal-section-heading { font-size: 1.35rem; } .legal-list { padding-left: 1.25rem; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
