/* nd-fixes.css — точечные правки детской темы, подключается на всех страницах.
/* Golos Text — переменный, вес 400-900. Файлы лежат у нас, Google Fonts не используется:
   так быстрее и IP посетителей не уходит на сторону. Скачано 18.09.2026 с Google Fonts
   (лицензия SIL OFL). Четыре подмножества, суммарно 94 КБ. */
@font-face {
    font-family: "Golos Text";
    font-style: normal;
    font-weight: 400 900;
    font-display: swap;
    src: url("../fonts/golos/golos-text-cyrillic.woff2") format("woff2");
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
    font-family: "Golos Text";
    font-style: normal;
    font-weight: 400 900;
    font-display: swap;
    src: url("../fonts/golos/golos-text-cyrillic-ext.woff2") format("woff2");
    unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
    font-family: "Golos Text";
    font-style: normal;
    font-weight: 400 900;
    font-display: swap;
    src: url("../fonts/golos/golos-text-latin.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: "Golos Text";
    font-style: normal;
    font-weight: 400 900;
    font-display: swap;
    src: url("../fonts/golos/golos-text-latin-ext.woff2") format("woff2");
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* Семейство по всему сайту. Перекрываем через !important: Open Sans задан и в теме,
   и в сгенерированном CSS Elementor, который подключается после файлов темы.
   Моноширинный текст (код, цены в таблицах) не трогаем. */
body, button, input, select, textarea,
h1, h2, h3, h4, h5, h6, p, li, td, th, a, span, div, label,
.elementor-heading-title, .elementor-widget-text-editor,
.elementor-slide-heading, .elementor-slide-description, .elementor-slide-button,
.product-name, .product-size {
    font-family: "Golos Text", "Open Sans", system-ui, sans-serif !important;
}
code, pre, kbd, samp { font-family: ui-monospace, SFMono-Regular, Menlo, monospace !important; }


/* ===== Верхний слайдер на мобильном (виджет с классом nd-hero-mobile) ===== */
@media (max-width: 767px) {

    /* Высота кадра = пропорция присланных баннеров 1080×1350, то есть 125vw.
       Почему так, а не «500 точек»: тема навязывает слайдам высоту
       ГОРИЗОНТАЛЬНОГО баннера — `.slider-main-block .swiper-fade .swiper-slide
       {height:28vw !important}` (28 % ширины ≈ 554/1920). Отсюда и брались
       те самые 109 точек, а вовсе не из «Pro 3.27.4 не отдаёт min-height»,
       как я записал 18.09 — диагноз был неверный.
       Селекторы ниже — из четырёх классов: у правил темы их три, при равном
       !important побеждает более частное. */
    .slider-main-block .nd-hero-mobile .elementor-slides-wrapper,
    .slider-main-block .nd-hero-mobile .elementor-slides .swiper-slide,
    .slider-main-block .nd-hero-mobile .elementor-slides .swiper-slide-inner {
        min-height: 0 !important;
        height: calc(100vw * 1.25) !important;
    }

    /* Фон. Тема растягивает его: `.slider-main-block .elementor-slides
       .swiper-slide-bg{background-size:100% 100% !important}`. На баннере
       1920×554 растяжение незаметно, на вертикальном 4:5 круг становится
       овалом. Возвращаем cover; пропорция кадра совпадает с файлом, значит
       ни сжатия, ни обрезки. */
    .slider-main-block .nd-hero-mobile .elementor-slides .swiper-slide-bg {
        background-size: cover !important;
        background-position: center center !important;
    }

    /* Текст прижат к низу кадра — в «тихую зону», под которую нарисованы баннеры.
       !important здесь не украшение: сгенерированный CSS Elementor подключается ПОСЛЕ
       файлов темы, и при равной специфичности выигрывает он. */
    .nd-hero-mobile .swiper-slide-inner {
        display: flex !important;
        align-items: flex-end !important;
        justify-content: flex-start !important;
        padding: 0 !important;
        position: relative;
    }

    /* Затемнение снизу: белый текст читается на любой фотографии. */
    .nd-hero-mobile .swiper-slide-inner::after {
        content: "";
        position: absolute;
        left: 0; right: 0; bottom: 0;
        height: 58%;
        background: linear-gradient(to top, rgba(6,18,38,.92) 18%, rgba(6,18,38,.62) 55%, rgba(6,18,38,0) 100%);
        pointer-events: none;
        z-index: 1;
    }

    .nd-hero-mobile .swiper-slide-contents {
        position: relative;
        z-index: 2;
        max-width: 100% !important;
        width: 100%;
        padding: 0 20px 42px !important;
        text-align: left !important;
    }

    .nd-hero-mobile .elementor-slide-heading {
        color: #fff !important;
        font-size: 25px !important;
        line-height: 1.16 !important;
        font-weight: 800 !important;
        letter-spacing: -.2px !important;
        text-transform: none !important;
        margin-bottom: 7px !important;
    }

    .nd-hero-mobile .elementor-slide-description {
        color: rgba(255,255,255,.86) !important;
        font-size: 14px !important;
        line-height: 1.35 !important;
        margin-bottom: 15px !important;
        text-transform: none !important;
    }

    .nd-hero-mobile .elementor-slide-button {
        display: inline-flex !important;
        align-items: center;
        background: #e4002b !important;
        color: #fff !important;
        border: none !important;
        font-weight: 700 !important;
        font-size: 15px !important;
        padding: 13px 22px !important;
        border-radius: 999px !important;
        text-transform: none !important;
    }

    /* Точки переключения — над затемнением, не под текстом. */
    .nd-hero-mobile .swiper-pagination { bottom: 14px; z-index: 3; }
}

/* ============================================================
   #1255, 19.09.2026. Надпись под баннером и дескриптор в шапке.
   Просьба Вадима: «растянута вплотную к бокам, шрифт другой,
   расстояние между строками другое»; в шапке дескриптор мелкий.
   ============================================================ */
@media (max-width: 768px) {

    /* H1 «Профессиональные средства…» (виджет 1462482 на стр. 696).
       Разрядка 0.9px осталась со времён белого текста поверх фото —
       на белом фоне она читается как чужая гарнитура. Боковых полей
       не было вовсе: строка шла от края до края и ломалась на три. */
    .elementor-element-1462482 .elementor-heading-title {
        font-size: 16px !important;
        line-height: 1.5 !important;
        letter-spacing: 0 !important;
        font-weight: 400 !important;
        color: #6E6E6E !important;
        padding-left: 24px !important;
        padding-right: 24px !important;
    }

    /* Дескриптор рядом с логотипом был 7.5px (new-header.css: 0.47rem) —
       меньше читаемого. Та же фраза стоит в H1 под баннером, поэтому
       на телефоне убираем её вместе с разделителем. Десктоп не трогаем. */
    .new-header__bottom-logo span,
    .new-header__bottom-logo .header-border { display: none !important; }
}


/* ============================================================
   #1255, 19.09.2026. Плавающий бейдж reCAPTCHA.
   Google разрешает его скрывать, если бренд reCAPTCHA виден
   в пользовательском сценарии: строка со ссылками на политику
   и условия добавлена в форму Contact Form 7 №14271.
   Способ скрытия — тот, что Google сам рекомендует в FAQ.
   ============================================================ */
.grecaptcha-badge { visibility: hidden; }

.nd-recaptcha-note {
    margin-top: 12px;
    font-size: 12px;
    line-height: 1.45;
    color: #8A8A8A;
}
.nd-recaptcha-note a { color: #8A8A8A; text-decoration: underline; }
