﻿.modal {
    --bs-modal-zindex: 1211;
    z-index: 31111;
}

.modal .modal-dialog {
    width: fit-content;
}

.modal-content {
    border-radius: 10px;
    overflow: hidden;
    background: #e4e7ec;
    background: #fff;
    border-radius: 10px;
    border: none;
}

.modal-content.modal-content-flex {
    flex-direction: row;
}

.modal-dialog .btn-close {
    z-index: 2;
    position: absolute;
    top: 0;
    right: 0;
    width: 24px;
    height: 24px;
    background: #fff;
    opacity: 1;
    padding: 20px;
    margin: 0;
}

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

.modal-dialog .btn-close::after {
    display: inline-block;
    height: 24px;
    content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M20 1.55556L18.4445 0L10 8.44444L1.55555 0L0 1.55556L8.44445 10L0 18.4444L1.55555 20L10 11.5556L18.4445 20L20 18.4444L11.5555 10L20 1.55556Z' fill='%23BDBDBD'/%3E%3C/svg%3E");
}

#visualiseModal .btn-close,
#discountModal .btn-close,
#buyoneModalDesktop .btn-close {
    background: none;
}

.cst_modal-background {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 101%;
    overflow: hidden;
    z-index: 1;
}

.cst_modal-background.cst_modal-background-half {
    width: 50%;
}

.cst_modal-video {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cst_modal-col {
    width: 50%;
    padding: 130px 45px 100px 60px;
    position: relative;
}

.cst_modal-dark {
    display: flex;
    align-items: center;
    background: var(--newblack);
}

.cst_modal-container__content {
    position: relative;
    z-index: 1;
    padding: 20px;
    color: #fff;
}

.cst_modal-title {
    color: #fff;
    font-size: 40px;
    line-height: 35px;
}

.cst_modal-subtitle,
.cst_modal-tel {
    color: #fff;
    text-decoration: none;
    font-weight: 200;
    font-size: 18px;
}

.cst_modal-block {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.error_text_mobilePopup {
    display: none;
    text-align: left;
    margin-bottom: 0;
}

.cst_modal-block .error_text_mobilePopup {
    color: var(--red);
}

.cst_modal-light p,
.cst_modal-light a,
.cst_modal-light a:hover,
.cst_modal-light label {
    color: var(--newblack);
}

.cst_modal-wrapper {
    display: flex;
    flex-direction: column;
}

.cst_modal-form {
    max-height: 230px;
    margin-top: 10px;
    color: var(--newblack);
    border: 1px solid var(--bd);
    max-width: 434px;
    padding: 15px 25px;
    border-radius: 15px;
    text-decoration: none;
    font-weight: 300;
    font-size: 16px;
    width: 430px;
}

.cst_modal-form__button {
    margin-top: 100px;
    border: none;
    color: #fff;
    font-size: 30px;
    font-weight: 600;
    width: 100%;
    padding: 0;
    text-decoration: none;
    text-align: center;
    align-items: center;
    border-radius: 10px;
    height: 70px;
    white-space: nowrap;
    background: #bf2120;
}

@media (max-width: 1280px) {
    .modal {
        --bs-modal-zindex: 10001;
    }
}

@media (max-width: 1200px) {
    .modal-content.modal-content-flex {
        flex-direction: column;
    }

    .cst_modal-background.cst_modal-background-half {
        width: 100%;
    }

    .cst_modal-col {
        width: 100%;
    }

    .cst_modal-dark {
        padding-bottom: 0;
        padding-top: 50px;
    }

    .cst_modal-container__content {
        padding: 0;
    }

    .cst_modal-light {
        z-index: 3;
        width: 100%;
        padding: 0 60px 25px;
    }

    .cst_modal-light p,
    .cst_modal-light a,
    .cst_modal-light label {
        color: #fff;
    }

    .cst_modal-form__button {
        margin-top: 35px;
    }
}

@media (max-width: 991px) {
    @-webkit-keyframes shake {
        0% {
            transform: rotate(10deg);
        }

        100% {
            transform-origin: center center;
            transform: rotate(-10deg);
        }
    }

    @keyframes shake {
        0% {
            transform: rotate(10deg);
        }

        100% {
            transform-origin: center center;
            transform: rotate(-10deg);
        }
    }

    .modal-dialog .btn-close {
        padding: 15px;
        border-top-left-radius: 0;
        border-bottom-right-radius: 0;
    }

    .total_results {
        margin: 12px 0 0;
    }

    .modal-dialog .btn-close {
        padding: 15px;
        border-top-left-radius: 0;
        border-bottom-right-radius: 0;
    }

    #geotargetingRegionModal .modal-dialog {
        max-width: 90vw;
    }

    .modal#geotargetingRegionModal .modal-dialog {
        width: 100vw;
        max-width: 100%;
        align-items: flex-end;
        height: 100%;
        margin: 0;
    }

    #geotargetingRegionModal .modal-content {
        border-bottom-left-radius: 0;
        border-bottom-right-radius: 0;
    }

    .modal-dialog .btn-close {
        padding: 15px;
        border-top-left-radius: 0;
        border-bottom-right-radius: 0;
    }

    .modal-dialog .btn-close {
        padding: 15px;
        border-top-left-radius: 0;
        border-bottom-right-radius: 0;
    }

    .modal-dialog .btn-close {
        padding: 15px;
        border-top-left-radius: 0;
        border-bottom-right-radius: 0;
    }

    #galleryModal .modal-dialog {
        max-width: 90vw;
    }

    .modal-dialog .btn-close {
        padding: 15px;
        border-top-left-radius: 0;
        border-bottom-right-radius: 0;
    }

    .photogallerySwiper {
        margin: 0;
    }

    #galleryModal .modal-footer {
        padding: 30px 34px;
    }

    .row.cats,
    .row.products {
        gap: 14px;
        margin-right: 0;
        padding: 0;
        margin-left: 0;
    }

    .row.products:not(.swiper) .col-sm-12.col-md-12.col-lg-6.col-xl-4.col-xxl-4 {
        max-width: calc(33.3333% - 9px);
    }

    .row.products .product {
        text-align: left;
    }

    .woocommerce-loop-product__title {
        font-size: 14px;
        line-height: 17px;
    }

    .showroom .single_icons_header .player_wrap_wrap,
    .dogovor .single_icons_header>div:not(.player_wrap_wrap)>div:last-child,
    .become,
    .popover .popover-arrow,
    .tooltip_price,
    .utps,
    .lazyrow .col-md-0,
    .related .btn-swpreim,
    .summary .mynotices,
    .o-zavode .video_row>div br,
    .single-thumbsSwiper,
    .price-discaunts,
    .product_sku,
    div div .single_variation_wrap-check.show,
    .olesya .manager,
    .price-box>.economy,
    .irs--round,
    .ar_overflow,
    #findPhotoButton,
    .single_product .woocommerce-breadcrumb,
    .visualise-banner .col-sm-12>.shag:nth-child(2),
    .upper_footer .right_container,
    .home_content .cons_frm,
    .which_more,
    .color_row>.col-lg-8,
    .brands_interactive-txt,
    #brands_interactive,
    .shorts-banner .title,
    .visualise-banner .player_wrap::before,
    .visualise-banner .player_wrap::after,
    .after_sidebar,
    .is-search-form,
    .header-wrap .container:not(.color) .navbar-toggler,
    .qr_top .qr-tooltip .tooltip-cont,
    .custom-tooltip,
    .back_link,
    .back_link:hover,
    .qr-tooltip .tooltip-cont,
    .header-wrap .container:not(.color),
    .topmenu .oficial,
    .divider_header,
    .content-kontakt.content-recomend .player_wrap,
    .searchImgHoverContainer {
        display: none;
    }
}

@media (max-width: 576px) {
    .modal .modal-dialog {
        margin: auto;
        max-width: 85vw;
    }
}

@keyframes premmerce-filter-spin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

.modal {
    --bs-modal-zindex: 1211;
    z-index: 31111;
}

.modal .modal-dialog {
    width: fit-content;
}

.modal-content {
    border-radius: 10px;
    overflow: hidden;
    background: #e4e7ec;
    background: #fff;
    border-radius: 10px;
    border: none;
}

.modal-header {
    flex-direction: column;
    padding: 0;
    border-bottom: 0;
}

.modal-header .modal-title {
    margin-top: 24px;
    margin-bottom: 12px;
    font-weight: 500;
    font-size: 24px;
    line-height: 100%;
    color: var(--grey);
    text-align: center;
}

.productThree .modal-header .modal-title {
    display: flex;
    margin: 36px auto 12px 36px;
}

.total_results {
    margin-left: 12px;
    line-height: 24px;
    color: var(--lighttext);
    font-size: 16px;
    font-weight: 400;
    display: none;
}

.modal-dialog .btn-close {
    z-index: 2;
    position: absolute;
    top: 0;
    right: 0;
    width: 24px;
    height: 24px;
    background: #fff;
    opacity: 1;
    padding: 20px;
    margin: 0;
}

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

.modal-dialog .btn-close::after {
    display: inline-block;
    height: 24px;
    content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M20 1.55556L18.4445 0L10 8.44444L1.55555 0L0 1.55556L8.44445 10L0 18.4444L1.55555 20L10 11.5556L18.4445 20L20 18.4444L11.5555 10L20 1.55556Z' fill='%23BDBDBD'/%3E%3C/svg%3E");
}

.modal-body {
    padding: 0 36px 36px;
}

.cart_scroll {
    padding-bottom: 30px;
}

.cart_scroll-items {
    max-height: 600px;
    overflow-y: auto;
    display: flex;
    gap: 30px;
    max-width: 1040px;
    padding: 0;
    overflow-x: auto;
    scrollbar-width: none;
}

.cart_scroll-items::-webkit-scrollbar {
    display: none;
}

.cart-card {
    display: flex;
    flex-direction: column;
    border-radius: 10px;
    gap: 10px;
    background: #efefef;
    padding: 10px 20px 20px;
    max-width: 330px;
}

.cart-card__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    margin-bottom: 5px;
}

.cart-card__title {
    border-radius: 10px;
    font-size: 16px;
    font-weight: 500;
    color: #585858;
    background: #efefef;
    flex: 1 1 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cart-card__remove {
    display: flex;
    background: #fff;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    width: 51px;
    border-radius: 10px;
    height: 51px;
}

.cart-card__image {
    background: #fff;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    max-width: 100%;
    height: 200px;
}

.productThree a:not(.add_to_wishlist, .delete_item) {
    border: none !important;
    margin: 0;
    width: 100%;
}

.cart-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cart-card__footer {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    background: #efefef;
    border-radius: 10px;
}

.cart-card__footer--info {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
}

.cart-card__footer--info:last-child {
    align-items: flex-end;
}

.cart-card__label {
    font-size: 12px;
    font-weight: 400;
    color: #585858;
}

.cart-card__price {
    font-size: 18px;
    font-weight: 600;
    color: #585858;
}

.btn-top.red {
    width: 100%;
    position: relative;
    margin: 0 auto;
    border: none;
    padding: 9px;
    border-radius: 7px;
    background: var(--red);
    color: #fff;
    font-weight: 500;
}

.modal-dialog.modal-xl.modal-dialog-centered .modal-body a.btn-top.red {
    position: relative;
    margin: 0 auto;
    border: none;
    background: var(--red);
    color: #fff;
    text-transform: none;
    border-radius: 4px;
    width: 100%;
    line-height: 48px;
    padding: 0;
    font-weight: 400;
    display: block;
    text-align: center;
    text-decoration: none;
    position: relative;
    margin: unset;
    border: none;
    background: var(--red);
    color: #fff;
    text-transform: none;
    border-radius: 10px;
    width: fit-content;
    padding: 15px 20px;
    line-height: normal;
    font-weight: 400;
    display: block;
    text-align: center;
    text-decoration: none;
}

@media (max-width: 1280px) {
    .modal {
        --bs-modal-zindex: 10001;
    }
}

@media (max-width: 991px) {
    @-webkit-keyframes shake {
        0% {
            transform: rotate(10deg);
        }

        100% {
            transform-origin: center center;
            transform: rotate(-10deg);
        }
    }

    @keyframes shake {
        0% {
            transform: rotate(10deg);
        }

        100% {
            transform-origin: center center;
            transform: rotate(-10deg);
        }
    }
}

@media (max-width: 576px) {
    .modal .modal-dialog {
        margin: auto;
        max-width: 85vw;
    }

    .modal-header .modal-title {
        font-size: 20px;
    }
}

@media (max-width: 510px) {
    .modal-body {
        padding-left: 24px;
        padding-right: 24px;
        padding-bottom: 24px;
    }
}

@media (max-width: 386px) {
    .btn-top.red {
        padding: 0;
    }
}

@keyframes premmerce-filter-spin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

.modal {
    --bs-modal-zindex: 1211;
    z-index: 31111;
}

.modal .modal-dialog {
    width: fit-content;
}

.modal#geotargetingRegionModal .modal-dialog {
    width: 1506px;
}

#geotargetingRegionModal #search_location_result .cities.show {
    opacity: 1;
    pointer-events: all;
}

#geotargetingRegionModal *,
#geotargetingRegionModal button {
    color: var(--grey);
}

.modal-content {
    border-radius: 10px;
    overflow: hidden;
    background: #e4e7ec;
    background: #fff;
    border-radius: 10px;
    border: none;
}

#geotargetingRegionModal .modal-content {
    background: var(--light);
    border-radius: 10px;
}

.modal-header {
    flex-direction: column;
    padding: 0;
    border-bottom: 0;
}

.modal-header .modal-title {
    margin-top: 24px;
    margin-bottom: 12px;
    font-weight: 500;
    font-size: 24px;
    line-height: 100%;
    color: var(--grey);
    text-align: center;
}

#geotargetingRegionModal .modal-header .modal-title {
    margin: 36px auto 20px 15px;
}

.modal-dialog .btn-close {
    z-index: 2;
    position: absolute;
    top: 0;
    right: 0;
    width: 24px;
    height: 24px;
    background: #fff;
    opacity: 1;
    padding: 20px;
    margin: 0;
}

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

.modal-dialog .btn-close::after {
    display: inline-block;
    height: 24px;
    content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M20 1.55556L18.4445 0L10 8.44444L1.55555 0L0 1.55556L8.44445 10L0 18.4444L1.55555 20L10 11.5556L18.4445 20L20 18.4444L11.5555 10L20 1.55556Z' fill='%23BDBDBD'/%3E%3C/svg%3E");
}

#geotargetingRegionModal .btn-close {
    line-height: 24px;
}

#geotargetingRegionModal button {
    font-weight: 500;
    font-size: 16px;
    line-height: 20px;
    color: var(--grey);
    border: none;
    cursor: pointer;
}

#geotargetingRegionModal .btn-close {
    background: var(--light);
}

.geotargetingHead {
    display: flex;
    justify-content: space-between;
    width: 100%;
    margin: 0 15px;
}

#geotargetingRegionModal .modal-header .currently {
    display: flex;
    gap: 10px;
    align-items: center;
    margin-bottom: 5px;
    margin-left: 15px;
}

#geotargetingRegionModal .modal-header .currently .title {
    color: var(--grey);
    font-size: 13px;
    font-weight: 400;
    line-height: 21px;
}

#geotargetingRegionModal .modal-header .currently svg {
    transition: transform 0.5s;
}

#geotargetingRegionModal .modal-header .currently:hover svg {
    transform: rotate(-90deg);
}

.modal-body {
    padding: 0 36px 36px;
}

#geotargetingRegionModal .modal-body {
    padding: 0 15px 25px;
}

#geotargetingRegionModal .top {
    display: flex;
    align-items: center;
    margin-top: 38px;
    margin-bottom: 20px;
}

#geotargetingRegionModal #favorite_cities {
    width: 350px;
    line-height: 24px;
    gap: 6px;
}

.content-zavod .partner .swiper-pagination,
.uslugi-descrip strong br,
.content-kontakt .contact-item.contact-item-diler,
.irs--round,
.woocommerce-product-gallery__lightbox i,
input[type='search']::-webkit-search-decoration,
input[type='search']::-webkit-search-cancel-button,
input[type='search']::-webkit-search-results-button,
input[type='search']::-webkit-search-results-decoration,
.price-box .text_notice i,
.single_icons .single_icons_icon .icon-title,
.related-product .dimensions,
.related-product .variations_form,
.wpcf7 form.sent div:not(.wpcf7-response-output),
.wpcf7 form.sent .tel_submit,
.modal-body br,
.woocommerce-ordering input.orderby,
.woocommerce-shipping-fields__field-wrapper,
#billing_company_field,
#shipment_fields .woocommerce-input-wrapper input.input-radio,
#payment_fields .woocommerce-input-wrapper input.input-radio,
#organisation_field .woocommerce-input-wrapper input.input-radio,
form.checkout .optional,
.woocommerce-additional-fields h3,
.which_more .btns input,
#accordionZavod .accordion-button::after,
.myShorts .swiper-button-boxs .swiper-button-next::after,
.quantity-text,
.cart .economy.hide,
.cart_group_name,
.dropdown-menu .is-search-form,
.sidebar-inner .widget_premmerce_filter_active_filters_widget .pc-active-filter__list-item:not(:last-child),
.sidebar-inner .widget_premmerce_filter_active_filters_widget .pc-active-filter__item-link:not([aria-label='Сбросить фильтр']),
.woocommerce-variation-description,
.price_without_sale~.irs--round,
.uslugi-page-banner.category_500 .col-xxl-3.right_sidebar {
    display: none;
}

#geotargetingRegionModal #favorite_cities .cities {
    gap: 10px;
    display: flex;
}

button.city_select,
button.region_select {
    white-space: nowrap;
}

#geotargetingRegionModal .search {
    flex: 1 1 0;
    width: 100%;
    position: relative;
}

#geotargetingRegionModal input {
    font-weight: 400;
    font-size: 16px;
    line-height: 48px;
    color: var(--grey);
    padding: 0 15px;
    width: 100%;
}

#geotargetingRegionModal #search_location_name {
    border: 1px solid var(--bd);
    border-radius: 10px;
    color: var(--grey);
}

.searchLoader {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 85px;
    z-index: 9999;
    background-repeat: no-repeat;
    background-size: contain;
    width: 30px;
    height: 30px;
    border: none;
    display: none;
    background-image: none !important;
}

#geotargetingRegionModal .searchLoader {
    right: 55px;
}

.searchLoader .box-wrap {
    width: 70%;
    height: 70%;
    margin: calc(15%);
    position: relative;
    transform: rotate(-45deg);
}

.searchLoader .box-wrap .box {
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    background: var(--red);
    background: linear-gradient(to right, var(--red), var(--grey), var(--red));
    background-position: 0 50%;
    background-size: 1000% 1000%;
    visibility: hidden;
}

#geotargetingRegionModal #search_location_button {
    position: absolute;
    right: 15px;
    top: 15px;
    height: 24px;
    line-height: 0;
    width: 24px !important;
}

#geotargetingRegionModal #search_location_button svg {
    width: 24px;
    height: 24px;
    position: relative;
}

#geotargetingRegionModal #search_dropdown {
    position: absolute;
    padding: 0 20px;
    top: 50px;
    display: none;
    flex-direction: column;
    align-items: flex-start;
    overflow: auto;
    overflow-x: hidden;
    max-height: 350px;
    width: 100%;
    z-index: 1;
    background: #fff;
    position: absolute;
    top: 42px;
    border: 1px solid var(--bd);
    border-top: 0;
    border-bottom-left-radius: 10px;
    border-bottom-right-radius: 10px;
}

#geotargetingRegionModal #search_location_result {
    display: flex;
    flex-direction: row;
}

#geotargetingRegionModal #search_location_result .regions {
    padding-right: 18px;
    border-right: 1px solid var(--border);
}

#geotargetingRegionModal #search_location_result .title {
    line-height: 18px;
    padding-bottom: 10px;
    color: var(--lighttext);
}

#geotargetingRegionModal #search_location_result .items_block {
    border: none;
    display: flex;
    flex-direction: column;
    background: #fff;
    align-items: flex-start;
    border-radius: 10px;
}

#geotargetingRegionModal .items_block {
    overflow: hidden auto;
    max-height: 350px;
}

#geotargetingRegionModal .items_block button {
    padding: 10px;
}

#geotargetingRegionModal .regions button {
    border-bottom: 1px solid var(--light);
    padding: 15px;
    background: #fff;
    white-space: normal;
    text-align: left;
    display: flex;
    color: var(--grey);
    width: 100%;
}

#geotargetingRegionModal #search_location_result .current {
    background: var(--red);
    font-weight: 600;
    color: #fff !important;
}

#geotargetingRegionModal #search_location_result .cities {
    padding-left: 18px;
    width: 100%;
}

#geotargetingRegionModal #search_location_result .cities .items_block {
    flex-direction: column;
}

#geotargetingRegionModal #search_location_result .cities button {
    width: 100%;
    border-bottom: 1px solid var(--light);
    padding: 15px;
    white-space: normal;
    text-align: left;
    display: flex;
    color: var(--grey);
}

@media (max-width: 1280px) {
    .modal {
        --bs-modal-zindex: 10001;
    }
}

@media (max-width: 1200px) {
    .modal#geotargetingRegionModal .modal-dialog {
        max-width: 95vw;
    }
}

@media (max-width: 991px) {
    @-webkit-keyframes shake {
        0% {
            transform: rotate(10deg);
        }

        100% {
            transform-origin: center center;
            transform: rotate(-10deg);
        }
    }

    @keyframes shake {
        0% {
            transform: rotate(10deg);
        }

        100% {
            transform-origin: center center;
            transform: rotate(-10deg);
        }
    }
}

@media (max-width: 768px) {

    a,
    .cart-product-sub .minus,
    .cart-product-sub .plus,
    input,
    button {
        touch-action: manipulation;
    }

    #geotargetingRegionModal .top {
        flex-direction: column;
        margin-top: 10px;
        gap: 10px;
    }

    #geotargetingRegionModal #favorite_cities {
        width: 100%;
        flex-direction: row;
        display: flex;
    }

    #geotargetingRegionModal #search_location_result {
        position: relative;
    }

    #geotargetingRegionModal #search_location_result .regions {
        width: 100%;
        border: none;
        padding-right: 0;
    }

    #geotargetingRegionModal #search_location_result .cities {
        position: absolute;
        top: 0;
        bottom: 0;
        right: 0;
        background-color: var(--light);
        padding-left: 0;
        opacity: 0;
        pointer-events: none;
        width: 100%;
    }

    #geotargetingRegionModal #search_location_result .cities .title {
        position: relative;
    }

    #geotargetingRegionModal #search_location_result .cities .title::after {
        content: '×';
        color: var(--red);
        font-size: 30px;
        line-height: 20px;
        text-align: right;
        right: 0;
        position: absolute;
        top: 30%;
        transform: translateY(-50%);
    }

    #geotargetingRegionModal #search_location_result .cities .items_block {
        background: #fff;
    }
}

@media (max-width: 576px) {
    .modal .modal-dialog {
        margin: auto;
        max-width: 85vw;
    }

    .modal-header .modal-title {
        font-size: 20px;
    }

    #geotargetingRegionModal .modal-header .modal-title {
        font-size: 16px;
        margin: 24px auto 20px 15px;
    }

    #geotargetingRegionModal button {
        font-size: 16px;
    }

    #geotargetingRegionModal .btn-close {
        background: transparent;
    }

    .gorod_selected {
        font-size: 14px;
    }

    #geotargetingRegionModal #favorite_cities button,
    #geotargetingRegionModal #favorite_cities .title {
        font-size: 14px;
    }

    #geotargetingRegionModal #favorite_cities .cities {
        gap: 7px;
    }

    #geotargetingRegionModal input {
        width: 100% !important;
    }

    .modal#geotargetingRegionModal .region_select,
    #geotargetingRegionModal input,
    #geotargetingRegionModal .modal-header .important,
    #geotargetingRegionModal .city_select {
        font-size: 14px;
    }

    #geotargetingRegionModal input {
        font-size: 16px;
    }

    #geotargetingRegionModal .items_block {
        max-height: min(42vh, 300px);
    }

    .modal#geotargetingRegionModal .region_select {
        text-align: left;
        line-height: 20px;
    }
}

@media (max-width: 510px) {
    .modal-body {
        padding-left: 24px;
        padding-right: 24px;
        padding-bottom: 24px;
    }

    #geotargetingRegionModal #search_location_result .cities button {
        width: 100%;
        border-bottom: 1px solid var(--light);
    }
}

@keyframes premmerce-filter-spin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

.modal {
    --bs-modal-zindex: 1211;
    z-index: 31111;
}

.modal .modal-dialog {
    width: fit-content;
}

.modal-content {
    border-radius: 10px;
    overflow: hidden;
    background: #e4e7ec;
    background: #fff;
    border-radius: 10px;
    border: none;
}

.modal-content.modal-content-flex {
    flex-direction: row;
}

.modal-dialog .btn-close {
    z-index: 2;
    position: absolute;
    top: 0;
    right: 0;
    width: 24px;
    height: 24px;
    background: #fff;
    opacity: 1;
    padding: 20px;
    margin: 0;
}

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

.modal-dialog .btn-close::after {
    display: inline-block;
    height: 24px;
    content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M20 1.55556L18.4445 0L10 8.44444L1.55555 0L0 1.55556L8.44445 10L0 18.4444L1.55555 20L10 11.5556L18.4445 20L20 18.4444L11.5555 10L20 1.55556Z' fill='%23BDBDBD'/%3E%3C/svg%3E");
}

.cst_modal-background {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 101%;
    overflow: hidden;
    z-index: 1;
}

.cst_modal-background.cst_modal-background-half {
    width: 50%;
}

.cst_modal-background img {
    object-fit: cover;
    height: 100%;
}

.cst_modal-col {
    width: 50%;
    padding: 130px 45px 100px 60px;
    position: relative;
}

.cst_modal-dark {
    display: flex;
    align-items: center;
    background: var(--newblack);
}

#optModal .cst_modal-dark {
    background: url(/wp-content/themes/pro/img/snow.webp) center center no-repeat;
}

#giveModal .cst_modal-dark {
    background: url(/wp-content/themes/pro/img/snow.webp) center center no-repeat;
}

#zvonokModal .cst_modal-dark {
    background: url(/wp-content/themes/pro/img/zakaz-zvonok.webp) center center no-repeat;
}

.cst_modal-container__content {
    position: relative;
    z-index: 1;
    padding: 20px;
    color: #fff;
}

.cst_modal-title {
    color: #fff;
    font-size: 40px;
    line-height: 35px;
}

.cst_modal-subtitle,
.cst_modal-tel {
    color: #fff;
    text-decoration: none;
    font-weight: 200;
    font-size: 18px;
}

.cst_modal-block {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.error_text_mobilePopup {
    display: none;
    text-align: left;
    margin-bottom: 0;
}

.cst_modal-block .error_text_mobilePopup {
    color: var(--red);
}

.cst_modal-light p,
.cst_modal-light a,
.cst_modal-light a:hover,
.cst_modal-light label {
    color: var(--newblack);
}

.cst_modal-wrapper {
    display: flex;
    flex-direction: column;
}

.cst_modal-form {
    max-height: 230px;
    margin-top: 10px;
    color: var(--newblack);
    border: 1px solid var(--bd);
    max-width: 434px;
    padding: 15px 25px;
    border-radius: 15px;
    text-decoration: none;
    font-weight: 300;
    font-size: 16px;
    width: 430px;
}

#zvonokModal .cst_modal-form,
#optModal .cst_modal-form {
    max-width: 370px;
}

.cst_modal-form__button {
    margin-top: 100px;
    border: none;
    color: #fff;
    font-size: 30px;
    font-weight: 600;
    width: 100%;
    padding: 0;
    text-decoration: none;
    text-align: center;
    align-items: center;
    border-radius: 10px;
    height: 70px;
    white-space: nowrap;
    background: #bf2120;
}

@media (max-width: 1280px) {
    .modal {
        --bs-modal-zindex: 10001;
    }
}

@media (max-width: 1200px) {
    .modal-content.modal-content-flex {
        flex-direction: column;
    }

    .cst_modal-background.cst_modal-background-half {
        width: 100%;
    }

    .cst_modal-col {
        width: 100%;
    }

    .cst_modal-dark {
        padding-bottom: 0;
        padding-top: 50px;
    }

    .cst_modal-container__content {
        padding: 0;
    }

    .cst_modal-light {
        z-index: 3;
        width: 100%;
        padding: 0 60px 25px;
    }

    .cst_modal-light p,
    .cst_modal-light a,
    .cst_modal-light label {
        color: #fff;
    }

    .cst_modal-form__button {
        margin-top: 35px;
    }
}

@media (max-width: 991px) {
    @-webkit-keyframes shake {
        0% {
            transform: rotate(10deg);
        }

        100% {
            transform-origin: center center;
            transform: rotate(-10deg);
        }
    }

    @keyframes shake {
        0% {
            transform: rotate(10deg);
        }

        100% {
            transform-origin: center center;
            transform: rotate(-10deg);
        }
    }
}

@media (max-width: 576px) {
    .modal .modal-dialog {
        margin: auto;
        max-width: 85vw;
    }
}

.modal {
    --bs-modal-zindex: 1211;
    z-index: 31111;
}

.modal .modal-dialog {
    width: fit-content;
}

.modal-content {
    border-radius: 10px;
    overflow: hidden;
    background: #e4e7ec;
    background: #fff;
    border-radius: 10px;
    border: none;
}

#buyoneModalDesktop .modal-content {
    padding: 160px 40px 0;
    background: url(/wp-content/themes/pro/img/popup_back.webp) center top / cover no-repeat #fff;
    align-items: center;
    overflow: hidden;
}

.modal-dialog .btn-close {
    z-index: 2;
    position: absolute;
    top: 0;
    right: 0;
    width: 24px;
    height: 24px;
    background: #fff;
    opacity: 1;
    padding: 20px;
    margin: 0;
}

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

.modal-dialog .btn-close::after {
    display: inline-block;
    height: 24px;
    content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M20 1.55556L18.4445 0L10 8.44444L1.55555 0L0 1.55556L8.44445 10L0 18.4444L1.55555 20L10 11.5556L18.4445 20L20 18.4444L11.5555 10L20 1.55556Z' fill='%23BDBDBD'/%3E%3C/svg%3E");
}

#visualiseModal .btn-close,
#discountModal .btn-close,
#buyoneModalDesktop .btn-close {
    background: none;
}

.cst_modal-background {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 101%;
    overflow: hidden;
    z-index: 1;
}

.cst_modal-video {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cst_modal-container__content {
    position: relative;
    z-index: 1;
    padding: 20px;
    color: #fff;
}

.cst_modal-title {
    color: #fff;
    font-size: 40px;
    line-height: 35px;
}

.cst_modal-container__info {
    margin-top: 170px;
}

.cst_modal-block {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.error_text_mobilePopup {
    display: none;
    text-align: left;
    margin-bottom: 0;
}

.cst_modal-block .error_text_mobilePopup {
    color: var(--red);
}

.cst_modal-wrapper {
    display: flex;
    flex-direction: column;
}

.cst_modal-subtitle,
.cst_modal-tel {
    color: #fff;
    text-decoration: none;
    font-weight: 200;
    font-size: 18px;
}

.cst_modal-form {
    max-height: 230px;
    margin-top: 10px;
    color: var(--newblack);
    border: 1px solid var(--bd);
    max-width: 434px;
    padding: 15px 25px;
    border-radius: 15px;
    text-decoration: none;
    font-weight: 300;
    font-size: 16px;
    width: 100%;
}

.cst_modal-form__button {
    margin-top: 100px;
    border: none;
    color: #fff;
    font-size: 30px;
    font-weight: 600;
    width: 100%;
    padding: 0;
    text-decoration: none;
    text-align: center;
    align-items: center;
    border-radius: 10px;
    height: 70px;
    white-space: nowrap;
    background: #bf2120;
}

#buyoneModalDesktop .cst_modal-form__button {
    margin-top: 50px;
}

@media (max-width: 1280px) {
    .modal {
        --bs-modal-zindex: 10001;
    }
}

@media (max-width: 1200px) {
    .cst_modal-container__content {
        padding: 0;
    }

    .cst_modal-form__button {
        margin-top: 35px;
    }
}

@media (max-width: 991px) {
    @-webkit-keyframes shake {
        0% {
            transform: rotate(10deg);
        }

        100% {
            transform-origin: center center;
            transform: rotate(-10deg);
        }
    }

    @keyframes shake {
        0% {
            transform: rotate(10deg);
        }

        100% {
            transform-origin: center center;
            transform: rotate(-10deg);
        }
    }
}

@media (max-width: 576px) {
    .modal .modal-dialog {
        margin: auto;
        max-width: 85vw;
    }
}

#galleryModal .modal-content {
    border-radius: 10px;
    overflow: hidden;
    width: 1280px;
}

#galleryModal .btn-close {
    z-index: 100;
}

#galleryModal .modal-body {
    padding: 0;
}

.photogallerySwiper {
    margin: 74px 64px 60px;
    width: auto !important;
    background: #fff !important;
}

.photogallerySwiper .swiper-wrapper {
    background: #fff !important;
}

.swiper-wrapper {
    max-height: 100vh;
}

.photogallerySwiper .swiper-slide {
    background: #fff;
}

.photogallerySwiper .swiper-slide div {
    display: flex;
    justify-content: center;
    align-items: center;
}

.photogallerySwiper img {
    border-radius: 10px;
}

.container .swiper-button-boxs,
.btn-swpreim,
.btn-swpartner {
    right: 0;
    width: 100px;
}

.swiper-button-next::after {
    position: absolute;
    content: '';
    width: 27px;
    height: 59px;
    right: -5px;
    top: -5px;
    border-top: 2px solid var(--red);
    border-right: 2px solid var(--red);
    border-top-right-radius: 12px;
    border-bottom-right-radius: 12px;
}

div .swiper-button-next,
div .swiper-button-prev {
    border-radius: 6px;
    width: 36px;
    height: 36px;
    border: 1px solid var(--bd);
}

div .swiper-button-boxs .swiper-button-next::after,
div .swiper-button-next::after {
    content: '';
    position: absolute;
    top: -5px;
    right: -5px;
    border: none;
    --p: 100;
    --v: calc(((18 / 5) * var(--p) - 90) * 1deg);
    width: 44px;
    height: 44px;
    display: inline-block;
    border-radius: 8px;
    padding: 2px;
    transform: rotate(-90deg) rotateZ(180deg) rotateY(0deg);
    background:
        linear-gradient(var(--v), transparent 50%, #bf2120 0) 0 / min(100%, (var(--p) - 50) * 100%),
        linear-gradient(to right, transparent 50%, #bf2120 0);
    -webkit-mask:
        linear-gradient(var(--v), #f2f2f2 50%, transparent 0) 0 / min(100%, (50 - var(--p)) * 100%),
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);
    -webkit-mask-composite: destination-out;
}

div .swiper-button-boxs .swiper-button-next.init::after,
div .swiper-button-next.init::after {
    animation: 4s linear 0s 1 normal none running o-slide-360;
}

.swiper-button-next::after,
.swiper-button-prev::after {
    font-size: 17px;
    font-weight: 900;
}

.swiper-button-next,
.fancybox-navigation .fancybox-button--arrow_right span {
    background: #fff;
    width: 50px;
    height: 50px;
    display: flex;
    color: var(--newblack);
    border-radius: 9px;
    font-size: 27px;
}

.swiper-button-boxs .swiper-button-next::after {
    position: absolute;
    content: '';
    width: 27px;
    height: 59px;
    right: -5px;
    top: -5px;
    border-top: 2px solid var(--red);
    border-right: 2px solid var(--red);
    border-top-right-radius: 12px;
    border-bottom-right-radius: 12px;
}

.swiper-button-next::before,
.swiper-button-prev::before,
.button-next::before,
.button-prev::before {
    content: '';
    height: 100%;
    width: 100px;
    background: url(/wp-content/themes/pro/img/slab_arrow.svg) center center no-repeat;
    filter: grayscale(1);
}

.swiper-button-next::before,
.button-next::before {
    transform: rotateY(180deg);
}

.photogallerySwiper .swiper-button-boxs>div {
    box-shadow: var(--newblack)20 0 0 11px;
}

.fa-angle-right,
.fa-angle-left {
    font-size: 0;
}

.swiper-button-prev,
.fancybox-navigation .fancybox-button--arrow_left span {
    background: #fff;
    width: 50px;
    height: 50px;
    display: flex;
    color: var(--newblack);
    border-radius: 9px;
    font-size: 27px;
}

.swiper-button-prev::after {
    content: none;
}

.container .swiper-pagination-boxs {
    left: 0;
}

#galleryModal .swiper-pagination {
    position: relative;
}

#galleryModal .swiper-pagination-bullets.swiper-pagination-horizontal {
    bottom: -5px;
    left: 31%;
    transform: translateX(-50%);
    width: 100%;
}

.swiper-pagination-bullet {
    border-radius: 4px;
    height: 15px;
    width: 15px;
    background: #fff;
    opacity: 0.8;
}

div .swiper-pagination-bullet {
    background: var(--lighttext);
}

.swiper-pagination-bullet:nth-child(n + 21) {
    display: none !important;
}

.photogallerySwiper .swiper-pagination-bullet {
    height: 10px;
    width: 18px;
    border-radius: 4px;
}

.swiper-pagination-bullet-active {
    opacity: 1;
    background: red !important;
}

div .swiper-pagination-bullet-active {
    background: var(--red) !important;
}

#galleryModal .modal-footer {
    padding: 50px 64px 100px 50px;
    background: var(--light);
    flex-direction: column;
    align-items: flex-start;
}

#galleryModal .modal-footer .modal-footer-title {
    font-weight: 600;
    font-size: 24px;
    line-height: 29px;
}

#galleryModal .modal-footer-title {
    margin-bottom: 30px;
}

.row.products {
    margin: 0;
    gap: 35px;
    width: 100%;
    margin-bottom: 0;
}

.content-wish .row.products .col-sm-12,
.row.products .col-sm-12.col-md-12.col-lg-6.col-xl-4.col-xxl-4 {
    background: #fff;
    outline: #fff solid 0;
    position: relative;
    padding: 0 8px 8px;
    transition: 0.3s ease-in;
}

#galleryModal .row.products .col-sm-12.col-md-12.col-lg-6.col-xl-4.col-xxl-4 {
    border-radius: 10px;
    background: TRANSPARENT;
}

#galleryModal .row.products .col-sm-12.col-md-12.col-lg-6.col-xl-4.col-xxl-4:hover {
    border-radius: 0;
}

.content-wish .row.products .col-sm-12,
.row.products .col-sm-12.col-md-12.col-lg-6.col-xl-4.col-xxl-4 {
    perspective: 500px;
}

.row.products:not(.swiper) .col-sm-12.col-md-12.col-lg-6.col-xl-4.col-xxl-4 {
    flex: 1 1 calc(33.3333% - 72px);
    max-width: calc(33.3333% - 23px);
    margin: 0 auto;
}

.wishlistModalSwiper .col-sm-12,
.recentlyModalSwiper .col-sm-12,
.row.products .col-sm-12.col-md-12.col-lg-6.col-xl-4.col-xxl-4 {
    width: 100%;
}

.row.products .product {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: visible !important;
}

.content-wish .row.products .col-sm-12 .product,
.row.products .col-sm-12.col-md-12.col-lg-6.col-xl-4.col-xxl-4 .product {
    z-index: 3;
    background: #fff;
}

.content-wish .row.products .col-sm-12:hover .product,
.row.products .col-sm-12.col-md-12.col-lg-6.col-xl-4.col-xxl-4:hover .product {
    z-index: 14;
}

.woocommerce-LoopProduct-link.woocommerce-loop-product__link {
    text-decoration: none;
    color: #551414;
}

.woocommerce-loop-product__link {
    position: relative;
    aspect-ratio: 4 / 3;
    margin: -5px -7px -11px;
    width: calc(100% + 14px);
}

#galleryModal .modal-dialog.modal-xl.modal-dialog-centered a {
    border-bottom: none;
    background: transparent;
}

.yith-wcwl-add-to-wishlist {
    display: block;
    margin-left: 10px;
    margin-top: 0;
    width: 36px;
}

.section-gallery-wrapper {
    display: flex;
    position: absolute;
    inset: 0 -1px;
    flex-direction: row;
    z-index: 2;
}

.section-gallery-wrapper__item {
    flex-grow: 1;
    -webkit-box-flex: 1;
    background-color: #fff;
    margin-bottom: -4px;
}

#galleryModal .section-gallery-wrapper__item {
    border-radius: 10px;
}

.section-gallery-wrapper__item-nav {
    display: block;
    position: relative;
    margin: 0 1px;
    height: 100%;
}

#galleryModal .section-gallery-wrapper__item-nav::before {
    top: 215px;
}

.section-gallery-wrapper__item-nav::before {
    content: '';
    display: block;
    height: 3px;
    border-radius: 5px;
    background-color: #cdcdcd;
    transition: background-color 0.2s ease-in-out;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 7%;
    z-index: 2;
    cursor: pointer;
    margin: 0 10%;
    opacity: 0;
}

.small_catalog .row.products .col-sm-12:hover .section-gallery-wrapper__item-nav::before,
.row.products .col-sm-12.col-md-12.col-lg-6.col-xl-4.col-xxl-4:hover .section-gallery-wrapper__item-nav::before {
    opacity: 1;
}

._active .section-gallery-wrapper__item-nav::before {
    background-color: var(--red);
}

.section-gallery-wrapper__item img {
    opacity: 0;
    transition: opacity 0.2s ease-in-out;
    position: absolute;
    margin: auto;
    inset: 0;
    border: 0;
    vertical-align: middle;
    max-width: 100%;
    max-height: 100%;
    pointer-events: none;
}

.section-gallery-wrapper__item._active img {
    opacity: 1;
}

.row.products .product img {
    aspect-ratio: 4 / 3;
    border-radius: 10px;
}

/* Фоллбэк, если aspect-ratio НЕ поддерживается */
@supports not (aspect-ratio: 4 / 3) {
    .row.products .product img::before {
        float: left;
        content: '';
    }

    .row.products .product img::after {
        display: block;
        content: '';
        clear: both;
    }
}

.loop_title_cat {
    display: none;
    font-size: 13px;
    font-weight: 500;
    line-height: 24px;
    text-decoration: none;
    color: var(--lighttext) !important;
}

.loop_title_cat:hover,
.loop_title_cat:hover {
    color: var(--newblack) !important;
}

.category-info span {
    display: block;
    font-size: 13px;
    font-weight: 500;
    line-height: 24px;
    text-decoration: none;
    color: var(--lighttext) !important;
}

.loop_product_title_link,
.loop_product_title_link:hover {
    text-decoration: none;
    color: inherit;
}

.woocommerce-loop-product__title {
    padding: 6px 0 3px;
    margin: 0;
    font-weight: 600;
    font-size: 16px;
    overflow: hidden;
    white-space: nowrap;
    display: inline-block;
    text-overflow: ellipsis;
    width: 100%;
    line-height: 24px;
    color: var(--newdark);
}

/* Попап избранного использует каталожную разметку карточки (.produkt-img/.product),
   но её картиночные стили (aspect-ratio 4/3) живут в archive-product.css, который
   грузится только на каталоге. Попап же открывается на любой странице → без них
   картинка шла натуральной высотой и наезжала на заголовок. Дублируем сжатие сюда
   (modals.css глобальный). */
.singleWishlistModalItem .produkt-img img,
.singleWishlistModalItem .section-gallery-wrapper img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 10px;
    display: block;
}

.labels_wrap {
    display: flex;
    flex-flow: wrap;
    justify-content: space-between;
    position: absolute;
    top: -1px;
    left: 2px;
    z-index: 11;
}

.loop-prod-bottom {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
}

.modal-body .loop-prod-bottom {
    margin-top: auto;
    padding-bottom: 5px;
}

.mins-price p,
.maxs-price p {
    margin-bottom: 0;
    color: var(--lighttext);
}

.modal-body p {
    width: 100%;
}

.single_variation_wrap-check .tooltip_price,
.row.products .col-sm-12:hover .tooltip_price,
.content-wish .row.products .col-sm-12:hover .button-shop,
.row.products .col-sm-12.col-md-12.col-lg-6.col-xl-4.col-xxl-4:hover .button-shop {
    opacity: 1;
    pointer-events: all;
    visibility: visible;
}

.tooltip_price .tooltip-cont::before {
    content: '';
    display: block;
    position: absolute;
    bottom: -17px;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-color: var(--grey) transparent transparent;
    border-style: solid;
    border-width: 10px;
    transition: var(--tr);
    opacity: 0;
}

.row.products .bottom_flipper {
    position: absolute;
    top: 100%;
    background-color: #fff;
    width: 100%;
    left: 0;
    transition: 0.3s cubic-bezier(0, 1, 0, 1);
    border-bottom-left-radius: 10px;
    border-bottom-right-radius: 10px;
    overflow: hidden;
    display: flex;
    z-index: 13;
    max-height: 0;
    pointer-events: none;
}

.button.product_type_simple.add_to_cart_button.ajax_add_to_cart,
.button.bottom_flipper-btn,
.button.product_type_variable {
    background: var(--red);
    padding: 0 3%;
    color: #fff;
    text-align: center;
    font-weight: 400;
    text-decoration: none;
    margin-right: 12px;
    font-size: 15px;
    height: 36px;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    right: 43px;
    border-radius: 6px;
    width: 81%;
    float: left;
    left: 0;
}

.content-wish .row.products .col-sm-12 .add_to_cart_button,
.content-wish .row.products .col-sm-12 .bottom_flipper-btn,
.row.products .col-sm-12.col-md-12.col-lg-6.col-xl-4.col-xxl-4 .add_to_cart_button,
.row.products .col-sm-12.col-md-12.col-lg-6.col-xl-4.col-xxl-4 .bottom_flipper-btn {
    margin: 0 16px 25px;
    width: 100%;
    padding-bottom: 2px;
}

.button.product_type_simple,
.button.product_type_simple.add_to_cart_button.ajax_add_to_cart,
.button.product_type_variable,
.button.product_type_simple.add_to_cart_button.ajax_add_to_cart,
.button.bottom_flipper-btn,
.row.products .button.product_type_variable.add_to_cart_button.wvs_add_to_cart_button.wvs_ajax_add_to_cart {
    width: calc(100% - 46px);
    border-radius: 12px;
    height: 36px;
    font-size: 14px;
    text-transform: none;
    float: left;
    overflow: hidden;
    white-space: nowrap;
}

.button.product_type_simple,
.button.product_type_simple.add_to_cart_button.ajax_add_to_cart,
.button.product_type_variable,
.button.bottom_flipper-btn,
.button.product_type_simple.add_to_cart_button.ajax_add_to_cart,
.row.products .button.product_type_variable.add_to_cart_button.wvs_add_to_cart_button.wvs_ajax_add_to_cart {
    width: 113px;
    border-radius: 4px;
    float: none;
    margin-right: 0;
}

#wishlistModal .wishlistModalSwiper .col-sm-12 {
    box-shadow: none;
}

@media (max-width: 1669px) {
    #galleryModal .swiper-pagination-bullets.swiper-pagination-horizontal {
        left: 0;
        transform: translateX(0%);
    }
}

@media (max-width: 1439px) {

    .container,
    .container-sm {
        max-width: 95vw !important;
    }

    .row.cats,
    .row.products {
        gap: 24px;
    }

    .from-to-price .mins-price {
        font-size: 16px;
    }
}

@media (max-width: 1400px) {
    .row.products:not(.swiper) .col-sm-12.col-md-12.col-lg-6.col-xl-4.col-xxl-4 {
        max-width: calc(33.3333% - 16px);
        flex: 1 1 calc(33.3333% - 16px);
    }
}

@media (max-width: 1280px) {
    .modal {
        --bs-modal-zindex: 10001;
    }

    .from-to-price .mins-price {
        font-size: 15px;
    }
}

@media (max-width: 1200px) {
    .photogallerySwiper {
        margin: 0;
    }

    .photogallerySwiper img {
        height: 100%;
        aspect-ratio: 1 / 1;
        object-fit: cover;
        border-radius: 0;
    }

    #galleryModal .swiper-pagination-bullets.swiper-pagination-horizontal {
        margin: 5px 0;
        bottom: 1px;
    }
}

@media (min-width: 1200px) {
    .photogallerySwiper img {
        height: 600px;
        width: auto;
    }
}

@media (max-width: 991px) {
    @-webkit-keyframes shake {
        0% {
            transform: rotate(10deg);
        }

        100% {
            transform-origin: center center;
            transform: rotate(-10deg);
        }
    }

    @keyframes shake {
        0% {
            transform: rotate(10deg);
        }

        100% {
            transform-origin: center center;
            transform: rotate(-10deg);
        }
    }
}

@media (min-width: 991px) {

    .swiper-button-next:hover::before,
    .swiper-button-prev:hover::before,
    .button-next:hover::before,
    .button-prev:hover::before {
        filter: none;
    }

    .content-wish .row.products .col-sm-12:hover,
    .row.products .col-sm-12.col-md-12.col-lg-6.col-xl-4.col-xxl-4:hover {
        transition: 0.3s ease-out;
        outline: 0;
        z-index: 13;
        box-shadow: var(--newblack)14 0 30px 60px;
        border-color: #fff !important;
    }

    .content-wish .row.products .col-sm-12:hover .bottom_flipper,
    .row.products .col-sm-12.col-md-12.col-lg-6.col-xl-4.col-xxl-4:hover .bottom_flipper {
        z-index: 13;
        box-shadow: var(--newblack)14 0 30px 60px;
        max-height: 61px;
        pointer-events: all;
    }
}

@media (max-width: 768px) {

    a,
    .cart-product-sub .minus,
    .cart-product-sub .plus,
    input,
    button {
        touch-action: manipulation;
    }

    .swiper-wrapper {
        display: flex;
        justify-content: left;
    }

    .swiper-slide {
        background-color: #fff;
    }

    #galleryModal .container {
        padding: 11px 0;
    }

    #galleryModal .swiper-button-next,
    #galleryModal .swiper-button-prev {
        top: unset;
        z-index: 10000000;
        bottom: 5px !important;
    }

    #galleryModal .swiper-button-prev {
        right: 60px !important;
        left: unset;
    }

    #galleryModal .swiper-pagination {
        text-align: left;
    }

    #galleryModal .swiper-pagination-bullets.swiper-pagination-horizontal {
        bottom: 0;
        margin: 0;
        width: 65%;
        left: 10px !important;
    }

    #galleryModal .modal-footer {
        padding: 15px;
    }

    #galleryModal .modal-footer .modal-footer-title {
        margin-bottom: 15px;
        font-size: 19px;
        line-height: 23px;
    }

    .row.cats,
    .row.products {
        width: 100%;
        gap: 10px 4px;
    }

    .row.products:not(.swiper) .col-sm-12.col-md-12.col-lg-6.col-xl-4.col-xxl-4 {
        flex: 1 1 calc(50% - 48px);
        max-width: calc(50% - 12px);
    }

    .row.products:not(.swiper)>.col-sm-12.col-md-12.col-lg-6.col-xl-4.col-xxl-4:nth-child(n + 10) {
        order: 3;
    }

    .row.products .col-sm-12.col-md-12.col-lg-6.col-xl-4.col-xxl-4 {
        padding: 0;
    }

    .row.products:not(.swiper) .col-sm-12.col-md-12.col-lg-6.col-xl-4.col-xxl-4 {
        padding: 0;
        flex: 1 1 calc(50% - 12px);
        max-width: calc(50%);
    }

    #galleryModal .row.products .product {
        border-radius: 10px;
        background: transparent;
    }

    .row.products .product {
        box-shadow: none;
        margin: 0;
        border-radius: 4px;
    }

    .product {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        height: 100%;
    }

    .woocommerce-loop-product__link {
        margin: 0 0 5px;
        width: 100%;
    }

    .row.products .yith-wcwl-add-to-wishlist {
        margin-left: 0;
        margin-right: 10px;
    }

    .loop_title_cat {
        display: block;
    }

    #galleryModal .loop_title_cat {
        padding-left: 10px;
    }

    .loop_product_title_link {
        margin-bottom: auto;
    }

    #galleryModal .woocommerce-loop-product__title,
    #galleryModal .loop-prod-bottom {
        padding-left: 0;
        border: transparent;
    }

    .woocommerce-loop-product__title {
        font-size: 14px;
        line-height: 17px;
    }

    .labels_wrap {
        left: -6px;
    }

    .product .from-to-price {
        margin-top: auto;
    }

    .from-to-price .mins-price {
        font-size: 14px !important;
    }

    .from-to-price .maxs-price {
        font-size: 14px !important;
    }

    .woocommerce-ordering label.radio,
    .preimushestvaSwiper .swiper-button-boxs,
    .upper_footer,
    .lazyrow .col-sm-0,
    .from-to-price .tooltip_price,
    .row.cats .title br,
    .catalog-header .download_catalog,
    .cons_frm,
    .map_script,
    .myShorts .swiper-button-boxs,
    .content-uslugi-child .ukladka-uslug br,
    .content-dileram .dostavka-banner-title br,
    .home_content #constructor_iframe,
    .from-to-price s,
    .footer .info-box a:not(#footer-tel),
    .footer-contact .zvonokModal,
    .header-wrap .container.color .button-visualise,
    .poddelki,
    .topmenu .button.flex,
    .swpreim .swiper-pagination,
    .swppartner .swiper-pagination,
    .swpartner .swiper-pagination,
    .soc-link,
    .woocommerce-ordering input+label,
    .woocommerce-ordering input.orderby,
    .unique-box img,
    .unique-box svg,
    .o-zavode .video_row .col>svg,
    .which_more {
        display: none;
    }
}

@media (min-width: 768px) {
    .container {
        max-width: 95vw;
    }
}

@media (max-width: 576px) {
    .modal .modal-dialog {
        margin: auto;
        max-width: 85vw;
    }

    .row.products .product {
        box-shadow: none;
    }

    .woocommerce-LoopProduct-link.woocommerce-loop-product__link::selection,
    .woocommerce-LoopProduct-link.woocommerce-loop-product__link ::selection {
        background-color: transparent;
    }

    .section-gallery-wrapper__item-nav {
        display: none !important;
    }

    .row.products .product img {
        border-radius: 10px !important;
    }

    .woocommerce-loop-product__title {
        font-size: 14px;
        line-height: 17px;
        padding-top: 0;
    }

    .loop-prod-bottom,
    .related-product .loop-prod-bottom {
        margin-top: 6px;
    }
}

@media (max-width: 510px) {
    .modal-body {
        padding-left: 24px;
        padding-right: 24px;
        padding-bottom: 24px;
    }

    #galleryModal .modal-footer {
        padding: 7px;
    }

    #galleryModal .modal-footer .modal-footer-title {
        font-size: 16px;
        line-height: 18px;
    }
}

@media (max-width: 386px) {
    .labels_wrap {
        max-width: calc(100% - 23px);
    }

    .from-to-price .mins-price {
        font-size: 14px;
        line-height: normal;
    }

    .from-to-price .mins-price span,
    .from-to-price .maxs-price span {
        font-size: 14px;
    }
}

@media (max-width: 377px) {

    #galleryModal .loop_title_cat,
    #galleryModal .woocommerce-loop-product__title,
    #galleryModal .loop-prod-bottom {
        padding-left: 0;
    }
}

@media (max-width: 364px) {
    .row.products {
        gap: 10px;
    }

    .row.products:not(.swiper) .col-sm-12.col-md-12.col-lg-6.col-xl-4.col-xxl-4 {
        flex: 1 1 calc(50% - 6px);
        max-width: calc(50% - 3px);
    }

    .loop_title_cat,
    .related-product .loop_title_cat {
        font-size: 12px;
    }

    .woocommerce-loop-product__title {
        font-size: 14px;
        line-height: 14px;
        padding: 0;
    }

    .from-to-price .mins-price {
        font-size: 13px;
    }
}

@media (max-width: 360px) {

    #galleryModal .woocommerce-loop-product__title,
    #galleryModal .loop-prod-bottom {
        padding-left: 0;
    }
}

@media (max-width: 336px) {
    #galleryModal .from-to-price {
        gap: 0;
    }
}

.items_block-preloader {
    display: none !important;
    position: relative;
}

.items_block-preloader.show {
    display: flex !important;
}

.items_block-preloader .city-skeleton {
    width: 100%;
    border-bottom: 1px solid var(--light, #eee);
    padding: 15px;
    display: flex;
    align-items: center;
    gap: 12px;
}

.items_block-preloader .city-skeleton .bar {
    height: 19px;
    border-radius: 6px;
    flex: 1 1 auto;
    background: linear-gradient(90deg, var(--newblack)0f 25%, var(--newblack)1f 37%, var(--newblack)0f 63%);
    background-size: 400% 100%;
    animation: city-skeleton-shimmer 2s linear infinite;
}

.items_block-preloader .city-skeleton:nth-child(3n) .bar {
    width: 60%;
}

.items_block-preloader .city-skeleton:nth-child(3n + 1) .bar {
    width: 80%;
}

.items_block-preloader .city-skeleton:nth-child(3n + 2) .bar {
    width: 70%;
}

@keyframes city-skeleton-shimmer {
    0% {
        background-position: 200% 0;
    }

    100% {
        background-position: -200% 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .items_block-preloader .city-skeleton .bar {
        animation: none;
    }
}

#geotargetingRegionModal #search_location_name:focus {
    outline: none;
}

#constructorModal .modal-dialog {
    margin: 0;
    max-width: unset;
    max-height: unset;
    width: 100%;
    height: 100%;
}

#constructorModal .modal-content {
    height: 100%;
}

#constructorModal iframe {
    width: 100vw;
    height: 100vh;
}

@media (max-width: 991px) {
    .modal#geotargetingRegionModal .modal-dialog {
        width: 100vw;
        max-width: 100%;
        align-items: flex-end;
        height: 100%;
        margin: 0;
    }
}

.sale_con-modal {
    padding: 0 !important;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.sale_slide-img {
    opacity: 0.5;
}

.sale_title-modal {
    font-size: 30px;
    font-weight: 600;
}

.wihslist_modal_wrapper .swiper-wrapper {
    padding: 0;
}

.wihslist_modal_wrapper .swiper-button-next.swiper-button-disabled,
.wihslist_modal_wrapper .swiper-button-prev.swiper-button-disabled {
    opacity: 0.6;
    cursor: pointer;
    pointer-events: all;
    filter: saturate(0);
}

.wihslist_modal_wrapper div .swiper-button-next::after {
    display: none;
}

button.cst_modal-form__button.loading {
    position: relative;
    background: #efefef;
    color: #efefef;
    outline: 4px solid #efefef;
    outline-offset: -3px;
    border-radius: 12px;
    overflow: hidden;
    transition:
        background 0.3s ease,
        color 0.3s ease;
}

button.cst_modal-form__button.loading::after {
    content: '';
    position: absolute;
    border-radius: inherit;
    outline: 4px solid #efefef;
    outline-offset: -3px;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    z-index: 11;
}

button.cst_modal-form__button.loading::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 0%;
    width: 60%;
    height: 100%;
    background: #bf2120;
    transform: translateY(-50%);
    animation: loading-wave 2s ease infinite;
    z-index: 10;
}

@keyframes loading-wave {
    0% {
        left: 0;
        width: 0%;
    }

    40% {
        left: 0;
        width: 100%;
    }

    60% {
        left: 0;
        width: 100%;
    }

    100% {
        left: 100%;
        width: 0%;
    }
}

#linksModal .modal-content {
    padding: 105px 30px;
    max-width: 550px;
    width: 100%;
}

#linksModal .modal-content .title {
    font-size: 40px;
    font-weight: 600;
    vertical-align: middle;
}

#linksModal .modal-content .description {
    font-size: 18px;
    line-height: 22px;
    width: 407px;
    font-weight: 400;
}

#linksModal.modal.show .modal-dialog {
    width: 100%;
    max-width: 550px;
}

#linksModal .modal-content .modal-content__links-wrapper {
    display: flex;
    gap: 30px;
    flex-direction: column;
    margin-top: 60px;
}

#linksModal .modal-content .modal-content__links-wrapper .modal-content__links {
    position: relative;
    width: 100%;
    height: 70px;
    text-decoration: none;
    display: flex;
    gap: 10px;
    justify-content: center;
    align-items: center;
    background: #EFEFEF;
    border-radius: 10px;
    font-size: 18px;
    font-weight: 600;
    text-align: center;
    overflow: hidden;
    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease;
}

#linksModal .modal-content .modal-content__links-wrapper .modal-content__links::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: 0;
}

#linksModal .modal-content .modal-content__links-wrapper .modal-content__links.max-msg::before {
    background: linear-gradient(286.28deg, #8475FE50 8%, #C13CF850 92%);
}

#linksModal .modal-content .modal-content__links-wrapper .modal-content__links.whatsapp::before {
    background: linear-gradient(286.28deg, #75fead50 8%, #3cf84250 92%);
}

#linksModal .modal-content .modal-content__links-wrapper .modal-content__links.telegram::before {
    background: linear-gradient(286.28deg, #75d7fe50 8%, #3c5cf850 92%);
}

#linksModal .modal-content .modal-content__links-wrapper .modal-content__links span {
    position: relative;
    z-index: 1;
    font-size: 18px;
    line-height: 22px;
}

#linksModal .modal-content .modal-content__links-wrapper .modal-content__links:hover::before {
    opacity: 1;
}

#linksModal .modal-content .modal-content__links-wrapper .modal-content__links:hover {
    transform: translateY(-2px);
}

/* Ховер-градиент пункта «Позвонить» (как у остальных ссылок) */
#linksModal .modal-content .modal-content__links-wrapper .modal-content__links.phone::before {
    background: linear-gradient(286.28deg, #fea0a050 8%, #f83c3c50 92%);
}

/* Номер всегда тёмный, без синевы/подчёркивания — даже если Roistat-подмена
   обернёт текст в свой <a> (иначе ссылка становилась синей). */
#linksModal .modal-content .modal-content__links-wrapper .modal-content__links.phone,
#linksModal .modal-content .modal-content__links-wrapper .modal-content__links.phone span,
#linksModal .modal-content .modal-content__links-wrapper .modal-content__links.phone a {
    color: #1a1a1a;
    text-decoration: none;
}

/* Мобайл: linksModal выезжает снизу (bottom-sheet), как модалка опт-прайса */
@media (max-width: 510px) {
    #linksModal .modal-dialog {
        position: fixed;
        left: 0;
        right: 0;
        /* над мобильным футер-меню (.footer_menu ~70px) + safe-area (хоум-индикатор) */
        bottom: calc(70px + env(safe-area-inset-bottom, 0px));
        top: auto;
        margin: 0;
        width: 100%;
        max-width: 100%;
        min-height: 0;
        height: auto;
        display: block;
        transform: translateY(100%);
        transition: transform 0.35s ease;
    }

    #linksModal.modal.show .modal-dialog {
        width: 100%;
        max-width: 100%;
        transform: translateY(0);
    }

    #linksModal .modal-content {
        border-radius: 18px 18px 0 0;
        padding: 22px 18px 26px;
        max-width: 100%;
        width: 100%;
    }

    #linksModal .modal-content .title {
        font-size: 24px;
        margin-bottom: 8px;
    }

    #linksModal .modal-content .description {
        width: auto;
        font-size: 14px;
        line-height: 19px;
    }

    #linksModal .modal-content .modal-content__links-wrapper {
        margin-top: 16px;
        gap: 10px;
    }

    #linksModal .modal-content .modal-content__links-wrapper .modal-content__links {
        height: 52px;
        font-size: 15px;
        border-radius: 12px;
    }

    #linksModal .modal-content .modal-content__links-wrapper .modal-content__links svg {
        width: 22px;
        height: 22px;
    }

    #linksModal .modal-content .modal-content__links-wrapper .modal-content__links span {
        font-size: 15px;
        line-height: 18px;
    }

    /* Футер-меню остаётся видимым/чётким над затемнением при открытом linksModal
       (как у optModal: оверлей дим, а нижняя навигация сверху). Лист стоит на
       bottom:70px — над футером, поэтому не перекрывает его. */
    body:has(#linksModal.show) .footer_menu {
        z-index: 31112;
    }

    /* Бар «Позвонить + мессенджеры» (.mobile_btns) — дочерний у footer_menu,
       при поднятом z-index он налезал на нижние ссылки модалки. Он дублирует
       контент модалки, поэтому прячем его, пока linksModal открыт. */
    body:has(#linksModal.show) .mobile_btns {
        display: none;
    }
}

/* Checkbox согласие */
.cst_modal-checkbox {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-top: 16px;
    cursor: pointer;
    user-select: none;
}

.cst_modal-checkbox input[type="checkbox"] {
    display: none;
}

.cst_modal-checkbox__box {
    width: 20px;
    height: 20px;
    min-width: 20px;
    border: 2px solid #D0D0D0;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: border-color 0.2s, background 0.2s;
    margin-top: 2px;
}

.cst_modal-checkbox__box svg {
    display: none;
}

.cst_modal-checkbox input[type="checkbox"]:checked + .cst_modal-checkbox__box {
    border-color: var(--red);
    background: var(--red);
}

.cst_modal-checkbox input[type="checkbox"]:checked + .cst_modal-checkbox__box svg {
    display: block;
}

.cst_modal-checkbox__text {
    font-size: 13px;
    line-height: 18px;
    color: #969DAB;
}

.cst_modal-checkbox__text a {
    color: #969DAB;
    text-decoration: underline;
}

.cst_modal-form__button:disabled,
.cst_modal-form__button.disabled {
    opacity: 0.4;
    cursor: not-allowed;
    pointer-events: none;
}