/* =================================================================
   Responsive · consolidated media queries
================================================================= */

/* ≤ 1400 — compact desktop */
@media (max-width: 1400px) {
  .slide { padding: 4.5vh 5vw; }
  .slide-head { margin-bottom: 32px; }
}

/* ≤ 1100 — small laptop / large tablet */
@media (max-width: 1100px) {
  .slide { padding: 4vh 4.5vw; }
  .slide-head { flex-wrap: wrap; gap: 14px; margin-bottom: 28px; }
  .slide-head .head-right { align-items: flex-start; }

  .cover-wrap { grid-template-columns: 1fr; gap: 28px; padding: 5vh 5vw; }
  .cover-wrap .right {
    border-left: none; border-top: 1px solid var(--line);
    padding-left: 0; padding-top: 28px;
  }

  .two-col   { grid-template-columns: 1fr; gap: 28px; }
  .three-col { grid-template-columns: 1fr; gap: 22px; }
  .three-col .col {
    border-right: none; border-bottom: 1px solid var(--line);
    padding-right: 0; padding-bottom: 18px;
  }
  .three-col .col:last-child { border-bottom: none; padding-bottom: 0; }

  .flow { grid-template-columns: repeat(3, 1fr); }
  .flow-arrow { display: none; }

  .timeline { grid-template-columns: repeat(2, 1fr); }
  .tl-step  { border-right: none; border-bottom: 1px solid var(--line); padding: 20px; }
  .tl-step:first-child { padding-left: 0; }
  .tl-step:nth-child(odd)  { border-right: 1px solid var(--line); }
  .tl-step:nth-child(even) { padding-right: 0; }

  .team-grid { grid-template-columns: repeat(2, 1fr); }
  .kpi-ring  { grid-template-columns: repeat(3, 1fr); }

  .agenda { grid-template-columns: 1fr; }
  .agenda-item:nth-child(odd)  { border-right: none; padding-right: 0; }
  .agenda-item:nth-child(even) { padding-left: 0; }

  .partner-row { grid-template-columns: 1fr; gap: 8px; }

  .dilemma { grid-template-columns: 1fr; gap: 20px; }
  .dilemma-vs { display: none; }

  .budget-matrix { grid-template-columns: 1fr; gap: 26px; }

  .chrome-top { padding: 18px 22px; }
}

/* ≤ 820 — tablet portrait */
@media (max-width: 820px) {
  :root {
    --script-h: clamp(140px, 24vh, 200px);
    --source-w: 260px;
  }
  .slide { overflow-y: auto; }
  .bs-body { column-count: 1; }

  /* Source panel overlays stage on mobile */
  .source-panel { box-shadow: 24px 0 60px rgba(10,15,30,0.18); }
  .stage, body.source-collapsed .stage { left: var(--source-bar-w); }
  .chrome-top, body.source-collapsed .chrome-top { left: var(--source-bar-w); }

  .flow { grid-template-columns: repeat(2, 1fr); }
  .timeline { grid-template-columns: 1fr; }
  .tl-step, .tl-step:nth-child(odd), .tl-step:nth-child(even) {
    padding: 16px 0; border-right: none;
    border-bottom: 1px solid var(--line);
  }
  .tl-step:last-child { border-bottom: none; }

  .team-grid { grid-template-columns: 1fr; }
  .kpi-ring  { grid-template-columns: repeat(2, 1fr); }

  .cover-stats { grid-template-columns: 1fr; }
  .cover-stats > div:nth-child(odd)  { border-right: none; padding-right: 0; }
  .cover-stats > div:nth-child(even) { padding-left: 0; }

  .rank-row { grid-template-columns: 48px 1fr; gap: 14px; }
  .rank-row .label { display: none; }

  .fin-bar { grid-template-columns: 100px 1fr 80px; gap: 10px; }

  #s16 .closing-grid { grid-template-columns: 1fr; gap: 24px; }

  .shortcuts-popover { width: 92vw; right: 4vw; }
  .chrome-bot { padding: 0 5vw; }
  .chrome-bot .cb-left #slide-title { max-width: 30vw; }

  .glossary-window { width: 86vw !important; }
}

/* ≤ 560 — mobile */
@media (max-width: 560px) {
  .slide { padding: 3vh 5vw; }
  .chrome-top .rhs span:first-child { display: none; }

  .flow { grid-template-columns: 1fr; }
  .kpi-ring { grid-template-columns: 1fr 1fr; }

  .dilemma-card { padding: 22px; }
  .cover-wrap { padding: 4vh 5vw; }
  .cover-mark { width: 120px; }

  .section-num { display: none; }
}

/* Short viewports */
@media (max-height: 720px) {
  .slide { padding: 3.5vh 5vw; }
  .slide-head { margin-bottom: 22px; }
}
