/* =====================================================================
   GEOTESTER v2.0 — theme-responsive.css · адаптив (подключается ПОСЛЕ
   theme.css, поэтому переопределяет его правила на узких экранах).
   Логика: десктоп > 1024px; планшет/мобильный <= 1023.98px — бургер,
   drawer вместо mega-меню, нижняя таб-панель, одна колонка в карточке.
   ===================================================================== */

/* ---------- 1. Крупные экраны: воздух и прогрессивная сетка ---------- */
@media (min-width: 1500px) {
    :root { --g-cont: 1420px; }
    body.g-page { font-size: 16.5px; }
}

@media (max-width: 1239.98px) {
    .g-main-row { gap: 14px; }
    .g-nav__l { padding: 10px 10px; font-size: 14px; }
    .g-search { width: 100%; min-width: 0; }
    .g-mega__wrap { grid-template-columns: minmax(0, 1fr) 262px; gap: 30px; }
    .g-ftr__grid { grid-template-columns: 1.2fr 1.5fr 1fr; }
    .g-ftr__col--contact { grid-column: 1 / -1; }
    .hp-hero__in { gap: 34px; }
}

@media (max-width: 1099.98px) {
    .g-hours, .g-topline { display: none; }
    .g-topline-row { justify-content: flex-end; min-height: 34px; }
    .g-nav__i > .g-nav__l { padding: 9px 8px; }
    .g-tel__s { display: none; }
    .pd__top { grid-template-columns: minmax(0, 1.05fr) minmax(320px, .72fr); gap: 26px; }
}

/* ---------- 2. Мобильная раскладка шапки (<= 1023.98px) ---------- */
@media (max-width: 1023.98px) {
    :root { --g-hdr-h: 60px; }

    .g-cont, .container { padding: 0 16px; }
    .g-body { padding-bottom: 44px; }

    /* служебная строка на мобильных не нужна — всё есть в drawer и футере */
    .g-hdr__top { display: none; }

    .g-main-row {
        grid-template-columns: auto minmax(0, 1fr) auto;
        grid-template-areas: "burger logo tel" "search search search";
        gap: 10px 12px; padding-top: 9px; padding-bottom: 10px; min-height: 0;
    }
    .g-burger { display: block; grid-area: burger; order: 0; }
    .g-logo   { grid-area: logo; justify-self: start; }
    .g-tel    { grid-area: tel; }
    .g-search { grid-area: search; width: 100%; }
    .g-nav, .g-catbtn { display: none; }

    .g-logo img { width: 38px; height: 38px; border-radius: 10px; }
    .g-logo__txt { font-size: 16.5px; }
    .g-logo__txt b { font-size: 9px; margin-top: 2px; }
    .g-tel__n { font-size: 16.5px; }

    /* mega-меню на мобильных выключено: вместо него drawer */
    .g-mega { display: none !important; }

    /* подсказки поиска — во всю ширину экрана */
    .g-suggest { left: 0; right: 0; max-height: 68vh; }

    /* нижняя таб-панель */
    .g-tabbar {
        position: fixed; left: 0; right: 0; bottom: 0; z-index: 890; display: grid;
        grid-template-columns: 1fr 1fr 1.75fr 1fr 1fr;
        padding-bottom: var(--g-safe-b);
        background: rgba(255,255,255,.97); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
        border-top: 1px solid var(--g-line); box-shadow: 0 -6px 22px rgba(14,21,24,.08);
    }
    .g-tab {
        display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
        min-height: var(--g-tab-h); padding: 6px 2px; border: 0; background: transparent;
        color: var(--g-text); font-family: inherit; font-size: 10.5px; font-weight: 700; line-height: 1.15;
        text-align: center; cursor: pointer; -webkit-tap-highlight-color: transparent;
    }
    .g-tab svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.75; }
    .g-tab:active { background: var(--g-brand-l); color: var(--g-brand-d); }
    .g-tab__tel { color: var(--g-brand-d); font-size: 11.5px; letter-spacing: -.02em; white-space: nowrap; }
    body.g-page { padding-bottom: calc(var(--g-tab-h) + var(--g-safe-b)); }

    #g-top { display: none; }
    .g-drawer { width: 100%; }

    /* футер в две колонки */
    .g-ftr { padding-top: 38px; }
    .g-ftr__grid { grid-template-columns: 1fr 1fr; gap: 28px 22px; }
    .g-ftr__col--brand { grid-column: 1 / -1; }
    .g-ftr__bottom { flex-direction: column; align-items: flex-start; gap: 6px; }

    /* главная */
    .hp-hero__in { grid-template-columns: minmax(0, 1fr); gap: 26px; padding-top: 30px; padding-bottom: 36px; }
    .hp-hero__h1 { font-size: clamp(25px, 7.4vw, 34px); }
    .hp-hero__lead { font-size: 15.5px; }
    .hp-stats { gap: 10px 24px; }
    .hp-stats dt { font-size: 21px; }
    .hp-slide img { aspect-ratio: 16 / 11; }
    .hp-adv { padding-top: 24px; }
    .hp-cats, .hp-feat, .hp-about, .hp-partners { padding-top: 38px; }
    .hp-about__in { grid-template-columns: minmax(0, 1fr); gap: 22px; }
    .hp-logos { grid-template-columns: repeat(auto-fill, minmax(132px, 1fr)); gap: 10px; }

    /* заголовки секций */
    .g-secthd { flex-wrap: wrap; align-items: flex-start; gap: 8px; margin-bottom: 18px; }
    .g-secthd__more { font-size: 14px; }

    /* сетки */
    .g-subcats, .g-subcats--main, .g-subcats--wide { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
    .g-subcard__t { padding: 11px 12px 5px; font-size: 13.5px; }
    .g-subcard__d { padding: 0 12px 10px; font-size: 12.5px; }
    .g-subcard__go { padding: 0 12px 12px; font-size: 12px; }

    .g-grid, .g-grid--feat, .g-grid--rel { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
    .pcard__img { aspect-ratio: 1 / 1; }
    .pcard__img img { padding: 8px; }
    .pcard__b { padding: 11px 12px 13px; }
    .pcard__t { font-size: 13.4px; margin-bottom: 6px; }
    .pcard__std { margin-bottom: 7px; font-size: 11px; }
    .pcard__pr { flex-direction: column; align-items: flex-start; gap: 4px; padding-top: 9px; }
    .pcard__pr b { font-size: 15.5px; }
    .pcard__go { font-size: 12px; }

    /* карточка товара в одну колонку */
    .pd__top { grid-template-columns: minmax(0, 1fr); gap: 20px; }
    .pd__side { position: static; }
    .pd__stage { min-height: 0; padding: 10px; border-radius: var(--g-r); }
    .pd__stage img { max-height: 320px; }
    .pd__thumbs { gap: 8px; margin-top: 9px; }
    .pd__thumb { width: 68px; height: 68px; }
    .pd__card { padding: 18px; border-radius: var(--g-r); }
    .pd__h1 { font-size: 21px; }
    .pd__price b { font-size: 25px; }
    .pd__tabs { margin-top: 26px; border-radius: var(--g-r); }
    .pd__tab { padding: 15px 17px; font-size: 14px; }
    .pd__panel { padding: 20px 16px 24px; }
    .pd__rel { padding-top: 34px; }

    /* липкая панель заказа над таб-панелью */
    .pd-buybar {
        position: fixed; left: 0; right: 0; bottom: calc(var(--g-tab-h) + var(--g-safe-b)); z-index: 885;
        display: grid; grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); gap: 9px; align-items: center;
        padding: 9px 12px; background: rgba(255,255,255,.97);
        -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
        border-top: 1px solid var(--g-line); box-shadow: 0 -6px 20px rgba(14,21,24,.1);
        transform: translateY(130%); transition: transform .26s var(--g-ease);
    }
    .pd-buybar.is-on { transform: none; }
    body.g-has-buybar { padding-bottom: calc(var(--g-tab-h) + 74px + var(--g-safe-b)); }
    .pd-buybar__pr { display: flex; flex-direction: column; line-height: 1.15; min-width: 0; }
    .pd-buybar__pr b { font-size: 16.5px; font-weight: 800; color: var(--g-ink); white-space: nowrap; }
    .pd-buybar__pr span { font-size: 10.5px; color: var(--g-muted); }
    .pd-buybar__btns { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
    .pd-buybar .btn { padding: 12px 8px; font-size: 12.5px; }

    /* галерея */
    .gl-grid { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 12px; }
    .gl-photos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
    .gl-card__b { padding: 12px 13px 14px; }
    .gl-card__t { font-size: 14.5px; }

    /* контакты */
    .ct-hero { padding: 26px 0 44px; }
    .ct-cards { grid-template-columns: minmax(0, 1fr); gap: 12px; margin-top: -30px; }
    .ct-card { padding: 18px; }
    .ct-grid { grid-template-columns: minmax(0, 1fr); gap: 22px; padding-top: 26px; }
    .ct-map, .ct-map iframe, .ct-map > div { min-height: 300px; }

    /* статика */
    .prose { font-size: 15.8px; line-height: 1.68; }
    .g-steps { grid-template-columns: minmax(0, 1fr); }
    .g-seotext { padding: 18px; }
    .ct-requisites { padding: 20px; }

    /* таблицы из админки — горизонтальный скролл без распора экрана */
    .prose table, .ct-requisites table { display: block; overflow-x: auto; white-space: nowrap; -webkit-overflow-scrolling: touch; font-size: 13.5px; }

    /* попапы fancyBox не должны вылезать за экран */
    .fancybox-container { max-width: 100vw; }
}

/* ---------- 3. Компактные телефоны ---------- */
@media (max-width: 767.98px) {
    .g-ftr__grid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .pcard--row { flex-direction: column; }
    .pcard--row .pcard__img { flex: none; width: 100%; aspect-ratio: 16 / 10; border-right: 0; border-bottom: 1px solid var(--g-line); }
}

@media (max-width: 559.98px) {
    .hp-hero__cta { flex-direction: column; align-items: stretch; }
    .hp-hero__cta .btn { width: 100%; }
    .hp-stats { gap: 10px 20px; }
    .g-sortbar { padding: 10px 12px; }
    .g-sort__opt { padding: 9px 12px; font-size: 13px; min-height: 40px; }
    .btn { padding: 14px 20px; }
    .pd__cta .btn, .hp-cta .btn { width: 100%; }
}

@media (max-width: 479.98px) {
    .g-grid, .g-grid--feat, .g-grid--rel { grid-template-columns: minmax(0, 1fr); }
    .pcard { flex-direction: row; }
    .pcard__img { flex: 0 0 42%; aspect-ratio: 1 / 1; }
    .pcard__t { font-size: 14.5px; }
    .g-subcats, .g-subcats--main, .g-subcats--wide { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gl-photos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 419.98px) {
    .g-logo__txt b { display: none; }
    .g-tel { display: none; }              /* звонок — в таб-панели */
    .g-main-row { grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "burger logo" "search search"; }
    .g-tab { font-size: 9.6px; }
    .g-tab__tel { font-size: 10.6px; }
    .pcard { flex-direction: column; }
    .pcard__img { flex: none; width: 100%; aspect-ratio: 4 / 3; }
}

/* ---------- 4. Тач-устройства: крупные зоны нажатия, отключены ховер-сдвиги ---------- */
@media (hover: none) {
    .g-subcard:hover, .pcard:hover, .gl-card:hover { transform: none; }
    .btn:hover { transform: none; }
}

@media (pointer: coarse) {
    .g-nav__sl, .g-cat__l { padding-top: 11px; padding-bottom: 11px; }
    .g-drawer .g-cat__l { padding-top: 12px; padding-bottom: 12px; font-size: 15.5px; }
    .g-drw-t { width: 44px; height: 40px; }
}

/* ---------- 5. Печать/алые экраны ---------- */
@media (max-width: 1023.98px) {
    @media print {
        .g-tabbar, .pd-buybar { display: none !important; }
        body.g-page { padding-bottom: 0 !important; }
    }
}

/* Высокие планшеты в ландшафте: таб-панель не нужна на широких экранах */
@media (max-height: 480px) and (orientation: landscape) {
    .pd-buybar { bottom: calc(var(--g-tab-h) + var(--g-safe-b)); }
}

/* ---------- 6. v2.2: панель заказа, чат, галерея, футер на мобильном ---------- */
@media (max-width: 1023.98px) {
    .pd-buybar { grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr); gap: 8px; padding: 8px 10px; }
    .pd-buybar__btns { grid-template-columns: 1fr 1fr; gap: 7px; }
    .pd-buybar .btn { padding: 12px 6px; font-size: 11.8px; letter-spacing: -.02em; min-width: 0; }
    /* белая кнопка «Позвонить» на белой панели нечитабельна — фирменный цвет */
    .pd-buybar .btn--call { background: var(--g-brand); border-color: transparent; color: #fff; }

    .gl-card__t { font-size: 14.2px; }
    .gl-card__d { font-size: 12.5px; }
    .gl-card__b { padding: 11px 12px 13px; }
    .gl h1 { font-size: clamp(22px, 6vw, 30px); }

    .g-ftr__col--cats .g-cat { columns: 1; }
    .g-ftr__grid { gap: 24px 20px; }
    .g-logo img { height: 34px; }

    .hp-hero .g-kicker { font-size: 10.5px; padding: 5px 11px; letter-spacing: .05em; }
    .hp-hero__h1 { text-wrap: balance; }

    .pd__cta .btn { min-height: 48px; font-size: 14.5px; }
    .pd__cta .btn--call b { letter-spacing: -.02em; }
}

@media (max-width: 419.98px) {
    .pd__cta .btn { font-size: 13.6px; padding: 13px 12px; }
    .pd-buybar .btn { font-size: 11.2px; }
}
