/* ==================================================================
   Responsive layer — large screens → small phones
   ================================================================== */

@media (min-width: 1600px) {
  :root { --wrap: 1400px; }
}

/* Laptop */
@media (max-width: 1280px) {
  .navx__trigger { padding: 0 10px; font-size: .86rem; }
  .navx__trigger::after { left: 10px; right: 10px; }
  .paths { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .ledger__row { grid-template-columns: 110px 24px minmax(0, 1fr) minmax(0, 1fr); }
  .ledger__focus { grid-column: 3 / -1; margin-top: 8px; }
  .ledger__head .ledger__focus { display: none; }
}

/* Switch to mobile navigation */
@media (max-width: 1100px) {
  .navx { display: none; }
  .burger { display: inline-flex; }
  .brand__meta { display: none; }
  .pentad { grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 0; }
  .pentad__cell, .pentad__cell + .pentad__cell { margin-top: 0 !important; padding: 26px 22px 28px 0; border-right: 0; border-top: 1px solid var(--g-600); min-height: 0; }
  .pentad__cell:nth-child(even) { padding-left: 22px; border-left: 1px solid var(--g-700); }
  .pentad__cell:last-child { grid-column: 1 / -1; padding-left: 0; border-left: 0; }
  .pentad__cell::before, .pentad__cell:first-child::before { left: 0; }
  .pentad__cell:nth-child(even)::before { left: -1px; }
  .continue__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .continue__label { grid-column: 1 / -1; }
  .continue__grid a:nth-child(2) { border-left: 0; }
  .footx__top { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .footx__about { grid-column: 1 / -1; }
}

/* Tablet */
@media (max-width: 960px) {
  :root { --bar-h: 64px; }
  .hero__grid { grid-template-columns: minmax(0, 1fr); min-height: 0; max-height: none; gap: 56px; }
  .hero__media { max-width: 400px; justify-self: start; }
  .hero__rule--h { display: none; }
  .phead--split .phead__grid,
  .phead--sheet .phead__grid,
  .phead--portrait .phead__grid { grid-template-columns: minmax(0, 1fr); align-items: start; }
  .phead--portrait .phead__grid .frame { max-width: 360px; }
  .phead--split .phead__grid .frame { max-width: 640px; }
  .phead__title { max-width: 22ch; }
  .phead__glyph { display: none; }
  .phead--type .phead__title, .phead--type .phead__deck { max-width: none; }
  .split { grid-template-columns: minmax(0, 1fr); }
  .split__aside { position: static; }
  .split__aside .toc { display: flex; flex-wrap: wrap; gap: 0 4px; border-left: 0; border-top: var(--line); padding-top: 8px; }
  .split__aside .toc a { border-left: 0; padding: 6px 10px 6px 0; margin: 0; }
  .asym, .asym--rev { grid-template-columns: minmax(0, 1fr); }
  .cols-3 { grid-template-columns: 1fr 1fr; }
  .sec__head { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .sec__head .label { padding-top: 0; }
  .now { grid-template-columns: minmax(0, 1fr); }
  .now__main { border-right: 0; border-bottom: 1px solid var(--g-700); }
  .mile { grid-template-columns: minmax(0, 120px) minmax(0, 1fr); }
  .mile p { grid-column: 2; }
  .paths { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .case__grid { margin-left: 0; }
  .case__top { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .dec { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .dec__meta { position: static; display: flex; align-items: baseline; gap: 16px; }
  .dec__no { font-size: 2.4rem; margin: 0; }
  .tl::before { left: 96px; }
  .tl__item { grid-template-columns: 96px minmax(0, 1fr); }
  .tl__year { padding-right: 18px; font-size: .95rem; }
  .tl__body { padding-left: 28px; }
  .tl__body dl { grid-template-columns: minmax(0, 1fr); }
}

/* Phone */
@media (max-width: 720px) {
  body { font-size: 1rem; line-height: 1.68; }
  .sec { padding: 56px 0; }
  .hero__title { font-size: clamp(2.6rem, 13vw, 4rem); }
  .hero__axis { grid-template-columns: minmax(0, 1fr); }
  .hero__axis div { padding: 12px 0; border-bottom: 1px solid var(--g-800); }
  .hero__media { max-width: 100%; }
  .hero__coords { display: none; }
  .hero__rule--v { display: none; }
  .phead--split .phead__grid, .phead--sheet .phead__grid, .phead--portrait .phead__grid { padding-top: 36px; padding-bottom: 44px; }
  .phead--type .wrap { padding-top: 48px; padding-bottom: 56px; }
  .phead__glyph { display: none; }
  .phead__crumbs { margin-bottom: 20px; }
  .phead--bleed .phead__panel { padding: 28px 18px 32px; }
  .cols-2, .cols-3 { grid-template-columns: minmax(0, 1fr); }
  .ledger__row { grid-template-columns: 22px minmax(0, 1fr); gap: 4px 14px; padding: 18px 0; }
  .ledger__head { display: none; }
  .ledger__node { grid-row: 1 / span 4; grid-column: 1; }
  .ledger__year, .ledger__org, .ledger__role, .ledger__focus { grid-column: 2; }
  .ledger__focus { margin-top: 4px; }
  .pentad { grid-template-columns: minmax(0, 1fr); }
  .pentad__cell, .pentad__cell + .pentad__cell, .pentad__cell:nth-child(even) { padding: 24px 0; border-left: 0; }
  .pentad__cell:nth-child(even)::before { left: 0; }
  .mile { grid-template-columns: minmax(0, 1fr); gap: 10px; padding: 26px 0; }
  .mile p { grid-column: auto; }
  .mile__num { font-size: 3.4rem; }
  .paths { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .paths a { min-height: 140px; padding: 16px 14px; }
  .paths a::after { right: 12px; }
  .figures { grid-template-columns: 1fr 1fr; }
  .figure, .figure + .figure { padding: 18px 12px 18px 0; border-right: 0; border-bottom: var(--line); }
  .figure:nth-child(even) { padding-left: 12px; border-left: var(--line); }
  .sec--dark .figure { border-bottom-color: var(--g-700); }
  .sec--dark .figure:nth-child(even) { border-left-color: var(--g-700); }
  .bars li { grid-template-columns: 1fr 60px; }
  .bars__track { grid-column: 1 / -1; grid-row: 2; }
  .case__grid { grid-template-columns: minmax(0, 1fr); }
  .dec__rows div { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .spec dl div { grid-template-columns: 96px 1fr; }
  .form { grid-template-columns: minmax(0, 1fr); }
  .continue__grid { grid-template-columns: minmax(0, 1fr); }
  .continue a, .continue__grid a:nth-child(2) { border-left: 0; border-top: 1px solid var(--g-700); padding-left: 0; }
  .footx__top { grid-template-columns: 1fr 1fr; gap: 32px 24px; padding: 56px 0 40px; }
  .footx__contact-col { grid-column: 1 / -1; }
  .quote { padding-left: 18px; }
  .tl::before { left: 6px; }
  .tl__item { grid-template-columns: minmax(0, 1fr); }
  .tl__year { text-align: left; padding: 22px 0 0 30px; }
  .tl__year small { display: inline; margin-left: 8px; }
  .tl__body { padding: 8px 0 24px 30px; border-top: 0; }
  .tl__body::before { left: 2px; top: -18px; }
  .tl__item { border-top: 1px solid var(--g-800); }
  .gal { columns: 1; }
  .sources ol { columns: 1; }
}

/* Small phone */
@media (max-width: 400px) {
  :root { --gutter: 16px; }
  .brand__name { font-size: .92rem; }
  .brand__mark { width: 34px; height: 34px; }
  .paths { grid-template-columns: minmax(0, 1fr); }
  .paths a { min-height: 0; gap: 18px; }
  .figures { grid-template-columns: minmax(0, 1fr); }
  .figure:nth-child(even) { padding-left: 0; border-left: 0; }
  .footx__top { grid-template-columns: minmax(0, 1fr); }
  .hero__actions .btn { width: 100%; justify-content: center; }
  .spec dl div { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .tl__filter, .gal__filter, .st__filter { flex: 1 1 auto; }
}

/* Print */
@media print {
  .sitebar, .drawer, .footx, .continue, .burger, .readbar { display: none !important; }
  body { background: #fff; color: #000; }
  .sec--dark, .phead--type, .hero { background: #fff !important; color: #000 !important; }
  .sec--dark *, .phead--type *, .hero * { color: #000 !important; -webkit-text-stroke: 0 !important; }
}
