/* ==========================================================================
   Responsive — intentional breakpoints, mobile-first overrides
   ========================================================================== */

/* Large desktop containers already fluid via clamp */

@media (max-width: 1080px) {
  .footer__top { grid-template-columns: 1fr 1fr; }
  .archive-grid { grid-template-columns: repeat(2, 1fr); }
  .stats { grid-template-columns: repeat(2, 1fr); row-gap: 2.5rem; }
  .disciplines { grid-template-columns: repeat(2, 1fr); }
  .grid-4 { grid-template-columns: repeat(2, 1fr); }
  .grid-3 { grid-template-columns: repeat(2, 1fr); }
  .case-layout { grid-template-columns: 1fr; }
  .case-aside { position: static; }
  .svc-explorer { grid-template-columns: 1fr; }
  .svc-panel { position: static; }
}

/* Tablet & below: switch to mobile nav */
@media (max-width: 920px) {
  :root { --header-h: 70px; }
  .nav, .header__actions .lang-switch { display: none; }
  .burger { display: inline-flex; }
  .header__actions { gap: 0.5rem; }
  .sidenav { display: none; }
  .split, .split--text-narrow { grid-template-columns: 1fr; }
  .topbar__inner { justify-content: center; }
  .topbar__brand-note { display: none; }
  .fab { display: block; }
  .gallery__item, .gallery__item:nth-child(3n+1) { grid-column: span 12; }
  .archive-grid[data-view="list"] .pcard { grid-template-columns: 1fr; }
  .hero__meta { flex-direction: column; align-items: flex-start; gap: 1.2rem; }
}

@media (max-width: 720px) {
  .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; }
  .archive-grid { grid-template-columns: 1fr; }
  .stats { grid-template-columns: 1fr 1fr; }
  .disciplines { grid-template-columns: 1fr 1fr; }
  .footer__top { grid-template-columns: 1fr; gap: 2.2rem; }
  .footer__bottom { flex-direction: column; align-items: flex-start; }
  .cta-band { flex-direction: column; align-items: flex-start; text-align: start; }
  .hero { min-height: 560px; }
  .hero__actions { width: 100%; }
  .hero__actions .btn { flex: 1; }
  .form-actions { flex-direction: column-reverse; }
  .form-actions .btn { width: 100%; }
  .topbar__contact { gap: 0.9rem; font-size: 0.74rem; }
  .timeline__item { grid-template-columns: 1fr; gap: 0.8rem; }
  .timeline__item::before { display: none; }
}

@media (max-width: 560px) {
  /* Header CTA lives in the burger menu on small screens — declutter the bar */
  .header__actions .btn--accent { display: none; }
}

@media (max-width: 420px) {
  .stats { grid-template-columns: 1fr; }
  .disciplines { grid-template-columns: 1fr; }
  .choice-grid { grid-template-columns: 1fr 1fr; }
  .topbar__contact .topbar__ext-note { display: none; }
}

/* Safe-area for modern phones */
@supports (padding: max(0px)) {
  .header__inner, .topbar__inner { padding-inline: max(var(--gutter), env(safe-area-inset-left)); }
  .fab { inset-block-end: max(1rem, env(safe-area-inset-bottom)); inset-inline-end: max(1rem, env(safe-area-inset-right)); }
  .mobile-menu { padding-bottom: max(var(--gutter), env(safe-area-inset-bottom)); }
}

/* Tap targets */
@media (hover: none) {
  .pcard__reveal { max-height: 120px; opacity: 1; margin-top: 0.9rem; }
  .nav__link, .btn, .filter-chip { min-height: 44px; }
}
