/* ==========================================================================
   Responsive layer — 1920 → 360
   ========================================================================== */

@media (min-width: 1800px) {
  :root { --max: 1480px; }
}

/* ----- ≤1280: compact desktop nav ----- */
@media (max-width: 1280px) {
  .nav-trigger, .nav-link { padding: 12px 10px; letter-spacing: .13em; font-size: .86rem; }
  .nav-trigger::after, .nav-link::after { left: 10px; right: 10px; }
  .brand-role { max-width: 260px; }
}

/* ----- ≤1100: switch to drawer ----- */
@media (max-width: 1100px) {
  .primary-nav .nav-list, .mega { display: none; }
  .menu-toggle { display: inline-flex; }
  .brand-role { max-width: 52vw; }

  .home-hero .grid { grid-template-columns: minmax(0, 1fr) minmax(0, 360px); }
  .remit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .remit-item:not(:nth-child(3n+1)) { padding-left: 0; border-left: 0; }
  .remit-item:nth-child(even) { padding-left: 24px; border-left: 1px solid rgba(247,244,237,.16); }
  .contents { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-index { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .status-board { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .status-col:nth-child(3) { border-left: 0; }
  .status-col:nth-child(n+3) { border-top: 1px solid var(--line); }
  .posmap { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .record { grid-template-columns: 120px minmax(0, 1fr); }
  .record .side { grid-column: 2; border-left: 0; padding-left: 0; border-top: 1px solid var(--line); padding-top: 12px; display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 0 18px; }
  .record .side dt { margin-top: 0; }
}

/* ----- ≤960: tablet portrait ----- */
@media (max-width: 960px) {
  .home-hero .grid { grid-template-columns: 1fr; }
  .home-portrait { justify-self: start; width: min(100%, 420px); margin-left: 34px; }
  .hero-spread, .hero-spread--flip { grid-template-columns: 1fr; }
  .hero-spread--flip > :first-child { order: 0; }
  .split, .split--even, .split--wide-left, .workshop, .remit-head, .contact-layout, .footer-head { grid-template-columns: 1fr; }
  .sticky-side { position: static; }
  .journey-step { grid-template-columns: clamp(76px, 18vw, 140px) minmax(0, 1fr); }
  .journey-step > :last-child { grid-column: 2; }
  .challenges { grid-template-columns: 1fr 1fr; }
  .challenge, .challenge:nth-child(1), .challenge:nth-child(2), .challenge:nth-child(6) { grid-column: span 1; padding-left: 0; border-left: 0; padding-right: 20px; }
  .challenge:nth-child(1) { grid-column: 1 / -1; }
  .challenge:nth-child(odd):not(:first-child) { padding-left: 20px; border-left: 1px solid var(--line); }
  .ledger-row { grid-template-columns: 1fr; gap: 8px; }
  .dossier { grid-template-columns: 1fr; }
  .gallery .g-item, .gallery .g-item.w-8, .gallery .g-item.w-7, .gallery .g-item.w-5, .gallery .g-item.w-3 { grid-column: span 6; }
  .gallery .g-item.w-8 { grid-column: 1 / -1; }
  .ledger-hero .lh-top { grid-template-columns: 1fr; }
  .ledger-hero .lh-top > div + div { border-left: 0; border-top: 1px solid var(--walnut); }
  .ledger-hero .lh-rows { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ledger-hero .lh-rows > div:nth-child(3) { border-left: 0; }
  .ledger-hero .lh-rows > div:nth-child(n+3) { border-top: 1px solid var(--line-strong); }
  .route-stops { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero-type { grid-template-columns: 1fr; }
  .hero-type .big-n { order: -1; font-size: clamp(6rem, 22vw, 12rem); }

  /* landscape coordinates become a stacked index */
  .landscape { min-height: 0; }
  .coord-list { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 32px; height: auto; }
  .coord { position: static; }
  .coord a { width: 100%; }
}

/* ----- ≤760: large phones / small tablets ----- */
@media (max-width: 760px) {
  :root { --header-h: 66px; }
  .brand-mark { width: 36px; height: 36px; }
  .brand-name { font-size: 1.14rem; }
  .brand-role { display: none; }
  .home-name .line2 { padding-left: .3em; }
  .hero-scale { grid-template-columns: 1fr 1fr; }
  .hero-scale div:nth-child(n+3) { margin-top: 16px; }
  .home-portrait { margin-left: 0; }
  .home-portrait .vert { display: none; }
  .journey-svg { display: none; }
  .journey-step { grid-template-columns: 1fr; gap: 10px; }
  .journey-step > :last-child { grid-column: auto; }
  .remit-grid { grid-template-columns: 1fr; }
  .remit-item:nth-child(even) { padding-left: 0; border-left: 0; }
  .remit-item { padding-right: 0; }
  .challenges { grid-template-columns: 1fr; }
  .challenge, .challenge:nth-child(odd):not(:first-child) { padding-left: 0; border-left: 0; padding-right: 0; }
  .contents { grid-template-columns: 1fr; }
  .footer-index { grid-template-columns: 1fr 1fr; }
  .status-board, .posmap { grid-template-columns: 1fr; }
  .status-col + .status-col { border-left: 0; border-top: 1px solid var(--line); }
  .bio-chapter { grid-template-columns: 1fr; gap: 6px; }
  .chapter-nav .wrap { grid-template-columns: 1fr; }
  .chapter-nav a + a { border-left: 0; border-top: 1px solid var(--line); padding-left: 0; text-align: left; }
  .form { grid-template-columns: 1fr; }
  .dossier-grid { grid-template-columns: 1fr; }
  .dossier-grid > div:nth-child(even) { padding-left: 0; border-left: 0; }
  .debate { grid-template-columns: 1fr; }
  .debate > div + div { border-left: 0; border-top: 1px solid var(--line); }
  .debate .debate-pair { grid-template-columns: 1fr; }
  .debate .debate-pair > div + div { border-left: 0; border-top: 1px solid var(--line); }
  .disclose summary { grid-template-columns: 40px 1fr 30px; }
  .disclose .disclose-body { padding-left: 0; }
  .record { grid-template-columns: 1fr; gap: 10px; }
  .record .side { grid-column: auto; }
  .record .date span { display: inline; font-size: 1.8rem; margin-right: 8px; }
  .gallery .g-item, .gallery .g-item.w-8, .gallery .g-item.w-7, .gallery .g-item.w-6, .gallery .g-item.w-5, .gallery .g-item.w-3 { grid-column: 1 / -1; }
  .coord-list { grid-template-columns: 1fr; }
  .fl-field { display: none; }
  .fl-era { padding-left: clamp(96px, calc(14vw + 26px), 246px); }
  .route-stops { grid-template-columns: 1fr; }
  .chain { grid-template-columns: 1fr; }
  .chain-link + .chain-link { border-left: 0; border-top: 1px solid var(--line-strong); }
  .chain-link + .chain-link::after { content: "↓"; left: 0; top: -11px; }
  .ledger-hero .lh-rows { grid-template-columns: 1fr 1fr; }
  .bar { grid-template-columns: 1fr auto; }
  .bar .track { grid-column: 1 / -1; grid-row: 2; }
  .split-figs { grid-template-columns: 1fr !important; }
}

/* ----- ≤480: phones (iPhone 430/414/390/375, Android 412/360) ----- */
@media (max-width: 480px) {
  .nav-wrap .menu-toggle .txt { display: none; }
  .menu-toggle { padding: 10px 14px; }
  .home-name { font-size: clamp(3.2rem, 16.5vw, 5rem); }
  .page-hero h1 { letter-spacing: -.02em; }
  .footer-index { grid-template-columns: 1fr; }
  .footer-contact dl { grid-template-columns: 1fr; gap: 2px; }
  .footer-contact dd { margin-bottom: 10px; }
  .fl-item { grid-template-columns: 78px minmax(0, 1fr); }
  .fieldline::before { left: 78px; }
  .fl-year { font-size: 1.35rem; padding-right: 12px; }
  .fl-era { padding-left: 100px; letter-spacing: .2em; }
  .fl-body { padding-left: 22px; }
  .ledger-hero .lh-rows { grid-template-columns: 1fr; }
  .ledger-hero .lh-rows > div + div { border-left: 0; border-top: 1px solid var(--line-strong); }
  .btn { padding: 14px 20px; }
  .numbered > li { grid-template-columns: 44px 1fr; }
}

@media (max-width: 380px) {
  .brand-name { font-size: 1.04rem; }
  .brand-mark { width: 32px; height: 32px; }
  .menu-toggle { padding: 9px 12px; letter-spacing: .1em; }
}

/* print */
@media print {
  .site-header, .site-footer, .chapter-nav, .drawer, body::before { display: none !important; }
  body { background: #fff; color: #000; }
  .js .reveal, .js .reveal-img { opacity: 1 !important; transform: none !important; clip-path: none !important; }
}
