/* =====================================================================
   EXCEPTIONS — overrides scoped to context (breakpoints, preferences)
   ===================================================================== */

/* Nav reflows to a drawer under 60rem */
@media (max-width: 59.99rem) {
  .site-nav__burger { display: inline-flex; }

  .site-nav__collapse {
    display: none;
    position: absolute; inset-inline: 0; top: 100%;
    background: var(--brick);
    border-block: 1px solid var(--hairline);
    box-shadow: var(--shadow-soft);
    padding: .25rem var(--gutter) 1.5rem;
    max-height: calc(100dvh - var(--nav-h));
    overflow-y: auto;
  }
  .site-nav__collapse.is-open { display: block; }

  .site-nav__links { flex-direction: column; align-items: stretch; gap: 0; }
  .site-nav__links > li { border-bottom: 1px solid var(--hairline); }

  .site-nav__link { width: 100%; padding-block: .95rem; font-size: 1.15rem; }
  .site-nav__link::after { display: none; }
  .disclosure__trigger { justify-content: space-between; }

  .disclosure__panel { border-top: 1px solid var(--hairline); background: var(--brick-shade); }
  .disclosure__item { padding-inline: 1.1rem; }
  .disclosure__item-title { font-size: 1.1rem; }

  .site-nav__lang { margin-top: 1.25rem; }
  .site-nav__lang-btn { width: 100%; padding: .95rem 0; border: 0; font-size: 1.15rem; }
  .disclosure__panel--lang { border-top: 1px solid var(--hairline); }
  .lang__item { padding-inline: 1.1rem; padding-block: .7rem; }
}

@media (min-width: 60rem) {
  .site-nav__burger { display: none; }
  .site-nav__collapse { display: flex; align-items: center; gap: clamp(.75rem, 2vw, 1.75rem); }

  .disclosure__panel {
    position: absolute; top: calc(100% + .45rem); left: 0;
    min-width: 18rem; padding: .4rem;
    background: var(--brick);
    border: 1px solid var(--hairline);
    border-top: 2px solid var(--gold);
    box-shadow: var(--shadow-soft);
  }
  .site-nav__lang .disclosure__panel { left: auto; right: 0; min-width: 11rem; }
}

/* Hero stacks media first on narrow screens */
@media (max-width: 47.99rem) {
  .hero__inner { --with-sidebar-align: stretch; }
  .hero__media { aspect-ratio: 16 / 10; }
  .hero--overlay .hero__panel { margin: var(--space-s); max-inline-size: 100%; }
  .feature--overlay .feature__body { margin: var(--space-s); max-inline-size: 100%; }

  /* Location block: force full-column stacking, smaller map */
  .location.with-sidebar { flex-direction: column; gap: var(--space-xs); }
  .location .with-sidebar__bar,
  .location .with-sidebar__main { min-inline-size: 0; width: 100%; flex-basis: auto; }
  .location__media { min-height: 14rem; aspect-ratio: 4 / 3; }
  .location__title { max-inline-size: none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
  }
}
