body {
    height: 100%;
    margin: 0;
    padding-right: 0 !important;
}

body.modal-open {
    padding-right: 0 !important;
    overflow: hidden;
}

html {
    overflow-y: scroll;
    scrollbar-gutter: stable;
}

#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;
}
/*HEADER STYLES*/
#footer .ajax-progress,
#header .ajax-progress {
    display: none;
}

.toolbar .toolbar-tab .toolbar-icon {
    padding: 0.75em 1.5em 0.75em 2.5em;
}
.path-admin .messages--error {
    display: none;
}
/* *** 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: 18px;
    height: 18px;
    border: 2px solid #fff;
    background: #ccc;
    color: #fff;
    top: -3px;
    right: -9px;
    border-radius: 50%;
    font-size: 10px;
    font-weight: 500;
}

#header-mob {
    top: 0;
    width: 100%;
    background: #d9d9d9;
    color: #000;
    padding: 5px 5px;
    z-index: 50;
}

#header-mob.toolbar-horizontal #header-mob {
    top: 0;
}

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

#header-mob a {
    color: #000;
}

.offcanvas {
    --bs-offcanvas-bg: #d9d9d9;
}

.offcanvas .offcanvas-title {
    color: #000;
    text-transform: uppercase;
    font-size: 20px;
    font-weight: 500;
}

.region-navigation .nav > .nav-item:hover .dropdown-menu {
    display: block;
    top: 100%;
    left: 0;
}


/*HEADER STYLES*/

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

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

div#slider-block .view.view-slayder.view-id-slayder .view-content .node--type-slide .content {
    position: absolute;
    top: 0;
    bottom: calc(1vw + 12px);
    left: 0;
    right: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    color: #fff;
}

.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;
    gap: 7px;
    list-style: none;
    margin: 10px 0;
}

ul.slick-dots li button {
    background: #686868;
    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: #272727;
}

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("/sites/all/themes/vesta_theme/image/button.svg");*/
/*    transform: rotate(180deg);*/
/*}*/

/*button.slick-next.slick-arrow::before {*/
/*    background-image: url("/sites/all/themes/vesta_theme/image/button.svg");*/
/*}*/

#scrollToTop {
    width: 48px;
    height: 48px;
    background: none;
    text-indent: 0;
    font-size: 0;
    border: 0px;
    outline: 0px;
    display: flex;
    bottom: 120px;
    cursor: pointer;
    position: fixed;
    right: 75px;
    z-index: 10;
    transition: 0.2s;
    padding: 0;
}

/* SLICK STYLES */

/* PRODUCT PAGE STYLES*/
.product-teaser {
    display: flex;
    gap: 50px;
}

.product-teaser .product-teaser-image {
    max-width: 500px;
}

.product-teaser .product-teaser-image .field.field--name-field-variation-image.field--type-image .elements .current-slide.slick-initialized.slick-slider {
    margin: 0 0 10px;
}

.product-teaser .product-teaser-image .field.field--name-field-variation-image.field--type-image .elements .current-slide.slick-initialized.slick-slider .slick-list.draggable .slick-track .element.slick-slide img {
    max-width: 500px;
    min-width: 500px;
    max-height: 500px;
    min-height: 500px;
    object-fit: cover;
}

.product-teaser .product-teaser-image .field.field--name-field-variation-image.field--type-image .elements .nav-slide.slick-initialized.slick-slider .slick-list.draggable {
    margin: 0 -5px;
}

.product-teaser .product-teaser-image .field.field--name-field-variation-image.field--type-image .elements .nav-slide.slick-initialized.slick-slider .slick-list.draggable .slick-track .element.slick-slide {
    margin: 0 5px;
    max-width: 118px;
    min-width: 118px;
    max-height: 118px;
    min-height: 118px;
}

.product-teaser .product-teaser-image .field.field--name-field-variation-image.field--type-image .elements .nav-slide.slick-initialized.slick-slider .slick-list.draggable .slick-track .element.slick-slide img {
    max-width: 118px;
    min-width: 118px;
    max-height: 118px;
    min-height: 118px;
    object-fit: cover;
}

.product-teaser .product-teaser-info {
    max-width: 500px;
}

.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;
}

/* Lora */

@font-face {
    font-family: 'Lora';
    src: url('../font/Lora-Regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Lora';
    src: url('../font/Lora-Medium.woff2') format('woff2');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Lora';
    src: url('../font/Lora-SemiBold.woff2') format('woff2');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

/* Manrope */

@font-face {
    font-family: 'Manrope';
    src: url('../font/Manrope-Regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

:root {
    --brown: #592d23;
    --black: #1c1c1c;
    --light-black: #2e2e2e;
    --white: #fff;
    --light-grey: #efefef;
    --grey: #f2f2f2;
    --cream: #f7f0ea;

}

:root {
    --font-family: "Lora", sans-serif;
    --second-family: "Manrope", sans-serif;
}

body {
    font-family: 'Lora', sans-serif;
}

/* =========================
   COOKIE DISCLAIMER
   ========================= */

/* Базовые стили для плашки дисклеймера (размер 622х74) */
#vpa-short-wrapper.vpa-wrapper.vpa-slide.vpa-visible {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 20px;
    z-index: 9999;
    width: calc(100% - 40px);
    max-width: 622px;
    height: 74px;
    margin: 0 auto;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 10px 20px;
    background: #fff;
    box-shadow: 3px 2px 20px 4px rgba(140, 148, 162, 0.2);
}

/* Стилизация текста слева */
#vpa-short-wrapper .vpa-content p {
    font-family: var(--font-family);
    font-weight: 400;
    font-size: 14px;
    line-height: 1.3;
    color: #2b2b2b;
    text-align: left;
    margin: 0;
}

/* Ссылка внутри текста */
#vpa-short-wrapper .vpa-content p a {
    color: #2b2b2b;
    text-decoration: underline;
}

/* Стилизация кнопки справа (размер 103х49) */
#vpa-short-wrapper .vpa-actions button#vpa-btn-ok {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 103px;
    height: 49px;
    padding: 0;
    background: var(--black);
    border: none;
    box-sizing: border-box;
    cursor: pointer;
    transition: background 0.2s ease;
    
    font-size: 0 !important;
    color: transparent !important;
}

/* ХАК: Подставляем текст "Принять" через псевдоэлемент */
#vpa-short-wrapper .vpa-actions button#vpa-btn-ok::after {
    content: "Принять";
    font-family: var(--font-family);
    font-weight: 400;
    font-size: 15px;
    color: var(--white);
    text-align: center;
    line-height: 1;
}

/* Ховер-эффект для кнопки */
#vpa-short-wrapper .vpa-actions button#vpa-btn-ok:hover {
    background: #241f1c;
}

/* SEARCH TOGGLE */
.col-search .search-api-page-block-form-search {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    position: relative;
    /* Убедитесь, что у родителя достаточный z-index, чтобы быть выше меню */
    z-index: 100;
}

.col-search .search-api-page-block-form-search form {
    display: flex;
    align-items: center;
    margin: 0;
    position: absolute; /* Позволяет строке ложиться ПОВЕРХ других элементов */
    right: 0;
    background: #fff;
}

.col-search .search-api-page-block-form-search .form-item-keys {
    margin: 0;
}

.col-search .search-api-page-block-form-search .form-item-keys input.form-search {
    width: 0;
    min-width: 0;
    height: 40px;
    padding: 0;
    border: 1px solid #2b2b2b; /* Линия всегда есть, но скрыта через width/opacity */
    opacity: 0;
    visibility: hidden;
    overflow: hidden;
    transition: all 0.25s ease;
    box-sizing: border-box;
    background: #fff;
}

/* Состояние OPEN */
.col-search .search-api-page-block-form-search.is-open .form-item-keys input.form-search {
    width: 250px; /* Ширина поля */
    padding: 0 14px;
    opacity: 1;
    visibility: visible;
    border-right: 0; /* Убираем правую линию инпута, так как там левая линия кнопки */
}

.col-search .search-api-page-block-form-search .form-item-keys input.form-search:focus {
    outline: none;
    box-shadow: none;
}

.col-search .search-api-page-block-form-search .form-actions {
    margin: 0;
}

.col-search .search-api-page-block-form-search .search-form__submit {
    width: 40px;
    height: 40px;
    padding: 0;
    border: 1px solid #2b2b2b; /* Линия кнопки всегда на месте */
    border-radius: 0;
    background-color: #fff;
    background-image: url('/sites/all/themes/vesta_theme/image/search.svg');
    background-repeat: no-repeat;
    background-position: center;
    background-size: 18px 18px;
    color: transparent;
    font-size: 0;
    cursor: pointer;
    transition: 0.2s ease;
    position: relative;
    z-index: 2;
}

/* При открытии сохраняем все границы */
.col-search .search-api-page-block-form-search.is-open .search-form__submit {
    border-left: 1px solid #2b2b2b; /* Возвращаем левую линию кнопки */
}

.col-search .search-api-page-block-form-search .search-form__submit:hover {
    background-color: #f7f7f7;
}

/* CART BUTTON */
#header .col-cart .cart--cart-block {
    display: flex;
    align-items: center;
    padding-left: 5px;
}

#header .col-cart .cart-block--summary {
    display: flex;
    align-items: center;
}

#header .col-cart .cart-block--link__expand {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;

    height: 40px;
    padding: 0 18px;
    min-width: 148px;

    background: var(--black);
    text-decoration: none;
    color: var(--white);

    font-family: var(--font-family);
    font-size: 15px;
    font-weight: 400;
    white-space: nowrap;

    transition: 0.2s ease;
}

#header .col-cart .cart-block--link__expand:hover {
    background: var(--light-black);
    color: #fff;
}

#header .col-cart .cart-block--summary__icon {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    line-height: 0;
}

#header .col-cart .cart-block--summary__icon img {
    display: block;
    width: 18px;
    height: 18px;
    object-fit: contain;
    
    filter: brightness(0) invert(1);
}

/* ТЕКСТ КОРЗИНА */
#header .col-cart .cart-block--link__expand::after {
    content: "Корзина";
    font-family: 'Lora', serif;
    font-size: 15px;
    font-weight: 400;
    color: #fff;
    white-space: nowrap;
}

#header .col-cart .cart-block--summary__count {
    display: none !important;
}

/* CALLBACK BUTTON */
#header .col-callback .field__item {
    display: flex;
    align-items: center;
}

#header .col-callback a.btn.btn-primary.use-ajax {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    
    padding: 8px 15px;

    border: 1px solid var(--black);
    border-radius: 0;
    background: #fff;

    color: var(--black);
    text-decoration: none;
    box-shadow: none;

    font-family: 'Lora', serif;
    font-size: 13px;
    font-weight: 400;
    line-height: 1;
    white-space: nowrap;

    transition: 0.2s ease;
}

#header .col-callback a.btn.btn-primary.use-ajax:hover {
    background: #111;
    color: #fff;
    border-color: #111;
}

#header .col-callback a.btn.btn-primary.use-ajax:focus,
#header .col-callback a.btn.btn-primary.use-ajax:active {
    outline: none;
    box-shadow: none;
}

/* NAVIGATION */
#header .header-bottom .region-navigation nav {
    display: flex;
    align-items: center;
}

/* ТОЛЬКО ВЕРХНИЙ УРОВЕНЬ */
#header .header-bottom .region-navigation nav > ul,
#header .header-bottom .region-navigation nav > .menu {
    display: flex;
    align-items: center;
    gap: 48px;
    margin: 0;
    padding: 0;
    list-style: none;
}

/* LI ВЕРХНЕГО УРОВНЯ */
#header .header-bottom .region-navigation nav > ul > li,
#header .header-bottom .region-navigation nav > .menu > li {
    position: relative;
    margin: 0;
    padding: 0;
}

/* ССЫЛКИ ВЕРХНЕГО УРОВНЯ */
#header .header-bottom .region-navigation nav > ul > li > a,
#header .header-bottom .region-navigation nav > .menu > li > a {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    font-family: 'Lora', serif;
    font-weight: 400;
    font-size: 18px;
    color: var(--black);
    transition: color 0.2s ease;
}

#header .header-bottom .region-navigation nav > ul > li > a:hover,
#header .header-bottom .region-navigation nav > .menu > li > a:hover {
    color: #000;
}

#header .header-bottom .region-navigation nav > ul > li > a.is-active,
#header .header-bottom .region-navigation nav > ul > li.is-active > a,
#header .header-bottom .region-navigation nav > ul > li.menu-item--active-trail > a,
#header .header-bottom .region-navigation nav > .menu > li > a.is-active,
#header .header-bottom .region-navigation nav > .menu > li.is-active > a,
#header .header-bottom .region-navigation nav > .menu > li.menu-item--active-trail > a {
    color: #000;
}

/* ПОДМЕНЮ */
#header .header-bottom .region-navigation nav ul ul {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 220px;
    margin: 0;
    padding: 10px 0;
    list-style: none;
    background: #fff;
    border: 1px solid rgba(89, 45, 35, 0.12);
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
    z-index: 50;
}

/* ПОДМЕНЮ ЭЛЕМЕНТЫ */
#header .header-bottom .region-navigation nav ul ul li {
    margin: 0;
    padding: 0;
    position: relative;
}

/* ССЫЛКИ ПОДМЕНЮ */
#header .header-bottom .region-navigation nav ul ul li a {
    display: block;
    padding: 10px 16px;
    font-family: 'Lora', serif;
    font-size: 16px;
    font-weight: 400;
    color: var(--black);
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.2s ease, color 0.2s ease;
}

#header .header-bottom .region-navigation nav ul ul li a:hover {
    background: #f7f7f7;
    color: var(--brown);
}

/* ПОКАЗ ПОДМЕНЮ ПО HOVER */
#header .header-bottom .region-navigation nav li:hover > ul {
    display: block;
}

/* Если у вас Bootstrap dropdown-menu */
#header .header-bottom .region-navigation .dropdown-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 220px;
    margin: 0;
    padding: 10px 0;
    border-radius: 0;
    border: 1px solid rgba(89, 45, 35, 0.12);
    background: #fff;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
    z-index: 50;
}

#header .header-bottom .region-navigation li:hover > .dropdown-menu {
    display: block;
}

/* MAIL / PHONE IN HEADER */
#header .header-top a.mail,
#header .header-top a.tel {
    display: inline-flex;
    align-items: center;
    gap: 8px;

    color: var(--black) !important;
    text-decoration: none !important;

    font-family: var(--font-family);
    font-size: 14px;
    font-weight: 400;
    line-height: 1;
    white-space: nowrap;

    transition: 0.2s ease;
}

#header .header-top a.mail:hover,
#header .header-top a.tel:hover {
    color: var(--brown) !important;
    text-decoration: none !important;
    opacity: 0.9;
}

#header .header-top a.mail img,
#header .header-top a.tel img {
    display: block;
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    object-fit: contain;
}

#header .header-top a.mail span,
#header .header-top a.tel span {
    display: inline-block;
}

/* 1. ГРАДИЕНТНЫЙ ФОН И КОНТЕЙНЕР */
#slider-block {
    background: radial-gradient(circle, #f0f0f0 0%, #dcdcdc 100%); /* Фон как на скрине */
}

.intro-section {
    background: var(--grey);
    padding-top: 50px;
    padding-bottom: 50px;
}

/* Снимаем ограничение видимости, чтобы стрелки были видны вне контейнера */
#slider-block .region-slider,
#slider-block .views-element-container,
#slider-block .view {
    overflow: visible !important;
}

/* 2. СТИЛИ КНОПОК ПЕРЕКЛЮЧЕНИЯ (45x45 px) */
#slider-block button.slick-prev.slick-arrow,
#slider-block button.slick-next.slick-arrow {
    width: 45px !important;
    height: 45px !important;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 100;

    display: flex !important;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 1px solid #aaa; /* Тонкая серая рамка */
    border-radius: 50%;
    cursor: pointer;
    font-size: 0;
    padding: 0;
    transition: all 0.3s ease;
}

#slider-block button.slick-prev.slick-arrow:hover,
#slider-block button.slick-next.slick-arrow:hover {
    border-color: #333;
    background-color: rgba(255,255,255,0.2);
}

/* ВЫНОС ЗА КОНТЕЙНЕР (отрицательные значения) */
#slider-block button.slick-prev.slick-arrow {
    left: -70px; /* Выход влево */
}

#slider-block button.slick-next.slick-arrow {
    right: -70px; /* Выход вправо */
}

/* Убираем стандартные иконки slick если они есть */
#slider-block button.slick-prev.slick-arrow::after,
#slider-block button.slick-next.slick-arrow::after {
    display: none;
}

/* ИКОНКА ВНУТРИ (твои стили) */
#slider-block button.slick-prev.slick-arrow::before,
#slider-block button.slick-next.slick-arrow::before {
    content: "";
    display: block;
    width: 45px;
    height: 45px;
    background-image: url("/sites/all/themes/vesta_theme/image/button.svg");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}

/* Поворот для левой стрелки */
#slider-block button.slick-prev.slick-arrow::before {
    transform: rotate(180deg);
}

/* 3. ВЕРСТКА СЛАЙДА (ТЕКСТ СЛЕВА, КАРТИНКА СПРАВА) */
.node--type-slide.ds-2col {
    display: flex !important;
    align-items: center; /* Центрирование по вертикали */
    justify-content: space-between;
    border: none;
}

.node--type-slide .group-left {
    flex: 0 0 55%; /* Левая часть чуть шире */
    text-align: left;
}

.node--type-slide .group-right {
    flex: 0 0 45%;
    display: flex;
    justify-content: flex-end;
}

.node--type-slide .group-right .field--name-field-image img {
    max-width: 100%;
    height: 385px;
    display: block;
}

/* 4. ТЕКСТОВЫЕ СТИЛИ */
.field--name-field-slide-title p {
    font-family: "Playfair Display", serif; /* Похоже на этот шрифт */
    font-size: 46px;
    line-height: 1.2;
    color: #333;
    margin-bottom: 25px;
    font-weight: 500;
    max-width: 476px;
}

.field--name-body p {
    font-size: 17px;
    color: #555;
    margin-bottom: 35px;
}

/* Кнопка "Оставить заявку" */
.field--name-field-slide-link a {
    display: inline-block;
    background: var(--black);
    color: #fff;
    padding: 18px 45px;
    text-decoration: none;
    font-size: 16px;
    transition: 0.3s;
}

.field--name-field-slide-link a:hover {
    background: var(--light-black);
}

/* Скрываем ненужные заголовки */
#slider-block .view-content article > h2 {
    display: none;
}

.slider-block {
    background: linear-gradient(180deg, #e4e2e3 0%, #979797 100%);
}

/* Контейнер заголовка */
.intro-section .field--name-field-intro-title {
    font-family: var(--font-family);
    font-size: 40px;
    font-weight: 600;
    color: var(--black);
    margin: 0 0 60px 0;
    position: relative;
    text-align: center;
}

/* Линия */
.intro-section .field--name-field-intro-title::after {
    content: "";
    position: absolute;
    bottom: -30px;
    left: 50%;
    transform: translateX(-50%);
    width: 298px;
    height: 1px;
    background-color: var(--black);
}

/* Ромб */
.intro-section .field--name-field-intro-title::before {
    content: "◆";
    position: absolute;
    bottom: -30px;
    left: 50%;
    transform: translate(-50%, 50%);

    font-size: 16px;
    line-height: 1;
    color: #222;
    background-color: var(--grey);
    padding: 0 10px;
    z-index: 2;
}

/* Подзаголовок (текст под линией) */
.intro-section .field--name-field-intro-text {
    font-family: var(--font-family);
    font-size: 18px;
    color: #3a3736;
    margin-top: 10px;
    text-align: center;
}

/*BLOCK ABOUT*/

/* Основной контейнер секции */
.about-section {
    background-color: #1a1a1a; /* Глубокий темно-серый цвет */
    color: #ffffff;
    padding: 50px 0;
    text-align: center;
}

/* Надзаголовок (О компании) */
.about-section .field--name-field-title1 {
    font-family: var(--font-family);
    text-transform: uppercase;
    font-size: 18px;
    margin-bottom: 10px;
    color: var(--white);
}

/* Главный заголовок блока */
.about-section .field--name-field-title2 {
    font-family: var(--font-family);
    font-size: 38px;
    font-weight: 400;
    max-width: 800px;
    margin: 0 auto 80px auto;
    position: relative;
}

/* Линия под заголовком */
.about-section .field--name-field-title2::after {
    content: "";
    position: absolute;
    bottom: -40px;
    left: 50%;
    transform: translateX(-50%);
    width: 298px;
    height: 1px;
    background-color: var(--white);
}

/* Ромб на линии */
.about-section .field--name-field-title2::before {
    content: "◆";
    position: absolute;
    bottom: -40px;
    left: 50%;
    transform: translate(-50%, 50%);
    font-size: 14px;
    color: #fff;
    background-color: #1a1a1a;
    padding: 0 15px;
    z-index: 2;
}

/* Текст описания */
.about-section .field--name-field-about-text {
    font-family: var(--font-family);
    font-size: 18px;
    color: var(--white);
    max-width: 776px;
    margin: 0 auto 50px auto;
}

/* Стилизация кнопки "Подробнее" */
.about-section .field--name-field-btn-about a {
    display: inline-block;
    border: 1px solid var(--white);
    color: var(--white);
    text-decoration: none;

    padding: 14.5px 84px;
    line-height: 22px;

    font-family: var(--font-family);
    font-size: 18px;
    text-align: center;
    box-sizing: border-box;
    transition: all 0.3s ease;
}

/* Эффект при наведении на кнопку */
.about-section .field--name-field-btn-about a:hover {
    background: rgba(255, 255, 255, 0.1);
    color: var(--white);
}

/* FIX: слайд — текст слева, картинка справа */
#slider-block .node--type-slide.ds-2col {
    display: flex !important;
    align-items: stretch; /* важно: правая часть тянется по высоте слайда */
    justify-content: space-between;
    border: none;
    box-sizing: border-box;
}

/* Левая колонка: фиксированные отступы сверху и снизу */
#slider-block .node--type-slide .group-left {
    flex: 0 0 55%;
    text-align: left;
    padding-top: 102px;
    padding-bottom: 102px;
    box-sizing: border-box;

    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* Правая колонка растягивается на всю высоту слайда */
#slider-block .node--type-slide .group-right {
    flex: 0 0 45%;
    display: flex;
    justify-content: flex-end;
    align-items: stretch;
    box-sizing: border-box;
}

/* Обертка поля картинки тоже должна быть на всю высоту */
#slider-block .node--type-slide .group-right .field--name-field-image,
#slider-block .node--type-slide .group-right .field--name-field-image .field__item {
    height: 100%;
    display: flex;
    justify-content: flex-end;
    align-items: stretch;
}

/* Картинка: без обрезки, на всю высоту блока */
#slider-block .node--type-slide .group-right .field--name-field-image img {
    height: 100%;
    width: auto;
    max-width: none;
    display: block;
    object-fit: contain;
}

/* Убираем лишние дефолтные отступы у p, чтобы 102px были точными */
#slider-block .field--name-field-slide-title p,
#slider-block .field--name-body p {
    margin-top: 0;
}

/* ======================================================
   FIX: СЛАЙД — ТЕКСТ СЛЕВА, ИЗОБРАЖЕНИЕ СПРАВА
   Изображение выходит за пределы container вправо
   и занимает всю высоту слайда без обрезки сверху/снизу
   ====================================================== */

#slider-block {
    position: relative;
    overflow-x: clip;
    overflow-y: visible;
}

/* Отключаем обрезание изображения обёртками Drupal и Slick */
#slider-block .container,
#slider-block .region-slider,
#slider-block .views-element-container,
#slider-block .view,
#slider-block .view-content,
#slider-block .slick-list,
#slider-block .slick-track,
#slider-block .views-row,
#slider-block .node--type-slide.ds-2col {
    overflow: visible !important;
}

/* Основной слайд */
#slider-block .node--type-slide.ds-2col {
    position: relative;
    display: flex !important;
    align-items: stretch;
    justify-content: space-between;
    /*min-height: 492px;*/
    border: none;
    box-sizing: border-box;
}

/* Левая колонка с текстом */
#slider-block .node--type-slide .group-left {
    position: relative;
    z-index: 4;
    flex: 0 0 55%;
    padding-top: 102px;
    padding-bottom: 102px;
    padding-right: 40px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: left;
}

/* Правая колонка выходит вправо за пределы container */
#slider-block .node--type-slide .group-right {
    position: absolute !important;
    z-index: 3;
    top: 0;
    bottom: 0;
    left: 55%;
    right: calc((100vw - 100%) / -2);

    display: flex;
    justify-content: flex-end;
    align-items: stretch;
    box-sizing: border-box;
    overflow: visible !important;
}

/*
  В вашей разметке поле изображения уже является .field__item:
  <div class="field ... field__item"><img ...></div>
*/
#slider-block .node--type-slide .group-right .field--name-field-image {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: flex-end;
    align-items: stretch;
    overflow: visible !important;
}

/* Картинка занимает всю высоту слайда и не обрезается сверху/снизу */
#slider-block .node--type-slide .group-right .field--name-field-image img {
    position: relative;
    z-index: 3;
    display: block;
    flex: 0 0 auto;

    width: auto !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;

    object-fit: contain !important;
    object-position: right center;
}

/* Убираем лишние верхние отступы у текста */
#slider-block .field--name-field-slide-title p,
#slider-block .field--name-body p {
    margin-top: 0;
}

/* ======================================================
   ИЗОЛИРОВАННЫЕ СТИЛИ ТЕКСТА И КНОПКИ ДЛЯ СЛАЙДЕРА
   ====================================================== */

/* Главный заголовок на слайде */
#slider-block .node--type-slide .field--name-field-slide-title p,
#slider-block .node--type-slide .field--name-field-slide-title span {
    font-family: var(--font-family);
    font-size: 38px;
    font-weight: 500;
    color: #3a3736;
    max-width: 476px;
}

/* Описание (текст слайда) */
#slider-block .node--type-slide .field--name-body p,
#slider-block .node--type-slide .field--name-body span {
    font-family: var(--font-family);
    font-size: 18px;
    font-weight: 400;
    color: #3a3736;
    max-width: 456px;
}

/* Кнопка "Оставить заявку" на слайде */
#slider-block .node--type-slide .field--name-field-slide-link a {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 217px;
    height: 53px;

    background: var(--black);
    color: var(--white);
    text-decoration: none;
    font-family: var(--font-family);
    font-size: 16px;
    font-weight: 400;

    box-sizing: border-box;
    transition: background 0.2s ease;
}

/* Ховер-эффект для кнопки слайдера */
#slider-block .node--type-slide .field--name-field-slide-link a:hover {
    background: #241f1c;
}

/* ======================================================
   FIX: 992px — 1199px
   Изображение показывается целиком на всю высоту,
   выходит за container вправо,
   стрелки размещаются за пределами container
   ====================================================== */

@media (min-width: 992px) and (max-width: 1199px) {

    #slider-block {
        position: relative;
        overflow-x: clip;
        overflow-y: visible;
    }

    /*
      Создаём свободное место слева и справа для стрелок.
      Изображение при этом сможет выходить вправо
      за границы данного container.
    */
    #slider-block > .container {
        position: relative;
        width: calc(100% - 128px);
        max-width: none;
        margin-left: auto;
        margin-right: auto;
        overflow: visible !important;
    }

    /* Отключаем обрезание у обёрток Drupal и Slick */
    #slider-block .region-slider,
    #slider-block .views-element-container,
    #slider-block .view,
    #slider-block .view-content,
    #slider-block .slick-list,
    #slider-block .slick-track,
    #slider-block .views-row {
        overflow: visible !important;
    }

    #slider-block .view-content {
        position: relative;
    }

    /* Основной слайд */
    #slider-block .node--type-slide.ds-2col {
        --slide-height: clamp(337px, 34vw, 408px);

        position: relative;
        display: flex !important;
        align-items: stretch;
        justify-content: space-between;
        width: 100%;
        height: var(--slide-height);
        min-height: var(--slide-height);
        border: none;
        overflow: visible !important;
        box-sizing: border-box;
    }

    /* Левая колонка с текстом */
    #slider-block .node--type-slide .group-left {
        position: relative;
        z-index: 4;
        flex: 0 0 48%;
        max-width: 48%;
        min-width: 0;
        padding: 34px 22px 34px 0;
        box-sizing: border-box;
        display: flex;
        flex-direction: column;
        justify-content: center;
        text-align: left;
    }

    /*
      Правая колонка не ограничивается шириной container.
      Правая граница изображения доходит до края экрана.
    */
    #slider-block .node--type-slide .group-right {
        position: absolute !important;
        z-index: 2;
        display: flex !important;
        top: 0;
        right: calc((100vw - 100%) / -2);
        bottom: 0;
        left: auto;
        width: max-content;
        height: 100%;
        justify-content: flex-end;
        align-items: stretch;
        overflow: visible !important;
        box-sizing: border-box;
    }

    /* Поле изображения не обрезает картинку */
    #slider-block .node--type-slide .group-right .field--name-field-image {
        position: relative;
        display: flex;
        width: auto !important;
        height: 100% !important;
        justify-content: flex-end;
        align-items: stretch;
        overflow: visible !important;
    }

    /*
      Картинка занимает всю высоту блока.
      Ширина рассчитывается автоматически по пропорциям:
      слева и справа изображение не обрезается.
    */
    #slider-block .node--type-slide .group-right .field--name-field-image img {
        position: relative;
        display: block;
        flex: 0 0 auto;
        width: auto !important;
        height: 100% !important;
        max-width: none !important;
        max-height: none !important;
        object-fit: contain !important;
        object-position: right center;
    }

    /* Текст для промежуточного разрешения */
    #slider-block .field--name-field-slide-title p {
        max-width: 100%;
        margin-top: 0;
        margin-bottom: 18px;
        font-size: 32px;
        line-height: 1.16;
    }

    #slider-block .field--name-body p {
        max-width: 100%;
        margin-top: 0;
        margin-bottom: 22px;
        font-size: 14px;
        line-height: 1.45;
    }

    #slider-block .field--name-field-slide-link a {
        padding: 14px 30px;
        font-size: 14px;
    }

    /* Стрелки находятся за пределами container */
    #slider-block .slick-prev,
    #slider-block .slick-next {
        position: absolute;
        top: 50%;
        z-index: 30;
        transform: translateY(-50%);
    }

    #slider-block .slick-prev {
        left: -54px;
    }

    #slider-block .slick-next {
        right: -54px;
    }
}

/*БЛОК ДОСТАВКИ*/

/* Общие отступы секции */
.delivery-section {
    padding: 60px 0;
    background-color: #fff;
}

/* Надзаголовок (Доставка и оплата) */
.delivery-section .field--name-field-block-delivery-title1 {
    font-family: var(--font-family);
    text-transform: uppercase;
    font-size: 18px;
    color: var(--brown);
    margin-bottom: 10px;
}

/* Главный заголовок секции */
.delivery-section .field--name-field-block-delivery-title2 {
    font-family: var(--font-family);
    font-size: 38px;
    color: #3a3736;
    font-weight: 500;
    margin-bottom: 30px;
}

/* Сетка для карточек (Paragraphs) */
.delivery-section .field--name-field-services {
    display: flex;
    justify-content: space-between;
    gap: 30px;
}

/* Обёртка каждой карточки */
.delivery-section .field--name-field-services > .field__item {
    flex: 1;
}

/* Сама карточка (Paragraph) */
.delivery-section .paragraph--type--services {
    background: var(--grey);
    padding: 20px;
    height: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    text-align: left;
}

/* Иконка в карточке */
.delivery-section .field--name-field-delivery-icon {
    margin-bottom: 25px;
}

.delivery-section .field--name-field-delivery-icon img {
    width: 40px;
    height: auto;
}

/* Заголовок внутри карточки */
.delivery-section .field--name-field-delivery-title {
    font-family: var(--font-family);
    font-size: 23px;
    color: #3a3736;
    margin-bottom: 15px;
    font-weight: 400;
}

/* Текст внутри карточки */
.delivery-section .field--name-field-delivery-text {
    font-family: var(--font-family);
    font-size: 18px;
    color: #3a3736;
    max-width: 330px;
}

/* =========================
   BLOCK WEBFORM — CROSS-BROWSER FIX
   ========================= */

#webform.webform-section {
    background: var(--brown);
    padding: 60px 0;
    box-sizing: border-box;
    -webkit-text-size-adjust: 100%;
}

#webform.webform-section *,
#webform.webform-section *::before,
#webform.webform-section *::after {
    box-sizing: border-box;
}

/* Заголовок */
#webform .block-title {
    margin: 0 auto 35px;
    max-width: 930px;
    color: var(--white);
    text-align: center;
    font-family: var(--font-family);
    font-size: 38px;
    font-weight: 500;
    line-height: 1.15;
}

/* Убираем звёздочки у обязательных полей */
#webform .form-required::after {
    display: none !important;
}

/* =========================
   FORM LAYOUT
   ========================= */

/* ВАЖНО: жёсткий flex без calc() */
#webform .webform-submission-form {
    display: flex !important;
    flex-wrap: wrap;
    gap: 0 28px;
    align-items: flex-start;
    width: 100%;
    margin: 0;
}

/* Все прямые элементы формы */
#webform .webform-submission-form > .form-item,
#webform .webform-submission-form > .form-wrapper,
#webform .webform-submission-form > .form-actions,
#webform .webform-submission-form > #edit-actions,
#webform .webform-submission-form > #edit-actions--2,
#webform .webform-submission-form > #edit-actions--3,
#webform .webform-submission-form > #edit-block-approval {
    margin: 0;
    min-width: 0;
}

/* Первые 4 колонки: имя / телефон / примечания / кнопка */
#webform .js-form-item-webform-name,
#webform .js-form-item-webform-phone,
#webform .js-form-item-message,
#webform #edit-actions,
#webform #edit-actions--2,
#webform #edit-actions--3 {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

/* =========================
   LABELS
   ========================= */

/* Фиксируем высоту label, чтобы браузеры не “ломали” верхний ряд */
#webform label {
    display: flex;
    align-items: flex-end;
    min-height: 34px;
    margin: 0 0 8px;
    overflow: hidden;
    color: var(--white);
    font-family: var(--font-family);
    font-size: 14px;
    font-weight: 400;
    line-height: 1.2;
    white-space: nowrap;
}

/* =========================
   INPUTS / TEXTAREA
   ========================= */

#webform input[type="text"],
#webform input[type="tel"],
#webform input[type="search"],
#webform input[type="email"],
#webform textarea,
#webform .form-control {
    display: block;
    width: 100%;
    height: 50px;
    min-width: 0;
    padding: 0 16px;
    margin: 0;
    border: 1px solid var(--white);
    border-radius: 0;
    background: rgba(251, 252, 255, 0.3);
    color: var(--white);
    font-family: var(--font-family);
    font-size: 14px;
    line-height: normal;
    outline: none;
    box-shadow: none;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-clip: padding-box;
}

/* textarea wrapper */
#webform .form-item-message .form-textarea-wrapper {
    display: block;
    width: 100%;
}

/* textarea — строго как поле, а не как многострочный блок */
#webform .form-item-message textarea {
    height: 50px;
    min-height: 50px;
    max-height: 50px;
    padding: 13px 16px;
    resize: none;
    overflow: hidden;
}

/* Placeholder */
#webform input::placeholder,
#webform textarea::placeholder {
    color: rgba(255, 255, 255, 0.95);
    opacity: 1;
}

/* Focus */
#webform input:focus,
#webform textarea:focus {
    border-color: #fff;
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.25);
}

/* =========================
   SUBMIT BUTTON
   ========================= */

/* У кнопки должен быть такой же “верх”, как у label: 34 + 8 = 42px */
#webform #edit-actions,
#webform #edit-actions--2,
#webform #edit-actions--3 {
    padding-top: 42px;
    align-self: flex-start;
}

/* Сам submit */
#webform .webform-button--submit {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 50px;
    padding: 0;
    margin: 0;
    border: 0;
    border-radius: 0;
    background: var(--white);
    color: var(--black);
    font-family: var(--font-family);
    font-size: 18px;
    font-weight: 400;
    cursor: pointer;
    transition: 0.2s ease;
    box-shadow: none;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    white-space: nowrap;
}

#webform .webform-button--submit:hover {
    background: var(--light-grey);
    color: var(--black);
}

#webform .webform-button--submit:focus,
#webform .webform-button--submit:active {
    outline: none;
    box-shadow: none;
}

/* =========================
   APPROVAL / CHECKBOX
   ========================= */

#webform #edit-block-approval {
    flex: 0 0 100%;
    display: flex !important;
    justify-content: center;
    align-items: flex-start;
    margin-top: 22px;
    width: 100%;
}

/* Внутренние обёртки Drupal */
#webform #edit-block-approval .webform-flex {
    flex: 0 0 auto;
    width: auto;
    justify-content: center;
}

#webform #edit-block-approval .webform-flex--container {
    display: flex;
    justify-content: center;
    align-items: center;
    flex: 0 0 auto;
}

/* Сам чекбокс + текст */
#webform .js-form-item-approval {
    display: flex !important;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 10px;
    flex-wrap: nowrap;
    width: 100%;
    min-width: 0;
}

/* Checkbox */
#webform .js-form-item-approval input[type="checkbox"] {
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
    min-width: 16px;
    margin: 4px 0 0;
    accent-color: #fff;
    align-self: flex-start;
}

/* Текст согласия */
#webform .js-form-item-approval .description {
    margin: 0;
    min-width: 0;
}

#webform .js-form-item-approval .webform-element-description {
    margin: 0;
    min-width: 0;
}

#webform .js-form-item-approval .webform-element-description span {
    display: inline;
    color: var(--white);
    font-family: var(--font-family);
    font-size: 14px;
    line-height: 1.4;
    white-space: normal;
}

/* Если хотите подсветку текста согласия при ошибке */
#webform .js-form-item-approval.form-item--error .webform-element-description span {
    color: #ffb1b1;
}

/* =========================
   ERRORS
   ========================= */

#webform input.error,
#webform textarea.error,
#webform input[aria-invalid="true"],
#webform textarea[aria-invalid="true"],
#webform .form-control.error,
#webform .form-control[aria-invalid="true"] {
    border-color: #ffb1b1 !important;
    box-shadow: 0 0 0 1px rgba(255, 177, 177, 0.35) !important;
    background: rgba(251, 252, 255, 0.3) !important;
    color: var(--white);
}

#webform .form-item--error-message,
#webform .messages--error,
#webform .messages.messages--error,
#webform .webform-message--error,
#webform .webform-messages--error {
    display: none !important;
}

#webform .form-item--error {
    position: relative;
}

/* =========================
   PRIVACY / APPROVAL
   ========================= */

/* Сам блок согласия */
#webform .js-form-item-approval {
    display: flex !important;
    justify-content: flex-start !important;
    align-items: center;
    gap: 10px;
    flex-wrap: nowrap;
    width: auto;
    min-width: 0;
}

/* Чекбокс */
#webform .js-form-item-approval input[type="checkbox"] {
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
    min-width: 16px;
    margin: 0;
    accent-color: #fff;
    align-self: center;
}

/* Текст описания */
#webform .js-form-item-approval .description,
#webform .js-form-item-approval .webform-element-description {
    margin: 0;
    min-width: 0;
}

#webform .js-form-item-approval .webform-element-description span {
    display: inline;
    color: var(--white);
    font-family: var(--font-family);
    font-size: 14px;
    line-height: 1.4;
    white-space: nowrap;
}

/* Подсветка текста согласия в состоянии ошибки */
#webform .js-form-item-approval.form-item--error .webform-element-description span {
    color: #ffb1b1;
}

/* BLOCK PROMO */

/* Секция */
.promo_personalization-section {
    padding: 60px 0 60px;
    background: #fff;
}

/* Для этой секции делаем контейнер шире, чтобы картинка 1170px
   не упиралась в стандартные внутренние отступы */
.promo_personalization-section .container {
    max-width: 1200px;
}

/* Центрируем регион */
.promo_personalization-section .region-promo-personalization {
    display: flex;
    justify-content: center;
}

/* Основной блок */
#block-vesta-theme-block-promo-personalization {
    position: relative;
    width: 1170px;
    max-width: 100%;
    margin: 0 auto;
    box-sizing: border-box;
    overflow: visible;
}

/* Убираем лишние отступы у обёртки картинки */
#block-vesta-theme-block-promo-personalization .field--name-field-promo-image {
    margin: 0;
    padding: 0;
    line-height: 0;
}

/* Картинка */
#block-vesta-theme-block-promo-personalization .field--name-field-promo-image img {
    display: block;
    width: 100%;
    height: auto;
    max-width: 100%;
    vertical-align: top;
    border: 0;
}

/* Карточка поверх изображения */
#block-vesta-theme-block-promo-personalization .promo_content {
    position: absolute;
    top: 25px;
    right: 24px;
    width: 470px;
    height: 490px;
    box-sizing: border-box;
    padding: 26px 38px 28px;
    background: #fff;
    text-align: center;
    z-index: 2;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);

    display: flex;
    flex-direction: column;
    align-items: center;
}

/* Верхний маленький заголовок */
#block-vesta-theme-block-promo-personalization .field--name-field-promo-title-top {
    margin-bottom: 14px;
    color: var(--brown);
    font-family: var(--font-family);
    font-size: 18px;
    line-height: 1.2;
    text-transform: uppercase;
}

/* Основной заголовок */
#block-vesta-theme-block-promo-personalization .field--name-field-promo-title {
    position: relative;
    margin-bottom: 26px;
    padding-bottom: 22px;
    color: #3a3736;
    font-family: var(--font-family);
    font-size: 38px;
    font-weight: 500;
    line-height: 1.15;
    text-align: center;
}

#block-vesta-theme-block-promo-personalization .field--name-field-promo-title::before {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 8px;
    width: 230px;
    height: 1px;
    background: #5a5a5a;
    transform: translateX(-50%);
}

#block-vesta-theme-block-promo-personalization .field--name-field-promo-title::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 4px;
    width: 8px;
    height: 8px;
    background: #2f2f2f;
    transform: translateX(-50%) rotate(45deg);
    box-shadow: 0 0 0 6px #fff;
}

/* Текст */
#block-vesta-theme-block-promo-personalization .field--name-field-promo-text {
    margin-bottom: 22px;
    color: #3a3736;
    font-family: var(--font-family);
    font-size: 18px;
    line-height: 1.22;
}

/* Кнопка прижата вниз карточки */
#block-vesta-theme-block-promo-personalization .field--name-field-promo-btn {
    margin-top: auto;
}

#block-vesta-theme-block-promo-personalization .field--name-field-promo-btn a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 217px;
    height: 53px;
    background: var(--black);
    color: var(--white);
    text-decoration: none;
    font-family: var(--font-family);
    font-size: 18px;
    box-sizing: border-box;
    transition: background 0.2s ease;
}

#block-vesta-theme-block-promo-personalization .field--name-field-promo-btn a:hover {
    background: var(--light-black);
}

/* =========================
   BLOCK CONTACTS
   ========================= */

.contacts-section {
    padding: 0px 0 50px;
    background: #fff;
}

.contacts-inner {
    width: 100%;
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
}

/* Левая колонка */
.contacts-left {
    flex: 0 0 520px;
    width: 520px;
    box-sizing: border-box;
}

.contacts-label-top {
    margin-bottom: 10px;
    color: var(--brown);
    font-family: var(--font-family);
    font-size: 18px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.contacts-title {
    margin-bottom: 25px;
    color: #3a3736;
    font-family: var(--font-family);
    font-size: 38px;
    font-weight: 500;
    line-height: 1.12;
}

.contacts-divider {
    position: relative;
    width: 135px;
    height: 8px;
    margin: 18px 0 28px;
}

.contacts-divider::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 8px;
    height: 8px;
    background: #2f2f2f;
    transform: translateY(-50%) rotate(45deg);
}

.contacts-divider::after {
    content: "";
    position: absolute;
    left: 18px;
    right: 0;
    top: 50%;
    height: 1px;
    background: #5a5a5a;
}

.contacts-item {
    margin-bottom: 22px;
}

.contacts-item-label {
    margin-bottom: 8px;
    color: #3a3736;
    font-family: var(--font-family);
    font-size: 18px;
}

.contacts-item-value a {
    color: #3a3736;
    font-family: var(--font-family);
    font-size: 18px;
    text-decoration: none;
}

.contacts-item-value a:hover {
    text-decoration: underline;
}

/* Соцсети */
.contacts-socials {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 8px;
}

.contacts-socials .social-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
}

.contacts-socials .social-icon img {
    display: block;
    width: 100%;
    height: 100%;
}

/* На всякий случай скрываем старую карту, если где-то осталась */
.contacts-right,
.contacts-map {
    display: none !important;
}

/*BLOCK CATALOG*/

/* Общая обёртка блока */
#catalog-block {
    background: #fff;
    padding: 40px 0 60px;
}

/* Сам блок */
#block-vesta-theme-views-catalog-front {
    text-align: center;
    width: 100%;
}

/* Маленькая надпись сверху */
#block-vesta-theme-views-catalog-front .block-title::before {
    content: "КАТАЛОГ";
    display: block;
    margin-bottom: 10px;
    font-size: 18px;
    text-transform: uppercase;
    color: var(--brown);
    font-weight: 400;
}

/* Главный заголовок */
#block-vesta-theme-views-catalog-front .block-title {
    margin: 0 0 30px;
    font-family: var(--font-family);
    font-size: 38px;
    font-weight: 400;
    color: #3a3736;
}

/* Сетка категорий — занимает всю ширину контейнера */
#block-vesta-theme-views-catalog-front .view-content {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
    width: 100%;
    align-items: start;
}

/* Каждая карточка занимает свою ячейку */
#block-vesta-theme-views-catalog-front .views-row {
    margin: 0;
    width: 100%;
}

/* Внутри карточки */
#block-vesta-theme-views-catalog-front .taxonomy-term {
    text-align: center;
    width: 100%;
}

/* Картинка */
#block-vesta-theme-views-catalog-front .field--name-field-catalog-image {
    margin: 0 0 10px;
}

#block-vesta-theme-views-catalog-front .field--name-field-catalog-image a {
    display: block;
    width: 100%;
}

#block-vesta-theme-views-catalog-front .field--name-field-catalog-image img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 150 / 135;
    object-fit: cover;
}

/* Заголовок категории */
#block-vesta-theme-views-catalog-front .field--name-taxonomy-term-title h2 {
    margin: 0;
    font-family: var(--font-family);
    font-size: 23px;
    font-weight: 500;
}

#block-vesta-theme-views-catalog-front .field--name-taxonomy-term-title a {
    color: #3a3736;
    text-decoration: none;
}

#block-vesta-theme-views-catalog-front .field--name-taxonomy-term-title a:hover {
    color: #000;
}

/* Кнопка "Загрузить еще" */
#block-vesta-theme-views-catalog-front .more-link {
    margin-top: 30px;
    text-align: center;
}

#block-vesta-theme-views-catalog-front .more-link a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 217px;
    height: 50px;
    padding: 15px 0px;
    background: var(--black);
    color: var(--white);
    font-size: 18px;
    text-decoration: none;
    border: 0;
}

#block-vesta-theme-views-catalog-front .more-link a:hover {
    background: var(--light-black);
}

/* =========================
   CATALOG CARDS
   front + /catalog page
   ========================= */

/* Общая обёртка */
#block-vesta-theme-views-catalog-front,
.view-id-catalog.view-display-id-page {
    text-align: center;
    width: 100%;
}

/* Заголовок блока на фронте */
#block-vesta-theme-views-catalog-front .block-title::before {
    content: "КАТАЛОГ";
    display: block;
    margin-bottom: 10px;
    font-size: 18px;
    text-transform: uppercase;
    color: var(--brown);
    font-weight: 400;
}

#block-vesta-theme-views-catalog-front .block-title {
    margin: 0 0 30px;
    font-family: var(--font-family);
    font-size: 38px;
    font-weight: 400;
    color: #3a3736;
}

/* Сетка карточек — карточки по 270px прижаты к краям */
#block-vesta-theme-views-catalog-front .view-content,
.view-id-catalog.view-display-id-page .view-content {
    display: grid;
    grid-template-columns: repeat(4, 270px);
    width: 100%;
    justify-content: space-between;
    align-items: start;
}

/* Каждый элемент сетки */
#block-vesta-theme-views-catalog-front .views-row,
.view-id-catalog.view-display-id-page .views-row {
    margin: 0;
    width: 270px;
}

/* Сама карточка — задаем строгие размеры из макета */
#block-vesta-theme-views-catalog-front .taxonomy-term,
.view-id-catalog.view-display-id-page .taxonomy-term {
    display: flex;
    flex-direction: column;
    width: 270px;
    height: 328px;
    box-sizing: border-box;
    text-align: center;
    background: #fff;
    overflow: hidden;
}

/* Картинка */
#block-vesta-theme-views-catalog-front .field--name-field-catalog-image,
.view-id-catalog.view-display-id-page .field--name-field-catalog-image {
    margin: 0;
    line-height: 0;
}

#block-vesta-theme-views-catalog-front .field--name-field-catalog-image a,
.view-id-catalog.view-display-id-page .field--name-field-catalog-image a {
    display: block;
    width: 100%;
}

#block-vesta-theme-views-catalog-front .field--name-field-catalog-image img,
.view-id-catalog.view-display-id-page .field--name-field-catalog-image img {
    display: block;
    width: 270px;
    height: 255px; /* Фиксируем высоту под пресет Drupal catalog_img_270x255 */
    aspect-ratio: 270 / 255;
    object-fit: cover;
    transition: transform 0.35s ease, filter 0.25s ease;
}

/* Заголовок категории (высота блока займет оставшиеся 73px) */
#block-vesta-theme-views-catalog-front .field--name-taxonomy-term-title,
.view-id-catalog.view-display-id-page .field--name-taxonomy-term-title {
    padding: 15px 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-grow: 1; /* Распределяет пространство внутри карточки */
}

#block-vesta-theme-views-catalog-front .field--name-taxonomy-term-title h2,
.view-id-catalog.view-display-id-page .field--name-taxonomy-term-title h2 {
    margin: 0;
    font-family: var(--font-family);
    font-size: 20px; /* Немного уменьшил с 23px, чтобы длинные названия (Обложки для документов) не ломали высоту */
    font-weight: 500;
    line-height: 1.2;
}

#block-vesta-theme-views-catalog-front .field--name-taxonomy-term-title a,
.view-id-catalog.view-display-id-page .field--name-taxonomy-term-title a {
    color: #3a3736;
    text-decoration: none;
}

#block-vesta-theme-views-catalog-front .field--name-taxonomy-term-title a:hover,
.view-id-catalog.view-display-id-page .field--name-taxonomy-term-title a:hover {
    color: #000;
}

/* Кнопка "Загрузить еще" */
#block-vesta-theme-views-catalog-front .more-link,
.view-id-catalog.view-display-id-page .more-link {
    margin-top: 30px;
    text-align: center;
}

/* =========================
   PRODUCT CARD — taxonomy term / catalog
   ========================= */

.view-id-tovary.view-display-id-page_2 .view-content {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 30px;
    align-items: stretch;
}

.view-id-tovary.view-display-id-page_2 .views-row {
    margin: 0;
    height: 100%;
}

/* Карточка товара */
.view-id-tovary.view-display-id-page_2 .commerce-product--view-mode-teaser {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: #fff;
    border: 1px solid rgba(89, 45, 35, 0.12);
    overflow: hidden;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.04);
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.view-id-tovary.view-display-id-page_2 .commerce-product--view-mode-teaser:hover {
    transform: translateY(-4px);
    border-color: rgba(89, 45, 35, 0.28);
    box-shadow: 0 12px 26px rgba(0, 0, 0, 0.08);
}

/* Изображение товара */
.view-id-tovary.view-display-id-page_2 .field--name-field-product-cover {
    margin: 0;
    line-height: 0;
    overflow: hidden;
}

.view-id-tovary.view-display-id-page_2 .field--name-field-product-cover a {
    display: block;
}

.view-id-tovary.view-display-id-page_2 .field--name-field-product-cover img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    transition: transform 0.35s ease, filter 0.25s ease;
}

.view-id-tovary.view-display-id-page_2 .commerce-product--view-mode-teaser:hover .field--name-field-product-cover img {
    transform: scale(1.04);
    filter: brightness(1.02);
}

/* Название товара */
.view-id-tovary.view-display-id-page_2 .field--name-title {
    padding: 16px 18px 6px;
    color: var(--black);
    font-family: 'Lora', serif;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.25;
    text-align: center;
}

/* Цена */
.view-id-tovary.view-display-id-page_2 .field--name-field-price {
    padding: 0 18px 16px;
    color: var(--brown);
    font-family: 'Lora', serif;
    font-size: 18px;
    font-weight: 500;
    line-height: 1.25;
    text-align: center;
    white-space: nowrap;
}

/* Блок формы снизу карточки */
.view-id-tovary.view-display-id-page_2 .field--name-variations {
    margin-top: auto;
    padding: 0 18px 18px;
}

/* Форма добавления в корзину */
.view-id-tovary.view-display-id-page_2 .commerce-order-item-add-to-cart-form {
    display: flex;
    flex-direction: column;
    width: 100%;
    gap: 12px;
    margin: 0;
}

/* Атрибуты товара */
.view-id-tovary.view-display-id-page_2 .commerce-order-item-add-to-cart-form .field--name-purchased-entity,
.view-id-tovary.view-display-id-page_2 .commerce-order-item-add-to-cart-form .attribute-widgets {
    margin: 0;
    padding: 0;
}

.view-id-tovary.view-display-id-page_2 .commerce-order-item-add-to-cart-form .form-item {
    margin: 0 0 10px;
}

.view-id-tovary.view-display-id-page_2 .commerce-order-item-add-to-cart-form label {
    display: block;
    margin-bottom: 5px;
    color: var(--black);
    font-family: 'Lora', serif;
    font-size: 14px;
    font-weight: 400;
}

.view-id-tovary.view-display-id-page_2 .commerce-order-item-add-to-cart-form select {
    width: 100%;
    height: 42px;
    padding: 0 10px;
    border: 1px solid rgba(89, 45, 35, 0.18);
    border-radius: 0;
    background: #fff;
    color: var(--black);
    font-family: 'Lora', serif;
    font-size: 15px;
    box-shadow: none;
    outline: none;
}

/* Убрать блок количества */
.view-id-tovary.view-display-id-page_2 .commerce-order-item-add-to-cart-form .field--name-quantity,
.view-id-tovary.view-display-id-page_2 .commerce-order-item-add-to-cart-form [data-drupal-selector="edit-quantity-wrapper"],
.view-id-tovary.view-display-id-page_2 .commerce-order-item-add-to-cart-form .js-form-item-quantity-0-value,
.view-id-tovary.view-display-id-page_2 .commerce-order-item-add-to-cart-form .btn-minus,
.view-id-tovary.view-display-id-page_2 .commerce-order-item-add-to-cart-form .btn-plus,
.view-id-tovary.view-display-id-page_2 .commerce-order-item-add-to-cart-form label[for^="edit-quantity"] {
    display: none !important;
}

/* Блок кнопки */
.view-id-tovary.view-display-id-page_2 .commerce-order-item-add-to-cart-form .form-actions,
.view-id-tovary.view-display-id-page_2 .commerce-order-item-add-to-cart-form [data-drupal-selector="edit-actions"] {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
    float: none;
    text-align: initial;
    clear: both;
}

/* Кнопка "В корзину" */
.view-id-tovary.view-display-id-page_2 .commerce-order-item-add-to-cart-form .button--add-to-cart,
.view-id-tovary.view-display-id-page_2 .commerce-order-item-add-to-cart-form .btn.btn-primary {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: none;
    height: 50px;
    margin: 0;
    padding: 0 18px;
    border: 0;
    border-radius: 0;
    background: var(--black);
    color: var(--white);
    font-family: 'Lora', serif;
    font-size: 18px;
    font-weight: 400;
    line-height: 1;
    text-align: center;
    cursor: pointer;
    box-shadow: none;
    box-sizing: border-box;
    transition: 0.2s ease;
}

.view-id-tovary.view-display-id-page_2 .commerce-order-item-add-to-cart-form .button--add-to-cart:hover,
.view-id-tovary.view-display-id-page_2 .commerce-order-item-add-to-cart-form .btn.btn-primary:hover {
    background: #241f1c;
}

/* Адаптив */
@media (max-width: 1199px) {
    .view-id-tovary.view-display-id-page_2 .view-content {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 991px) {
    .view-id-tovary.view-display-id-page_2 .view-content {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575px) {
    .view-id-tovary.view-display-id-page_2 .view-content {
        grid-template-columns: 1fr;
        gap: 22px;
    }
}

/* =========================
   BREADCRUMBS
   ========================= */

#block-vesta-theme-strokanavigacii {
    margin: 22px 0 28px;
}

#block-vesta-theme-strokanavigacii nav[aria-label="breadcrumb"] {
    display: flex;
    justify-content: flex-start;
    align-items: center;
}

#block-vesta-theme-strokanavigacii .breadcrumb {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0;
    margin: 0;
    padding: 0;
    background: transparent;
    list-style: none;
    font-family: var(--font-family);
    font-size: 14px;
    line-height: 1.4;
    color: var(--black);
}

#block-vesta-theme-strokanavigacii .breadcrumb-item {
    display: flex;
    align-items: center;
    margin: 0;
    padding: 0;
}

#block-vesta-theme-strokanavigacii .breadcrumb-item + .breadcrumb-item::before {
    content: "◆";
    display: inline-block;
    padding: 0 12px;
    color: var(--brown);
    font-size: 8px;
    line-height: 1;
    vertical-align: middle;
}

#block-vesta-theme-strokanavigacii .breadcrumb a {
    color: var(--black);
    text-decoration: none;
    transition: color 0.2s ease, text-decoration 0.2s ease;
}

#block-vesta-theme-strokanavigacii .breadcrumb a:hover {
    color: var(--brown);
    text-decoration: underline;
    text-underline-offset: 2px;
}

#block-vesta-theme-strokanavigacii .breadcrumb-item.active,
#block-vesta-theme-strokanavigacii .breadcrumb-item:last-child {
    color: var(--brown);
    font-weight: 500;
}

/* Убираем возможный стандартный bootstrap-разделитель */
#block-vesta-theme-strokanavigacii .breadcrumb-item + .breadcrumb-item::before {
    border: 0;
}

/* ==========================================
   Блок фотогалереи
   ========================================== */

#photogallery {
    padding: 60px 0 53px;
    background: var(--grey);
}

#photogallery .region-photogallery {
    display: flex;
    flex-direction: column;
    align-items: center;
}

#block-vesta-theme-photogallerys-on-front {
    width: 100%;
}

#block-vesta-theme-photogallerys-on-front .views-element-container,
#block-vesta-theme-photogallerys-on-front .block {
    margin: 0;
}

/* -------------------------
   TITLE
   ------------------------- */

#block-vesta-theme-photogallerys-on-front .block-title {
    width: 100%;
    max-width: 860px;
    margin: 0 auto 20px;
    text-align: center;
    color: var(--black);
    font-family: var(--font-family);
    font-size: 38px;
    font-weight: 500;
}

#block-vesta-theme-photogallerys-on-front .block-title::before {
    content: "ФОТОГАЛЕРЕЯ";
    display: block;
    margin-bottom: 10px;
    color: var(--brown);
    font-family: var(--font-family);
    font-size: 18px;
    font-weight: 400;
    text-transform: uppercase;
}

/* -------------------------
   HIDE DEFAULT NODE TITLE / META
   ------------------------- */

#block-vesta-theme-photogallerys-on-front .node > h2,
#block-vesta-theme-photogallerys-on-front .node__meta {
    display: none;
}

#block-vesta-theme-photogallerys-on-front .node__content {
    display: block;
}

/* -------------------------
   GRID OF IMAGES
   ------------------------- */

#block-vesta-theme-photogallerys-on-front .view-content {
    width: 100%;
    margin-top: 20px;
}

#block-vesta-theme-photogallerys-on-front .views-row {
    margin: 0;
    min-width: 0;
}

#block-vesta-theme-photogallerys-on-front .field--name-field-photogallery-images {
    --gap: 30px;
    --small-h: calc(var(--col-width) * 330 / 570);
    --middle-row: calc(var(--col-width) * 67 / 570 - var(--gap));

    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: var(--small-h) var(--middle-row) var(--small-h);
    gap: var(--gap);
    width: 100%;
}

#block-vesta-theme-photogallerys-on-front .field--name-field-photogallery-images > .field__item {
    position: relative;
    min-width: 0;
    height: 100%;
    overflow: hidden;
    border-radius: 5px;
}

#block-vesta-theme-photogallerys-on-front .field--name-field-photogallery-images > .field__item:nth-child(1) {
    grid-column: 1;
    grid-row: 1 / span 2;
}

#block-vesta-theme-photogallerys-on-front .field--name-field-photogallery-images > .field__item:nth-child(2) {
    grid-column: 2;
    grid-row: 1;
}

#block-vesta-theme-photogallerys-on-front .field--name-field-photogallery-images > .field__item:nth-child(3) {
    grid-column: 1;
    grid-row: 3;
}

#block-vesta-theme-photogallerys-on-front .field--name-field-photogallery-images > .field__item:nth-child(4) {
    grid-column: 2;
    grid-row: 2 / span 2;
}

#block-vesta-theme-photogallerys-on-front img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.45s ease, filter 0.35s ease;
}

#block-vesta-theme-photogallerys-on-front .field__item:hover img {
    transform: scale(1.04);
    filter: brightness(1.03);
}

/* -------------------------
   BUTTON
   ------------------------- */

#block-vesta-theme-photogallerys-on-front .more-link {
    margin-top: 28px;
    text-align: center;
}

#block-vesta-theme-photogallerys-on-front .more-link a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 270px;
    height: 53px;
    padding: 0;
    background: var(--black);
    color: var(--white);
    font-size: 18px;
    text-decoration: none;
    box-sizing: border-box;
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

#block-vesta-theme-photogallerys-on-front .more-link a:hover {
    background: var(--light-black);
}

/* =========================
   FOOTER
========================= */
#footer {
    background: #1c1b1a;
    color: #f4eee5;
    font-family: "Times New Roman", Times, serif;
    padding: 18px 0 16px;
    box-sizing: border-box;
}

#footer *,
#footer *::before,
#footer *::after {
    box-sizing: border-box;
}

#footer .footer-grid {
    width: 100%;
    display: grid;
    grid-template-columns:
        minmax(230px, 1.15fr)
        minmax(170px, 0.95fr)
        minmax(170px, 0.95fr)
        minmax(220px, 1fr);
    column-gap: clamp(28px, 4vw, 80px);
    align-items: start;
}

#footer .footer-col {
    min-width: 0;
}

#footer a {
    color: inherit;
    text-decoration: none;
}

#footer a:hover {
    opacity: 0.82;
}

/* =========================
   LEFT COLUMN
========================= */
#footer .footer-brand-link {
    display: inline-flex;
    align-items: flex-start;
    margin-bottom: 9px;
}

#footer .footer-brand-link img {
    display: block;
    max-width: 170px;
    height: auto;
    filter: brightness(0) invert(1); /* логотип в белый */
    margin-bottom: 15px;
}

#footer .footer-copyright {
    margin-bottom: 15px;
    font-size: 14px;
    color: var(--white);
}

#block-vesta-theme-catalog-footer-menu {
    font-family: var(--font-family);
    font-weight: 400;
    font-size: 18px;
    text-transform: uppercase;
    color: var(--white);
    margin-bottom: 15px;
}

#footer .footer-socials {
    display: flex;
    gap: 5px;
    margin-bottom: 32px;
}

#footer .footer-socials .social-icon {
    width: 22px;
    height: 22px;
    display: inline-flex;
    flex: 0 0 22px;
}

#footer .footer-socials img {
    width: 30px;
    height: 30px;
    display: block;
}

#footer .footer-links {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

#footer .footer-links a {
    font-size: 14px;
    color: var(--white);
    text-decoration: underline;
    text-underline-offset: 1px;
    text-decoration-thickness: 1px;
}

#footer .footer-links a:last-child {
    margin-top: 32px;
}

/* =========================
   CATALOG / COMPANY
========================= */
#footer .footer-region {
    color: #f4eee5;
}

#footer .footer-region > :first-child {
    margin: 0 0 12px;
    font-size: 14px;
    line-height: 1.2;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 0.01em;
    color: #f4eee5;
}

#footer .footer-region ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

#footer .footer-region li {
    margin: 0 0 14px;
}

#block-vesta-theme-company-menu {
    font-family: var(--font-family);
    font-weight: 400;
    font-size: 18px;
    text-transform: uppercase;
    color: var(--white);
    margin-bottom: 15px;
}

#footer .footer-region li:last-child {
    margin-bottom: 0;
}

#footer .footer-region a {
    font-size: 14px;
    color: var(--white);
    padding: 0;
}

/* =========================
   RIGHT COLUMN
========================= */
#footer .footer-callback {
    margin-bottom: 15px;
}

#footer .footer-callback a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 270px;
    height: 40px;
    border: 1px solid var(--white);
    padding: 19px 15px;
    color: var(--white);
    font-size: 15px;
    background: transparent;
}

#footer .footer-callback a:hover {
    background: rgba(255, 255, 255, 0.1);
}

#footer .footer-contact-list {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

#footer .footer-contact-link {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: var(--white);
    white-space: nowrap;
}

#footer .footer-contact-link img {
    width: 20px;
    height: 20px;
    display: block;
    filter: brightness(0) invert(1); /* телефон и почта в белый */
}

#footer .footer-contact-link span {
    display: inline-block;
}

/* =========================
   PRODUCT TEASER / LIST
   ========================= */

.view-id-tovary.view-display-id-page_2 .view-content {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 30px;
    align-items: start;
}

.view-id-tovary.view-display-id-page_2 .views-row {
    margin: 0;
}

/* Сам teaser */
.view-id-tovary.view-display-id-page_2 .product-teaser,
.view-id-tovary.view-display-id-page_2 .product-teaser.flex {
    display: block;
    gap: 0;
    height: 100%;
}

/* Внутренняя обёртка с изображением, названием и ценой */
.view-id-tovary.view-display-id-page_2 .product-teaser > div:not(.contextual) {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: #fff;
    border: 1px solid rgba(89, 45, 35, 0.12);
    overflow: hidden;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.04);
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.view-id-tovary.view-display-id-page_2 .product-teaser > div:not(.contextual):hover {
    transform: translateY(-4px);
    border-color: rgba(89, 45, 35, 0.28);
    box-shadow: 0 12px 26px rgba(0, 0, 0, 0.08);
}

/* Картинка */
.view-id-tovary.view-display-id-page_2 .field--name-field-image-product-view {
    margin: 0;
    line-height: 0;
}

.view-id-tovary.view-display-id-page_2 .field--name-field-image-product-view a {
    display: block;
}

.view-id-tovary.view-display-id-page_2 .field--name-field-image-product-view img {
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    transition: transform 0.35s ease, filter 0.25s ease;
}

.view-id-tovary.view-display-id-page_2 .product-teaser > div:not(.contextual):hover .field--name-field-image-product-view img {
    transform: scale(1.04);
    filter: brightness(1.02);
}

/* Название */
.view-id-tovary.view-display-id-page_2 .field--name-title {
    padding: 16px 18px 8px;
    color: var(--black);
    font-family: 'Lora', serif;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.25;
    text-align: center;
}

/* Цена */
.view-id-tovary.view-display-id-page_2 .field--name-price {
    margin-top: auto;
    padding: 12px 18px 18px;
    border-top: 1px solid rgba(89, 45, 35, 0.12);
    color: var(--brown);
    font-family: 'Lora', serif;
    font-size: 18px;
    font-weight: 500;
    text-align: center;
}

/* =========================
   PRODUCT PAGE
   ========================= */

#block-vesta-theme-content .product-full {
    max-width: 1200px;
    margin: 0 auto;
}

#block-vesta-theme-content .product-main-row {
    align-items: flex-start;
}

/* Скрываем исходные поля с фото только после сборки галереи */
#block-vesta-theme-content .product-full.product-gallery-ready .variation-extra-fields > .field--name-field-product-cover,
#block-vesta-theme-content .product-full.product-gallery-ready .variation-extra-fields > .field--name-field-product-image {
    display: none;
}

/* Галерея */
#block-vesta-theme-content .product-images {
    position: relative;
}

#block-vesta-theme-content .product-page-gallery {
    width: 100%;
}

#block-vesta-theme-content .product-page-gallery__main {
    border: 1px solid rgba(89, 45, 35, 0.12);
    background: var(--grey);
    overflow: hidden;
}

#block-vesta-theme-content .product-page-gallery__slide,
#block-vesta-theme-content .product-page-gallery__slide .field__item,
#block-vesta-theme-content .product-page-gallery__slide a {
    display: block;
    width: 100%;
}

#block-vesta-theme-content .product-page-gallery__slide img {
    display: block;
    width: 100%;
    aspect-ratio: 3 / 4;
    object-fit: cover;
}

/* Стрелки основного слайдера */
#block-vesta-theme-content .product-page-gallery__main .slick-arrow {
    position: absolute;
    top: 50%;
    z-index: 5;
    width: 42px;
    height: 42px;
    padding: 0;
    border: 1px solid var(--black);
    border-radius: 0;
    background: rgba(255, 255, 255, 0.9);
    color: var(--black);
    font-size: 0;
    line-height: 1;
    cursor: pointer;
    transform: translateY(-50%);
    transition: 0.2s ease;
}

#block-vesta-theme-content .product-page-gallery__main .slick-arrow:hover {
    background: var(--black);
    color: #fff;
}

#block-vesta-theme-content .product-page-gallery__main .slick-prev {
    left: 12px;
}

#block-vesta-theme-content .product-page-gallery__main .slick-next {
    right: 12px;
}

#block-vesta-theme-content .product-page-gallery__main .slick-prev::before,
#block-vesta-theme-content .product-page-gallery__main .slick-next::before {
    display: block;
    font-family: Arial, sans-serif;
    font-size: 30px;
    line-height: 38px;
}

#block-vesta-theme-content .product-page-gallery__main .slick-prev::before {
    content: "‹";
}

#block-vesta-theme-content .product-page-gallery__main .slick-next::before {
    content: "›";
}

/* Миниатюры */
#block-vesta-theme-content .product-page-gallery__nav {
    margin-top: 14px;
}

#block-vesta-theme-content .product-page-gallery__thumb {
    padding: 0 6px;
    cursor: pointer;
}

#block-vesta-theme-content .product-page-gallery__thumb img {
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border: 1px solid rgba(89, 45, 35, 0.12);
    opacity: 0.55;
    transition: 0.2s ease;
}

#block-vesta-theme-content .product-page-gallery__thumb:hover img,
#block-vesta-theme-content .product-page-gallery__nav .slick-current img {
    border-color: var(--brown);
    opacity: 1;
}

/* Правая колонка */
#block-vesta-theme-content .product-info {
    padding-left: 34px;
}

#block-vesta-theme-content .h1-product {
    margin: 0 0 22px;
    color: #3a3736;
    font-family: 'Lora', serif;
    font-size: 38px;
    font-weight: 500;
    line-height: 1.15;
}

#block-vesta-theme-content .field--name-price {
    color: var(--brown);
    font-family: 'Lora', serif;
    font-size: 28px;
    font-weight: 500;
    line-height: 1.2;
}

#block-vesta-theme-content .field--name-field-product-text {
    margin-top: 22px;
    color: #3a3736;
    font-family: 'Lora', serif;
    font-size: 17px;
    line-height: 1.65;
}

#block-vesta-theme-content .field--name-field-product-text p {
    margin: 0 0 14px;
}

/* Атрибуты товара */
#block-vesta-theme-content .attribute-widgets {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 20px;
}

#block-vesta-theme-content .attribute-widgets .form-item {
    margin: 0;
}

#block-vesta-theme-content .product-add-to-cart label,
#block-vesta-theme-content .attribute-widgets label {
    display: block;
    margin-bottom: 8px;
    color: var(--black);
    font-family: 'Lora', serif;
    font-size: 15px;
    font-weight: 400;
}

#block-vesta-theme-content .attribute-widgets select {
    min-width: 180px;
    height: 42px;
    padding: 0 12px;
    border: 1px solid rgba(89, 45, 35, 0.18);
    border-radius: 0;
    background-color: #fff;
    color: var(--black);
    font-family: 'Lora', serif;
    font-size: 15px;
    box-shadow: none;
    outline: none;
}

#block-vesta-theme-content .attribute-widgets select:focus {
    border-color: var(--brown);
    box-shadow: 0 0 0 1px rgba(89, 45, 35, 0.15);
}

/* Форма покупки */
#block-vesta-theme-content .commerce-order-item-add-to-cart-form {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 14px;
}

#block-vesta-theme-content .field--name-purchased-entity {
    width: 100%;
}

/* Количество */
#block-vesta-theme-content .commerce-order-item-add-to-cart-form .field--name-quantity {
    display: grid;
    grid-template-columns: 42px 72px 42px;
    grid-template-rows: auto 42px;
    align-items: end;
    margin: 0;
}

#block-vesta-theme-content .commerce-order-item-add-to-cart-form .field--name-quantity .form-item {
    grid-column: 2;
    grid-row: 1 / 3;
    margin: 0;
}

#block-vesta-theme-content .commerce-order-item-add-to-cart-form .field--name-quantity label {
    margin-bottom: 8px;
    white-space: nowrap;
}

#block-vesta-theme-content .commerce-order-item-add-to-cart-form .field--name-quantity input {
    width: 72px;
    height: 42px;
    padding: 0 8px;
    border: 1px solid rgba(89, 45, 35, 0.18);
    border-radius: 0;
    background: #fff;
    color: var(--black);
    font-family: 'Lora', serif;
    font-size: 16px;
    text-align: center;
    outline: none;
    box-shadow: none;
}

#block-vesta-theme-content .commerce-order-item-add-to-cart-form .btn-minus,
#block-vesta-theme-content .commerce-order-item-add-to-cart-form .btn-plus {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border: 1px solid rgba(89, 45, 35, 0.18);
    background: #fff;
    color: var(--black);
    font-family: 'Lora', serif;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    user-select: none;
    transition: 0.2s ease;
}

#block-vesta-theme-content .commerce-order-item-add-to-cart-form .btn-minus {
    grid-column: 1;
    grid-row: 2;
    border-right: 0;
}

#block-vesta-theme-content .commerce-order-item-add-to-cart-form .btn-plus {
    grid-column: 3;
    grid-row: 2;
    border-left: 0;
}

#block-vesta-theme-content .commerce-order-item-add-to-cart-form .btn-minus:hover,
#block-vesta-theme-content .commerce-order-item-add-to-cart-form .btn-plus:hover {
    background: var(--black);
    color: #fff;
}

/* Кнопка в корзину */
#block-vesta-theme-content .product-add-to-cart .form-actions {
    margin: 0;
}

#block-vesta-theme-content .button--add-to-cart {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 190px;
    height: 42px;
    padding: 0 26px;
    border: 1px solid var(--black);
    border-radius: 0;
    background: var(--black);
    color: #fff;
    font-family: 'Lora', serif;
    font-size: 15px;
    font-weight: 400;
    line-height: 1;
    box-shadow: none;
    cursor: pointer;
    transition: 0.2s ease;
}

#block-vesta-theme-content .button--add-to-cart:hover {
    background: #2b2b2b;
    border-color: #2b2b2b;
}

/* =========================
   PRODUCT PAGE FIXES
   ========================= */

/* Отступ сверху страницы товара */
#block-vesta-theme-content .product-full {
    padding-top: 36px;
}

/* Выравнивание основной строки */
#block-vesta-theme-content .product-main-row {
    align-items: flex-start;
}

/* Левая колонка с фото */
#block-vesta-theme-content .product-images {
    margin-top: 0;
}

/* Правая колонка с информацией */
#block-vesta-theme-content .product-info {
    padding-top: 4px;
}

/* Если заголовок пустой — скрываем, чтобы не давал лишний отступ */
#block-vesta-theme-content .h1-product:empty {
    display: none;
}

/* Исправленные стрелки слайдера */
#block-vesta-theme-content .product-page-gallery__main .slick-arrow {
    position: absolute;
    top: 50%;
    z-index: 5;

    display: flex !important;
    align-items: center;
    justify-content: center;

    width: 42px;
    height: 42px;
    padding: 0;
    margin: 0;

    border: 1px solid var(--black);
    border-radius: 0;
    background: rgba(255, 255, 255, 0.92);
    color: var(--black);

    font-size: 0;
    line-height: 1;

    cursor: pointer;
    transform: translateY(-50%);
    transition: 0.2s ease;
}

#block-vesta-theme-content .product-page-gallery__main .slick-arrow:hover {
    background: var(--black);
    color: #fff;
}

#block-vesta-theme-content .product-page-gallery__main .slick-prev {
    left: 14px;
}

#block-vesta-theme-content .product-page-gallery__main .slick-next {
    right: 14px;
}

/* Убираем стандартные стили Slick и центрируем сам символ */
#block-vesta-theme-content .product-page-gallery__main .slick-prev::before,
#block-vesta-theme-content .product-page-gallery__main .slick-next::before {
    display: block;
    width: 100%;
    height: 100%;

    color: inherit;
    opacity: 1;

    font-family: Arial, sans-serif;
    font-size: 32px;
    font-weight: 400;
    line-height: 38px;
    text-align: center;
}

#block-vesta-theme-content .product-page-gallery__main .slick-prev::before {
    content: "‹";
    padding-right: 2px;
}

#block-vesta-theme-content .product-page-gallery__main .slick-next::before {
    content: "›";
    padding-left: 2px;
}

/* Миниатюры чуть ровнее */
#block-vesta-theme-content .product-page-gallery__nav {
    margin-top: 16px;
    margin-left: -6px;
    margin-right: -6px;
}

#block-vesta-theme-content .product-page-gallery__thumb {
    padding: 0 6px;
}

/* Мобильная версия */
@media (max-width: 991px) {
    #block-vesta-theme-content .product-full {
        padding-top: 24px;
    }

    #block-vesta-theme-content .product-info {
        margin-top: 28px;
        padding-top: 0;
        padding-left: 0;
    }
}

/* =========================
   PRODUCT PAGE FINAL FIXES
   ========================= */

/* Общий отступ сверху/снизу от контента товара */
#block-vesta-theme-content .product-full {
    max-width: 1200px;
    margin: 0 auto;
    padding-top: 36px;
    padding-bottom: 70px;
    box-sizing: border-box;
}

/* Убираем bootstrap-смещение row, чтобы левая колонка начиналась ровно от контейнера */
#block-vesta-theme-content .product-main-row {
    align-items: flex-start;
    margin-left: 0;
    margin-right: 0;
}

/* Левая колонка — прижата к левому краю контейнера */
#block-vesta-theme-content .product-main-row > .col-lg-5 {
    padding-left: 0;
}

/* Правая колонка — аккуратный отступ от слайдера */
#block-vesta-theme-content .product-main-row > .col-lg-7 {
    padding-right: 0;
}

#block-vesta-theme-content .product-info {
    padding-left: 44px;
    padding-top: 0;
}

/* Слайдер и изображение строго слева */
#block-vesta-theme-content .product-images,
#block-vesta-theme-content .product-page-gallery,
#block-vesta-theme-content .product-page-gallery__main {
    width: 100%;
    margin-left: 0;
    padding-left: 0;
}

#block-vesta-theme-content .product-page-gallery__main {
    border: 1px solid rgba(89, 45, 35, 0.12);
    background: var(--grey);
    overflow: hidden;
}

#block-vesta-theme-content .product-page-gallery__slide,
#block-vesta-theme-content .product-page-gallery__slide .field__item,
#block-vesta-theme-content .product-page-gallery__slide a {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
}

#block-vesta-theme-content .product-page-gallery__slide img {
    display: block;
    width: 100%;
    max-width: 100%;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    margin: 0;
}

/* Миниатюры тоже прижаты к левому краю */
#block-vesta-theme-content .product-page-gallery__nav {
    margin-top: 16px;
    margin-left: -6px;
    margin-right: -6px;
}

#block-vesta-theme-content .product-page-gallery__thumb {
    padding: 0 6px;
}

#block-vesta-theme-content .product-page-gallery__thumb img {
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border: 1px solid rgba(89, 45, 35, 0.12);
    opacity: 0.55;
    transition: 0.2s ease;
}

#block-vesta-theme-content .product-page-gallery__thumb:hover img,
#block-vesta-theme-content .product-page-gallery__nav .slick-current img {
    border-color: var(--brown);
    opacity: 1;
}

/* Полностью переопределяем стрелки Slick */
#block-vesta-theme-content .product-page-gallery__main .slick-arrow {
    position: absolute;
    top: 50%;
    z-index: 10;

    display: flex !important;
    align-items: center;
    justify-content: center;

    width: 44px;
    height: 44px;
    padding: 0;
    margin: 0;

    border: 1px solid var(--black);
    border-radius: 0;
    background: rgba(255, 255, 255, 0.94);
    color: var(--black);

    font-size: 0;
    line-height: 0;
    text-indent: 0;

    cursor: pointer;
    transform: translateY(-50%);
    transition: 0.2s ease;
    overflow: hidden;
}

#block-vesta-theme-content .product-page-gallery__main .slick-arrow:hover {
    background: var(--black);
    color: #fff;
}

#block-vesta-theme-content .product-page-gallery__main .slick-prev {
    left: 14px;
}

#block-vesta-theme-content .product-page-gallery__main .slick-next {
    right: 14px;
}

/* Убираем текстовые символы ‹ › и рисуем стрелку через mask — она будет точно по центру */
#block-vesta-theme-content .product-page-gallery__main .slick-prev::before,
#block-vesta-theme-content .product-page-gallery__main .slick-next::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;

    display: block;
    width: 20px;
    height: 20px;

    margin: 0;
    padding: 0;

    background-color: currentColor;
    opacity: 1;

    transform: translate(-50%, -50%);

    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M15.5 4.5L8 12l7.5 7.5' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M15.5 4.5L8 12l7.5 7.5' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");

    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;

    -webkit-mask-position: center;
    mask-position: center;

    -webkit-mask-size: contain;
    mask-size: contain;
}

#block-vesta-theme-content .product-page-gallery__main .slick-next::before {
    transform: translate(-50%, -50%) rotate(180deg);
}

/* Убираем возможные стандартные after-элементы */
#block-vesta-theme-content .product-page-gallery__main .slick-prev::after,
#block-vesta-theme-content .product-page-gallery__main .slick-next::after {
    display: none;
    content: none;
}

/* Адаптив */
@media (max-width: 991px) {
    #block-vesta-theme-content .product-full {
        padding-top: 24px;
        padding-bottom: 50px;
    }

    #block-vesta-theme-content .product-main-row > .col-lg-5,
    #block-vesta-theme-content .product-main-row > .col-lg-7 {
        padding-left: 0;
        padding-right: 0;
    }

    #block-vesta-theme-content .product-info {
        margin-top: 28px;
        padding-left: 0;
    }
}

@media (max-width: 575px) {
    #block-vesta-theme-content .product-full {
        padding-bottom: 42px;
    }

    #block-vesta-theme-content .product-page-gallery__main .slick-arrow {
        width: 38px;
        height: 38px;
    }

    #block-vesta-theme-content .product-page-gallery__main .slick-prev {
        left: 10px;
    }

    #block-vesta-theme-content .product-page-gallery__main .slick-next {
        right: 10px;
    }

    #block-vesta-theme-content .product-page-gallery__main .slick-prev::before,
    #block-vesta-theme-content .product-page-gallery__main .slick-next::before {
        width: 18px;
        height: 18px;
    }
}

/* Адаптив */
@media (max-width: 991px) {
    #block-vesta-theme-content .product-info {
        padding-left: 0;
        margin-top: 28px;
    }

    #block-vesta-theme-content .h1-product {
        font-size: 32px;
    }
}

@media (max-width: 575px) {
    #block-vesta-theme-content .h1-product {
        font-size: 28px;
    }

    #block-vesta-theme-content .field--name-price {
        font-size: 24px;
    }

    #block-vesta-theme-content .attribute-widgets {
        display: block;
    }

    #block-vesta-theme-content .attribute-widgets .form-item + .form-item {
        margin-top: 14px;
    }

    #block-vesta-theme-content .attribute-widgets select {
        width: 100%;
    }

    #block-vesta-theme-content .button--add-to-cart {
        width: 100%;
    }
}

/* =========================
   CART PAGE
   ========================= */

/* Хлебные крошки */
#block-vesta-theme-strokanavigacii {
    margin: 22px 0 28px;
}

#block-vesta-theme-strokanavigacii nav[aria-label="breadcrumb"] {
    display: flex;
    justify-content: flex-start;
    align-items: center;
}

#block-vesta-theme-strokanavigacii .breadcrumb {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0;
    margin: 0;
    padding: 0;
    background: transparent;
    list-style: none;
    font-family: 'Lora', serif;
    font-size: 14px;
    line-height: 1.4;
    color: var(--black);
}

#block-vesta-theme-strokanavigacii .breadcrumb-item {
    display: flex;
    align-items: center;
    margin: 0;
    padding: 0;
}

#block-vesta-theme-strokanavigacii .breadcrumb-item + .breadcrumb-item::before {
    content: "◆";
    display: inline-block;
    padding: 0 12px;
    color: var(--brown);
    font-size: 8px;
    line-height: 1;
}

#block-vesta-theme-strokanavigacii .breadcrumb a {
    color: var(--black);
    text-decoration: none;
    transition: color 0.2s ease;
}

#block-vesta-theme-strokanavigacii .breadcrumb a:hover {
    color: var(--brown);
    text-decoration: underline;
    text-underline-offset: 2px;
}

#block-vesta-theme-strokanavigacii .breadcrumb-item:last-child {
    color: var(--brown);
    font-weight: 500;
}

/* Заголовок страницы */
#block-vesta-theme-page-title {
    margin: 10px 0 28px;
    text-align: center;
}

#block-vesta-theme-page-title h1 {
    position: relative;
    margin: 0;
    padding-bottom: 22px;
    color: #3a3736;
    font-family: 'Lora', serif;
    font-size: 38px;
    font-weight: 500;
    line-height: 1.15;
}

/* Основной контейнер корзины */
#block-vesta-theme-content .cart-form {
    max-width: 1200px;
    margin: 0 auto;
}

/* Таблица корзины */
#block-vesta-theme-content .cart-form .table-responsive {
    overflow-x: auto;
    border: 1px solid rgba(89, 45, 35, 0.12);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.04);
    background: #fff;
}

#block-vesta-theme-content .cart-form table.views-view-table {
    width: 100%;
    margin: 0;
    border-collapse: collapse;
    background: #fff;
    min-width: 900px;
}

#block-vesta-theme-content .cart-form table.views-view-table thead th {
    padding: 16px 18px;
    background: var(--grey);
    color: var(--black);
    font-family: 'Lora', serif;
    font-size: 16px;
    font-weight: 500;
    border-bottom: 1px solid rgba(89, 45, 35, 0.12);
    white-space: nowrap;
    text-align: left;
}

#block-vesta-theme-content .cart-form table.views-view-table tbody td {
    padding: 18px;
    vertical-align: middle;
    border-bottom: 1px solid rgba(89, 45, 35, 0.12);
    color: #3a3736;
    font-family: 'Lora', serif;
    font-size: 16px;
    background: #fff;
}

#block-vesta-theme-content .cart-form table.views-view-table tbody tr:last-child td {
    border-bottom: 0;
}

#block-vesta-theme-content .cart-form table.views-view-table tbody tr:hover td {
    background: #fcfbfa;
}

/* Название товара */
#block-vesta-theme-content .commerce-product-variation--view-mode-cart .field--name-title {
    margin: 0;
    color: var(--black);
    font-family: 'Lora', serif;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.25;
}

/* Цена и итог */
#block-vesta-theme-content .views-field-unit-price__number,
#block-vesta-theme-content .views-field-total-price__number {
    white-space: nowrap;
    color: var(--brown);
    font-family: 'Lora', serif;
    font-size: 17px;
    font-weight: 500;
}

/* Количество */
#block-vesta-theme-content .views-field-edit-quantity {
    width: 150px;
}

#block-vesta-theme-content .quantity-edit-input {
    width: 90px;
    height: 42px;
    padding: 0 10px;
    border: 1px solid rgba(89, 45, 35, 0.18);
    border-radius: 0;
    background: #fff;
    color: var(--black);
    font-family: 'Lora', serif;
    font-size: 16px;
    text-align: center;
    outline: none;
    box-shadow: none;
    appearance: none;
}

#block-vesta-theme-content .quantity-edit-input:focus {
    border-color: var(--brown);
    box-shadow: 0 0 0 1px rgba(89, 45, 35, 0.15);
}

/* Удалить */
#block-vesta-theme-content .views-field-remove-button {
    text-align: center;
}

#block-vesta-theme-content .delete-order-item.button,
#block-vesta-theme-content .delete-order-item.btn.btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 110px;
    height: 40px;
    padding: 0 18px;
    border: 1px solid var(--black);
    border-radius: 0;
    background: #fff;
    color: var(--black);
    font-family: 'Lora', serif;
    font-size: 14px;
    font-weight: 400;
    cursor: pointer;
    transition: 0.2s ease;
    box-shadow: none;
}

#block-vesta-theme-content .delete-order-item.button:hover,
#block-vesta-theme-content .delete-order-item.btn.btn-primary:hover {
    background: var(--black);
    color: #fff;
    border-color: var(--black);
}

/* Итого */
#block-vesta-theme-content [data-drupal-selector="order-total-summary"] {
    display: flex;
    justify-content: flex-end;
    margin-top: 22px;
}

#block-vesta-theme-content [data-drupal-selector="order-total-summary"] .field--name-total-price > div {
    min-width: 360px;
    padding: 22px 24px;
    background: var(--grey);
    border: 1px solid rgba(89, 45, 35, 0.12);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.03);
    box-sizing: border-box;
}

#block-vesta-theme-content .order-total-line {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    color: var(--black);
    font-family: 'Lora', serif;
    font-size: 18px;
    line-height: 1.3;
}

#block-vesta-theme-content .order-total-line + .order-total-line {
    margin-top: 10px;
}

#block-vesta-theme-content .order-total-line__total {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid rgba(89, 45, 35, 0.12);
    font-size: 20px;
    font-weight: 500;
}

#block-vesta-theme-content .order-total-line-value {
    color: var(--brown);
    white-space: nowrap;
}

/* Кнопки корзины — под итогом и поменьше */
#block-vesta-theme-content .cart-form .form-actions[data-drupal-selector="edit-actions"] {
    display: flex;
    flex-direction: column-reverse;
    align-items: flex-end;
    gap: 10px;
    max-width: 240px;
    margin: 18px 0 0 auto;
}

#block-vesta-theme-content .cart-form .form-actions[data-drupal-selector="edit-actions"] > button {
    width: 100%;
    min-width: 0;
    height: 42px;
    padding: 0 16px;
    border-radius: 0;
    box-shadow: none;
    font-family: 'Lora', serif;
    font-size: 15px;
    font-weight: 400;
    line-height: 1;
    white-space: nowrap;
    text-align: center;
    cursor: pointer;
    transition: 0.2s ease;
    appearance: none;
    -webkit-appearance: none;
}

/* "Обновить корзину" — скрываем, но место сохраняем */
#block-vesta-theme-content .cart-form .form-actions[data-drupal-selector="edit-actions"] > button.js-hide[data-drupal-selector="edit-submit"] {
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
}

/* Обновить корзину */
#block-vesta-theme-content .cart-form .form-actions[data-drupal-selector="edit-actions"] > button[data-drupal-selector="edit-submit"]:not(.js-hide) {
    border: 1px solid var(--black);
    background: #fff;
    color: var(--black);
}

#block-vesta-theme-content .cart-form .form-actions[data-drupal-selector="edit-actions"] > button[data-drupal-selector="edit-submit"]:not(.js-hide):hover {
    background: #f7f7f7;
}

/* Оформление заказа */
#block-vesta-theme-content .cart-form .form-actions[data-drupal-selector="edit-actions"] > button[data-drupal-selector="edit-checkout"] {
    border: 1px solid var(--black);
    background: var(--black);
    color: var(--white);
}

#block-vesta-theme-content .cart-form .form-actions[data-drupal-selector="edit-actions"] > button[data-drupal-selector="edit-checkout"]:hover {
    background: #2b2b2b;
    border-color: #2b2b2b;
}

/* =========================
   CART PAGE — убрать лишние поля товара
   только на странице корзины
   ========================= */

#block-vesta-theme-content .cart-form .views-field-purchased-entity .field--name-field-product-image,
#block-vesta-theme-content .cart-form .views-field-purchased-entity .photoswipe-gallery,
#block-vesta-theme-content .cart-form .views-field-purchased-entity .field--name-field-product-text,
#block-vesta-theme-content .cart-form .views-field-purchased-entity .field--name-price {
    display: none !important;
}

/* На случай, если в корзину попал полный рендер товара без view-mode-cart */
#block-vesta-theme-content .cart-form .views-field-purchased-entity > div {
    margin: 0;
}

/* Сохраняем нормальный вид названия товара в корзине */
#block-vesta-theme-content .cart-form .views-field-purchased-entity .field--name-title,
#block-vesta-theme-content .cart-form .views-field-purchased-entity .field__item {
    color: var(--black);
    font-family: 'Lora', serif;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.25;
}

/* =========================
   SEARCH PAGE
   ========================= */

/*#block-vesta-theme-content {*/
/*    max-width: 1200px;*/
/*    margin: 0 auto;*/
/*    padding: 20px 0 60px;*/
/*    box-sizing: border-box;*/
/*}*/

/* ФОРМА ПОИСКА */
#block-vesta-theme-content .search-api-page-block-form-search {
    display: flex;
    align-items: stretch;
    justify-content: center;
    max-width: 760px;
    margin: 0 auto 35px;
    gap: 0;
}

#block-vesta-theme-content .search-api-page-block-form-search .form-item-keys {
    flex: 1 1 auto;
    margin: 0;
}

#block-vesta-theme-content .search-api-page-block-form-search input.form-search {
    width: 100%;
    height: 50px;
    padding: 0 16px;
    border: 1px solid var(--black);
    border-right: 0;
    border-radius: 0;
    background: #fff;
    color: var(--black);
    font-family: 'Lora', serif;
    font-size: 15px;
    opacity: 1;
    visibility: visible;
    box-sizing: border-box;
}

#block-vesta-theme-content .search-api-page-block-form-search input.form-search:focus {
    outline: none;
    box-shadow: none;
}

#block-vesta-theme-content .search-api-page-block-form-search input.form-search::placeholder {
    color: #8a8a8a;
    opacity: 1;
}

#block-vesta-theme-content .search-api-page-block-form-search .form-actions {
    margin: 0;
}

#block-vesta-theme-content .search-api-page-block-form-search .search-form__submit {
    width: 160px;
    height: 50px;
    border: 1px solid var(--black);
    border-radius: 0;
    background: var(--black);
    color: var(--white);
    font-family: 'Lora', serif;
    font-size: 15px;
    font-weight: 400;
    cursor: pointer;
    transition: 0.2s ease;
}

#block-vesta-theme-content .search-api-page-block-form-search .search-form__submit:hover {
    background: #2b2b2b;
    border-color: #2b2b2b;
}

/* ЗАГОЛОВОК "РЕЗУЛЬТАТЫ ПОИСКА" */
#block-vesta-theme-content > h2 {
    position: relative;
    margin: 0 0 20px;
    padding-bottom: 22px;
    text-align: center;
    font-family: 'Lora', serif;
    font-size: 38px;
    font-weight: 500;
    line-height: 1.15;
    color: #3a3736;
}

#block-vesta-theme-content > h2::before {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 8px;
    width: 298px;
    height: 1px;
    background: #5a5a5a;
    transform: translateX(-50%);
}

#block-vesta-theme-content > h2::after {
    content: "◆";
    position: absolute;
    left: 50%;
    bottom: 4px;
    transform: translateX(-50%);
    font-size: 14px;
    line-height: 1;
    color: #222;
    background: #fff;
    padding: 0 10px;
}

/* КОЛ-ВО РЕЗУЛЬТАТОВ */
#block-vesta-theme-content > p {
    margin: 0 0 28px;
    text-align: center;
    font-family: 'Lora', serif;
    font-size: 18px;
    color: #3a3736;
}

/* ======================================================
   САМИ РЕЗУЛЬТАТЫ ПОИСКА (СТИЛИЗАЦИЯ ПОД КУСОЧКИ КОЖИ/КАРТОЧКИ)
   ====================================================== */

/* Заголовок результата h3 */
#block-vesta-theme-content > h3 {
    margin: 0 auto;
    max-width: 800px; /* Делаем выдачу компактной и удобной для чтения */
    padding: 24px 30px 10px;
    background: #fff;

    /* Тонкая благородная рамка, как на карточках товаров */
    border: 1px solid rgba(89, 45, 35, 0.12);
    border-bottom: none; /* Убираем нижнюю рамку, её закроет p */

    transition: transform 0.25s ease, border-color 0.25s ease;
}

/* Ссылка-название в заголовке */
#block-vesta-theme-content > h3 a {
    color: var(--black);
    text-decoration: none;
    font-family: 'Lora', serif;
    font-size: 24px;
    font-weight: 500;
    line-height: 1.3;
    transition: color 0.2s ease;
}

/* Описание под результатом (параграф p, идущий сразу за h3) */
#block-vesta-theme-content > h3 + p {
    margin: 0 auto 24px; /* Снизу задаем отступ до СЛЕДУЮЩЕГО результата */
    max-width: 800px;
    padding: 0 30px 24px;
    background: #fff;

    /* Завершаем рамку карточки */
    border: 1px solid rgba(89, 45, 35, 0.12);
    border-top: none; /* Убираем верхнюю, чтобы сливалась с h3 */

    color: #666;
    font-family: var(--font-family); /* Основной читаемый шрифт сайта */
    font-size: 15px;
    line-height: 1.6;

    /* Мягкая аккуратная тень, как у товаров */
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.03);
    transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

/* ЭФФЕКТ НАВЕДЕНИЯ (HOVER)
   Так как обертки нет, мы подсвечиваем h3 и p одновременно при наведении на любой из них
*/
#block-vesta-theme-content > h3:hover,
#block-vesta-theme-content > h3:hover + p {
    border-color: rgba(89, 45, 35, 0.3);
}

#block-vesta-theme-content > h3:hover a {
    color: var(--brown); /* Ссылка загорается фирменным коричневым */
}

/* Небольшой интерактивный сдвиг карточки вверх при наведении на ссылку */
#block-vesta-theme-content > h3:hover,
#block-vesta-theme-content > h3:hover + p {
    transform: translateY(-2px);
}

/* Если описания у страницы нет (как в вашем примере с "О нас"),
   закрываем рамку снизу у h3, чтобы она не оставалась открытой */
#block-vesta-theme-content > h3 + p:empty,
#block-vesta-theme-content > h3 + p(:blank) {
    display: none;
}

/* =========================
   CALLBACK MODAL
   ========================= */

.modal .modal-dialog.modal-dialog-centered {
    max-width: 790px;
    width: calc(100% - 40px); /* Немного шире для больших отступов */
    margin: 1.75rem auto;
}

.modal .modal-content {
    position: relative;
    background: #fff;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    overflow: hidden;
}

/* HEADER */
.modal .modal-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    /* ОТСТУПЫ: Сверху 80px, По бокам 90px */
    padding-top: 80px;
    padding-left: 90px;
    padding-right: 90px;
    padding-bottom: 0; /* Отступ снизу уберем, так как там уже есть body или title */
    border: 0;
}

/* ПОЗИЦИОНИРОВАНИЕ ЗАГОЛОВКА */
.modal .modal-title {
    position: relative;
    margin: 0 0 20px;
    text-align: center;
    font-family: var(--font-family);
    font-size: 38px;
    font-weight: 400;
    color: #3a3736;
}

/* ЛИНИЯ И РОМБ ПРИКРЕПЛЕННЫЕ К ЗАГОЛОВКУ */
.modal .modal-title::before {
    content: "";
    position: absolute;
    top: -20px;
    left: 50%;
    transform: translateX(-50%);
    width: 250px;
    height: 1px;
    background: linear-gradient(
            to right,
            #5a5a5a 0 calc(50% - 12px),
            transparent calc(50% - 12px) calc(50% + 12px),
            #5a5a5a calc(50% + 12px) 100%
    );
    z-index: 1;
}

.modal .modal-title::after {
    content: "";
    position: absolute;
    top: -24px;
    left: 50%;
    width: 10px;
    height: 10px;
    background: #222;
    transform: translateX(-50%) rotate(45deg);
    z-index: 2;
}

/* CLOSE BUTTON */
.modal .modal-header .btn-close {
    position: absolute;
    top: 18px;
    right: 18px;
    width: 28px;
    height: 28px;
    padding: 0;
    margin: 0;
    border: 0;
    border-radius: 0;
    background-color: transparent;
    background-image: url('/sites/all/themes/vesta_theme/image/close.svg');
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    opacity: 1;
    box-shadow: none;
    font-size: 0;
    line-height: 0;
    color: transparent;
    cursor: pointer;
}

.modal .modal-header .btn-close:focus,
.modal .modal-header .btn-close:active {
    outline: none;
    box-shadow: none;
}

/* BODY */
.modal .modal-body {
    padding-left: 90px;
    padding-right: 90px;
    padding-bottom: 80px;
    padding-top: 0;
}

/* ТЕКСТ ОПИСАНИЕ */
.modal .modal-body::before {
    content: "Наш менеджер свяжется с вами в течении 30 минут и ответит на все вопросы";
    display: block;
    max-width: 396px;
    margin: 0 auto 35px;
    text-align: center;
    font-family: var(--font-family);
    font-size: 18px;
    color: #3a3736;
}

/* FORM */
.modal #webform-submission-callback-form-ajax form {
    margin: 0;
}

.modal #webform-submission-callback-form-ajax .webform-submission-form {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

/* order */
.modal #webform-submission-callback-form-ajax .js-form-item-name {
    order: 1;
}

.modal #webform-submission-callback-form-ajax .js-form-item-phone {
    order: 2;
}

.modal #webform-submission-callback-form-ajax .form-actions {
    order: 3;
    margin: 0;
}

.modal #webform-submission-callback-form-ajax .js-form-item-privacy {
    order: 4;
}

/* INPUTS */
.modal #webform-submission-callback-form-ajax input[type="text"],
.modal #webform-submission-callback-form-ajax input[type="tel"],
.modal #webform-submission-callback-form-ajax input[type="search"],
.modal #webform-submission-callback-form-ajax .form-control {
    width: 100%;
    height: 58px;
    padding: 0 24px;
    border: 1px solid var(--light-black);
    border-radius: 0;
    background: #fff;
    color: var(--light-black);
    font-family: var(--font-family);
    font-size: 18px;
    box-sizing: border-box;
    box-shadow: none;
    outline: none;
}

.modal #webform-submission-callback-form-ajax input::placeholder {
    color: #4d4d4d;
    opacity: 1;
}

.modal #webform-submission-callback-form-ajax input:focus {
    border-color: #2b2b2b;
    box-shadow: none;
}

/* SUBMIT BUTTON INSIDE FORM */
.modal #webform-submission-callback-form-ajax .form-actions .webform-button--submit,
.modal #webform-submission-callback-form-ajax .form-actions .btn.btn-primary {
    display: flex !important;
    width: 100%;
    height: 60px;
    padding: 0;
    margin: 0;
    border: 0;
    border-radius: 0;
    background: var(--black);
    color: var(--white);
    font-family: var(--font-family);
    font-size: 18px;
    font-weight: 400;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: none;
    transition: 0.2s ease;
}

.modal #webform-submission-callback-form-ajax .form-actions .webform-button--submit:hover,
.modal #webform-submission-callback-form-ajax .form-actions .btn.btn-primary:hover {
    background: #2b2b2b;
}

/* HIDE FOOTER DUPLICATE BUTTON */
.modal .modal-footer {
    display: none !important;
}

/* PRIVACY */
.modal #webform-submission-callback-form-ajax .js-form-item-privacy {
    display: flex !important;
    align-items: flex-start;
    gap: 10px;
    margin-top: 16px;
    margin-bottom: 0;
}

.modal #webform-submission-callback-form-ajax .js-form-item-privacy input[type="checkbox"] {
    width: 18px;
    height: 18px;
    min-width: 18px;
    margin: 4px 0 0;
    accent-color: #1c1b1a;
}

.modal #webform-submission-callback-form-ajax .js-form-item-privacy .description {
    margin: 0;
}

.modal #webform-submission-callback-form-ajax .js-form-item-privacy .webform-element-description span {
    color: var(--black);
    font-family: var(--font-family);
    font-size: 14px;
}

/* CONTEXTUAL */
.modal #webform-submission-callback-form-ajax .contextual {
    display: none !important;
}

/* =========================
   CALLBACK MODAL — ERRORS
   только подсветка полей, без текста ошибок
   ========================= */

.modal #webform-submission-callback-form-ajax .alert.alert-error,
.modal #webform-submission-callback-form-ajax .form-item--error-message {
    display: none !important;
}

/* Красная рамка у незаполненных текстовых полей */
.modal #webform-submission-callback-form-ajax .form-item--error input[type="text"],
.modal #webform-submission-callback-form-ajax .form-item--error input[type="tel"],
.modal #webform-submission-callback-form-ajax .form-item--error input[type="search"],
.modal #webform-submission-callback-form-ajax .form-item--error .form-control,
.modal #webform-submission-callback-form-ajax input.error,
.modal #webform-submission-callback-form-ajax input[aria-invalid="true"],
.modal #webform-submission-callback-form-ajax textarea.error,
.modal #webform-submission-callback-form-ajax textarea[aria-invalid="true"] {
    border-color: #c43a3a !important;
    box-shadow: 0 0 0 1px rgba(196, 58, 58, 0.18) !important;
    background: #fff !important;
    color: #3a3736;
}

/* Чекбокс "Согласие" */
.modal #webform-submission-callback-form-ajax .js-form-item-privacy.form-item--error input[type="checkbox"],
.modal #webform-submission-callback-form-ajax .js-form-item-privacy input.error,
.modal #webform-submission-callback-form-ajax .js-form-item-privacy input[aria-invalid="true"] {
    accent-color: #c43a3a;
    box-shadow: 0 0 0 1px #c43a3a;
}

/* Если хотите ещё и текст согласия подсвечивать */
.modal #webform-submission-callback-form-ajax .js-form-item-privacy.form-item--error .webform-element-description span {
    color: #c43a3a;
}

/* =========================
   CONFIRMATION MODAL
   ========================= */

.ui-dialog {
    max-width: 790px !important;
    width: calc(100% - 40px) !important;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: #fff;
    overflow: hidden;
    padding: 0;
}

.ui-dialog .ui-dialog-titlebar {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-top: 80px;
    padding-left: 90px;
    padding-right: 90px;
    padding-bottom: 0;
    border: 0;
    background: #fff;
    border-radius: 0;
}

.ui-dialog .ui-dialog-title {
    position: relative;
    display: block;
    margin: 0 0 20px;
    text-align: center;
    font-family: var(--font-family);
    font-size: 38px;
    font-weight: 400;
    color: #3a3736;
    line-height: 1.15;
}

/* линия и ромб над заголовком */
.ui-dialog .ui-dialog-title::before {
    content: "";
    position: absolute;
    top: -20px;
    left: 50%;
    transform: translateX(-50%);
    width: 250px;
    height: 1px;
    background: linear-gradient(
            to right,
            #5a5a5a 0 calc(50% - 12px),
            transparent calc(50% - 12px) calc(50% + 12px),
            #5a5a5a calc(50% + 12px) 100%
    );
    z-index: 1;
}

.ui-dialog .ui-dialog-title::after {
    content: "";
    position: absolute;
    top: -24px;
    left: 50%;
    width: 10px;
    height: 10px;
    background: #222;
    transform: translateX(-50%) rotate(45deg);
    z-index: 2;
}

/* кнопка закрытия */
.ui-dialog .ui-dialog-titlebar-close {
    position: absolute;
    top: 18px;
    right: 18px;
    width: 28px;
    height: 28px;
    padding: 0;
    margin: 0;
    border: 0;
    border-radius: 0;
    background-color: transparent;
    background-image: url('/sites/all/themes/vesta_theme/image/close.svg');
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    opacity: 1;
    box-shadow: none;
    font-size: 0;
    line-height: 0;
    color: transparent;
    cursor: pointer;
    appearance: none;
}

.ui-dialog .ui-dialog-titlebar-close:focus,
.ui-dialog .ui-dialog-titlebar-close:active {
    outline: none;
    box-shadow: none;
}

/* контент */
.ui-dialog .ui-dialog-content.webform-confirmation-modal--content {
    padding-left: 90px;
    padding-right: 90px;
    padding-bottom: 80px;
    padding-top: 0;
    border: 0;
    background: #fff;
    text-align: center;
}

/* текст подтверждения */
.ui-dialog .ui-dialog-content.webform-confirmation-modal--content span {
    display: block;
    max-width: 396px;
    margin: 0 auto;
    font-family: var(--font-family);
    font-size: 18px;
    color: #3a3736;
    line-height: 1.45;
}

/* =========================
   CALLBACK FORM BLOCK ONLY
   #block-vesta-theme-content
   ========================= */

/* Внутренний wrapper формы */
#block-vesta-theme-content #webform-submission-callback-form-ajax {
    position: relative;
    box-sizing: border-box;
}

/* Текст-описание сверху формы */
#block-vesta-theme-content #webform-submission-callback-form-ajax::before {
    content: "Наш менеджер свяжется с вами в течении 30 минут и ответит на все вопросы";
    display: block;
    max-width: 396px;
    margin: 0 auto 35px;
    text-align: center;
    font-family: var(--font-family);
    font-size: 18px;
    line-height: 1.4;
    color: #3a3736;
}

/* Скрываем contextual только внутри этого блока */
#block-vesta-theme-content .contextual {
    display: none !important;
}

/* =========================
   FORM BASE
   ========================= */

#block-vesta-theme-content #webform-submission-callback-form-ajax form {
    margin: 0;
}

#block-vesta-theme-content #webform-submission-callback-form-ajax .webform-submission-form {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

/* Порядок полей */
#block-vesta-theme-content #webform-submission-callback-form-ajax .js-form-item-name {
    order: 1;
}

#block-vesta-theme-content #webform-submission-callback-form-ajax .js-form-item-phone {
    order: 2;
}

#block-vesta-theme-content #webform-submission-callback-form-ajax .form-actions {
    order: 3;
    margin: 0;
}

#block-vesta-theme-content #webform-submission-callback-form-ajax .js-form-item-privacy {
    order: 4;
}

/* =========================
   INPUTS
   ========================= */

#block-vesta-theme-content #webform-submission-callback-form-ajax input[type="text"],
#block-vesta-theme-content #webform-submission-callback-form-ajax input[type="tel"],
#block-vesta-theme-content #webform-submission-callback-form-ajax input[type="search"],
#block-vesta-theme-content #webform-submission-callback-form-ajax .form-control {
    width: 100%;
    height: 58px;
    padding: 0 24px;
    border: 1px solid var(--light-black);
    border-radius: 0;
    background: #fff;
    color: var(--light-black);
    font-family: var(--font-family);
    font-size: 18px;
    box-sizing: border-box;
    box-shadow: none;
    outline: none;
}

#block-vesta-theme-content #webform-submission-callback-form-ajax input::placeholder {
    color: #4d4d4d;
    opacity: 1;
}

#block-vesta-theme-content #webform-submission-callback-form-ajax input:focus {
    border-color: #2b2b2b;
    box-shadow: none;
}

/* =========================
   SUBMIT BUTTON
   ========================= */

#block-vesta-theme-content #webform-submission-callback-form-ajax .form-actions .webform-button--submit,
#block-vesta-theme-content #webform-submission-callback-form-ajax .form-actions .btn.btn-primary {
    display: flex !important;
    width: 100%;
    height: 60px;
    padding: 0;
    margin: 0;
    border: 0;
    border-radius: 0;
    background: var(--black);
    color: var(--white);
    font-family: var(--font-family);
    font-size: 18px;
    font-weight: 400;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: none;
    transition: 0.2s ease;
}

#block-vesta-theme-content #webform-submission-callback-form-ajax .form-actions .webform-button--submit:hover,
#block-vesta-theme-content #webform-submission-callback-form-ajax .form-actions .btn.btn-primary:hover {
    background: #2b2b2b;
}

/* =========================
   PRIVACY
   ========================= */

#block-vesta-theme-content #webform-submission-callback-form-ajax .js-form-item-privacy {
    display: flex !important;
    align-items: flex-start;
    gap: 10px;
    margin-top: 16px;
    margin-bottom: 0;
    flex-wrap: nowrap;
    min-width: 0;
}

/* Checkbox */
#block-vesta-theme-content #webform-submission-callback-form-ajax .js-form-item-privacy input[type="checkbox"] {
    width: 18px;
    height: 18px;
    min-width: 18px;
    margin: 4px 0 0;
    flex: 0 0 18px;
    accent-color: #1c1b1a;
}

/* Обёртка текста — рядом с checkbox */
#block-vesta-theme-content #webform-submission-callback-form-ajax .js-form-item-privacy .description {
    margin: 0;
    flex: 1 1 auto;
    min-width: 0;
}

/* Сам текст согласия */
#block-vesta-theme-content #webform-submission-callback-form-ajax .js-form-item-privacy .webform-element-description span {
    color: var(--black);
    font-family: var(--font-family);
    font-size: 14px;
    line-height: 1.4;
    display: block;
}

/* =========================
   ERRORS
   ========================= */

/* Скрываем все тексты ошибок */
#block-vesta-theme-content #webform-submission-callback-form-ajax .alert.alert-error,
#block-vesta-theme-content #webform-submission-callback-form-ajax .form-item--error-message {
    display: none !important;
}

/* Красная рамка у текстовых полей в ошибке */
#block-vesta-theme-content #webform-submission-callback-form-ajax .form-item--error input[type="text"],
#block-vesta-theme-content #webform-submission-callback-form-ajax .form-item--error input[type="tel"],
#block-vesta-theme-content #webform-submission-callback-form-ajax .form-item--error input[type="search"],
#block-vesta-theme-content #webform-submission-callback-form-ajax .form-item--error .form-control,
#block-vesta-theme-content #webform-submission-callback-form-ajax input.error,
#block-vesta-theme-content #webform-submission-callback-form-ajax input[aria-invalid="true"],
#block-vesta-theme-content #webform-submission-callback-form-ajax textarea.error,
#block-vesta-theme-content #webform-submission-callback-form-ajax textarea[aria-invalid="true"] {
    border-color: #c43a3a !important;
    box-shadow: 0 0 0 1px rgba(196, 58, 58, 0.18) !important;
    background: #fff !important;
    color: #3a3736;
}

/* Сами error-обёртки не ломают геометрию */
#block-vesta-theme-content #webform-submission-callback-form-ajax .form-item--error {
    position: relative;
}

/* Чекбокс "Согласие" в ошибке */
#block-vesta-theme-content #webform-submission-callback-form-ajax .js-form-item-privacy.form-item--error input[type="checkbox"],
#block-vesta-theme-content #webform-submission-callback-form-ajax .js-form-item-privacy input.error,
#block-vesta-theme-content #webform-submission-callback-form-ajax .js-form-item-privacy input[aria-invalid="true"] {
    accent-color: #c43a3a;
    box-shadow: 0 0 0 1px #c43a3a;
}

/* Подсветка текста согласия */
#block-vesta-theme-content #webform-submission-callback-form-ajax .js-form-item-privacy.form-item--error .webform-element-description span {
    color: #c43a3a;
}

/* =========================
   PRIVACY ERROR FIX
   ========================= */

/* У чекбокса теперь error-message и description не разваливают строку */
#block-vesta-theme-content #webform-submission-callback-form-ajax .js-form-item-privacy {
    gap: 0;
}

/* Сам чекбокс */
#block-vesta-theme-content #webform-submission-callback-form-ajax .js-form-item-privacy input[type="checkbox"] {
    width: 18px;
    height: 18px;
    min-width: 18px;
    margin: 4px 10px 0 0;
    accent-color: #1c1b1a;
    flex: 0 0 18px;
}

/* Сообщение об ошибке у чекбокса */
#block-vesta-theme-content #webform-submission-callback-form-ajax .js-form-item-privacy > .form-item--error-message {
    flex: 0 0 calc(100% - 28px);
    margin: 0 0 6px 28px;
    color: #c43a3a;
}

/* Текст согласия */
#block-vesta-theme-content #webform-submission-callback-form-ajax .js-form-item-privacy > .description {
    flex: 0 0 calc(100% - 28px);
    margin: 0 0 0 28px;
}

/* Подсветка текста согласия в состоянии ошибки */
#block-vesta-theme-content #webform-submission-callback-form-ajax .js-form-item-privacy.form-item--error .webform-element-description span {
    color: #c43a3a;
}

/* =========================
   PHOTO GALLERY PAGE
   ========================= */

#block-vesta-theme-content .view-id-photogallerys.view-display-id-page_1 .view-content {
    width: 100%;
}

#block-vesta-theme-content .view-id-photogallerys.view-display-id-page_1 .views-row {
    margin: 0;
}

#block-vesta-theme-content .view-id-photogallerys.view-display-id-page_1 article.node--type-photogallery {
    margin: 0;
}

/* Убираем заголовок и мета */
#block-vesta-theme-content .view-id-photogallerys.view-display-id-page_1 article.node--type-photogallery > h2,
#block-vesta-theme-content .view-id-photogallerys.view-display-id-page_1 .node__meta,
#block-vesta-theme-content .view-id-photogallerys.view-display-id-page_1 .node__submitted,
#block-vesta-theme-content .view-id-photogallerys.view-display-id-page_1 .contextual {
    display: none !important;
}

#block-vesta-theme-content .view-id-photogallerys.view-display-id-page_1 .node__content {
    display: block;
}

/* Сетка фотогалереи */
#block-vesta-theme-content .view-id-photogallerys.view-display-id-page_1 .field--name-field-photogallery-images {
    --gap: 30px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: clamp(140px, 16vw, 240px);
    gap: var(--gap);
    width: 100%;
    margin-top: 20px;
}

#block-vesta-theme-content .view-id-photogallerys.view-display-id-page_1 .field--name-field-photogallery-images > .field__item {
    min-width: 0;
    overflow: hidden;
    border-radius: 5px;
    background: var(--grey);
    line-height: 0;
}

/* Мозаичная раскладка под 4 изображения */
#block-vesta-theme-content .view-id-photogallerys.view-display-id-page_1 .field--name-field-photogallery-images > .field__item:nth-child(1) {
    grid-column: 1;
    grid-row: 1 / span 2;
}

#block-vesta-theme-content .view-id-photogallerys.view-display-id-page_1 .field--name-field-photogallery-images > .field__item:nth-child(2) {
    grid-column: 2;
    grid-row: 1;
}

#block-vesta-theme-content .view-id-photogallerys.view-display-id-page_1 .field--name-field-photogallery-images > .field__item:nth-child(3) {
    grid-column: 1;
    grid-row: 3;
}

#block-vesta-theme-content .view-id-photogallerys.view-display-id-page_1 .field--name-field-photogallery-images > .field__item:nth-child(4) {
    grid-column: 2;
    grid-row: 2 / span 2;
}

#block-vesta-theme-content .view-id-photogallerys.view-display-id-page_1 .field--name-field-photogallery-images a {
    display: block;
    width: 100%;
    height: 100%;
    line-height: 0;
}

#block-vesta-theme-content .view-id-photogallerys.view-display-id-page_1 .field--name-field-photogallery-images img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.45s ease, filter 0.35s ease;
}

#block-vesta-theme-content .view-id-photogallerys.view-display-id-page_1 .field--name-field-photogallery-images .field__item:hover img {
    transform: scale(1.04);
    filter: brightness(1.03);
}

/* =========================
   CHECKOUT LEFT COLUMN ONLY
   ========================= */

#block-vesta-theme-content .commerce-checkout-flow {
    margin: 0 auto 80px;
    font-family: 'Lora', serif;
}

/* Левая колонка */
#block-vesta-theme-content .layout-region-checkout-main {
    min-width: 0;
}

/* Левые блоки формы */
#block-vesta-theme-content .layout-region-checkout-main > .checkout-pane,
#edit-order-fieldscheckout,
#edit-payment-information {
    background: #fff;
    border: 1px solid rgba(89, 45, 35, 0.12);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.04);
    box-sizing: border-box;
    padding: 28px;
    margin-bottom: 24px;
}

/* Заголовки fieldset */
#block-vesta-theme-content .commerce-checkout-flow fieldset {
    border: 0;
    margin: 0;
    padding: 0;
}

#block-vesta-theme-content .commerce-checkout-flow legend {
    width: 100%;
    padding: 0;
    margin: 0 0 18px;
}

#block-vesta-theme-content .commerce-checkout-flow .fieldset-legend {
    display: inline-block;
    color: #3a3736;
    font-family: 'Lora', serif;
    font-size: 22px;
    font-weight: 500;
    line-height: 1.2;
}

/* Подзаголовок у способов оплаты */
#block-vesta-theme-content .commerce-checkout-flow
#edit-payment-information-payment-method--50sxEaERkBE--wrapper .fieldset-legend {
    font-size: 18px;
    font-weight: 500;
}

/* Подзаголовок адреса */
#block-vesta-theme-content .commerce-checkout-flow
#edit-order-fieldscheckout-field-address-0 .fieldset-legend {
    font-size: 18px;
    font-weight: 500;
}

/* Лейблы */
#block-vesta-theme-content .commerce-checkout-flow label {
    display: block;
    margin: 0 0 8px;
    color: #3a3736;
    font-family: 'Lora', serif;
    font-size: 14px;
    font-weight: 400;
}

/* Поля */
#block-vesta-theme-content .commerce-checkout-flow input[type="text"],
#block-vesta-theme-content .commerce-checkout-flow input[type="tel"],
#block-vesta-theme-content .commerce-checkout-flow input[type="email"],
#block-vesta-theme-content .commerce-checkout-flow input[type="number"],
#block-vesta-theme-content .commerce-checkout-flow textarea,
#block-vesta-theme-content .commerce-checkout-flow select {
    width: 100%;
    box-sizing: border-box;
    height: 50px;
    padding: 0 16px;
    border: 1px solid rgba(89, 45, 35, 0.18);
    border-radius: 0;
    background: #fff;
    color: #1c1c1c;
    font-family: 'Lora', serif;
    font-size: 16px;
    outline: none;
    box-shadow: none;
    appearance: none;
}

#block-vesta-theme-content .commerce-checkout-flow textarea {
    min-height: 120px;
    padding: 14px 16px;
    resize: vertical;
}

#block-vesta-theme-content .commerce-checkout-flow input::placeholder,
#block-vesta-theme-content .commerce-checkout-flow textarea::placeholder {
    color: #8a8a8a;
    opacity: 1;
}

#block-vesta-theme-content .commerce-checkout-flow input:focus,
#block-vesta-theme-content .commerce-checkout-flow textarea:focus,
#block-vesta-theme-content .commerce-checkout-flow select:focus {
    border-color: var(--brown);
    box-shadow: 0 0 0 1px rgba(89, 45, 35, 0.15);
}

/* Отступы между полями */
#block-vesta-theme-content .commerce-checkout-flow .form-item {
    margin-bottom: 18px;
}

/* Адрес */
#block-vesta-theme-content .commerce-checkout-flow
#edit-order-fieldscheckout-field-address-0-address .js-form-item {
    margin-bottom: 16px;
}

/* Комментарий */
#edit-order-fieldscheckout-field-comment-0-value {
    width: 100%;
}

/* Радио-кнопки оплаты */
#block-vesta-theme-content .commerce-checkout-flow
fieldset[data-drupal-selector="edit-payment-information-payment-method"] .form-radios {
    display: grid;
    gap: 12px;
}

#block-vesta-theme-content .commerce-checkout-flow
fieldset[data-drupal-selector="edit-payment-information-payment-method"] .form-item {
    margin: 0;
    position: relative;
}

#block-vesta-theme-content .commerce-checkout-flow
fieldset[data-drupal-selector="edit-payment-information-payment-method"] input[type="radio"] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

#block-vesta-theme-content .commerce-checkout-flow
fieldset[data-drupal-selector="edit-payment-information-payment-method"] label.option {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 52px;
    padding: 14px 18px 14px 50px;
    border: 1px solid rgba(89, 45, 35, 0.18);
    background: #fff;
    color: #3a3736;
    font-family: 'Lora', serif;
    font-size: 16px;
    cursor: pointer;
    transition: 0.2s ease;
}

#block-vesta-theme-content .commerce-checkout-flow
fieldset[data-drupal-selector="edit-payment-information-payment-method"] label.option::before {
    content: "";
    position: absolute;
    left: 18px;
    top: 50%;
    width: 16px;
    height: 16px;
    transform: translateY(-50%);
    border: 1px solid var(--brown);
    border-radius: 50%;
    background: #fff;
    box-sizing: border-box;
}

#block-vesta-theme-content .commerce-checkout-flow
fieldset[data-drupal-selector="edit-payment-information-payment-method"] input[type="radio"]:checked + label.option {
    border-color: var(--brown);
    background: #f7f0ea;
}

#block-vesta-theme-content .commerce-checkout-flow
fieldset[data-drupal-selector="edit-payment-information-payment-method"] input[type="radio"]:checked + label.option::before {
    background: var(--brown);
    box-shadow: inset 0 0 0 3px #fff;
}

#block-vesta-theme-content .commerce-checkout-flow
fieldset[data-drupal-selector="edit-payment-information-payment-method"] label.option:hover {
    border-color: rgba(89, 45, 35, 0.35);
    background: #fcfbfa;
}

/* Кнопка продолжить */
#block-vesta-theme-content .layout-region-checkout-footer .form-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 24px;
}

#block-vesta-theme-content .layout-region-checkout-footer .button--primary {
    min-width: 220px;
    height: 50px;
    padding: 0 26px;
    border: 0;
    border-radius: 0;
    background: var(--black);
    color: var(--white);
    font-family: 'Lora', serif;
    font-size: 18px;
    font-weight: 400;
    cursor: pointer;
    transition: 0.2s ease;
    box-shadow: none;
}

#block-vesta-theme-content .layout-region-checkout-footer .button--primary:hover {
    background: var(--light-black);
}

/* Ошибки */
#block-vesta-theme-content .commerce-checkout-flow input.error,
#block-vesta-theme-content .commerce-checkout-flow textarea.error,
#block-vesta-theme-content .commerce-checkout-flow select.error,
#block-vesta-theme-content .commerce-checkout-flow input[aria-invalid="true"],
#block-vesta-theme-content .commerce-checkout-flow textarea[aria-invalid="true"],
#block-vesta-theme-content .commerce-checkout-flow select[aria-invalid="true"] {
    border-color: #c43a3a !important;
    box-shadow: 0 0 0 1px rgba(196, 58, 58, 0.18) !important;
}

/* Скрываем галерею картинок в сводке заказа */
.checkout-order-summary .photoswipe-gallery.field--name-field-product-image {
    display: none !important;
}

/* Скрываем подробное описание товара в сводке заказа */
.checkout-order-summary .field--name-field-product-text {
    display: none !important;
}

/* =========================
   CHECKOUT REVIEW PAGE
   only left side + footer links
   ========================= */

#block-vesta-theme-content form.commerce-checkout-flow[action$="/review"] {
    margin: 0 auto 80px;
    font-family: 'Lora', serif;
}

/* ЛЕВАЯ КОЛОНКА */
#block-vesta-theme-content form.commerce-checkout-flow[action$="/review"] .layout-region-checkout-main {
    min-width: 0;
}

/* Карточки в левой колонке */
#block-vesta-theme-content form.commerce-checkout-flow[action$="/review"] .layout-region-checkout-main > fieldset {
    background: #fff;
    border: 1px solid rgba(89, 45, 35, 0.12);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.04);
    box-sizing: border-box;
    padding: 28px;
    margin-bottom: 24px;
}

/* Легенда */
#block-vesta-theme-content form.commerce-checkout-flow[action$="/review"] .layout-region-checkout-main legend {
    width: 100%;
    margin: 0 0 18px;
    padding: 0;
}

/* Заголовок + ссылка "Редактировать" */
#block-vesta-theme-content form.commerce-checkout-flow[action$="/review"] .layout-region-checkout-main .fieldset-legend {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    color: #3a3736;
    font-family: 'Lora', serif;
    font-size: 22px;
    font-weight: 500;
    line-height: 1.2;
}

#block-vesta-theme-content form.commerce-checkout-flow[action$="/review"] .checkout-review-edit-link {
    margin-left: auto;
    flex: 0 0 auto;
}

/* Стилизация ссылки "Редактировать" */
#block-vesta-theme-content form.commerce-checkout-flow[action$="/review"] .checkout-review-edit-link a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    padding: 0 14px;
    border: 1px solid var(--black);
    border-radius: 0;
    background: #fff;
    color: var(--black);
    text-decoration: none !important;
    font-family: 'Lora', serif;
    font-size: 13px;
    font-weight: 400;
    line-height: 1;
    white-space: nowrap;
    transition: 0.2s ease;
}

#block-vesta-theme-content form.commerce-checkout-flow[action$="/review"] .checkout-review-edit-link a:hover {
    background: var(--black);
    color: #fff !important;
}

/* Текст внутри блоков */
#block-vesta-theme-content form.commerce-checkout-flow[action$="/review"] .layout-region-checkout-main .fieldset-wrapper {
    color: #1c1c1c;
    font-family: 'Lora', serif;
    font-size: 16px;
    line-height: 1.6;
}

#block-vesta-theme-content form.commerce-checkout-flow[action$="/review"] .layout-region-checkout-main .fieldset-wrapper .address {
    margin: 0;
}

/* Кнопки внизу */
#block-vesta-theme-content form.commerce-checkout-flow[action$="/review"] .layout-region-checkout-footer .form-actions {
    display: flex;
    flex-direction: row-reverse; /* "Назад" слева, "Завершить" справа */
    justify-content: flex-start;
    align-items: center;
    gap: 12px;
    margin-top: 24px;
}

/* Общая база для кнопки и ссылки */
#block-vesta-theme-content form.commerce-checkout-flow[action$="/review"] .layout-region-checkout-footer .button--primary,
#block-vesta-theme-content form.commerce-checkout-flow[action$="/review"] .layout-region-checkout-footer .link--previous {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 220px;
    height: 50px;
    padding: 0 26px;
    border-radius: 0;
    box-shadow: none;
    font-family: 'Lora', serif;
    font-size: 18px;
    font-weight: 400;
    line-height: 1;
    text-decoration: none !important;
    white-space: nowrap;
    transition: 0.2s ease;
    box-sizing: border-box;
}

/* Кнопка "Завершить оформление заказа" */
#block-vesta-theme-content form.commerce-checkout-flow[action$="/review"] .layout-region-checkout-footer .button--primary {
    border: 1px solid var(--black);
    background: var(--black);
    color: var(--white);
}

#block-vesta-theme-content form.commerce-checkout-flow[action$="/review"] .layout-region-checkout-footer .button--primary:hover {
    background: var(--light-black);
    border-color: var(--light-black);
    color: #fff;
}

/* Ссылка "Назад" */
#block-vesta-theme-content form.commerce-checkout-flow[action$="/review"] .layout-region-checkout-footer .link--previous {
    border: 1px solid var(--black);
    background: #fff;
    color: var(--black) !important;
}

#block-vesta-theme-content form.commerce-checkout-flow[action$="/review"] .layout-region-checkout-footer .link--previous:hover {
    background: var(--black);
    color: #fff !important;
}

/* Фокус */
#block-vesta-theme-content form.commerce-checkout-flow[action$="/review"] .layout-region-checkout-footer .button--primary:focus,
#block-vesta-theme-content form.commerce-checkout-flow[action$="/review"] .layout-region-checkout-footer .link--previous:focus,
#block-vesta-theme-content form.commerce-checkout-flow[action$="/review"] .checkout-review-edit-link a:focus {
    outline: none;
    box-shadow: 0 0 0 1px rgba(89, 45, 35, 0.18);
}

/* Ошибки, если будут */
#block-vesta-theme-content form.commerce-checkout-flow[action$="/review"] input.error,
#block-vesta-theme-content form.commerce-checkout-flow[action$="/review"] textarea.error,
#block-vesta-theme-content form.commerce-checkout-flow[action$="/review"] select.error,
#block-vesta-theme-content form.commerce-checkout-flow[action$="/review"] input[aria-invalid="true"],
#block-vesta-theme-content form.commerce-checkout-flow[action$="/review"] textarea[aria-invalid="true"],
#block-vesta-theme-content form.commerce-checkout-flow[action$="/review"] select[aria-invalid="true"] {
    border-color: #c43a3a !important;
    box-shadow: 0 0 0 1px rgba(196, 58, 58, 0.18) !important;
}

#block-vesta-theme-content form.commerce-checkout-flow[action$="/review"] .layout-region-checkout-footer .form-actions {
    display: flex;
    gap: 12px;
    align-items: center;
}

#block-vesta-theme-content form.commerce-checkout-flow[action$="/review"] .layout-region-checkout-footer .link--previous {
    order: 1;
}

#block-vesta-theme-content form.commerce-checkout-flow[action$="/review"] .layout-region-checkout-footer .button--primary {
    order: 2;
}

/* =========================
   HEADER DROPDOWN MENU
   ========================= */

#header .header-bottom .region-navigation .nav-item.dropdown {
    position: relative;
}

/* Ссылка "Каталог" */
#header .header-bottom .region-navigation .nav-item.dropdown > .nav-link.dropdown-toggle {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding-right: 0;
}

/* Убираем возможную стрелку в ::before */
#header .header-bottom .region-navigation .nav-item.dropdown > .nav-link.dropdown-toggle::before {
    content: none;
}

/* Кастомная стрелка справа */
#header .header-bottom .region-navigation .nav-item.dropdown > .nav-link.dropdown-toggle::after {
    content: "";
    display: inline-block;
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
    margin-left: 0;
    background: url('/sites/all/themes/vesta_theme/image/arrow-up.svg') no-repeat center center;
    background-size: contain;
    border: 0;
    transition: transform 0.2s ease;
}

/* Стрелка вверх при открытом меню */
#header .header-bottom .region-navigation .nav-item.dropdown:hover > .nav-link.dropdown-toggle::after,
#header .header-bottom .region-navigation .nav-item.dropdown:focus-within > .nav-link.dropdown-toggle::after,
#header .header-bottom .region-navigation .nav-item.dropdown.show > .nav-link.dropdown-toggle::after,
#header .header-bottom .region-navigation .nav-item.dropdown > .nav-link.dropdown-toggle[aria-expanded="true"]::after {
    transform: rotate(-180deg);
}

/* Выпадающее меню */
#header .header-bottom .region-navigation .nav-item.dropdown > .dropdown-menu {
    display: block;
    position: absolute;
    left: 0;
    min-width: 257px;
    width: max-content;
    margin: 0;
    padding: 15px 0 15px;
    border: 0;
    border-radius: 0;
    background: #fff;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.08);
    z-index: 1000;

    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(10px);
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
}

/* Показ меню */
#header .header-bottom .region-navigation .nav-item.dropdown:hover > .dropdown-menu,
#header .header-bottom .region-navigation .nav-item.dropdown:focus-within > .dropdown-menu,
#header .header-bottom .region-navigation .nav-item.dropdown.show > .dropdown-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}

/* Элементы списка */
#header .header-bottom .region-navigation .dropdown-menu > li {
    margin: 0;
    padding: 0;
}

/* Ссылки в выпадающем меню */
#header .header-bottom .region-navigation .dropdown-menu .dropdown-item {
    display: block;
    padding: 10px 36px;
    color: #3a3736;
    font-family: 'Lora', serif;
    font-size: 23px;
    font-weight: 400;
    line-height: 1.25;
    white-space: nowrap;
    text-decoration: none;
    background: transparent;
    transition: background 0.2s ease, color 0.2s ease;
}

#header .header-bottom .region-navigation .dropdown-menu .dropdown-item:hover,
#header .header-bottom .region-navigation .dropdown-menu .dropdown-item:focus,
#header .header-bottom .region-navigation .dropdown-menu .dropdown-item.active {
    background: #f7f0ea;
    color: #1c1c1c;
}

/* На всякий случай убираем лишние bootstrap-отступы */
#header .header-bottom .region-navigation .dropdown-menu .nav-item {
    margin: 0;
}

/* =========================
   PRODUCT FULL PAGE FIX
   ========================= */

#block-vesta-theme-content .commerce-product--view-mode-full {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(320px, 0.9fr);
    gap: 40px 60px;
    align-items: stretch;
    /*max-width: 1200px;*/
    margin: 0 auto;
    padding-bottom: 40px;
    box-sizing: border-box;
}

#block-vesta-theme-content .commerce-product--view-mode-full > .block_left,
#block-vesta-theme-content .commerce-product--view-mode-full > .right,
#block-vesta-theme-content .commerce-product--view-mode-full > .bottom {
    min-width: 0;
}

/* Левая колонка */
#block-vesta-theme-content .commerce-product--view-mode-full > .block_left {
    grid-column: 1;
    grid-row: 1;
}

/* Правая колонка растягивается по высоте */
#block-vesta-theme-content .commerce-product--view-mode-full > .right {
    grid-column: 2;
    grid-row: 1;
    display: flex;
    flex-direction: column;
    height: 100%;
    align-items: center;
    text-align: center;
    padding: 10px 0;
}

/* Прижимаем форму вниз правой колонки */
#block-vesta-theme-content .commerce-product--view-mode-full .right .field--name-variations {
    margin-top: auto;
    width: 100%;
}

/* Описание снизу на всю ширину */
#block-vesta-theme-content .commerce-product--view-mode-full > .bottom {
    grid-column: 1 / -1;
    grid-row: 2;
    margin-top: 20px;
    padding-top: 28px;
    border-top: 1px solid rgba(89, 45, 35, 0.12);
}

/* Если есть дублирующий nav-slider внизу страницы — скрываем */
#block-vesta-theme-content .commerce-product--view-mode-full > .photoswipe-gallery.nav-slider {
    display: none !important;
}

/* =========================
   MAIN SLIDER
   ========================= */

/* Делаем сам слайдер меньше */
#block-vesta-theme-content .commerce-product--view-mode-full .block_left
> .photoswipe-gallery.field--name-field-image-product-view:not(.nav-slider) {
    position: relative;
    max-width: 620px;
    margin: 0 auto;
    padding: 0 60px;
    box-sizing: border-box;
}

/* Важно: обрезаем всё лишнее, чтобы картинки не вылезали за горизонт */
#block-vesta-theme-content .commerce-product--view-mode-full .block_left
> .photoswipe-gallery.field--name-field-image-product-view:not(.nav-slider) .slick-list {
    overflow: hidden !important;
}

/* Сами изображения */
#block-vesta-theme-content .commerce-product--view-mode-full .block_left
> .photoswipe-gallery.field--name-field-image-product-view:not(.nav-slider) img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: cover;
}

/* Убираем лишние отступы у слайдов */
#block-vesta-theme-content .commerce-product--view-mode-full .block_left
> .photoswipe-gallery.field--name-field-image-product-view:not(.nav-slider) .slick-slide {
    padding: 0;
}

/* Стрелки главного слайдера */
#block-vesta-theme-content .commerce-product--view-mode-full .block_left
> .photoswipe-gallery.field--name-field-image-product-view:not(.nav-slider) .slick-prev,
#block-vesta-theme-content .commerce-product--view-mode-full .block_left
> .photoswipe-gallery.field--name-field-image-product-view:not(.nav-slider) .slick-next {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 45px;
    height: 45px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 30;
    border: 1px solid rgba(89, 45, 35, 0.25);
    border-radius: 50%;
    background: #fff;
    cursor: pointer;
    opacity: 1;
}

#block-vesta-theme-content .commerce-product--view-mode-full .block_left
> .photoswipe-gallery.field--name-field-image-product-view:not(.nav-slider) .slick-prev {
    left: 10px;
}

#block-vesta-theme-content .commerce-product--view-mode-full .block_left
> .photoswipe-gallery.field--name-field-image-product-view:not(.nav-slider) .slick-next {
    right: 10px;
}

#block-vesta-theme-content .commerce-product--view-mode-full .block_left
> .photoswipe-gallery.field--name-field-image-product-view:not(.nav-slider) .slick-prev::before,
#block-vesta-theme-content .commerce-product--view-mode-full .block_left
> .photoswipe-gallery.field--name-field-image-product-view:not(.nav-slider) .slick-next::before {
    content: "";
    display: block;
    width: 45px;
    height: 45px;
    background-image: url("/sites/all/themes/vesta_theme/image/button.svg");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    font-size: 0;
    line-height: 0;
}

#block-vesta-theme-content .commerce-product--view-mode-full .block_left
> .photoswipe-gallery.field--name-field-image-product-view:not(.nav-slider) .slick-prev::before {
    transform: rotate(180deg);
}

/* =========================
   NAV SLIDER
   ========================= */

/* Навигация должна быть статичной */
#block-vesta-theme-content .commerce-product--view-mode-full .block_left > .nav-slider {
    margin-top: 14px;
    overflow: hidden;
}

/* Ставим трек в обычный ряд и запрещаем ему двигаться */
#block-vesta-theme-content .commerce-product--view-mode-full .block_left > .nav-slider .slick-list {
    overflow: hidden !important;
    padding: 0 !important;
}

#block-vesta-theme-content .commerce-product--view-mode-full .block_left > .nav-slider .slick-track {
    display: flex !important;
    flex-wrap: nowrap;
    justify-content: center;
    gap: 10px;
    width: 100% !important;
    transform: none !important;
    left: auto !important;
}

/* Убираем "клоны", из-за которых часто начинается смещение */
#block-vesta-theme-content .commerce-product--view-mode-full .block_left > .nav-slider .slick-cloned {
    display: none !important;
}

/* Превьюшки */
#block-vesta-theme-content .commerce-product--view-mode-full .block_left > .nav-slider .slick-slide {
    float: none !important;
    width: 100px !important;
    min-width: 100px !important;
    margin: 0 !important;
    cursor: pointer;
    opacity: 0.75;
    transition: 0.2s ease;
}

#block-vesta-theme-content .commerce-product--view-mode-full .block_left > .nav-slider .slick-slide.slick-current,
#block-vesta-theme-content .commerce-product--view-mode-full .block_left > .nav-slider .slick-slide:hover {
    opacity: 1;
}

#block-vesta-theme-content .commerce-product--view-mode-full .block_left > .nav-slider img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border: 1px solid rgba(89, 45, 35, 0.12);
    box-sizing: border-box;
}

#block-vesta-theme-content .commerce-product--view-mode-full .block_left > .nav-slider .slick-current img {
    border-color: var(--brown);
}

/* =========================
   RIGHT COLUMN CONTENT
   ========================= */

#block-vesta-theme-content .commerce-product--view-mode-full .right .h1-product {
    margin: 0 0 14px;
    color: var(--black);
    font-family: 'Lora', serif;
    font-size: 38px;
    font-weight: 500;
    line-height: 1.15;
    text-align: center;
}

#block-vesta-theme-content .commerce-product--view-mode-full .right .field--name-field-price {
    margin: 0 0 24px;
    color: var(--brown);
    font-family: 'Lora', serif;
    font-size: 24px;
    font-weight: 500;
    text-align: center;
}

#block-vesta-theme-content .commerce-product--view-mode-full .right form {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* Количество */
#block-vesta-theme-content .commerce-product--view-mode-full .right #edit-quantity-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    width: 100%;
    margin-bottom: 18px;
}

#block-vesta-theme-content .commerce-product--view-mode-full .right #edit-quantity-wrapper label {
    display: none;
}

#block-vesta-theme-content .commerce-product--view-mode-full .right #edit-quantity-wrapper .js-form-item {
    margin: 0;
}

#block-vesta-theme-content .commerce-product--view-mode-full .right #edit-quantity-wrapper input.form-number {
    width: 90px;
    height: 46px;
    padding: 0 10px;
    border: 1px solid rgba(89, 45, 35, 0.18);
    border-radius: 0;
    background: #fff;
    color: var(--black);
    font-family: 'Lora', serif;
    font-size: 16px;
    text-align: center;
    outline: none;
    box-shadow: none;
    appearance: none;
}

#block-vesta-theme-content .commerce-product--view-mode-full .right #edit-quantity-wrapper input.form-number:focus {
    border-color: var(--brown);
    box-shadow: 0 0 0 1px rgba(89, 45, 35, 0.15);
}

/* +/- */
#block-vesta-theme-content .commerce-product--view-mode-full .right .btn-minus,
#block-vesta-theme-content .commerce-product--view-mode-full .right .btn-plus {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border: 1px solid var(--black);
    color: var(--black);
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
    user-select: none;
    transition: 0.2s ease;
    background: #fff;
}

#block-vesta-theme-content .commerce-product--view-mode-full .right .btn-minus:hover,
#block-vesta-theme-content .commerce-product--view-mode-full .right .btn-plus:hover {
    background: var(--black);
    color: #fff;
}

/* Кнопка в корзину */
#block-vesta-theme-content .commerce-product--view-mode-full .right .form-actions {
    width: 100%;
    display: flex;
    justify-content: center;
    margin: 0;
    padding: 0;
}

#block-vesta-theme-content .commerce-product--view-mode-full .right .button--add-to-cart,
#block-vesta-theme-content .commerce-product--view-mode-full .right .btn.btn-primary {
    width: 100%;
    max-width: 280px;
    height: 50px;
    border: 0;
    border-radius: 0;
    background: var(--black);
    color: var(--white);
    font-family: 'Lora', serif;
    font-size: 18px;
    font-weight: 400;
    cursor: pointer;
    transition: 0.2s ease;
}

#block-vesta-theme-content .commerce-product--view-mode-full .right .button--add-to-cart:hover,
#block-vesta-theme-content .commerce-product--view-mode-full .right .btn.btn-primary:hover {
    background: var(--light-black);
}

/* =========================
   DESCRIPTION
   ========================= */

#block-vesta-theme-content .commerce-product--view-mode-full .bottom .field--name-body {
    max-width: 980px;
    margin: 0;
    color: #3a3736;
    font-family: 'Lora', serif;
    font-size: 18px;
    line-height: 1.7;
}

#block-vesta-theme-content .commerce-product--view-mode-full .bottom .field--name-body p {
    margin: 0 0 16px;
}

.floating-actions {
    position: fixed;
    right: 8px;
    bottom: 8px;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-right: 25px;
}

.floating-action {
    width: 50px;
    height: 50px;
    display: block;
    border: 0;
    border-radius: 0;
    padding: 0;
    margin: 0;
    box-shadow: none;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: 50px 50px;
    cursor: pointer;
    text-decoration: none;
}

/* Telegram */
.floating-action-tg {
    background-color: #2a9ded;
    background-image: url('/sites/all/themes/vesta_theme/image/tg.svg');
}

/* Max */
.floating-action-max {
    background-color: #5b40ff;
    background-image: url('/sites/all/themes/vesta_theme/image/max.svg');
}

/* Наверх */
.floating-action-top {
    background-color: #f6efe4;
    position: static !important;
    display: flex;
    align-items: center;
    justify-content: center;
}

.floating-action-top::before {
    content: "";
    width: 12px;
    height: 12px;
    border-top: 2px solid #111;
    border-right: 2px solid #111;
    transform: rotate(-45deg);
    margin-top: 4px;
}

/* Перебиваем старые стили */
#scrollToTop {
    position: static !important;
    width: 50px !important;
    height: 50px !important;
    min-width: 50px !important;
    min-height: 50px !important;
    right: auto !important;
    bottom: auto !important;
    top: auto !important;
    left: auto !important;
    border-radius: 0 !important;
    padding: 0 !important;
    background-color: #f6efe4;
}

.floating-action:hover {
    opacity: 0.92;
}

/* =========================
   ADD TO CART MODAL
   ========================= */

.ui-dialog.ui-dialog-buttons {
    max-width: 790px !important;
    width: calc(100% - 40px) !important;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: #fff;
    overflow: hidden;
    padding: 0;
    box-sizing: border-box;
}

/* TITLEBAR */
.ui-dialog.ui-dialog-buttons .ui-dialog-titlebar {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-top: 80px;
    padding-left: 90px;
    padding-right: 90px;
    padding-bottom: 0;
    border: 0;
    background: #fff;
    border-radius: 0;
}

/* TITLE */
.ui-dialog.ui-dialog-buttons .ui-dialog-title {
    position: relative;
    display: block;
    margin: 0 0 20px;
    text-align: center;
    font-family: var(--font-family);
    font-size: 38px;
    font-weight: 400;
    color: #3a3736;
    line-height: 1.15;
}

/* line + diamond above title */
.ui-dialog.ui-dialog-buttons .ui-dialog-title::before {
    content: "";
    position: absolute;
    top: -20px;
    left: 50%;
    transform: translateX(-50%);
    width: 250px;
    height: 1px;
    background: linear-gradient(
            to right,
            #5a5a5a 0 calc(50% - 12px),
            transparent calc(50% - 12px) calc(50% + 12px),
            #5a5a5a calc(50% + 12px) 100%
    );
    z-index: 1;
}

.ui-dialog.ui-dialog-buttons .ui-dialog-title::after {
    content: "";
    position: absolute;
    top: -24px;
    left: 50%;
    width: 10px;
    height: 10px;
    background: #222;
    transform: translateX(-50%) rotate(45deg);
    z-index: 2;
}

/* CLOSE BUTTON */
.ui-dialog.ui-dialog-buttons .ui-dialog-titlebar-close {
    position: absolute;
    top: 18px;
    right: 18px;
    width: 28px;
    height: 28px;
    padding: 0;
    margin: 0;
    border: 0;
    border-radius: 0;
    background-color: transparent;
    background-image: url('/sites/all/themes/vesta_theme/image/close.svg');
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    opacity: 1;
    box-shadow: none;
    font-size: 0;
    line-height: 0;
    color: transparent;
    cursor: pointer;
    appearance: none;
}

.ui-dialog.ui-dialog-buttons .ui-dialog-titlebar-close:focus,
.ui-dialog.ui-dialog-buttons .ui-dialog-titlebar-close:active {
    outline: none;
    box-shadow: none;
}

/* CONTENT */
.ui-dialog.ui-dialog-buttons .ui-dialog-content,
.ui-dialog.ui-dialog-buttons #drupal-modal {
    padding: 0 90px 24px;
    border: 0;
    background: #fff;
    text-align: center;
    box-sizing: border-box;
}

/* TEXT INSIDE MODAL */
.ui-dialog.ui-dialog-buttons #drupal-modal > div,
.ui-dialog.ui-dialog-buttons #drupal-modal {
    font-family: var(--font-family);
    font-size: 18px;
    color: #3a3736;
    line-height: 1.45;
}

.ui-dialog.ui-dialog-buttons #drupal-modal a {
    color: var(--brown);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.ui-dialog.ui-dialog-buttons #drupal-modal a:hover {
    color: #000;
}

/* BUTTON PANE */
.ui-dialog.ui-dialog-buttons .ui-dialog-buttonpane {
    margin: 0;
    padding: 0 90px 80px;
    border: 0;
    background: #fff;
}

.ui-dialog.ui-dialog-buttons .ui-dialog-buttonset.form-actions {
    display: flex;
    gap: 14px;
    width: 100%;
    margin: 0;
    justify-content: center;
}

/* BUTTONS */
.ui-dialog.ui-dialog-buttons .ui-dialog-buttonset.form-actions button {
    flex: 1 1 0;
    min-width: 0;
    height: 60px;
    padding: 0 20px;
    border-radius: 0;
    box-shadow: none;
    font-family: var(--font-family);
    font-size: 18px;
    font-weight: 400;
    line-height: 1;
    cursor: pointer;
    transition: 0.2s ease;
    appearance: none;
    -webkit-appearance: none;
}

/* PRIMARY BUTTON */
.ui-dialog.ui-dialog-buttons .ui-dialog-buttonset.form-actions .button--primary {
    border: 0;
    background: var(--black);
    color: var(--white);
}

.ui-dialog.ui-dialog-buttons .ui-dialog-buttonset.form-actions .button--primary:hover {
    background: #2b2b2b;
}

/* SECONDARY BUTTON */
.ui-dialog.ui-dialog-buttons .ui-dialog-buttonset.form-actions .button--secondary {
    border: 1px solid var(--black);
    background: #fff;
    color: var(--black);
}

.ui-dialog.ui-dialog-buttons .ui-dialog-buttonset.form-actions .button--secondary:hover {
    background: #f7f7f7;
}

/* hide duplicate buttons inside content if they appear */
.ui-dialog.ui-dialog-buttons #drupal-modal .form-actions {
    display: none !important;
}

/* Убираем внутренний скролл в модалке добавления в корзину */
.ui-dialog.ui-dialog-buttons,
.ui-dialog.ui-dialog-buttons .ui-dialog-content,
.ui-dialog.ui-dialog-buttons #drupal-modal {
    overflow: hidden !important;
    overflow-y: hidden !important;
}

/* На всякий случай скрываем скроллбар в разных браузерах */
.ui-dialog.ui-dialog-buttons .ui-dialog-content {
    scrollbar-width: none;      /* Firefox */
    -ms-overflow-style: none;    /* старый Edge / IE */
}

.ui-dialog.ui-dialog-buttons .ui-dialog-content::-webkit-scrollbar,
.ui-dialog.ui-dialog-buttons #drupal-modal::-webkit-scrollbar {
    width: 0;
    height: 0;
}

/* =========================
   АДАПТИВ МОДАЛЬНОГО ОКНА
   ========================= */

/* ── 1199px ── */
@media (max-width: 1199px) {
    .ui-dialog.ui-dialog-buttons {
        max-width: 680px !important;
    }

    .ui-dialog.ui-dialog-buttons .ui-dialog-titlebar {
        padding-top: 60px;
        padding-left: 60px;
        padding-right: 60px;
    }

    .ui-dialog.ui-dialog-buttons .ui-dialog-title {
        font-size: 32px;
    }

    .ui-dialog.ui-dialog-buttons .ui-dialog-content,
    .ui-dialog.ui-dialog-buttons #drupal-modal {
        padding: 0 60px 20px;
    }

    .ui-dialog.ui-dialog-buttons .ui-dialog-buttonpane {
        padding: 0 60px 60px;
    }
}

/* ── 991px ── */
@media (max-width: 991px) {
    .ui-dialog.ui-dialog-buttons {
        max-width: 560px !important;
    }

    .ui-dialog.ui-dialog-buttons .ui-dialog-titlebar {
        padding-top: 50px;
        padding-left: 40px;
        padding-right: 40px;
    }

    .ui-dialog.ui-dialog-buttons .ui-dialog-title {
        font-size: 28px;
        margin-bottom: 16px;
    }

    .ui-dialog.ui-dialog-buttons .ui-dialog-content,
    .ui-dialog.ui-dialog-buttons #drupal-modal {
        padding: 0 40px 18px;
        font-size: 16px;
    }

    .ui-dialog.ui-dialog-buttons .ui-dialog-buttonpane {
        padding: 0 40px 50px;
    }

    .ui-dialog.ui-dialog-buttons .ui-dialog-buttonset.form-actions button {
        height: 52px;
        font-size: 16px;
    }
}

/* ── 767px ── */
@media (max-width: 767px) {

    /* ===== Фотогалерея (767px и меньше) ===== */
    .photogallery-section {
        padding: 40px 0;
    }

    /* Скрываем служебные заголовки Drupal-ноды и метаданные (автор, дата), чтобы они не мешали */
    #block-vesta-theme-photogallerys-on-front article.node--type-photogallery > h2,
    #block-vesta-theme-photogallerys-on-front .node__meta {
        display: none !important;
    }

    /* Задаем сетку в 2 колонки для контейнера с картинками */
    .photogallery-section .photoswipe-gallery.field--name-field-photogallery-images {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important; /* Строго 2 колонки */
        gap: 16px !important; /* Зазор между фотографиями */
        width: 100% !important;
        padding: 0 !important;
        margin: 0 0 30px 0 !important;
    }

    /* Сбрасываем возможные Drupal-флоаты и лишние отступы у ячеек */
    .photogallery-section .field--name-field-photogallery-images .field__item {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* Адаптируем ссылки-обертки Photoswipe */
    .photogallery-section .field--name-field-photogallery-images .field__item a.photoswipe {
        display: block !important;
        width: 100% !important;
        height: 100% !important;
    }

    /* Заставляем картинки растягиваться и заполнять ячейки без пустых полей */
    .photogallery-section .field--name-field-photogallery-images .field__item img {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        aspect-ratio: 1 / 1 !important;
        object-fit: cover !important;
        display: block !important;
    }

    /* ===== Catalog (Адаптация под 767px) ===== */
    #catalog-block {
        padding: 40px 0;
    }

    #block-vesta-theme-views-catalog-front .block-title {
        font-size: 26px;
    }

    /* Перестраиваем сетку на 2 колонки "от края до края" */
    #block-vesta-theme-views-catalog-front .view-content {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 20px 16px !important;
        width: 100% !important;
        padding: 0 !important;
    }

    /* Карточка занимает всю ширину выделенной ей ячейки */
    #block-vesta-theme-views-catalog-front .views-row {
        width: 100% !important;
        margin: 0 !important;
    }

    #block-vesta-theme-views-catalog-front .taxonomy-term {
        width: 100% !important;
    }

    /* Картинка растягивается на всю ширину ячейки без пустых полей */
    #block-vesta-theme-views-catalog-front .field--name-field-catalog-image img {
        width: 100% !important;
        aspect-ratio: 150 / 135 !important;
        object-fit: cover !important;
    }

    /* Заголовки категорий */
    #block-vesta-theme-views-catalog-front .field--name-taxonomy-term-title h2,
    .view-id-catalog.view-display-id-page .field--name-taxonomy-term-title h2 {
        font-size: 16px;
        line-height: 1.3;
    }

    .ui-dialog.ui-dialog-buttons {
        max-width: calc(100% - 32px) !important;
        width: calc(100% - 32px) !important;
        /* Центрируем: сбрасываем inline left, задаём через margin */
        left: 16px !important;
        right: 16px !important;
    }

    .ui-dialog.ui-dialog-buttons .ui-dialog-titlebar {
        padding-top: 44px;
        padding-left: 28px;
        padding-right: 28px;
    }

    .ui-dialog.ui-dialog-buttons .ui-dialog-title {
        font-size: 24px;
        margin-bottom: 12px;
    }

    .ui-dialog.ui-dialog-buttons .ui-dialog-content,
    .ui-dialog.ui-dialog-buttons #drupal-modal {
        padding: 0 28px 16px;
        font-size: 15px;
    }

    .ui-dialog.ui-dialog-buttons .ui-dialog-buttonpane {
        padding: 0 28px 40px;
    }

    .ui-dialog.ui-dialog-buttons .ui-dialog-buttonset.form-actions {
        flex-direction: column;
        gap: 10px;
    }

    .ui-dialog.ui-dialog-buttons .ui-dialog-buttonset.form-actions button {
        height: 48px;
        font-size: 15px;
        flex: none;
        width: 100%;
    }

    /* ===== Раздел Доставка и Оплата (767px) ===== */
    .delivery-section {
        padding: 40px 0;
    }

    /* Главные заголовки секции */
    .delivery-section .field--name-field-block-delivery-title1 {
        font-size: 16px;
        text-align: center;
        margin-bottom: 8px;
        text-transform: uppercase;
    }

    .delivery-section .field--name-field-block-delivery-title2 {
        font-size: 24px;
        text-align: center;
        margin-bottom: 40px;
    }

    /* Включаем двухколоночную сетку для родительского контейнера */
    .delivery-section .field--name-field-services.field__items {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important; /* Строго 2 колонки одинаковой ширины */
        gap: 30px 20px !important; /* Отступы: 30px между рядами, 20px между колонками */
        width: 100% !important;
        padding: 0 !important;
    }

    /* Сбрасываем дефолтное поведение Drupal-элементов */
    .delivery-section .field--name-field-services > .field__item {
        flex: none !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    /* Стилизация самой карточки внутри ячейки */
    .delivery-section .paragraph--type--services {
        text-align: center; /* Центрируем иконку и тексты */
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    /* Иконка */
    .delivery-section .field--name-field-delivery-icon {
        margin-bottom: 15px;
    }

    .delivery-section .field--name-field-delivery-icon img {
        width: 50px; /* Задайте нужный размер иконок для мобильных */
        height: 50px;
        object-fit: contain;
    }

    /* Заголовок шага */
    .delivery-section .field--name-field-delivery-title {
        font-size: 18px;
        font-weight: 500;
        margin-bottom: 10px;
    }

    /* Описание шага */
    .delivery-section .field--name-field-delivery-text {
        font-size: 14px;
        line-height: 1.4;
    }

    /* Опциональный хак: растягиваем 3-й элемент на всю ширину,
       если не хотите, чтобы он оставлял пустую ячейку справа */
    /*
    .delivery-section .field--name-field-services > .field__item:nth-child(3) {
        grid-column: 1 / span 2;
        max-width: 500px;
        margin: 0 auto;
    }
    */
}

/* ── 565px ── */
@media (max-width: 565px) {
    .ui-dialog.ui-dialog-buttons {
        max-width: calc(100% - 24px) !important;
        width: calc(100% - 24px) !important;
        left: 12px !important;
        right: 12px !important;
    }

    .ui-dialog.ui-dialog-buttons .ui-dialog-titlebar {
        padding-top: 36px;
        padding-left: 20px;
        padding-right: 20px;
    }

    .ui-dialog.ui-dialog-buttons .ui-dialog-title {
        font-size: 20px;
        margin-bottom: 10px;
    }

    .ui-dialog.ui-dialog-buttons .ui-dialog-title::before {
        width: 180px;
    }

    .ui-dialog.ui-dialog-buttons .ui-dialog-content,
    .ui-dialog.ui-dialog-buttons #drupal-modal {
        padding: 0 20px 14px;
        font-size: 14px;
    }

    .ui-dialog.ui-dialog-buttons #drupal-modal > div,
    .ui-dialog.ui-dialog-buttons #drupal-modal {
        font-size: 14px;
    }

    .ui-dialog.ui-dialog-buttons .ui-dialog-buttonpane {
        padding: 0 20px 30px;
    }

    .ui-dialog.ui-dialog-buttons .ui-dialog-buttonset.form-actions button {
        height: 44px;
        font-size: 14px;
    }

    .ui-dialog.ui-dialog-buttons .ui-dialog-titlebar-close {
        top: 12px;
        right: 12px;
        width: 22px;
        height: 22px;
    }
}

/* =========================
   ЦЕНТРИРОВАНИЕ МОДАЛКИ
   (перебиваем inline-стили jQuery UI)
   ========================= */

.ui-dialog.ui-dialog-buttons {
    position: fixed !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    margin: 0 !important;
}

/* =========================
   MOBILE HEADER
   ========================= */

#header-mob {
    position: sticky;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;

    width: 100%;
    min-height: 60px;
    padding: 10px 14px;

    background: #fff;
    border-bottom: 1px solid rgba(89, 45, 35, 0.12);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);

    box-sizing: border-box;
    gap: 10px;
}

/* Общая выравнивалка внутри шапки */
#header-mob > div {
    display: flex;
    align-items: center;
    box-sizing: border-box;
}

/* ЛОГО */
#header-mob .col-logo {
    flex: 1 1 auto;
    justify-content: center;
    min-width: 0;
}

#header-mob .col-logo a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}

#header-mob .col-logo img {
    display: block;
    width: auto;
    max-width: 120px;
    max-height: 38px;
    object-fit: contain;
}

/* КНОПКА МЕНЮ */
#header-mob .col-nav {
    flex: 0 0 40px;
    justify-content: flex-start;
}

#header-mob .col-nav a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    text-decoration: none;
    border: 1px solid rgba(89, 45, 35, 0.18);
    background: #fff;
    transition: 0.2s ease;
    box-sizing: border-box;
}

#header-mob .col-nav a:hover {
    border-color: var(--brown);
    background: #f8f5f2;
}

#header-mob .col-nav img {
    width: 20px;
    height: 20px;
    display: block;
}

/* ТЕЛЕФОН */
#header-mob .col-phone {
    flex: 0 0 auto;
    justify-content: flex-end;
}

#header-mob .col-phone .contact-item {
    display: flex;
    align-items: center;
}

#header-mob .col-phone a {
    color: var(--black);
    text-decoration: none;
    font-family: var(--font-family);
    font-size: 13px;
    font-weight: 400;
    line-height: 1;
    white-space: nowrap;
    transition: color 0.2s ease;
}

#header-mob .col-phone a:hover {
    color: var(--brown);
}

/* КОРЗИНА */
#header-mob .col-cart {
    flex: 0 0 40px;
    justify-content: flex-end;
}

#header-mob .col-cart .region-cart,
#header-mob .col-cart .block-commerce-cart,
#header-mob .col-cart .cart--cart-block,
#header-mob .col-cart .cart-block--summary {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    width: 100%;
}

#header-mob .col-cart .cart-block--link__expand {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    background: #fff;
    border: 1px solid rgba(89, 45, 35, 0.18);
    text-decoration: none;
    transition: 0.2s ease;
    box-sizing: border-box;
}

#header-mob .col-cart .cart-block--link__expand:hover {
    background: #f8f5f2;
    border-color: var(--brown);
}

#header-mob .col-cart .cart-block--summary__icon {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    line-height: 0;
}

#header-mob .col-cart .cart-block--summary__icon img {
    display: block;
    width: 18px;
    height: 18px;
    object-fit: contain;
}

#header-mob .col-cart .cart-block--summary__count {
    top: -7px;
    right: -8px;

    width: 18px;
    height: 18px;

    border: 1px solid #fff;
    border-radius: 50%;
    background: var(--brown);
    color: #fff;

    font-family: var(--second-family);
    font-size: 10px;
    font-weight: 600;
    line-height: 1;
}

/* =========================
   MOBILE HEADER — CART FIX
   ========================= */

#header-mob .col-cart .cart-block--link__expand {
    background: var(--black);
    border-color: var(--black);
}

#header-mob .col-cart .cart-block--link__expand:hover {
    background: var(--light-black);
    border-color: var(--light-black);
}

#header-mob .col-cart .cart-block--summary__icon img {
    filter: brightness(0) invert(1);
}

/* счетчик товара */
#header-mob .col-cart .cart-block--summary__count {
    background: var(--brown);
    border-color: #fff;
    color: #fff;
}

/* =========================
   MOBILE HEADER FIXED TOP
   ========================= */

:root {
    --header-mob-height: 60px;
}

@media (max-width: 991.98px) {
    /* чтобы контент не прятался под fixed header */
    body {
        padding-top: var(--header-mob-height);
    }

    /* сам хедер */
    #header-mob {
        position: fixed !important; /* перебивает Bootstrap position-sticky */
        top: 0;
        left: 0;
        right: 0;
        z-index: 1035;
        width: 100%;
        min-height: var(--header-mob-height);
    }

    /* если нужен больший контроль высоты */
    #header-mob {
        height: var(--header-mob-height);
    }
}

/* Если открыт Drupal toolbar */
body.toolbar-horizontal #header-mob {
    top: 39px !important;
}

body.toolbar-horizontal.toolbar-tray-open #header-mob {
    top: 79px !important;
}

/* Подстраховка, если body уже сдвигается в админке */
body.toolbar-horizontal {
    padding-top: calc(var(--header-mob-height) + 39px);
}

body.toolbar-horizontal.toolbar-tray-open {
    padding-top: calc(var(--header-mob-height) + 79px);
}

/* =========================
   MOBILE BURGER MENU / OFFCANVAS
   ========================= */

#offcanvasNav.offcanvas.offcanvas-start {
    --bs-offcanvas-width: 420px;
    --bs-offcanvas-bg: #fff;

    width: min(100vw, 420px) !important;
    background: #fff;
    border-right: 1px solid rgba(89, 45, 35, 0.12);
    box-shadow: 12px 0 40px rgba(0, 0, 0, 0.10);
    color: var(--black);
    font-family: var(--font-family);
    overflow-x: hidden;
}

/* Шапка меню */
#offcanvasNav .offcanvas-header {
    position: relative;
    padding: 16px 18px 14px;
    border-bottom: 1px solid rgba(89, 45, 35, 0.12);
    background: #fff;
}

/* Логотип */
#offcanvasNav .offcanvas-header .logo {
    display: flex;
    align-items: center;
    padding-right: 50px; /* чтобы логотип не залезал под крестик */
}

#offcanvasNav .offcanvas-header .logo a {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
}

#offcanvasNav .offcanvas-header .logo img {
    display: block;
    max-width: 128px;
    height: auto;
}

/* Кнопка закрытия */
#offcanvasNav .offcanvas-header .btn-close {
    position: absolute;
    top: 18px;
    right: 18px;
    margin: 0;
    padding: 0;
    width: 28px;
    height: 28px;
    border: 0;
    border-radius: 0;
    background-color: transparent;
    background-image: url('/sites/all/themes/vesta_theme/image/close.svg');
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    opacity: 1;
    box-shadow: none;
    font-size: 0;
    line-height: 0;
    color: transparent;
    cursor: pointer;
    z-index: 2;
}

#offcanvasNav .offcanvas-header .btn-close:focus,
#offcanvasNav .offcanvas-header .btn-close:active {
    outline: none;
    box-shadow: none;
}

/* Тело меню */
#offcanvasNav .offcanvas-body {
    padding: 18px;
    overflow-x: hidden;
    background: #fff;
}

/* Убираем contextual в меню */
#offcanvasNav .contextual {
    display: none !important;
}

/* =========================
   SEARCH IN MENU
   ========================= */

#offcanvasNav .region-search {
    margin-bottom: 18px;
}

#offcanvasNav .search-api-page-block-form-search form {
    display: flex;
    align-items: stretch;
    gap: 0;
    margin: 0;
    margin-top: 20px;
}

#offcanvasNav .search-api-page-block-form-search .form-item-keys {
    flex: 1 1 auto;
    margin: 0;
}

#offcanvasNav .search-api-page-block-form-search input.form-search {
    width: 100%;
    height: 48px;
    padding: 0 14px;
    border: 1px solid var(--black);
    border-right: 0;
    border-radius: 0;
    background: #fff;
    color: var(--black);
    font-family: var(--font-family);
    font-size: 15px;
    box-shadow: none;
    outline: none;
    appearance: none;
}

#offcanvasNav .search-api-page-block-form-search input.form-search::placeholder {
    color: #777;
    opacity: 1;
}

#offcanvasNav .search-api-page-block-form-search input.form-search:focus {
    border-color: #2b2b2b;
    box-shadow: none;
}

#offcanvasNav .search-api-page-block-form-search .form-actions {
    margin: 0;
}

#offcanvasNav .search-api-page-block-form-search .search-form__submit {
    width: 108px;
    height: 48px;
    padding: 0;
    border: 1px solid var(--black);
    border-radius: 0;
    background: var(--black);
    color: var(--white);
    font-family: var(--font-family);
    font-size: 15px;
    font-weight: 400;
    cursor: pointer;
    transition: 0.2s ease;
}

#offcanvasNav .search-api-page-block-form-search .search-form__submit:hover {
    background: var(--light-black);
    border-color: var(--light-black);
}

/* =========================
   MAIN NAVIGATION
   ========================= */

#offcanvasNav .region-navigation {
    margin-top: 8px;
}

#offcanvasNav .region-navigation nav {
    display: block;
}

#offcanvasNav .region-navigation ul.nav {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

/* верхний уровень */
#offcanvasNav .region-navigation .nav > .nav-item {
    margin: 0;
    padding: 0;
    border-bottom: 1px solid rgba(89, 45, 35, 0.10);
}

#offcanvasNav .region-navigation .nav > .nav-item:last-child {
    border-bottom: 0;
}

#offcanvasNav .region-navigation .nav > .nav-item > .nav-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 0;
    color: var(--black);
    font-family: var(--font-family);
    font-size: 18px;
    font-weight: 400;
    line-height: 1.3;
    text-decoration: none;
    transition: color 0.2s ease;
}

#offcanvasNav .region-navigation .nav > .nav-item > .nav-link:hover,
#offcanvasNav .region-navigation .nav > .nav-item > .nav-link.is-active,
#offcanvasNav .region-navigation .nav > .nav-item > .nav-link[aria-current="page"] {
    color: var(--brown);
}

/* стрелка у каталога */
#offcanvasNav .region-navigation .nav > .nav-item.dropdown > .nav-link.dropdown-toggle::after {
    margin-left: 10px;
    border-top-color: var(--brown);
    border-right-color: transparent;
    border-left-color: transparent;
    opacity: 0.9;
}

/* подменю */
#offcanvasNav .region-navigation .dropdown-menu {
    position: static !important;
    float: none;
    width: 100%;
    margin: 0;
    padding: 0 0 10px 16px;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

#offcanvasNav .region-navigation .dropdown-menu .nav-item {
    border-bottom: 0;
}

#offcanvasNav .region-navigation .dropdown-menu .dropdown-item {
    display: block;
    padding: 7px 0;
    color: #3a3736;
    font-family: var(--font-family);
    font-size: 15px;
    font-weight: 400;
    line-height: 1.35;
    text-decoration: none;
    white-space: normal;
    transition: color 0.2s ease;
}

#offcanvasNav .region-navigation .dropdown-menu .dropdown-item:hover,
#offcanvasNav .region-navigation .dropdown-menu .dropdown-item:focus {
    background: transparent;
    color: var(--brown);
}

#offcanvasNav .region-navigation .dropdown-menu .dropdown-item.is-active,
#offcanvasNav .region-navigation .dropdown-menu .dropdown-item[aria-current="page"] {
    color: var(--brown);
}

/* =========================
   CONTACTS
   ========================= */

#offcanvasNav .contact-item {
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid rgba(89, 45, 35, 0.10);
    margin-bottom: 20px;
}

#offcanvasNav .contact-item-label {
    margin-bottom: 8px;
    color: var(--brown);
    font-family: var(--second-family);
    font-size: 12px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

#offcanvasNav .contact-item-el a {
    color: var(--black);
    font-family: var(--font-family);
    font-size: 18px;
    font-weight: 400;
    text-decoration: none;
    white-space: nowrap;
    transition: color 0.2s ease;
}

#offcanvasNav .contact-item-el a:hover {
    color: var(--brown);
}

/* =========================
   SOCIALS
   ========================= */

#offcanvasNav .msngrs {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 12px;
}

#offcanvasNav .msngrs .item a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 0 14px;
    border: 1px solid rgba(89, 45, 35, 0.18);
    background: #fff;
    color: var(--black);
    font-family: var(--font-family);
    font-size: 14px;
    text-decoration: none;
    transition: 0.2s ease;
}

#offcanvasNav .msngrs .item a:hover {
    background: var(--black);
    border-color: var(--black);
    color: var(--white);
}

/* =========================
   SCROLLBAR
   ========================= */

#offcanvasNav .offcanvas-body {
    scrollbar-width: thin;
    scrollbar-color: rgba(89, 45, 35, 0.35) transparent;
}

#offcanvasNav .offcanvas-body::-webkit-scrollbar {
    width: 6px;
}

#offcanvasNav .offcanvas-body::-webkit-scrollbar-track {
    background: transparent;
}

#offcanvasNav .offcanvas-body::-webkit-scrollbar-thumb {
    background: rgba(89, 45, 35, 0.35);
    border-radius: 10px;
}

/* =========================================
   GLOBAL FIX: убираем горизонтальный скролл
   ========================================= */
html,
body,
#page {
    max-width: 100%;
    overflow-x: hidden;
}

img,
video,
iframe,
svg {
    max-width: 100%;
    height: auto;
}

* {
    box-sizing: border-box;
}

.ui-widget-overlay {
    z-index: 2000 !important;
}

.ui-dialog {
    z-index: 2001 !important;
}

/* =========================
   RESPONSIVE STYLES
   ========================= */

/* ===== 1399px ===== */
@media (max-width: 1399px) {

    /* Slider arrows closer */
    #slider-block button.slick-prev.slick-arrow {
        left: -50px;
    }
    #slider-block button.slick-next.slick-arrow {
        right: -50px;
    }

    /* Navigation gap */
    #header .header-bottom .region-navigation nav > ul,
    #header .header-bottom .region-navigation nav > .menu {
        gap: 0px;
    }

    /* Slider text */
    .field--name-field-slide-title p {
        font-size: 40px;
    }

    /* Promo card */
    #block-vesta-theme-block-promo-personalization .promo_content {
        width: 420px;
        height: auto;
        padding: 22px 30px 24px;
    }

    #block-vesta-theme-block-promo-personalization .field--name-field-promo-title {
        font-size: 32px;
    }

    /* Product full page */
    #block-vesta-theme-content .commerce-product--view-mode-full {
        gap: 30px 40px;
    }

    #block-vesta-theme-content .commerce-product--view-mode-full .right .h1-product {
        font-size: 32px;
    }

    /* Footer grid */
    #footer .footer-grid {
        column-gap: clamp(20px, 3vw, 50px);
    }

    /* Floating actions */
    .floating-actions {
        margin-right: 15px;
    }
}

/* ===== 1199px ===== */
@media (max-width: 1199px) {

    /* Оставляем стрелки внутри контейнера */
    #slider-block button.slick-prev.slick-arrow {
        left: 10px;
        z-index: 100;
    }
    #slider-block button.slick-next.slick-arrow {
        right: -73px;
        z-index: 100;
    }

    /* ДОБАВЛЕНО: Создаем "коридоры" по 65px по бокам слайда,
       чтобы контент не заезжал под стрелки (ширина стрелки 45px + отступ) */
    .node--type-slide.ds-2col {
        box-sizing: border-box;
    }

    /* Немного корректируем пропорции, чтобы контенту не было тесно */
    .node--type-slide .group-left {
        flex: 0 0 50%;
    }
    .node--type-slide .group-right {
        flex: 0 0 50%;
    }

    /* Slider arrows inside */
    #slider-block button.slick-prev.slick-arrow {
        left: -73px;
    }
    #slider-block button.slick-next.slick-arrow {
        right: -73px;
    }

    /* Navigation */
    /*#header .header-bottom .region-navigation nav > ul,*/
    /*#header .header-bottom .region-navigation nav > .menu {*/
    /*    gap: 22px;*/
    /*}*/

    #header .header-bottom .region-navigation nav > ul > li > a,
    #header .header-bottom .region-navigation nav > .menu > li > a {
        font-size: 14px;
    }

    #header .header-bottom .region-navigation .dropdown-menu .dropdown-item {
        font-size: 18px;
        padding: 8px 24px;
    }

    /* Cart button */
    #header .col-cart .cart-block--link__expand {
        min-width: 120px;
        padding: 0 14px;
        font-size: 14px;
    }

    /* Callback button */
    #header .col-callback a.btn.btn-primary.use-ajax {
        min-width: 120px;
        font-size: 12px;
    }

    /* Slider */
    .field--name-field-slide-title p {
        font-size: 36px;
        margin-bottom: 18px;
    }

    .field--name-body p {
        font-size: 15px;
        margin-bottom: 25px;
    }

    .field--name-field-slide-link a {
        padding: 14px 35px;
        font-size: 15px;
    }

    .node--type-slide .group-right .field--name-field-image img {
        height: 320px;
    }

    /* Intro */
    .intro-section .field--name-field-intro-title {
        font-size: 34px;
    }

    /* About */
    .about-section .field--name-field-title2 {
        font-size: 32px;
    }

    /* Delivery cards */
    .delivery-section .field--name-field-services {
        gap: 20px;
    }

    .delivery-section .field--name-field-delivery-title {
        font-size: 20px;
    }

    .delivery-section .field--name-field-delivery-text {
        font-size: 16px;
    }

    /* Webform */
    #webform .block-title {
        font-size: 32px;
    }

    #webform .webform-submission-form > .form-item,
    #webform .webform-submission-form > .form-wrapper,
    #webform .webform-submission-form > #edit-actions,
    #webform .webform-submission-form > #edit-actions--3 {
        flex: 0 0 calc((100% - 56px) / 4);
    }

    /* Promo */
    #block-vesta-theme-block-promo-personalization .promo_content {
        width: 380px;
        top: 20px;
        right: 20px;
        padding: 20px 24px;
    }

    #block-vesta-theme-block-promo-personalization .field--name-field-promo-title {
        font-size: 28px;
    }

    #block-vesta-theme-block-promo-personalization .field--name-field-promo-text {
        font-size: 16px;
    }

    /* Catalog grid 3 columns */
    #block-vesta-theme-views-catalog-front .view-content,
    .view-id-catalog.view-display-id-page .view-content {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 24px;
    }

    /* Product grid 3 columns */
    .view-id-tovary.view-display-id-page_2 .view-content {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 24px;
    }

    /* Contacts */
    .contacts-left {
        flex: 0 0 100%;
        width: 100%;
    }

    .contacts-title {
        font-size: 32px;
    }

    /* Product full page */
    #block-vesta-theme-content .commerce-product--view-mode-full {
        grid-template-columns: minmax(0, 1fr) minmax(280px, 0.85fr);
        gap: 24px 30px;
    }

    /* Photogallery */
    #block-vesta-theme-photogallerys-on-front .block-title {
        font-size: 32px;
    }

    /* Page title */
    #block-vesta-theme-page-title h1 {
        font-size: 32px;
    }

    /* Footer */
    #footer .footer-grid {
        grid-template-columns: repeat(2, 1fr);
        row-gap: 30px;
    }

    /* Modal */
    .modal .modal-header {
        padding-top: 60px;
        padding-left: 60px;
        padding-right: 60px;
    }

    .modal .modal-body {
        padding-left: 60px;
        padding-right: 60px;
        padding-bottom: 60px;
    }

    .modal .modal-title {
        font-size: 32px;
    }
}

/* =========================
   WEBFORM CHECKBOX FIX
   ========================= */

/* Базовые стили для всех разрешений */
#webform #edit-block-approval {
    order: 5;
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center;
    margin-top: 22px;
    overflow: visible;
}

#webform #edit-block-approval .webform-flex {
    flex: 0 0 auto;
    width: auto;
    max-width: 100%;
    justify-content: center;
    margin-top: 35px;
}

#webform #edit-block-approval .webform-flex--container {
    flex: 0 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
    max-width: 100%;
}

/* Сам чекбокс + текст - полная перезапись */
#webform .js-form-item-approval {
    display: flex !important;
    justify-content: flex-start !important;
    align-items: flex-start !important;
    gap: 10px;
    flex-wrap: nowrap;
    width: auto;
    max-width: 100% !important;
}

/* Чекбокс */
#webform .js-form-item-approval input[type="checkbox"] {
    flex: 0 0 16px !important;
    width: 16px !important;
    height: 16px !important;
    min-width: 16px !important;
    max-width: 16px !important;
    margin: 3px 0 0 0 !important;
    accent-color: #fff;
    align-self: flex-start;
}

/* Текст описания */
#webform .js-form-item-approval .description,
#webform .js-form-item-approval .webform-element-description,
#webform .js-form-item-approval .webform-element-description span {
    display: block !important;
    width: auto !important;
    max-width: 100% !important;
    margin: 0 !important;
    white-space: normal !important;
    word-wrap: break-word !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
    color: var(--white);
    font-family: var(--font-family);
    font-size: 14px;
    line-height: 1.4;
}

/* ===== 991px ===== */
@media (max-width: 991px) {

    #webform .webform-submission-form {
        gap: 24px;
    }

    #webform .js-form-item-webform-name,
    #webform .js-form-item-webform-phone {
        flex: 1 1 calc((100% - 24px) / 2);
    }

    #webform .js-form-item-message,
    #webform #edit-actions,
    #webform #edit-actions--2,
    #webform #edit-actions--3 {
        flex: 1 1 calc((100% - 24px) / 2);
    }

    #webform #edit-block-approval {
        justify-content: flex-start !important;
    }

    #webform .js-form-item-approval .webform-element-description span {
        white-space: normal;
    }

    /* SLIDER - убираем изображение, оставляем только текст */
    .node--type-slide.ds-2col {
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding: 40px 60px;
        min-height: 400px;
        text-align: center;
    }

    #slider-block .node--type-slide .group-left {
        padding-right: 0px;
        padding-top: 30px;
        padding-bottom: 30px;
    }

    .node--type-slide .group-left {
        flex: 0 0 auto;
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding-top: 40px;
        padding-bottom: 40px;
    }

    /* СКРЫВАЕМ ИЗОБРАЖЕНИЕ */
    .node--type-slide .group-right {
        display: none !important;
    }

    /* Текст теперь по центру */
    .field--name-field-slide-title p {
        font-size: 30px;
        text-align: center;
        margin-bottom: 16px;
    }

    .field--name-body p {
        font-size: 15px;
        text-align: center;
        max-width: 600px;
        margin: 0 auto 25px;
    }

    .field--name-field-slide-link {
        text-align: center;
    }

    .field--name-field-slide-link a {
        display: inline-block;
        padding: 14px 35px;
        font-size: 15px;
    }

    /* Стрелки слайдера */
    #slider-block button.slick-prev.slick-arrow {
        left: 10px;
    }
    #slider-block button.slick-next.slick-arrow {
        right: 10px;
    }
    #slider-block button.slick-prev.slick-arrow,
    #slider-block button.slick-next.slick-arrow {
        width: 38px !important;
        height: 38px !important;
    }
    #slider-block button.slick-prev.slick-arrow::before,
    #slider-block button.slick-next.slick-arrow::before {
        width: 38px;
        height: 38px;
    }

    #webform #edit-block-approval {
        padding: 0 10px;
        box-sizing: border-box;
    }

    #webform .js-form-item-approval {
        width: 100% !important;
        max-width: 100% !important;
    }

    #webform .js-form-item-approval .description,
    #webform .js-form-item-approval .webform-element-description,
    #webform .js-form-item-approval .webform-element-description span {
        font-size: 12px;
        line-height: 1.35;
        width: calc(100% - 26px) !important;
        max-width: calc(100% - 26px) !important;
        flex: 1 1 auto;
        min-width: 0;
    }

    #webform .js-form-item-approval input[type="checkbox"] {
        flex: 0 0 16px !important;
        width: 16px !important;
        min-width: 16px !important;
        max-width: 16px !important;
    }

    .promo_personalization-section {
        padding: 60px 0 0px;
    }

    /* Header desktop nav hide */
    #header .header-bottom .region-navigation {
        display: none;
    }

    /* Search field width */
    .col-search .search-api-page-block-form-search.is-open .form-item-keys input.form-search {
        width: 200px;
    }

    /* Slider layout stack */
    .node--type-slide.ds-2col {
        flex-direction: column;
        align-items: flex-start;
        padding: 30px 20px;
    }

    .node--type-slide .group-left {
        flex: 0 0 auto;
        width: 100%;
    }

    .node--type-slide .group-right {
        flex: 0 0 auto;
        width: 100%;
        justify-content: center;
        margin-top: 20px;
    }

    .node--type-slide .group-right .field--name-field-image img {
        height: 280px;
        width: 100%;
        object-fit: cover;
    }

    .field--name-field-slide-title p {
        font-size: 30px;
        margin-bottom: 14px;
    }

    .field--name-body p {
        font-size: 14px;
        max-width: 100%;
    }

    #slider-block button.slick-prev.slick-arrow,
    #slider-block button.slick-next.slick-arrow {
        width: 38px !important;
        height: 38px !important;
    }

    #slider-block button.slick-prev.slick-arrow::before,
    #slider-block button.slick-next.slick-arrow::before {
        width: 38px;
        height: 38px;
    }

    /* Intro */
    .intro-section .field--name-field-intro-title {
        font-size: 28px;
        margin-bottom: 50px;
    }

    .intro-section .field--name-field-intro-text {
        font-size: 16px;
    }

    /* About */
    .about-section .field--name-field-title2 {
        font-size: 28px;
        margin-bottom: 60px;
    }

    .about-section .field--name-field-about-text {
        font-size: 16px;
    }

    .about-section .field--name-field-btn-about a {
        padding: 12px 60px;
        font-size: 16px;
    }

    /* Delivery stack */
    .delivery-section .field--name-field-services {
        flex-wrap: wrap;
    }

    .delivery-section .field--name-field-services > .field__item {
        flex: 0 0 calc(50% - 15px);
    }

    .delivery-section .field--name-field-block-delivery-title2 {
        font-size: 30px;
    }

    /* Webform 2 columns */
    #webform .webform-submission-form > .form-item,
    #webform .webform-submission-form > .form-wrapper,
    #webform .webform-submission-form > #edit-actions,
    #webform .webform-submission-form > #edit-actions--3 {
        flex: 0 0 calc(50% - 14px);
    }

    #webform .block-title {
        font-size: 28px;
    }

    /* Promo */
    #block-vesta-theme-block-promo-personalization {
        display: flex;
        flex-direction: column;
    }

    #block-vesta-theme-block-promo-personalization .field--name-field-promo-image img {
        width: 100%;
        height: auto;
    }

    #block-vesta-theme-block-promo-personalization .promo_content {
        position: static;
        width: 100%;
        height: auto;
        padding: 30px;
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
    }

    #block-vesta-theme-block-promo-personalization .field--name-field-promo-title {
        font-size: 28px;
    }

    /* Catalog 2 columns */
    #block-vesta-theme-views-catalog-front .view-content,
    .view-id-catalog.view-display-id-page .view-content {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 20px;
    }

    #block-vesta-theme-views-catalog-front .block-title {
        font-size: 30px;
    }

    /* Product grid 2 columns */
    .view-id-tovary.view-display-id-page_2 .view-content {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 20px;
    }

    /* Contacts */
    .contacts-title {
        font-size: 28px;
    }

    /* Product full page stack */
    #block-vesta-theme-content .commerce-product--view-mode-full {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    #block-vesta-theme-content .commerce-product--view-mode-full > .block_left {
        grid-column: 1;
        grid-row: 1;
    }

    #block-vesta-theme-content .commerce-product--view-mode-full > .right {
        grid-column: 1;
        grid-row: 2;
    }

    #block-vesta-theme-content .commerce-product--view-mode-full > .bottom {
        grid-column: 1;
        grid-row: 3;
    }

    /* Main slider product */
    #block-vesta-theme-content .commerce-product--view-mode-full .block_left
    .photoswipe-gallery.field--name-field-image-product-view:not(.nav-slider) {
        max-width: 500px;
        padding: 0 50px;
    }

    /* Photogallery */
    #block-vesta-theme-photogallerys-on-front .block-title {
        font-size: 28px;
    }

    /* Page titles */
    #block-vesta-theme-page-title h1 {
        font-size: 28px;
    }

    /* Cart table */
    #block-vesta-theme-content .cart-form table.views-view-table {
        min-width: 700px;
    }

    /* Checkout */
    #block-vesta-theme-content .commerce-checkout-flow .fieldset-legend {
        font-size: 20px;
    }

    /* Footer */
    #footer .footer-grid {
        grid-template-columns: repeat(2, 1fr);
        row-gap: 28px;
    }

    /* Modal */
    .modal .modal-dialog.modal-dialog-centered {
        max-width: 600px;
    }

    .modal .modal-header {
        padding-top: 50px;
        padding-left: 40px;
        padding-right: 40px;
    }

    .modal .modal-body {
        padding-left: 40px;
        padding-right: 40px;
        padding-bottom: 50px;
    }

    .modal .modal-title {
        font-size: 28px;
    }

    /* Floating */
    .floating-actions {
        margin-right: 10px;
    }

    .floating-action {
        width: 44px;
        height: 44px;
        background-size: 44px 44px;
    }

    #scrollToTop {
        width: 44px !important;
        height: 44px !important;
        min-width: 44px !important;
        min-height: 44px !important;
    }
}

/* ===== 767px ===== */
@media (max-width: 767px) {

    /* Контейнер слайдера */
    #slider-block .view-content.slick-slider {
        position: relative;
        padding-bottom: 0px;
    }

    /* Сам слайд: убираем лишние боковые отступы, чтобы текст не зажимался */
    .node--type-slide.ds-2col {
        padding: 25px 20px 0 !important;
        min-height: auto;
    }
    
    #slider-block button.slick-prev.slick-arrow,
    #slider-block button.slick-next.slick-arrow {
        top: 50% !important;
        bottom: auto !important;
        transform: translateY(-50%) !important;
        width: 38px !important;
        height: 38px !important;
        z-index: 20;
    }

    /* Левая стрелка */
    #slider-block button.slick-prev.slick-arrow {
        left: 10px !important;
        right: auto !important;
    }

    /* Правая стрелка */
    #slider-block button.slick-next.slick-arrow {
        right: 10px !important; /* Настройте отступ от правого края */
        left: auto !important;
    }

    /* Размер иконок внутри стрелок */
    #slider-block button.slick-prev.slick-arrow::before,
    #slider-block button.slick-next.slick-arrow::before {
        width: 38px;
        height: 38px;
    }

    /* Текст */
    .field--name-field-slide-title p {
        font-size: 24px;
        margin-bottom: 12px;
        text-align: center;
    }

    .field--name-body p {
        font-size: 14px;
        line-height: 1.5;
        margin: 0 auto 20px;
        text-align: center;
        max-width: 100%;
    }

    .field--name-field-slide-link {
        text-align: center;
    }

    /* Slider */
    .field--name-field-slide-title p {
        font-size: 26px;
        margin-bottom: 12px;
    }

    .field--name-body p {
        font-size: 13px;
        line-height: 1.5;
        margin-bottom: 18px;
    }

    .field--name-field-slide-link a {
        padding: 12px 28px;
        font-size: 14px;
    }

    .node--type-slide .group-right .field--name-field-image img {
        height: 220px;
    }

    /* Intro */
    .intro-section {
        padding: 35px 0;
    }

    .intro-section .field--name-field-intro-title {
        font-size: 24px;
        margin-bottom: 40px;
    }

    .intro-section .field--name-field-intro-title::after,
    .intro-section .field--name-field-intro-title::before {
        bottom: -20px;
    }

    .intro-section .field--name-field-intro-title::after {
        width: 200px;
    }

    .intro-section .field--name-field-intro-text {
        font-size: 15px;
    }

    /* About */
    .about-section {
        padding: 40px 0;
    }

    .about-section .field--name-field-title2 {
        font-size: 24px;
        margin-bottom: 50px;
    }

    .about-section .field--name-field-title2::after {
        width: 200px;
    }

    .about-section .field--name-field-about-text {
        font-size: 15px;
    }

    .about-section .field--name-field-btn-about a {
        padding: 12px 40px;
        font-size: 15px;
    }

    /* Delivery stack single column */
    .delivery-section {
        padding: 40px 0;
    }

    .delivery-section .field--name-field-services > .field__item {
        flex: 0 0 100%;
    }

    .delivery-section .field--name-field-block-delivery-title2 {
        font-size: 26px;
    }

    /* Webform single column */
    #webform.webform-section {
        padding: 40px 0;
    }

    #webform .webform-submission-form > .form-item,
    #webform .webform-submission-form > .form-wrapper,
    #webform .webform-submission-form > #edit-actions,
    #webform .webform-submission-form > #edit-actions--3 {
        flex: 0 0 100%;
    }

    #webform #edit-actions,
    #webform #edit-actions--3 {
        padding-top: 10px;
    }

    #webform .block-title {
        font-size: 24px;
        margin: 0 auto 0px;
    }

    #webform .webform-submission-form {
        gap: 0px;
    }

    #photogallery {
        padding: 30px 0 30px;
    }

    /* Promo */
    .promo_personalization-section {
        padding: 40px 0;
    }

    #block-vesta-theme-block-promo-personalization .promo_content {
        padding: 24px 20px;
    }

    #block-vesta-theme-block-promo-personalization .field--name-field-promo-title {
        font-size: 24px;
    }

    #block-vesta-theme-block-promo-personalization .field--name-field-promo-text {
        font-size: 15px;
    }

    /* Catalog */
    #block-vesta-theme-views-catalog-front .block-title {
        font-size: 26px;
    }

    #block-vesta-theme-views-catalog-front .field--name-taxonomy-term-title h2,
    .view-id-catalog.view-display-id-page .field--name-taxonomy-term-title h2 {
        font-size: 18px;
    }

    /* Product cards */
    .view-id-tovary.view-display-id-page_2 .field--name-title {
        font-size: 17px;
        padding: 12px 14px 6px;
    }

    .view-id-tovary.view-display-id-page_2 .commerce-order-item-add-to-cart-form .button--add-to-cart,
    .view-id-tovary.view-display-id-page_2 .commerce-order-item-add-to-cart-form .btn.btn-primary {
        height: 44px;
        font-size: 15px;
    }

    /* Contacts */
    .contacts-section {
        padding: 30px 0 40px;
    }

    .contacts-title {
        font-size: 24px;
    }

    .contacts-label-top {
        font-size: 16px;
    }

    /* Photo gallery - single column */
    #block-vesta-theme-photogallerys-on-front .field--name-field-photogallery-images,
    #block-vesta-theme-content .view-id-photogallerys.view-display-id-page_1 .field--name-field-photogallery-images {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        grid-template-rows: auto !important;
        gap: 16px !important;
        width: 100% !important;
    }

    /* Сбрасываем жесткую привязку к первой колонке для всех 4-х картинок */
    #block-vesta-theme-photogallerys-on-front .field--name-field-photogallery-images > .field__item,
    #block-vesta-theme-content .view-id-photogallerys.view-display-id-page_1 .field--name-field-photogallery-images > .field__item {
        grid-column: auto !important;
        grid-row: auto !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    /* Делаем картинки адаптивными квадратами, чтобы сетка не плыла */
    #block-vesta-theme-photogallerys-on-front .field--name-field-photogallery-images img,
    #block-vesta-theme-content .view-id-photogallerys.view-display-id-page_1 .field--name-field-photogallery-images img {
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 1 / 1 !important;
        object-fit: cover !important;
        display: block !important;
    }

    #block-vesta-theme-photogallerys-on-front .block-title {
        font-size: 26px;
    }

    #block-vesta-theme-photogallerys-on-front .field--name-field-photogallery-images > .field__item:nth-child(1),
    #block-vesta-theme-photogallerys-on-front .field--name-field-photogallery-images > .field__item:nth-child(2),
    #block-vesta-theme-photogallerys-on-front .field--name-field-photogallery-images > .field__item:nth-child(3),
    #block-vesta-theme-photogallerys-on-front .field--name-field-photogallery-images > .field__item:nth-child(4),
    #block-vesta-theme-content .view-id-photogallerys.view-display-id-page_1 .field--name-field-photogallery-images > .field__item:nth-child(1),
    #block-vesta-theme-content .view-id-photogallerys.view-display-id-page_1 .field--name-field-photogallery-images > .field__item:nth-child(2),
    #block-vesta-theme-content .view-id-photogallerys.view-display-id-page_1 .field--name-field-photogallery-images > .field__item:nth-child(3),
    #block-vesta-theme-content .view-id-photogallerys.view-display-id-page_1 .field--name-field-photogallery-images > .field__item:nth-child(4) {
        grid-column: 1;
        grid-row: auto;
    }

    #block-vesta-theme-photogallerys-on-front .field--name-field-photogallery-images img,
    #block-vesta-theme-content .view-id-photogallerys.view-display-id-page_1 .field--name-field-photogallery-images img {
        aspect-ratio: 16 / 10;
    }

    #block-vesta-theme-photogallerys-on-front .block-title {
        font-size: 26px;
    }

    /* Page title */
    #block-vesta-theme-page-title h1 {
        font-size: 26px;
    }

    /* Product full page */
    #block-vesta-theme-content .commerce-product--view-mode-full .right .h1-product {
        font-size: 26px;
    }

    #block-vesta-theme-content .commerce-product--view-mode-full .right .field--name-field-price {
        font-size: 20px;
    }

    #block-vesta-theme-content .commerce-product--view-mode-full .block_left
    .photoswipe-gallery.field--name-field-image-product-view:not(.nav-slider) {
        max-width: 100%;
        padding: 0 45px;
    }

    /* Cart */
    #block-vesta-theme-content .cart-form table.views-view-table {
        min-width: 600px;
    }

    #block-vesta-theme-content .cart-form table.views-view-table thead th {
        font-size: 14px;
        padding: 12px 14px;
    }

    #block-vesta-theme-content .cart-form table.views-view-table tbody td {
        font-size: 14px;
        padding: 14px;
    }

    /* Checkout */
    #block-vesta-theme-content .layout-region-checkout-footer .form-actions {
        flex-direction: column;
        align-items: stretch;
    }

    #block-vesta-theme-content .layout-region-checkout-footer .button--primary {
        width: 100%;
        min-width: 0;
    }

    /* Review page */
    #block-vesta-theme-content form.commerce-checkout-flow[action$="/review"] .layout-region-checkout-footer .form-actions {
        flex-direction: column;
        align-items: stretch;
    }

    #block-vesta-theme-content form.commerce-checkout-flow[action$="/review"] .layout-region-checkout-footer .button--primary,
    #block-vesta-theme-content form.commerce-checkout-flow[action$="/review"] .layout-region-checkout-footer .link--previous {
        min-width: 0;
        width: 100%;
        text-align: center;
    }

    /* Footer */
    #footer .footer-grid {
        grid-template-columns: 1fr;
        row-gap: 24px;
    }

    #footer {
        padding: 24px 0;
    }

    /* Modal */
    .modal .modal-dialog.modal-dialog-centered {
        max-width: calc(100% - 30px);
    }

    .modal .modal-header {
        padding-top: 40px;
        padding-left: 24px;
        padding-right: 24px;
    }

    .modal .modal-body {
        padding-left: 24px;
        padding-right: 24px;
        padding-bottom: 40px;
    }

    .modal .modal-title {
        font-size: 24px;
    }

    .modal .modal-body::before {
        font-size: 15px;
        margin-bottom: 25px;
    }

    /* Cookie */
    #vpa-short-wrapper.vpa-wrapper.vpa-slide.vpa-visible {
        flex-direction: column;
        gap: 14px;
        padding: 14px 16px;
        width: calc(100% - 24px);
    }

    /* Search page */
    #block-vesta-theme-content .search-api-page-block-form-search {
        flex-direction: column;
        max-width: 100%;
    }

    #block-vesta-theme-content .search-api-page-block-form-search input.form-search {
        border-right: 1px solid var(--black);
        width: 100%;
    }

    #block-vesta-theme-content .search-api-page-block-form-search .search-form__submit {
        width: 100%;
    }

    #block-vesta-theme-content > h2 {
        font-size: 28px;
    }

    /* Breadcrumbs */
    #block-vesta-theme-strokanavigacii .breadcrumb {
        font-size: 12px;
    }

    #block-vesta-theme-strokanavigacii .breadcrumb-item + .breadcrumb-item::before {
        padding: 0 8px;
        font-size: 6px;
    }
}

/* ===== 576px ===== */
@media (max-width: 576px) {

    #slider-block .node--type-slide .field--name-field-slide-title p, #slider-block .node--type-slide .field--name-field-slide-title span {
        font-size: 26px;
    }

    #webform.webform-section {
        padding: 50px 0;
    }

    #webform .block-title {
        font-size: 30px;
        margin-bottom: 28px;
    }

    #webform .webform-submission-form {
        gap: 14px;
    }

    #webform .js-form-item-webform-name,
    #webform .js-form-item-webform-phone,
    #webform .js-form-item-message,
    #webform #edit-actions,
    #webform #edit-actions--2,
    #webform #edit-actions--3,
    #webform #edit-block-approval {
        flex: 0 0 100%;
    }

    #webform label {
        min-height: auto;
        white-space: normal;
    }

    #webform #edit-actions,
    #webform #edit-actions--2,
    #webform #edit-actions--3 {
        padding-top: 0;
    }

    #webform .webform-button--submit {
        font-size: 16px;
    }

    #webform #edit-block-approval {
        justify-content: flex-start !important;
        align-items: flex-start;
    }

    #webform .js-form-item-approval {
        align-items: flex-start;
    }

    #webform .js-form-item-approval input[type="checkbox"] {
        margin-top: 3px;
    }

    #webform .js-form-item-approval .webform-element-description span {
        font-size: 13px;
    }

    #header-mob {
        padding: 8px 10px;
        min-height: 56px;
        gap: 8px;
    }

    #header-mob .col-logo img {
        max-width: 104px;
        max-height: 34px;
    }

    #header-mob .col-phone a {
        font-size: 12px;
    }

    #header-mob .col-nav a,
    #header-mob .col-cart .cart-block--link__expand {
        width: 38px;
        height: 38px;
    }

    /* Search in header */
    .col-search .search-api-page-block-form-search.is-open .form-item-keys input.form-search {
        width: 160px;
    }

    /* Slider */
    .field--name-field-slide-title p {
        font-size: 22px;
        margin-bottom: 10px;
    }

    .field--name-body p {
        font-size: 12px;
        margin-bottom: 14px;
    }

    .field--name-field-slide-link a {
        padding: 10px 22px;
        font-size: 13px;
    }

    .node--type-slide .group-right .field--name-field-image img {
        height: 180px;
    }

    #slider-block button.slick-prev.slick-arrow,
    #slider-block button.slick-next.slick-arrow {
        width: 32px !important;
        height: 32px !important;
    }

    #slider-block button.slick-prev.slick-arrow::before,
    #slider-block button.slick-next.slick-arrow::before {
        width: 32px;
        height: 32px;
    }

    /* Intro */
    .intro-section {
        padding: 28px 0;
    }

    .intro-section .field--name-field-intro-title {
        font-size: 20px;
        margin-bottom: 35px;
    }

    .intro-section .field--name-field-intro-title::after {
        width: 160px;
    }

    .intro-section .field--name-field-intro-text {
        font-size: 14px;
    }

    /* About */
    .about-section {
        padding: 35px 0;
    }

    .about-section .field--name-field-title1 {
        font-size: 15px;
    }

    .about-section .field--name-field-title2 {
        font-size: 20px;
        margin-bottom: 45px;
    }

    .about-section .field--name-field-title2::after {
        width: 160px;
    }

    .about-section .field--name-field-about-text {
        font-size: 14px;
        margin-bottom: 30px;
    }

    .about-section .field--name-field-btn-about a {
        padding: 12px 30px;
        font-size: 14px;
        width: 100%;
        box-sizing: border-box;
    }

    /* Delivery */
    .delivery-section {
        padding: 30px 0;
    }

    .delivery-section .field--name-field-block-delivery-title1 {
        font-size: 15px;
    }

    .delivery-section .field--name-field-block-delivery-title2 {
        font-size: 22px;
    }

    .delivery-section .paragraph--type--services {
        padding: 16px;
    }

    .delivery-section .field--name-field-delivery-title {
        font-size: 18px;
    }

    .delivery-section .field--name-field-delivery-text {
        font-size: 14px;
        max-width: 100%;
    }

    /* Webform */
    #webform.webform-section {
        padding: 30px 0;
    }

    #webform .block-title {
        font-size: 20px;
        margin-bottom: 25px;
    }

    #webform .webform-submission-form {
        gap: 0 16px;
    }

    #webform input[type="text"],
    #webform textarea {
        height: 44px;
        padding: 12px 14px;
        font-size: 13px;
    }

    #webform .form-item-message textarea {
        height: 44px;
        min-height: 44px;
        max-height: 44px;
        line-height: 42px;
    }

    #webform .webform-button--submit {
        height: 44px;
        font-size: 15px;
    }

    #webform label {
        font-size: 12px;
        margin-bottom: 6px;
    }

    /* Promo */
    .promo_personalization-section {
        padding: 30px 0;
    }

    #block-vesta-theme-block-promo-personalization .promo_content {
        padding: 20px 16px;
    }

    #block-vesta-theme-block-promo-personalization .field--name-field-promo-title-top {
        font-size: 15px;
    }

    #block-vesta-theme-block-promo-personalization .field--name-field-promo-title {
        font-size: 20px;
        margin-bottom: 18px;
        padding-bottom: 18px;
    }

    #block-vesta-theme-block-promo-personalization .field--name-field-promo-title::before {
        width: 160px;
    }

    #block-vesta-theme-block-promo-personalization .field--name-field-promo-text {
        font-size: 14px;
        margin-bottom: 18px;
    }

    #block-vesta-theme-block-promo-personalization .field--name-field-promo-btn a {
        font-size: 15px;
    }

    /* Catalog single column */
    #block-vesta-theme-views-catalog-front .view-content,
    .view-id-catalog.view-display-id-page .view-content {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    #block-vesta-theme-views-catalog-front .block-title {
        font-size: 22px;
        margin-bottom: 20px;
    }

    #block-vesta-theme-views-catalog-front .block-title::before {
        font-size: 15px;
    }

    #block-vesta-theme-views-catalog-front .field--name-taxonomy-term-title h2,
    .view-id-catalog.view-display-id-page .field--name-taxonomy-term-title h2 {
        font-size: 16px;
    }

    #block-vesta-theme-views-catalog-front .more-link a,
    .view-id-catalog.view-display-id-page .more-link a {
        min-width: 0;
        width: 100%;
        font-size: 15px;
        height: 44px;
    }

    /* Product grid single column */
    .view-id-tovary.view-display-id-page_2 .view-content {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .view-id-tovary.view-display-id-page_2 .field--name-title {
        font-size: 16px;
        padding: 10px 12px 6px;
    }

    .view-id-tovary.view-display-id-page_2 .field--name-variations {
        padding: 0 12px 12px;
    }

    .view-id-tovary.view-display-id-page_2 .commerce-order-item-add-to-cart-form .button--add-to-cart,
    .view-id-tovary.view-display-id-page_2 .commerce-order-item-add-to-cart-form .btn.btn-primary {
        height: 40px;
        font-size: 14px;
    }

    /* Contacts */
    .contacts-section {
        padding: 24px 0 30px;
    }

    .contacts-label-top {
        font-size: 14px;
    }

    .contacts-title {
        font-size: 22px;
    }

    .contacts-item-label {
        font-size: 15px;
    }

    .contacts-item-value a {
        font-size: 15px;
    }

    /* Photogallery */
    #photogallery {
        padding: 30px 0;
    }

    #block-vesta-theme-photogallerys-on-front .block-title {
        font-size: 22px;
    }

    #block-vesta-theme-photogallerys-on-front .block-title::before {
        font-size: 15px;
    }

    #block-vesta-theme-photogallerys-on-front .field--name-field-photogallery-images {
        gap: 12px;
    }

    #block-vesta-theme-photogallerys-on-front .more-link a {
        min-width: 0;
        width: 100%;
        font-size: 15px;
    }

    /* Page title */
    #block-vesta-theme-page-title h1 {
        font-size: 22px;
    }

    /* Product full page */
    #block-vesta-theme-content .commerce-product--view-mode-full {
        gap: 18px;
    }

    #block-vesta-theme-content .commerce-product--view-mode-full .right .h1-product {
        font-size: 22px;
    }

    #block-vesta-theme-content .commerce-product--view-mode-full .right .field--name-field-price {
        font-size: 18px;
    }

    #block-vesta-theme-content .commerce-product--view-mode-full .block_left
    .photoswipe-gallery.field--name-field-image-product-view:not(.nav-slider) {
        padding: 0 35px;
    }

    #block-vesta-theme-content .commerce-product--view-mode-full .block_left
    .photoswipe-gallery.field--name-field-image-product-view:not(.nav-slider) .slick-prev,
    #block-vesta-theme-content .commerce-product--view-mode-full .block_left
    .photoswipe-gallery.field--name-field-image-product-view:not(.nav-slider) .slick-next {
        width: 35px;
        height: 35px;
    }

    #block-vesta-theme-content .commerce-product--view-mode-full .block_left
    .photoswipe-gallery.field--name-field-image-product-view:not(.nav-slider) .slick-prev::before,
    #block-vesta-theme-content .commerce-product--view-mode-full .block_left
    .photoswipe-gallery.field--name-field-image-product-view:not(.nav-slider) .slick-next::before {
        width: 35px;
        height: 35px;
    }

    #block-vesta-theme-content .commerce-product--view-mode-full .block_left
    .photoswipe-gallery.field--name-field-image-product-view:not(.nav-slider) .slick-prev {
        left: 0;
    }

    #block-vesta-theme-content .commerce-product--view-mode-full .block_left
    .photoswipe-gallery.field--name-field-image-product-view:not(.nav-slider) .slick-next {
        right: 0;
    }

    /* Nav slider thumbnails */
    #block-vesta-theme-content .commerce-product--view-mode-full .block_left > .nav-slider .slick-slide {
        width: 70px !important;
        min-width: 70px !important;
    }

    #block-vesta-theme-content .commerce-product--view-mode-full .block_left > .nav-slider .slick-track {
        gap: 6px;
    }

    /* Add to cart */
    #block-vesta-theme-content .commerce-product--view-mode-full .right .button--add-to-cart,
    #block-vesta-theme-content .commerce-product--view-mode-full .right .btn.btn-primary {
        max-width: 100%;
        height: 44px;
        font-size: 15px;
    }

    /* Description */
    #block-vesta-theme-content .commerce-product--view-mode-full .bottom .field--name-body {
        font-size: 15px;
    }

    /* Cart */
    #block-vesta-theme-content .cart-form table.views-view-table {
        min-width: 500px;
    }

    #block-vesta-theme-content .cart-form table.views-view-table thead th {
        font-size: 12px;
        padding: 10px 10px;
    }

    #block-vesta-theme-content .cart-form table.views-view-table tbody td {
        font-size: 13px;
        padding: 10px;
    }

    #block-vesta-theme-content .commerce-product-variation--view-mode-cart .field--name-title {
        font-size: 16px;
    }

    #block-vesta-theme-content .quantity-edit-input {
        width: 60px;
        height: 36px;
        font-size: 14px;
    }

    #block-vesta-theme-content .delete-order-item.button,
    #block-vesta-theme-content .delete-order-item.btn.btn-primary {
        min-width: 80px;
        height: 34px;
        font-size: 12px;
        padding: 0 10px;
    }

    #block-vesta-theme-content [data-drupal-selector="order-total-summary"] .field--name-total-price > div {
        min-width: 0;
        width: 100%;
        padding: 16px 18px;
    }

    #block-vesta-theme-content .order-total-line {
        font-size: 15px;
    }

    #block-vesta-theme-content .order-total-line__total {
        font-size: 17px;
    }

    #block-vesta-theme-content .cart-form .form-actions[data-drupal-selector="edit-actions"] {
        max-width: 100%;
    }

    #block-vesta-theme-content .cart-form .form-actions[data-drupal-selector="edit-actions"] > button {
        height: 40px;
        font-size: 14px;
    }

    /* Checkout */
    #block-vesta-theme-content .layout-region-checkout-main > .checkout-pane,
    #edit-order-fieldscheckout,
    #edit-payment-information {
        padding: 18px;
    }

    #block-vesta-theme-content .commerce-checkout-flow .fieldset-legend {
        font-size: 18px;
    }

    #block-vesta-theme-content .commerce-checkout-flow input[type="text"],
    #block-vesta-theme-content .commerce-checkout-flow input[type="tel"],
    #block-vesta-theme-content .commerce-checkout-flow input[type="email"],
    #block-vesta-theme-content .commerce-checkout-flow input[type="number"],
    #block-vesta-theme-content .commerce-checkout-flow textarea,
    #block-vesta-theme-content .commerce-checkout-flow select {
        height: 44px;
        font-size: 14px;
    }

    #block-vesta-theme-content .layout-region-checkout-footer .button--primary {
        height: 44px;
        font-size: 15px;
    }

    /* Review */
    #block-vesta-theme-content form.commerce-checkout-flow[action$="/review"] .layout-region-checkout-main > fieldset {
        padding: 18px;
    }

    #block-vesta-theme-content form.commerce-checkout-flow[action$="/review"] .layout-region-checkout-main .fieldset-legend {
        font-size: 18px;
        flex-wrap: wrap;
        gap: 8px;
    }

    #block-vesta-theme-content form.commerce-checkout-flow[action$="/review"] .layout-region-checkout-footer .button--primary,
    #block-vesta-theme-content form.commerce-checkout-flow[action$="/review"] .layout-region-checkout-footer .link--previous {
        height: 44px;
        font-size: 15px;
    }

    /* Search page */
    #block-vesta-theme-content > h2 {
        font-size: 22px;
    }

    #block-vesta-theme-content > h2::before {
        width: 180px;
    }

    #block-vesta-theme-content > p {
        font-size: 15px;
    }

    #block-vesta-theme-content > h3 a {
        font-size: 18px;
    }

    #block-vesta-theme-content > h3 + p {
        font-size: 14px;
    }

    /* Footer */
    #footer {
        padding: 20px 0;
    }

    #block-vesta-theme-catalog-footer-menu,
    #block-vesta-theme-company-menu {
        font-size: 16px;
    }

    #footer .footer-region li {
        margin-bottom: 10px;
    }

    #footer .footer-callback a {
        padding: 14px 10px;
        font-size: 14px;
    }

    /* Modal */
    .modal .modal-header {
        padding-top: 32px;
        padding-left: 16px;
        padding-right: 16px;
    }

    .modal .modal-body {
        padding-left: 16px;
        padding-right: 16px;
        padding-bottom: 32px;
    }

    .modal .modal-title {
        font-size: 20px;
    }

    .modal .modal-title::before {
        top: -14px;
        width: 180px;
    }

    .modal .modal-title::after {
        top: -18px;
        width: 8px;
        height: 8px;
    }

    .modal .modal-body::before {
        font-size: 14px;
        margin-bottom: 20px;
    }

    .modal #webform-submission-callback-form-ajax input[type="text"],
    .modal #webform-submission-callback-form-ajax input[type="tel"],
    .modal #webform-submission-callback-form-ajax input[type="search"],
    .modal #webform-submission-callback-form-ajax .form-control {
        height: 48px;
        padding: 0 16px;
        font-size: 15px;
    }

    .modal #webform-submission-callback-form-ajax .form-actions .webform-button--submit,
    .modal #webform-submission-callback-form-ajax .form-actions .btn.btn-primary {
        height: 50px;
        font-size: 15px;
    }

    /* Callback block form */
    #block-vesta-theme-content #webform-submission-callback-form-ajax::before {
        font-size: 15px;
        margin-bottom: 25px;
    }

    #block-vesta-theme-content #webform-submission-callback-form-ajax input[type="text"],
    #block-vesta-theme-content #webform-submission-callback-form-ajax input[type="tel"],
    #block-vesta-theme-content #webform-submission-callback-form-ajax input[type="search"],
    #block-vesta-theme-content #webform-submission-callback-form-ajax .form-control {
        height: 48px;
        padding: 0 16px;
        font-size: 15px;
    }

    #block-vesta-theme-content #webform-submission-callback-form-ajax .form-actions .webform-button--submit,
    #block-vesta-theme-content #webform-submission-callback-form-ajax .form-actions .btn.btn-primary {
        height: 50px;
        font-size: 15px;
    }

    /* Cookie */
    #vpa-short-wrapper.vpa-wrapper.vpa-slide.vpa-visible {
        gap: 10px;
        padding: 12px 14px;
    }

    #vpa-short-wrapper .vpa-content p {
        font-size: 12px;
    }

    #vpa-short-wrapper #vpa-btn-ok.btn.btn-primary {
        min-width: 80px;
        padding: 12px;
        font-size: 13px;
    }

    /* Floating actions */
    .floating-actions {
        margin-right: 5px;
        bottom: 6px;
        right: 3px;
        gap: 4px;
    }

    .floating-action {
        width: 40px;
        height: 40px;
        background-size: 40px 40px;
    }

    #scrollToTop {
        width: 40px !important;
        height: 40px !important;
        min-width: 40px !important;
        min-height: 40px !important;
    }

    /* Breadcrumbs */
    #block-vesta-theme-strokanavigacii {
        margin: 14px 0 18px;
    }

    #block-vesta-theme-strokanavigacii .breadcrumb {
        font-size: 11px;
    }

    #block-vesta-theme-strokanavigacii .breadcrumb-item + .breadcrumb-item::before {
        padding: 0 6px;
        font-size: 5px;
    }

    /* Product teaser legacy */
    .product-teaser {
        flex-direction: column;
        gap: 20px;
    }

    .product-teaser .product-teaser-image {
        max-width: 100%;
    }

    .product-teaser .product-teaser-image .field.field--name-field-variation-image.field--type-image .elements .current-slide.slick-initialized.slick-slider .slick-list.draggable .slick-track .element.slick-slide img {
        max-width: 100%;
        min-width: 100%;
        max-height: 300px;
        min-height: 300px;
    }

    .product-teaser .product-teaser-image .field.field--name-field-variation-image.field--type-image .elements .nav-slide.slick-initialized.slick-slider .slick-list.draggable .slick-track .element.slick-slide,
    .product-teaser .product-teaser-image .field.field--name-field-variation-image.field--type-image .elements .nav-slide.slick-initialized.slick-slider .slick-list.draggable .slick-track .element.slick-slide img {
        max-width: 80px;
        min-width: 80px;
        max-height: 80px;
        min-height: 80px;
    }

    .product-teaser .product-teaser-info {
        max-width: 100%;
    }
}

/* =========================
   HIDE PRODUCT ATTRIBUTES
   only in catalog product card
   ========================= */

.view-id-tovary.view-display-id-page_2
.commerce-product--view-mode-teaser
.commerce-order-item-add-to-cart-form
.field--name-purchased-entity,

.view-id-tovary.view-display-id-page_2
.commerce-product--view-mode-teaser
.commerce-order-item-add-to-cart-form
.attribute-widgets,

.view-id-tovary.view-display-id-page_2
.commerce-product--view-mode-teaser
.commerce-order-item-add-to-cart-form
.form-type-select {
    display: none !important;
}

/* =========================
   PRODUCT FULL PAGE
   color / size attributes
   ========================= */

.commerce-product--view-mode-full .right .field--name-purchased-entity {
    margin: 0 0 22px;
}

.commerce-product--view-mode-full .right .attribute-widgets {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    width: 100%;
    max-width: 470px;
}

.commerce-product--view-mode-full .right .form-type-select {
    margin: 0;
    min-width: 0;
}

/* Labels: Цвет / Размер */
.commerce-product--view-mode-full .right .form-type-select label {
    display: block;
    margin: 0 0 8px;

    color: var(--brown);
    font-family: 'Lora', serif;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.2;
}

/* Убираем стандартную звёздочку required */
.commerce-product--view-mode-full .right .form-type-select .form-required::after,
.commerce-product--view-mode-full .right .form-required::after {
    display: none !important;
}

/* Select */
.commerce-product--view-mode-full .right .form-type-select select,
.commerce-product--view-mode-full .right .form-type-select .form-select,
.commerce-product--view-mode-full .right .form-type-select .form-control {
    display: block;
    width: 100%;
    height: 48px;
    min-width: 0;
    padding: 0 42px 0 15px;

    border: 1px solid rgba(89, 45, 35, 0.28);
    border-radius: 0;
    background-color: #fff;
    color: var(--black);

    font-family: 'Lora', serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 48px;

    outline: none;
    box-shadow: none;
    cursor: pointer;

    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;

    background-image:
            linear-gradient(45deg, transparent 50%, var(--black) 50%),
            linear-gradient(135deg, var(--black) 50%, transparent 50%);
    background-position:
            calc(100% - 21px) 50%,
            calc(100% - 15px) 50%;
    background-size: 6px 6px, 6px 6px;
    background-repeat: no-repeat;

    transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
}

.commerce-product--view-mode-full .right .form-type-select select:hover,
.commerce-product--view-mode-full .right .form-type-select .form-select:hover,
.commerce-product--view-mode-full .right .form-type-select .form-control:hover {
    border-color: rgba(89, 45, 35, 0.55);
    background-color: var(--cream);
}

.commerce-product--view-mode-full .right .form-type-select select:focus,
.commerce-product--view-mode-full .right .form-type-select .form-select:focus,
.commerce-product--view-mode-full .right .form-type-select .form-control:focus {
    border-color: var(--brown);
    background-color: #fff;
    box-shadow: 0 0 0 1px rgba(89, 45, 35, 0.18);
}

/* Пункты внутри select — частично поддерживается браузерами */
.commerce-product--view-mode-full .right .form-type-select select option {
    background-color: #fff;
    color: var(--black);
    font-family: 'Lora', serif;
    font-size: 16px;
}

.commerce-product--view-mode-full .right .form-type-select select option:checked {
    background-color: var(--brown);
    color: #fff;
}

/* Chrome / Edge фикс для выбранного option */
.commerce-product--view-mode-full .right .form-type-select select option:checked {
    background: linear-gradient(0deg, var(--brown), var(--brown));
    color: #fff;
}

/* Ошибка валидации */
.commerce-product--view-mode-full .right .form-type-select select.error,
.commerce-product--view-mode-full .right .form-type-select select[aria-invalid="true"] {
    border-color: #b45b5b !important;
    box-shadow: 0 0 0 1px rgba(180, 91, 91, 0.22) !important;
}

/* Отступ между атрибутами и количеством */
.commerce-product--view-mode-full .right .add-to-cart-message {
    margin: 0;
}

/* =========================
   PRODUCT ATTRIBUTES ADAPTIVE
   ========================= */

@media (max-width: 991px) {
    .commerce-product--view-mode-full .right .attribute-widgets {
        max-width: 100%;
        gap: 14px;
    }
}

@media (max-width: 576px) {
    .commerce-product--view-mode-full .right .attribute-widgets {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .commerce-product--view-mode-full .right .form-type-select label {
        font-size: 14px;
        margin-bottom: 6px;
    }

    .commerce-product--view-mode-full .right .form-type-select select,
    .commerce-product--view-mode-full .right .form-type-select .form-select,
    .commerce-product--view-mode-full .right .form-type-select .form-control {
        height: 44px;
        padding-left: 13px;
        padding-right: 38px;
        font-size: 15px;
        line-height: 44px;
        background-position:
                calc(100% - 19px) 50%,
                calc(100% - 13px) 50%;
    }
}

/* Этот код сработает ТОЛЬКО на странице "О нас" */
.view-id-about .field--name-body {
    max-width: 100%;
    width: 100%;
}

/* Опционально: убираем лишние пустые абзацы, которые нагенерил текстовый редактор (&nbsp;) */
.view-id-about .field--name-body p {
    margin-bottom: 20px;
}
.view-id-about .field--name-body p:empty {
    display: none;
}

@media (max-width: 480px) {
    #block-vesta-theme-views-catalog-front .view-content {
        grid-template-columns: 1fr !important; /* 1 карточка в ряд на микро-экранах */
        gap: 24px 0 !important;
    }

    .container, .container-fluid, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl {
        margin-bottom: 30px;
    }

    /* Уменьшаем отступы секции для маленьких экранов */
    .delivery-section {
        padding: 35px 0;
    }

    /* Еще немного уменьшаем главный заголовок */
    .delivery-section .field--name-field-block-delivery-title2 {
        font-size: 20px;
        margin-bottom: 30px;
    }

    /* Переключаем сетку в ОДНУ колонку */
    .delivery-section .field--name-field-services.field__items {
        grid-template-columns: 1fr !important;
        gap: 30px 0 !important;
    }

    /* Сбрасываем хак для 3-го элемента, если вы его включали ранее */
    .delivery-section .field--name-field-services > .field__item:nth-child(3) {
        grid-column: auto !important;
        max-width: 100% !important;
    }

    /* Ограничиваем ширину текста карточки, чтобы строки не были слишком длинными на телефонах */
    .delivery-section .field--name-field-delivery-text {
        max-width: 320px;
        margin: 0 auto;
    }

    /* Переключаем галерею в 1 колонку на мелких телефонах */
    .photogallery-section .photoswipe-gallery.field--name-field-photogallery-images {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
    }

    /* Меняем пропорцию на прямоугольную для одной колонки, чтобы фото не казались гигантскими квадратами */
    .photogallery-section .field--name-field-photogallery-images .field__item img {
        aspect-ratio: 4 / 3 !important;
    }
}
