/* ============================================================
   RESPONSIVE.CSS — АДАПТИВ САЙТА ГЕО
   Версия 2.0 — сгруппировано по темам
   ============================================================ */

/* ============================================================
   1. ПЛАНШЕТ (до 1024px)
   ============================================================ */
@media (max-width: 1024px) {

    /* 1.1. База */
    .container { width: calc(100% - 32px); }
    .section { padding: 70px 0; }

    /* 1.2. Шапка */
    .header__nav { display: none; }
    .header__phones { display: none; }
    .header__burger { display: flex; }
    .header__logo-img { width: 160px; }

    /* 1.3. Hero */
    .hero { padding: 60px 0 0; }
    .hero__stats { grid-template-columns: repeat(2, 1fr); gap: 20px; }
    .hero__stat {
        border-right: none;
        padding-right: 0;
        padding-bottom: 12px;
        border-bottom: 1px solid var(--line);
    }
    .hero__stat:nth-last-child(-n+2) {
        border-bottom: none;
        padding-bottom: 0;
    }

    /* 1.4. Сетки */
    .services__grid { grid-template-columns: repeat(2, 1fr); }
    .objects__grid { grid-template-columns: repeat(3, 1fr); }
    .team__grid { grid-template-columns: repeat(2, 1fr); }
    .faq__grid { grid-template-columns: 1fr; }
    .contacts__grid { grid-template-columns: 1fr; gap: 32px; }
    .footer__grid { grid-template-columns: 1fr 1fr; }

    /* 1.5. Законодательство */
    .docs__grid { grid-template-columns: 1fr; gap: 24px; }
    .docs__links { position: static; }
}

/* ============================================================
   2. ТЕЛЕФОН (до 640px)
   ============================================================ */
@media (max-width: 640px) {

    /* 2.1. База */
    .container { width: calc(100% - 24px); }
    .section { padding: 50px 0; }
    .section-head { margin-bottom: 36px; }

    /* 2.2. Шапка */
    .header__logo-img { width: 140px; }

    /* 2.3. Hero */
    .hero { padding: 40px 0 0; }
    .hero__stats { grid-template-columns: 1fr; gap: 16px; padding: 24px 0; }
    .hero__stat {
        padding-right: 0;
        padding-bottom: 14px;
        border-right: none;
        border-bottom: 1px solid var(--line);
    }
    .hero__stat:last-child {
        border-bottom: none;
        padding-bottom: 0;
    }
    .hero__cta { flex-direction: column; align-items: stretch; }
    .hero__cta .btn { width: 100%; }
    .hero__note { text-align: center; }
    .hero__marquee-track span { font-size: 16px; padding-right: 24px; }
    .hero__marquee-track span::after { margin-left: 24px; font-size: 20px; }

    /* 2.4. Сетки */
    .services__grid { grid-template-columns: 1fr; }
    .objects__grid { grid-template-columns: 1fr 1fr; }
    .team__grid { grid-template-columns: 1fr; }

    /* 2.5. Цены */
    .prices__row {
        grid-template-columns: 1fr;
        gap: 8px;
        padding: 18px 20px;
    }
    .prices__value { text-align: left; font-size: 20px; }
    .prices__row--head { display: none; }

    /* 2.6. Законодательство */
    .docs-group__head {
        padding: 14px 16px;
        gap: 10px;
    }
    .docs-group__title { font-size: 14px; }
    .docs-group__count {
        min-width: 24px;
        height: 20px;
        font-size: 11px;
    }
    .docs-group__list { padding: 4px 16px 14px; }
    .docs-group__list a,
    .docs-group__list span { font-size: 13px; }
    .useful-link {
        grid-template-columns: 40px 1fr auto;
        gap: 12px;
        padding: 14px 16px;
    }
    .useful-link__icon { width: 40px; height: 40px; font-size: 16px; }
    .useful-link__body strong { font-size: 13px; }

    /* 2.7. Контакты */
    .contacts__map { height: 350px; }

    /* 2.8. Подвал */
    .footer__grid { grid-template-columns: 1fr; gap: 28px; }
    .footer__logo-img { width: 150px; }
    .footer__bottom { flex-direction: column; align-items: flex-start; }

    /* 2.9. Страницы документов (политики) */
    .doc-page { padding: 40px 0 60px; }
    .doc-page__header { margin-bottom: 28px; padding-bottom: 18px; }
    .doc-page__header h1 { font-size: 22px; }
    .doc-page__header p { font-size: 14px; }
    .doc-page__content { font-size: 14px; line-height: 1.7; }
    .doc-page__content h4 { font-size: 17px; margin: 28px 0 12px; }
    .doc-page__content ul li { padding-left: 22px; }
    .doc-page__content ul li::before { top: 12px; width: 8px; height: 8px; }
    .doc-page__content ol li { padding-left: 28px; }
    .doc-page__content .doc-page__numbered-list li { font-size: 17px; }

    /* 2.10. Хлебные крошки */
    .breadcrumbs {
        font-size: 12px;
        margin-bottom: 16px;
        gap: 6px;
    }

    /* 2.11. Модальное окно */
    .modal {
        padding: 0;
        align-items: flex-end;
    }
    .modal__dialog {
        max-width: 100%;
        border-radius: 20px 20px 0 0;
        padding: 32px 22px 24px;
        max-height: 92vh;
        animation: modalSlideUp 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    }
    @keyframes modalSlideUp {
        from { transform: translateY(100%); }
        to   { transform: translateY(0); }
    }
    .modal__title { font-size: 22px; }
    .modal__close {
        top: 12px;
        right: 12px;
        width: 36px;
        height: 36px;
    }
}

@media (max-width: 640px) {
    .scroll-up {
        right: 16px;
        bottom: 16px;
        width: 42px;
        height: 42px;
        font-size: 14px;
    }
}

@media (max-width: 640px) {
    .error-page {
        padding: 60px 0 80px;
    }
    .error-page__desc {
        font-size: 15px;
        margin-bottom: 28px;
    }
    .error-page__actions {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
        margin-bottom: 36px;
    }
    .error-page__actions .btn {
        width: 100%;
        justify-content: center;
    }
    .error-page__links {
        font-size: 13px;
    }
}