/* ============================================================
   CFU — Адаптивный слой (генерируется gen_responsive.py)
   Подключается ПОСЛЕ shared.css и стиля страницы.
   Десктоп не меняется; правила включаются на планшете/телефоне.
   ============================================================ */

/* Десктоп НЕ трогаем: ширина как в оригинале (во всю страницу).
   Адаптив включается только медиа-запросами ниже. */

/* На узких экранах убираем фикс десктоп-ширины (legacy: body{min-width:1280px}
   из @media(max-width:800px)). Без этого мобильный макет не сворачивается. */
@media (max-width: 1279px) {
  body { min-width: 0 !important; width: auto !important; overflow-x: hidden; }
}

/* Бургер по умолчанию скрыт (десктоп). */
.cfu-nav-cb, .cfu-nav-burger { display: none; }

/* Картинки и фреймы не вылезают за экран. */
img, svg, iframe, video { max-width: 100%; }

/* ---------- ПЛАНШЕТ: ≤1024px ---------- */
@media (max-width: 1024px) {
  .footer-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .home-hero-stats { grid-template-columns: repeat(2, 1fr) !important; }
  .quick-strip-home { grid-template-columns: repeat(2, 1fr) !important; }
  .sb-stats { grid-template-columns: repeat(2, 1fr) !important; }
  .events-list { grid-template-columns: repeat(2, 1fr) !important; }
  .struct-grid-home { grid-template-columns: repeat(2, 1fr) !important; }
  .num-band-row { grid-template-columns: repeat(2, 1fr) !important; }
  .prorector-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .bodies-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .dept-hero-stats { grid-template-columns: repeat(2, 1fr) !important; }
  .quick-strip { grid-template-columns: repeat(2, 1fr) !important; }
  .fac-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .news-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .aud-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .prog-tabs { grid-template-columns: repeat(2, 1fr) !important; }
  .priem-side-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .resource-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .subkafs { grid-template-columns: repeat(2, 1fr) !important; }
  .staff-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .partner-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .audience-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .learn-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .trainer-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .m-prog-quickstats { grid-template-columns: repeat(2, 1fr) !important; }
  .contact-blocks-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .reception-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .feedback-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .socials-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .pc-stats { grid-template-columns: repeat(2, 1fr) !important; }
  .grad-hero-stats { grid-template-columns: repeat(2, 1fr) !important; }
  .grad-docs-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .eb-stats { grid-template-columns: repeat(2, 1fr) !important; }
  .benefits-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .grad-polls-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .alumni-socs-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .clubs-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .sport-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .status-strip { grid-template-columns: repeat(2, 1fr) !important; }
  .step-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .topic-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .prog-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .srv-grid-small { grid-template-columns: repeat(2, 1fr) !important; }
  .info-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .staff-hero-quickfacts { grid-template-columns: repeat(2, 1fr) !important; }
  .pub-stats { grid-template-columns: repeat(2, 1fr) !important; }
  .sci-blocks-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .ttc-band-stats { grid-template-columns: repeat(2, 1fr) !important; }
  .ttc-services-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .m-pub-stats { grid-template-columns: repeat(2, 1fr) !important; }
  .partner-logos { grid-template-columns: repeat(2, 1fr) !important; }
  .sci-news-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .services-top-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .support-grid { grid-template-columns: repeat(2, 1fr) !important; }
}

/* ---------- ТЕЛЕФОН/УЗКИЙ ПЛАНШЕТ: ≤760px ---------- */
@media (max-width: 760px) {
  /* боковые отступы чуть меньше */
  .section { padding-left: 20px; padding-right: 20px; }
  .home-hero { padding-left: 20px !important; padding-right: 20px !important; }
  .home-hero-title { font-size: 34px !important; }

  /* все «контентные» многоколоночные сетки — в одну колонку */
  .pres-pair { grid-template-columns: 1fr !important; }
  .footer-grid { grid-template-columns: 1fr !important; }
  .home-hero-stats { grid-template-columns: 1fr !important; }
  .quick-strip-home { grid-template-columns: 1fr !important; }
  .adm-grid { grid-template-columns: 1fr !important; }
  .about-grid { grid-template-columns: 1fr !important; }
  .sb-stats { grid-template-columns: 1fr !important; }
  .news-events-grid { grid-template-columns: 1fr !important; }
  .events-list { grid-template-columns: 1fr !important; }
  .struct-grid-home { grid-template-columns: 1fr !important; }
  .partners-band { grid-template-columns: 1fr !important; }
  .pb-stats { grid-template-columns: 1fr !important; }
  .m-stat-strip-4 { grid-template-columns: 1fr !important; }
  .m-sci-stats { grid-template-columns: 1fr !important; }
  .num-band-row { grid-template-columns: 1fr !important; }
  .mission-grid { grid-template-columns: 1fr !important; }
  .rector-card { grid-template-columns: 1fr !important; }
  .prorector-grid { grid-template-columns: 1fr !important; }
  .awards-grid { grid-template-columns: 1fr !important; }
  .strat-partners-grid { grid-template-columns: 1fr !important; }
  .about-cta-band { grid-template-columns: 1fr !important; }
  .bodies-grid { grid-template-columns: 1fr !important; }
  .dept-hero { grid-template-columns: 1fr !important; }
  .dept-hero-stats { grid-template-columns: 1fr !important; }
  .quick-strip { grid-template-columns: 1fr !important; }
  .fac-grid { grid-template-columns: 1fr !important; }
  .prog-row { grid-template-columns: 1fr !important; }
  .news-grid { grid-template-columns: 1fr !important; }
  .aud-grid { grid-template-columns: 1fr !important; }
  .prog-hero { grid-template-columns: 1fr !important; }
  .prog-tabs { grid-template-columns: 1fr !important; }
  .vstuplenie-grid { grid-template-columns: 1fr !important; }
  .priem-side-grid { grid-template-columns: 1fr !important; }
  .disc-row { grid-template-columns: 1fr !important; }
  .resource-grid { grid-template-columns: 1fr !important; }
  .dept-card-header { grid-template-columns: 1fr !important; }
  .subkafs { grid-template-columns: 1fr !important; }
  .staff-grid { grid-template-columns: 1fr !important; }
  .partner-grid { grid-template-columns: 1fr !important; }
  .dpo-hero { grid-template-columns: 1fr !important; }
  .dpo-hero-meta { grid-template-columns: 1fr !important; }
  .dpo-about { grid-template-columns: 1fr !important; }
  .about-highlights { grid-template-columns: 1fr !important; }
  .audience-grid { grid-template-columns: 1fr !important; }
  .learn-grid { grid-template-columns: 1fr !important; }
  .mod-item summary { grid-template-columns: 1fr !important; }
  .trainer-grid { grid-template-columns: 1fr !important; }
  .cert-strip { grid-template-columns: 1fr !important; }
  .review-grid { grid-template-columns: 1fr !important; }
  .m-prog-quickstats { grid-template-columns: 1fr !important; }
  .contacts-hero { grid-template-columns: 1fr !important; }
  .contact-blocks-grid { grid-template-columns: 1fr !important; }
  .reception-grid { grid-template-columns: 1fr !important; }
  .feedback-grid { grid-template-columns: 1fr !important; }
  .addresses-grid { grid-template-columns: 1fr !important; }
  .socials-grid { grid-template-columns: 1fr !important; }
  .level-grid { grid-template-columns: 1fr !important; }
  .prog-cards { grid-template-columns: 1fr !important; }
  .pc-stats { grid-template-columns: 1fr !important; }
  .dpo-cat-grid { grid-template-columns: 1fr !important; }
  .dpo-cards { grid-template-columns: 1fr !important; }
  .dpo-cta-band { grid-template-columns: 1fr !important; }
  .dcb-aside { grid-template-columns: 1fr !important; }
  .grad-hero { grid-template-columns: 1fr !important; }
  .grad-hero-stats { grid-template-columns: 1fr !important; }
  .grad-docs-grid { grid-template-columns: 1fr !important; }
  .success-grid { grid-template-columns: 1fr !important; }
  .eb-stats { grid-template-columns: 1fr !important; }
  .benefits-grid { grid-template-columns: 1fr !important; }
  .grad-polls-grid { grid-template-columns: 1fr !important; }
  .alumni-socs-grid { grid-template-columns: 1fr !important; }
  .grad-cta-band { grid-template-columns: 1fr !important; }
  .home-hero-grid { grid-template-columns: 1fr !important; }
  .news-feed-grid { grid-template-columns: 1fr !important; }
  .clubs-grid { grid-template-columns: 1fr !important; }
  .dorms-grid { grid-template-columns: 1fr !important; }
  .dorms-stats { grid-template-columns: 1fr !important; }
  .sport-grid { grid-template-columns: 1fr !important; }
  .culture-grid { grid-template-columns: 1fr !important; }
  .life-cta-band { grid-template-columns: 1fr !important; }
  .lcb-socials { grid-template-columns: 1fr !important; }
  .status-strip { grid-template-columns: 1fr !important; }
  .step-grid { grid-template-columns: 1fr !important; }
  .topic-grid { grid-template-columns: 1fr !important; }
  .prog-grid { grid-template-columns: 1fr !important; }
  .rab-hero { grid-template-columns: 1fr !important; }
  .srv-grid { grid-template-columns: 1fr !important; }
  .srv-grid-small { grid-template-columns: 1fr !important; }
  .info-grid { grid-template-columns: 1fr !important; }
  .sveden-layout { grid-template-columns: 1fr !important; }
  .m-status-strip { grid-template-columns: 1fr !important; }
  .staff-hero { grid-template-columns: 1fr !important; }
  .staff-hero-quickfacts { grid-template-columns: 1fr !important; }
  .staff-grid-2 { grid-template-columns: 1fr !important; }
  .pub-stats { grid-template-columns: 1fr !important; }
  .disc-grid { grid-template-columns: 1fr !important; }
  .sci-hero { grid-template-columns: 1fr !important; }
  .sci-hero-stats { grid-template-columns: 1fr !important; }
  .sci-blocks-grid { grid-template-columns: 1fr !important; }
  .ttc-band-stats { grid-template-columns: 1fr !important; }
  .ttc-services-grid { grid-template-columns: 1fr !important; }
  .mip-grid { grid-template-columns: 1fr !important; }
  .contact-card { grid-template-columns: 1fr !important; }
  .m-pub-stats { grid-template-columns: 1fr !important; }
  .m-ttc-stats { grid-template-columns: 1fr !important; }
  .partner-logos { grid-template-columns: 1fr !important; }
  .sci-news-grid { grid-template-columns: 1fr !important; }
  .m-srv-grid { grid-template-columns: 1fr !important; }
  .stu-hero { grid-template-columns: 1fr !important; }
  .services-top-grid { grid-template-columns: 1fr !important; }
  .finance-grid { grid-template-columns: 1fr !important; }
  .support-grid { grid-template-columns: 1fr !important; }
  .polls-grid { grid-template-columns: 1fr !important; }
}

/* ---------- МОБИЛЬНОЕ МЕНЮ: ≤960px ---------- */
@media (max-width: 960px) {
  .main-header { flex-wrap: wrap; row-gap: 10px; }
  .brand { margin-right: auto; }
  .header-actions { order: 2; }

  .cfu-nav-burger {
    display: inline-flex; flex-direction: column; justify-content: center;
    gap: 5px; width: 46px; height: 40px; padding: 8px; box-sizing: border-box;
    cursor: pointer; order: 3; background: transparent; border: 0;
  }
  .cfu-nav-burger span {
    display: block; height: 3px; width: 100%;
    background: var(--c-red, #DA291C); border-radius: 2px;
    transition: transform .2s ease, opacity .2s ease;
  }

  .main-nav {
    order: 4; width: 100%; display: none;
    flex-direction: column; gap: 0;
    border-top: 1px solid var(--c-line, #D9DBE0);
  }
  #cfu-nav-toggle:checked ~ .main-nav { display: flex; }
  .main-nav a {
    padding: 13px 4px; font-size: 16px;
    border-bottom: 1px solid var(--c-line, #ECEDEF);
  }

  /* верхний бар аудиторий — переносим вместо обрезки */
  .top-bar { flex-wrap: wrap; row-gap: 4px; }
  .top-bar-links { flex-wrap: wrap; gap: 10px 16px; }
}

/* ---------- МАЛЕНЬКИЙ ТЕЛЕФОН: ≤480px ---------- */
@media (max-width: 480px) {
  .top-bar, .main-header, .section, .home-hero { padding-left: 16px; padding-right: 16px; }
  .brand-name { font-size: 14px; line-height: 1.15; }
  .brand-sub  { font-size: 11px; }
  .main-header .icon-btn { display: none; }   /* прячем иконку поиска, бургер остаётся */
  .home-hero { padding-top: 40px; padding-bottom: 36px; }
  .home-hero-title { font-size: 26px !important; }
}
