/*
Theme Name: Kadence Child
Template: kadence
*/

/* ============================================
   HERO (главная) — на всю ширину экрана
   ============================================ */

/* Растягиваем секцию с классом hero-fullwidth на 100vw */
.hero-fullwidth {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    box-sizing: border-box !important;
}

/* Внутренний контейнер Hero ограничиваем 1200px и центрируем */
.hero-fullwidth .kt-row-column-wrap,
.hero-fullwidth .kb-theme-content-width,
.hero-fullwidth > .kt-row-layout-inner {
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    box-sizing: border-box !important;
}

/* ============================================
   ГЛАВНАЯ — убираем боковые padding контейнера,
   чтобы Hero мог растянуться на 100vw
   ============================================ */
.home .entry-content-wrap,
.page-id-68 .entry-content-wrap {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* ============================================
   КАТАЛОГ ПРОДУКЦИИ — выравнивание высоты плиток
   Применяется ТОЛЬКО к Row Layout с классом catalog-grid
   ============================================ */

/* Колонки Row Layout растягиваются до одинаковой высоты */
.catalog-grid .kt-row-column-wrap {
    align-items: stretch !important;
}

/* Внутри колонки — flex-контейнер с равномерным распределением плиток */
.catalog-grid .kt-inside-inner-col {
    display: flex !important;
    flex-direction: column;
    gap: 24px;
    height: 100%;
}

/* Плитки каталога — занимают всю доступную высоту колонки */
.catalog-grid .kt-inside-inner-col > .wp-block-kadence-infobox {
    flex: 1;
    display: flex !important;
    flex-direction: column;
    justify-content: center;
    min-height: 260px;
}

/* ============================================
   УСЛУГИ — выравнивание высоты плиток
   Применяется к Row Layout с классом services-grid
   ============================================ */
.services-grid .kt-row-column-wrap {
    align-items: stretch !important;
}
.services-grid .kt-inside-inner-col {
    display: flex !important;
    flex-direction: column;
    height: 100%;
}
.services-grid .kt-inside-inner-col > .wp-block-kadence-infobox {
    flex: 1;
    display: flex !important;
    flex-direction: column;
    justify-content: center;
    min-height: 240px;
}

/* ============================================
   ПРЕИМУЩЕСТВА — выравнивание высоты плиток
   Применяется к Row Layout с классом advantages-tiles
   ============================================ */
.advantages-tiles .kt-row-column-wrap {
    align-items: stretch !important;
}
.advantages-tiles .kt-inside-inner-col {
    display: flex !important;
    flex-direction: column;
    height: 100%;
}
.advantages-tiles .kt-inside-inner-col > .wp-block-kadence-infobox {
    flex: 1;
    display: flex !important;
    flex-direction: column;
    justify-content: center;
    min-height: 240px;
}

/* ============================================
   ПРЕИМУЩЕСТВА — центрирование второго ряда
   (7 плиток = 4 + 3, второй ряд шириной 75%)
   ============================================ */
.advantages-row-bottom {
    max-width: 75% !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* ============================================
   СЕКЦИЯ «МИССИЯ» (главная)
   ============================================ */

/* Убираем белые полосы между full-width секциями.
   Применяется ко всем Row Layout с классом hero-fullwidth. */
.hero-fullwidth {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* Оверлайн «Наша миссия» — uppercase, letter-spacing, мельче */
.mission-overline {
    font-size: 14px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 2px !important;
    margin-bottom: 12px !important;
}

/* Основной текст миссии — ограничиваем ширину для читаемости */
.mission-text {
    max-width: 720px;
    margin-left: auto !important;
    margin-right: auto !important;
    line-height: 1.6;
}

/* Убираем вертикальный padding контейнера контента на главной,
   чтобы full-width секции стыковались встык */
.home .entry-content-wrap {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* Гасим вертикальные отступы между всеми секциями на главной,
   чтобы full-width зоны стыковались встык */
.home .wp-block-kadence-rowlayout {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* Убираем margin-top у #primary на главной (создавал полосу под шапкой над Hero) */
.home #primary {
    margin-top: 0 !important;
}

/* Компенсируем — даём Hero внутренний верхний padding,
   чтобы H1 не лип к шапке */
.hero-fullwidth > .kt-row-column-wrap {
    padding-top: 40px !important;
}

/* ===========================================================
   CONTACTS PAGE  (/contacts/)
   Добавить в конец style.css
   =========================================================== */

/* Прижать Hero встык под шапку (логика как на главной) */


/* ---------- HERO ---------- */
.contacts-hero {
    background: #2D3748;
    color: #fff;
    text-align: center;
}

.contacts-hero__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 60px 20px;
}

.contacts-hero__title {
    color: #fff;
    font-size: 48px;
    margin: 0 0 16px;
    line-height: 1.2;
}

.contacts-hero__subtitle {
    color: #A0AEC0;
    font-size: 18px;
    margin: 0;
}

/* ---------- ОСНОВНОЙ БЛОК (контакты + форма) ---------- */
.contacts-main {
    background: #fff;
    padding: 80px 0;
}

.contacts-main__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

.contacts-main__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: start;
}

/* ---------- ЛЕВАЯ КОЛОНКА: КОНТАКТЫ ---------- */
.contacts-info {
    display: flex;
    flex-direction: column;
    gap: 28px;
}

.contacts-info__item {
    display: flex;
    gap: 16px;
    align-items: flex-start;
}

.contacts-info__icon {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    color: #2b6cb0;
    margin-top: 2px;
}

.contacts-info__icon svg {
    width: 100%;
    height: 100%;
}

.contacts-info__content {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.contacts-info__label {
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #718096;
    margin-bottom: 4px;
    font-weight: 600;
}

.contacts-info__link {
    color: #2D3748;
    text-decoration: none;
    font-size: 17px;
    transition: color 0.2s;
    display: inline-block;
}

.contacts-info__link:hover {
    color: #2b6cb0;
}

.contacts-info__text {
    color: #4A5568;
    font-size: 16px;
    margin: 0;
    line-height: 1.5;
}

.contacts-info__phone-row {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.contacts-info__messenger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    color: #2b6cb0;
    transition: color 0.2s, transform 0.2s;
}

.contacts-info__messenger:hover {
    color: #1d4f8b;
    transform: scale(1.1);
}

.contacts-info__messenger svg {
    width: 100%;
    height: 100%;
}

/* ---------- УВЕДОМЛЕНИЕ ПРО САМОВЫВОЗ ---------- */
.contacts-notice {
    display: flex;
    gap: 14px;
    background: #FFF8E1;
    border-left: 4px solid #F6AD55;
    padding: 16px 18px;
    border-radius: 4px;
    margin-top: 12px;
}

.contacts-notice__icon {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    color: #C05621;
    margin-top: 2px;
}

.contacts-notice__icon svg {
    width: 100%;
    height: 100%;
}

.contacts-notice__text {
    color: #4A5568;
    font-size: 15px;
    line-height: 1.5;
}

.contacts-notice__text strong {
    color: #2D3748;
    display: block;
    margin-bottom: 4px;
}

/* ---------- ПРАВАЯ КОЛОНКА: ФОРМА ---------- */
.contacts-form {
    background: #F7FAFC;
    padding: 36px;
    border-radius: 8px;
}

.contacts-form__title {
    margin: 0 0 8px;
    color: #2D3748;
    font-size: 26px;
}

.contacts-form__subtitle {
    margin: 0 0 24px;
    color: #718096;
    font-size: 15px;
}

/* CF7 поля внутри инлайн-формы (изолировано префиксом .contacts-form) */
.contacts-form .wpcf7-form p {
    margin-bottom: 16px;
}

.contacts-form .wpcf7-form-control:not([type="submit"]):not([type="checkbox"]):not([type="radio"]) {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid #E2E8F0;
    border-radius: 4px;
    font-size: 15px;
    background: #fff;
    transition: border-color 0.2s;
    box-sizing: border-box;
    font-family: inherit;
}

.contacts-form .wpcf7-form-control:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):focus {
    outline: none;
    border-color: #2b6cb0;
}

.contacts-form textarea.wpcf7-form-control {
    min-height: 120px;
    resize: vertical;
}

.contacts-form .wpcf7-submit {
    background: #2b6cb0;
    color: #fff;
    border: none;
    padding: 14px 32px;
    font-size: 16px;
    font-weight: 600;
    border-radius: 4px;
    cursor: pointer;
    transition: background 0.2s;
    font-family: inherit;
}

.contacts-form .wpcf7-submit:hover {
    background: #1d4f8b;
}

/* ---------- КАРТА ---------- */
.contacts-map {
    background: #F7FAFC;
    padding: 60px 0;
}

.contacts-map__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

.contacts-map__wrap {
    position: relative;
    line-height: 0;
}

.contacts-map iframe {
    display: block;
    width: 100%;
    border: 0;
}

/* Overlay-блокер скролла */
.contacts-map__overlay {
    position: absolute;
    inset: 0;
    background: transparent;
    cursor: pointer;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s;
}

.contacts-map__overlay:hover {
    background: rgba(45, 55, 72, 0.15);
}

.contacts-map__overlay.is-hidden {
    display: none;
}

.contacts-map__hint {
    background: rgba(45, 55, 72, 0.9);
    color: #fff;
    padding: 12px 24px;
    border-radius: 4px;
    font-size: 15px;
    font-weight: 500;
    opacity: 0;
    transition: opacity 0.2s;
    pointer-events: none;
    line-height: 1.4;
}

.contacts-map__overlay:hover .contacts-map__hint {
    opacity: 1;
}

/* ---------- АДАПТИВ ---------- */
@media (max-width: 900px) {
    .contacts-main__grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    .contacts-hero__title {
        font-size: 36px;
    }
    .contacts-hero__inner {
        padding: 40px 20px;
    }
    .contacts-main {
        padding: 50px 0;
    }
    .contacts-form {
        padding: 24px;
    }
}

@media (max-width: 600px) {
    .contacts-hero__title {
        font-size: 30px;
    }
    .contacts-hero__subtitle {
        font-size: 16px;
    }
    .contacts-form__title {
        font-size: 22px;
    }
    .contacts-map {
    padding: 40px 0;

}
}

/* ===========================================================
   404 PAGE  (error-page)
   Добавить в конец style.css
   =========================================================== */

/* Прижать Hero встык под шапку */
.error-page {
    margin-top: -80px !important;
}

/* ---------- HERO с числом 404 ---------- */
.error-hero {
    background: #2D3748;
    color: #fff;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.error-hero__inner {
    max-width: 800px;
    margin: 0 auto;
    padding: 140px 20px 80px;
    position: relative;
    z-index: 1;
}

/* Огромное декоративное "404" */
.error-hero__number {
    font-size: 180px;
    font-weight: 800;
    line-height: 1;
    color: rgba(255, 255, 255, 0.08);
    letter-spacing: -0.05em;
    margin-bottom: 0;
    user-select: none;
}

.error-hero__title {
    color: #fff;
    font-size: 42px;
    margin: -40px 0 20px;
    line-height: 1.2;
    position: relative;
    z-index: 2;
}

.error-hero__subtitle {
    color: #A0AEC0;
    font-size: 17px;
    line-height: 1.6;
    margin: 0 0 36px;
}

.error-hero__buttons {
    display: flex;
    gap: 14px;
    justify-content: center;
    flex-wrap: wrap;
}

/* ---------- Кнопки на 404 ---------- */
.error-btn {
    display: inline-block;
    padding: 14px 32px;
    font-size: 16px;
    font-weight: 600;
    border-radius: 4px;
    text-decoration: none;
    transition: background 0.2s, color 0.2s, border-color 0.2s;
    border: 2px solid transparent;
    line-height: 1.2;
}

.error-btn--primary {
    background: #2b6cb0;
    color: #fff;
    border-color: #2b6cb0;
}

.error-btn--primary:hover {
    background: #1d4f8b;
    border-color: #1d4f8b;
    color: #fff;
}

.error-btn--outline {
    background: transparent;
    color: #fff;
    border-color: rgba(255, 255, 255, 0.3);
}

.error-btn--outline:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: #fff;
    color: #fff;
}

/* ---------- ПОПУЛЯРНЫЕ РАЗДЕЛЫ ---------- */
.error-popular {
    background: #F7FAFC;
    padding: 70px 0 80px;
}

.error-popular__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

.error-popular__title {
    text-align: center;
    color: #2D3748;
    font-size: 28px;
    margin: 0 0 36px;
}

.error-popular__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

.error-popular__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 12px;
    padding: 28px 20px;
    background: #fff;
    border-radius: 8px;
    text-decoration: none;
    color: #2D3748;
    transition: transform 0.2s, box-shadow 0.2s, color 0.2s;
    border: 1px solid #E2E8F0;
}

.error-popular__item:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(45, 55, 72, 0.08);
    color: #2b6cb0;
    border-color: #CBD5E0;
}

.error-popular__icon {
    width: 36px;
    height: 36px;
    color: #2b6cb0;
}

.error-popular__icon svg {
    width: 100%;
    height: 100%;
}

.error-popular__name {
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
}

/* ---------- АДАПТИВ ---------- */
@media (max-width: 900px) {
    .error-hero__number {
        font-size: 130px;
    }
    .error-hero__title {
        font-size: 32px;
        margin-top: -28px;
    }
    .error-hero__inner {
        padding: 120px 20px 60px;
    }
    .error-popular__grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .error-popular {
        padding: 50px 0 60px;
    }
}

@media (max-width: 500px) {
    .error-hero__number {
        font-size: 100px;
    }
    .error-hero__title {
        font-size: 26px;
        margin-top: -20px;
    }
    .error-hero__subtitle {
        font-size: 15px;
    }
    .error-btn {
        padding: 12px 24px;
        font-size: 15px;
    }
    .error-popular__title {
        font-size: 24px;
    }
}


/* ===========================================================
   ХЛЕБНЫЕ КРОШКИ (универсальные)
   =========================================================== */

.rc-breadcrumbs {
    background: #f5f7fa;
    border-bottom: 1px solid #e2e8f0;
    padding: 12px 0;
    font-size: 13px;
}

.rc-breadcrumbs__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
    color: #4a5568;
    line-height: 1.5;
}

.rc-breadcrumbs__link {
    color: #2b6cb0;
    text-decoration: none;
}

.rc-breadcrumbs__link:hover {
    text-decoration: underline;
}

.rc-breadcrumbs__sep {
    color: #a0aec0;
    margin: 0 6px;
}

.rc-breadcrumbs__current {
    color: #718096;
}

@media (max-width: 600px) {
    .rc-breadcrumbs {
        padding: 10px 0;
        font-size: 12px;
    }
    .rc-breadcrumbs__sep {
        margin: 0 4px;
    }
}

/* ===========================================================
   TAXONOMY PAGE  (страница категории /catalog/<slug>/)
   =========================================================== */

/* ---------- HERO ---------- */
.taxonomy-hero {
    background: #2D3748;
    color: #fff;
    text-align: center;
}

.taxonomy-hero__inner {
    max-width: 900px;
    margin: 0 auto;
    padding: 60px 20px;
}

.taxonomy-hero__title {
    color: #fff;
    font-size: 40px;
    margin: 0 0 16px;
    line-height: 1.2;
}

.taxonomy-hero__subtitle {
    color: #A0AEC0;
    font-size: 17px;
    line-height: 1.6;
    margin: 0;
}

/* ---------- СЕТКА КАРТОЧЕК ---------- */
.taxonomy-grid-section {
    padding: 60px 0 70px;
    background: #fff;
}

.taxonomy-grid-section__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

.taxonomy-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.taxonomy-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid #E2E8F0;
    border-radius: 8px;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;
}

.taxonomy-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(45, 55, 72, 0.08);
    border-color: #CBD5E0;
}

.taxonomy-card__img {
    aspect-ratio: 4 / 3;
    background: #F7FAFC;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.taxonomy-card__img img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 14px;
    box-sizing: border-box;
}

.taxonomy-card__no-img {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    color: #A0AEC0;
    font-size: 13px;
    text-align: center;
    padding: 16px;
}

.taxonomy-card__no-img svg {
    width: 40px;
    height: 40px;
}

.taxonomy-card__body {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 18px 20px 20px;
}

.taxonomy-card__title {
    font-size: 17px;
    font-weight: 600;
    color: #2D3748;
    margin: 0 0 8px;
    line-height: 1.3;
}

.taxonomy-card__desc {
    font-size: 14px;
    color: #4A5568;
    margin: 0 0 14px;
    line-height: 1.5;
    flex: 1;
}

.taxonomy-card__more {
    font-size: 14px;
    font-weight: 600;
    color: #2b6cb0;
    align-self: flex-start;
    transition: color 0.2s;
}

.taxonomy-card:hover .taxonomy-card__more {
    color: #1d4f8b;
}

/* ---------- ПУСТАЯ КАТЕГОРИЯ ---------- */
.taxonomy-empty {
    text-align: center;
    padding: 40px 20px;
    color: #718096;
    font-size: 16px;
}

/* ---------- CTA ---------- */
.taxonomy-cta {
    background: #EDF2F7;
    text-align: center;
}

.taxonomy-cta__inner {
    max-width: 720px;
    margin: 0 auto;
    padding: 60px 20px;
}

.taxonomy-cta__title {
    margin: 0 0 12px;
    color: #2D3748;
    font-size: 28px;
    line-height: 1.3;
}

.taxonomy-cta__subtitle {
    margin: 0 0 24px;
    color: #4A5568;
    font-size: 16px;
    line-height: 1.6;
}

.taxonomy-cta__btn {
    display: inline-block;
    padding: 14px 32px;
    background: #2b6cb0;
    color: #fff;
    text-decoration: none;
    border-radius: 4px;
    font-size: 16px;
    font-weight: 600;
    transition: background 0.2s;
}

.taxonomy-cta__btn:hover {
    background: #1d4f8b;
    color: #fff;
}

/* ---------- АДАПТИВ ---------- */
@media (max-width: 900px) {
    .taxonomy-hero__title {
        font-size: 32px;
    }
    .taxonomy-hero__inner {
        padding: 40px 20px;
    }
    .taxonomy-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 18px;
    }
    .taxonomy-grid-section {
        padding: 40px 0 50px;
    }
    .taxonomy-cta__inner {
        padding: 40px 20px;
    }
    .taxonomy-cta__title {
        font-size: 24px;
    }
}

@media (max-width: 600px) {
    .taxonomy-hero__title {
        font-size: 26px;
    }
    .taxonomy-hero__subtitle {
        font-size: 15px;
    }
    .taxonomy-grid {
        grid-template-columns: 1fr;
    }
}


/* ===========================================================
   TAXONOMY CONTENT BLOCK (категория без карточек, с описанием)
   Добавить в конец style.css
   =========================================================== */

.taxonomy-content-section {
    padding: 60px 0 70px;
    background: #fff;
}

.taxonomy-content-section__inner {
    max-width: 880px; /* уже чем сетка карточек, для удобочитаемости текста */
    margin: 0 auto;
    padding: 0 20px;
}

.taxonomy-content {
    color: #2D3748;
    font-size: 16px;
    line-height: 1.75;
}

/* Типографика внутри описания категории */
.taxonomy-content h2 {
    color: #2D3748;
    font-size: 28px;
    margin: 36px 0 16px;
    line-height: 1.3;
}

.taxonomy-content h3 {
    color: #2D3748;
    font-size: 22px;
    margin: 28px 0 12px;
    line-height: 1.3;
}

.taxonomy-content h4 {
    color: #2D3748;
    font-size: 18px;
    margin: 24px 0 10px;
    line-height: 1.3;
}

.taxonomy-content p {
    margin: 0 0 16px;
}

.taxonomy-content p:first-child {
    margin-top: 0;
}

.taxonomy-content p:last-child {
    margin-bottom: 0;
}

.taxonomy-content ul,
.taxonomy-content ol {
    margin: 0 0 16px;
    padding-left: 24px;
}

.taxonomy-content li {
    margin-bottom: 8px;
}

.taxonomy-content img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    margin: 16px 0;
    display: block;
}

.taxonomy-content a {
    color: #2b6cb0;
    text-decoration: underline;
}

.taxonomy-content a:hover {
    color: #1d4f8b;
}

.taxonomy-content table {
    width: 100%;
    border-collapse: collapse;
    margin: 16px 0;
    font-size: 14px;
}

.taxonomy-content table th,
.taxonomy-content table td {
    border: 1px solid #E2E8F0;
    padding: 10px 14px;
    text-align: left;
}

.taxonomy-content table th {
    background: #F7FAFC;
    font-weight: 600;
}

.taxonomy-content blockquote {
    margin: 20px 0;
    padding: 16px 20px;
    border-left: 4px solid #2b6cb0;
    background: #F7FAFC;
    font-style: italic;
    color: #4A5568;
}

@media (max-width: 900px) {
    .taxonomy-content-section {
        padding: 40px 0 50px;
    }
    .taxonomy-content {
        font-size: 15px;
    }
    .taxonomy-content h2 {
        font-size: 24px;
    }
    .taxonomy-content h3 {
        font-size: 20px;
    }
}

/* === Контентные секции на страницах категорий (лонгрид) === */
.cat-section {
    padding: 60px 0;
    border-bottom: 1px solid #EDF2F7;
}
.cat-section:last-child {
    border-bottom: 0;
}
.cat-section__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 50px;
    align-items: center;
    max-width: 1200px;
    margin: 0 auto;
}
.cat-section--reverse .cat-section__media {
    order: -1;
}
.cat-section__text h2 {
    font-size: 28px;
    color: #2D3748;
    margin: 0 0 20px;
    line-height: 1.3;
}
.cat-section__text h3 {
    font-size: 18px;
    color: #2D3748;
    margin: 24px 0 10px;
}
.cat-section__text p {
    color: #4A5568;
    line-height: 1.7;
    margin: 0 0 14px;
}
.cat-section__text ul {
    color: #4A5568;
    line-height: 1.7;
    padding-left: 22px;
    margin: 0 0 14px;
}
.cat-section__text li {
    margin-bottom: 6px;
}
.cat-section__media img {
    width: 100%;
    height: auto;
    border-radius: 12px;
    box-shadow: 0 6px 24px rgba(0,0,0,0.08);
    display: block;
}
@media (max-width: 768px) {
    .cat-section {
        padding: 40px 0;
    }
    .cat-section__inner {
        grid-template-columns: 1fr;
        gap: 30px;
    }
    .cat-section__media {
        order: -1; /* фото всегда сверху на мобилке */
    }
    .cat-section--reverse .cat-section__media {
        order: -1; /* подтверждаем для reverse */
    }
    .cat-section__text h2 {
        font-size: 24px;
    }
}

/* === CF7 Acceptance (privacy checkbox) === */
.wpcf7-form .form-acceptance {
    margin: 18px 0 8px;
}

.wpcf7-form .wpcf7-acceptance {
    display: block;
}

.wpcf7-form .wpcf7-acceptance .wpcf7-list-item {
    margin: 0;
    display: block;
}

.wpcf7-form .wpcf7-acceptance label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    cursor: pointer;
    font-size: 14px;
    line-height: 1.5;
    color: #4A5568;
    user-select: none;
}

.wpcf7-form .wpcf7-acceptance input[type="checkbox"] {
    margin: 3px 0 0 0;
    flex-shrink: 0;
    cursor: pointer;
    width: 16px;
    height: 16px;
    accent-color: #2b6cb0;
}

.wpcf7-form .wpcf7-acceptance .wpcf7-list-item-label {
    flex: 1;
}

.wpcf7-form .wpcf7-acceptance a {
    color: #2b6cb0;
    text-decoration: underline;
}

.wpcf7-form .wpcf7-acceptance a:hover {
    color: #1d4f8b;
}

/* Заблокированная кнопка submit, пока чекбокс не отмечен */
.wpcf7-form input[type="submit"]:disabled,
.wpcf7-form button[type="submit"]:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
}

/* В попапе чуть компактнее */
.modal .wpcf7-form .wpcf7-acceptance label {
    font-size: 13px;
}


/* ==========================================================
 * === HERO with NMRV photo (added v3.9, scoped v3.10) ===
 * Селектор привязан к конкретному блоку id=68 на главной,
 * чтобы фотка не появлялась в других .hero-fullwidth блоках
 * ========================================================== */

/* Десктоп: фотка справа, текст слева 55% */
@media (min-width: 1025px) {

    .kb-row-layout-id68_c0f0e5-95 {
        position: relative;
        overflow: hidden;
    }

    /* Radial spotlight за фоткой */
    /* Spotlight — позиционируется от центра viewport влево/вправо
       так фотка попадает в правую часть inner-container, а не к краю экрана */
    .kb-row-layout-id68_c0f0e5-95::before {
        content: '';
        position: absolute;
		top: 50%;
        left: 50%;
        transform: translate(0, -50%);
        margin-left: clamp(-40px, 4vw, 60px); /* сдвиг от центра вправо */
        width: clamp(420px, 42vw, 640px);
        height: clamp(420px, 42vw, 640px);
        background: radial-gradient(
            circle,
            rgba(140, 180, 230, 0.28) 0%,
            rgba(140, 180, 230, 0.10) 35%,
            transparent 70%
        );
        z-index: 0;
        pointer-events: none;
    }

    /* Фотка — то же самое, но с меньшим смещением */
    .kb-row-layout-id68_c0f0e5-95::after {
        content: '';
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(
            calc(0px + var(--photo-x, 0px)),
            calc(-50% + var(--photo-y, 0px))
        );
        transition: transform 0.05s linear;
        margin-left: clamp(0px, 6vw, 100px); /* фотка чуть правее spotlight */
        width: clamp(360px, 36vw, 540px);
        height: clamp(360px, 36vw, 540px);
        background: url('images/nmrv-hero.png') no-repeat center center;
        background-size: contain;
        z-index: 1;
        pointer-events: none;
    }

    /* Сжимаем текст до 55% и прижимаем влево */
    .kb-row-layout-id68_c0f0e5-95 .kt-inside-inner-col {
        max-width: 55% !important;
        margin-left: 0 !important;
        margin-right: auto !important;
        position: relative;
        z-index: 2;
    }
}

/* === Float-fallback (мобила, тач, reduced-motion) ===
 * Срабатывает, когда JS-режим spotlight-tracking НЕ активен:
 * - на тач-устройствах (mouse-tracking невозможен)
 * - при prefers-reduced-motion → JS сам не запускается
 * - на ширине <1025px → JS сам не запускается
 *
 * Логика: если у hero нет класса .hero-spotlight-active,
 * запускаем медленную CSS-анимацию покачивания фотки.
 */
@media (min-width: 1025px) {
    .kb-row-layout-id68_c0f0e5-95:not(.hero-spotlight-active)::after {
        animation: heroFloat 6s ease-in-out infinite;
    }
}

@media (prefers-reduced-motion: reduce) {
    .kb-row-layout-id68_c0f0e5-95::after {
        animation: none !important;
    }
}

@keyframes heroFloat {
    0%, 100% { transform: translate(0, calc(-50% - 4px)); }
    50%      { transform: translate(0, calc(-50% + 4px)); }
}

/* Планшет */
@media (min-width: 768px) and (max-width: 1024px) {

    .kb-row-layout-id68_c0f0e5-95 {
        position: relative;
        overflow: hidden;
    }

    .kb-row-layout-id68_c0f0e5-95::after {
        content: '';
        position: absolute;
        top: 50%;
        right: 2%;
        transform: translateY(-50%);
        width: 320px;
        height: 320px;
        background: url('images/nmrv-hero.png') no-repeat center center;
        background-size: contain;
        opacity: 0.55;
        z-index: 0;
        pointer-events: none;
    }

    .kb-row-layout-id68_c0f0e5-95 .kt-inside-inner-col {
        max-width: 55% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: clamp(20px, 4vw, 60px) !important;
        position: relative;
        z-index: 2;
    }

    /* Перенос мотор-редукторов одним словом */
    .kb-row-layout-id68_c0f0e5-95 h1 {
        word-break: keep-all;
        hyphens: none;
    }
}
/* ==========================================================
 * === Page depth — финальная компоновка (v5.8) ===
 * Тени между секциями убраны — они не решали проблему "плоских блоков"
 * и плохо читались на голубом фоне.
 * Footer fix оставляем — он реально нужен.
 * ========================================================== */

/* Убираем светлую полосу перед футером */
.content-area {
    margin-bottom: 0 !important;
}

/* ==========================================================
 * === Page colors — глобальный фон + явные фоны секций (v5.9) ===
 * До этого body был голубой, прозрачные секции его наследовали,
 * получалось два фона внутри одной "О компании".
 * Делаем body белым по умолчанию и красим секции явно.
 * ========================================================== */

/* Глобальный фон страницы — белый */
body {
    background-color: #ffffff !important;
}

/* Явные фоны секций (по ID Kadence row), которые сейчас прозрачные */

/* О компании — белый (как ты выбрал в Уровне 2) */
.kb-row-layout-id68_3f7f77-0b {
    background-color: #ffffff;
}

/* Почему выбирают нас — голубой */
.kb-row-layout-id68_707dac-ef {
    background-color: #F7FAFC;
}

/* Опытная команда профессионалов — белый */
.kb-row-layout-id68_2da865-09 {
    background-color: #ffffff;
}


/* ==========================================================
 * === About section stats (v5.11) ===
 * Кастомный блок цифр для секции "О компании".
 * Заменяет три Info Box (часы/грузовик/щит).
 * ========================================================== */

.redcond-about-stats {
    display: flex;
    flex-direction: column;
    max-width: 380px;
    margin-left: auto;
    margin-right: 40px;
}

.redcond-stat {
    padding: 22px 0;
    border-bottom: 1px solid #EDF2F7;
}

.redcond-stat:last-child {
    border-bottom: none;
}

.redcond-stat__row {
    display: flex;
    align-items: baseline;
    gap: 14px;
    margin-bottom: 6px;
}

.redcond-stat__num {
    font-size: 56px;
    font-weight: 700;
    color: #2563EB;
    line-height: 1;
    font-feature-settings: 'tnum';
}

.redcond-stat__sup {
    font-size: 32px;
    vertical-align: top;
    margin-left: 2px;
}

.redcond-stat__unit {
    font-size: 13px;
    color: #718096;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 500;
}

.redcond-stat__desc {
    font-size: 14px;
    color: #4A5568;
    line-height: 1.5;

}

/* Мобила: текст и цифры стэком, цифры остаются крупными */
@media (max-width: 767px) {
    .redcond-about-stats {
        margin-top: 24px;
    }
}

/* === Чертежи внутри вкладок карточки продукта === */
.product-tabs__content a.glightbox {
    display: block;
    line-height: 0;
    cursor: zoom-in;
    margin: 1.5em auto;
    max-width: 900px;
}
.product-tabs__content a.glightbox img {
    width: 100%;
    height: auto;
    display: block;
}
/* На случай если wpautop обернул в <p> — даём ему растянуться */
.product-tabs__content p:has(> a.glightbox) {
    text-align: center;
    margin-left: 0;
    margin-right: 0;
}

/* === Fade-индикатор скролла для таблиц во вкладках === */
@media (max-width: 900px) {
    .product-tabs__content .table-scroll {
        background:
            linear-gradient(to right, #fff 30%, rgba(255,255,255,0)) left center / 20px 100% no-repeat,
            linear-gradient(to left, #fff 30%, rgba(255,255,255,0)) right center / 20px 100% no-repeat,
            radial-gradient(ellipse at left, rgba(0,0,0,0.08), transparent 70%) left center / 14px 100% no-repeat,
            radial-gradient(ellipse at right, rgba(0,0,0,0.08), transparent 70%) right center / 14px 100% no-repeat;
        background-attachment: local, local, scroll, scroll;
    }
}

/* === Галерея «Примеры наших изделий» на страницах услуг === */
.service-gallery {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin: 1.2em 0 1.8em;
}
.service-gallery br { display: none; }
.service-gallery a.glightbox {
    display: block;
    line-height: 0;
    border: 1px solid #e2e6ea;
    border-radius: 8px;
    overflow: hidden;
    cursor: zoom-in;
    background: #fff;
    transition: box-shadow .18s ease, transform .18s ease;
}
.service-gallery a.glightbox:hover {
    box-shadow: 0 6px 20px rgba(0,0,0,.12);
    transform: translateY(-2px);
}
.service-gallery a.glightbox img {
    width: 100%;
    height: 200px;
    object-fit: contain;
    padding: 10px;
    display: block;
}
/* На мобиле — в одну колонку, высота по содержимому */
@media (max-width: 560px) {
    .service-gallery {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin: 1.2em 0 1.8em;
}
    .service-gallery a.glightbox img {
        height: auto;
    }
}

/* === Таблицы характеристик и картинки на страницах категорий === */
.cat-table-scroll {
  overflow-x: auto;
  margin: 1.5em 0;
  -webkit-overflow-scrolling: touch;
}
.cat-spec-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.92em;
  min-width: 720px;
}
.cat-spec-table th,
.cat-spec-table td {
  border: 1px solid #d0d7de;
  padding: 8px 10px;
  text-align: center;
  vertical-align: middle;
}
.cat-spec-table thead th {
  background: #f1f4f8;
  font-weight: 600;
}
.cat-spec-table tbody td:first-child {
  font-weight: 600;
  background: #fafbfc;
  white-space: nowrap;
}
.cat-spec-table small {
  display: block;
  font-weight: 400;
  font-size: 0.82em;
  color: #555;
  margin-top: 3px;
}
.taxonomy-content .cat-content-img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 1.5em auto;
  cursor: zoom-in;
}
.taxonomy-content .cat-content-img--photo {
  max-width: 380px;
}
.taxonomy-content .cat-photo-wrap {
  text-align: center;
  margin: 1.5em 0;
}


/* hover-подсветка строк (единый стиль с карточками) */
.cat-spec-table tbody tr:hover td {
  background: #eaf2fb;
}
/* строки-разделители групп (n1 = 2800/1400/900 об/мин) */
.cat-spec-table tbody tr.cat-spec-table__group td {
  background: #dde3ea;
  font-weight: 600;
  color: #2D3748;
}
.cat-spec-table tbody tr.cat-spec-table__group:hover td {
  background: #dde3ea;  /* разделитель не подсвечиваем */
}

/* галерея фото в линию */
.taxonomy-content .cat-gallery-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 1.5em 0;
}
.taxonomy-content .cat-gallery-row a {
  flex: 1 1 0;
  min-width: 150px;
}
.taxonomy-content .cat-gallery-row img {
  width: 100%;
  height: 190px;
  object-fit: cover;
  border-radius: 8px;
  cursor: zoom-in;
  display: block;
}
@media (max-width: 560px) {
  .taxonomy-content .cat-gallery-row a { flex: 1 1 45%; }
}

.taxonomy-content .cat-content-img--natural {
  max-width: 624px;
  cursor: default;
}

/* === Пронумерованные секции на страницах услуг === */
.service-block {
  padding: 12px 0 32px;
}
.service-block + .service-block {
  margin-top: 24px;
}
.service-block__head {
  display: flex;
  align-items: baseline;
  gap: 22px;
  margin: 0 0 22px;
  padding-bottom: 18px;
  border-bottom: 1px solid #e2e8f0;
}
.service-block__num {
  font-size: 64px;
  line-height: 1;
  font-weight: 700;
  color: #cbd5e0;
  letter-spacing: -0.02em;
  flex-shrink: 0;
}
.service-block__title {
  font-size: 1.6em;
  line-height: 1.25;
  margin: 0;
}
/* галерея плат — декоративные тонкие линии сверху/снизу как разделитель секций */
.service-gallery {
  border-top: 1px dashed #cbd5e0;
  border-bottom: 1px dashed #cbd5e0;
  padding: 24px 0;
  margin: 24px 0;
}

@media (max-width: 560px) {
  .service-block__head {
    gap: 14px;
    flex-wrap: wrap;
  }
  .service-block__num {
    font-size: 44px;
  }
  .service-block__title {
    font-size: 1.3em;
  }
}


/* === Миниатюры чертежей в ряд (для табов карточек товара) === */
.cat-thumbnails-row {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin: 0 0 24px;
}
.cat-thumbnails-row a {
  display: block;
  flex: 0 0 240px;
  cursor: zoom-in;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid #e2e8f0;
  background: #fafbfc;
  text-decoration: none;
  transition: transform .15s, box-shadow .15s;
}
.cat-thumbnails-row a:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 14px rgba(0, 0, 0, .08);
}
.cat-thumbnails-row img {
  display: block;
  width: 100%;
  height: 170px;
  object-fit: contain;
  background: #fff;
  padding: 8px;
  box-sizing: border-box;
}
.cat-thumb-caption {
  display: block;
  font-size: 12px;
  color: #718096;
  padding: 6px 10px 8px;
  text-align: center;
  border-top: 1px solid #f0f3f6;
  background: #fafbfc;
}
@media (max-width: 560px) {
  .cat-thumbnails-row a { flex: 1 1 calc(50% - 7px); }
  .cat-thumbnails-row img { height: 140px; }
}

/* === Миниатюры чертежей в ряд (для табов карточек товара) === */
.cat-thumbnails-row {
  display: flex !important;
  flex-wrap: wrap;
  gap: 14px;
  margin: 0 0 24px;
}
.cat-thumbnails-row a {
  display: block !important;
  flex: 1 1 300px !important;
  max-width: calc(50% - 7px) !important;
  cursor: zoom-in;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid #e2e8f0;
  background: #fafbfc;
  text-decoration: none;
  transition: transform .15s, box-shadow .15s;
}
.cat-thumbnails-row a:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 14px rgba(0, 0, 0, .08);
}
.cat-thumbnails-row a img {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  height: 320px !important;
  max-height: 320px !important;
  object-fit: contain !important;
  background: #fff;
  padding: 12px;
  box-sizing: border-box;
  margin: 0 !important;
}
.cat-thumbnails-row .cat-thumb-caption {
  display: block;
  font-size: 13px;
  color: #718096;
  padding: 8px 10px 10px;
  text-align: center;
  border-top: 1px solid #f0f3f6;
  background: #fafbfc;
}
@media (max-width: 560px) {
  .cat-thumbnails-row a {
    flex: 1 1 100% !important;
    max-width: 100% !important;
  }
  .cat-thumbnails-row a img {
    height: 240px !important;
    max-height: 240px !important;
  }
}

/* ==========================================================
 * === HERO MOBILE: компактизация на узких экранах (v5.29) ===
 * Два брейкпоинта для кнопок:
 *   ≤413px — стопка, обе кнопки 100% ширины
 *   414-767px — кнопки рядом, поровну
 * ========================================================== */

/* --- Общие правила для всех мобил (≤767px) --- */
@media (max-width: 767px) {
    /* Поджимаем вертикальные паддинги hero-row */
    .kb-row-layout-id68_c0f0e5-95 > .kt-row-column-wrap,
    .kb-row-layout-id68_c0f0e5-95 > .kt-row-layout-inner {
        padding-top: 40px !important;
        padding-bottom: 40px !important;
    }

    /* H1: уменьшаем + красивые переносы */
    .kb-row-layout-id68_c0f0e5-95 h1 {
        font-size: 28px !important;
        line-height: 1.2 !important;
        text-wrap: balance;
        word-break: keep-all;
        hyphens: none;
        margin-bottom: 14px !important;
    }

    /* Подзаголовок (параграф под H1) */
    .kb-row-layout-id68_c0f0e5-95 p {
        font-size: 15px !important;
        line-height: 1.5 !important;
        margin-bottom: 20px !important;
    }
}

/* --- Узкие мобилы (≤413px): стопка, обе кнопки 100% --- */
@media (max-width: 413px) {
    .kb-row-layout-id68_c0f0e5-95 .kt-inside-inner-col .kb-buttons-wrap.kb-btns68_38f70a-d1,
    .kb-row-layout-id68_c0f0e5-95 .wp-block-kadence-advancedbtn {
        display: flex !important;
        flex-direction: column !important;
        gap: 10px !important;
        width: 100% !important;
        align-items: stretch !important;
    }

    .kb-row-layout-id68_c0f0e5-95 .kb-buttons-wrap.kb-btns68_38f70a-d1 .wp-block-kadence-singlebtn {
        width: 100% !important;
        flex: 0 0 auto !important;
    }

    .kb-row-layout-id68_c0f0e5-95 .kb-buttons-wrap.kb-btns68_38f70a-d1 .kb-button {
        width: 100% !important;
        padding-left: 18px !important;
        padding-right: 18px !important;
        margin: 0 !important;
        text-align: center !important;
        box-sizing: border-box !important;
    }
}

/* --- Широкие мобилы (414-767px): кнопки рядом, поровну --- */
@media (min-width: 414px) and (max-width: 767px) {
    .kb-row-layout-id68_c0f0e5-95 .kt-inside-inner-col .kb-buttons-wrap.kb-btns68_38f70a-d1,
    .kb-row-layout-id68_c0f0e5-95 .wp-block-kadence-advancedbtn {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        gap: 10px !important;
        width: 100% !important;
        align-items: stretch !important;
    }

    .kb-row-layout-id68_c0f0e5-95 .kb-buttons-wrap.kb-btns68_38f70a-d1 .wp-block-kadence-singlebtn {
        flex: 1 1 0 !important;
        min-width: 0 !important;
    }

    .kb-row-layout-id68_c0f0e5-95 .kb-buttons-wrap.kb-btns68_38f70a-d1 .kb-button {
        width: 100% !important;
        padding-left: 18px !important;
        padding-right: 18px !important;
        margin: 0 !important;
        text-align: center !important;
        box-sizing: border-box !important;
    }

}