/* =====================================================================
   responsive.css — breakpoints
   Desktop 1920/1600/1440/1366/1280 · Tablet 1024/900/834/768
   Mobile 430/414/390/375/360/320
   ===================================================================== */

/* ---------- ≥1600: roomier ---------- */
@media (min-width: 1600px) {
  :root { --maxw: 1400px; }
}

/* ---------- ≤1280 ---------- */
@media (max-width: 1280px) {
  .nav__link, .nav__trigger { padding: 0 11px; }
  .zone--energy .zone__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .zone--energy .zone__grid > :last-child { grid-column: 1 / -1; }
  .publife { grid-template-columns: 160px minmax(0, 1fr) minmax(0, 1fr); }
}

/* ---------- ≤1024: tablet — burger navigation ---------- */
@media (max-width: 1024px) {
  :root { --header-h: 64px; }
  .nav { display: none; }
  .burger { display: inline-flex; }

  .hero__grid { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); }
  .sysstrip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sysstrip__cell:nth-child(2) { border-right: 0; }
  .sysstrip__cell:nth-child(3) { padding-left: 0; }
  .sysstrip__cell:nth-child(n+3) { border-top: 1px solid var(--line-dark); }

  .zone--consumer .zone__grid, .zone--food .zone__grid, .zone--education .zone__grid { grid-template-columns: minmax(0, 1fr); }
  .zone--food .chain { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 28px; }
  .publife { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); }
  .publife .vmeta { grid-column: 1 / -1; grid-template-columns: repeat(4, minmax(0, 1fr)); border-left: 0; padding-left: 0; border-top: 1px solid var(--line); padding-top: 18px; }
  .sysmap { grid-template-columns: minmax(0, 1fr); }
  .sysmap__keys { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pband--cf .pband__grid, .pband--re .pband__grid, .pband--ed .pband__grid { grid-template-columns: minmax(0, 1fr); }
  .ed-web { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .updates { grid-template-columns: minmax(0, 1fr); }

  .topic { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .topic__head { position: static; }

  .footer-top { grid-template-columns: minmax(0, 1fr); }
  .footer-map { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .contact__grid { grid-template-columns: minmax(0, 1fr); }
  .gal-mast__grid { grid-template-columns: minmax(0, 1fr); }
  .sec-head--split { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- ≤834 ---------- */
@media (max-width: 834px) {
  .hero__grid { grid-template-columns: minmax(0, 1fr); }
  .hero__portrait { max-width: 400px; justify-self: start; }
  .hero__portrait::after { inset: 14px -14px -14px 14px; }
  .rights { grid-template-columns: minmax(0, 1fr); }
  .zone--energy .zone__grid { grid-template-columns: minmax(0, 1fr); }
  .gauge { max-width: 220px; }
  .next-band { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- ≤768 ---------- */
@media (max-width: 768px) {
  .publife { grid-template-columns: minmax(0, 1fr); }
  .publife .vmeta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ed-web { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pband__stats { grid-template-columns: minmax(0, 1fr); }
  .field-row { grid-template-columns: minmax(0, 1fr); }
  .channel { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .masonry { column-gap: 18px; }
}

/* ---------- ≤600: mobile ---------- */
@media (max-width: 600px) {
  :root { --header-h: 60px; }
  body { font-size: 1rem; }
  .brand__sub { display: none; }
  .brand__name { font-size: .98rem; }
  .burger__label { display: none; }
  .burger { width: 44px; padding: 0; }

  .hero__portrait { max-width: 300px; }
  .hero__roles li { grid-template-columns: 30px minmax(0, 1fr); }
  .sysstrip { grid-template-columns: minmax(0, 1fr); }
  .sysstrip__cell { border-right: 0 !important; padding: 16px 0 !important; border-top: 1px solid var(--line-dark); }
  .sysstrip__cell:first-child { border-top: 0; }
  .zone--food .chain { grid-template-columns: minmax(0, 1fr); }
  .chain::before { left: 6px; right: auto; top: 0; bottom: 0; width: 1px; height: auto; background: linear-gradient(180deg, var(--lime), rgba(199, 217, 75, .15)); }
  .chain li { padding: 0 0 0 32px; }
  .chain li::before { top: 4px; }
  .sysmap__keys { grid-template-columns: minmax(0, 1fr); }
  .sysmap__legend { display: block; }
  .sysmap__svg text { font-size: 15px; letter-spacing: .04em; }
  .sysmap__svg .t-branch { font-size: 14px; }
  .sysmap__svg .t-core { font-size: 20px; }
  .route__track { grid-auto-columns: minmax(240px, 82%); }
  .ed-web { grid-template-columns: minmax(0, 1fr); }
  .ed-web div { min-height: 0; }
  .milestones li { grid-template-columns: 72px minmax(0, 1fr); }

  .footer-map { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 28px 16px; }
  .footer-contact__row { grid-template-columns: 72px minmax(0, 1fr); }
  .footer-bottom { flex-direction: column; align-items: flex-start; }

  .contact__portrait { grid-template-columns: 96px minmax(0, 1fr); gap: 16px; }
  .contact__panel { padding: 22px 18px; border-radius: 8px; }
  .form__foot .btn { width: 100%; }
  .form-success__actions .btn { width: 100%; }

  .masonry { columns: 1; }
  .lb__stage { padding: 0 8px; }
  .lb__nav { top: auto; bottom: -58px; transform: none; }
  .lb__info { padding-top: 70px; }
  .toolbar { flex-direction: column; align-items: stretch; }
  .searchbox { max-width: none; }
}

/* ---------- ≤380 (375 / 360 / 320) ---------- */
@media (max-width: 380px) {
  .brand__mark { width: 30px; height: 30px; }
  .brand__name { font-size: .9rem; letter-spacing: .06em; }
  .footer-map { grid-template-columns: minmax(0, 1fr); }
  .chip { padding: 8px 13px; font-size: .86rem; }
  .publife .vmeta { grid-template-columns: minmax(0, 1fr); }
  .cascade { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- Public systems ---------- */
@media (max-width: 1180px) {
  .flowlist { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .flowlist li:nth-child(3) { border-right: 0; }
  .flowlist li:nth-child(n+4) { border-top: 1px solid var(--line-dark); }
  .flowlist li:nth-child(3)::after { display: none; }
  .role { grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); }
  .role > .frame { grid-column: 2; max-width: 420px; }
}
@media (max-width: 1024px) {
  .ps-mast__grid { grid-template-columns: minmax(0, 1fr); }
  .cascade { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 16px; }
  .cascade::before { display: none; }
  .level { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .level__id { grid-column: 1 / -1; }
  .level__cell:nth-of-type(2) { grid-column: 1 / -1; }
  .domains__tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .role { grid-template-columns: minmax(0, 1fr); }
  .role > .frame { grid-column: auto; }
}
@media (max-width: 600px) {
  .cascade { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cascade__n { width: 44px; height: 44px; }
  .level { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .flowlist { grid-template-columns: minmax(0, 1fr); }
  .flowlist li { border-right: 0 !important; border-top: 1px solid var(--line-dark); }
  .flowlist li:first-child { border-top: 0; }
  .flowlist li::after { display: none; }
  .domains__tab { padding: 12px; font-size: .9rem; gap: 8px; }
  .domains__tab svg { width: 24px; height: 24px; }
}

/* ---------- Page compositions ---------- */
@media (max-width: 1280px) {
  .modgrid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .ev { grid-template-columns: 110px 130px minmax(0, 1fr) 150px; gap: 20px; }
  .ev--compact { grid-template-columns: 110px minmax(0, 1fr) minmax(0, 1fr) 150px; }
}
@media (max-width: 1100px) {
  .bio-mast__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); }
  .bio-mast__grid .register { grid-column: 1 / -1; }
  .chapter__grid { grid-template-columns: 90px minmax(0, 1fr); }
  .chapter__grid > aside { grid-column: 2; }
  .supply { grid-template-columns: repeat(4, minmax(0, 1fr)); row-gap: 28px; }
  .supply::before { display: none; }
  .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .modgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .kgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nr-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .offices { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 1024px) {
  .arch { grid-template-columns: minmax(0, 1fr); }
  .arch__index { position: static; }
  .arch__index ol { display: flex; flex-wrap: wrap; gap: 4px 8px; border-left: 0; }
  .arch__index a { border: 1px solid var(--line); border-radius: 999px; padding: 6px 12px; margin: 0; grid-template-columns: auto auto; }
  .arch__split { grid-template-columns: minmax(0, 1fr); }
  .arch__split > .frame { max-width: 520px; }
  .doc-mast__grid, .pl-mast__grid, .ca-mast__grid, .fd-mast__grid, .re-mast__grid, .ed-mast__grid, .ev-mast__grid, .sp-mast__grid { grid-template-columns: minmax(0, 1fr); }
  .doc-mast__portrait { justify-self: start; max-width: 300px; }
  .reel { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .reel li:nth-child(3) a { border-right: 0; }
  .reel li:nth-child(4) a { padding-left: 0; }
  .reel li:nth-child(n+4) a { border-top: 1px solid var(--line-dark); }
  .journey::before { left: 20px; }
  .station { grid-template-columns: 40px minmax(0, 1fr); }
  .station__node { grid-column: 1; grid-row: 1; }
  .station:nth-of-type(odd) .station__card, .station:nth-of-type(even) .station__card { grid-column: 2; grid-row: 1; }
  .station:nth-of-type(odd) .station__media, .station:nth-of-type(even) .station__media { grid-column: 2; grid-row: 2; margin-top: 16px; }
  .station:nth-of-type(even) .station__media .frame { margin-left: 0; }
  .jphase { text-align: left; padding-left: 0; }
  .pathway { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pathway li { border: 1px solid var(--line-dark) !important; border-radius: 0 !important; }
  .stage__head { grid-template-columns: minmax(0, 1fr); }
  .stage__cards { grid-template-columns: minmax(0, 1fr); }
  .re-gallery, .re-gallery--rev { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); justify-content: stretch; }
  .depts { grid-template-columns: minmax(0, 1fr); }
  .netsvg { max-width: 560px; margin-inline: auto; }
  .ev { grid-template-columns: 100px 120px minmax(0, 1fr); }
  .ev__cat { grid-column: 3; flex-direction: row; flex-wrap: wrap; gap: 6px 12px; }
  .ev--compact { grid-template-columns: 100px minmax(0, 1fr); }
  .ev--compact .ev__body { grid-column: 2 !important; }
  .ev--compact .ev__cat { grid-column: 2; }
  .nr-lead { grid-template-columns: minmax(0, 1fr); }
  .role > .frame { max-width: 520px; }
}
@media (max-width: 768px) {
  .bio-mast__grid { grid-template-columns: minmax(0, 1fr); }
  .bio-mast__portrait { max-width: 340px; }
  .supply { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .modgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kgrid { grid-template-columns: minmax(0, 1fr); }
  .ctrl__main { grid-template-columns: minmax(0, 1fr); justify-items: center; }
  .ctrl__main .energy-bars { width: 100%; }
  .ctrl__readouts { grid-template-columns: minmax(0, 1fr); }
  .stmt { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .stmt__when { display: flex; gap: 12px; align-items: baseline; flex-wrap: wrap; }
  .stmt__when span { margin: 0; }
}
@media (max-width: 600px) {
  .chapter__grid { grid-template-columns: minmax(0, 1fr); }
  .chapter__grid > aside { grid-column: 1; }
  .chapter__num { font-size: 3.2rem; }
  .reel { grid-template-columns: minmax(0, 1fr); }
  .reel a { border-right: 0 !important; padding: 14px 0 !important; border-top: 1px solid var(--line-dark); display: flex; gap: 14px; align-items: baseline; }
  .reel b { font-size: 1.2rem; width: 30px; }
  .twin { grid-template-columns: minmax(0, 1fr); justify-items: start; gap: 8px; }
  .twin__line { width: 2px; height: 22px; margin-left: 28px; background: repeating-linear-gradient(180deg, var(--lime) 0 5px, transparent 5px 9px); }
  .station__card { padding: 18px 16px; }
  .station__meta div { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .kpis { grid-template-columns: minmax(0, 1fr); }
  .pathway { grid-template-columns: minmax(0, 1fr); }
  .supply { grid-template-columns: minmax(0, 1fr); }
  .supply a { grid-template-columns: 48px minmax(0, 1fr); align-items: center; column-gap: 14px; }
  .supply__node { width: 48px; height: 48px; grid-row: span 2; }
  .supply b { margin: 0; }
  .re-gallery, .re-gallery--rev { grid-template-columns: minmax(0, 1fr); }
  .stagebar { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .dash__tiles { grid-template-columns: minmax(0, 1fr); }
  .modgrid a { min-height: 100px; }
  .ev { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .ev__thumb { max-width: 200px; }
  .ev__cat { grid-column: 1; }
  .ev--compact { grid-template-columns: minmax(0, 1fr); }
  .ev--compact .ev__body, .ev--compact .ev__cat { grid-column: 1 !important; }
  .nr-grid { grid-template-columns: minmax(0, 1fr); }
  .register div { grid-template-columns: 96px minmax(0, 1fr); }
  .kv div { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .offices { grid-template-columns: minmax(0, 1fr); }
  .termchart { padding: 18px 12px; }
  .next-links .btn { flex: 1 1 auto; }
}

/* ---------- Final small-screen overrides (must stay last) ---------- */
@media (max-width: 380px) {
  .cascade { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  .table-wrap { overflow: visible; }
  .dtable.dtable--stack { min-width: 0; }
  .dtable--stack thead { display: none; }
  .dtable--stack, .dtable--stack tbody, .dtable--stack tr, .dtable--stack th, .dtable--stack td { display: block; width: 100%; }
  .dtable--stack tr { padding: 14px 16px; border-bottom: 1px solid var(--line); }
  .dtable--stack tbody tr:last-child { border-bottom: 0; }
  .dtable--stack th, .dtable--stack td { padding: 3px 0; border: 0; }
  .dtable--stack th { font-size: 1rem; margin-bottom: 4px; }
  .dtable--stack td[data-label]::before { content: attr(data-label); display: block; font-family: var(--f-mono); font-size: .62rem; letter-spacing: .12em; text-transform: uppercase; color: var(--slate); margin-top: 6px; }
}
