/* Open Sans, веса 300-800 */
@font-face {
    font-family: 'Open Sans';
    font-style: normal;
    font-weight: 300 800;
    font-stretch: 100%;
    font-display: swap;
    src: url('../font/open-sans-cyrillic.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
    font-family: 'Open Sans';
    font-style: normal;
    font-weight: 300 800;
    font-stretch: 100%;
    font-display: swap;
    src: url('../font/open-sans-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: 'Open Sans';
    font-style: normal;
    font-weight: 300 800;
    font-stretch: 100%;
    font-display: swap;
    src: url('../font/open-sans-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
    /* color */
    --accent: #342C87;          /* акцент, фон навигации */
    --accent-dark: #262163;     /* верхняя полоса шапки */
    --accent-hover: #6A5EF0;    /* ховер кнопок и иконок */
    --light: #E1DEFF;           /* светлая кнопка */
    --light-alt: #EFEDFF;       /* фон кнопки «наверх» */
    --light-icon: #B2ADED;      /* иконки на тёмном фоне */
    --light-bg: #F5F5FF;        /* подложка секции контактов */
    --white: #FEFEFE;
    --text-dark: #171339;
    --border: #DADAE8;          /* обводка карточек */
    --placeholder: #8A85B5;     /* подсказка в строке поиска */
    --field-placeholder: #838383; /* подсказка в полях формы */
    --error: #D32F2F;           /* ошибки валидации форм */
    /* font-size */
    --fz-header-contact: 15px;
    --fz-menu: 14px;
    --fz-submenu: 13px;         /* подпункты в бургер-меню */
    --fz-btn: 14px;
    --fz-phone: 18px;
    --fz-slide-title: 50px;
    --fz-slide-text: 18px;
    --fz-disclaimer: 14px;
    --fz-section-title: 40px;
    --fz-card-title: 22px;
    --fz-sub-title: 20px;       /* карточки подразделов */
    --fz-card-text: 16px;
    --fz-contact-label: 12px;
    --fz-contact-value: 16px;
    --fz-footer-title: 16px;
    --fz-footer-link: 16px;
    --fz-footer-text: 15px;
    --fz-error: 12px;
    --fz-min: 12px;             /* минимальный кегль */
    /* height */
    --header-top-h: 36px;
    --header-bottom-h: 86px;
    --btn-h: 46px;
    --btn-sm-h: 44px;
    --header-logo-h: 74px;
    --slider-h: 520px;
    --card-h: 270px;
    --benefit-h: 284px;
    --benefit-ic: 130px;
    --pf-row-h: 220px;
    --feedback-h: 453px;
    --field-h: 40px;
    --field-area-h: 87px;
    /* padding */
    --btn-px: 18px;
    --dropdown-px: 10px;
    --slider-py: 86px;
    --section-py: 66px;
    --card-p: 18px;
    --footer-pt: 40px;
    --footer-bar-py: 18px;
    --footer-brand-w: 181px;
    --footer-cols-gap: 137px;
    --feedback-section-py: 24px;
    --feedback-p: 48px;
    --feedback-card-p: 24px;
    --contacts-py: 88px;
    --contacts-page-gap: 32px;  /* заголовок до карточек */
    /* width */
    --container-w: 1200px;
    --search-panel-w: 420px;
    --slide-text-w: 549px;
    --slide-img-w: 596px;
    --slide-img-shift: 6%;      /* пустое поле PNG за контейнер */
    --disclaimer-w: 740px;
    --feedback-text-w: 524px;
    --feedback-card-w: 522px;
    --feedback-img-w: 298px;
    --inner-img-w: 470px;     /* картинка внутри текста */
    --inner-img-h: 260px;     /* с учётом сдвига = 11 строк по 24px */
    --inner-img-mt: 4px;      /* компенсация интерлиньяжа первой строки */
    --contacts-col-w: 470px;
    --contacts-map-h: 342px;
    --dropdown-w: 183px;
    --dropdown-sub-w: 280px;    /* подразделы услуг */
    --product-col-w: 500px;     /* колонка карточки товара */
    --product-img: 500px;       /* высота кадра фото */
    --product-thumb: 118px;
    /* gap */
    --section-head-mb: 48px;
    --cards-gap: 30px;
    --contacts-gap: 130px;
    --contacts-col-gap: 32px;
    --contacts-card-gap: 16px;
    --dropdown-gap: 5px;
    --dropdown-item-gap: 14px;
    /* other */
    --radius: 5px;
    --dropdown-tr: 0.25s ease;
    --zoom: 1.08;
    --zoom-tr: 0.4s ease;
    --radius-lg: 10px;
    --ls: -0.01em;
}

@media (min-width: 1200px) {
    .container,
    .container-sm,
    .container-md,
    .container-lg,
    .container-xl,
    .container-xxl {
        max-width: var(--container-w);
    }
}

/* Общий вид всех кнопок */
.btn-more,
.more-link a,
.header-search .search-toggle,
.region-callback a:not(.contextual-links a),
.region-callback button:not(.trigger),
.region-callback .btn,
.slider-block .field--name-field-slide-link a,
.section-about .region-about .field--name-node-link a,
.section-about .region-about .field--type-link a,
.webform-submission-form input[type='submit'],
.webform-submission-form button[type='submit'],
.webform-confirmation__back a,
.modal .modal-footer .btn,
.modal .modal-footer .btn-primary,
.pager .page-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    height: var(--btn-sm-h);
    padding: 10px var(--btn-px);
    border: 0;
    border-radius: var(--radius);
    background: var(--accent);
    color: var(--white);
    font-size: var(--fz-btn);
    font-weight: 700;
    line-height: 19px;
    letter-spacing: var(--ls);
    text-transform: uppercase;
    text-decoration: none;
    white-space: nowrap;
    transition: background var(--dropdown-tr), color var(--dropdown-tr), border-color var(--dropdown-tr);
}

.btn-more:hover,
.btn-more:focus,
.more-link a:hover,
.more-link a:focus,
.header-search .search-toggle:hover,
.header-search .search-toggle:focus,
.region-callback a:not(.contextual-links a):hover,
.region-callback a:not(.contextual-links a):focus,
.region-callback button:not(.trigger):hover,
.region-callback button:not(.trigger):focus,
.region-callback .btn:hover,
.region-callback .btn:focus,
.slider-block .field--name-field-slide-link a:hover,
.slider-block .field--name-field-slide-link a:focus,
.section-about .region-about .field--name-node-link a:hover,
.section-about .region-about .field--name-node-link a:focus,
.section-about .region-about .field--type-link a:hover,
.section-about .region-about .field--type-link a:focus,
.webform-submission-form input[type='submit']:hover,
.webform-submission-form input[type='submit']:focus,
.webform-submission-form button[type='submit']:hover,
.webform-submission-form button[type='submit']:focus,
.webform-confirmation__back a:hover,
.webform-confirmation__back a:focus,
.modal .modal-footer .btn:hover,
.modal .modal-footer .btn:focus,
.modal .modal-footer .btn-primary:hover,
.modal .modal-footer .btn-primary:focus,
.pager .page-link:hover,
.pager .page-link:focus {
    background: var(--accent-hover);
    color: var(--white);
}

/* Светлая кнопка на тёмном */
.header-search .search-toggle,
.region-callback a:not(.contextual-links a),
.region-callback button:not(.trigger),
.region-callback .btn,
.pager .page-link {
    background: var(--light);
    color: var(--accent);
}

/* Кнопки шапки выше остальных */
.header-search .search-toggle,
.region-callback a:not(.contextual-links a),
.region-callback button:not(.trigger),
.region-callback .btn,
.slider-block .field--name-field-slide-link a {
    height: var(--btn-h);
}

/* Плавный переход к якорям */
html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    font-family: 'Open Sans', sans-serif;
}

/* Курсор у всего кликабельного */
a,
button,
label,
summary,
input[type='submit'],
input[type='button'],
input[type='checkbox'],
input[type='radio'] {
    cursor: pointer;
}

#page {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

#main {
    flex: 1;
}

.ui-dialog {
    position: fixed !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    max-width: calc(100% - 20px);
    max-height: calc(100% - 20px);
}
img {
    max-width: 100%;
    height: auto;
}

/* Длинное слово не распирает */
p,
li,
h1, h2, h3, h4, h5, h6,
.field__item {
    overflow-wrap: break-word;
}

/* Зум в границах обёртки */
.zoom-img {
    overflow: hidden;
    border-radius: var(--radius);
}

.zoom-img img {
    transition: transform var(--zoom-tr);
}

.zoom-img:hover img {
    transform: scale(var(--zoom));
}
/* Blazy растягивает поле */
.field[data-blazy] {
    min-width: initial;
}
/*HEADER STYLES*/
#footer .ajax-progress,
#header .ajax-progress {
    display: none;
}

.toolbar .toolbar-tab .toolbar-icon {
    padding: 0.75em 1.5em 0.75em 2.5em;
}
/* *** contextual-region *** */
.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;
    width: 20px;
    height: 20px;
    border: 2px solid var(--white);
    background: var(--accent-hover);
    color: var(--white);
    top: -6px;
    right: -10px;
    border-radius: 50%;
    font-size: var(--fz-min);
    font-weight: 500;
}

#header {
    position: relative;
    z-index: 40;
}

/* Верхняя полоса шапки */
.header-top {
    min-height: var(--header-top-h);
    padding: 6px 0;
    background: var(--accent-dark);
}

.header-top .row-flex {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.header-top .contact-item {
    display: flex;
    align-items: center;
    gap: 6px;
    color: var(--white);
    font-size: var(--fz-header-contact);
    font-weight: 500;
    line-height: 20px;
    letter-spacing: var(--ls);
    text-decoration: none;
}

.header-top .contact-item .ic {
    color: var(--light-icon);
}

.header-top .contact-item:hover .ic {
    color: var(--accent-hover);
}

.header-top a.contact-item:hover {
    color: var(--light-icon);
}

.header-msngrs {
    display: flex;
    align-items: center;
    gap: 16px;
}

.header-msngrs a {
    display: block;
    color: var(--light-icon);
}

.header-msngrs a:hover {
    color: var(--accent-hover);
}

/* Нижняя полоса шапки */
.header-bottom {
    min-height: var(--header-bottom-h);
    padding: 6px 0;
    background: var(--accent);
}

.header-bottom .row-flex {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
}

.header-bottom .col-logo {
    display: flex;
    align-items: center;
    gap: 48px;
}

.header-bottom .col-actions {
    display: flex;
    align-items: center;
    gap: 30px;
}

.header-bottom .logo {
    display: block;
    flex: none;
}

.header-bottom .logo img {
    width: auto;
    max-height: var(--header-logo-h);
    border-radius: var(--radius);
}

.header-bottom .logo:hover {
    opacity: 0.85;
}

/* Телефон */
.header-phone {
    display: flex;
    align-items: center;
    gap: 6px;
    color: var(--white);
    font-size: var(--fz-phone);
    font-weight: 700;
    line-height: 25px;
    letter-spacing: var(--ls);
    text-decoration: none;
    white-space: nowrap;
}

.header-phone .ic {
    color: var(--light-icon);
}

.header-phone span {
    border-bottom: 1px solid transparent;
}

.header-phone:hover {
    color: var(--white);
}

.header-phone:hover span {
    border-bottom-color: var(--white);
}

/* Поиск, обратный звонок, корзина */
.header-buttons {
    display: flex;
    align-items: center;
    gap: 12px;
}

.header-buttons .region-cart {
    position: relative;
    display: flex;
    align-items: center;
    color: var(--white);
}

.header-search {
    position: relative;
}

/* Лупа без подписи */
.header-search .search-toggle {
    width: var(--btn-h);
    padding: 10px;
    transition: background var(--dropdown-tr), color var(--dropdown-tr), opacity 0.2s ease;
}

/* Строка поиска поверх шапки */
.search-panel {
    position: absolute;
    top: 50%;
    right: 0;
    z-index: 20;
    display: flex;
    align-items: center;
    gap: 12px;
    width: var(--search-panel-w);
    max-width: calc(100vw - 30px);
    transform: translateY(-50%);
    /* Раскрытие справа налево */
    clip-path: inset(0 0 0 100%);
    opacity: 0;
    pointer-events: none;
    transition: clip-path 0.3s ease, opacity 0.2s ease;
}

.header-search.open .search-panel {
    clip-path: inset(0);
    opacity: 1;
    pointer-events: auto;
}

/* Лупа уступает место строке */
.header-search.open .search-toggle {
    opacity: 0;
    pointer-events: none;
}

/* Форма поиска везде */
.search-panel .region-search {
    flex: 1;
    min-width: 0;
}

.region-search form {
    position: relative;
    display: flex;
    align-items: center;
    margin: 0;
}

.region-search .form-item {
    flex: 1;
    min-width: 0;
    margin: 0;
}

/* Поле поиска, оба места */
.region-search input[type='search'],
.region-search input[type='text'],
.wr_content .search-api-page-block-form input[type='search'],
.wr_content .search-api-page-block-form input[type='text'] {
    width: 100%;
    height: var(--btn-h);
    padding: 0 calc(var(--btn-h) + 4px) 0 14px;
    border: 1px solid var(--light);
    border-radius: var(--radius);
    background: var(--white);
    color: var(--text-dark);
    font-size: var(--fz-contact-value);
    line-height: 22px;
    letter-spacing: var(--ls);
}

.region-search input::placeholder,
.wr_content .search-api-page-block-form input::placeholder {
    color: var(--placeholder);
}

/* Нативный крестик не нужен */
.region-search input[type='search']::-webkit-search-cancel-button,
.region-search input[type='search']::-webkit-search-decoration,
.wr_content .search-api-page-block-form input[type='search']::-webkit-search-cancel-button,
.wr_content .search-api-page-block-form input[type='search']::-webkit-search-decoration {
    -webkit-appearance: none;
    appearance: none;
}

.region-search input:focus,
.wr_content .search-api-page-block-form input:focus {
    border-color: var(--accent-hover);
    outline: 0;
    box-shadow: none;
}

/* Отправка лупой в поле */
.region-search .form-actions,
.wr_content .search-api-page-block-form .form-actions {
    position: absolute;
    top: 0;
    right: 0;
    margin: 0;
}

.region-search .form-actions .btn,
.region-search .form-actions button,
.region-search .form-actions input[type='submit'],
.wr_content .search-api-page-block-form .form-actions button,
.wr_content .search-api-page-block-form .form-actions input[type='submit'] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: var(--btn-h);
    height: var(--btn-h);
    padding: 0;
    border: 0;
    border-radius: var(--radius);
    background: transparent;
    color: var(--accent);
    font-size: 0;
    box-shadow: none;
}

/* У input нет ::after */
.region-search .form-actions input[type='submit'],
.wr_content .search-api-page-block-form .form-actions input[type='submit'] {
    background: var(--accent);
    -webkit-mask: url('../image/icons/search.svg') no-repeat center / 22px;
    mask: url('../image/icons/search.svg') no-repeat center / 22px;
}

.region-search .form-actions .btn::after,
.region-search .form-actions button::after,
.wr_content .search-api-page-block-form .form-actions button::after {
    content: '';
    display: block;
    width: 22px;
    height: 22px;
    background-color: currentColor;
    -webkit-mask: url('../image/icons/search.svg') no-repeat center / contain;
    mask: url('../image/icons/search.svg') no-repeat center / contain;
}

.region-search .form-actions .btn:hover,
.region-search .form-actions .btn:focus,
.region-search .form-actions button:hover,
.region-search .form-actions button:focus,
.wr_content .search-api-page-block-form .form-actions button:hover,
.wr_content .search-api-page-block-form .form-actions button:focus {
    background: transparent;
    color: var(--accent-hover);
}

.region-search .form-actions input[type='submit']:hover,
.region-search .form-actions input[type='submit']:focus,
.wr_content .search-api-page-block-form .form-actions input[type='submit']:hover,
.wr_content .search-api-page-block-form .form-actions input[type='submit']:focus {
    background: var(--accent-hover);
}

/* Заголовок блока лишний */
.region-search .block-title {
    display: none;
}

/* В офканвасе всегда раскрыта */
.offcanvas .region-search {
    margin-bottom: 16px;
}

/* Крестик справа */
.search-close {
    position: relative;
    z-index: 2;
    flex: none;
    width: 20px;
    height: 20px;
    margin: 0;
    padding: 0;
    border: 0;
    background-color: transparent;
    opacity: 1;
    cursor: pointer;
    filter: invert(1) grayscale(1) brightness(2);
}

.search-close:hover {
    opacity: 0.7;
}

/* Меню */
.region-navigation ul {
    display: flex;
    align-items: center;
    gap: 30px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.region-navigation .nav-item {
    position: relative;
}

.region-navigation .nav-link {
    display: flex;
    align-items: center;
    gap: 2px;
    padding: 0;
    border-bottom: 1px solid transparent;
    color: var(--white);
    font-size: var(--fz-menu);
    font-weight: 600;
    line-height: 1;
    letter-spacing: var(--ls);
    text-transform: uppercase;
    text-decoration: none;
    white-space: nowrap;
}

.region-navigation .nav-link:hover,
.region-navigation .nav-link:focus,
.region-navigation .nav-link.active {
    color: var(--white);
    border-bottom-color: var(--light-icon);
}

/* Стрелка вместо треугольника Bootstrap */
.region-navigation .dropdown-toggle::after {
    content: '';
    display: block;
    width: 16px;
    height: 16px;
    flex: none;
    margin: 0;
    border: 0;
    background-color: currentColor;
    -webkit-mask: url('../image/icons/chevron-down.svg') no-repeat center / contain;
    mask: url('../image/icons/chevron-down.svg') no-repeat center / contain;
    transition: transform var(--dropdown-tr);
}

.region-navigation .nav-item:hover > .dropdown-toggle::after,
.region-navigation .nav-item:focus-within > .dropdown-toggle::after {
    transform: rotate(180deg);
}

/* Сдвиг под текст пункта */
.region-navigation .dropdown-menu {
    display: flex;
    visibility: hidden;
    opacity: 0;
    transform: translateY(-6px);
    position: absolute;
    top: calc(100% + var(--dropdown-gap));
    left: calc(var(--dropdown-px) * -1);
    z-index: 30;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--dropdown-item-gap);
    width: var(--dropdown-w);
    margin: 0;
    padding: var(--dropdown-px);
    border: 0;
    border-radius: var(--radius);
    background: var(--white);
    box-shadow: 0 0 15px rgba(0, 0, 0, 0.1);
    /* visibility после затухания */
    transition: opacity var(--dropdown-tr), transform var(--dropdown-tr), visibility 0s linear 0.25s;
}

/* Зазор не рвёт ховер */
.region-navigation .dropdown-menu::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 100%;
    height: var(--dropdown-gap);
}

/* Только своё подменю, не вложенные */
.region-navigation .nav-item:hover > .dropdown-menu,
.region-navigation .nav-item:focus-within > .dropdown-menu {
    visibility: visible;
    opacity: 1;
    transform: translate(0);
    transition: opacity var(--dropdown-tr), transform var(--dropdown-tr), visibility 0s;
}

/* Стрелка не переносит название */
.region-navigation .nav-level-1 {
    width: max-content;
    min-width: var(--dropdown-w);
}

/* Подразделы выезжают вправо */
.region-navigation .dropdown-menu .dropdown-menu {
    top: calc(var(--dropdown-px) * -1);
    left: calc(100% + var(--dropdown-px) + var(--dropdown-gap));
    width: var(--dropdown-sub-w);
    transform: translateX(-6px);
}

.region-navigation .dropdown-menu .dropdown-menu::before {
    top: 0;
    bottom: 0;
    left: auto;
    right: 100%;
    width: calc(var(--dropdown-px) + var(--dropdown-gap));
    height: auto;
}

/* Длинные названия переносятся */
.region-navigation .dropdown-menu .dropdown-menu .dropdown-item {
    line-height: 1.2;
    white-space: normal;
}

/* Стрелка вправо у раздела */
.region-navigation .dropdown-menu .dropdown-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.region-navigation .dropdown-menu .dropdown-toggle::after,
.region-navigation .dropdown-menu .nav-item:hover > .dropdown-toggle::after,
.region-navigation .dropdown-menu .nav-item:focus-within > .dropdown-toggle::after {
    transform: rotate(-90deg);
}

.region-navigation .dropdown-item {
    align-self: stretch;
    padding: 0;
    color: var(--text-dark);
    font-size: 16px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: var(--ls);
    text-transform: none;
    background: none;
}

.region-navigation .dropdown-item:hover,
.region-navigation .dropdown-item:focus,
.region-navigation .dropdown-item.active {
    background: none;
    color: var(--accent-hover);
}

/* Мобильная шапка */
#header-mob {
    top: 0;
    width: 100%;
    padding: 8px 15px;
    background: var(--accent);
    color: var(--white);
    z-index: 50;
}

#header-mob > * {
    padding: 0 5px;
}

#header-mob a {
    display: block;
    color: var(--white);
    text-decoration: none;
}

#header-mob .col-logo img {
    max-height: 44px;
    width: auto;
    border-radius: var(--radius);
}

#header-mob .ic {
    color: var(--light-icon);
}

/* Номер рядом с иконкой */
#header-mob .col-phone a {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: var(--fz-header-contact);
    font-weight: 600;
    white-space: nowrap;
}

/* Боковое меню */
.offcanvas {
    --bs-offcanvas-bg: var(--accent);
    --bs-offcanvas-color: var(--white);
}

.offcanvas .logo img {
    max-height: 56px;
    width: auto;
    border-radius: var(--radius);
}

.offcanvas .btn-close {
    filter: invert(1) grayscale(1) brightness(2);
}

.offcanvas .region-navigation ul {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
}

.offcanvas .region-navigation .nav-level-0 > .nav-item {
    width: 100%;
    border-bottom: 1px solid rgba(254, 254, 254, 0.15);
}

.offcanvas .region-navigation .nav-link {
    padding: 12px 0;
    justify-content: space-between;
    border-bottom: 0;
}

/* Раскрывает slideToggle */
.offcanvas .region-navigation .dropdown-menu {
    visibility: visible;
    opacity: 1;
    transform: none;
    transition: none;
    position: static;
    display: none;
    width: auto;
    gap: 0;
    padding: 0 0 10px;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.offcanvas .region-navigation .dropdown-menu::before {
    content: none;
}

/* Подпункты мельче пункта */
.offcanvas .region-navigation .dropdown-item {
    padding: 6px 0;
    color: var(--light);
    font-size: var(--fz-submenu);
    line-height: 1.4;
}

/* Подразделы с отступом */
.offcanvas .region-navigation .dropdown-menu .dropdown-menu {
    padding: 0 0 6px 16px;
}

.offcanvas .region-navigation .dropdown-menu .nav-item:hover > .dropdown-toggle::after,
.offcanvas .region-navigation .dropdown-menu .dropdown-toggle::after {
    transform: none;
}

/* Отступ держит элемент */
.offcanvas .contact-item {
    margin-top: 16px;
}

.offcanvas .contact-item-el,
.offcanvas .contact-item a {
    color: var(--white);
    text-decoration: none;
}

.offcanvas .header-msngrs {
    margin-top: 20px;
}

/* Отступ до кнопки звонка */
.offcanvas .region-callback {
    margin-top: 24px;
}

/* Иконки шапки */
.ic {
    display: block;
    flex: none;
    width: 24px;
    height: 24px;
    background-color: currentColor;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
}

.ic-pin,
.ic-mail {
    width: 18px;
    height: 18px;
}

.ic-menu {
    -webkit-mask-image: url('../image/icons/menu.svg');
    mask-image: url('../image/icons/menu.svg');
}

.ic-pin {
    -webkit-mask-image: url('../image/icons/map-pin.svg');
    mask-image: url('../image/icons/map-pin.svg');
}

.ic-mail {
    -webkit-mask-image: url('../image/icons/mail.svg');
    mask-image: url('../image/icons/mail.svg');
}

.ic-phone {
    -webkit-mask-image: url('../image/icons/phone.svg');
    mask-image: url('../image/icons/phone.svg');
}

.ic-search {
    -webkit-mask-image: url('../image/icons/search.svg');
    mask-image: url('../image/icons/search.svg');
}

.ic-max {
    -webkit-mask-image: url('../image/icons/max.svg');
    mask-image: url('../image/icons/max.svg');
}

.ic-tg {
    -webkit-mask-image: url('../image/icons/telegram.svg');
    mask-image: url('../image/icons/telegram.svg');
}

.ic-chevron {
    -webkit-mask-image: url('../image/icons/chevron-down.svg');
    mask-image: url('../image/icons/chevron-down.svg');
}

.ic-cart {
    -webkit-mask-image: url('../image/icons/cart.svg');
    mask-image: url('../image/icons/cart.svg');
}

/*HEADER STYLES*/

/* SLIDER STYLES */
.slider-block {
    position: relative;
    overflow: hidden;
    background: url('../image/fon_banner.png') no-repeat center top / cover, var(--white);
}

.region-slider .view-content:not(.slick-initialized) .views-row {
    display: none;
}

.region-slider .view-content:not(.slick-initialized) .views-row:first-child {
    display: block;
}

/* Две колонки, класс DS */
.slider-block .node--type-slide {
    display: flex;
    align-items: center;
    min-height: var(--slider-h);
    padding: var(--slider-py) 0;
}

/* Вместо float из ds-2col */
.slider-block .group-left,
.slider-block .group-right {
    float: none;
    width: auto;
}

.slider-block .group-left {
    flex: 0 1 var(--slide-text-w);
    min-width: 0;
    max-width: var(--slide-text-w);
}

.slider-block .group-right {
    flex: 0 1 var(--slide-img-w);
    min-width: 0;
    max-width: var(--slide-img-w);
    /* Сдвиг вправо: рисунок по краю контейнера */
    margin-left: auto;
    margin-right: calc(var(--slide-img-shift) * -1);
}

/* Класс container тут лишний */
.slider-block .node--type-slide .content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

.slider-block .field--name-field-slide-title {
    color: var(--accent);
    font-size: var(--fz-slide-title);
    font-weight: 700;
    line-height: 130%;
    letter-spacing: var(--ls);
    text-transform: uppercase;
}

.slider-block .field--name-body {
    color: var(--text-dark);
    font-size: var(--fz-slide-text);
    font-weight: 500;
    line-height: 25px;
    letter-spacing: var(--ls);
}

.slider-block .field--name-body p {
    margin-bottom: 0;
}

/* До кнопки 48px суммарно */
.slider-block .field--name-field-slide-link {
    margin-top: 32px;
}

.slider-block .field--name-field-image {
    overflow: hidden;
    border-radius: var(--radius);
}

.slider-block .field--name-field-image img {
    display: block;
    width: 100%;
    transition: transform var(--zoom-tr);
}

.slider-block .field--name-field-image:hover img {
    transform: scale(var(--zoom));
}

/* Точки над нижним краем */
.slider-block .slick-dots {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 24px;
    margin: 0;
}

.slick-prev, .slick-next {
    font-size: 0;
    line-height: 0;
    position: absolute;
    top: calc(50% - 10px);
    display: block;
    width: 20px;
    height: 20px;
    padding: 0;
    -webkit-transform: translate(0, -50%);
    -ms-transform: translate(0, -50%);
    transform: translate(0, -50%);
    cursor: pointer;
    color: transparent;
    border: none;
    outline: none;
    background: transparent;
}

button.slick-prev.slick-arrow {
    left: 25px;
}

button.slick-next.slick-arrow {
    right: 25px;
}

ul.slick-dots {
    padding: 0;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 7px;
    list-style: none;
    margin: 10px 0;
}

ul.slick-dots li button {
    background: var(--light);
    border-radius: 50%;
    border: none;
    padding: 0;
    width: 10px;
    font-size: 0;
    height: 10px;
    display: block;
}

ul.slick-dots li button::before {
    display: none;
}

ul.slick-dots li.slick-active button {
    background: var(--accent);
}

ul.slick-dots li button:hover {
    background: var(--accent-hover);
}

button.slick-arrow {
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
}

button.slick-arrow::before {
    content: '';
    display: block;
    position: relative;
    width: 30px;
    height: 30px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    font-size: 0;
}

button.slick-prev.slick-arrow::before {
    background-image: url('../image/arrow-top.svg');
    transform: rotate(-90deg);
}

button.slick-next.slick-arrow::before {
    background-image: url('../image/arrow-top.svg');
    transform: rotate(90deg);
}

/* Кнопка «наверх» */
#scrollToTop {
    position: fixed;
    right: 60px;
    bottom: 120px;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: var(--btn-h);
    height: var(--btn-h);
    padding: 10px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--light-alt);
    color: var(--accent);
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

#scrollToTop .ic {
    transform: rotate(180deg);
}

#scrollToTop:hover,
#scrollToTop:focus {
    border-color: var(--accent-hover);
    background: var(--accent-hover);
    color: var(--white);
}

/* SLICK STYLES */

/* SECTION STYLES */
/* Обвязка секций главной */
.section {
    padding: var(--section-py) 0;
}

/* Один стиль заголовка секции */
.section .block-title,
.section-title,
.section-feedback .field--name-field-zagolovok,
.section-about .region-about .field--name-node-title h2,
.not-front h1 {
    margin: 0;
    color: var(--accent);
    font-size: var(--fz-section-title);
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: var(--ls);
    text-transform: uppercase;
    /* Не распирает контейнер */
    overflow-wrap: anywhere;
}

/* Шапка Header представления */
.section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    margin-bottom: var(--section-head-mb);
}

/* Заголовок в шапке вида */
.section-services .block-title {
    display: none;
}
/* SECTION STYLES */

/* ABOUT STYLES */
/* Общая подложка с градиентом */
.section-about {
    background: url('../image/fon_o_nas.png') no-repeat center / cover, var(--white);
}

.section-about .region-about .block {
    margin-bottom: var(--section-head-mb);
}

/* Дублирует заголовок ноды */
.section-about .region-about .block > .block-title {
    display: none;
}

/* Обёртки вида распахнуты */
.section-about .region-about .block > div,
.section-about .region-about .view,
.section-about .region-about .view-content,
.section-about .region-about .views-row {
    width: 100%;
}

/* Сетка как у преимуществ */
.section-about .region-about .ds-2col {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--cards-gap);
    width: 100%;
}

/* Вместо float из ds-2col */
.section-about .region-about .group-left,
.section-about .region-about .group-right {
    float: none;
    width: auto;
    min-width: 0;
}

.section-about .region-about .group-left {
    grid-column: 1 / 3;
}

/* От края третьей карточки */
.section-about .region-about .group-right {
    grid-column: 3 / 5;
}

.section-about .region-about .field--name-body {
    color: var(--text-dark);
    font-size: var(--fz-slide-text);
    font-weight: 500;
    line-height: 25px;
    letter-spacing: var(--ls);
}

.section-about .region-about .field--name-body p:last-child {
    margin-bottom: 0;
}

/* Кнопка из поля-ссылки */
.section-about .region-about .field--name-node-link,
.section-about .region-about .field--type-link {
    margin-top: 24px;
}
/* ABOUT STYLES */

/* BENEFITS STYLES */
/* Заголовок и метки скрыты */
.region-benefits .block-title,
.region-benefits .field__label {
    display: none;
}

/* Карточки в ряд */
.region-benefits .view-content,
.region-benefits .field__items,
.region-benefits .block-content > .field,
.region-benefits .item-list > ul {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--cards-gap);
    margin: 0;
    padding: 0;
    list-style: none;
}

.region-benefits .views-row,
.region-benefits .field__items > .field__item {
    display: flex;
}

/* Карточка 270×284 по макету */
.region-benefits .views-row > *,
.region-benefits .field__items > .field__item > *,
.region-benefits .node--type-benefit,
.region-benefits .paragraph {
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    min-height: var(--benefit-h);
    padding: var(--card-p);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: var(--white);
}

/* Иначе текст уезжает вниз */
.region-benefits .paragraph > .field {
    width: 100%;
}

/* Иконка из поля изображения */
.region-benefits .paragraph .field--type-image,
.region-benefits .paragraph .field--type-image .field__item {
    flex: none;
    width: var(--benefit-ic);
    height: var(--benefit-ic);
}

.region-benefits .paragraph .field--type-image {
    overflow: hidden;
}

/* Перебивает инлайновый height */
.region-benefits .paragraph .field--type-image img {
    width: var(--benefit-ic);
    height: var(--benefit-ic) !important;
    object-fit: contain;
    transition: transform var(--zoom-tr);
}

.region-benefits .paragraph:hover .field--type-image img {
    transform: scale(var(--zoom));
}

/* Заголовок карточки */
.region-benefits .paragraph h2,
.region-benefits .field--name-field-zagolovok,
.region-benefits .paragraph .field--name-node-title {
    margin: 0;
    color: var(--text-dark);
    font-size: var(--fz-card-title);
    font-weight: 600;
    line-height: 130%;
    letter-spacing: var(--ls);
}

.region-benefits .paragraph h2 a,
.region-benefits .paragraph .field--name-node-title a {
    color: var(--text-dark);
    text-decoration: none;
}

/* До описания 8px */
.region-benefits .paragraph h2 + .field,
.region-benefits .field--name-field-zagolovok + .field {
    margin-top: -8px;
}

.region-benefits .field--name-field-opisanie,
.region-benefits .field--type-text-long,
.region-benefits .field--name-body {
    color: var(--text-dark);
    font-size: var(--fz-card-text);
    font-weight: 500;
    line-height: 130%;
    letter-spacing: var(--ls);
}

.region-benefits .field--name-field-opisanie p,
.region-benefits .field--type-text-long p,
.region-benefits .field--name-body p {
    font-size: var(--fz-card-text);
}

.region-benefits .paragraph p:last-child {
    margin-bottom: 0;
}
/* BENEFITS STYLES */

/* FORM STYLES */
/* Столбик, шаг 12px */
.webform-submission-form {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.webform-submission-form .form-item {
    margin: 0;
}

.webform-submission-form input[type='text'],
.webform-submission-form input[type='email'],
.webform-submission-form input[type='tel'],
.webform-submission-form textarea {
    width: 100%;
    height: var(--field-h);
    /* .form-text ломает шаг */
    margin: 0;
    padding: 0 14px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--white);
    color: var(--text-dark);
    font-family: inherit;
    font-size: 16px;
    font-weight: 500;
    line-height: 130%;
    letter-spacing: var(--ls);
}

.webform-submission-form textarea {
    height: var(--field-area-h);
    padding: 12px 14px;
    resize: vertical;
}

.webform-submission-form input::placeholder,
.webform-submission-form textarea::placeholder {
    color: var(--field-placeholder);
}

.webform-submission-form input:focus,
.webform-submission-form textarea:focus {
    border-color: var(--accent-hover);
    outline: 0;
    box-shadow: none;
}

/* Элемент Flexbox вебформы */
.webform-submission-form .webform-flexbox {
    display: flex;
    gap: 12px;
    margin: 0;
}

.webform-submission-form .webform-flex {
    flex: 1;
    min-width: 0;
}

.webform-submission-form .webform-flex--container {
    margin: 0;
}

/* Метка только если включена */
.webform-submission-form label {
    margin-bottom: 6px;
    color: var(--text-dark);
    font-size: var(--fz-footer-text);
    font-weight: 600;
    letter-spacing: var(--ls);
}

/* Согласие, wrap под ошибку */
.webform-submission-form .form-type-checkbox {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 8px;
}

/* Текст ужимается, оба варианта */
.webform-submission-form .form-type-checkbox label,
.webform-submission-form .form-type-checkbox .description,
.webform-submission-form .form-type-checkbox .webform-element-description {
    flex: 1;
    min-width: 0;
}

.webform-submission-form input[type='checkbox'] {
    flex: none;
    width: 18px;
    height: 18px;
    margin: 0;
    border: 1px solid var(--accent);
    border-radius: 4px;
    background: var(--white);
    appearance: none;
    cursor: pointer;
}

.webform-submission-form input[type='checkbox']:checked {
    background: var(--accent) url('../image/icons/check.svg') no-repeat center / 12px;
}

.webform-submission-form input[type='checkbox']:focus-visible {
    outline: 2px solid var(--accent-hover);
    outline-offset: 1px;
}

.webform-submission-form .form-type-checkbox label,
.webform-submission-form .description {
    margin: 0;
    color: var(--text-dark);
    font-size: var(--fz-btn);
    font-weight: 500;
    line-height: 130%;
    letter-spacing: var(--ls);
}

.webform-submission-form .description p {
    margin: 0;
}

/* Ссылка метки и подсказки */
.webform-submission-form .form-type-checkbox label a,
.webform-submission-form .description a {
    color: var(--accent);
    font-weight: 600;
    text-decoration: underline;
}

.webform-submission-form .form-type-checkbox label a:hover,
.webform-submission-form .form-type-checkbox label a:focus,
.webform-submission-form .description a:hover,
.webform-submission-form .description a:focus {
    color: var(--accent-hover);
}

/* Ошибки валидации */
.webform-submission-form .form-item--error-message,
.webform-submission-form .alert-danger,
.modal .alert-danger {
    color: var(--error);
    font-size: var(--fz-error);
    font-weight: 500;
    line-height: 130%;
    letter-spacing: var(--ls);
}

.webform-submission-form .form-item--error-message {
    margin-top: 4px;
}

/* Сводка компактнее Bootstrap */
.webform-submission-form .alert-danger,
.modal .alert-danger {
    margin-bottom: 4px;
    padding: 12px 14px;
    border-color: var(--error);
    border-radius: var(--radius);
}

.webform-submission-form .alert-danger a,
.modal .alert-danger a {
    color: var(--error);
    font-weight: 600;
}

.webform-submission-form .alert-danger .messages__list,
.modal .alert-danger .messages__list {
    margin: 0;
    padding-left: 18px;
}

/* Ошибка под текстом */
.webform-submission-form .form-type-checkbox .form-item--error-message {
    flex: 1 1 100%;
    order: 1;
    margin-top: 0;
}

/* Отправка акцентной кнопкой */
.webform-submission-form .form-actions {
    margin: 0;
}

/* Страница подтверждения вебформы */
.webform-confirmation__message {
    margin-bottom: 24px;
    color: var(--text-dark);
    font-size: var(--fz-slide-text);
    font-weight: 500;
    line-height: 25px;
    letter-spacing: var(--ls);
}

/* Своё и от bootstrap4_modal */
.modal .modal-content {
    border: 0;
    border-radius: var(--radius);
}

.modal .modal-header {
    align-items: center;
    padding: 20px 24px;
    border-bottom: 1px solid var(--light);
}

.modal .modal-title {
    margin: 0;
    color: var(--accent);
    font-size: 22px;
    font-weight: 700;
    line-height: 30px;
    letter-spacing: var(--ls);
    text-transform: uppercase;
}

.modal .modal-body {
    padding: 24px;
}

/* Кнопка по центру */
.modal .modal-footer {
    justify-content: center;
    padding: 16px 24px;
    border-top: 1px solid var(--light);
}

.modal .webform-submission-form .form-actions {
    display: flex;
    justify-content: center;
}

/* FORM STYLES */

/* FEEDBACK STYLES */
/* Отступы добирает подложка */
.section-feedback {
    padding: var(--feedback-section-py) 0;
}

.section-feedback .region-feedback {
    position: relative;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--cards-gap);
    min-height: var(--feedback-h);
    padding: var(--feedback-p);
    border-radius: var(--radius-lg);
    background: url('../image/fon_feedback.png') no-repeat center / cover, var(--accent);
}

/* Левая колонка секции */
/* static против contextual-region */
.section-feedback .region-feedback > .block:not(.block-webform-block) {
    position: static;
    flex: 0 1 var(--feedback-text-w);
    max-width: var(--feedback-text-w);
}

/* Ссылки админа от подложки */
.section-feedback .region-feedback > .block:not(.block-webform-block) .contextual {
    right: auto;
    left: var(--feedback-p);
}

.section-feedback .region-feedback .block-title,
.section-feedback .field--name-field-zagolovok {
    margin-bottom: 16px;
    color: var(--white);
}

.section-feedback .region-feedback .field--type-text-long,
.section-feedback .region-feedback .field--name-body {
    color: var(--white);
    font-size: var(--fz-slide-text);
    font-weight: 500;
    line-height: 25px;
    letter-spacing: var(--ls);
}

/* Выходит за отступ подложки */
.section-feedback .region-feedback .field--type-image {
    position: absolute;
    left: 18px;
    bottom: 21px;
    width: var(--feedback-img-w);
    margin: 0;
}

.section-feedback .region-feedback .field--type-image img {
    display: block;
    width: 100%;
}

/* Форма в белой карточке */
.section-feedback .region-feedback .block-webform-block {
    flex: none;
    width: var(--feedback-card-w);
    padding: var(--feedback-card-p);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: var(--white);
}

/* Метка блока не нужна */
.section-feedback .region-feedback .block-webform-block .block-title {
    display: none;
}

/* По центру, отступ 24px */
.section-feedback .webform-submission-form .form-actions {
    align-self: center;
    margin-top: 12px;
}
/* FEEDBACK STYLES */

/* SEARCH PAGE STYLES */
/* Как раскрытая строка шапки */
.wr_content .search-api-page-block-form {
    position: relative;
    display: flex;
    align-items: center;
    max-width: none;
    margin: 0 0 var(--section-head-mb);
}

.wr_content .search-api-page-block-form .form-item {
    flex: 1;
    min-width: 0;
    margin: 0;
}

.wr_content .search-api-page-block-form label {
    display: none;
}

/* Результаты поиска */
.search-api-page-results {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.search-api-page-result h3 {
    margin: 0 0 8px;
    font-size: var(--fz-card-title);
    font-weight: 600;
    line-height: 130%;
    letter-spacing: var(--ls);
}

.search-api-page-result h3 a {
    color: var(--accent);
    text-decoration: none;
}

.search-api-page-result h3 a:hover {
    color: var(--accent-hover);
}

.search-api-page-result p {
    margin: 0;
    color: var(--text-dark);
    font-size: var(--fz-footer-text);
    line-height: 22px;
}
/* SEARCH PAGE STYLES */

/* CONTACTS STYLES */
/* Контакты на светлой подложке */
.section-contacts {
    padding: var(--contacts-py) 0;
    background: var(--light-bg);
}

.section-contacts .contacts-row {
    display: flex;
    align-items: center;
    gap: var(--contacts-gap);
}

.section-contacts .contacts-col {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    flex: none;
    width: var(--contacts-col-w);
    gap: var(--contacts-col-gap);
}

.contacts-cards {
    display: flex;
    flex-direction: column;
    align-self: stretch;
    gap: var(--contacts-card-gap);
}

/* Телефон и почта рядом */
.contacts-cards .contact-card-row {
    display: flex;
    align-items: stretch;
    gap: var(--contacts-card-gap);
}

.contacts-cards .contact-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    flex: 1;
    gap: 10px;
    padding: var(--card-p);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: var(--white);
    text-decoration: none;
}

.contacts-cards .contact-card-label {
    color: var(--accent);
    font-size: var(--fz-contact-label);
    font-weight: 600;
    line-height: 130%;
    letter-spacing: var(--ls);
    text-transform: uppercase;
}

.contacts-cards .contact-card-value {
    color: var(--text-dark);
    font-size: var(--fz-contact-value);
    font-weight: 500;
    line-height: 130%;
    letter-spacing: var(--ls);
}

.contacts-cards .contact-card-value-phone {
    font-weight: 700;
}

.contacts-cards a.contact-card:hover,
.contacts-cards a.contact-card:focus {
    border-color: var(--accent-hover);
}

.contacts-cards a.contact-card:hover .contact-card-value,
.contacts-cards a.contact-card:focus .contact-card-value {
    color: var(--accent-hover);
}

/* Иконки акцентные на светлом */
.contacts-cards .header-msngrs a {
    color: var(--accent);
}

.contacts-cards .header-msngrs .ic {
    width: 32px;
    height: 32px;
}

/* Карта занимает остаток строки */
.section-contacts .contacts-map {
    flex: 1;
    min-width: 0;
}

.section-contacts .contacts-map .mapContainer,
.section-contacts .contacts-map iframe {
    width: 100% !important;
    height: var(--contacts-map-h) !important;
}

.section-contacts .contacts-map .mapContainer {
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
}
/* CONTACTS STYLES */

/* FOOTER STYLES */
#footer {
    background: var(--accent);
    color: var(--white);
}

/* Четыре колонки подвала */
.footer-top {
    display: flex;
    align-items: flex-start;
    gap: var(--footer-cols-gap);
    padding: var(--footer-pt) 0;
}

.footer-col {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    padding-top: 20px;
}

/* Контакты добирают остаток */
.footer-col-services,
.footer-col-menu {
    flex: none;
}

.footer-col-contacts {
    flex: 1;
}

/* Логотип от края */
.footer-col-brand {
    width: var(--footer-brand-w);
    flex: none;
    gap: 20px;
    padding-top: 0;
    margin-right: auto;
}

.footer-logo img {
    width: auto;
    max-height: var(--header-logo-h);
    border-radius: var(--radius);
}

.footer-logo:hover {
    opacity: 0.85;
}

/* Стиль шапки, не подвала */
#footer .footer-col .header-msngrs a {
    color: var(--light-icon);
}

#footer .footer-col .header-msngrs a:hover,
#footer .footer-col .header-msngrs a:focus {
    color: var(--accent-hover);
    text-decoration: none;
}

/* Кнопка на всю колонку */
.footer-col-brand .region-callback {
    align-self: stretch;
}

/* #footer перебивает ссылки подвала */
#footer .footer-col-brand .region-callback a:not(.contextual-links a),
#footer .footer-col-brand .region-callback button:not(.trigger),
#footer .footer-col-brand .region-callback .btn {
    width: 100%;
    height: var(--btn-sm-h);
    color: var(--accent);
    font-size: var(--fz-btn);
    font-weight: 700;
    line-height: 19px;
}

#footer .footer-col-brand .region-callback a:not(.contextual-links a):hover,
#footer .footer-col-brand .region-callback a:not(.contextual-links a):focus,
#footer .footer-col-brand .region-callback .btn:hover,
#footer .footer-col-brand .region-callback .btn:focus {
    color: var(--white);
    text-decoration: none;
}

/* Заголовки колонок */
.footer-col-title,
#footer .block-title,
#footer .menu--footer-title {
    margin: 0;
    color: var(--white);
    font-size: var(--fz-footer-title);
    font-weight: 700;
    line-height: 100%;
    letter-spacing: var(--ls);
    text-transform: uppercase;
}

/* Блок в столбец */
#footer .footer-col .block {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    align-self: stretch;
}

/* Списки ссылок в колонках */
#footer .footer-col ul {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin: 0;
    padding: 0;
    list-style: none;
}

/* Список ссылок, не сетка */
#footer .footer-col .view-content {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

/* Длинное название переносится */
#footer .footer-col ul a,
#footer .footer-col .view-content a {
    overflow-wrap: anywhere;
}

/* Шаг задаёт только gap */
#footer .footer-col .views-row,
#footer .footer-col .views-field,
#footer .footer-col .views-field > * {
    margin: 0;
    padding: 0;
    font-size: var(--fz-footer-link);
    line-height: 100%;
}

/* Шаг задаёт gap списка */
#footer .footer-col .nav-link {
    padding: 0;
}

/* Только верхний уровень */
#footer .footer-col .dropdown-menu {
    display: none;
}

#footer .footer-col .dropdown-toggle::after {
    display: none;
}

#footer .footer-col a {
    color: var(--white);
    font-size: var(--fz-footer-link);
    font-weight: 600;
    line-height: 100%;
    letter-spacing: var(--ls);
    text-decoration: none;
}

/* Подчёркивание вместо цвета */
#footer .footer-col a:hover,
#footer .footer-col a:focus {
    color: var(--white);
    text-decoration: underline;
}

/* Иконка рядом с текстом */
.footer-contacts {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.footer-contacts .contact-item {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    color: var(--white);
    font-size: var(--fz-footer-text);
    font-weight: 500;
    line-height: 20px;
    letter-spacing: var(--ls);
    text-decoration: none;
}

.footer-contacts .contact-item.phone {
    font-weight: 700;
}

.footer-contacts .ic {
    color: var(--light-icon);
}

.footer-contacts a.contact-item:hover {
    color: var(--light-icon);
}

/* Нижняя полоса подвала */
.footer-bar {
    padding: var(--footer-bar-py) 0;
    background: var(--accent-dark);
}

.footer-bar-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 30px;
    color: var(--white);
    font-size: var(--fz-footer-text);
    font-weight: 500;
    line-height: 20px;
    letter-spacing: var(--ls);
}

.footer-bar-row a {
    color: var(--white);
    font-weight: 600;
    text-decoration: underline;
    text-decoration-thickness: 0.5px;
    text-underline-offset: 3px;
}

.footer-bar-row a:hover,
.footer-bar-row a:focus {
    color: var(--light-icon);
}

/* Подпись разработчика без подчёркивания */
.footer-bar-row .col-webvesta {
    font-weight: 500;
    text-decoration: none;
}
/* FOOTER STYLES */

/* INNER PAGE STYLES */
/* Отступы секций главной */
.not-front .wr_content {
    padding: var(--section-py) 0;
}

.not-front h1 {
    margin-bottom: var(--section-head-mb);
}

/* Форма ближе к тексту */
.not-front .wr_content:has(+ .section-feedback) {
    padding-bottom: calc((var(--section-py) + var(--feedback-section-py)) / 2);
}

.not-front .wr_content + .section-feedback {
    padding-top: 0;
}

/* Картинка внутри блока */
.wr_content .node--view-mode-full {
    display: flow-root;
}

/* Картинка справа, текст обтекает */
.wr_content .node--view-mode-full .field--name-field-izobrazhenie {
    float: right;
    /* Блок по размеру картинки, иначе отходит от края */
    width: fit-content;
    max-width: var(--inner-img-w);
    /* Кадр кратен строке, снизу нет пустоты */
    height: var(--inner-img-h);
    /* Верх по базовой линии первой строки */
    margin: var(--inner-img-mt) 0 20px var(--cards-gap);
    overflow: hidden;
    border-radius: var(--radius);
}

.wr_content .node--view-mode-full .field--name-field-izobrazhenie img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: var(--radius);
    transition: transform var(--zoom-tr);
}

.wr_content .node--view-mode-full .field--name-field-izobrazhenie:hover img {
    transform: scale(var(--zoom));
}

/* Обтекание по классам ядра */
.wr_content .field--name-body .align-left {
    float: left;
    margin: 0 var(--cards-gap) 20px 0;
}

.wr_content .field--name-body .align-right {
    float: right;
    margin: 0 0 20px var(--cards-gap);
}

/* Подложка на всю высоту */
.page-contacts #main {
    background: var(--light-bg);
}

.page-contacts .wr_content {
    padding: var(--section-py) 0 0;
}

.page-contacts .wr_content h1 {
    margin-bottom: 0;
}

/* Подложка уже у main */
.page-contacts .section-contacts {
    padding: var(--contacts-page-gap) 0 var(--contacts-py);
    background: transparent;
}

/* Пагинатор под карточками */
.pager .pagination {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    margin: var(--section-head-mb) 0 0;
    padding: 0;
    list-style: none;
}

/* Номер квадратной кнопкой */
.pager .page-link {
    min-width: var(--btn-sm-h);
    padding: 10px;
    text-transform: none;
}

.pager .page-item.active .page-link {
    background: var(--accent);
    color: var(--white);
}

.pager .page-item.disabled .page-link {
    opacity: 0.5;
}
/* INNER PAGE STYLES */

/* SERVICES STYLES */
/* Карточки услуг из вида */
.view-uslugi .view-content {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--cards-gap);
}

/* Подразделов больше, мельче */
@media screen and (min-width: 992px) {
    .view-uslugi.view-display-id-block_3 .view-content {
        grid-template-columns: repeat(4, 1fr);
    }

    .view-uslugi.view-display-id-block_3 .field--name-node-title h2 {
        font-size: var(--fz-sub-title);
    }
}

.view-uslugi .views-row {
    display: flex;
}

/* Текст прижат вниз */
.view-uslugi .node--type-uslugi {
    position: relative;
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    gap: 6px;
    height: var(--card-h);
    padding: var(--card-p);
    border-radius: var(--radius);
    overflow: hidden;
}

/* Контур не смещает карточку */
.view-uslugi .node--type-uslugi::after {
    content: '';
    position: absolute;
    inset: 0;
    border: 2px solid transparent;
    border-radius: var(--radius);
    pointer-events: none;
    transition: border-color 0.2s ease;
}

.view-uslugi .node--type-uslugi:hover::after {
    border-color: var(--accent-hover);
}

.view-uslugi .field--name-field-izobrazhenie {
    position: absolute;
    inset: 0;
    z-index: 0;
    margin: 0;
}

.view-uslugi .field--name-field-izobrazhenie .media,
.view-uslugi .field--name-field-izobrazhenie a,
.view-uslugi .field--name-field-izobrazhenie img {
    display: block;
    width: 100%;
    height: 100% !important;
    object-fit: cover;
}

/* Зум под маской карточки */
.view-uslugi .field--name-field-izobrazhenie img {
    transition: transform var(--zoom-tr);
}

.view-uslugi .node--type-uslugi:hover .field--name-field-izobrazhenie img {
    transform: scale(var(--zoom));
}

/* Затемнение под белый текст */
.view-uslugi .field--name-field-izobrazhenie::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(23, 19, 59, 0) 0%, rgba(23, 19, 59, 0.9) 100%);
}

/* Подразделы: светлая карточка, прозрачные PNG */
.view-uslugi.view-display-id-block_3 .node--type-uslugi {
    background: var(--light-bg);
}

.view-uslugi.view-display-id-block_3 .field--name-field-izobrazhenie::after {
    content: none;
}

/* Картинка над текстом, не под ним */
.view-uslugi.view-display-id-block_3 .field--name-field-izobrazhenie {
    position: relative;
    inset: auto;
    order: -1;
    flex: 1;
    min-height: 0;
    width: 100%;
}

.view-uslugi.view-display-id-block_3 .field--name-field-izobrazhenie img {
    object-fit: contain;
}

.view-uslugi.view-display-id-block_3 .field--name-node-title h2,
.view-uslugi.view-display-id-block_3 .field--name-node-title a {
    color: var(--text-dark);
}

.view-uslugi.view-display-id-block_3 .field--name-node-link a {
    color: var(--accent);
}

.view-uslugi.view-display-id-block_3 .node--type-uslugi:hover .field--name-node-link a,
.view-uslugi.view-display-id-block_3 .field--name-node-link a:hover,
.view-uslugi.view-display-id-block_3 .field--name-node-link a:focus {
    border-bottom-color: var(--accent);
    color: var(--accent);
}

/* Текст поверх градиента */
.view-uslugi .field--name-node-title,
.view-uslugi .field--name-node-link {
    position: relative;
    z-index: 1;
}

.view-uslugi .field--name-node-title h2 {
    margin: 0;
    font-size: var(--fz-card-title);
    font-weight: 600;
    line-height: 130%;
    letter-spacing: var(--ls);
    color: var(--white);
}

.view-uslugi .field--name-node-title a {
    color: var(--white);
    text-decoration: none;
}

/* Ссылка «Подробнее» со стрелкой */
.view-uslugi .field--name-node-link a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding-bottom: 2px;
    border-bottom: 1px solid transparent;
    color: var(--light);
    font-size: var(--fz-btn);
    font-weight: 700;
    line-height: 19px;
    letter-spacing: var(--ls);
    text-transform: uppercase;
    text-decoration: none;
}

.view-uslugi .field--name-node-link a::after {
    content: '';
    display: block;
    width: 20px;
    height: 20px;
    background-color: currentColor;
    -webkit-mask: url('../image/icons/move-right.svg') no-repeat center / contain;
    mask: url('../image/icons/move-right.svg') no-repeat center / contain;
}

.view-uslugi .node--type-uslugi:hover .field--name-node-link a,
.view-uslugi .field--name-node-link a:hover,
.view-uslugi .field--name-node-link a:focus {
    border-bottom-color: var(--light);
    color: var(--light);
}
/* SERVICES STYLES */

/* PORTFOLIO STYLES */
/* Дублирует заголовок вида */
.section-portfolio .block-title {
    display: none;
}

/* Общая мозаика галерей */
/* 12 колонок, dense */
:is(.section-portfolio, .view-fotogalereya) .item-list > ul,
.node--type-photogallery .photoswipe-gallery {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    grid-auto-rows: var(--pf-row-h);
    grid-auto-flow: row dense;
    gap: var(--cards-gap);
    margin: 0;
    padding: 0;
    list-style: none;
}

:is(.section-portfolio, .view-fotogalereya) .item-list > ul > li,
.node--type-photogallery .photoswipe-gallery > .field__item {
    margin: 0;
    border-radius: var(--radius-lg);
    overflow: hidden;
}

/* Узор через 5 фото */
:is(.section-portfolio, .view-fotogalereya) .item-list > ul > li:nth-child(5n + 1),
.node--type-photogallery .photoswipe-gallery > .field__item:nth-child(5n + 1) {
    grid-column: 1 / span 4;
}

:is(.section-portfolio, .view-fotogalereya) .item-list > ul > li:nth-child(5n + 2),
.node--type-photogallery .photoswipe-gallery > .field__item:nth-child(5n + 2) {
    grid-column: 5 / span 3;
}

:is(.section-portfolio, .view-fotogalereya) .item-list > ul > li:nth-child(5n + 3),
.node--type-photogallery .photoswipe-gallery > .field__item:nth-child(5n + 3) {
    grid-column: 1 / span 3;
}

:is(.section-portfolio, .view-fotogalereya) .item-list > ul > li:nth-child(5n + 4),
.node--type-photogallery .photoswipe-gallery > .field__item:nth-child(5n + 4) {
    grid-column: 4 / span 4;
}

/* Пятое на две строки */
:is(.section-portfolio, .view-fotogalereya) .item-list > ul > li:nth-child(5n + 5),
.node--type-photogallery .photoswipe-gallery > .field__item:nth-child(5n + 5) {
    grid-column: 8 / -1;
    grid-row: span 2;
}

/* Кадрируем фото под ячейку */
:is(.section-portfolio, .view-fotogalereya) .item-list > ul > li > *,
:is(.section-portfolio, .view-fotogalereya) .item-list > ul > li a,
.node--type-photogallery .photoswipe-gallery > .field__item > *,
.node--type-photogallery .photoswipe-gallery > .field__item a {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: var(--radius-lg);
    overflow: hidden;
}

:is(.section-portfolio, .view-fotogalereya) .item-list > ul > li img,
.node--type-photogallery .photoswipe-gallery img {
    width: 100%;
    height: 100% !important;
    object-fit: cover;
    border-radius: var(--radius-lg);
    transition: transform var(--zoom-tr);
}

/* Зум в границах ячейки */
:is(.section-portfolio, .view-fotogalereya) .item-list > ul > li:hover img,
.node--type-photogallery .photoswipe-gallery > .field__item:hover img {
    transform: scale(var(--zoom));
}
/* PORTFOLIO STYLES */

/* PRODUCT PAGE STYLES*/
/* Слева фото, справа описание */
.product-teaser {
    display: flex;
    flex-wrap: wrap;
    gap: 50px;
}

.product-teaser .product-teaser-image,
.product-teaser .product-teaser-info {
    flex: 1 1 var(--product-col-w);
    min-width: 0;
    max-width: var(--product-col-w);
}

.product-teaser .current-slide {
    margin: 0 0 10px;
}

/* Кадрируем любые пропорции */
.product-teaser .current-slide .element img {
    width: 100%;
    height: var(--product-img) !important;
    object-fit: cover;
}

.product-teaser .nav-slide .slick-list {
    margin: 0 -5px;
}

.product-teaser .nav-slide .element {
    margin: 0 5px;
}

.product-teaser .nav-slide .element img {
    width: 100%;
    height: var(--product-thumb) !important;
    object-fit: cover;
}

.product-view-full button.slick-prev.slick-arrow {
    left: -25px;
}

.product-view-full button.slick-next.slick-arrow {
    right: -25px;
}


/* PRODUCT PAGE STYLES*/

/* DISCLAIMER STYLES */
/* Плашка cookies, :root перебивает */
.vpa-container {
    --vpa-font-family: 'Open Sans', sans-serif;
    --vpa-title-color: var(--accent);
    --vpa-text-color: var(--text-dark);
    --vpa-link-color: var(--accent);
    --vpa-btn-color: var(--white);
    --vpa-btn-color-hover: var(--white);
    --vpa-btn-bg: var(--accent);
    --vpa-btn-bg-hover: var(--accent-hover);
    --vpa-btn-brd-width: 0;
    --vpa-btn-brd-color: transparent;
    --vpa-btn-brd-color-hover: transparent;
    --vpa-btn-radius: var(--radius);
    --vpa-trans: 0.2s ease;
}

.vpa-container .vpa-wrapper {
    border-top: 0;
    box-shadow: 0 4px 24px rgba(23, 19, 57, 0.18);
}

.vpa-container div#vpa-short-wrapper {
    max-width: var(--disclaimer-w);
    padding: 20px 24px;
    gap: 24px;
    border-radius: var(--radius);
    background: var(--white);
    color: var(--text-dark);
}

.vpa-container .vpa-content,
.vpa-container div#vpa-short-wrapper .vpa-content,
.vpa-container .vpa-content p {
    font-size: var(--fz-disclaimer);
    font-weight: 400;
    line-height: 20px;
    letter-spacing: var(--ls);
}

.vpa-container .vpa-content strong {
    font-weight: 700;
}

.vpa-container .vpa-content a:hover,
.vpa-container .vpa-content a:focus {
    color: var(--accent-hover);
}

.vpa-container .vpa-actions {
    gap: 12px;
}

/* Иначе :active синий */
.vpa-container .vpa-actions .btn {
    --bs-btn-color: var(--white);
    --bs-btn-bg: var(--accent);
    --bs-btn-border-color: transparent;
    --bs-btn-hover-color: var(--white);
    --bs-btn-hover-bg: var(--accent-hover);
    --bs-btn-hover-border-color: transparent;
    --bs-btn-active-color: var(--white);
    --bs-btn-active-bg: var(--accent-hover);
    --bs-btn-active-border-color: transparent;
    --bs-btn-active-shadow: none;
    --bs-btn-disabled-color: var(--white);
    --bs-btn-disabled-bg: var(--accent);
    --bs-btn-disabled-border-color: transparent;
    --bs-btn-focus-shadow-rgb: 52, 44, 135;
    --bs-btn-border-radius: var(--radius);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: var(--btn-h);
    padding: 10px var(--btn-px);
    font-size: var(--fz-btn);
    font-weight: 700;
    line-height: 19px;
    letter-spacing: var(--ls);
    text-transform: uppercase;
    white-space: nowrap;
}

/* «Не разрешаю» светлая */
.vpa-container .vpa-actions .btn-secondary {
    --bs-btn-color: var(--accent);
    --bs-btn-bg: var(--light);
    --bs-btn-disabled-color: var(--accent);
    --bs-btn-disabled-bg: var(--light);
    background: var(--light);
    color: var(--accent);
    border-color: transparent;
}

.vpa-container .vpa-actions .btn-secondary:hover,
.vpa-container .vpa-actions .btn-secondary:focus,
.vpa-container .vpa-actions .btn-secondary:active {
    background: var(--accent-hover);
    color: var(--white);
}

/* Полный режим по контейнеру */
.vpa-container.vpa-full .vpa-wrapper {
    padding: 24px 0;
    border-top: 1px solid var(--light);
    background: var(--white);
}

.vpa-container.vpa-full .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.vpa-container.vpa-full .vpa-actions {
    margin-top: 0;
    flex: none;
}

.vpa-container .vpa-close-zone .vpa-close-el {
    background: var(--light);
}
/* DISCLAIMER STYLES */

/* *** ADAPTIVE *** */
/* Меню не должно переноситься */
@media screen and (min-width: 992px) and (max-width: 1199px) {
    :root {
        --search-panel-w: 340px;
    }

    .header-bottom .row-flex,
    .header-bottom .col-actions {
        gap: 20px;
    }

    .header-bottom .col-logo {
        gap: 24px;
    }

    .region-navigation ul {
        gap: 18px;
    }
}

@media screen and (max-width: 1199px) {
    :root {
        --fz-slide-title: 40px;
        --fz-section-title: 34px;
        --slider-py: 56px;
        --section-py: 48px;
        --section-head-mb: 32px;
        --cards-gap: 20px;
        --footer-cols-gap: 60px;
        --feedback-p: 32px;
        --feedback-img-w: 200px;
        --contacts-py: 56px;
        --contacts-gap: 40px;
    }

    /* Колонки слайдера пропорционально */
    .slider-block .group-left {
        flex: 1 1 45%;
    }

    .slider-block .group-right {
        flex: 1 1 50%;
        max-width: 55%;
    }

    /* Две колонки, уже подложка */
    .section-feedback .region-feedback {
        gap: 24px;
    }

    .section-feedback .region-feedback > .block:not(.block-webform-block) {
        flex: 1 1 42%;
        max-width: 42%;
    }

    .section-feedback .region-feedback .block-webform-block {
        flex: 1 1 54%;
        width: auto;
        max-width: 54%;
    }

    /* Колонка уже, зазор меньше */
    .section-contacts .contacts-col {
        flex: 0 1 var(--contacts-col-w);
        width: auto;
    }
}

@media screen and (max-width: 991px) {
    :root {
        --fz-slide-title: 30px;
        --fz-section-title: 30px;
        --slider-h: auto;
    }

    #offcanvasNav li.nav-item {
        width: 100%;
    }

    /* Две колонки, кегль меньше */
    .slider-block .node--type-slide {
        gap: 20px;
    }

    .slider-block .group-left {
        flex: 1 1 44%;
        max-width: 44%;
    }

    .slider-block .group-right {
        flex: 1 1 52%;
        max-width: 52%;
    }

    /* Услуги в два столбца */
    .view-uslugi .view-content {
        grid-template-columns: repeat(2, 1fr);
    }

    /* Заголовок над текстом */
    .section-about .region-about .ds-2col {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .section-about .region-about .group-left,
    .section-about .region-about .group-right {
        grid-column: 1;
    }

    /* Преимущества в два столбца */
    .region-benefits .view-content,
    .region-benefits .field__items,
    .region-benefits .block-content > .field,
    .region-benefits .item-list > ul {
        grid-template-columns: repeat(2, 1fr);
    }

    /* Фото одного размера */
    :is(.section-portfolio, .view-fotogalereya) .item-list > ul,
    .node--type-photogallery .photoswipe-gallery {
        grid-template-columns: repeat(2, 1fr);
        grid-auto-rows: var(--pf-row-h);
    }

    :is(.section-portfolio, .view-fotogalereya) .item-list > ul > li,
    :is(.section-portfolio, .view-fotogalereya) .item-list > ul > li:nth-child(5n + 1),
    :is(.section-portfolio, .view-fotogalereya) .item-list > ul > li:nth-child(5n + 2),
    :is(.section-portfolio, .view-fotogalereya) .item-list > ul > li:nth-child(5n + 3),
    :is(.section-portfolio, .view-fotogalereya) .item-list > ul > li:nth-child(5n + 4),
    :is(.section-portfolio, .view-fotogalereya) .item-list > ul > li:nth-child(5n + 5),
    .node--type-photogallery .photoswipe-gallery > .field__item,
    .node--type-photogallery .photoswipe-gallery > .field__item:nth-child(5n + 1),
    .node--type-photogallery .photoswipe-gallery > .field__item:nth-child(5n + 2),
    .node--type-photogallery .photoswipe-gallery > .field__item:nth-child(5n + 3),
    .node--type-photogallery .photoswipe-gallery > .field__item:nth-child(5n + 4),
    .node--type-photogallery .photoswipe-gallery > .field__item:nth-child(5n + 5) {
        grid-column: auto;
        grid-row: auto;
    }

    /* Контакты: карта под карточками */
    .section-contacts .contacts-row {
        flex-direction: column;
        align-items: stretch;
        gap: 32px;
    }

    .section-contacts .contacts-col {
        flex: 0 0 auto;
        width: 100%;
    }

    /* Колонки в две строки */
    .footer-top {
        flex-wrap: wrap;
        gap: 32px;
    }

    /* Услуги и меню рядом */
    .footer-col-services,
    .footer-col-menu {
        flex: 1 1 40%;
    }

    .footer-col {
        flex: 1 1 40%;
    }

    .footer-col-brand {
        width: auto;
    }
}

@media screen and (max-width: 767px) {
    :root {
        --fz-slide-title: 28px;
        --fz-slide-text: 16px;
        --fz-section-title: 26px;
        --fz-card-title: 20px;
        --slider-py: 40px;
        --section-py: 40px;
        --section-head-mb: 24px;
        --inner-img-w: 280px;
        --feedback-p: 20px;
        --feedback-card-p: 16px;
        --contacts-py: 40px;
        --contacts-page-gap: 24px;
        --contacts-col-gap: 24px;
        --footer-brand-w: 150px;
    }

    /* Заголовок над кнопкой */
    .section-head {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
    }

    /* Колонки уже, кнопка ниже */
    .slider-block .node--type-slide {
        gap: 16px;
    }

    .slider-block .node--type-slide .content {
        gap: 12px;
    }

    .slider-block .field--name-field-slide-link {
        margin-top: 16px;
    }

    /* Форма под текстом */
    .section-feedback .region-feedback {
        flex-direction: column;
        gap: 24px;
        min-height: 0;
    }

    .section-feedback .region-feedback > .block:not(.block-webform-block),
    .section-feedback .region-feedback .block-webform-block {
        flex: 0 0 auto;
        width: 100%;
        max-width: 100%;
    }

    .section-feedback .region-feedback .field--type-image {
        display: none;
    }

    /* Телефон над почтой */
    .contacts-cards .contact-card-row {
        flex-direction: column;
    }

    /* Своя раскладка вместо webform */
    .webform-submission-form .webform-flexbox {
        display: flex;
        flex-direction: column;
    }

    .webform-submission-form .form-actions,
    .section-feedback .webform-submission-form .form-actions {
        align-self: stretch;
    }

    .webform-submission-form input[type='submit'],
    .webform-submission-form button[type='submit'] {
        width: 100%;
    }

    /* Меню справа от бренда */
    .footer-top {
        flex-wrap: wrap;
        gap: 28px 24px;
    }

    .footer-col-brand {
        width: var(--footer-brand-w);
        margin-right: 0;
    }

    /* Колонки от верхнего края */
    .footer-col-menu {
        flex: 1 1 auto;
        min-width: 0;
        padding-top: 0;
    }

    #footer .footer-logo img {
        max-height: 48px;
    }

    .footer-col-contacts {
        flex: 1 1 100%;
        padding-top: 0;
    }

    /* Строки друг под другом */
    .footer-bar-row {
        flex-direction: column;
        gap: 12px;
    }

    /* Кнопка меньше и ближе */
    #scrollToTop {
        right: 15px;
        bottom: 80px;
        width: 36px;
        height: 36px;
        padding: 6px;
    }

    #scrollToTop .ic {
        width: 20px;
        height: 20px;
    }

    /* Кнопка под текстом */
    .vpa-container div#vpa-short-wrapper {
        flex-direction: column;
        align-items: stretch;
        gap: 16px;
        padding: 40px 20px 20px;
        border-radius: var(--radius) var(--radius) 0 0;
    }

    .vpa-container.vpa-full .container {
        flex-direction: column;
        align-items: stretch;
        gap: 16px;
    }

    .vpa-container .vpa-actions .btn {
        flex: 1;
    }
}

@media screen and (max-width: 576px) {
    :root {
        --fz-slide-title: 24px;
        --fz-slide-text: 15px;
        --slider-py: 32px;
        --cards-gap: 12px;
        --card-p: 12px;
        --card-h: 160px;
        --benefit-ic: 80px;
        --benefit-h: auto;
        --pf-row-h: 140px;
        --footer-brand-w: 140px;
        --product-col-w: 100%;
        --product-img: 280px;
        --product-thumb: 90px;
    }

    /* Картинка под текстом */
    .slider-block .node--type-slide {
        flex-direction: column;
        align-items: stretch;
        gap: 24px;
    }

    .slider-block .group-left,
    .slider-block .group-right {
        flex: 0 0 auto;
        max-width: 100%;
    }

    /* В одну колонку сдвиг не нужен */
    .slider-block .group-right {
        margin-right: 0;
    }

    /* Высота карточки по контенту */
    .region-benefits .paragraph .field--type-image,
    .region-benefits .paragraph .field--type-image .field__item {
        height: auto;
    }

    /* Кегли под узкую колонку */
    .region-benefits .paragraph h2,
    .region-benefits .field--name-field-zagolovok,
    .region-benefits .paragraph .field--name-node-title {
        font-size: var(--fz-btn);
    }

    .region-benefits .field--name-field-opisanie,
    .region-benefits .field--type-text-long,
    .region-benefits .field--name-body,
    .region-benefits .field--name-field-opisanie p,
    .region-benefits .field--type-text-long p,
    .region-benefits .field--name-body p {
        font-size: var(--fz-submenu);
    }

    /* По две колонки */
    .view-uslugi .view-content,
    .region-benefits .view-content,
    .region-benefits .field__items,
    .region-benefits .block-content > .field,
    .region-benefits .item-list > ul,
    :is(.section-portfolio, .view-fotogalereya) .item-list > ul,
    .node--type-photogallery .photoswipe-gallery {
        grid-template-columns: repeat(2, 1fr);
    }

    /* Картинка на всю ширину */
    .wr_content .node--view-mode-full .field--name-field-izobrazhenie,
    .wr_content .field--name-body .align-left,
    .wr_content .field--name-body .align-right {
        float: none;
        width: 100%;
        max-width: none;
        height: auto;
        margin: 0 0 20px;
    }

    .wr_content .node--view-mode-full .field--name-field-izobrazhenie img {
        height: auto;
    }

    .view-uslugi .field--name-node-title h2 {
        font-size: var(--fz-btn);
    }

    .view-uslugi .field--name-node-link a {
        font-size: var(--fz-min);
    }

    /* Колонка бренда по кнопке */
    .footer-top {
        gap: 24px 16px;
    }

    /* Иначе распирает колонку */
    #footer .footer-col-brand .region-callback a:not(.contextual-links a),
    #footer .footer-col-brand .region-callback button:not(.trigger),
    #footer .footer-col-brand .region-callback .btn {
        height: auto;
        min-height: var(--btn-sm-h);
        padding-left: 10px;
        padding-right: 10px;
        font-size: var(--fz-min);
        text-align: center;
        white-space: normal;
    }
}

/* Зум off при reduced-motion */
@media (prefers-reduced-motion: reduce) {
    :root {
        --zoom: 1;
    }
}

/* *** CONTEXTUAL LINKS *** */
/* Возвращаем вид ядра */
ul.contextual-links {
    display: block;
    gap: 0;
}

#header .contextual-links a,
#footer .contextual-links a,
.offcanvas .contextual-links a,
#header .contextual-links a:hover,
#footer .contextual-links a:hover,
.offcanvas .contextual-links a:hover,
#header .contextual-links a:focus,
#footer .contextual-links a:focus,
.offcanvas .contextual-links a:focus {
    color: #333;
    font-size: small;
    font-weight: 400;
    line-height: 0.8em;
    letter-spacing: normal;
    text-transform: none;
}
