/* =========================================================
   Адаптив. Подключается после style.css.
   Точки: 1100 — меню в бургер; 1024 — сайдбар под контент; 720 — телефон.
   ========================================================= */
@media (max-width: 1100px) {
  .header__inner { grid-template-columns: auto 1fr; }
  .header__nav { display: none; }
  .mobile-menu { display: block; }
}

@media (max-width: 1024px) {
  .course-layout,
  .playground { grid-template-columns: 1fr; }
  .sidebar,
  .side-panel { position: static; max-height: none; }
  .side-card__body { max-height: none; }
  .hero--home { grid-template-columns: 1fr; }
  .hero-art { max-width: 320px; }
  .showcase__row { grid-template-columns: 1fr; gap: var(--space-5); }
  .showcase__art { justify-self: start; }
  .showcase__row--reverse .showcase__text { order: 0; }
  .journey { grid-template-columns: 1fr 1fr; row-gap: var(--space-6); }
  .journey::before { display: none; }
  .about-art { max-width: 360px; justify-self: center; }
  .about-hero { grid-template-columns: 1fr; grid-template-areas: "head" "text" "art"; }
  .faq--cols { grid-template-columns: 1fr; }
  .course-hero { grid-template-columns: 1fr; }
  .footer__inner { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 720px) {
  /* Карта пути — вертикально: кружок слева, подписи справа; станции одной высоты,
     поэтому отрезок линии к станции = высота станции минус кружок */
  .metro { grid-template-columns: 1fr; grid-auto-flow: row; padding: var(--space-5); }
  .metro__stop { display: block; justify-items: stretch; height: 96px; padding: 0; text-align: left; }
  .metro__stop > a,
  .metro__stop:not(:has(> a)) {
    display: grid;
    grid-template-columns: 46px 1fr;
    grid-template-rows: auto auto auto;
    justify-items: start;
    column-gap: var(--space-3);
    row-gap: 0;
  }
  .metro__dot { grid-row: 1 / span 3; margin: 0; }
  .metro__stop::before { top: -50px; left: 22px; right: auto; width: 2px; height: 50px; }
  .metro__stop--done::before,
  .metro__stop--current::before { top: -50px; left: 21px; width: 4px; height: 50px; }
  .metro__stop--soon::before { background: repeating-linear-gradient(180deg, var(--border) 0 8px, transparent 8px 14px); }
  .stack-xl { gap: var(--space-7); }
  .stack-home { gap: var(--space-7); }
  .hero-numbers { gap: var(--space-3); }
  .hero-numbers div { padding-left: var(--space-3); }
  .principles { grid-template-columns: 1fr; }
  .author { grid-template-columns: 1fr; justify-items: start; gap: var(--space-5); }
  .author__photo { width: 220px; }
  .hero,
  .cta { padding: var(--space-5); }
  .journey { grid-template-columns: 1fr; }
  .profile-grid { grid-template-columns: 1fr; }
  .search { flex-direction: column; }
  .toolbar__right { margin-left: 0; }
  .task,
  .article,
  .course-hero { padding: var(--space-4); }
  .module__head { padding: var(--space-3) var(--space-4); }
  .module__num { display: none; }
  .module__head { grid-template-columns: minmax(0, 1fr) auto; }
  .module__topics { padding: 0 var(--space-4) var(--space-3); }
  .topic-item { grid-template-columns: minmax(0, 1fr) auto; padding-left: 0; }
  .topic-item > .muted { display: none; }
  .join-viz { grid-template-columns: 1fr; }
  .session { width: 100%; }
  .prev-next { grid-template-columns: 1fr; }
  .footer__inner { grid-template-columns: 1fr; }

  /* Рисунок урока не ужимаем до нечитаемого текста — он прокручивается вбок */
  .article p:has(> svg) { overflow-x: auto; }
  .article svg { width: 760px; max-width: none; }
}
