


/* ====================================================================
   01. ТОКЕНЫ
   ==================================================================== */
:root {
    /* Палитра */
    --color-brand: #003366;
    --color-brand-dark: #002244;
    --color-accent: #45aabc;
    --color-on-brand: #ffffff;
    --color-text: #151517;
    /* Чистый чёрный */
    --color-ink: #000000;
    --color-text-muted: #777778;
    /* На синей подложке */
    --color-error: #ffb4b4;
    /* Примечание под таблицей */
    --color-danger: #e31e24;

    /* Поверхности */
    --color-bg: #ffffff;
    --color-surface: #f5f5f5;
    /* Бирюзовая подложка */
    --color-surface-tint: rgba(69, 170, 188, 0.11);
    /* Темнее подвала */
    --color-surface-tint-strong: rgba(69, 170, 188, 0.2);
    --color-surface-search: #f3fafb;
    --color-border: #e0e0e0;
    /* Полупрозрачные слои */
    --color-glass: rgba(0, 51, 102, 0.7);
    --color-glass-strong: rgba(69, 170, 188, 0.72);
    --color-scrim: rgba(255, 255, 255, 0.49);
    --blur-glass: 3.15px;

    /* Типографика */
    --font-base: 'Open Sans', sans-serif;
    --fs-base: clamp(14px, 1.1vw, 16px);
    --fs-sm: clamp(12px, 1vw, 14px);
    --h1: clamp(24px, 3.5vw, 35px);
    --h2: clamp(22px, 3vw, 32px);
    --lh-base: 1.5;

    /* Раскладка */
    --gap: clamp(16px, 2vw, 28px);
    --container: 1170px;
    --slider-w: 1236px;
    --slider-h: 741px;
    --benefits-w: 1170px;
    --benefits-h: 200px;
    --benefit-card-w: 214px;
    --hero-video-h: clamp(320px, 36vw, 694px);
    --header-top-h: 89px;
    --header-bottom-h: 82px;

    /* По макету */
    --about-left-w: 524px;
    --about-right-w: 606px;
    --about-column-gap: 40px;
    --about-text-w: 488px;
    --about-text-h: 274px;
    --about-image-h: 476px;
    --about-caption-gap: 36px;
    --about-caption-h: 60px;
    --about-monolog-w: 524px;
    --about-monolog-h: 174px;

    /* Радиусы */
    --radius-xs: 8px;
    --radius-sm: 10px;
    --radius: 12px;
    --radius-card: 20px;
    --btn-radius: var(--radius-sm);
    --field-radius: var(--radius-sm);

    /* Кнопки и поля */
    --btn-h: 44px;
    --btn-h-lg: 60px;
    --btn-w-lg: 276px;
    --field-h: 54px;
    --btn-gradient: linear-gradient(272.48deg, var(--color-brand) 0.28%, var(--color-accent) 97.79%);

    /* Эффекты */
    --focus-ring: 0 0 0 3px rgba(69, 170, 188, 0.35);
    --shadow-card: 0 4px 16px rgba(0, 51, 102, 0.08);
    --shadow-modal: 0 20px 60px rgba(0, 34, 68, 0.28);
    --shadow-banner: 0 2px 20px rgba(0, 51, 102, 0.12);
    --transition: 0.2s ease;

    /* Для vesta_privacy_access */
    --vpa-font-family: var(--font-base);
    --vpa-text-color: var(--color-ink);
    --vpa-title-color: var(--color-brand);
    --vpa-link-color: var(--color-brand);
    --vpa-btn-color: var(--color-on-brand);
    --vpa-btn-color-hover: var(--color-on-brand);
    --vpa-btn-bg: var(--color-accent);
    --vpa-btn-bg-hover: var(--color-brand);
    --vpa-btn-brd-color: var(--color-accent);
    --vpa-btn-brd-color-hover: var(--color-brand);
    --vpa-btn-radius: var(--btn-radius);
}


/* ====================================================================
   02. БАЗА
   ==================================================================== */
body {
    margin: 0;
    font-family: var(--font-base);
    font-size: var(--fs-base);
    line-height: var(--lh-base);
    color: var(--color-text);
}

#page {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

#main {
    flex: 1;
}

/* Отступ до подвала */
#main > .wr_content:last-child {
    padding-bottom: clamp(40px, 5vw, 72px);
}

img {
    max-width: 100%;
    height: auto;
}


/* ====================================================================
   03. BOOTSTRAP
   ==================================================================== */

/* Ширина контейнера */
.container {
    max-width: var(--container);
}

/* Место под крестик */
.modal-header {
    padding-right: 4rem;
}

/* Инлайн jQuery UI */
.ui-dialog {
    position: fixed !important;
    top: 50% !important;
    left: 50% !important;
    max-width: calc(100% - 20px);
    max-height: calc(100% - 20px);
    transform: translate(-50%, -50%) !important;
}


/* ====================================================================
   04. ПАТТЕРНЫ
   ==================================================================== */

/* Служебные заголовки: только каталог, на страницах не выводим */
.field--name-field-zagolovok-tovara,
.field--name-field-zagolovok-v-tablice {
    display: none;
}

/* Скрытая подпись */
.header-bottom__search label,
.front-feedback__card .form-item > label,
:is(body.path-search, body.vesta-route-search-api-page) #main form.vesta-search-page-form .form-item > label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    white-space: nowrap;
    border: 0;
    clip: rect(0, 0, 0, 0);
}

/* Кнопка «Обратный звонок» */
.header-top__callback :is(a, .btn, .button),
.site-offcanvas__callback :is(a, .btn),
.site-footer__callback :is(a, .btn) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--btn-h);
    padding: 11px 24px;
    box-sizing: border-box;
    background: var(--color-brand);
    border: 0;
    border-radius: var(--btn-radius);
    font-size: 16px;
    font-weight: 600;
    line-height: 22px;
    color: var(--color-on-brand);
    text-align: center;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color var(--transition);
}

.header-top__callback :is(a, .btn, .button):is(:hover, :focus) {
    background: var(--color-brand-dark);
    color: var(--color-on-brand);
    text-decoration: none;
}

.site-offcanvas__callback :is(a, .btn):is(:hover, :focus),
.site-footer__callback :is(a, .btn):is(:hover, :focus) {
    background: var(--color-accent);
    color: var(--color-on-brand);
    text-decoration: none;
}

/* Кнопка отправки */
:is(#callBackModal, #drupal-bootstrap4-modal) :is(input[type='submit'], button[type='submit'], .webform-button--submit) {
    min-height: var(--btn-h);
    padding: 12px 24px;
    box-sizing: border-box;
    background: var(--color-accent);
    border: 0;
    border-radius: var(--btn-radius);
    font: 600 15px/20px var(--font-base);
    color: var(--color-on-brand);
    cursor: pointer;
    transition: background-color var(--transition), color var(--transition), transform var(--transition);
}

:is(#callBackModal, #drupal-bootstrap4-modal) :is(input[type='submit'], button[type='submit'], .webform-button--submit):hover {
    background: var(--color-on-brand);
    color: var(--color-brand);
    transform: translateY(-1px);
}

/* Кнопка «Смотреть продукцию» */
.front-promo__slider .node--type-slide .content > .field--name-field-slide-link a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: var(--btn-w-lg);
    max-width: 100%;
    height: var(--btn-h-lg);
    box-sizing: border-box;
    padding: 19px 32px;
    background: var(--btn-gradient);
    border: 0;
    border-radius: var(--btn-radius);
    font-family: var(--font-base);
    font-size: 16px;
    font-weight: 600;
    line-height: 22px;
    color: var(--color-on-brand);
    text-align: center;
    text-decoration: none;
    transition: background var(--transition);
}

.front-promo__slider .node--type-slide .content > .field--name-field-slide-link a:is(:hover, :focus) {
    background: var(--color-brand);
    color: var(--color-on-brand);
    text-decoration: none;
}


/* ====================================================================
   05. SLICK
   ==================================================================== */
button.slick-arrow {
    position: absolute;
    top: 50%;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    padding: 0;
    background: transparent;
    border: 0;
    outline: none;
    font-size: 0;
    line-height: 0;
    color: transparent;
    cursor: pointer;
    transform: translateY(-50%);
}

button.slick-arrow::before {
    content: '';
    display: block;
    width: 30px;
    height: 30px;
    background: url('../image/arrow-top.svg') no-repeat center / cover;
    font-size: 0;
}

button.slick-prev.slick-arrow {
    left: 25px;
}

button.slick-prev.slick-arrow::before {
    transform: rotate(-90deg);
}

button.slick-next.slick-arrow {
    right: 25px;
}

button.slick-next.slick-arrow::before {
    transform: rotate(90deg);
}

/* Раскладка точек */
ul.slick-dots,
.slick-slider ul.slick-dots {
    display: flex !important;
    flex-flow: row nowrap;
    align-items: center;
    justify-content: center;
    gap: 7px;
    width: 100%;
    margin: 10px 0;
    padding: 0;
    list-style: none;
}

/* Кружок не сжимается */
ul.slick-dots > li {
    flex: 0 0 auto;
}

ul.slick-dots li button {
    display: block;
    width: 10px;
    height: 10px;
    padding: 0;
    background: #686868;
    border: 0;
    border-radius: 50%;
    font-size: 0;
}

ul.slick-dots li button::before {
    display: none;
}

ul.slick-dots li.slick-active button {
    background: #272727;
}

/* До инициализации */
.region-slider .view-content:not(.slick-initialized) .views-row {
    display: none;
}

.region-slider .view-content:not(.slick-initialized) .views-row:first-child {
    display: block;
}


/* ====================================================================
   06. ШАПКА: ВЕРХ
   ==================================================================== */
.site-header {
    position: relative;
    z-index: 100;
    background: var(--color-bg);
}

.site-header--desktop {
    display: none;
}

.site-header--mobile {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

@media screen and (min-width: 992px) {
    .site-header--desktop {
        display: block;
    }

    .site-header--mobile {
        display: none;
    }
}

.header-top {
    min-height: var(--header-top-h);
    background: var(--color-accent);
}

.header-top__inner {
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 0;
}

.header-top__contacts {
    display: flex;
    flex: 1;
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: 20px 24px;
    min-width: 0;
}

.header-top__group {
    display: flex;
    flex: 0 1 auto;
    flex-direction: column;
    gap: 5px;
    min-width: 0;
}

.header-top__group--addresses {
    flex: 0 0 auto;
}

/* Иконка не дублируется */
.header-top__group--hours .header-top__row:last-child .header-top__icon {
    visibility: hidden;
}

.header-top__row {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    min-width: 0;
    font-size: 15px;
    font-weight: 500;
    line-height: 20px;
    color: var(--color-on-brand);
    white-space: nowrap;
}

.header-top__text,
.header-top__link {
    min-width: 0;
    word-break: break-word;
}

.header-top__link {
    color: var(--color-on-brand);
    text-decoration: none;
}

.header-top__link:is(:hover, :focus) {
    color: var(--color-on-brand);
    text-decoration: underline;
}

.header-top__icon {
    flex-shrink: 0;
    display: block;
    width: 18px;
    height: 18px;
    object-fit: contain;
}

.header-top__callback {
    flex-shrink: 0;
    align-self: flex-start;
    margin-left: 12px;
}

/* Размер кнопки */
.header-top__callback :is(a, .btn, .button) {
    width: 236px;
    height: var(--btn-h);
    padding: 0 10px;
}

@media screen and (min-width: 992px) and (max-width: 1199.98px) {
    .header-top__inner,
    .header-top__contacts {
        gap: 12px;
    }

    .header-top__row {
        font-size: 12px;
        line-height: 16px;
    }

    .header-top__callback :is(a, .btn, .button) {
        width: 200px;
        font-size: 12px;
        line-height: 16px;
    }
}


/* ====================================================================
   07. ШАПКА: НИЗ
   ==================================================================== */
.header-bottom {
    min-height: var(--header-bottom-h);
    background: var(--color-bg);
}

.header-bottom__inner {
    display: flex;
    align-items: center;
    gap: 24px;
    min-height: var(--header-bottom-h);
    padding: 8px 0;
}

.header-bottom__logo {
    flex-shrink: 0;
    width: 200px;
    max-width: 200px;
}

.header-bottom__logo a {
    display: block;
    color: var(--color-text);
    text-decoration: none;
}

.header-bottom__logo img {
    display: block;
    width: 200px;
    max-width: 100%;
    height: auto;
    max-height: 74px;
    object-fit: contain;
}

.header-bottom__nav {
    flex: 1;
    min-width: 0;
}

.header-bottom__nav .nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 30px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.header-bottom__nav .nav-link {
    padding: 0;
    font-size: 16px;
    font-weight: 500;
    line-height: 22px;
    color: var(--color-ink);
    text-transform: uppercase;
    text-decoration: none;
}

.header-bottom__nav .nav-link:is(:hover, :focus, .active, .is-active) {
    color: var(--color-brand);
}

.region-navigation .nav > .nav-item:hover .dropdown-menu {
    display: block;
    top: 100%;
    left: 0;
}


/* ====================================================================
   08. ПОИСК В ШАПКЕ
   ==================================================================== */
.header-bottom__search {
    flex-shrink: 0;
    width: 100%;
    max-width: 339px;
}

.header-bottom__search .block-search {
    margin: 0;
}

.header-bottom__search form {
    display: flex;
    align-items: center;
    gap: 8px;
    padding-bottom: 4px;
    border-bottom: 1.3px solid var(--color-accent);
}

.header-bottom__search .form-item {
    flex: 1;
    min-width: 0;
    margin: 0;
}

.header-bottom__search :is(input[type='search'], input.form-search, .form-text) {
    width: 100%;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    font-size: 16px;
    font-weight: 500;
    line-height: 22px;
    color: var(--color-ink);
    white-space: nowrap;
    text-overflow: ellipsis;
}

.header-bottom__search input::placeholder {
    color: var(--color-ink);
    opacity: 1;
}

.header-bottom__search input:focus {
    outline: none;
    box-shadow: none;
}

.header-bottom__search .form-actions {
    margin: 0;
}

.header-bottom__search .form-actions :is(input[type='submit'], button) {
    width: 18px;
    height: 18px;
    min-width: 18px;
    padding: 0;
    background: transparent url('../image/Search.svg') no-repeat center / contain;
    border: 0;
    border-radius: 0;
    font-size: 0;
    color: transparent;
    cursor: pointer;
    transition: opacity var(--transition);
}

.header-bottom__search .form-actions :is(input[type='submit'], button):hover {
    background-color: transparent;
    opacity: 0.75;
}


/* ====================================================================
   09. ОФФКАНВАС
   ==================================================================== */
.site-header-mob {
    position: sticky;
    top: 0;
    z-index: 100;
    padding: 8px 12px;
    background: var(--color-bg);
    border-bottom: 1px solid var(--color-border);
}

.site-header-mob__burger {
    padding: 0;
    background: none;
    border: 0;
    cursor: pointer;
}

.site-header-mob__logo img {
    width: auto;
    max-height: 40px;
}

.site-header-mob__phone a {
    font-size: 14px;
    font-weight: 500;
    color: var(--color-brand);
    text-decoration: none;
    white-space: nowrap;
}

.site-offcanvas {
    --bs-offcanvas-bg: var(--color-bg);
}

/* Лого по центру */
.site-offcanvas .offcanvas-header {
    position: relative;
    justify-content: center;
    padding-right: 52px;
    padding-left: 52px;
}

.site-offcanvas .offcanvas-header .btn-close {
    position: absolute;
    top: 50%;
    right: 16px;
    margin: 0;
    transform: translateY(-50%);
}

.site-offcanvas__logo img {
    width: auto;
    max-height: 48px;
}

/* Контакты подвала */
.site-offcanvas__contacts {
    margin-top: 24px;
    padding-top: 18px;
    border-top: 1px solid var(--color-border);
    font-size: 15px;
    line-height: 1.35;
}

.site-offcanvas__row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 10px;
    font-weight: 500;
}

/* Иконка не дублируется */
.site-offcanvas__row--tight {
    margin-top: -6px;
    padding-left: 28px;
}

.site-offcanvas__icon {
    flex: none;
    margin-top: 3px;
}

.site-offcanvas__row a {
    color: var(--color-brand);
    text-decoration: none;
    word-break: break-word;
}

.site-offcanvas__row a:hover {
    color: var(--color-accent);
}

.site-offcanvas__menu .nav {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    margin-top: 16px;
}

.site-offcanvas__menu .nav-link {
    padding: 0;
    font-size: 16px;
    font-weight: 500;
    color: var(--color-ink);
    text-transform: uppercase;
}

.site-offcanvas__callback {
    margin-top: 20px;
}

/* Как на телефоне */
@media screen and (max-width: 991.98px) {
    /* Подменю в потоке */
    #offcanvasNav .nav .dropdown-menu {
        display: none;
        position: static;
        padding: 10px 0;
        background: transparent;
        border: 0;
        border-bottom: 1px solid #bdbdbd;
    }

    #offcanvasNav li.nav-item {
        width: 100%;
    }

    .site-header-mob {
        position: relative;
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 12px;
        min-height: 64px;
        padding: 10px 16px;
        box-sizing: border-box;
        border-bottom: 0;
    }

    .site-header-mob__logo {
        grid-column: 1;
        grid-row: 1;
        justify-self: start;
        align-self: center;
    }

    .site-header-mob__logo img {
        display: block;
        width: 122px;
        height: 44px;
        max-height: none;
        object-fit: contain;
    }

    .site-header-mob__nav {
        grid-column: 2;
        grid-row: 1;
        align-self: center;
    }

    .site-header-mob__burger {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 40px;
        height: 36px;
        background: var(--color-accent);
        border-radius: 6px;
    }

    .site-header-mob__burger img {
        width: 22px;
        height: 22px;
        filter: brightness(0) invert(1);
    }

    /* Телефон в оффканвасе */
    .site-header-mob__phone {
        display: none;
    }

    /* Переменная Bootstrap */
    .site-offcanvas {
        --bs-offcanvas-width: min(86vw, 320px);
    }
}


/* ====================================================================
   10. ХЛЕБНЫЕ КРОШКИ
   ==================================================================== */
.breadcrumb {
    /* Разделитель Bootstrap */
    --bs-breadcrumb-divider: '>';
    margin: 0 0 24px;
    padding: 0;
    font-family: var(--font-base);
    font-size: 14px;
    font-weight: 500;
    line-height: 19px;
}

.breadcrumb ol,
.breadcrumb ul {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    margin: 0;
    padding: 0;
    list-style: none;
}

.breadcrumb .breadcrumb-item {
    display: inline-flex;
    align-items: center;
    color: var(--color-text-muted);
}

.breadcrumb .breadcrumb-item + .breadcrumb-item::before {
    float: none;
    margin: 0 5px;
    padding: 0;
    color: var(--color-brand);
}

.breadcrumb a {
    color: var(--color-brand);
    text-decoration: none;
}

.breadcrumb a:is(:hover, :focus) {
    color: var(--color-accent);
    text-decoration: underline;
}


/* ====================================================================
   11. ВИДЕОФОН
   ==================================================================== */
.front-video {
    position: relative;
    width: 100%;
    height: var(--hero-video-h);
    overflow: hidden;
    background: var(--color-ink);
}

/* Заголовок блока скрыт */
.front-video .block-title,
.front-video .field__label {
    display: none;
}

/* Высота через обёртки */
.front-video__inner,
.front-video .region,
.front-video .block,
.front-video .block > *,
.front-video .field,
.front-video .field__item,
.front-video .media,
.front-video .media > * {
    height: 100%;
    margin: 0;
}

.front-video video {
    display: block;
    width: 100%;
    max-width: none;
    height: 100%;
    object-fit: cover;
    /* Низ кадра целиком, срез только сверху */
    object-position: center bottom;
}

/* Десктоп: кадр ниже на 60px */
@media screen and (min-width: 992px) {
    .front-video video {
        object-position: center calc(100% + 60px);
    }
}

@media screen and (max-width: 575.98px) {
    .front-video {
        height: 176px;
    }
}


/* ====================================================================
   12. СЛАЙДЕР ПРОДУКЦИИ
   ==================================================================== */
.front-promo {
    padding: clamp(24px, 3vw, 48px) 0 90px;
}

.front-promo > .container {
    width: min(var(--slider-w), calc(100% - 30px));
    max-width: var(--slider-w);
    padding-right: 0;
    padding-left: 0;
}

.front-promo__stage {
    position: relative;
    width: 100%;
}

.front-promo .slick-list {
    border-radius: var(--radius-card);
}

.front-promo .node--type-slide {
    position: relative;
    height: var(--slider-h);
    background: var(--color-surface);
}

.front-promo .field--name-field-image,
.front-promo .field--name-field-image .field__item {
    height: 100%;
}

.front-promo .field--name-field-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* H1 на плашке */
.front-promo .front-h1 {
    position: absolute;
    top: 43px;
    right: 10px;
    left: 26px;
    z-index: 3;
    width: auto;
    max-width: 1128px;
    min-height: 100px;
    margin: 0;
    padding: 0;
    font-family: var(--font-base);
    font-size: var(--h1);
    font-weight: 700;
    line-height: 50px;
    color: var(--color-brand);
    text-transform: uppercase;
}

.front-promo .front-h1 .field--name-title {
    display: inline;
    padding: 3px 0;
    background: var(--color-scrim);
    border-radius: 0 var(--radius-card) var(--radius-card) 0;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
}

/* Подложен SVG-контур */
.front-promo .front-h1.has-line-background .field--name-title {
    position: relative;
    z-index: 1;
    background: transparent;
}

.front-promo .line-background,
.catalog-term-page__banner-title .line-background {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
    overflow: visible;
    pointer-events: none;
}

/* Содержимое слайда */
.front-promo__slider .node--type-slide .content {
    position: absolute;
    top: 43%;
    right: 0;
    left: 0;
    display: flex;
    flex-direction: column;
    padding: 0 35px;
    color: var(--color-on-brand);
}

/* Дублирует поле-ссылку */
.front-promo__slider .node--type-slide .content > .field--name-field-slide-title {
    display: none;
}

/* Сетка подразделов */
.front-promo__slider .node--type-slide .content > .field--name-body,
.front-promo__slider .node--type-slide .content > .field--name-field-catalog-children {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 28px;
    width: 100%;
}

.front-promo__slider .node--type-slide .content > .field--name-field-catalog-children {
    margin-top: 38px;
}

/* Обёртки вне сетки */
.front-promo__slider .node--type-slide .content > .field--name-body > .field__item,
.front-promo__slider .node--type-slide .content > .field--name-body > .field__item > p {
    display: contents;
}

.front-promo__slider .node--type-slide .content > .field--name-field-catalog-children .field__item,
.front-promo__slider .node--type-slide .content > .field--name-field-slide-link .field__item {
    min-width: 0;
}

/* Карточка подраздела */
.front-promo__slider .node--type-slide .content > .field--name-body a,
.front-promo__slider .node--type-slide .content > .field--name-field-catalog-children a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 92px;
    box-sizing: border-box;
    padding: 18px 24px;
    background: var(--color-glass);
    backdrop-filter: blur(var(--blur-glass));
    border-radius: var(--radius-card);
    font-size: clamp(16px, 1.6vw, 24px);
    font-weight: 600;
    line-height: 1.17;
    color: var(--color-on-brand);
    text-align: center;
    text-decoration: none;
    transition: background var(--transition);
}

.front-promo__slider .node--type-slide .content > .field--name-body a:is(:hover, :focus),
.front-promo__slider .node--type-slide .content > .field--name-field-catalog-children a:is(:hover, :focus) {
    background: var(--color-brand);
    color: var(--color-on-brand);
    text-decoration: none;
}

/* Карточка родителя */
.front-promo__slider .node--type-slide .content > .field--name-body a:first-of-type,
.front-promo__slider .node--type-slide .content > .field--name-field-catalog-parent a {
    grid-column: 1 / -1;
    justify-self: center;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: min(529px, 100%);
    min-height: 109px;
    box-sizing: border-box;
    padding: 20px 40px;
    background: var(--color-brand);
    backdrop-filter: none;
    border-radius: var(--radius-card);
    font-size: clamp(20px, 2.2vw, 32px);
    font-weight: 600;
    line-height: 1.375;
    /* Обычный заголовок */
    color: var(--color-on-brand);
    text-decoration: none;
}

.front-promo__slider .node--type-slide .content > .field--name-field-catalog-parent a:is(:hover, :focus) {
    color: var(--color-on-brand);
    text-decoration: none;
}

/* Линия из макета */
.front-promo__slider .node--type-slide .content > .field--name-body a:first-of-type::after,
.front-promo__slider .node--type-slide .content > .field--name-field-catalog-parent a::after {
    content: '';
    display: block;
    width: min(366px, 100%);
    margin: 6px auto 0;
    border-top: 1.3px solid var(--color-accent);
}

.front-promo__slider .node--type-slide .content > .field--name-field-catalog-parent {
    width: 100%;
    margin: 0 auto;
    text-align: center;
}

/* Вид: раздел 04 */
.front-promo__slider .node--type-slide .content > .field--name-field-slide-link {
    display: flex;
    justify-content: center;
    width: 100%;
    margin-top: 36px;
}

/* Стрелки и точки */
.front-promo .slick-arrow {
    top: 50%;
    width: 60px;
    height: 60px;
    margin: 0;
    background: rgba(255, 255, 255, 0.6);
    border: 1px solid var(--color-accent);
    border-radius: 50%;
}

.front-promo button.slick-prev.slick-arrow {
    left: -36px;
}

.front-promo button.slick-next.slick-arrow {
    right: -36px;
}

/* Уголок на границах */
.front-promo button.slick-arrow::before {
    width: 20px;
    height: 20px;
    background: none;
    border-top: 1.5px solid var(--color-brand);
    border-right: 1.5px solid var(--color-brand);
}

.front-promo button.slick-prev.slick-arrow::before {
    margin-left: 6px;
    transform: rotate(-135deg);
}

.front-promo button.slick-next.slick-arrow::before {
    margin-right: 6px;
    transform: rotate(45deg);
}

.front-promo ul.slick-dots {
    gap: 16px;
    margin: 24px 0 0;
}

.front-promo ul.slick-dots li button {
    width: 17px;
    height: 17px;
    background: transparent;
    border: 2px solid var(--color-accent);
}

.front-promo ul.slick-dots li.slick-active button {
    background: var(--color-brand);
}

@media screen and (max-width: 991.98px) {
    .front-promo button.slick-prev.slick-arrow {
        left: 8px;
    }

    .front-promo button.slick-next.slick-arrow {
        right: 8px;
    }
}

@media screen and (max-width: 767.98px) {
    .front-promo .node--type-slide {
        height: clamp(360px, 60vw, var(--slider-h));
    }

    .front-promo .front-h1 {
        position: static;
        margin-bottom: 16px;
    }

    .front-promo .slick-arrow {
        width: 40px;
        height: 40px;
    }

    .front-promo__slider .node--type-slide .content > .field--name-body,
    .front-promo__slider .node--type-slide .content > .field--name-field-catalog-children {
        grid-template-columns: 1fr;
    }
}

/* Планшет-портрет */
@media screen and (min-width: 576px) and (max-width: 767.98px) {
    .front-promo {
        padding: 16px 0 40px;
    }

    .front-promo > .container {
        width: calc(100% - 30px);
        max-width: none;
    }

    .front-promo .node--type-slide {
        height: 620px;
        overflow: hidden;
        border-radius: var(--radius-card);
    }

    .front-promo .front-h1 {
        position: absolute;
        top: 20px;
        right: 16px;
        left: 16px;
        z-index: 3;
        display: block;
        width: auto;
        max-width: none;
        min-height: 0;
        margin: 0;
        padding: 14px 20px;
        background: rgba(255, 255, 255, 0.84);
        backdrop-filter: blur(2px);
        border-radius: var(--radius);
        font-size: 24px;
        line-height: 31px;
        text-align: center;
    }

    .front-promo .front-h1 .field--name-title,
    .front-promo .front-h1.has-line-background .field--name-title {
        display: block;
        padding: 0;
        background: transparent;
        border-radius: 0;
    }

    .front-promo .line-background {
        display: none;
    }

    .front-promo__slider .node--type-slide .content {
        top: auto;
        bottom: 20px;
        justify-content: flex-end;
        padding: 0 16px;
    }

    /* Две колонки */
    .front-promo__slider .node--type-slide .content > .field--name-body,
    .front-promo__slider .node--type-slide .content > .field--name-field-catalog-children {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px;
    }

    .front-promo__slider .node--type-slide .content > .field--name-field-catalog-children {
        margin-top: 18px;
    }

    .front-promo__slider .node--type-slide .content > .field--name-body a,
    .front-promo__slider .node--type-slide .content > .field--name-field-catalog-children a {
        min-height: 72px;
        padding: 12px 16px;
        border-radius: var(--radius);
        font-size: 18px;
        line-height: 24px;
    }

    .front-promo__slider .node--type-slide .content > .field--name-body a:first-of-type,
    .front-promo__slider .node--type-slide .content > .field--name-field-catalog-parent a {
        width: 100%;
        min-height: 96px;
        padding: 16px 24px;
        border-radius: var(--radius);
        font-size: 26px;
        line-height: 33px;
    }

    /* Нечётный последний раздел */
    .front-promo__slider .node--type-slide .content > .field--name-body a:last-of-type:nth-of-type(even),
    .front-promo__slider .node--type-slide .content > .field--name-field-catalog-children > .field__item:last-child:nth-child(odd) {
        grid-column: 1 / -1;
        justify-self: center;
        width: calc(50% - 7px);
    }

    .front-promo__slider .node--type-slide .content > .field--name-field-slide-link {
        margin-top: 18px;
    }

    .front-promo__slider .node--type-slide .content > .field--name-field-slide-link a {
        width: min(276px, 100%);
        max-width: none;
        height: 46px;
        padding: 11px 20px;
        border-radius: var(--radius-xs);
        font-size: 15px;
        line-height: 20px;
    }

    .front-promo ul.slick-dots {
        margin-top: 16px;
    }
}

@media screen and (max-width: 575.98px) {
    .front-promo {
        padding: 12px 0 28px;
    }

    .front-promo > .container {
        width: calc(100% - 24px);
        max-width: none;
    }

    .front-promo .slick-list {
        border-radius: var(--radius);
    }

    .front-promo .node--type-slide {
        height: 640px;
        overflow: hidden;
        border-radius: var(--radius);
    }

    /* Сплошная плашка */
    .front-promo .front-h1 {
        position: absolute;
        top: 18px;
        right: 12px;
        left: 12px;
        z-index: 3;
        display: block;
        width: auto;
        max-width: none;
        min-height: 0;
        margin: 0;
        padding: 16px 18px;
        background: rgba(255, 255, 255, 0.84);
        backdrop-filter: blur(2px);
        border-radius: var(--radius);
        font-size: 20px;
        line-height: 26px;
        text-align: center;
    }

    .front-promo .front-h1 .field--name-title,
    .front-promo .front-h1.has-line-background .field--name-title {
        display: block;
        padding: 0;
        background: transparent;
        border-radius: 0;
    }

    .front-promo .line-background {
        display: none;
    }

    /* Прижато к низу */
    .front-promo__slider .node--type-slide .content {
        top: auto;
        bottom: 16px;
        justify-content: flex-end;
        padding: 0 12px;
    }

    .front-promo__slider .node--type-slide .content > .field--name-body,
    .front-promo__slider .node--type-slide .content > .field--name-field-catalog-children {
        gap: 12px;
    }

    .front-promo__slider .node--type-slide .content > .field--name-field-catalog-children {
        margin-top: 14px;
    }

    .front-promo__slider .node--type-slide .content > .field--name-body a,
    .front-promo__slider .node--type-slide .content > .field--name-field-catalog-children a {
        min-height: 60px;
        padding: 10px 14px;
        border-radius: var(--radius);
        font-size: 18px;
        line-height: 24px;
    }

    .front-promo__slider .node--type-slide .content > .field--name-body a:first-of-type,
    .front-promo__slider .node--type-slide .content > .field--name-field-catalog-parent a {
        width: 100%;
        min-height: 112px;
        padding: 14px 18px;
        border-radius: var(--radius);
        font-size: 24px;
        line-height: 29px;
    }

    .front-promo__slider .node--type-slide .content > .field--name-field-slide-link {
        margin-top: 16px;
    }

    .front-promo__slider .node--type-slide .content > .field--name-field-slide-link a {
        width: calc(100% - 12px);
        max-width: none;
        height: 42px;
        padding: 10px 16px;
        border-radius: var(--radius-xs);
        font-size: 14px;
        line-height: 20px;
    }

    .front-promo .slick-arrow {
        width: 36px;
        height: 36px;
    }

    .front-promo button.slick-prev.slick-arrow {
        left: -6px;
    }

    .front-promo button.slick-next.slick-arrow {
        right: -6px;
    }

    .front-promo button.slick-arrow::before {
        width: 13px;
        height: 13px;
    }

    /* Точки на телефоне */
    .front-promo ul.slick-dots {
        gap: 10px;
        margin-top: 14px;
    }

    .front-promo ul.slick-dots li button {
        width: 12px;
        height: 12px;
    }
}


/* ====================================================================
   13. О КОМПАНИИ
   ==================================================================== */
.front-about {
    padding: clamp(40px, 5vw, 80px) 0;
    background: var(--color-surface-tint);
}

.front-about > .container {
    width: min(var(--benefits-w), calc(100% - 30px));
    max-width: var(--benefits-w);
    padding-right: 0;
    padding-left: 0;
}

.front-about .view-about > .view-header,
.front-about h2,
.front-about .block-title {
    margin: 0 0 clamp(24px, 3vw, 48px);
    font-size: var(--h2);
    font-weight: 600;
    color: var(--color-brand);
    text-align: center;
    text-transform: uppercase;
}

.front-about :is(.ds-2col, .ds-2col-fluid) {
    display: grid;
    grid-template-columns: var(--about-left-w) var(--about-right-w);
    column-gap: var(--about-column-gap);
    align-items: start;
}

/* Явные позиции колонок */
.front-about :is(.ds-2col, .ds-2col-fluid) > .group-left,
.front-about :is(.ds-2col, .ds-2col-fluid) > .group-right {
    float: none;
    width: auto;
    min-width: 0;
    grid-row: 1;
}

.front-about :is(.ds-2col, .ds-2col-fluid) > .group-left {
    grid-column: 1;
}

.front-about :is(.ds-2col, .ds-2col-fluid) > .group-right {
    grid-column: 2;
}

/* Текстовая колонка */
.front-about .field--name-body {
    width: var(--about-text-w);
    max-width: 100%;
    /* Только min-height */
    min-height: var(--about-text-h);
    box-sizing: border-box;
    font-family: var(--font-base);
    font-size: 16px;
    font-weight: 400;
    line-height: 22px;
    color: var(--color-ink);
}

.front-about .field--name-body::after {
    content: '';
    display: table;
    clear: both;
}

.front-about .field--name-body p {
    margin: 0 0 20px;
}

/* Инлайн из CKEditor */
#main .front-about .group-left .field--name-body > p {
    margin: 0 0 20px !important;
    font-family: var(--font-base) !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    line-height: 22px !important;
    letter-spacing: normal !important;
    color: var(--color-ink) !important;
}

#main .front-about .group-left .field--name-body > p :is(strong, b) {
    font-size: inherit !important;
    font-weight: 700 !important;
}

/* Фото и подпись */
.front-about .field--name-body .align-right {
    float: right;
    max-width: var(--about-right-w);
    margin: 0 0 30px 30px;
}

.front-about .field--name-body img {
    max-width: 100%;
    height: auto;
    border-radius: var(--radius);
}

#main .front-about .group-right img {
    display: block;
    width: var(--about-right-w);
    max-width: 100%;
    height: var(--about-image-h);
    object-fit: cover;
    border-radius: var(--radius-card);
}

.front-about .field--name-body figcaption,
.front-about .field--name-field-podpis-foto,
.front-about .field--name-field-podpis {
    display: flex;
    align-items: center;
    justify-content: center;
    width: var(--about-right-w);
    max-width: 100%;
    /* Подпись по тексту */
    min-height: var(--about-caption-h);
    margin-top: var(--about-caption-gap);
    box-sizing: border-box;
    padding: 12px 16px;
    background: var(--color-surface-tint);
    border-radius: var(--radius-sm);
    font-size: var(--fs-sm);
    line-height: 1.4;
    color: var(--color-text);
    text-align: center;
    white-space: pre-line;
}

.front-about .field--name-field-podpis > .field__item,
.front-about .field--name-field-podpis-foto > .field__item {
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 100%;
    height: 100%;
    text-align: center;
}

.front-about .field--name-field-podpis > p,
.front-about .field--name-field-podpis-foto > p {
    width: 100%;
    margin: 0;
    text-align: center;
}

/* Цитата */
.front-about .field--name-body blockquote,
.front-about .field--name-field-monolog {
    position: relative;
    width: min(var(--about-monolog-w), 100%);
    max-width: var(--about-monolog-w);
    /* Только min-height */
    min-height: var(--about-monolog-h);
    box-sizing: border-box;
    margin: 116px 0 0;
    padding: 25px 46px 24px 47px;
    background: var(--color-brand);
    border: 0;
    border-radius: var(--radius-card);
    font-size: 18px;
    font-weight: 600;
    line-height: 25px;
    color: var(--color-on-brand);
}

.front-about .field--name-body blockquote::before,
.front-about .field--name-body blockquote::after,
.front-about .field--name-field-monolog::before,
.front-about .field--name-field-monolog::after {
    content: '';
    position: absolute;
    width: 23px;
    height: 19px;
    background-repeat: no-repeat;
    background-size: 23px 19px;
}

.front-about .field--name-body blockquote::before,
.front-about .field--name-field-monolog::before {
    top: 15px;
    left: 15px;
    background-image: url('../image/%E2%80%9C.svg');
}

.front-about .field--name-body blockquote::after,
.front-about .field--name-field-monolog::after {
    right: 15px;
    bottom: 15px;
    background-image: url('../image/%E2%80%9C%202.svg');
}

.front-about .field--name-body blockquote p:last-child,
.front-about .field--name-field-monolog p:last-child {
    margin-bottom: 0;
}

@media screen and (max-width: 1199.98px) {
    .front-about :is(.ds-2col, .ds-2col-fluid) {
        grid-template-columns: minmax(0, 524fr) minmax(0, 606fr);
        column-gap: 30px;
    }

    .front-about .field--name-body {
        width: 100%;
        height: auto;
    }

    #main .front-about .group-right img {
        width: 100%;
        height: auto;
        aspect-ratio: 606 / 476;
    }

    /* Подпись по фото */
    .front-about .field--name-body figcaption,
    .front-about .field--name-field-podpis-foto,
    .front-about .field--name-field-podpis {
        width: 100%;
        min-height: 0;
        height: auto;
    }

    .front-about .field--name-field-podpis > .field__item,
    .front-about .field--name-field-podpis-foto > .field__item {
        height: auto;
    }

    .front-about .field--name-body blockquote,
    .front-about .field--name-field-monolog {
        margin-top: 40px;
    }
}

/* Планшетный макет */
@media screen and (min-width: 768px) and (max-width: 1199.98px) {
    .front-about {
        padding: 7px 0 46px;
    }

    .front-about > .container {
        width: min(878px, calc(100% - 120px));
        max-width: none;
        margin-right: 0;
        margin-left: 60px;
    }

    .front-about .view-about > .view-header,
    .front-about h2,
    .front-about .block-title {
        margin-bottom: 29px;
        font-size: 24px;
        font-weight: 400;
        line-height: 29px;
    }

    .front-about :is(.ds-2col, .ds-2col-fluid) {
        grid-template-columns: minmax(0, 394px) minmax(0, 455px);
        column-gap: 29px;
    }

    .front-about .field--name-body {
        width: 366px;
        min-height: 176px;
        font-size: 16px;
        line-height: 22px;
    }

    #main .front-about .group-left .field--name-body > p {
        margin-bottom: 15px !important;
        font-size: 16px !important;
        line-height: 22px !important;
    }

    #main .front-about .group-right img {
        width: 455px;
        height: 357px;
        aspect-ratio: auto;
    }

    .front-about .field--name-body figcaption,
    .front-about .field--name-field-podpis-foto,
    .front-about .field--name-field-podpis {
        width: 100%;
        max-width: 455px;
        min-height: 45px;
        height: auto;
        margin-top: 21px;
        padding: 8px 12px;
        font-size: 12px;
        line-height: 17px;
    }

    .front-about .field--name-body blockquote,
    .front-about .field--name-field-monolog {
        width: min(394px, 100%);
        max-width: 394px;
        min-height: 131px;
        /* Обычный отступ */
        padding: 19px 35px 18px;
        border-radius: 15px;
        font-size: 14px;
        line-height: 19px;
    }

    .front-about .field--name-body blockquote::before,
    .front-about .field--name-body blockquote::after,
    .front-about .field--name-field-monolog::before,
    .front-about .field--name-field-monolog::after {
        width: 17px;
        height: 14px;
        background-size: 17px 14px;
    }

    .front-about .field--name-body blockquote::before,
    .front-about .field--name-field-monolog::before {
        top: 11px;
        left: 11px;
    }

    .front-about .field--name-body blockquote::after,
    .front-about .field--name-field-monolog::after {
        right: 11px;
        bottom: 11px;
    }
}

@media screen and (max-width: 767.98px) {
    .front-about :is(.ds-2col, .ds-2col-fluid) {
        grid-template-columns: 1fr;
        row-gap: 32px;
    }

    .front-about :is(.ds-2col, .ds-2col-fluid) > .group-left,
    .front-about :is(.ds-2col, .ds-2col-fluid) > .group-right {
        grid-column: 1;
        grid-row: auto;
    }

    .front-about .field--name-body {
        font-size: 18px;
        line-height: 27px;
    }

    #main .front-about .group-left .field--name-body > p {
        font-size: 18px !important;
    }

    .front-about .field--name-body .align-right {
        float: none;
        max-width: 100%;
        margin: 0 0 24px;
    }

    .front-about .field--name-body blockquote,
    .front-about .field--name-field-monolog {
        margin-top: 24px;
    }
}

@media screen and (max-width: 575.98px) {
    .front-about {
        padding: 28px 14px 36px;
    }

    .front-about > .container {
        width: 100%;
        max-width: none;
        margin: 0;
    }

    .front-about .view-about > .view-header,
    .front-about h2,
    .front-about .block-title {
        margin: 0 0 22px;
        font-size: 20px;
        font-weight: 400;
        line-height: 27px;
    }

    .front-about :is(.ds-2col, .ds-2col-fluid) {
        grid-template-columns: minmax(0, 1fr);
        row-gap: 24px;
    }

    .front-about .field--name-body {
        /* Без макетной высоты */
        min-height: 0;
        font-size: 12px;
        line-height: 16px;
    }

    #main .front-about .group-left .field--name-body > p {
        margin-bottom: 0 !important;
        font-size: 12px !important;
        line-height: 16px !important;
    }

    #main .front-about .group-right img {
        width: 100%;
        height: auto;
        aspect-ratio: 606 / 476;
        border-radius: var(--radius);
    }

    .front-about .field--name-body figcaption,
    .front-about .field--name-field-podpis-foto,
    .front-about .field--name-field-podpis {
        width: 100%;
        max-width: none;
        min-height: 58px;
        height: auto;
        margin-top: 12px;
        padding: 8px 12px;
        border-radius: var(--radius-xs);
        font-size: 12px;
        line-height: 16px;
    }

    .front-about .field--name-body blockquote,
    .front-about .field--name-field-monolog {
        width: 100%;
        max-width: none;
        height: auto;
        min-height: 190px;
        margin: 29px 0 0;
        padding: 34px 24px 24px;
        border-radius: var(--radius);
        font-size: 13px;
        line-height: 18px;
    }

    .front-about .field--name-body blockquote::before,
    .front-about .field--name-body blockquote::after,
    .front-about .field--name-field-monolog::before,
    .front-about .field--name-field-monolog::after {
        width: 17px;
        height: 14px;
        background-size: 17px 14px;
    }

    .front-about .field--name-body blockquote::before,
    .front-about .field--name-field-monolog::before {
        top: 12px;
        left: 12px;
    }

    .front-about .field--name-body blockquote::after,
    .front-about .field--name-field-monolog::after {
        right: 12px;
        bottom: 12px;
    }
}


/* ====================================================================
   14. ПРЕИМУЩЕСТВА
   ==================================================================== */
.front-about__benefits {
    width: var(--benefits-w);
    max-width: 100%;
    height: var(--benefits-h);
    margin-top: clamp(32px, 4vw, 64px);
    box-sizing: border-box;
}

/* Оба варианта разметки */
.field--name-field-preimushchestvo.field__items,
.field--name-field-preimushchestvo > .field__items {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: start;
    justify-content: space-between;
    gap: 0;
    width: 100%;
    overflow-x: auto;
}

.field--name-field-preimushchestvo.field__items > .field__item,
.field--name-field-preimushchestvo > .field__items > .field__item {
    flex: 0 0 var(--benefit-card-w);
    width: var(--benefit-card-w);
    min-width: var(--benefit-card-w);
    margin: 0;
}

.field--name-field-preimushchestvo .paragraph {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    height: var(--benefits-h);
    box-sizing: border-box;
    padding: 40px 15px 24px;
    background: var(--color-brand);
    border-radius: var(--radius-card);
    font-size: 16px;
    font-weight: 600;
    line-height: 1.375;
    color: var(--color-on-brand);
    text-align: center;
}

.field--name-field-preimushchestvo .paragraph .field__item {
    display: block;
    margin: 0;
}

.field--name-field-preimushchestvo .paragraph :is(img, svg) {
    width: 50px;
    height: 50px;
    object-fit: contain;
}

.field--name-field-preimushchestvo .paragraph > .field + .field {
    margin-top: 11px;
}

.field--name-field-preimushchestvo .paragraph::after {
    content: '';
    width: 96px;
    margin-top: 11px;
    border-top: 1.3px solid var(--color-accent);
}

/* Ноутбук: карточки тянутся */
@media screen and (min-width: 992px) and (max-width: 1199.98px) {
    .front-about__benefits {
        width: 100%;
        height: auto;
    }

    .field--name-field-preimushchestvo.field__items,
    .field--name-field-preimushchestvo > .field__items {
        align-items: stretch;
        gap: 14px;
        overflow: visible;
    }

    .field--name-field-preimushchestvo.field__items > .field__item,
    .field--name-field-preimushchestvo > .field__items > .field__item {
        display: flex;
        flex: 1 1 0;
        width: auto;
        min-width: 0;
    }

    .field--name-field-preimushchestvo .paragraph {
        height: auto;
        min-height: var(--benefits-h);
        padding: 30px 12px 22px;
        font-size: 14px;
        line-height: 19px;
    }

    .field--name-field-preimushchestvo .paragraph :is(img, svg) {
        width: 44px;
        height: 44px;
    }

    .field--name-field-preimushchestvo .paragraph::after {
        width: 100%;
        max-width: 96px;
    }
}

/* Планшет: три карточки */
@media screen and (min-width: 576px) and (max-width: 991.98px) {
    .front-about__benefits {
        width: 100%;
        height: auto;
    }

    .field--name-field-preimushchestvo.field__items,
    .field--name-field-preimushchestvo > .field__items {
        flex-wrap: wrap;
        align-items: stretch;
        justify-content: center;
        gap: 16px;
        overflow: visible;
    }

    .field--name-field-preimushchestvo.field__items > .field__item,
    .field--name-field-preimushchestvo > .field__items > .field__item {
        display: flex;
        flex: 0 0 calc((100% - 32px) / 3);
        width: auto;
        min-width: 0;
    }

    .field--name-field-preimushchestvo .paragraph {
        height: auto;
        min-height: var(--benefits-h);
        padding: 28px 15px 24px;
    }
}

@media screen and (max-width: 575.98px) {
    .front-about__benefits {
        width: 100%;
        height: auto;
        margin-top: 24px;
    }

    /* Карточки в столбик */
    .field--name-field-preimushchestvo.field__items,
    .field--name-field-preimushchestvo > .field__items {
        flex-direction: column;
        gap: 12px;
        overflow: visible;
    }

    .field--name-field-preimushchestvo.field__items > .field__item,
    .field--name-field-preimushchestvo > .field__items > .field__item {
        flex: 0 0 auto;
        width: 100%;
        min-width: 0;
    }

    .field--name-field-preimushchestvo .paragraph {
        position: relative;
        flex-direction: row;
        justify-content: flex-start;
        height: 96px;
        padding: 14px 18px 24px;
        border-radius: var(--radius);
        font-size: 14px;
        line-height: 18px;
        text-align: left;
    }

    .field--name-field-preimushchestvo .paragraph :is(img, svg) {
        flex: 0 0 40px;
        width: 40px;
        height: 40px;
    }

    .field--name-field-preimushchestvo .paragraph > .field + .field {
        margin-top: 0;
        margin-left: 16px;
    }

    .field--name-field-preimushchestvo .paragraph::after {
        position: absolute;
        bottom: 12px;
        left: 74px;
        display: block;
        margin: 0;
    }
}


/* ====================================================================
   15. ФОРМА СВЯЗИ
   ==================================================================== */
.front-feedback {
    padding: clamp(80px, 9.0625vw, 174px) 0;
    background: var(--color-accent) url('../image/FOC_fon.png') center / cover no-repeat;
}

.front-feedback__card {
    width: min(var(--container), calc(100% - 32px));
    min-height: 433px;
    margin: 0 auto;
    box-sizing: border-box;
    padding: 52px 35px;
    background: var(--color-brand);
    border-radius: var(--radius-card);
    color: var(--color-on-brand);
}

/* Вложенный wrapper региона */
.front-feedback__card > .region-feedback {
    display: grid;
    grid-template-columns: minmax(0, 435px) minmax(0, 578px);
    column-gap: 66px;
    align-items: start;
    width: 100%;
}

.front-feedback__card .region-feedback > .block {
    min-width: 0;
}

.front-feedback__card .region-feedback > .block:not(:has(.webform-submission-form)) {
    grid-column: 1;
}

.front-feedback__card .region-feedback > .block:has(.webform-submission-form) {
    grid-column: 2;
    padding-top: 13px;
}

.front-feedback__card h2,
.front-feedback__card .block-title {
    margin: 0 0 clamp(20px, 1.98vw, 38px);
    font-size: clamp(24px, 1.667vw, 32px);
    font-weight: 600;
    line-height: 1.375;
    color: var(--color-on-brand);
    text-align: left;
    text-transform: uppercase;
}

.front-feedback__card .region-feedback > .block:not(:has(.webform-submission-form)) p {
    margin: 0 0 22px;
    font-size: 16px;
    font-weight: 500;
    line-height: 22px;
    color: var(--color-on-brand);
}

.front-feedback__card .region-feedback > .block:not(:has(.webform-submission-form)) p:last-child {
    margin-bottom: 0;
}

.front-feedback__card a {
    color: var(--color-accent);
}

/* Раскладка формы */
.front-feedback__card .webform-submission-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 280px));
    gap: 18px;
    width: 578px;
    max-width: 100%;
}

.front-feedback__card .form-item {
    min-width: 0;
    margin: 0;
}

.front-feedback__card .form-item:has(textarea),
.front-feedback__card .form-item:has(input[type='checkbox']),
.front-feedback__card .form-actions {
    grid-column: 1 / -1;
}

.front-feedback__card .form-actions {
    margin: 0;
}

/* Поля */
.front-feedback__card :is(input[type='text'], input[type='email'], input[type='tel'], textarea, select) {
    width: 100%;
    height: var(--btn-h-lg);
    min-height: var(--btn-h-lg);
    box-sizing: border-box;
    padding: 19px 32px 19px 33px;
    background: var(--color-bg);
    border: 1.3px solid var(--color-accent);
    border-radius: var(--field-radius);
    font-family: inherit;
    font-size: 16px;
    font-weight: 500;
    line-height: 22px;
    color: rgba(0, 0, 0, 0.5);
}

.front-feedback__card textarea {
    height: 74px;
    min-height: 74px;
    vertical-align: top;
    /* Без полосы прокрутки */
    overflow: hidden;
    resize: none;
}

.front-feedback__card ::placeholder {
    color: rgba(0, 0, 0, 0.5);
    opacity: 1;
}

.front-feedback__card :is(input, textarea):focus {
    outline: none;
    border-color: var(--color-on-brand);
}

.front-feedback__card .form-item > .description {
    margin-top: 4px;
    font-size: 12px;
    font-weight: 400;
    line-height: 16px;
    color: var(--color-on-brand);
}

.front-feedback__card .form-item--error-message {
    margin-top: 4px;
    font-size: 12px;
    font-weight: 400;
    line-height: 16px;
    color: var(--color-error);
}

/* Чекбокс согласия */
.front-feedback__card .form-item:has(input[type='checkbox']) {
    display: grid;
    grid-template-columns: 17px minmax(0, 1fr);
    align-items: flex-start;
    column-gap: 11px;
    row-gap: 4px;
    min-height: 52px;
    box-sizing: border-box;
    padding: 11px 0 9px;
}

.front-feedback__card .form-item:has(input[type='checkbox']) > .description {
    grid-column: 2;
    grid-row: 1;
    width: auto;
    margin-top: 0;
}

.front-feedback__card .form-item:has(input[type='checkbox']) > .description a {
    color: var(--color-on-brand);
}

.front-feedback__card .form-item:has(input[type='checkbox']) > .form-item--error-message {
    grid-column: 1 / -1;
    width: auto;
}

.front-feedback__card .form-item:has(input[type='checkbox']) input[type='checkbox'] {
    flex: 0 0 17px;
    width: 17px;
    height: 17px;
    margin: 0;
    padding: 0;
    appearance: none;
    background: var(--color-bg);
    border: 1px solid var(--color-on-brand);
    border-radius: 4px;
    cursor: pointer;
}

.front-feedback__card .form-item:has(input[type='checkbox']) input[type='checkbox']:checked {
    background-color: var(--color-accent);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 6.3 4.6 9 10 3' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-position: center;
    background-repeat: no-repeat;
    background-size: 12px 12px;
    border-color: var(--color-accent);
}

.front-feedback__card .form-item:has(input[type='checkbox']) input[type='checkbox']:focus-visible {
    outline: 2px solid var(--color-on-brand);
    outline-offset: 2px;
}

/* Кнопка отправки */
.front-feedback__card :is(input[type='submit'], button[type='submit']) {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    min-width: 0;
    height: var(--btn-h-lg);
    min-height: var(--btn-h-lg);
    box-sizing: border-box;
    padding: 19px 32px 19px 33px;
    background: var(--color-accent);
    border: 0;
    border-radius: var(--btn-radius);
    font-family: var(--font-base);
    font-size: 16px;
    font-weight: 600;
    line-height: 22px;
    color: var(--color-on-brand);
    text-align: center;
    cursor: pointer;
    transition: background-color var(--transition), color var(--transition);
}

.front-feedback__card :is(input[type='submit'], button[type='submit']):hover {
    background: var(--color-on-brand);
    color: var(--color-brand);
}

@media screen and (max-width: 991.98px) {
    .front-feedback__card > .region-feedback {
        display: block;
    }

    .front-feedback__card .region-feedback > .block:has(.webform-submission-form) {
        padding-top: 0;
    }

    .front-feedback__card .webform-submission-form {
        grid-template-columns: 1fr;
        width: 100%;
    }

    .front-feedback__card .form-item:has(textarea),
    .front-feedback__card .form-item:has(input[type='checkbox']),
    .front-feedback__card .form-actions {
        grid-column: 1;
    }
}

@media screen and (max-width: 767.98px) {
    .front-feedback__card {
        padding: 28px;
    }
}

@media screen and (max-width: 575.98px) {
    .front-feedback {
        padding: 56px 14px;
        background-position: center;
    }

    .front-feedback > .container {
        width: 100%;
        max-width: none;
        padding: 0;
    }

    .front-feedback__card {
        width: 100%;
        min-height: 0;
        padding: 30px 20px;
        border-radius: var(--radius);
    }

    .front-feedback__card h2,
    .front-feedback__card .block-title {
        margin-bottom: 18px;
        font-size: 22px;
        line-height: 28px;
    }

    .front-feedback__card .region-feedback > .block:not(:has(.webform-submission-form)) p {
        margin-bottom: 14px;
        font-size: 13px;
        line-height: 18px;
    }

    .front-feedback__card .region-feedback > .block:has(.webform-submission-form) {
        margin-top: 22px;
    }

    .front-feedback__card .webform-submission-form {
        gap: 10px;
    }

    .front-feedback__card :is(input[type='text'], input[type='email'], input[type='tel'], select) {
        height: var(--btn-h);
        min-height: var(--btn-h);
        padding: 11px 14px;
        border-radius: 7px;
        font-size: 12px;
        line-height: 18px;
    }

    .front-feedback__card textarea {
        height: 66px;
        min-height: 66px;
        padding: 12px 14px;
        border-radius: 7px;
        font-size: 12px;
        line-height: 18px;
    }

    .front-feedback__card .form-item:has(input[type='checkbox']) {
        min-height: 42px;
        padding: 6px 0;
    }

    .front-feedback__card .form-item > .description {
        font-size: 12px;
        line-height: 16px;
    }

    .front-feedback__card :is(input[type='submit'], button[type='submit']) {
        height: var(--btn-h);
        min-height: var(--btn-h);
        padding: 11px 16px;
        border-radius: 7px;
        font-size: 12px;
        line-height: 18px;
    }
}


/* ====================================================================
   16. КОНТАКТЫ И КАРТА
   ==================================================================== */
.front-contacts {
    padding: clamp(56px, 7vw, 96px) 0;
    background: #11152b url('../image/fon_kontakt.png') center / cover no-repeat;
}

.front-contacts__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, 530px);
    grid-template-rows: auto minmax(0, 1fr);
    column-gap: 56px;
    align-items: start;
    width: min(var(--container), calc(100% - 32px));
    height: 720px;
    margin: 0 auto;
    box-sizing: border-box;
    padding: 32px 56px 56px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.13);
    backdrop-filter: blur(7.95px);
    -webkit-backdrop-filter: blur(7.95px);
    border-radius: var(--radius-card);
}

.front-contacts__title {
    grid-column: 1 / -1;
    grid-row: 1;
    width: 100%;
    margin: 0 0 20px;
    box-sizing: border-box;
    font-size: 32px;
    font-weight: 400;
    line-height: 1.25;
    color: var(--color-on-brand);
    text-align: center;
    text-transform: uppercase;
}

.front-contacts__map {
    grid-column: 2;
    grid-row: 2;
    width: 100%;
    height: 530px;
    min-height: 0;
    overflow: hidden;
    background: var(--color-surface);
    border-radius: var(--radius-card);
}

.front-contacts__map > .block,
.front-contacts__map > .block > .content,
.front-contacts__map iframe {
    width: 100%;
    height: 100%;
    min-height: 0;
}

/* Тянем обёртку карты */
.front-contacts__map > .block,
.front-contacts__map > .block > .content,
.front-contacts__map .field {
    display: flex;
}

.front-contacts__map .mapContainer {
    flex: 1 1 auto;
    min-width: 0;
}

.front-contacts__panel {
    grid-column: 1;
    grid-row: 2;
    width: 100%;
    padding: 0;
    background: transparent;
    color: var(--color-on-brand);
}

.front-contacts__panel > .container {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

.front-contacts__panel > .container > .block {
    margin: 0 0 28px;
}

.front-contacts__panel h2,
.front-contacts__panel .block-title,
.front-contacts__group-title {
    display: block;
    width: fit-content;
    min-width: 220px;
    margin: 0 0 14px;
    box-sizing: border-box;
    padding: 13px 16px;
    background: var(--color-glass-strong);
    border-radius: var(--radius-xs);
    font-size: 16px;
    font-weight: 400;
    line-height: 1.25;
    color: var(--color-on-brand);
    text-align: left;
    text-transform: none;
}

.front-contacts__details {
    display: flex;
    flex-direction: column;
    gap: 28px;
}

.front-contacts__group {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.front-contacts__row {
    display: flex;
    align-items: flex-start;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.35;
    color: var(--color-on-brand);
}

/* Иконки не читаются */
.front-contacts__row img {
    display: none;
}

.front-contacts__row a {
    color: var(--color-on-brand);
    text-decoration: none;
}

.front-contacts__row a:hover {
    color: var(--color-accent);
}

/* Планшет: карта рядом */
@media screen and (min-width: 768px) and (max-width: 991.98px) {
    .front-contacts__inner {
        grid-template-columns: minmax(0, 1fr) minmax(0, 320px);
        column-gap: 28px;
        height: auto;
        padding: 28px;
    }

    .front-contacts__map {
        align-self: center;
        height: 420px;
    }
}

@media screen and (max-width: 767.98px) {
    .front-contacts__inner {
        grid-template-columns: 1fr;
        grid-template-rows: auto auto auto;
        height: auto;
        padding: 28px;
    }

    .front-contacts__title {
        grid-column: 1;
        grid-row: 1;
    }

    .front-contacts__panel {
        grid-column: 1;
        grid-row: 2;
    }

    .front-contacts__map {
        grid-column: 1;
        grid-row: 3;
    }

    .front-contacts__map,
    .front-contacts__map > .block,
    .front-contacts__map > .block > .content,
    .front-contacts__map iframe {
        height: 360px;
        min-height: 360px;
    }
}

@media screen and (max-width: 575.98px) {
    .front-contacts {
        padding: 48px 14px;
    }

    .front-contacts__inner {
        width: 100%;
        padding: 24px 16px 18px;
        border-radius: var(--radius);
    }

    .front-contacts__title {
        margin-bottom: 18px;
        font-size: 20px;
        line-height: 27px;
    }

    .front-contacts__panel > .container > .block {
        margin-bottom: 18px;
    }

    .front-contacts__panel h2,
    .front-contacts__panel .block-title,
    .front-contacts__group-title {
        width: 100%;
        min-width: 0;
        margin-bottom: 10px;
        padding: 9px 12px;
        border-radius: 7px;
        font-size: 12px;
        line-height: 16px;
    }

    .front-contacts__details {
        gap: 16px;
    }

    .front-contacts__group {
        gap: 5px;
    }

    .front-contacts__row {
        font-size: 12px;
        line-height: 16px;
    }

    .front-contacts__map {
        margin-top: 20px;
        border-radius: var(--radius);
    }

    .front-contacts__map,
    .front-contacts__map > .block,
    .front-contacts__map > .block > .content,
    .front-contacts__map iframe {
        height: 240px;
        min-height: 240px;
    }
}


/* ====================================================================
   17. РАЗДЕЛ КАТАЛОГА
   ==================================================================== */
.catalog-term-page {
    width: 100%;
    max-width: var(--container);
    margin-right: auto;
    margin-left: auto;
}

/* Отступ до крошек */
body.vesta-page-catalog #main .wr_content > .container {
    padding-top: clamp(24px, 3vw, 40px);
}

/* Приглушённый фон корня каталога */
body.vesta-page-catalog-root #main .wr_content {
    background:
        linear-gradient(rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.5)),
        url('../image/fon_catalog.png') center bottom / cover no-repeat;
}

/* Разделы с заголовком на баннере */
body:is(.vesta-catalog-term--bystrosokhnushchie-protivoprigarnye-kraski-spirtovye, .vesta-catalog-term--vodnye-protivoprigarnye-kraski) #main .wr_content > .container {
    padding-top: clamp(24px, 4.17vw, 50px);
}

body:is(.vesta-catalog-term--bystrosokhnushchie-protivoprigarnye-kraski-spirtovye, .vesta-catalog-term--vodnye-protivoprigarnye-kraski) #main .breadcrumb {
    margin-bottom: clamp(28px, 5.75vw, 69px);
}

/* Отбивка до формы */
body.vesta-page-catalog:not(.vesta-page-product) #main .wr_content {
    padding-bottom: 107px;
}

/* Дублирует баннер */
.catalog-term-page__view-title {
    margin: 0;
    font-size: 0;
    line-height: 0;
}

/* Класс из preprocess_html */
body.vesta-catalog-term-has-banner #main .block-page-title-block,
body.vesta-catalog-term-has-banner #block-vesta-theme-page-title {
    display: none;
}

/* Заголовок раздела */
body.vesta-page-catalog #main :is(h1, .page-title) {
    margin: 0 0 clamp(16px, 2vw, 24px);
    font-size: var(--h2);
    font-weight: 600;
    color: var(--color-brand);
    text-transform: uppercase;
}

.catalog-term-page__banner {
    position: relative;
    width: 100%;
    height: 422px;
    margin: 0 0 28px;
    overflow: hidden;
    background: #d9d9d9;
    border-radius: var(--radius-card);
}

.catalog-term-page__banner .field,
.catalog-term-page__banner .field__item {
    width: 100%;
    height: 100%;
}

.catalog-term-page__banner img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Плашка под заголовком */
.catalog-term-page__banner-title {
    position: absolute;
    top: 50px;
    left: 48px;
    z-index: 2;
    width: auto;
    max-width: min(775px, calc(100% - 68px));
    margin: 0;
    padding: 0;
    background: transparent;
    font-family: var(--font-base);
    font-size: 35px;
    font-weight: 700;
    line-height: 50px;
    color: var(--color-brand);
    text-transform: uppercase;
}

.catalog-term-page__banner-title > span {
    display: inline;
    padding: 3px 0;
    background: var(--color-scrim);
    border-radius: 0 var(--radius-card) var(--radius-card) 0;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
}

.catalog-term-page__banner-title.has-line-background > span {
    position: relative;
    z-index: 1;
    background: transparent;
}

.catalog-term-page__description {
    width: 100%;
    max-width: 1167px;
    margin: 0;
    font-size: 19px;
    line-height: 26px;
    color: var(--color-ink);
}

.catalog-term-page__description p {
    margin: 0;
}

/* Продолжение таблицы */
.catalog-term-page__note {
    /* Схлопнуть с рамкой */
    margin-top: -1px;
    box-sizing: border-box;
    padding: 18px 24px;
    background: var(--color-bg);
    border: 1px solid var(--catalog-table-border);
    border-radius: 0 0 var(--radius-sm) var(--radius-sm);
    font-size: 16px;
    font-style: italic;
    line-height: 22px;
    color: var(--color-danger);
    text-align: center;
}

.catalog-term-page__description p:last-child,
.catalog-term-page__note p:last-child {
    margin-bottom: 0;
}

@media screen and (max-width: 575.98px) {
    body.vesta-page-catalog:not(.vesta-page-product) #main .wr_content {
        padding-bottom: 48px;
    }

    .catalog-term-page__banner {
        height: auto;
        aspect-ratio: 16 / 9;
        margin-bottom: 14px;
        border-radius: var(--radius);
    }

    /* Сплошная плашка */
    .catalog-term-page__banner-title {
        top: 16px;
        left: 12px;
        width: calc(100% - 24px);
        max-width: calc(100% - 24px);
        min-height: 84px;
        box-sizing: border-box;
        padding: 12px 16px;
        background: var(--color-scrim);
        backdrop-filter: blur(var(--blur-glass));
        border-radius: var(--radius);
        font-size: 22px;
        line-height: 29px;
        text-align: center;
    }

    .catalog-term-page__banner-title > span,
    .catalog-term-page__banner-title.has-line-background > span {
        display: block;
        padding: 0;
        background: transparent;
        border-radius: 0;
    }

    .catalog-term-page__banner-title .line-background {
        display: none;
    }

    .catalog-term-page__description {
        margin-bottom: 0;
        font-size: 14px;
        line-height: 20px;
    }

    /* Строки как карточки */
    .catalog-term-page__note {
        margin-top: 8px;
        padding: 14px 16px;
        border-radius: var(--radius);
        font-size: 12px;
        line-height: 18px;
    }
}


/* ====================================================================
   18. ТАБЛИЦА ТОВАРОВ
   ==================================================================== */
/* Рамка и примечание */
.catalog-term-page,
.catalog-term-page__products,
.catalog-product-table__header {
    --catalog-table-bg: #4a7bb6;
    --catalog-table-border: #364852;
    --catalog-table-pad-x: 21px;
    --catalog-table-pad-y: 29px;
    --catalog-row-h: 138px;
}

/* Своя заливка раздела */
.vesta-catalog-term--vodnye-protivoprigarnye-kraski .catalog-term-page__products,
.vesta-catalog-term--vodnye-protivoprigarnye-kraski .catalog-product-table__header {
    --catalog-table-bg: #45b7e9;
}

/* Шапка таблицы */
.catalog-product-table__header {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: 59px;
}

.catalog-product-table__header > div {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 106px;
    box-sizing: border-box;
    padding: 16px;
    background: var(--catalog-table-bg);
    border: 1px solid var(--catalog-table-border);
    font-size: 19px;
    font-weight: 700;
    line-height: 26px;
    color: var(--color-on-brand);
    text-align: center;
}

.catalog-product-table__header > div:first-child {
    border-radius: var(--radius-sm) 0 0 0;
}

.catalog-product-table__header > div:last-child {
    border-radius: 0 var(--radius-sm) 0 0;
}

.catalog-product-table__logo img {
    display: block;
    width: 200px;
    max-width: 100%;
    height: 74px;
    box-sizing: border-box;
    padding: 4px 10px;
    background: var(--color-bg);
    border-radius: var(--radius-sm);
    object-fit: contain;
}

/* Тело таблицы */
.catalog-product-row {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    min-height: var(--catalog-row-h);
    font-size: 16px;
    font-weight: 600;
    line-height: 22px;
    color: var(--color-on-brand);
}

/* Контекстные ссылки */
.catalog-product-row > [data-contextual-id],
.catalog-product-row > .contextual {
    display: none;
}

.catalog-product-row__cell {
    min-width: 0;
    box-sizing: border-box;
    padding: var(--catalog-table-pad-y) var(--catalog-table-pad-x);
    background: var(--catalog-table-bg);
    border: 1px solid var(--catalog-table-border);
    word-break: break-word;
}

.catalog-product-row__cell p {
    margin: 0;
}

.catalog-product-row__cell p + p {
    margin-top: 6px;
}

/* 1-я колонка */
.catalog-product-row__cell--image {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}

.catalog-product-row__cell--image img {
    display: block;
    width: auto;
    max-width: 100%;
    height: var(--catalog-row-h);
    object-fit: contain;
}

/* 2-я колонка */
.catalog-product-row__caption {
    margin-bottom: 9px;
}

/* Пустая подпись не даёт отступ */
.catalog-product-row__caption:not(:has(*)) {
    display: none;
}

.catalog-product-row__title {
    font-size: 32px;
    font-weight: 700;
    line-height: 1.19;
    /* Слова не рвём: не влезло — initTitleFit уменьшит кегль */
    word-break: normal;
}

.catalog-product-row__title a {
    color: var(--color-on-brand);
    text-decoration: none;
}

.catalog-product-row__title a:is(:hover, :focus-visible) {
    color: var(--color-on-brand);
    text-decoration: underline;
}

.catalog-product-row__title::after {
    content: '';
    display: block;
    width: 139px;
    max-width: 100%;
    margin-top: 5px;
    border-top: 1.3px solid var(--color-on-brand);
}

@media screen and (max-width: 991.98px) {
    .catalog-term-page__products,
    .catalog-product-table__header {
        --catalog-table-pad-x: 14px;
        --catalog-table-pad-y: 18px;
        --catalog-row-h: 112px;
    }

    .catalog-product-table__header > div {
        min-height: 84px;
        padding: 12px;
        font-size: 16px;
        line-height: 22px;
    }

    .catalog-product-table__logo img {
        width: 150px;
        height: 58px;
    }

    .catalog-product-row {
        font-size: 14px;
        line-height: 20px;
    }

    /* Колонки узкие: перенос по слогам */
    .catalog-product-table__header > div,
    .catalog-product-row__cell {
        word-break: normal;
        overflow-wrap: normal;
        -webkit-hyphens: auto;
        hyphens: auto;
        /* Без огрызков в 2 буквы */
        hyphenate-limit-chars: 8 4 3;
    }

    .catalog-product-row__title {
        font-size: 24px;
        line-height: 1.25;
        /* Марку не переносим: кегль подгонит initTitleFit */
        -webkit-hyphens: none;
        hyphens: none;
    }
}

@media screen and (max-width: 575.98px) {
    /* Карточки на телефоне */
    .catalog-product-table__header {
        display: none;
    }

    .catalog-term-page__products {
        margin-top: 16px;
    }

    .catalog-product-row {
        display: block;
        min-height: 0;
        margin-bottom: 16px;
        overflow: hidden;
        border: 1px solid var(--catalog-table-border);
        border-radius: var(--radius);
    }

    .catalog-product-row__cell {
        padding: 12px 16px;
        border: 0;
    }

    .catalog-product-row__title {
        font-size: 20px;
        line-height: 1.3;
    }

    .catalog-product-row__cell--image {
        padding: 12px 0 0;
    }

    .catalog-product-row__cell--image img {
        height: 150px;
        margin: 0 auto;
    }

    /* Подписи колонок */
    .catalog-product-row__cell--filler::before {
        content: 'Огнеупорный наполнитель';
    }

    .catalog-product-row__cell--purpose::before {
        content: 'Назначение';
    }

    .catalog-product-row__cell--filler::before,
    .catalog-product-row__cell--purpose::before {
        display: block;
        margin-bottom: 2px;
        font-size: 12px;
        font-weight: 700;
        line-height: 16px;
        opacity: 0.75;
    }
}


/* Товары плашками */
/* Шапка из представления */
.catalog-term-page--cards .view-header {
    display: none;
}

.catalog-term-page--cards .catalog-term-page__products {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    /* Все ряды одной высоты */
    grid-auto-rows: 1fr;
    gap: 24px;
    margin-top: 24px;
}

.catalog-term-page--cards .catalog-term-page__products > * {
    display: flex;
    min-width: 0;
}

/* Размер как у плашек разделов */
.catalog-term-page--cards .catalog-product-row {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-width: 0;
    min-height: 146px;
    box-sizing: border-box;
    padding: 24px 28px;
    background: var(--catalog-table-bg);
    border: 1px solid var(--catalog-table-border);
    border-radius: 16px;
    text-align: center;
}

.catalog-term-page--cards .catalog-product-row__cell {
    width: 100%;
    padding: 0;
    background: none;
    border: 0;
}

.catalog-term-page--cards .catalog-product-row__cell + .catalog-product-row__cell {
    margin-top: 14px;
}

/* Пустые ячейки не занимают место */
.catalog-term-page--cards .catalog-product-row__cell:not(:has(*)) {
    display: none;
}

.catalog-term-page--cards .catalog-product-row__cell--image img {
    height: 150px;
}

.catalog-term-page--cards .catalog-product-row__title {
    font-size: 20px;
    line-height: 1.35;
}

/* ТУ и ГОСТ мельче названия */
/* em — чтобы жить с initTitleFit */
.catalog-term-page--cards .catalog-product-row__norm {
    font-size: 0.75em;
}

/* Плашки товаров без полосы */
.catalog-term-page--cards .catalog-product-row__title::after {
    display: none;
}

/* Назначение к низу */
.catalog-term-page--cards .catalog-product-row__cell--purpose {
    margin-top: auto;
    padding-top: 14px;
}

/* Отдельное примечание */
.catalog-term-page--cards .catalog-term-page__note {
    margin-top: 24px;
    border-radius: var(--radius);
}

@media screen and (max-width: 991.98px) {
    .catalog-term-page--cards .catalog-term-page__products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 18px;
    }
}

@media screen and (max-width: 575.98px) {
    .catalog-term-page--cards .catalog-term-page__products {
        grid-template-columns: minmax(0, 1fr);
        /* В столбик — по содержанию */
        grid-auto-rows: auto;
        gap: 16px;
        margin-top: 16px;
    }

    /* Уже есть карточки */
    .catalog-term-page--cards .catalog-product-row {
        min-height: 126px;
        margin-bottom: 0;
        padding: 12px 0 16px;
        border-radius: var(--radius);
    }

    .catalog-term-page--cards .catalog-product-row__cell {
        padding: 0 16px;
    }

    .catalog-term-page--cards .catalog-product-row__title {
        font-size: 18px;
        line-height: 1.33;
    }

    /* Плашки без подписей колонок */
    .catalog-term-page--cards .catalog-product-row__cell--filler::before,
    .catalog-term-page--cards .catalog-product-row__cell--purpose::before {
        content: none;
    }
}


/* ====================================================================
   19. ДОЧЕРНИЕ РАЗДЕЛЫ
   ==================================================================== */
.view-id-catalog:is(.view-display-id-block, .view-display-id-page) > .view-content {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    margin: 12px 0 48px;
}

.view-id-catalog:is(.view-display-id-block, .view-display-id-page) > .view-content > .views-row {
    display: flex;
}

.view-id-catalog:is(.view-display-id-block, .view-display-id-page) > .view-content > .views-row,
.view-id-catalog:is(.view-display-id-block, .view-display-id-page) .taxonomy-term,
.view-id-catalog:is(.view-display-id-block, .view-display-id-page) .ds-1col {
    min-width: 0;
    height: 100%;
}

.view-id-catalog:is(.view-display-id-block, .view-display-id-page) .taxonomy-term,
.view-id-catalog:is(.view-display-id-block, .view-display-id-page) .ds-1col,
.view-id-catalog:is(.view-display-id-block, .view-display-id-page) h2 {
    width: 100%;
}

/* Картинка не нужна */
.view-id-catalog:is(.view-display-id-block, .view-display-id-page) .field--name-field-catalog-image {
    display: none;
}

.view-id-catalog:is(.view-display-id-block, .view-display-id-page) h2 {
    height: 100%;
    margin: 0;
    font-size: 20px;
    font-weight: 600;
    line-height: 27px;
}

.view-id-catalog:is(.view-display-id-block, .view-display-id-page) h2 a {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 146px;
    box-sizing: border-box;
    padding: 24px 28px;
    background: linear-gradient(135deg, var(--color-brand) 0%, #064d84 100%);
    border: 1px solid rgba(69, 170, 188, 0.55);
    border-radius: 16px;
    box-shadow: 0 8px 24px rgba(0, 51, 102, 0.12);
    color: var(--color-on-brand);
    text-align: center;
    text-decoration: none;
    transition: transform var(--transition), box-shadow var(--transition), background var(--transition);
}

.view-id-catalog:is(.view-display-id-block, .view-display-id-page) h2 a::after {
    content: '';
    display: block;
    width: min(180px, 72%);
    margin-top: 12px;
    border-top: 2px solid var(--color-accent);
}

.view-id-catalog:is(.view-display-id-block, .view-display-id-page) h2 a:is(:hover, :focus-visible) {
    background: linear-gradient(135deg, #064d84 0%, #087b9b 100%);
    box-shadow: 0 12px 30px rgba(0, 51, 102, 0.2);
    color: var(--color-on-brand);
    text-decoration: none;
    transform: translateY(-3px);
}

@media screen and (max-width: 991.98px) {
    .view-id-catalog:is(.view-display-id-block, .view-display-id-page) > .view-content {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 18px;
    }
}

@media screen and (max-width: 575.98px) {
    .view-id-catalog:is(.view-display-id-block, .view-display-id-page) > .view-content {
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
        margin: 12px 0 36px;
    }

    .view-id-catalog:is(.view-display-id-block, .view-display-id-page) h2 {
        font-size: 18px;
        line-height: 24px;
    }

    .view-id-catalog:is(.view-display-id-block, .view-display-id-page) h2 a {
        height: 126px;
        padding: 18px 20px;
        border-radius: var(--radius);
    }

    .view-id-catalog:is(.view-display-id-block, .view-display-id-page) h2 a::after {
        margin-top: 9px;
    }
}


/* ====================================================================
   20. СТРАНИЦА ТОВАРА
   ==================================================================== */
.product-teaser {
    display: flex;
    gap: 50px;
}

.product-teaser-image,
.product-teaser-info {
    max-width: 500px;
}

.product-teaser-image .current-slide {
    margin: 0 0 10px;
}

.product-teaser-image .current-slide .element img {
    width: 500px;
    max-width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: cover;
}

.product-teaser-image .nav-slide .slick-list {
    margin: 0 -5px;
}

.product-teaser-image .nav-slide .element {
    width: 118px;
    margin: 0 5px;
}

.product-teaser-image .nav-slide .element img {
    width: 118px;
    height: 118px;
    object-fit: cover;
}

.product-view-full button.slick-prev.slick-arrow {
    left: -25px;
}

.product-view-full button.slick-next.slick-arrow {
    right: -25px;
}

.node--view-mode-full .field--name-body img {
    margin: 0 10px;
}


/* Карточка товара */
body.vesta-page-product #main .wr_content > .container {
    padding-top: clamp(24px, 3vw, 40px);
    padding-bottom: clamp(32px, 4vw, 56px);
}

/* Обёртка скрытых служебных полей */
body.vesta-page-product .group-header:not(:has(*)) {
    display: none;
}

body.vesta-page-product #main :is(h1, .page-title, .h1-product, .field--name-title) {
    margin: 0 0 clamp(16px, 2vw, 24px);
    font-size: var(--h2);
    font-weight: 700;
    line-height: 1.3;
    color: var(--color-brand);
    text-transform: none;
}

/* Подзаголовки под названием */
body.vesta-page-product #main h1:has(+ .product-subtitle) {
    margin-bottom: 6px;
}

body.vesta-page-product #main .product-subtitle {
    margin: 0 0 clamp(16px, 2vw, 24px);
    font-family: var(--font-base);
    font-size: clamp(16px, 1.9vw, 20px);
    font-weight: 400;
    line-height: 1.45;
    color: var(--color-text-muted);
}

/* Каждое поле с новой строки */
body.vesta-page-product #main .product-subtitle__line + .product-subtitle__line {
    margin-top: 2px;
}

/* Не дублируем поля в теле карточки */
body.vesta-page-product #main :is(.field--name-field-process, .field--name-field-normativy-tu-gost-i-t-d) {
    display: none;
}

/* Текстовые поля товара */
body.vesta-page-product .field--type-text-long,
body.vesta-page-product .field--type-text-with-summary {
    font-size: 16px;
    line-height: 24px;
    color: var(--color-ink);
}

/* Интервал между полями */
body.vesta-page-product :is(.product-view-full, .commerce-product--view-mode-full) :is(.field--type-text-long, .field--type-text-with-summary):not(:last-child),
body.vesta-page-product :is(.product-view-full, .commerce-product--view-mode-full) > .field--type-image:not(:last-child) {
    margin-bottom: clamp(14px, 1.75vw, 22px);
}

/* Две колонки карточки */
body.vesta-page-product #main div:has(> .group-left):has(> .group-right) {
    display: grid;
    /* Под стиль изображения */
    grid-template-columns: minmax(0, 1fr) minmax(0, 260px);
    column-gap: clamp(20px, 2.5vw, 36px);
    row-gap: clamp(16px, 2vw, 24px);
    align-items: start;
}

/* Явные позиции колонок */
body.vesta-page-product #main :is(.group-header, .group-footer) {
    grid-column: 1 / -1;
}

body.vesta-page-product #main .group-left {
    grid-column: 1;
}

body.vesta-page-product #main .group-right {
    grid-column: 2;
    /* Высота под таблицу */
    align-self: stretch;
    position: relative;
    min-height: 240px;
}

body.vesta-page-product #main .group-right:has(.field__item + .field__item) {
    min-height: 420px;
}

/* Float мешает гриду */
body.vesta-page-product #main :is(.group-left, .group-right) {
    float: none;
    width: auto;
    min-width: 0;
}

/* Не выше таблицы */
body.vesta-page-product #main .group-right .field--type-image {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    gap: clamp(14px, 1.75vw, 22px);
}

/* Делят высоту поровну */
body.vesta-page-product #main .group-right .field--type-image > .field__item {
    flex: 1 1 0;
    min-height: 0;
    display: flex;
    justify-content: center;
    align-items: flex-start;
}

/* Высота через blazy */
body.vesta-page-product #main .group-right .field--type-image > .field__item > * {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    width: 100%;
    height: 100%;
    min-height: 0;
}

/* Скругление и тень */
body.vesta-page-product #main .group-right .field--type-image img {
    display: block;
    /* Бокс по картинке */
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-card);
}

@media screen and (max-width: 767.98px) {
    body.vesta-page-product #main div:has(> .group-left):has(> .group-right) {
        grid-template-columns: minmax(0, 1fr);
        row-gap: 20px;
    }

    /* Фото после таблицы */
    body.vesta-page-product #main :is(.group-left, .group-right) {
        grid-column: 1;
    }

    body.vesta-page-product #main .group-right {
        position: static;
        min-height: 0;
    }

    body.vesta-page-product #main .group-right:has(.field__item + .field__item) {
        min-height: 0;
    }

    body.vesta-page-product #main .group-right .field--type-image {
        position: static;
        align-items: center;
    }

    body.vesta-page-product #main .group-right .field--type-image > .field__item {
        flex: 0 0 auto;
        width: 100%;
        max-width: 320px;
    }

    /* Без ограничения высоты */
    body.vesta-page-product #main .group-right .field--type-image img {
        width: 100%;
        max-height: none;
    }
}

body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) :is(h2, h3, h4) {
    margin: 28px 0 12px;
    font-size: 20px;
    font-weight: 600;
    line-height: 27px;
    color: var(--color-brand);
}

body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) :is(p, ul, ol) {
    margin: 0 0 16px;
}

body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) :is(p, ul, ol):last-child {
    margin-bottom: 0;
}

/* Маркеры акцентным цветом */
body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) ul {
    padding-left: 0;
    list-style: none;
}

body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) ul > li {
    position: relative;
    margin-bottom: 6px;
    padding-left: 18px;
}

body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) ul > li::before {
    content: '';
    position: absolute;
    top: 9px;
    left: 0;
    width: 7px;
    height: 7px;
    background: var(--color-accent);
    border-radius: 50%;
}

/* Таблица из редактора */
body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary),
body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) figure.table {
    max-width: 100%;
    overflow-x: auto;
}

body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) figure.table {
    margin: 0 0 24px;
}

body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) table {
    /* Рамка потемнее */
    --product-table-border: rgba(0, 51, 102, 0.55);
    width: 100%;
    min-width: 480px;
    /* separate ради радиуса */
    border-collapse: separate;
    border-spacing: 0;
    /* Радиус через overflow */
    overflow: hidden;
    /* auto — колонка не уже слова */
    table-layout: auto;
    background: var(--color-bg);
    border: 2px solid var(--color-brand);
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-card);
    font-size: 15px;
    line-height: 21px;
}

body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) :is(th, td) {
    padding: 12px 16px;
    border: 0;
    border-right: 1px solid var(--product-table-border, var(--color-border));
    border-bottom: 1px solid var(--product-table-border, var(--color-border));
    /* По центру ячейки */
    vertical-align: middle;
    /* Слово целиком уходит на строку ниже */
    word-break: normal;
    overflow-wrap: normal;
    -webkit-hyphens: none;
    hyphens: none;
}

/* Без двойной рамки */
body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) tr > :is(th, td):last-child {
    border-right: 0;
}

body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) :is(thead, tbody, tfoot):last-child > tr:last-child > :is(th, td) {
    border-bottom: 0;
}

/* Ширина колонок */
body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) table :is(th, td):first-child {
    width: 54%;
}

/* Многоколоночная: ширина по содержимому */
body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) table:has(tr > :nth-child(4)) {
    table-layout: auto;
}

body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) table:has(tr > :nth-child(4)) :is(th, td) {
    padding: 10px 12px;
}

/* Колонка названий пошире */
body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) table:has(tr > :nth-child(4)) :is(th, td):first-child {
    width: 32%;
    min-width: 150px;
}

/* Значения не сплющиваются */
body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) table:has(tr > :nth-child(4)) :is(th, td):not(:first-child):not([colspan]) {
    min-width: 8ch;
}

body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) :is(thead th, tbody th) {
    background: var(--color-brand);
    font-weight: 600;
    color: var(--color-on-brand);
    text-align: center;
}

/* Шапка без th */
body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) table > tbody > tr:first-child > td {
    background: var(--color-brand);
    font-weight: 600;
    color: var(--color-on-brand);
    text-align: center;
}

/* Светлые разделители */
body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) :is(thead th, tbody th),
body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) table > tbody > tr:first-child > td {
    border-right-color: rgba(255, 255, 255, 0.45);
    border-bottom-color: var(--product-table-border);
}

body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) tbody tr:nth-child(even) > td {
    background: var(--color-surface-tint);
}

body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) table p {
    margin: 0;
}

/* Отбивка таблицы */
body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) :is(table, figure.table) {
    margin-top: clamp(20px, 2.5vw, 28px);
    margin-bottom: clamp(20px, 2.5vw, 28px);
}

/* Отступ у figure */
body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) figure.table > table {
    margin-top: 0;
    margin-bottom: 0;
}

/* Есть фотографии */
body.vesta-page-product #main div:has(> .group-left):has(> .group-right) .group-left > .field:first-child > :is(table, figure.table):first-child {
    margin-top: 0;
}

/* Примечание в тексте */
.text-note,
.text-note p {
    font-size: 12px;
    line-height: 17px;
    color: var(--color-danger);
}

/* Картинки как карточки */
body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) img,
body.vesta-page-product .product-view-full > .field--type-image img {
    display: block;
    box-sizing: border-box;
    width: auto;
    max-width: 100%;
    height: auto;
    margin: 0 auto 28px;
    padding: 8px;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-card);
}

/* Отступ у обёртки */
body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) figure img,
body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) p:has(> img:only-child) > img,
body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) a:has(> img:only-child) > img {
    margin-bottom: 0;
}

body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) p:has(> img:only-child),
body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) p:has(> a:only-child > img) {
    margin-bottom: 28px;
}

/* Блочная ссылка-обёртка */
body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) a:has(> img:only-child) {
    display: block;
    margin: 0 auto 28px;
}

body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) figure:not(.table) {
    display: table;
    max-width: 100%;
    margin: 0 auto 28px;
}

/* Выравнивание из редактора */
body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) :is(img, figure, a).align-right,
body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) :is(img, figure, a).align-left {
    max-width: 42%;
}

body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) :is(img, figure, a).align-right {
    float: right;
    margin: 0 0 28px 28px;
}

body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) :is(img, figure, a).align-left {
    float: left;
    margin: 0 28px 28px 0;
}

/* Отступы задала обёртка */
body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) :is(figure, a):is(.align-right, .align-left) img {
    width: 100%;
    max-width: 100%;
    margin: 0;
}

/* Без обтекания */
@media screen and (max-width: 991.98px) {
    body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) :is(img, figure, a):is(.align-right, .align-left) {
        float: none;
        max-width: 100%;
        margin: 0 auto 28px;
    }

    /* Колонки узкие: перенос по слогам */
    body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) :is(th, td) {
        -webkit-hyphens: auto;
        hyphens: auto;
        /* Без огрызков в 2 буквы */
        hyphenate-limit-chars: 8 4 3;
        /* Крайний случай: слог не влез */
        overflow-wrap: break-word;
    }
}

/* Последний элемент поля */
body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) > :is(img, p, figure:not(.table), a):last-child,
body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) > .field__item:last-child > :is(img, p, figure:not(.table), a):last-child {
    margin-bottom: 0;
}

body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) figcaption {
    display: table-caption;
    caption-side: bottom;
    padding: 8px 12px 0;
    font-size: 14px;
    line-height: 19px;
    color: var(--color-text-muted);
    text-align: center;
}

/* Табы Display Suite */
body.vesta-page-product #main .wr_content :is(.nav-tabs, .horizontal-tabs-list) {
    gap: 8px;
    margin: 0 0 24px;
    padding: 0;
    background: none;
    border: 0;
    border-bottom: 1px solid var(--color-border);
    list-style: none;
}

body.vesta-page-product #main .wr_content :is(.nav-tabs .nav-link, .horizontal-tabs-list a) {
    margin-bottom: -1px;
    padding: 12px 20px;
    background: none;
    border: 1px solid transparent;
    border-radius: var(--radius-xs) var(--radius-xs) 0 0;
    font-size: 16px;
    font-weight: 600;
    color: var(--color-brand);
    text-decoration: none;
}

body.vesta-page-product #main .wr_content :is(.nav-tabs .nav-link.active, .horizontal-tabs-list .selected a) {
    background: var(--color-bg);
    border-color: var(--color-border) var(--color-border) var(--color-bg);
    color: var(--color-brand);
}

@media screen and (max-width: 575.98px) {
    body.vesta-page-product .field--type-text-long,
    body.vesta-page-product .field--type-text-with-summary {
        font-size: 14px;
        line-height: 20px;
    }

    body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) table {
        min-width: 360px;
        font-size: 13px;
        line-height: 18px;
    }

    body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) :is(th, td) {
        padding: 9px 10px;
    }

    /* Узкая таблица */
    body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) table :is(th, td):first-child {
        width: 48%;
    }

    /* Многоколоночная плотнее */
    body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) table:has(tr > :nth-child(4)) :is(th, td) {
        padding: 8px 9px;
    }

    body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) table:has(tr > :nth-child(4)) :is(th, td):first-child {
        min-width: 120px;
    }

    body.vesta-page-product :is(.product-view-full, .commerce-product--view-mode-full) :is(.field--type-text-long, .field--type-text-with-summary):not(:last-child),
    body.vesta-page-product :is(.product-view-full, .commerce-product--view-mode-full) > .field--type-image:not(:last-child) {
        margin-bottom: 10px;
    }

    body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) img {
        margin-bottom: 18px;
        padding: 5px;
        border-radius: var(--radius);
    }

    body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) p:has(> img:only-child),
    body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) p:has(> a:only-child > img),
    body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) a:has(> img:only-child),
    body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) figure:not(.table) {
        margin-bottom: 18px;
    }

    body.vesta-page-product :is(.field--type-text-long, .field--type-text-with-summary) :is(img, figure, a):is(.align-right, .align-left) {
        margin-bottom: 18px;
    }
}


/* ====================================================================
   21. СТРАНИЦА ПОИСКА
   ==================================================================== */
:is(body.path-search, body.vesta-route-search-api-page) #main .wr_content {
    min-height: 420px;
    padding: clamp(42px, 5vw, 72px) 0 clamp(72px, 8vw, 112px);
    background: var(--color-surface-search);
}

:is(body.path-search, body.vesta-route-search-api-page) #main .wr_content > .container {
    max-width: var(--container);
}

:is(body.path-search, body.vesta-route-search-api-page) #main .breadcrumb {
    margin: 0 0 24px;
    font-size: 14px;
    line-height: 20px;
}

:is(body.path-search, body.vesta-route-search-api-page) #main h1 {
    margin: 0 0 24px;
    font-family: var(--font-base);
    font-size: var(--h1);
    font-weight: 600;
    line-height: 1.25;
    color: var(--color-brand);
}

/* Форма поиска: поле на всю ширину, лупа внутри */
:is(body.path-search, body.vesta-route-search-api-page) #main form.vesta-search-page-form {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    max-width: none;
    height: var(--field-h);
    margin: 0;
    padding: 0 18px;
    box-sizing: border-box;
    background: var(--color-bg);
    border: 1px solid var(--color-accent);
    border-radius: var(--field-radius);
    transition: border-color var(--transition), box-shadow var(--transition);
}

:is(body.path-search, body.vesta-route-search-api-page) #main form.vesta-search-page-form:focus-within {
    border-color: var(--color-brand);
    box-shadow: var(--focus-ring);
}

:is(body.path-search, body.vesta-route-search-api-page) #main form.vesta-search-page-form .form-item {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
}

:is(body.path-search, body.vesta-route-search-api-page) #main form.vesta-search-page-form :is(input.form-search, input[type='search'], input[type='text']) {
    width: 100%;
    height: 22px;
    min-height: 22px;
    padding: 0;
    box-sizing: border-box;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    font: 500 16px/22px var(--font-base);
    color: var(--color-text);
    -webkit-appearance: none;
    appearance: none;
}

:is(body.path-search, body.vesta-route-search-api-page) #main form.vesta-search-page-form input::placeholder {
    color: var(--color-text-muted);
    opacity: 1;
}

:is(body.path-search, body.vesta-route-search-api-page) #main form.vesta-search-page-form input:focus {
    outline: 0;
    box-shadow: none;
}

/* Крестик Chrome */
:is(body.path-search, body.vesta-route-search-api-page) #main form.vesta-search-page-form input[type='search']::-webkit-search-cancel-button {
    -webkit-appearance: none;
}

:is(body.path-search, body.vesta-route-search-api-page) #main form.vesta-search-page-form .form-actions {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    width: auto;
    height: 22px;
    margin: 0;
    padding: 0;
}

:is(body.path-search, body.vesta-route-search-api-page) #main form.vesta-search-page-form .form-actions :is(input[type='submit'], button[type='submit']) {
    width: 22px;
    height: 22px;
    min-width: 22px;
    min-height: 22px;
    padding: 0;
    background: transparent url('../image/Search.svg') no-repeat center / contain;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    font-size: 0;
    color: transparent;
    cursor: pointer;
    transition: opacity var(--transition);
}

:is(body.path-search, body.vesta-route-search-api-page) #main form.vesta-search-page-form .form-actions :is(input[type='submit'], button[type='submit']):hover {
    background-color: transparent;
    opacity: 0.75;
}

/* Результаты */
:is(body.path-search, body.vesta-route-search-api-page) #main .search-api-page-results,
:is(body.path-search, body.vesta-route-search-api-page) #main .search-results {
    margin: 42px 0 0;
    padding: 0;
    list-style: none;
}

:is(body.path-search, body.vesta-route-search-api-page) #main .search-api-page-results > li,
:is(body.path-search, body.vesta-route-search-api-page) #main .search-results > li {
    margin: 0 0 16px;
    padding: 20px 24px;
    background: var(--color-bg);
    border-left: 4px solid var(--color-accent);
    border-radius: var(--radius);
    box-shadow: var(--shadow-card);
}

:is(body.path-search, body.vesta-route-search-api-page) #main .search-result__title,
:is(body.path-search, body.vesta-route-search-api-page) #main .search-result__title a,
:is(body.path-search, body.vesta-route-search-api-page) #main .search-results h3 a {
    margin: 0 0 8px;
    font-size: 18px;
    font-weight: 600;
    line-height: 25px;
    color: var(--color-brand);
    text-decoration: none;
}

:is(body.path-search, body.vesta-route-search-api-page) #main .search-result__title a:hover,
:is(body.path-search, body.vesta-route-search-api-page) #main .search-results h3 a:hover {
    color: var(--color-accent);
}

:is(body.path-search, body.vesta-route-search-api-page) #main .search-result__snippet {
    margin: 0;
    color: var(--color-text-muted);
}

@media screen and (max-width: 575.98px) {
    :is(body.path-search, body.vesta-route-search-api-page) #main form.vesta-search-page-form {
        padding: 0 14px;
        gap: 10px;
    }
}


/* ====================================================================
   22. ПОДВАЛ
   ==================================================================== */
.site-footer {
    padding: 47px 0 0;
    background: var(--color-surface-tint);
    font-size: 16px;
    line-height: 1.375;
    color: var(--color-ink);
}

.site-footer a {
    color: inherit;
    text-decoration: none;
}

.site-footer a:hover {
    color: var(--color-accent);
}

.site-footer__inner {
    display: grid;
    grid-template-columns: 243px auto minmax(0, 560px);
    gap: var(--gap);
}

.site-footer__logo {
    display: block;
    width: 200px;
    padding: 4px 10px;
    background: var(--color-bg);
    border-radius: var(--radius-sm);
}

.site-footer__logo img {
    display: block;
    width: 100%;
    height: 66px;
    object-fit: contain;
}

.site-footer__slogan,
.site-footer__copyright {
    max-width: 243px;
    font-size: var(--fs-sm);
    font-weight: 500;
    line-height: 1.36;
}

.site-footer__slogan {
    margin: 32px 0 0;
}

.site-footer__copyright {
    margin: 25px 0 0;
}

.site-footer__policy {
    display: inline-block;
    margin-top: 18px;
    font-size: var(--fs-sm);
    font-weight: 500;
    text-decoration: underline;
}

.site-footer__menu ul {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-footer__menu a {
    display: block;
    padding-top: 0;
    padding-bottom: 0;
    font-weight: 500;
    line-height: 1.35;
}

.site-footer__contacts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--gap);
}

.site-footer__row {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    margin-bottom: 12px;
    font-weight: 500;
}

/* Иконка не дублируется */
.site-footer__row--tight {
    margin-top: -8px;
    padding-left: 29px;
}

.site-footer__icon {
    flex: none;
    margin-top: 3px;
}

.site-footer__callback {
    margin-top: 20px;
}

/* Размер кнопки */
.site-footer__callback :is(a, .btn) {
    min-width: 255px;
    padding: 11px 32px;
}

.site-footer__bottom {
    margin-top: 40px;
    padding: 25px 0;
    border-top: 1.3px solid var(--color-accent);
    text-align: center;
}

.site-footer__bottom a {
    font-size: var(--fs-sm);
    font-weight: 600;
    color: var(--color-brand);
}

@media screen and (min-width: 1200px) {
    .site-footer__inner {
        grid-template-columns: 243px 150px minmax(300px, 1fr) 300px;
    }

    /* Колонки сетки */
    .site-footer__contacts {
        display: contents;
    }

    .site-footer__contacts > .site-footer__col:first-child {
        width: min(100%, 260px);
        justify-self: center;
    }

    .site-footer__contacts > .site-footer__col:last-child {
        width: 100%;
    }
}

@media screen and (max-width: 991.98px) {
    .site-footer__inner {
        grid-template-columns: 1fr 1fr;
    }
}

/* Планшет: сетка контактов */
@media screen and (min-width: 768px) and (max-width: 991.98px) {
    .site-footer__inner {
        grid-template-columns: minmax(0, 210px) minmax(0, 1fr) minmax(0, 1fr);
        grid-template-areas:
            'brand    menu     contacts-main'
            'contacts-extra contacts-extra contacts-main';
        align-items: start;
        row-gap: 32px;
    }

    .site-footer__brand {
        grid-area: brand;
    }

    .site-footer__menu {
        grid-area: menu;
    }

    /* Колонки по квадратам */
    .site-footer__contacts {
        display: contents;
    }

    .site-footer__contacts > .site-footer__col:first-child {
        grid-area: contacts-main;
    }

    .site-footer__contacts > .site-footer__col:last-child {
        grid-area: contacts-extra;
        max-width: 340px;
    }

    .site-footer__logo {
        width: 100%;
    }

    .site-footer__slogan,
    .site-footer__copyright {
        max-width: none;
    }
}

@media screen and (max-width: 767.98px) {
    .site-footer__inner,
    .site-footer__contacts {
        grid-template-columns: 1fr;
    }
}

@media screen and (max-width: 575.98px) {
    .site-footer {
        padding: 32px 0 0;
        font-size: 12px;
        line-height: 16px;
    }

    .site-footer > .container {
        width: 100%;
        max-width: none;
        padding: 0 16px;
    }

    .site-footer__inner {
        grid-template-columns: minmax(0, 1fr);
        gap: 22px;
    }

    /* Порядок элементов */
    .site-footer__brand {
        display: contents;
    }

    .site-footer__logo {
        order: 1;
        width: 142px;
        padding: 4px 8px;
        border-radius: 7px;
    }

    .site-footer__logo img {
        height: 48px;
    }

    .site-footer__slogan {
        order: 2;
        max-width: none;
        margin: -10px 0 0;
        font-size: 12px;
        line-height: 16px;
    }

    .site-footer__menu {
        order: 3;
    }

    .site-footer__menu ul {
        gap: 7px;
    }

    .site-footer__contacts {
        order: 4;
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
    }

    .site-footer__copyright {
        order: 5;
        max-width: none;
        margin: 0;
        font-size: 12px;
        line-height: 16px;
    }

    .site-footer__policy {
        order: 6;
        margin-top: -10px;
        font-size: 12px;
        line-height: 16px;
    }

    .site-footer__row {
        gap: 8px;
        margin-bottom: 8px;
        font-size: 12px;
        line-height: 16px;
    }

    .site-footer__row--tight {
        margin-top: -5px;
        padding-left: 23px;
    }

    .site-footer__icon {
        width: 15px;
        height: 15px;
        margin-top: 1px;
    }

    .site-footer__callback {
        margin-top: 14px;
    }

    .site-footer__callback :is(a, .btn) {
        width: 100%;
        min-width: 0;
        min-height: 42px;
        padding: 10px 14px;
        border-radius: 7px;
        font-size: 12px;
    }

    .site-footer__bottom {
        margin-top: 24px;
        padding: 18px 0;
    }

    .site-footer__bottom a {
        font-size: 12px;
    }
}


/* ====================================================================
   23. МОДАЛЬНЫЕ ОКНА
   ==================================================================== */
:is(#callBackModal, #drupal-bootstrap4-modal) .modal-dialog {
    max-width: 680px;
}

:is(#callBackModal, #drupal-bootstrap4-modal) .modal-content {
    overflow: hidden;
    background: var(--color-brand);
    border: 0;
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-modal);
    color: var(--color-on-brand);
}

:is(#callBackModal, #drupal-bootstrap4-modal) .modal-header {
    align-items: flex-start;
    padding: 28px 32px 12px;
    background: var(--color-brand);
    border: 0;
}

:is(#callBackModal, #drupal-bootstrap4-modal) .modal-title {
    margin: 0;
    font-family: var(--font-base);
    font-size: clamp(22px, 3vw, 32px);
    font-weight: 600;
    line-height: 1.25;
    color: var(--color-on-brand);
}

:is(#callBackModal, #drupal-bootstrap4-modal) .btn-close {
    margin: 0;
    /* Крестик в белый */
    filter: brightness(0) invert(1);
    opacity: 0.9;
}

:is(#callBackModal, #drupal-bootstrap4-modal) .modal-body {
    padding: 12px 32px 32px;
}

/* AJAX-модалка */
#drupal-bootstrap4-modal .modal-header {
    position: relative;
    justify-content: center;
}

#drupal-bootstrap4-modal .modal-title {
    width: 100%;
    padding: 0 44px;
    text-align: center;
}

#drupal-bootstrap4-modal .btn-close {
    position: absolute;
    top: 24px;
    right: 24px;
    z-index: 1;
}

#drupal-bootstrap4-modal .modal-body {
    padding-bottom: 20px;
}

#drupal-bootstrap4-modal .modal-footer {
    padding: 0 32px 32px;
    background: var(--color-brand);
    border: 0;
}

#callBackModal .btn-close {
    padding: 8px;
    border-radius: 50%;
    background-color: transparent;
}

#callBackModal .btn-close:is(:hover, :focus) {
    background-color: rgba(255, 255, 255, 0.12);
    opacity: 1;
}

/* Форма */
:is(#callBackModal, #drupal-bootstrap4-modal) :is(.webform-submission-form, form) {
    display: grid;
    gap: 16px;
    margin: 0;
}

:is(#callBackModal, #drupal-bootstrap4-modal) .form-item,
:is(#callBackModal, #drupal-bootstrap4-modal) .form-actions {
    margin: 0;
}

:is(#callBackModal, #drupal-bootstrap4-modal) .form-item > label {
    display: block;
    margin: 0 0 7px;
    font-size: 14px;
    font-weight: 500;
    line-height: 20px;
    color: var(--color-on-brand);
}

:is(#callBackModal, #drupal-bootstrap4-modal) :is(input[type='text'], input[type='email'], input[type='tel'], textarea, select, .form-control) {
    width: 100%;
    min-height: var(--field-h);
    box-sizing: border-box;
    padding: 14px 18px;
    background: var(--color-bg);
    border: 1px solid var(--color-accent);
    border-radius: var(--field-radius);
    outline: 0;
    font: 500 15px/22px var(--font-base);
    color: var(--color-text);
    transition: border-color var(--transition), box-shadow var(--transition);
}

:is(#callBackModal, #drupal-bootstrap4-modal) textarea {
    min-height: 110px;
    resize: vertical;
}

:is(#callBackModal, #drupal-bootstrap4-modal) :is(input, textarea)::placeholder {
    color: var(--color-text-muted);
    opacity: 1;
}

:is(#callBackModal, #drupal-bootstrap4-modal) :is(input, textarea, select, .form-control):focus {
    outline: 0;
    border-color: var(--color-on-brand);
    box-shadow: var(--focus-ring);
}

/* Чекбокс согласия */
:is(#callBackModal, #drupal-bootstrap4-modal) .form-type-checkbox {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    align-items: start;
    gap: 4px 10px;
    color: var(--color-on-brand);
}

:is(#callBackModal, #drupal-bootstrap4-modal) .form-type-checkbox input[type='checkbox'] {
    width: 18px;
    height: 18px;
    margin: 2px 0 0;
    accent-color: var(--color-accent);
}

:is(#callBackModal, #drupal-bootstrap4-modal) .form-type-checkbox > label {
    grid-column: 2;
    grid-row: 1;
    margin: 0;
    font-size: 13px;
    line-height: 18px;
}

:is(#callBackModal, #drupal-bootstrap4-modal) .form-type-checkbox > .description {
    grid-column: 2;
    font-size: 12px;
    line-height: 17px;
    color: rgba(255, 255, 255, 0.82);
}

:is(#callBackModal, #drupal-bootstrap4-modal) .form-type-checkbox > .form-item--error-message {
    grid-column: 2;
    margin-top: 0;
}

:is(#callBackModal, #drupal-bootstrap4-modal) .form-type-checkbox a {
    color: var(--color-on-brand);
    text-decoration: underline;
}

/* CAPTCHA в строку */
:is(#callBackModal, #drupal-bootstrap4-modal) .captcha,
.front-feedback__card .captcha {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 16px;
    margin: 0;
    padding: 0;
    border: 0;
}

:is(#callBackModal, #drupal-bootstrap4-modal) .captcha__title,
.front-feedback__card .captcha__title {
    display: none;
}

/* Капча на строку */
.front-feedback__card .captcha {
    grid-column: 1 / -1;
}

/* Масштаб виджета */
:is(#callBackModal, #drupal-bootstrap4-modal) .captcha__element,
.front-feedback__card .captcha__element {
    --captcha-scale: 1;
    /* Натуральные размеры */
    --captcha-w: 304px;
    --captcha-h: 78px;
    flex: 0 0 auto;
    transform: scale(var(--captcha-scale));
    transform-origin: 0 0;
    margin-right: calc(var(--captcha-w) * (var(--captcha-scale) - 1));
    margin-bottom: calc(var(--captcha-h) * (var(--captcha-scale) - 1));
    /* iframe Google */
    border-radius: var(--field-radius);
    overflow: hidden;
}

:is(#callBackModal, #drupal-bootstrap4-modal) .captcha__element > *,
.front-feedback__card .captcha__element > * {
    margin: 0;
}

/* Запасной масштаб */
@media screen and (max-width: 400px) {
    :is(#callBackModal, #drupal-bootstrap4-modal) .captcha__element,
    .front-feedback__card .captcha__element {
        --captcha-scale: 0.88;
    }
}

@media screen and (max-width: 359.98px) {
    :is(#callBackModal, #drupal-bootstrap4-modal) .captcha__element,
    .front-feedback__card .captcha__element {
        --captcha-scale: 0.78;
    }
}

:is(#callBackModal, #drupal-bootstrap4-modal) .captcha__description,
.front-feedback__card .captcha__description {
    flex: 1 1 170px;
    margin: 0;
    font-size: 12px;
    line-height: 17px;
}

:is(#callBackModal, #drupal-bootstrap4-modal) .captcha__description {
    color: rgba(255, 255, 255, 0.82);
}

.front-feedback__card .captcha__description {
    color: var(--color-text-muted);
}

/* Ошибки */
:is(#callBackModal, #drupal-bootstrap4-modal) :is(.form-item--error-message, .messages--error, .alert-danger),
:is(#callBackModal, #drupal-bootstrap4-modal) .form-item--error-message strong {
    margin-top: 4px;
    font-size: 12px;
    font-weight: 400;
    line-height: 16px;
    color: var(--color-error);
}

:is(#callBackModal, #drupal-bootstrap4-modal) :is(.messages--error, .alert-danger) a {
    color: var(--color-error);
}

/* Вид: раздел 04 */
:is(#callBackModal, #drupal-bootstrap4-modal) :is(input[type='submit'], button[type='submit'], .webform-button--submit) {
    width: 100%;
}

@media screen and (max-width: 575.98px) {
    :is(#callBackModal, #drupal-bootstrap4-modal) .modal-header {
        padding: 22px 20px 10px;
    }

    :is(#callBackModal, #drupal-bootstrap4-modal) .modal-body {
        padding: 10px 20px 22px;
    }

    #drupal-bootstrap4-modal .btn-close {
        top: 18px;
        right: 18px;
    }

    #drupal-bootstrap4-modal .modal-body {
        padding-bottom: 16px;
    }

    #drupal-bootstrap4-modal .modal-footer {
        padding: 0 20px 22px;
    }
}


/* ====================================================================
   24. COOKIE-БАННЕР
   ==================================================================== */
div#vpa-short-wrapper {
    max-width: 740px;
    /* Только минимальная высота */
    min-height: 79px;
    box-sizing: border-box;
    gap: 24px;
    padding: 17px;
    background-color: var(--color-bg);
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-banner);
}

div#vpa-short-wrapper .vpa-content {
    /* Флекс не сжимается */
    min-width: 0;
    font-family: var(--font-base);
    font-size: 12px;
    font-weight: 500;
    line-height: 15px;
    color: var(--color-ink);
}

div#vpa-short-wrapper .vpa-content a {
    color: inherit;
}

div#vpa-short-wrapper .vpa-actions {
    flex: 0 0 auto;
}

.vpa-actions .btn {
    min-width: 126px;
    min-height: 50px;
    padding: 15px 20px;
    font-size: 15px;
    font-weight: 600;
}

@media screen and (max-width: 767.98px) {
    /* Отступ под ручку */
    div#vpa-short-wrapper {
        gap: 14px;
        padding: 32px 15px 15px;
    }
}

@media screen and (max-width: 575.98px) {
    div#vpa-short-wrapper {
        flex-direction: column;
        align-items: stretch;
    }

    div#vpa-short-wrapper .vpa-content {
        line-height: 17px;
    }

    div#vpa-short-wrapper .vpa-actions .btn {
        width: 100%;
        min-height: 44px;
        padding: 12px 20px;
    }
}


/* ====================================================================
   25. КНОПКА «НАВЕРХ»
   ==================================================================== */
#scrollToTop {
    position: fixed;
    right: 34px;
    bottom: 120px;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 60px;
    padding: 0;
    background: var(--color-accent);
    border: 0;
    border-radius: 50%;
    outline: 0;
    font-size: 0;
    text-indent: 0;
    cursor: pointer;
    transition: background-color var(--transition), transform var(--transition);
}

#scrollToTop:hover {
    transform: translateY(-2px);
}

#scrollToTop:focus-visible {
    outline: 3px solid rgba(69, 170, 188, 0.35);
    outline-offset: 3px;
}

#scrollToTop svg {
    display: block;
    width: 24px;
    height: 24px;
}

@media screen and (max-width: 767.98px) {
    #scrollToTop {
        right: 20px;
        bottom: 90px;
    }
}

@media screen and (max-width: 575.98px) {
    #scrollToTop {
        right: 12px;
        bottom: 18px;
        width: 42px;
        height: 42px;
    }

    #scrollToTop svg {
        width: 18px;
        height: 18px;
    }
}


/* ====================================================================
   26. СТРАНИЦА «О НАС»
   ==================================================================== */

/* Как на главной */
.front-about--page {
    padding-top: clamp(24px, 3vw, 40px);
    /* Темнее подвала */
    background: var(--color-surface-tint-strong);
}

.front-about--page .breadcrumb {
    margin-bottom: clamp(16px, 2vw, 24px);
}

.front-about--page :is(h1, .page-title) {
    margin: 0 0 clamp(24px, 3vw, 48px);
    font-size: var(--h2);
    font-weight: 600;
    color: var(--color-brand);
    text-align: center;
    text-transform: uppercase;
}

/* Текста больше макета */
.front-about--page .field--name-body {
    height: auto;
    min-height: var(--about-text-h);
}

@media screen and (max-width: 991.98px) {
    .front-about--page .field--name-body {
        min-height: 0;
    }
}


/* ====================================================================
   27. СТРАНИЦА КОНТАКТОВ
   ==================================================================== */

/* Только хлебные крошки */
body.vesta-page-contacts #main .wr_content > .container {
    padding-top: clamp(24px, 3vw, 40px);
    padding-bottom: 0;
}

/* Отступ от крошек до фона */
body.vesta-page-contacts #main .wr_content .breadcrumb {
    margin-bottom: 20px;
}

/* Фон как на главной */
body.vesta-page-contacts .front-contacts {
    padding: clamp(24px, 3vw, 40px) 0 clamp(40px, 5vw, 72px);
}

body.vesta-page-contacts .front-contacts__inner {
    height: auto;
    padding-top: 40px;
}

/* H1 перенесён в секцию */
body.vesta-page-contacts .front-contacts__title--page :is(h1, .page-title) {
    margin: 0;
    font-size: var(--h2);
    font-weight: 600;
    color: var(--color-on-brand);
    text-align: center;
    text-transform: uppercase;
}

@media screen and (max-width: 575.98px) {
    body.vesta-page-contacts .front-contacts {
        padding: 24px 14px 40px;
    }

    body.vesta-page-contacts .front-contacts__inner {
        padding-top: 24px;
    }

    body.vesta-page-contacts .front-contacts__title--page :is(h1, .page-title) {
        font-size: 20px;
        line-height: 27px;
    }
}


/* ====================================================================
   28. СТРАНИЦА НОВОСТЕЙ
   ==================================================================== */
body.vesta-page-news #main .wr_content > .container {
    padding-top: clamp(20px, 2.5vw, 32px);
    padding-bottom: clamp(40px, 5vw, 72px);
}

body.vesta-page-news #main :is(h1, .page-title) {
    margin: 0 0 clamp(20px, 2.5vw, 36px);
    font-size: var(--h2);
    font-weight: 600;
    color: var(--color-brand);
    text-transform: uppercase;
}

/* Две в ряд */
body.vesta-page-news .view-id-news > .view-content {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(20px, 2.5vw, 32px);
}

body.vesta-page-news .view-id-news > .view-content > .views-row {
    display: flex;
    min-width: 0;
}

/* Карточка новости */
body.vesta-page-news .view-id-news .views-row > :is(.node, .ds-1col) {
    display: flex;
    flex-direction: column;
    width: 100%;
    min-width: 0;
    overflow: hidden;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-card);
    transition: box-shadow var(--transition), transform var(--transition);
}

body.vesta-page-news .view-id-news .views-row > :is(.node, .ds-1col):hover {
    box-shadow: 0 12px 30px rgba(0, 51, 102, 0.16);
    transform: translateY(-3px);
}

body.vesta-page-news .view-id-news .field--name-field-image-news {
    display: block;
    overflow: hidden;
    background: var(--color-surface);
}

body.vesta-page-news .view-id-news .field--name-field-image-news img {
    display: block;
    width: 100%;
    height: 260px;
    object-fit: cover;
    transition: transform var(--transition);
}

body.vesta-page-news .view-id-news .views-row > :is(.node, .ds-1col):hover img {
    transform: scale(1.03);
}

/* Группа Display Suite */
body.vesta-page-news .view-id-news .views-row .content {
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    padding: 20px 24px 24px;
}

body.vesta-page-news .view-id-news .views-row :is(h2, h3) {
    margin: 0;
    font-size: 20px;
    font-weight: 600;
    line-height: 27px;
}

body.vesta-page-news .view-id-news .views-row :is(h2, h3) a {
    color: var(--color-brand);
    text-decoration: none;
    transition: color var(--transition);
}

body.vesta-page-news .view-id-news .views-row :is(h2, h3) a:is(:hover, :focus-visible) {
    color: var(--color-accent);
}

body.vesta-page-news .view-id-news .field--name-field-date {
    font-size: 14px;
    font-weight: 400;
    line-height: 19px;
    color: var(--color-text-muted);
}

/* Кнопка к низу */
body.vesta-page-news .view-id-news .views-row :is(.field--name-node-link, .content > a) {
    margin-top: auto;
}

body.vesta-page-news .view-id-news .views-row :is(.field--name-node-link a, .content > a) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: var(--btn-h);
    box-sizing: border-box;
    padding: 0 28px;
    background: var(--btn-gradient);
    border-radius: var(--btn-radius);
    font-size: 15px;
    font-weight: 600;
    color: var(--color-on-brand);
    text-decoration: none;
    transition: filter var(--transition);
}

body.vesta-page-news .view-id-news .views-row :is(.field--name-node-link a, .content > a):is(:hover, :focus-visible) {
    color: var(--color-on-brand);
    filter: brightness(1.1);
}

/* Постраничная навигация */
body.vesta-page-news #main .pager {
    margin: clamp(28px, 3.5vw, 48px) 0 0;
}

body.vesta-page-news #main .pager__items {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

body.vesta-page-news #main .pager__item.is-active {
    font-size: 15px;
    color: var(--color-text-muted);
}

body.vesta-page-news #main .pager__item a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    height: 44px;
    box-sizing: border-box;
    padding: 0 14px;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: var(--btn-radius);
    font-size: 16px;
    font-weight: 600;
    color: var(--color-brand);
    text-decoration: none;
    transition: background var(--transition), border-color var(--transition), color var(--transition);
}

body.vesta-page-news #main .pager__item a:is(:hover, :focus-visible) {
    background: var(--color-surface-tint);
    border-color: var(--color-accent);
    color: var(--color-accent);
}

@media screen and (max-width: 991.98px) {
    body.vesta-page-news .view-id-news .field--name-field-image-news img {
        height: 220px;
    }
}

@media screen and (max-width: 575.98px) {
    body.vesta-page-news .view-id-news > .view-content {
        grid-template-columns: minmax(0, 1fr);
        gap: 16px;
    }

    body.vesta-page-news .view-id-news .field--name-field-image-news img {
        height: 200px;
    }

    body.vesta-page-news .view-id-news .views-row .content {
        gap: 10px;
        padding: 16px 18px 20px;
    }

    body.vesta-page-news .view-id-news .views-row :is(h2, h3) {
        font-size: 18px;
        line-height: 24px;
    }
}


/* Отдельная новость */
body.vesta-page-news-item #main .wr_content > .container {
    padding-top: clamp(20px, 2.5vw, 32px);
    padding-bottom: clamp(40px, 5vw, 72px);
}

body.vesta-page-news-item #main :is(h1, .page-title) {
    margin: 0 0 clamp(20px, 2.5vw, 36px);
    font-size: var(--h2);
    font-weight: 600;
    color: var(--color-brand);
    text-transform: uppercase;
}

body.vesta-page-news-item .node--type-news {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 480px);
    column-gap: clamp(24px, 3vw, 48px);
    align-items: start;
}

body.vesta-page-news-item .node--type-news > :is(.group-left, .group-right) {
    float: none;
    width: auto;
    min-width: 0;
    grid-row: 1;
}

body.vesta-page-news-item .node--type-news > .group-left {
    grid-column: 1;
}

body.vesta-page-news-item .node--type-news > .group-right {
    grid-column: 2;
}

body.vesta-page-news-item .field--name-field-date {
    margin-bottom: 12px;
    font-size: 14px;
    line-height: 19px;
    color: var(--color-text-muted);
}

body.vesta-page-news-item .node--type-news .field--name-body {
    font-size: 16px;
    font-weight: 400;
    line-height: 22px;
    color: var(--color-ink);
}

body.vesta-page-news-item .node--type-news .field--name-body :is(p, ul, ol) {
    margin: 0 0 16px;
}

body.vesta-page-news-item .node--type-news .field--name-body :is(p, ul, ol):last-child {
    margin-bottom: 0;
}

body.vesta-page-news-item .node--type-news .field--name-body :is(h2, h3) {
    margin: 24px 0 12px;
    font-size: 20px;
    font-weight: 600;
    line-height: 27px;
    color: var(--color-brand);
}

body.vesta-page-news-item .field--name-field-image-news img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: var(--radius-card);
}

@media screen and (max-width: 767.98px) {
    body.vesta-page-news-item .node--type-news {
        grid-template-columns: minmax(0, 1fr);
        row-gap: 20px;
    }

    /* Картинка вперёд */
    body.vesta-page-news-item .node--type-news > .group-right {
        grid-row: 1;
        grid-column: 1;
    }

    body.vesta-page-news-item .node--type-news > .group-left {
        grid-row: 2;
        grid-column: 1;
    }

    body.vesta-page-news-item .field--name-field-image-news img {
        border-radius: var(--radius);
    }
}


/* ====================================================================
   29. СЛУЖЕБНОЕ
   ==================================================================== */

/* Индикатор AJAX */
#footer .ajax-progress,
#header .ajax-progress {
    display: none;
}

/* Админ-панель Drupal */
.toolbar .toolbar-tab .toolbar-icon {
    padding: 0.75em 1.5em 0.75em 2.5em;
}

.path-admin .messages--error {
    display: none;
}

/* Только при наведении */
.contextual-region .contextual {
    display: none;
    top: -8px;
    right: 8px;
}

.contextual-region .contextual-region .contextual {
    top: 8px;
}

.contextual-region:hover .contextual {
    display: block;
}

.contextual-region .contextual .trigger {
    /* Инлайн из модуля */
    width: 22px !important;
    height: 22px !important;
    background-size: 14px 14px;
}

/* Счётчик корзины */
.cart-block--summary .cart-block--summary__count {
    position: absolute;
    top: -4px;
    right: -10px;
    width: 20px;
    height: 20px;
    background: #ccc;
    border: 2px solid var(--color-bg);
    border-radius: 50%;
    font-size: 12px;
    font-weight: 500;
    color: var(--color-on-brand);
}

@media screen and (max-width: 575.98px) {
    /* Без горизонтальной прокрутки */
    body {
        min-width: 0;
        overflow-x: hidden;
    }
}
