/* ── container ── */
@media (max-width: 1919.98px) {
  /* меню сжимается, вырез панели подтягивается к логотипу — иначе не хватает места */
  .header__nav {
    gap: 14px;
    font-size: 16px;
  }

  .header__phone {
    margin-left: 30px;
  }

  .hero__wrapper {
    mask-image: url("../img/mask/notch-hero-1919.svg");
  }
}

/* ── 1439 ── */
@media (max-width: 1439.98px) {
  .header__nav {
    display: none;
  }

  .header__phone {
    margin-left: auto;
    margin-right: 8px;
  }

  .burger {
    display: flex;
  }

  .hero__wrapper {
    min-height: 0;
    padding-top: 180px;
  }

  .hero__content {
    margin-bottom: 0;
  }

  .hero__image {
    top: 60px;
    width: 45%;
  }

  .hero__bonus {
    margin-top: 60px;
  }

  /* Четыре колонки сужают карточку до ~226px при 1024px: цифра «50+ тыс км»
     не влезала, а ступенька выреза приходилась ровно на плашку-тег.
     С 1439 переходим на две колонки — карточка снова от 470px */
  .about__list {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }

  /* Планшетная раскладка «широкая карточка + миниатюра» включается с 1439,
     а не с 1023: на 1024-1439 две колонки давали карточку 472px, где длинные
     слова заголовка («Реабилитационное») не влезали в 47% текстовой колонки
     и наезжали на фото */
  .for-whom .section-head__title {
    max-width: 611px;
  }

  .for-whom__list {
    grid-template-columns: 1fr;
    gap: 8px;
    margin-top: 32px;
  }

  .for-whom__card {
    mask-image: url("../img/mask/cut-38.svg");

    min-height: 209px;
  }

  .for-whom__title {
    /* 442 из макета, но не шире, чем остаётся до миниатюры:
       она 201px + 10px отступ справа, минус padding карточки, плюс зазор 40.
       Без этого на 480-700px заголовок наезжал на фото */
    max-width: min(442px, calc(100% - 231px));
    line-height: 1.1;
  }

  /* тег ограничен так же, как заголовок — до миниатюры */
  .for-whom__card > .tag {
    max-width: min(442px, calc(100% - 231px));
  }

  .for-whom__image {
    mask-image: url("../img/mask/cut-30.svg");

    top: 10px;
    right: 10px;
    width: 201px;
    height: 187px;
    border-radius: 10px;
  }

  .for-whom__btn {
    margin-top: 20px;
    min-width: 220px;
    min-height: 48px;
  }
}

/* ── 1268 ── */
/* Ниже ~1269px вырез начал бы заезжать на логотип: раньше это держал
   max(330px, 26%) внутри clip-path, но max() не выразить в SVG — поэтому
   узкий диапазон берёт отдельную маску с выносом в px, а не в % */
@media (max-width: 1268.98px) {
  .hero__wrapper {
    mask-image: url("../img/mask/notch-hero-1268.svg");
  }
}

/* ── 1023 ── */
@media (max-width: 1023.98px) {
  :root {
    --container-padding: 24px;
  }

  main > section + section:not(._full) {
    padding-top: 80px;
  }

  main > section + section._full {
    margin-top: 80px;
  }

  .tag__text {
    font-size: 16px;
  }

  .tag._lg {
    padding-inline: 20px;
  }

  .section-head {
    gap: 16px;
  }

  .section-head._left {
    align-items: center;
    text-align: center;
  }

  .about__list {
    margin-top: 32px;
  }

  .about__card {
    min-height: 240px;
  }

  .cases__head {
    flex-direction: column;
    align-items: center;
  }

  .cases-nav {
    margin-top: 20px;
  }

  .cases-slider {
    margin-top: 32px;
  }

  .cases-slider__item {
    height: 420px;
  }

  .cases-slider__info {
    min-height: 201px;
    /* сверху с запасом под ступеньку выреза, см. main.css */
    padding: 40px 20px 20px;
  }

  .geo__card {
    gap: 24px;
    min-height: 0;
    padding: 30px 24px;
  }

  .geo .section-head__title,
  .geo .section-head__text {
    max-width: none;
  }

  /* на планшете карта возвращается в поток — макет стековый */
  .geo__map {
    position: static;
    width: 100%;
  }

  .geo__stats {
    flex-direction: row;
    gap: 20px;
    max-width: none;
  }

  .geo__stat {
    flex: 1;
  }

  .tech .section-head__title {
    max-width: 720px;
  }

  /* форма выреза тянется процентами, поэтому переопределять её здесь не нужно */
  .tech__panel {
    min-height: 790px;
    margin-top: 32px;
  }

  /* на планшете колонки складываются в строку сверху вниз */
  .tech__head {
    display: none;
  }

  .tech__row {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .tech__where {
    text-align: left;
    display: flex;
    justify-content: space-between;
  }

  .tech__where-label {
    display: inline;
    margin-right: 10px;
    color: rgba(255, 255, 255, 0.4);
  }

  .design-3d .section-head__title {
    max-width: 626px;
  }

  .design-3d__image {
    height: 233px;
    margin-top: 32px;
  }

  .design-3d-slider {
    margin-top: 32px;
  }

  .design-3d-slider__item {
    min-height: 265px;
  }

  /* на планшете в макете стрелки слева, кнопка справа — одной строкой */
  .design-3d__footer {
    justify-content: space-between;
    margin-top: 32px;
  }

  .design-3d-nav {
    display: flex;
  }

  .design-3d__btn {
    min-width: 300px;
    min-height: 48px;
  }

  .brands .section-head__title,
  .brands .section-head__text {
    max-width: 642px;
  }

  .brands__list {
    grid-template-columns: 1fr;
    gap: 16px;
    margin-top: 32px;
  }

  .brands__card {
    mask-image: url("../img/mask/notch-brands-1919.svg");

    min-height: 440px;
  }

  .brands__logo {
    width: 200px;
  }

  .brands__text {
    max-width: none;
  }

  .brands__features {
    gap: 12px;
  }

  .products .section-head__title {
    max-width: 720px;
  }

  .products__list {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    margin-top: 32px;
  }

  .products__card {
    min-height: 439px;
  }

  .products__image {
    height: 220px;
  }

  .products__btn {
    margin-top: 32px;
    min-width: 220px;
    min-height: 48px;
  }

  .why .section-head__title {
    max-width: 626px;
  }

  .why__list {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    margin-top: 40px;
  }

  .why__list._is-collapsed .why__card:nth-child(n + 5) {
    display: none;
  }

  .why__card {
    min-height: 315px;
  }

  .why__more {
    display: flex;
    width: fit-content;
    margin-top: 16px;
    margin-inline: auto;
    min-width: 265px;
    font-size: calc(16px + 0.010179 * clamp(0px, 100vw - 375px, 393px));
  }

  .roadmap__wrapper {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .roadmap__card {
    min-height: 443px;
  }

  .roadmap__decor {
    left: 0;
    width: 100%;
    height: auto;
  }

  .roadmap__mark {
    top: 20px;
    right: 20px;
    bottom: auto;
    left: auto;
    width: 38px;
    height: 40px;
  }

  .roadmap__title {
    margin-top: 105px;
    line-height: 1;
  }

  .roadmap__text {
    margin-top: 16px;
    max-width: 598px;
  }

  .roadmap__note {
    margin-top: 34px;
    line-height: 1.2;
  }

  .roadmap__item {
    min-height: 140px;
  }

  .roadmap__num {
    width: 50px;
  }

  .details .section-head__title,
  .details .section-head__text {
    max-width: 642px;
  }

  .details__list {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    margin-top: 32px;
  }

  /* до нажатия «Показать еще» видно только четыре карточки */
  .details__list._is-collapsed .details__card:nth-child(n + 5) {
    display: none;
  }

  .details__card {
    min-height: 183px;
  }

  .details__text {
    line-height: 1.2;
  }

  .details__more {
    display: flex;
    width: fit-content;
    margin-top: 16px;
    margin-inline: auto;
    min-width: 265px;
    font-size: calc(16px + 0.010179 * clamp(0px, 100vw - 375px, 393px));
  }

  .banner {
    min-height: 432px;
    padding: 40px 24px;
  }

  .banner__decor {
    width: 588px;
    height: 264px;
  }

  .banner__decor._left {
    top: 27px;
    left: -294px;
  }

  .banner__decor._right {
    top: 168px;
    right: -274px;
  }

  .banner__content {
    max-width: 662px;
  }

  .banner__text {
    max-width: none;
  }

  .nav__prev,
  .nav__next {
    width: 64px;
    height: 48px;
    clip-path: polygon(18px 0, 100% 0, 100% calc(100% - 18px), calc(100% - 18px) 100%, 0 100%, 0 18px);
  }

  .nav__prev::before,
  .nav__next::before {
    clip-path: polygon(17px 0, 100% 0, 100% calc(100% - 17px), calc(100% - 17px) 100%, 0 100%, 0 17px);
  }

  .header__wrapper {
    padding-top: 31px;
  }

  .header__logo {
    max-width: 230px;
  }

  .hero {
    padding-top: 28px;
  }

  /* Шапка лежит в вырезе карточки: в макете её правый край совпадает с правым
     краем карточки, логотип отступает от левого края карточки на 30px */
  /* в макете между телефоном и бургером 8px */
  .header__wrapper {
    gap: 8px;
  }

  .header__wrapper {
    padding-inline: 24px;
  }

  .header > .container {
    padding-inline: 30px 0;
  }

  .hero__wrapper {
    mask-image: url("../img/mask/notch-hero-1023.svg");

    min-height: 872px;
    padding: 85px 30px 36px;
  }

  .hero__decor {
    display: none;
  }

  .hero__content {
    max-width: none;
    width: 100%;
    margin-bottom: 0;
  }

  .hero__subtitle {
    max-width: 459px;
  }

  .hero__list {
    max-width: 431px;
  }

  .hero__item {
    padding-left: 27px;
  }

  .hero__item::before {
    left: 11px;
  }

  .hero__btn {
    min-width: 322px;
    font-size: 18px;
  }

  .hero__image {
    position: static;
    width: 100%;
    height: 211px;
    margin-top: 30px;
    border-radius: 10px;
    aspect-ratio: auto;
  }

  .hero__bonus {
    margin-top: 30px;
  }

  .hero__bonus-list {
    gap: 67px;
  }

  .reviews__head {
    flex-direction: column;
    align-items: center;
  }

  .reviews-nav {
    margin-top: 20px;
  }

  .reviews .section-head__title {
    max-width: none;
  }

  .reviews-slider {
    margin-top: 32px;
  }

  .reviews-slider__item {
    gap: 24px;
    padding: 24px;
  }

  .callback__wrapper {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .callback .section-head__title,
  .callback .section-head__text {
    max-width: none;
  }

  .callback__content {
    gap: 32px;
  }

  .callback__form {
    width: 100%;
  }

  .callback__input {
    min-height: 60px;
  }

  .callback__agree {
    max-width: none;
  }

  .callback__btn {
    min-width: 220px;
    min-height: 48px;
  }

  /* колонки схлопнулись — сдвиг фото под заголовок больше не нужен */
  .callback__image {
    height: 400px;
    margin-top: 0;
    order: -1;
  }

  .footer {
    padding-bottom: 90px;
  }

  /* в макете 768 меню двумя строками 5+4, каждая по центру */
  .footer__nav {
    flex-direction: column;
    align-items: center;
    gap: 20px;
    font-size: calc(14px + 0.005089 * clamp(0px, 100vw - 375px, 393px));
  }

  .footer__nav-group {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 20px 32px;
  }

  .footer__contacts {
    margin-top: 32px;
    font-size: calc(14px + 0.005089 * clamp(0px, 100vw - 375px, 393px));
  }

  .footer__phone {
    margin-top: 32px;
    min-height: 48px;
  }

  .footer__site {
    margin-top: 32px;
    font-size: 16px;
  }

  .footer__legal {
    flex-direction: column;
    align-items: center;
    gap: 20px;
    margin-top: 40px;
    font-size: 14px;
  }

  .footer__bottom {
    margin-top: 32px;
    font-size: 14px;
  }

  .popup__text {
    max-width: none;
  }

  .popup._center,
  .popup._review {
    width: 100%;
    padding: 24px;
  }

  /* ── страница кейса: описание сверху, галерея ниже с вертикальными миниатюрами ── */
  .case {
    padding-top: 77px;
    padding-bottom: 60px;
  }

  .case__body {
    flex-direction: column;
    gap: 32px;
    margin-top: 10px;
  }

  .case__gallery {
    order: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 17px;
    width: 100%;
  }

  .case__info {
    justify-content: flex-start;
    gap: 32px;
    width: 100%;
  }

  .case__tag {
    min-width: 220px;
  }

  /* параметр и значение встают в одну строку по краям блока */
  .case__spec {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
  }

  .case__spec-value {
    font-weight: 400;
    text-align: end;
  }

  .case__about-text {
    -webkit-line-clamp: 6;
    line-height: 1.2;
  }

  .case-gallery {
    flex: 1 1 auto;
    min-width: 0;
  }

  .case-gallery__image {
    height: 390px;
    aspect-ratio: auto;
    border-radius: 10px;
  }

  .case-thumbs {
    flex-direction: column;
    flex-shrink: 0;
    gap: 10px;
    width: 76px;
    margin-top: 0;
  }

  .case-thumbs__slider {
    width: 100%;
    height: 330px;
  }

  /* вертикальной ленте нужна явная высота слайда, иначе Swiper растягивает его на весь трек */
  .case-thumbs__item {
    width: 100%;
    height: 58px;
  }

  .case-thumbs__image {
    height: 58px;
  }

  .case-thumbs__prev,
  .case-thumbs__next {
    display: flex;
    width: 27px;
    height: 14px;
  }

  .case-thumbs__prev img,
  .case-thumbs__next img {
    transform: rotate(90deg);
  }
  .header._is-fixed {
    padding-bottom: 31px;
  }
  .cases__more {
    display: flex;
    width: fit-content;
    margin-top: 16px;
    margin-inline: auto;
    min-width: 265px;
    font-size: calc(16px + 0.010179 * clamp(0px, 100vw - 375px, 393px));
  }
}

/* ── 767 ── */
@media (max-width: 767.98px) {
  /* Мобильный подвал в макете собран иначе планшетного: меню в две колонки
     по левому краю, под ним линия, всё остальное по центру. Размеры — из
     макета 375: шаг между блоками 32, меню 18px, ссылки 20px в столбце */
  .footer {
    padding-top: 42px;
    padding-bottom: 30px;
  }

  .footer__wrapper {
    align-items: stretch;
    gap: 32px;
  }

  /* на мобильном те же две группы становятся колонками */
  .footer__nav {
    flex-direction: row;
    align-items: flex-start;
    justify-content: start;
    /* 84px из макета 375; ниже него колонки в него не влезают —
       процент даёт ту же величину на 375 и ужимается на 320 */
    gap: 20px min(84px, 24%);
    padding-bottom: 32px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
    font-size: calc(18px - 0.005089 * clamp(0px, 100vw - 375px, 393px));
    line-height: 1.2;
  }

  .footer__nav-group {
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
  }

  .footer__contacts {
    align-self: center;
    margin-top: 0;
    max-width: none;
    font-size: calc(18px - 0.005089 * clamp(0px, 100vw - 375px, 393px));
    line-height: 1.2;
  }
  .design-3d .section-head__text {
    display: block;
  }
  /* в мобильном макете ТЦ вынесен на свою строку, в планшетном — в общей */
  .footer__address-mall {
    display: block;
  }

  .footer__socials {
    gap: 24px;
  }

  .footer__socials img {
    width: 48px;
    height: auto;
  }

  .footer__phone {
    margin-top: 32px;
    min-height: 60px;
  }

  .footer__site {
    margin-top: 32px;
    font-size: 20px;
  }

  .footer__legal {
    flex-direction: column;
    align-items: center;
    gap: 20px;
    margin-top: 0;
    font-size: 16px;
  }

  .footer__bottom {
    margin-top: 0;
    font-size: 16px;
  }

  /* в макете логотип стоит в потоке под нижней строкой, а не свисает за край */
  .footer__wordmark {
    /* display: block обязателен — у inline-картинки margin: auto не центрирует,
       и снизу остаётся зазор под базовую линию */
    display: block;
    position: static;
    width: calc(100% - var(--container-padding) * 2);
    margin: 16px auto 0;
    transform: none;
  }

  :root {
    --container-padding: 16px;
  }

  .header__wrapper {
    gap: 8px;
  }

  .hero__wrapper {
    min-height: 0;
    padding-inline: 20px;
  }

  .hero__subtitle,
  .hero__list,
  .hero__btn,
  .hero__bonus-item {
    max-width: none;
  }

  .hero__btn {
    min-width: 0;
    width: 100%;
  }

  .hero__bonus-list {
    gap: 20px;
  }

  .about__list {
    grid-template-columns: 1fr;
  }

  /* Замеры показали: с 767px текстовая плашка телефона (240px) уже не влезает —
     логотип с ней слипались, а шапка вылезала за экран. Ниже — компактная иконка */
  .header__phone {
    display: none;
  }

  .header__call {
    display: inline-flex;
    margin-left: auto;
  }

  /* ── страница кейса на планшете-портрете: галерея снова колонкой, миниатюры горизонтально ── */
  .case__gallery {
    flex-direction: column;
    align-items: stretch;
  }

  .case-thumbs {
    flex-direction: row;
    width: 100%;
  }

  .case-thumbs__slider {
    height: auto;
  }

  .case-thumbs__prev img,
  .case-thumbs__next img {
    transform: none;
  }
  .reviews-slider__quote {
    display: none;
  }
  .reviews-slider__position {
    font-size: 16px;
  }
  .callback__image {
    display: none;
  }
  /* Кейсы: Swiper на мобильном отключён, карточки идут колонкой,
     до нажатия «Показать еще» видно три */
  .cases-nav {
    display: none;
  }

  .cases-slider {
    overflow: visible;
  }

  .cases-slider__list {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }

  .cases-slider__list._is-collapsed .cases-slider__item:nth-child(n + 4) {
    display: none;
  }

  /* на мобильном декоративные кольца в панели технологий скрыты */
  .tech__decor {
    display: none;
  }

  /* в мобильном макете у шагов дорожной карты нет номеров */
  .roadmap__num {
    display: none;
  }

  /* в мобильном макете описание секции скрыто только у формы —
     у about, details, brands и geo оно на месте */
  .callback .section-head__text {
    display: none;
  }

  /* в мобильном макете цифры географии стоят по центру */
  .geo__stats,
  .geo__stat {
    align-items: center;
    text-align: center;
  }
  /* ниже 768 телефон в шапке сменяется иконкой — блок кнопок уже,
     поэтому и вырез карточки короче */
  .hero__wrapper {
    mask-image: url("../img/mask/notch-hero-767.svg");
  }

  .header__wrapper {
    padding-inline: 16px;
  }

  .header > .container {
    padding-inline: 20px 0;
  }

  .design-3d-slider {
    overflow: visible;
  }

  /* на мобильном в макете стрелок нет, вместо них точки над кнопкой */
  .design-3d__footer {
    flex-direction: column;
    gap: 24px;
  }

  .design-3d-nav {
    display: none;
  }

  .design-3d__pagination {
    display: flex;
    justify-content: center;
    gap: 8px;
  }
}

/* ── 479 ── */
@media (max-width: 479.98px) {
  .tech__panel {
    min-height: 0;
    margin-top: 24px;
    padding: 30px 20px;
    /* на мобильном панель без среза */
    mask-image: none;
  }

  /* Swiper на мобильном отключён — слайды выстраиваются колонкой */
  .tech-slider {
    overflow: visible;
  }

  .tech-slider__list {
    display: block;
  }

  .tech__row {
    padding-block: 0;
    padding-bottom: 16px;
    margin-bottom: 16px;
  }

  .tech__trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    cursor: pointer;
  }

  .tech__chevron {
    display: flex;
    flex-shrink: 0;
    transition: all 0.3s ease 0s;
  }

  .tech__row._is-open .tech__chevron {
    transform: rotate(180deg);
  }

  .tech__body {
    display: none;
    margin-top: 15px;
  }

  .tech__row._is-open .tech__body {
    display: block;
  }

  .tech__row._is-open .tech__name {
    color: #e0e0e0;
  }
  .tech__row._is-open .tech__chevron {
    filter: brightness(0) invert(1);
  }
  .tech__desc {
    line-height: 1.1;
  }
  .geo__text {
    max-width: 257px;
  }
  .footer__legal-link {
    text-align: center;
  }
  .tech__where {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    margin-top: 15px;
  }

  .tech__footer {
    display: none;
  }

  .design-3d__image {
    height: 174px;
    margin-top: 24px;
    border-radius: 10px;
  }

  .design-3d-slider {
    margin-top: 24px;
  }

  .design-3d__footer {
    margin-top: 24px;
  }

  .design-3d__btn {
    width: 100%;
    min-width: 0;
    min-height: 44px;
  }

  main > section + section:not(._full) {
    padding-top: 60px;
  }

  main > section + section._full {
    margin-top: 60px;
  }

  /* на мобильном отступы неравные: до заголовка 8px, до текста 24px,
     поэтому gap задаёт меньший, а текст добирает остаток маржином */
  .section-head {
    gap: 8px;
  }

  .section-head__text {
    margin-top: 15px;
  }

  .about__list {
    gap: 8px;
    margin-top: 24px;
  }

  .about__card {
    mask-image: url("../img/mask/notch-about-479.svg");
    gap: 10px;
    min-height: 160px;
  }
  .for-whom__mark {
    width: 18px;
    height: 20px;
  }
  .about__card .tag {
    min-width: 120px;
  }

  .about__number {
    gap: 8px;
  }

  .tag._lg {
    min-width: 130px;
    padding-inline: 16px;
  }

  .for-whom .section-head__title {
    max-width: none;
  }

  .for-whom__list {
    margin-top: 24px;
  }

  .for-whom__card {
    min-height: 150px;
  }

  .for-whom__title {
    max-width: none;
    line-height: 1;
  }

  .for-whom__image {
    display: none;
  }

  /* фото скрыто — тег снова во всю ширину и в одну строку, как в макете */
  .for-whom__card > .tag {
    max-width: none;
  }

  /* в макете на мобильном CTA-карточка собрана по центру */
  .for-whom__card._cta {
    align-items: center;
    text-align: center;
  }

  .for-whom__btn {
    min-width: 0;
    width: 100%;
    min-height: 44px;
    margin-top: 12px;
  }
  .for-whom__cta-title {
    margin-top: 10px;
    line-height: 1;
    letter-spacing: -0.72px;
  }
  .cases-slider {
    margin-top: 24px;
  }

  .brands__card {
    mask-image: url("../img/mask/notch-brands-479.svg");
    gap: 30px;
    min-height: 0;
    padding-bottom: 38px;
  }
  .brands__list {
    gap: 8px;
  }
  .design-3d .section-head__text {
    max-width: 311px;
  }
  .brands__logo {
    width: 160px;
  }

  .products__list {
    grid-template-columns: 1fr;
    margin-top: 24px;
  }

  .products__btn {
    width: 100%;
    min-width: 0;
    min-height: 44px;
  }

  .why__list {
    grid-template-columns: 1fr;
    margin-top: 35px;
  }

  .why__list._is-collapsed .why__card:nth-child(n + 4) {
    display: none;
  }

  .why__card {
    min-height: 237px;
  }

  .icon-box._sm {
    width: 56px;
    height: 40px;
    clip-path: polygon(13px 0, 100% 0, 100% calc(100% - 13px), calc(100% - 13px) 100%, 0 100%, 0 13px);
  }

  .icon-box._sm::before {
    clip-path: polygon(12px 0, 100% 0, 100% calc(100% - 12px), calc(100% - 12px) 100%, 0 100%, 0 12px);
  }

  .why__more {
    width: 100%;
    min-width: 0;
    min-height: 44px;
  }

  .roadmap__card {
    min-height: 479px;
    padding: 30px 20px;
  }

  .roadmap__mark {
    display: none;
  }

  .roadmap__title {
    margin-top: 20px;
  }

  .roadmap__text {
    margin-top: 20px;
  }

  .roadmap__note {
    margin-top: 61px;
  }

  .roadmap__btn {
    min-width: 0;
    width: 100%;
    min-height: 44px;
  }

  .roadmap__item {
    min-height: 0;
  }

  .roadmap__num {
    width: 40px;
  }

  .details__list {
    grid-template-columns: 1fr;
    gap: 16px;
    margin-top: 24px;
  }

  /* на мобильном — три карточки */
  .details__list._is-collapsed .details__card:nth-child(n + 4) {
    display: none;
  }

  .details__card {
    min-height: 225px;
  }

  .details__text {
    font-weight: 500;
    line-height: 1;
    letter-spacing: -1px;
  }

  .details__more {
    width: 100%;
    min-width: 0;
    min-height: 44px;
  }

  .banner {
    min-height: 517px;
    padding: 40px 16px;
  }

  .banner__decor {
    display: none;
  }

  .banner__content {
    max-width: 343px;
  }

  .banner__mark {
    width: 18px;
    height: 20px;
  }

  .banner__title {
    margin-top: 24px;
  }

  .banner__text {
    margin-top: 16px;
  }

  .banner__btn {
    margin-top: 24px;
    min-width: 0;
    width: 100%;
    min-height: 44px;
  }

  .cases-slider__info {
    min-height: 171px;
  }

  .header__wrapper {
    padding-top: 20px;
  }

  .hero {
    padding-top: 20px;
  }

  .hero__container {
    padding-inline: 8px;
  }

  /* Шапка лежит в вырезе карточки: в макете её правый край совпадает с правым
     краем карточки, левый отступает от него на 20px. Базовые padding-inline: 30px
     плюс отступ контейнера уводили кнопки под чёрное — вырез их не накрывал */
  .header__wrapper {
    padding-inline: 8px;
  }

  .hero__wrapper {
    /* на мобильном у главного экрана радиус 10px — дуга в маске тоже меньше */
    mask-image: url("../img/mask/notch-hero-479.svg");

    min-height: 748px;
    padding: 76px 18px 38px;
    border-radius: 10px;
  }

  .hero__subtitle {
    line-height: 1;
  }

  .hero__content {
    gap: 24px;
  }

  .hero__item {
    padding-left: 24px;
  }

  .hero__item::before {
    width: 3px;
    height: 3px;
  }

  .hero__btn {
    display: none;
  }
  .hero__list {
    gap: 4px;
  }
  /* отступ до кнопки целиком даёт gap колонки */
  .hero__btn._mobile {
    display: inline-flex;
    margin-top: 0;
    min-height: 44px;
    font-size: 16px;
    clip-path: polygon(13px 0, 100% 0, 100% calc(100% - 13px), calc(100% - 13px) 100%, 0 100%, 0 13px);
  }

  .hero__image {
    display: none;
  }

  .hero__bonus {
    margin-top: 25px;
    gap: 6px;
  }
  .about .section-head__text {
    margin-top: 0px;
  }
  .hero__bonus-list {
    flex-direction: column;
    gap: 10px;
  }
  .about__text {
    letter-spacing: -0.8px;
  }
  .about__fact {
    max-width: none;
  }
  .hero__bonus-item {
    width: 100%;
    max-width: 235px;
    letter-spacing: -0.8px;
  }

  .geo__card {
    gap: 16px;
    padding: 24px 16px;
  }

  .geo__stats {
    flex-direction: column;
    gap: 24px;
  }

  .reviews-slider {
    margin-top: 24px;
  }

  .reviews-slider__item {
    gap: 20px;
    padding: 20px;
  }

  .reviews-slider__avatar {
    width: 56px;
    height: 56px;
  }

  .callback__content {
    gap: 24px;
  }

  .callback__form {
    gap: 10px;
  }

  .callback__input {
    min-height: 52px;
    clip-path: polygon(14px 0, 100% 0, 100% calc(100% - 14px), calc(100% - 14px) 100%, 0 100%, 0 14px);
  }

  .callback__btn {
    width: 100%;
    min-width: 0;
    min-height: 44px;
  }

  .callback__image {
    height: 260px;
  }

  .footer__phone {
    width: 100%;
    min-width: 0;
  }

  /* на мобильном в макете адреса нет, крестик без плашки, соцсети крупнее */
  .mobile-panel {
    padding: 80px 16px 40px;
  }

  .mobile-panel__close {
    top: 25px;
    right: 20px;
    width: 18px;
    height: 18px;
    background-color: transparent;
    clip-path: none;
  }

  .mobile-panel__address {
    display: none;
  }

  .mobile-panel__contacts {
    margin-top: 40px;
  }

  .mobile-panel__socials {
    gap: 24px;
    margin-top: 0;
  }

  .mobile-panel__socials img {
    width: 48px;
    height: auto;
  }

  .mobile-panel__phone {
    margin-top: 18px;
    min-width: 200px;
    font-size: 16px;
  }

  .mobile-panel__site {
    margin-top: 18px;
    font-size: 18px;
  }

  .mobile-panel__wordmark {
    margin-top: 40px;
  }

  .popup {
    padding: 16px;
  }

  .popup,
  .popup__head {
    gap: 16px;
  }

  .popup._center,
  .popup._review {
    padding: 20px 16px;
  }

  .popup__review-text {
    margin-top: 20px;
    gap: 16px;
  }

  /* на 320px логотип упирался в кнопку звонка — разрешаем ему ужиматься */
  .header__logo {
    max-width: 155px;
    flex-shrink: 1;
    min-width: 0;
  }

  .header__wrapper {
    gap: 8px;
  }
  .cases__more {
    width: 100%;
    min-width: 0;
    min-height: 44px;
  }
  .brands .section-head__text {
    max-width: 310px;
  }
  .brands__watermark {
    display: none;
  }
  .brands__text {
    margin-top: 6px;
    letter-spacing: -0.9px;
  }
  /* ── страница кейса на маленьких телефонах ── */
  .case {
    padding-top: 70px;
    padding-bottom: 40px;
  }

  .case__back {
    width: 40px;
    height: 24px;
  }

  .case__back img {
    width: 6px;
    height: 12px;
  }

  .case__info {
    gap: 24px;
  }

  .case__tag {
    min-width: 130px;
  }

  .case__about-text {
    -webkit-line-clamp: 7;
  }

  .case-thumbs__item {
    width: 76px;
    height: auto;
  }

  /* в макете у ленты миниатюр только стрелка вперёд, назад лента листается свайпом */
  .case-thumbs__prev {
    display: none;
  }

  .case-thumbs__next {
    width: 7px;
    height: 14px;
  }

  .case-thumbs__next img {
    width: 7px;
    height: 14px;
  }

  /* срезы поля на мобильном меньше — подсветка ошибки повторяет их */
  .callback__field._is-error::before {
    clip-path: polygon(15px 0, 100% 0, 100% calc(100% - 15px), calc(100% - 15px) 100%, 0 100%, 0 15px);
  }
  .header__logo {
    padding-top: 0px;
  }
  .header._is-fixed {
    padding-bottom: 20px;
  }
  .brands__feature {
    gap: 7px;
  }
}
@media (max-width: 374.98px) {
  .header__logo {
    max-width: 133px;
  }
  .footer__bottom {
    flex-direction: column;
  }
}
