/* ══════════════════════════════════════════════════════════════════════
   IW Responsive Spectrum — content-driven breakpoints, all form factors
   Canon 2026: fluid-first, foldables, tablet split-view, ultrawide caps
   ══════════════════════════════════════════════════════════════════════ */

/* ── TABLET (600–905px): sidebar остаётся, drawer выключаем ──────────── */
@media (min-width: 600px) and (max-width: 905px) {
  /* На планшете боковая панель видима, не drawer */
  .sb {
    transform: none !important;
    visibility: visible !important;
    position: sticky;
    width: 240px !important;
    backdrop-filter: none;
  }
  .mn { margin-left: 0 !important; padding-top: 0; }

  /* Bottom nav и mob-header не нужны — есть sidebar */
  .mob-bottom-nav, .mob-header { display: none !important; }
  body { padding-bottom: 0; }

  /* Контент в 2 колонки где уместно */
  .mob-card-scroll {
    flex-wrap: wrap;
    overflow: visible;
    margin: 0;
    padding: 0;
  }
  .mob-card-scroll > * { width: calc(50% - 8px); }

  /* Студия/календарь — split-view в landscape */
  .mob-sheet {
    position: static;
    max-height: none;
    border-radius: 0;
    backdrop-filter: none;
  }
}

/* ── FOLDABLE раскрытый (горизонтальный сгиб) ───────────────────────── */
@media (horizontal-viewport-segments: 2) {
  /* Контент уважает линию сгиба — отступ по центру */
  .mn, .hero-wrap {
    padding-left: env(viewport-segment-left 1 0, 0px);
  }
  /* Двухпанельный режим: список слева от сгиба, деталь справа */
  .fold-split {
    display: grid;
    grid-template-columns:
      env(viewport-segment-width 0 0, 1fr)
      env(viewport-segment-width 1 0, 1fr);
    column-gap: env(viewport-segment-left 1 0, 0px);
  }
}

/* ── DESKTOP (906–1239px): обычный desktop layout, без мобильного ───── */
@media (min-width: 906px) {
  .mob-bottom-nav, .mob-header, .mob-drawer-backdrop { display: none !important; }
  body { padding-bottom: 0; }
}

/* ── LARGE DESKTOP + ULTRAWIDE: ограничиваем ширину контента ─────────── */
@media (min-width: 1240px) {
  /* Контент не растягивается на весь ultrawide — читаемость */
  .ct, .president-shell, .pr-hero, main > .container {
    max-width: 1200px;
    margin-inline: auto;
  }
}

/* ── 4K / ULTRAWIDE 21:9, 32:9 (≥1920px CSS) ────────────────────────── */
@media (min-width: 1920px) {
  :root {
    /* Поднимаем верхнюю границу fluid-типографики чтобы текст не был мелким */
    --sw-scale-cap: 1.15;
  }
  .ct, main > .container { max-width: 1440px; }

  /* Дашборды могут использовать доп. колонку на ultrawide */
  .president-grid { grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); }
}

/* ── Fluid typography caps (content-driven, не device) ──────────────── */
:root {
  --type-body:    clamp(13px, 0.5vw + 11px, 17px);
  --type-h1:      clamp(24px, 3vw + 12px, 48px);
  --type-h2:      clamp(20px, 2vw + 12px, 36px);
  --type-h3:      clamp(17px, 1vw + 13px, 26px);
  --type-small:   clamp(11px, 0.3vw + 10px, 14px);
}

/* ── Logical properties задел (i18n/RTL почти бесплатно) ────────────── */
.mob-card, .card {
  padding-inline: var(--mob-gap-md, 16px);
  padding-block: var(--mob-gap-sm, 12px);
}

/* ── Landscape phone: компактный режим ──────────────────────────────── */
@media (pointer: coarse) and (max-height: 500px) and (orientation: landscape) {
  .mob-bottom-nav { height: calc(44px + env(safe-area-inset-bottom, 0px)); }
  .mob-bottom-nav__item { height: 44px; }
  .mob-bottom-nav__label { display: none; }
  .mob-header { height: calc(44px + env(safe-area-inset-top, 0px)); }
}

/* ── svh/dvh для корректной высоты на мобиле (адресная строка) ───────── */
@supports (height: 100dvh) {
  .hero-wrap, .full-screen { min-height: 100dvh; }
}
