/* ===========================================================================
   Responsive — Breakpoints 1080 / 860 / 620
   ========================================================================= */

@media (max-width: 1080px) {
  .grid--4 { grid-template-columns: repeat(2, 1fr); }
  .factbar { grid-template-columns: repeat(3, 1fr); }
  .factbar > div:nth-child(3n) { border-right: 0; }
  .factbar > div:nth-child(-n + 3) { border-bottom: 1px solid var(--border); }
  .teaser-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 860px) {
  :root {
    --header-h: 64px;
    --header-h-scrolled: 58px;
    --gutter: 1.25rem;
  }

  /* --- Navigation: Off-Canvas ------------------------------------------- */

  .nav-toggle { display: inline-flex; }

  .nav {
    position: fixed;
    inset: 0 0 0 auto;
    width: min(88vw, 360px);
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: calc(var(--header-h) + 1.5rem) var(--sp-5) var(--sp-6);
    background: var(--white);
    border-left: 1px solid var(--border);
    box-shadow: var(--shadow-lg);
    transform: translateX(100%);
    visibility: hidden;
    transition:
      transform var(--dur-slow) var(--ease),
      visibility var(--dur-slow) var(--ease);
    overflow-y: auto;
  }
  .nav.is-open { transform: none; visibility: visible; }

  .header--over .nav .nav-link,
  .header.is-scrolled .nav .nav-link,
  .nav .nav-link {
    padding: var(--sp-4) 0;
    font-size: var(--fs-lg);
    font-weight: 500;
    color: var(--ink);
    border-bottom: 1px solid var(--border);
  }
  .nav .nav-link::after { display: none; }
  .nav .nav-link[aria-current="true"] { color: var(--blue-600); }

  .header-cta {
    margin: var(--sp-5) 0 0;
    justify-content: center;
  }

  .nav-scrim {
    position: fixed;
    inset: 0;
    z-index: 99;
    background: rgba(8, 47, 76, 0.42);
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--dur) var(--ease), visibility var(--dur) var(--ease);
  }
  .nav-scrim.is-open { opacity: 1; visibility: visible; }

  body.nav-open { overflow: hidden; }

  /* --- Layout ------------------------------------------------------------ */

  .grid--2, .grid--3, .grid--4 { grid-template-columns: 1fr; }
  .split, .split--wide-left { grid-template-columns: 1fr; }
  .hero-stats { grid-template-columns: repeat(2, 1fr); gap: var(--sp-5) var(--sp-4); }
  .gallery { grid-template-columns: 1fr; }
  .quali-grid { grid-template-columns: 1fr; }
  .teaser-grid { grid-template-columns: 1fr; }

  .job { grid-template-columns: 1fr; align-items: start; padding: var(--sp-5); }

  .section-head--split { align-items: flex-start; }
}

@media (max-width: 620px) {
  .factbar { grid-template-columns: repeat(2, 1fr); }
  .factbar > div { border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); }
  .factbar > div:nth-child(2n) { border-right: 0; }
  .factbar > div:nth-last-child(-n + 2) { border-bottom: 0; }

  .hero { min-height: 0; padding-top: calc(var(--header-h) + 4rem); }
  .hero-stats { margin-top: var(--sp-7); }

  .btn { width: 100%; justify-content: center; }
  .hero-actions { flex-direction: column; align-items: stretch; }
  .header-cta.btn { width: auto; }
}

@media print {
  .header, .nav-scrim, .teaser, .hero-actions { display: none !important; }
  body { background: #fff; }
  .hero, .detail-hero { min-height: 0; color: #000; background: #fff; }
  .hero-media { display: none; }
  .hero h1, .detail-hero h1 { color: #000; }
}
