/* ==========================================================================
   MedhaSofts — Responsive layer
   Verified breakpoints: 320 / 375 / 768 / 1024 / 1440
   ========================================================================== */

/* ---------- Large desktop ---------- */
@media (max-width: 1280px) {
  .site-header__inner { gap: var(--space-4); }
  .nav__link { padding: 9px 9px; letter-spacing: -.01em; }
}

/* ---------- Tablet landscape ---------- */
@media (max-width: 1024px) {
  .split--7-5,
  .split--5-7,
  .split--6-6 { grid-template-columns: 1fr; }

  .grid-4 { grid-template-columns: repeat(2, 1fr); }

  .site-footer__grid { grid-template-columns: 1fr 1fr; }
  .site-footer__brand { grid-column: 1 / -1; }

  /* Media column drops below copy on stacked splits */
  .split__media { order: 2; }
  .split__copy { order: 1; }
}

/* ---------- Mobile navigation ----------
   Eight primary links plus the CTA need ~1200px of header; below that the
   menu collapses rather than crowding. */
@media (max-width: 1080px) {
  .nav-toggle { display: flex; }

  .header__cta { display: none; }

  .nav {
    position: fixed;
    inset: var(--header-h) 0 auto 0;
    background: var(--white);
    border-bottom: 1px solid var(--border);
    box-shadow: var(--shadow-lg);
    padding: var(--space-4) var(--gutter) var(--space-8);
    margin-left: 0;
    max-height: calc(100dvh - var(--header-h));
    overflow-y: auto;
    transform: translateY(-12px);
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--t-base), transform var(--t-base), visibility var(--t-base);
  }
  .nav.is-open { opacity: 1; visibility: visible; transform: none; }

  .nav__list { flex-direction: column; align-items: stretch; gap: 0; }

  .nav__link {
    padding: 15px 4px;
    font-size: var(--text-base);
    border-radius: 0;
    border-bottom: 1px solid var(--border);
  }
  .nav__link:hover { background: transparent; }

  .nav__cta-mobile { display: block; margin-top: var(--space-6); }
  .nav__cta-mobile .btn { width: 100%; }

  body.nav-open { overflow: hidden; }
}

@media (min-width: 1081px) {
  .nav__cta-mobile { display: none; }
}

/* ---------- Tablet portrait ---------- */
@media (max-width: 768px) {
  :root { --header-h: 66px; }

  .grid-3 { grid-template-columns: repeat(2, 1fr); }

  .brand img { height: 32px; }
  .brand img.brand__word { height: 15px; }

  .section-head { margin-bottom: var(--space-8); }

  .numbered__item { grid-template-columns: 1fr; gap: var(--space-2); }

  .site-footer__bottom { flex-direction: column; align-items: flex-start; }
}

/* ---------- Section archetypes ---------- */
@media (max-width: 1024px) {
  .hero-cinematic__grid { grid-template-columns: 1fr; }
  .index-item { grid-template-columns: 56px minmax(0, 1fr); }
  .index-item p { grid-column: 2; }
  .tile-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 860px) {
  .statement { grid-template-columns: 1fr; gap: var(--space-4); }
  .statement h3 { max-width: 22ch; }
  .section-head--indexed { grid-template-columns: 1fr; }
  .section-head--indexed .section-index { display: none; }
}

@media (max-width: 560px) {
  .tile-row { grid-template-columns: 1fr; }
  .tile { aspect-ratio: 4 / 3; }
  .index-item { grid-template-columns: 1fr; gap: var(--space-2); }
  .index-item p { grid-column: 1; }
  .index-item__num { padding-top: 0; }
  .hero-strip { gap: var(--space-2) var(--space-4); }
}

/* ---------- Imagery ---------- */
@media (max-width: 768px) {
  .collage { aspect-ratio: 4 / 3; }
  .banner { padding-block: clamp(56px, 12vw, 88px); }
  .hero__inset { padding: var(--space-5); }
}

/* ---------- Mobile ---------- */
@media (max-width: 640px) {
  /* A two-column collage is unreadable at this width — stack to a single row */
  .collage {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    aspect-ratio: auto;
    gap: var(--space-3);
  }
  .collage__tile:first-child { grid-row: auto; }
  .collage__tile { aspect-ratio: 16 / 10; }

  .media-card__media { aspect-ratio: 16 / 10; }
}

@media (max-width: 640px) {
  .grid-2,
  .grid-3,
  .grid-4 { grid-template-columns: 1fr; }

  .form-grid { grid-template-columns: 1fr; }

  .site-footer__grid { grid-template-columns: 1fr; gap: var(--space-7); }

  .btn-row { flex-direction: column; align-items: stretch; }
  .btn-row .btn { width: 100%; }
  .cta-band .btn-row { align-items: stretch; }

  .filter-bar { gap: 6px; }
  .filter-btn { padding: 7px 14px; font-size: var(--text-xs); }

  .card { padding: var(--space-5); }

  .hero::before { background-size: 44px 44px; }
}

/* ---------- Small mobile (320px floor) ---------- */
@media (max-width: 380px) {
  :root { --gutter: 16px; }

  .brand__word { display: none; }

  .pill { padding: 5px 11px; }

  .accordion__trigger { font-size: var(--text-base); }
}

/* ---------- Print ---------- */
@media print {
  .site-header,
  .site-footer,
  .nav-toggle,
  .cta-band,
  .btn { display: none !important; }

  body { color: #000; background: #fff; }
  .hero::before,
  .band-dark { background: none !important; color: #000 !important; }
  .reveal { opacity: 1 !important; transform: none !important; }
}

/* ---------- Hero scrim ----------
   The copy column occupies proportionally more width as the viewport narrows,
   so the horizontal falloff has to start later and end darker. */
@media (max-width: 1100px) {
  .hero-cinematic::after {
    background:
      linear-gradient(to right, rgba(5, 20, 48, .95) 0%, rgba(5, 20, 48, .92) 62%,
                      rgba(8, 32, 74, .74) 82%, rgba(11, 46, 104, .46) 100%),
      linear-gradient(to top, rgba(5, 20, 48, .60) 0%, transparent 36%);
  }
}
@media (max-width: 720px) {
  .hero-cinematic::after {
    background:
      linear-gradient(to bottom, rgba(5, 20, 48, .88) 0%, rgba(6, 24, 56, .92) 100%);
  }
  .hero-showcase { margin-top: clamp(-72px, -9vw, -40px); }
}
