/* ============================================================
   RESPONSIVE.CSS
   Все медиазапросы сайта
   Критические медиазапросы — в blocks/head.php
   ============================================================ */

/* ============================================================
   1439px — Планшет-горизонтально / ноутбук
   ============================================================ */

@media (max-width: 1439px) {
    .section { padding: 80px 0; }
    .section--lg { padding: 100px 0; }

    /* STATS */
    .stats { padding: 60px 0; }
    .stats__inner { gap: 48px; }

    /* QUOTE */
    .quote-block { padding: 70px 0; }

    /* ABOUT */
    .about__inner { gap: 48px; }

    /* DIRECTIONS */
    .directions__grid { gap: 20px; }

    /* LAPARO */
    .laparo__inner { gap: 48px; }

    /* SCIENCE */
    .science__grid { gap: 24px; }

    /* SLIDES */
    .slides { padding: 70px 0; }

    /* REVIEWS */
    .reviews-swiper .swiper-slide { width: 340px; }
    .review-card { padding: 26px 24px; }

    /* CONTACTS */
    .contacts__inner { gap: 48px; }

    /* FOOTER */
    .footer { padding: 60px 0 28px; }
    .footer__grid { gap: 40px; }
}

/* ============================================================
   1023px — Планшет вертикально
   ============================================================ */

@media (max-width: 1023px) {

    /* === СЕКЦИИ === */
    .section { padding: 70px 0; }
    .section--sm { padding: 50px 0; }
    .section--lg { padding: 80px 0; }

    .section-head { margin-bottom: 40px; }
    .section-head--row {
        flex-direction: column;
        align-items: flex-start;
        gap: 20px;
    }

    /* === BREADCRUMBS === */
    .breadcrumbs { padding: 110px 0 20px; }
    .breadcrumbs__list { font-size: 13px; }

    /* === DOC-PAGE — внутренние === */
    .doc-page { padding: 40px 0 60px; }
    .doc-page__header {
        margin-bottom: 32px;
        padding-bottom: 22px;
    }
    .doc-page__header h1 { font-size: 1.7rem; }
    .doc-page__header p { font-size: 1rem; }
    .doc-page__content { font-size: 1rem; }
    .doc-page__content h2 { font-size: 1.35rem; margin: 32px 0 16px; }
    .doc-page__content h3 { font-size: 1.15rem; margin: 26px 0 12px; }
    .doc-page__content h4 { font-size: 1.05rem; margin: 22px 0 10px; }
    .doc-section { margin-bottom: 48px; }
    .doc-section h2 { font-size: 1.35rem; margin-bottom: 20px; padding-bottom: 14px; }
    .doc-section h3 { font-size: 1.15rem; margin: 24px 0 12px; }

    /* === STATS === */
    .stats { padding: 60px 0; }
    .stats__inner {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    .stats__grid {
        grid-template-columns: 1.3fr 1fr 1fr;
        gap: 16px;
    }
    .stats__big { padding: 24px 20px; }
    .stats__big-value { font-size: 2.6rem; }
    .stats__item { padding: 24px 20px; }
    .stats__item-value { font-size: 2.2rem; }

    /* === QUOTE === */
    .quote-block { padding: 60px 0; }
    .quote-block__mark { font-size: 4rem; }

    /* === ABOUT === */
    .about__inner {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    .about__photo { margin-bottom: 16px; }
    .about__geo {
        margin-bottom: 40px;
        padding: 16px 22px;
    }
    .about__aside { gap: 16px; }
    .about__info { padding: 28px 26px; }

    /* === TIMELINE === */
    .timeline__list { padding-left: 36px; }
    .timeline__item::before {
        left: -36px;
        width: 18px;
        height: 18px;
    }
    .timeline__item { padding-bottom: 28px; }

    /* === DIRECTIONS === */
    .directions__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }
    .direction-card { padding: 28px 24px; }

    /* === LAPARO === */
    .laparo__inner {
        grid-template-columns: 1fr;
        gap: 32px;
    }
    .laparo__advantages { padding: 28px 24px; }

    /* === SCIENCE === */
    .science__grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    .science__block { padding: 28px 24px; }

    /* === SLIDES === */
    .slides { padding: 60px 0; }
    .slides__wrap { padding: 0; }
    .slides-nav { display: none; }

    /* === REVIEWS === */
    .reviews-swiper .swiper-slide { width: 320px; }
    .reviews-nav { margin-top: 24px; }

    /* === FAQ === */
    .faq-item__q {
        padding: 20px 22px;
        font-size: 1rem;
    }
    .faq-item__a-inner { padding: 0 22px 20px; }

    /* === CONTACTS === */
    .contacts__inner {
        grid-template-columns: 1fr;
        gap: 32px;
    }
    .contacts__block { padding: 32px 28px; }

    /* === FOOTER === */
    .footer { padding: 60px 0 24px; }
    .footer__grid {
        grid-template-columns: 1fr 1fr;
        gap: 32px;
        margin-bottom: 36px;
    }
    .footer__brand { grid-column: 1 / -1; max-width: none; }
    .footer__bottom {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
    }
    .footer__bottom-right { flex-wrap: wrap; }

    /* === SCROLL-UP === */
    .scroll-up {
        bottom: 20px;
        right: 20px;
        width: 44px;
        height: 44px;
    }
}

/* ============================================================
   767px — Телефон-большой / планшет-маленький
   ============================================================ */

@media (max-width: 767px) {

    .section { padding: 56px 0; }
    .section--sm { padding: 40px 0; }
    .section--lg { padding: 64px 0; }

    .section-head { margin-bottom: 32px; }
    .section-head p { font-size: 1rem; }

    /* === BREADCRUMBS === */
    .breadcrumbs { padding: 100px 0 16px; }
    .breadcrumbs__list { font-size: 12.5px; gap: 6px; }
    .breadcrumbs__item:not(:last-child)::after { margin-left: 0; }

    /* === DOC-PAGE — внутренние === */
    .doc-page { padding: 32px 0 48px; }
    .doc-page__header {
        margin-bottom: 24px;
        padding-bottom: 18px;
    }
    .doc-page__header h1 { font-size: 1.5rem; }
    .doc-page__header p { font-size: 1rem; }
    .doc-page__content { font-size: 1rem; }
    .doc-page__content h2 { font-size: 1.25rem; margin: 28px 0 14px; }
    .doc-page__content h3 { font-size: 1.1rem; margin: 24px 0 12px; }
    .doc-page__content h4 { font-size: 1rem; margin: 20px 0 10px; }
    .doc-page__content p { margin-bottom: 14px; }
    .doc-page__content ul,
    .doc-page__content ol { padding-left: 20px; }
    .doc-page__content ul li,
    .doc-page__content ol li { margin-bottom: 8px; }
    .doc-page__content .doc-page__info,
    .doc-page__content .doc-page__warning,
    .doc-page__content .doc-page__quote {
        padding: 16px 20px;
        margin: 20px 0;
        font-size: .95rem;
    }
    .doc-section { margin-bottom: 36px; }
    .doc-section h2 { font-size: 1.25rem; margin-bottom: 16px; padding-bottom: 12px; }
    .doc-section h3 { font-size: 1.1rem; margin: 22px 0 12px; }
    .doc-list-check li { padding-left: 28px; margin-bottom: 10px; font-size: .95rem; }
    .doc-list-check li::before { width: 16px; height: 9px; top: 7px; }
    .doc-back { margin-top: 32px; padding: 11px 20px; font-size: 13px; }

    /* === STATS === */
    .stats { padding: 50px 0; }
    .stats__inner { gap: 32px; }
    .stats__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }
    .stats__big {
        grid-column: 1 / -1;
        padding: 24px 22px;
    }
    .stats__big-value { font-size: 2.6rem; }
    .stats__item {
        align-items: center;
        text-align: center;
        padding: 22px 18px;
    }
    .stats__item-value { font-size: 2rem; }

    /* === QUOTE === */
    .quote-block { padding: 50px 0; }
    .quote-block__mark { font-size: 3.5rem; }
    .quote-block__inner { padding: 0 20px; }

    /* === ABOUT === */
    .about__head { margin-bottom: 24px; }
    .about__photo {
        aspect-ratio: 1170/500;
        margin-bottom: 14px;
    }
    .about__geo {
        padding: 14px 18px;
        gap: 10px 16px;
        margin-bottom: 32px;
    }
    .about__geo-label { font-size: 12px; }
    .about__geo-cities span { padding: 5px 12px; font-size: 12px; }
    .about__content { font-size: 1rem; }
    .about__content .about__lead {
        font-size: 1.05rem;
        padding-left: 16px;
        margin-bottom: 22px;
    }
    .about__principles { padding: 20px 22px; margin: 24px 0; }
    .cert-grid { gap: 10px; }
    .cert-tile { padding: 16px 14px; }
    .cert-tile__title { font-size: 12px; }
    .about__info { padding: 24px 22px; }
    .about__info h3 { font-size: 1rem; margin-bottom: 18px; }

    /* === TIMELINE === */
    .timeline__list { padding-left: 30px; }
    .timeline__list::before { left: 7px; }
    .timeline__item::before {
        left: -30px;
        width: 16px;
        height: 16px;
        border-width: 2px;
    }
    .timeline__item { padding-bottom: 24px; }
    .timeline__date { font-size: 11px; padding: 3px 10px; }
    .timeline__text { font-size: .96rem; }

    /* === DIRECTIONS === */
    .directions__grid { grid-template-columns: 1fr; gap: 16px; }
    .direction-card { padding: 26px 22px; }
    .direction-card__num { font-size: 1.6rem; margin-bottom: 12px; }
    .direction-card__title { font-size: 1rem; }

    /* === LAPARO === */
    .laparo__inner { gap: 24px; }
    .laparo__content p { font-size: 1rem; line-height: 1.7; }
    .laparo__advantages { padding: 24px 22px; }
    .laparo__advantages h3 { font-size: .92rem; margin-bottom: 18px; }
    .laparo__advantages li { padding-left: 30px; font-size: .92rem; }

    /* === SCIENCE === */
    .science__block { padding: 24px 22px; }
    .science__block h3 { font-size: 1rem; }

    /* === SLIDES === */
    .slides { padding: 50px 0; }
    .slides__wrap { padding: 0 16px; }
    .slides-pagination { bottom: 16px; }
    .slides-pagination .swiper-pagination-bullet { width: 8px; height: 8px; }
    .slides-pagination .swiper-pagination-bullet-active { width: 24px; }

    /* === REVIEWS === */
    .reviews-swiper .swiper-slide { width: 300px; }
    .review-card { padding: 24px 22px; }
    .review-card__quote { font-size: 2.6rem; top: 14px; right: 18px; }
    .review-card__text { font-size: .92rem; }
    .reviews-nav { display: none; }

    /* === FAQ === */
    .faq-item__q {
        padding: 18px 20px;
        font-size: .95rem;
        gap: 14px;
    }
    .faq-item__icon {
        width: 28px;
        height: 28px;
        font-size: 16px;
    }
    .faq-item__a-inner {
        padding: 0 20px 18px;
        font-size: .9rem;
    }

    /* === CONTACTS === */
    .contacts__block { padding: 28px 24px; }
    .contacts__block h3 { font-size: 1.05rem; margin-bottom: 22px; }
    .contacts__item { gap: 14px; }
    .contacts__item-icon { width: 36px; height: 36px; }
    .contacts__about { font-size: .94rem; }

    /* === FOOTER === */
    .footer { padding: 50px 0 20px; }
    .footer__grid {
        grid-template-columns: 1fr;
        gap: 28px;
        margin-bottom: 32px;
    }
    .footer__brand { max-width: none; }
    .footer__logo { font-size: 1.05rem; }
    .footer__disclaimer { padding: 20px 22px; }
    .footer__disclaimer-text { font-size: 13px; }
    .footer__legal-block { font-size: 12px; }
    .footer__bottom { font-size: 12px; }
    .footer__bottom-right { gap: 14px; }
}

/* ============================================================
   640px — Телефон
   ============================================================ */

@media (max-width: 640px) {

    .section { padding: 48px 0; }
    .section--sm { padding: 36px 0; }
    .section--lg { padding: 56px 0; }

    h3 { font-size: 1.1rem; }

    /* === BREADCRUMBS === */
    .breadcrumbs { padding: 90px 0 14px; }
    .breadcrumbs__list { font-size: 12px; }

    /* === DOC-PAGE — внутренние === */
    .doc-page { padding: 28px 0 40px; }
    .doc-page__header { margin-bottom: 20px; padding-bottom: 16px; }
    .doc-page__header h1 { font-size: 1.35rem; }
    .doc-page__header p { font-size: .95rem; }
    .doc-page__content { font-size: .95rem; line-height: 1.7; }
    .doc-page__content h2 { font-size: 1.15rem; margin: 24px 0 12px; }
    .doc-page__content h3 { font-size: 1.05rem; margin: 20px 0 10px; }
    .doc-page__content h4 { font-size: .98rem; margin: 18px 0 8px; }
    .doc-page__content p { margin-bottom: 12px; }
    .doc-page__content ul,
    .doc-page__content ol { padding-left: 18px; margin-bottom: 16px; }
    .doc-page__content ul li,
    .doc-page__content ol li { margin-bottom: 6px; }
    .doc-page__content ul.doc-page__list li { padding-left: 20px; }
    .doc-page__content ul.doc-page__list li::before {
        width: 6px;
        height: 6px;
        top: 11px;
    }
    .doc-page__content .doc-page__info,
    .doc-page__content .doc-page__warning,
    .doc-page__content .doc-page__quote {
        padding: 14px 18px;
        margin: 18px 0;
        font-size: .92rem;
    }
    .doc-section { margin-bottom: 28px; }
    .doc-section h2 { font-size: 1.15rem; margin-bottom: 14px; padding-bottom: 10px; }
    .doc-section h3 { font-size: 1.05rem; margin: 20px 0 10px; }
    .doc-list-check li { padding-left: 26px; margin-bottom: 8px; font-size: .92rem; }
    .doc-list-check li::before { width: 14px; height: 8px; top: 6px; border-width: 2px; }
    .doc-back { margin-top: 28px; padding: 10px 18px; font-size: 12.5px; }

    /* === STATS === */
    .stats__grid { grid-template-columns: 1fr; }
    .stats__big {
        grid-column: auto;
        align-items: center;
        text-align: center;
        padding: 22px 20px;
    }
    .stats__big-value { font-size: 2.4rem; }
    .stats__item { padding: 20px 18px; }
    .stats__item-value { font-size: 1.9rem; }

    /* === QUOTE === */
    .quote-block__mark { font-size: 3rem; }
    .quote-block__text { font-size: 1.1rem; }
    .quote-block__author {
        font-size: 11px;
        letter-spacing: 1px;
        padding-top: 16px;
    }

    /* === ABOUT === */
    .about__photo { aspect-ratio: 1170/600; }
    .about__geo {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }
    .cert-grid { grid-template-columns: 1fr; }
    .cert-tile {
        flex-direction: row;
        align-items: center;
        padding: 14px 16px;
        gap: 12px;
    }

    /* === DIRECTIONS === */
    .direction-card__stat { margin-top: 14px; font-size: 11px; padding: 5px 12px; }

    /* === REVIEWS === */
    .reviews-swiper .swiper-slide { width: 86vw; }

    /* === FAQ === */
    .faq-item__q { padding: 16px 18px; font-size: .92rem; }
    .faq-item__a-inner { padding: 0 18px 16px; font-size: .88rem; }

    /* === CONTACTS === */
    .contacts__block { padding: 24px 20px; }
    .contacts__item { font-size: .94rem; }

    /* === FOOTER === */
    .footer__disclaimer {
        flex-direction: column;
        gap: 12px;
    }
    .footer__bottom-right { gap: 12px; }

    /* === SCROLL-UP === */
    .scroll-up {
        bottom: 16px;
        right: 16px;
        width: 42px;
        height: 42px;
    }
}

/* ============================================================
   480px — Мелкий телефон
   ============================================================ */

@media (max-width: 480px) {

    h3 { font-size: 1.05rem; }

    /* === BREADCRUMBS === */
    .breadcrumbs { padding: 86px 0 12px; }
    .breadcrumbs__list { font-size: 11.5px; }

    /* === DOC-PAGE — внутренние === */
    .doc-page { padding: 24px 0 36px; }
    .doc-page__header h1 { font-size: 1.25rem; }
    .doc-page__content { font-size: .92rem; }
    .doc-page__content h2 { font-size: 1.1rem; }
    .doc-page__content h3 { font-size: 1rem; }
    .doc-page__content p { margin-bottom: 10px; }
    .doc-list-check li { padding-left: 24px; }
    .doc-list-check li::before { width: 12px; height: 7px; top: 6px; }

    /* === SECTION HEAD === */
    .section-head p { font-size: .95rem; }

    /* === STATS === */
    .stats__big-value { font-size: 2.2rem; }
    .stats__item-value { font-size: 1.8rem; }

    /* === ABOUT === */
    .about__photo { aspect-ratio: 1170/700; }
    .about__geo-cities { gap: 6px; }
    .about__geo-cities span { padding: 4px 10px; font-size: 11px; }

    /* === DIRECTIONS === */
    .direction-card { padding: 22px 20px; }
    .direction-card__num { font-size: 1.4rem; }

    /* === LAPARO === */
    .laparo__advantages { padding: 22px 20px; }

    /* === SCIENCE === */
    .science__block { padding: 22px 20px; }

    /* === SLIDES === */
    .slides__wrap { padding: 0 12px; }

    /* === REVIEWS === */
    .reviews-swiper .swiper-slide { width: 92vw; }
    .review-card { padding: 22px 20px; }

    /* === FAQ === */
    .faq-item__q { padding: 15px 16px; font-size: .88rem; gap: 12px; }
    .faq-item__icon { width: 26px; height: 26px; font-size: 14px; }
    .faq-item__a-inner { padding: 0 16px 14px; font-size: .85rem; }

    /* === CONTACTS === */
    .contacts__block { padding: 22px 18px; }
    .contacts__item-icon { width: 32px; height: 32px; }
    .contacts__item-icon svg { width: 15px; height: 15px; }

    /* === FOOTER === */
    .footer__disclaimer { padding: 18px 18px; }
    .footer__disclaimer-icon { width: 28px; height: 28px; }
    .footer__disclaimer-text { font-size: 12px; }
    .footer__legal-block { font-size: 11.5px; line-height: 1.6; }
}