/* ==========================================================================
   Responsive layer — tested widths: 320 · 360 · 375 · 390 · 414 · 768 · 820
   · 1024 · 1280 · 1440 · 1920
   ========================================================================== */

/* Very large screens: keep compositions intentional, not stretched */
@media (min-width: 1680px) {
  :root { --wrap: 1400px; }
}

/* Desktop nav collapses before it can crowd */
@media (max-width: 1239px) {
  .primary-nav, .header-inner > .nav-cta { display: none; }
  .menu-toggle { display: inline-flex; }
}
@media (min-width: 1240px) {
  .mobile-menu { display: none; }
}

/* ---------- Tablet landscape / small laptop ---------- */
@media (max-width: 1100px) {
  .footer-top { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .ledger .row { grid-template-columns: 7rem minmax(0, 1fr); }
  .ledger .row p { grid-column: 2; }
  .continue a { grid-template-columns: 2.5rem minmax(0, 1fr) 2rem; }
  .continue .d { grid-column: 2; grid-row: 2; }
  .continue .a { grid-row: 1 / span 2; grid-column: 3; }
  .step-line { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 2.4rem; border-top: 0; }
  .step-line li { border-top: 2px solid var(--ink); }
  .stat-band { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stat-band > div:nth-child(3) { padding-left: 0; border-left: 0; }
  .stat-band > div:nth-child(n+3) { border-top: 1px solid var(--rule); }
}

/* ---------- Tablet portrait ---------- */
@media (max-width: 900px) {
  .hero-home > .wrap,
  .about-head .wrap,
  .parl-head .wrap,
  .min-head .grid,
  .journey-head .head-grid,
  .lead-head .intro,
  .gal-head .wrap,
  .intro-grid,
  .split-7-5, .split-5-7, .split-even,
  .heritage,
  .feature-asym,
  .media-strip,
  .bio-layout,
  .dossier-body, .dossier-body.flip,
  .case-feature,
  .case-horizontal,
  .image-led,
  .news-grid,
  .contact-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .dossier-body.flip > .facts { order: 0; }
  .hero-portrait { max-width: 620px; }
  .about-head .portrait { max-width: 460px; }
  .bio-aside { position: static; }
  .feature-asym .main { border-right: 0; border-bottom: 1px solid var(--rule); }
  .case-horizontal .figure-side { border-right: 0; border-bottom: 1px solid var(--rule-dark); }
  .chapter .wrap { grid-template-columns: minmax(0, 1fr); }
  .chapter-label { position: static; }
  .themes { grid-template-columns: minmax(0, 1fr); }
  .theme, .theme:nth-child(even) { padding-left: 0; padding-right: 0; border-left: 0; }
  .doc-grid, .news-columns { grid-template-columns: minmax(0, 1fr); }
  .doc-grid > div + div, .news-columns article + article { padding-left: 0; border-left: 0; border-top: 1px solid var(--rule); }
  .doc-grid > div, .news-columns article { padding-right: 0; }
  .stat-highlight { grid-template-columns: minmax(0, 1fr); }
  .stat-highlight > div + div { padding-left: 0; }
  .chrono-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 1.4rem; }
  .chrono-strip div:nth-child(3) { padding-left: 0; border-left: 0; }
  .tenure-axis, .tenure-row { grid-template-columns: minmax(0, 1fr); gap: 0.6rem; }
  .tenure-axis .label { display: none; }
  .masonry { columns: 2 240px; }
}

/* ---------- Large phones ---------- */
@media (max-width: 640px) {
  :root { --header-h: 62px; }
  .brand-name small { display: none; }
  .brand-mark { width: 34px; height: 34px; font-size: 0.85rem; }
  .hero-rail dl { grid-template-columns: minmax(0, 1fr); }
  .hero-rail dl > div, .hero-rail dl > div + div { padding: 1rem 0; border-left: 0; border-top: 1px solid var(--rule-dark); }
  .hero-rail dl > div:first-child { border-top: 0; }
  .ledger .row { grid-template-columns: minmax(0, 1fr); gap: 0.5rem; padding: 1.3rem 0; }
  .ledger .row p { grid-column: auto; }
  .continue a { grid-template-columns: minmax(0, 1fr) 2rem; gap: 0.3rem 1rem; }
  .continue .n { grid-column: 1; }
  .continue .t { grid-column: 1; }
  .continue .d { grid-column: 1; grid-row: auto; }
  .continue .a { grid-column: 2; grid-row: 1 / span 3; }
  .moment { grid-template-columns: minmax(0, 1fr); gap: 0.4rem; }
  .chapter-photos, .portrait-pair { grid-template-columns: minmax(0, 1fr); }
  .factsheet div { grid-template-columns: minmax(0, 1fr); gap: 0.2rem; }
  .org-ladder li { grid-template-columns: minmax(0, 1fr); gap: 0.15rem; }
  .portfolio-index a { grid-template-columns: minmax(0, 1fr); gap: 0.25rem; }
  .dossier-head { grid-template-columns: minmax(0, 1fr); }
  .dossier-head .period { white-space: normal; }
  .margins li { grid-template-columns: minmax(0, 1fr) 5.5rem; row-gap: 0.45rem; }
  .margins .who { grid-column: 1 / -1; }
  .step-line { grid-template-columns: minmax(0, 1fr); }
  .case-meta { grid-template-columns: minmax(0, 1fr); }
  .case-meta div + div { padding-left: 0; border-left: 0; border-top: 1px solid var(--rule); }
  .form-row { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .footer-top { grid-template-columns: minmax(0, 1fr); gap: 2.2rem; }
  .footer-bottom .wrap { flex-direction: column; align-items: flex-start; }
  .masonry { columns: 1; }
  .lb-stage { grid-template-columns: minmax(0, 1fr); }
  .lb-stage .lb-prev, .lb-stage .lb-next { display: none; }
  .lb-nav-mobile { display: flex !important; }
  .table-scroll { overflow: visible; }
  .record thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .record, .record tbody, .record tr, .record td, .record caption { display: block; }
  .record tr { display: grid; grid-template-columns: 4.2rem minmax(0, 1fr) auto; column-gap: 0.9rem; row-gap: 0.15rem; padding: 1rem 0; border-bottom: 1px solid var(--rule); }
  .record td { border: 0; padding: 0; }
  .record td.yr { grid-column: 1; grid-row: 1 / span 2; font-size: 1.3rem; }
  .record td:nth-child(3) { grid-column: 2; grid-row: 1; font-weight: 700; }
  .record td:nth-child(2) { grid-column: 2; grid-row: 2; font-size: var(--fs-xs); color: var(--ink-soft); }
  .record td:nth-child(4) { grid-column: 3; grid-row: 1; text-align: right; }
  .record td:nth-child(5) { grid-column: 3; grid-row: 2; text-align: right; font-size: var(--fs-xs); color: var(--ink-soft); font-variant-numeric: tabular-nums; }
  .record td:nth-child(5)::before { content: "by "; }
}

/* ---------- Small phones (320–360) ---------- */
@media (max-width: 380px) {
  :root { --gutter: 16px; }
  .brand-name { font-size: 1.05rem; }
  .menu-toggle .label { display: none; }
  .stat-band { grid-template-columns: minmax(0, 1fr); }
  .stat-band > div, .stat-band > div + div { padding-left: 0; border-left: 0; border-top: 1px solid var(--rule); }
  .stat-band > div:first-child { border-top: 0; }
  .chrono-strip { grid-template-columns: minmax(0, 1fr); }
  .chrono-strip div + div { padding-left: 0; border-left: 0; }
  .btn { width: 100%; justify-content: center; }
  .journey-head .years { -webkit-text-stroke-width: 1px; }
}

.lb-nav-mobile { display: none; justify-content: center; gap: 1rem; padding-top: 0.6rem; }

@media print {
  .site-header, .mobile-menu, .site-footer .socials, .journey-progress, .skip-link { display: none !important; }
  body { background: #fff; color: #000; }
}
