/* =====================================================================
   Responsive layer — 1920 · 1600 · 1440 · 1366 · 1280 · 1024 · 768 ·
   480 · 430 · 414 · 412 · 390 · 375 · 360
   ===================================================================== */

@media (min-width: 1600px) {
  :root { --wrap: 1440px; }
  body { font-size: 1.1rem; }
}

/* ---------- ≤1280: tighten navigation ---------- */
@media (max-width: 1280px) {
  .nav-top { padding: 0 .75rem; letter-spacing: .13em; }
  .nav-top::after { left: .75rem; right: .75rem; }
  .brand-sub { display: none; }
  .foot-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .foot-grid .foot-contact { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 3rem; }
  .casefile-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .casefile-grid > div:nth-child(4n) { border-right: 1px solid var(--line-soft); }
  .casefile-grid > div:nth-child(2n) { border-right: 0; }
}

/* ---------- ≤1120: switch to mobile navigation ---------- */
@media (max-width: 1120px) {
  .primary-nav { display: none; }
  .menu-btn { display: inline-flex; }
  .brand-sub { display: block; }
  :root { --hdr-h: 68px; }
  .hero-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .hero-words { grid-column: 1 / -1; grid-row: 2; }
  .hero-words { min-height: 0; }
  .hero-words ul { position: static; writing-mode: horizontal-tb; transform: none; height: auto; flex-wrap: wrap; justify-content: flex-start; gap: .2rem 1.4rem; padding-top: 1.2rem; border-top: 1px solid var(--line); width: 100%; }
  .journey-stops { grid-template-columns: repeat(4, minmax(0, 1fr)); row-gap: 2rem; }
  .journey-line { display: none; }
  .dispatch { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dispatch > li:not(:nth-child(3n+1)) { padding-left: 0; border-left: 0; }
  .dispatch > li:nth-child(even) { padding-left: 1.6rem; border-left: 1px solid rgba(232, 178, 142, .3); }
  .explore { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ledger { --cols: 2 !important; }
  .ledger > div:nth-child(odd) { padding-left: 0; border-left: 0; }
  .ledger > div:nth-child(even) { padding-left: 1.4rem; border-left: 1px solid var(--line); }
  .on-dark .ledger > div:nth-child(even) { border-color: rgba(232, 178, 142, .25); }
}

/* ---------- ≤1024: tablets landscape ---------- */
@media (max-width: 1024px) {
  .casefile-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .casefile-grid--3 > div:nth-child(3n) { border-right: 1px solid var(--line-soft); }
  .casefile-grid--3 > div:nth-child(2n) { border-right: 0; }
  .ph-split .wrap { grid-template-columns: minmax(0, 1fr) minmax(0, .8fr); gap: 2rem; }
  .split, .split--rev { grid-template-columns: minmax(0, 1fr); }
  .split-sticky { position: static; }
  .reading { grid-template-columns: minmax(0, 1fr); }
  .reading-rail { position: static; border: 1px solid var(--line); padding: 1rem 1.2rem; background: var(--parch); }
  .reading-rail ol { display: flex; flex-wrap: wrap; gap: .2rem 1rem; border-left: 0; }
  .reading-rail a { padding: .3rem 0; border-left: 0; }
  .cols-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .region { grid-column: span 12; }
  .region--wide { grid-template-columns: minmax(0, 1fr); }
  .ladder { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ladder > div:nth-child(2) { border-right: 0; }
  .ladder > div:nth-child(3) { border-right: 1px solid var(--line); }
  .contact-grid { grid-template-columns: minmax(0, 1fr); }
  .contact-card { position: static; }
  .gal-feature, .gal-feature--rev { grid-template-columns: minmax(0, 1fr); }
  .gal-feature--rev > :first-child { order: 0; }
  .gal-side { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gal-group > header { grid-template-columns: minmax(0, 1fr); }
  .mega-inner { grid-template-columns: minmax(0, 1fr); }
  .matrix thead th { top: 0; position: static; }
  .yeargroup { grid-template-columns: minmax(0, 1fr); }
  .yeargroup > h2 { position: static; }
  .sec-head--split { grid-template-columns: minmax(0, 1fr); }
  .ph-index .wrap { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- ≤860: tablets portrait (768) ---------- */
@media (max-width: 860px) {
  .hero-art .d, .hero-art circle { display: none; }
  body { font-size: 1.03rem; }
  .hdr-strip span:first-child { display: none; }
  .hdr-strip .wrap { justify-content: center; }
  .ph-split .wrap { grid-template-columns: minmax(0, 1fr); }
  .ph-split .ph-img { max-width: 560px; }
  .hero-grid { grid-template-columns: minmax(0, 1fr); }
  .hero-portrait { max-width: 560px; margin-top: 1.5rem; }
  .hero-text { grid-row: 1; }
  .hero-words { grid-row: auto; }
  .journey-stops { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .split--even, .cols-2 { grid-template-columns: minmax(0, 1fr); }
  .versus { grid-template-columns: minmax(0, 1fr); }
  .versus .vs { writing-mode: horizontal-tb; padding: .6rem; }
  .versus--3 { grid-template-columns: minmax(0, 1fr); }
  .casefile-grid--2 { grid-template-columns: minmax(0, 1fr); }
  .casefile-grid--2 > div { border-right: 0; }
  .casefile-grid--3 { grid-template-columns: minmax(0, 1fr); }
  .casefile-grid--3 > div, .casefile-grid--3 > div:nth-child(3n), .casefile-grid--3 > div:nth-child(4n) { border-right: 0; }
  .idx-list li { grid-template-columns: 2.6rem minmax(0, 1fr); }
  .idx-list .d { grid-column: 2; }
  .chapter { grid-template-columns: minmax(0, 1fr); gap: .3rem; }
  .chapter-when { padding-top: 0; }
  .entry { grid-template-columns: minmax(0, 1fr); gap: .4rem; }
  .log > li { grid-template-columns: minmax(0, 1fr); gap: .2rem; }
  .archive-tools { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .archive-tools .field:first-child { grid-column: 1 / -1; }
  .foot-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gal-pair, .gal-trio { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  /* vertical route collapses to a single left rail */
  .route-path { left: 14px; width: 28px; transform: none; }
  .route-path svg { display: none; }
  .route-path::before { content: ""; position: absolute; left: 13px; top: 0; bottom: 0; width: 1px; background: repeating-linear-gradient(to bottom, var(--clay) 0 6px, transparent 6px 11px); }
  .stop, .stop:nth-child(even) { grid-template-columns: 28px minmax(0, 1fr); column-gap: 1.1rem; }
  .stop-dot { grid-column: 1; grid-row: 1 / span 2; margin-top: .6rem; }
  .stop-when, .stop:nth-child(even) .stop-when { grid-column: 2; grid-row: 1; text-align: left; padding: 0; }
  .stop-body, .stop:nth-child(even) .stop-body { grid-column: 2; grid-row: 2; text-align: left; padding: .6rem 0 0; }
  .stop:nth-child(even) .stop-body .tags { justify-content: flex-start; }

  /* matrix becomes stacked records */
  .matrix thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .matrix, .matrix tbody, .matrix tr, .matrix th, .matrix td { display: block; width: 100%; }
  .matrix tr { border: 1px solid var(--line); margin-bottom: 1.2rem; background: var(--white); }
  .matrix tbody tr:nth-child(odd) td, .matrix tbody tr:nth-child(odd) th { background: transparent; }
  .matrix tbody th { width: 100%; background: var(--parch) !important; }
  .matrix td { border-bottom: 1px solid var(--line-soft); }
  .matrix td::before { content: attr(data-label); display: block; font-family: var(--f-meta); font-weight: 600; letter-spacing: .14em; text-transform: uppercase; font-size: .72rem; color: var(--clay-ink); margin-bottom: .3rem; }
}

/* ---------- ≤600: phones ---------- */
@media (max-width: 600px) {
  :root { --hdr-h: 62px; }
  body { font-size: 1rem; line-height: 1.65; }
  .brand-mark { width: 36px; height: 36px; }
  .brand-name { font-size: 1.08rem; }
  .brand-sub { font-size: .62rem; letter-spacing: .14em; }
  .menu-btn { padding: 0 .8rem; }
  .menu-btn .lbl { display: none; }
  .hdr-strip { font-size: .66rem; letter-spacing: .12em; }
  h1 { font-size: clamp(2.2rem, 10.5vw, 3rem); }
  .hero-text h1 { font-size: clamp(2.5rem, 12vw, 3.4rem); }
  .ph-index h1 { font-size: clamp(2.6rem, 13vw, 3.6rem); }
  .lede { font-size: 1.1rem; }
  .ledger { --cols: 1 !important; }
  .ledger > div, .ledger > div:nth-child(even) { padding-left: 0; border-left: 0; }
  .cols-3 { grid-template-columns: minmax(0, 1fr); }
  .journey-stops { grid-template-columns: minmax(0, 1fr); }
  .dispatch { grid-template-columns: minmax(0, 1fr); }
  .dispatch > li:nth-child(even) { padding-left: 0; border-left: 0; }
  .explore { grid-template-columns: minmax(0, 1fr); }
  .explore a { min-height: 0; }
  .casefile-head { grid-template-columns: minmax(0, 1fr); padding: 1.3rem 1.2rem; }
  .casefile-grid { grid-template-columns: minmax(0, 1fr); }
  .casefile-grid > div, .casefile-grid > div:nth-child(2n), .casefile-grid > div:nth-child(4n) { border-right: 0; padding: 1.1rem 1.2rem; }
  .ladder { grid-template-columns: minmax(0, 1fr); }
  .ladder > div, .ladder > div:nth-child(3) { border-right: 0; }
  .archive-tools { grid-template-columns: minmax(0, 1fr); padding: 1.1rem; }
  .form-grid { grid-template-columns: minmax(0, 1fr); }
  .foot-grid, .foot-grid .foot-contact { grid-template-columns: minmax(0, 1fr); }
  .pager { grid-template-columns: minmax(0, 1fr); }
  .pager a + a { border-left: 0; border-top: 1px solid var(--line); text-align: left; align-items: flex-start; }
  .gal-pair, .gal-trio, .gal-side { grid-template-columns: minmax(0, 1fr); }
  .distance { grid-template-columns: minmax(0, 1fr); gap: .5rem; text-align: left; }
  .distance .place:last-child { text-align: left; }
  .distance .span { align-items: flex-start; min-width: 0; width: 100%; max-width: 220px; }
  .distance .span .meta { text-align: left; }
  .stack-layer { margin-inline: 0 !important; padding: .9rem 1rem; grid-template-columns: 2.2rem 1fr; }
  .stack-layer .t { font-size: 1.15rem; }
  .region-head, .region-body { padding-inline: 1.1rem; }
  .entry dl { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .entry dd { margin-bottom: .45rem; }
  .yeargroup > h2 { font-size: 2.6rem; }
  .coords { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero-portrait .pin--a { top: -1.5rem; }
  .quote-stage blockquote { font-size: clamp(1.55rem, 7vw, 2.2rem); }
  .mnav-toggle { font-size: 1.5rem; }
  .contact-card dd { font-size: 1.15rem; }
  .nf .actions .btn { width: 100%; justify-content: center; }
  .sec-head { margin-bottom: 1.8rem; }
  .matrix-filter, .gal-nav { gap: .35rem; }
  .chip { font-size: .72rem; padding: .5em .8em; }
}

/* ---------- ≤380: small phones (375 / 360) ---------- */
@media (max-width: 380px) {
  .brand-text .brand-sub { display: none; }
  .brand-name { font-size: 1.02rem; }
  .brand { gap: .55rem; }
  .menu-btn { min-height: 44px; }
  .hdr-strip { display: none; }
  .tags li { font-size: .66rem; }
  .coords .y { font-size: 1.25rem; }
}
