@import url(https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap);

/* Атрибуты width/height на <img> (размеры из БД) резервируют место до
   загрузки — без CLS. Но это же жёсткие px-подсказки: если CSS
   ограничивает только ширину, высота «залипает» от атрибута и картинка
   растягивается (было в галерее товара и в корзине). Разрешаем пересчёт
   высоты по соотношению сторон — из атрибутов используется только
   aspect-ratio. Явные высоты в правилах классов этот запрет отменяют. */
img {
    height: auto;
}

body {
    font-family: "Montserrat", sans-serif;
    font-optical-sizing: auto;
    font-size: 12px;
    font-weight: 400;
    line-height: 15px;
    letter-spacing: 0;
    text-align: left;
    color: #000;
}

main {
    margin-bottom: 150px;
}

h2 {
    font-weight: 300;
    font-size: 44px;
    line-height: 54px;
    color: #0a222d;
}

ul {
    padding-left: 20px;
}

li::before {
    content: '•';
    margin-left: -10px;
    margin-right: 10px;
}

.nc-navbar li::before {
    content: '';
    margin-left: 0;
    margin-right: 0;
}

li.menu-item::before, .top-catalog-menu li::before{
    display: none;
}

.menu-item.feedback a,
a {
    text-decoration: none;
    color: #039e54;
}

.menu-item a:hover,
a:hover {
    color: #039e54;
}

input {
    padding: 12px 15px;
    width: 50%;
    font-size: 14px;
}

input.input-error {
    border-bottom: 1px solid red !important;
}

span.input-error {
    color: red;
}

.menu-item a {
    color: #55656f;
}

.container-fluid {
    padding-left: 100px;
    padding-right: 100px;
}

.top-menu *,
.top-wrapper,
.top-wrapper>div {
    display: flex;
    margin-top: 0;
    margin-bottom: 0;
}

.top-wrapper {
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    padding-top: 7px;
    padding-bottom: 7px;
    border-bottom: 1px solid #e8e8ea;
}

.top-menu-left {
    float: left;
    flex: 1;
    font-weight: 600;
    color: #55656f;
}

.city-choice {
    color: #039e54;
}

.dropdown-toggle::after {
    margin-top: auto;
    margin-bottom: auto;
    width: 0.5rem;
    height: .5rem;
    border-top: 1px solid transparent;
    border-bottom: 1px solid;
    border-left: 1px solid;
    border-right: 1px solid transparent;
    transform: rotate(-45deg);
}

.top-menu-right {
    float: right;
    flex: 2;
    justify-content: end;
}

.menu-item {
    padding-left: 8px;
    padding-right: 8px;
}

.top-menu-text {
    margin-right: 12px;
}

.top-phone {
    font-size: 16px;
    margin-left: 25px;
}

.logo img {
    width: 100%;
}

.catalog-menu button {
    padding: 9px 18px;
    border: 0;
    font-size: 14px;
    font-weight: 600;
    margin: auto;
    width: 100%;
    text-align: left;
}

.catalog-menu button.collapsed span.navbar-toggler-icon {
    filter: none;
    background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 1' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

.catalog-menu button span.navbar-toggler-icon {
    filter: invert(1) grayscale(100%) brightness(200%);
    background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e")center/1em auto no-repeat;
}

.catalog-menu-content {
    padding-top: 20px;
    padding-left: 100px;
    padding-right: 100px;
    overflow: auto;
    height: calc(100vh - 144px);
}

main .catalog-menu-content {
    height: unset;
    padding: 0;
}

.catalog-menu-header {
    display: flex;
    border-bottom: 1px solid #bcc2c6;
}

.catalog-menu-header h2 {
    font-size: 32px;
    font-weight: 700;
    line-height: 28px;
}

.catalog-menu-header a {
    font-size: 14px;
    font-weight: 600;
    line-height: 18px;
    margin-left: auto;
    margin-top: auto;
    margin-bottom: auto;
}

.cat-menu-back {
  font-size: 0;
  display: inline-block;
  background-image: url("../imgs/icos/menu-back.8a11b9d3a8c9.png");
  width: 38px;
  line-height: 38px;
  margin-right: 18px;
  vertical-align: super;
  cursor: pointer;
  background-repeat: no-repeat;
}

.catalog-menu a {
    padding: 9px 18px;
    color: #fff;
    background-color: #039e54;
    border: 0;
    font-size: 14px;
    font-weight: 600;
    margin: auto;
    width: 100%;
    text-align: left;
    border-radius: 0;
}

.head {
    display: flex;
    flex-wrap: wrap;
    margin-top: 15px;
    margin-bottom: 13px;
}

.logo {
    margin-right: 47px;
    display: flex;
}

.logo a {
    margin: auto 0;
}

.catalog-menu {
    min-width: 255px;
    display: flex;
}

.search {
    flex: 1;
    margin: auto 40px;
    /* Резиновый: ужимается до нуля и занимает всё доступное место, не
       давая строке хедера переноситься (min-width:auto держал бы
       intrinsic-ширину инпута и выталкивал корзину на вторую строку). */
    min-width: 0;
}

.search input {
    width: 100%;
    padding: 10px 18px;
    border: 1px solid #0a222d;
    height: 40px;
}

.search form.nc_search {
    position: relative;
}

.search form.nc_search button {
    position: absolute;
    right: 0;
    top: 10px;
    width: 40px;
    height: 40px;
    border: none;
    background-color: #0A222D;
    background-image: url("../imgs/icos/search-ico.56e9b47f79e9.svg");
    background-repeat: no-repeat;
    background-position: center;
}

.ui-front {
    position: relative;
}

ul#ui-id-1 {
    position: absolute !important;
    width: 100% !important;
    background: #fff;
    border: 1px solid;
    z-index: 1;
    list-style: none;
    padding: 0;
}

ul#ui-id-1 li:before {
    content: unset;
}

ul#ui-id-1 li {
    padding: 15px 5px;
    font-size: 14px;
    cursor: pointer;
}

ul#ui-id-1 li.ui-state-focus {
    color: #fff;
    background-color: #039e54;
}

.user-lists {
    display: table-row;
    border-collapse: collapse;
    margin: auto;
    /* Блок кнопок (личный кабинет/избранное/сравнение/корзина) не сжимается:
       при тесноте ужимается только поиск, а не кнопки. */
    flex-shrink: 0;
}

.user-lists .login {
    background: url("../imgs/icos/user-icon.c6df406195a6.png") no-repeat 15px 50%;
}

.user-lists .favorites {
    background: url("../imgs/icos/fav-icon-top.0717ce359298.png") no-repeat 15px 50%;
}

.user-lists .compare {
    background: url("../imgs/icos/compare-icon-top.291c970b0c9c.png") no-repeat 15px 50%;
}

.user-lists .contacts {
    display: none;
}

.user-lists .cart {
    background: url("../imgs/icos/cart-icon-top.d39b8adee614.png") no-repeat 15px 50%;
}

.user-lists .cart.cart-full {
	background-color: #18C371;
	color: #fff;
}

.user-lists .cart.cart-full:hover {
	background-color: #039e54;
}

.user-lists a {
    padding: 11px 20px;
    border: 1px solid #0a222d;
    margin: auto;
    display: table-cell;
    background-repeat: no-repeat;
    padding-left: 49px;
    color: #000;
}

.catalog-menu button,
.user-lists a:hover {
    background-color: #039e54;
    color: #fff;
}

.catalog-menu button:hover {
	background-color: #08874B;
}

.catalog-menu-wrapper {
    position: relative;
}

.catalog-menu-wrapper .collapse {
    position: absolute;
    width: 100vw;
    background: #fff;
    z-index: 1010;
    left: -100px;
}

.catalog-menu-lists {
    display: flex;
    flex-wrap: wrap;
    border-bottom: 1px solid #bcc2c6;
}

.catalog-menu-item-wrapper {
    margin-top: 35px;
    /*border-bottom: 1px solid #bcc2c6;*/
    margin-bottom: -1px;
}

.catalog-menu-item-header {
    font-size: 16px;
    font-weight: 700;
    line-height: 28px;
    margin-bottom: 20px;
}

.catalog-menu-main-item img {
  width: 100%;
}

.catalog-menu-main-item .menu-mobile-img {
	display: none;
}

.catalog-menu-main-item span {
  background-color: #55656F;
  color: #fff;
  display: block;
  max-width: 100%;
  font-size: 14px;
  font-weight: 700;
  line-height: 28px;
  padding: 4px 10px;
}

.catalog-menu-main-item ul {
    padding-left: 20px;
    list-style: none;
	margin-top: 20px;
}

.catalog-menu-main-item ul li {
    font-size: 14px;
    font-weight: 400;
    line-height: 28px;
}

.main-cat-menu .catalog-menu-main-item ul li:nth-child(n+6):not(.catalog-menu-item.more) {
  display: none;
}

.catalog-menu-main-item ul li.more a {
	color: #039e54;
}

.catalog-menu-item a,
.catalog-menu-item-header a {
    color: #0a222d;
}

.catalog-menu-item a:hover,
.catalog-menu-item-header a:hover,
.top-catalog-menu ul li a:hover {
    color: #039e54;
}

.top-catalog-menu {
    background: #0A222D;
	padding: 13px 10px 10px 10px;
}

.top-catalog-menu ul {
    display: flex;
    list-style: none;
    padding: 0;
    margin-bottom: 8px;
    font-size: 14px;
}

.top-catalog-menu ul li {
    margin: auto;
    text-align: center;
}

.slick-initialized .slick-slide.home-banner:first-child,
.top-catalog-menu ul li:first-child {
    margin-left: 0;
}

.slick-initialized .slick-slide.home-banner:last-child,
.top-catalog-menu ul li:last-child {
    margin-right: 0;
}

.slick-initialized .slick-slide.home-banner-wrapper:first-child .home-banner {
    padding-left: 0;
}

.slick-initialized .slick-slide.home-banner-wrapper:last-child .home-banner {
    padding-right: 0;
}

.top-catalog-menu ul li a {
    color: #fff;
	font-weight: 500;
}

.home-banners {
    margin-bottom: 40px;
    margin-top: 35px;
}

.slick-initialized .home-banner {
    display: flex;
    padding-right: 40px;
}

.banner-left {
    padding: 55px 44px;
    background-color: #000;
    color: #fff;
    width: 50%;
}

.banner-right {
    width: 50%;
}

.banner-right img {
    width: 100%;
    height: 100%;
}

.banner-left>* {
    margin-top: 12px;
    margin-bottom: 12px;
}

.banner-text-1,
.banner-text-2 {
    font-size: 44px;
    line-height: normal;
}

.banner-text-2 {
    font-size: 24px;
    color: #1ae584;
}

.slick-arrow.slick-disabled {
    display: none !important;
}

.slick-arrow {
    border: 0;
    color: transparent;
    background: #fff;
    display: flex;
    position: absolute;
    top: 42%;
    right: -30px;
    box-shadow: 0 0 4px 0#00000040;
    z-index: 1;
}

.slick-arrow::after {
    content: " ";
    display: block;
    width: 30px;
    height: 30px;
    background: url("../imgs/arrow-r.34282da97f92.png");
    margin: 9px;
}

.slick-prev::after {
    transform: rotate(180deg);
}

.slick-prev {
    right: unset;
    left: -30px;
}

.banner-button {
    font-size: 14px;
    padding: 10px 30px;
    color: #1ae584;
    border: 1px solid #1ae584;
}

.banner-button:hover {
	color: #fff;
	background-color: #18C371;
}

.home-santehnika {
    color: #fff;
    background-color: #000;
    border: 1px solid #55656f;
}

.subcats-header {
    padding-top: 20px;
    padding-left: 40px;
    padding-bottom: 30px;
    display: flex;
}

.subcats-header h2 {
    font-size: 36px;
    color: #fff;
}

.subcats-header a {
    font-size: 14px;
    color: #18c371;
    margin: auto 15px auto auto;
}

.subcat-cards,
.subcat-cards>div {
    display: flex;
    flex-wrap: wrap;
}

.subcat-cards .subcat-card,
.subcat-cards .subcat-card-2 {
    position: relative;
}

.subcat-cards .subcat-card:hover img,
.subcat-cards .subcat-card-2:hover img {
    opacity: .4;
}

.subcat-card img,
.subcat-card-2 img {
    width: 100%;
}

.subcat-card span,
.subcat-card-2 span {
    position: absolute;
    left: 36px;
    bottom: 25px;
}

.subcat-card a,
.subcat-card-2 a {
    color: #fff;
}

.subcat-card span {
    font-size: 18px;
    max-width: 80%;
}

.subcat-card-2 span {
    font-size: 38px;
}

.row-cols-2 .subcat-card {
    width: 50%;
}

.row-cols-2 .subcat-card-2,
.service-banner-img img {
    width: 100%;
}

.slider-item-img img {
    max-width: 100%;
    position: absolute;
    max-height: 100%;
    /* Квадратный бокс карточки: без contain картинка с атрибутами
       width/height растягивалась в квадрат (обе границы сжимают
       разные стороны, соотношение не пересчитывается). */
    object-fit: contain;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
}

.home-cat img {
    width: 100%;
}

.slider-item-img img {
    margin: auto;
}

.slider-item-img {
    display: flex;
    overflow: hidden;
    position: relative;
}

.slider-item-img:before {
    content: "";
    padding-top: 100%;
    float: left;
}

.slider-item-name {
    height: 5rem;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.row-cols-5 {
    margin-left: -20px;
    margin-right: -20px;
}

.row-cols-5>div>* {
    padding-left: 20px;
    padding-right: 20px;
    margin-bottom: 40px;
}

.row-cols-5>.col-1 {
    flex: 0 0 auto;
    width: 20%;
}

.row-cols-5>.col-2 {
    flex: 0 0 auto;
    width: 40%;
}

.row-cols-5>.col-3 {
    flex: 0 0 auto;
    width: 60%;
}

.row-cols-5>.col-4 {
    flex: 0 0 auto;
    width: 80%;
}

.row-cols-5>.col-5 {
    flex: 0 0 auto;
    width: 100%;
}

.home-cats {
    margin-top: 100px;
}

.home-cats-header {
    margin-bottom: 50px;
}

.home-cats .row-cols-5 {
    display: flex;
    flex-wrap: wrap;
}

.home-cat,
.home-cat a {
    position: relative;
}

.home-cat:hover img {
	opacity: .4;
}

.home-cat a {
    display: block;
    color: #0a222d;
}

.home-cat span {
    font-size: 18px;
    display: block;
    position: absolute;
    bottom: 10px;
    left: 40px;
}

.items-list-header {
    margin-top: 60px;
    margin-bottom: 50px;
}

.related-products h2 {
	font-weight: 700;
	font-size: 32px;
	line-height: 42px;
}

.items-slider {
    margin-left: -20px;
    margin-right: -20px;
}

.items-slider .slick-arrow {
    right: -5px;
    padding: 0;
}

.items-slider .slick-prev {
    left: -5px;
    right: unset;
}

.item-slider {
    padding-left: 20px;
    padding-right: 20px;
	padding-top: 9px;
	padding-bottom: 9px;
}

.product-wrapper {
    border: 1px solid #e8e8ea;
    /*box-shadow: 0 0 9px 0#00000033;*/
}

.product-wrapper:hover {
	box-shadow: 0px 0px 9px 0px #00000033;
}

.product-wrapper>a {
    padding: 10px;
    display: block;
	position: relative;
}

.slider-item-name,
.slider-item-vendor {
    font-size: 16px;
    line-height: 26px;
    color: #000;
}

.slider-item-vendor {
  min-height: 52px;
  max-width: 120px;
}

.slider-item-week-price {
  font-size: 24px;
  font-weight: 700;
  line-height: 26px;
  color: #1c9d7e;
  position: absolute;
  right: 10px;
  bottom: 10px;
}
.slider-item-week-price span {
  display: block;
  color: #55656f;
  font-weight: normal;
  font-size: 14px;
}
.week-price-text {
}
.week-price-text {
  font-size: 14px;
  font-weight: 400;
  color: #55656f;
  margin-bottom: 5px !important;
}

.slider-item-buttons {
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    border-top: 1px solid #e8e8ea;
    height: 63px;
}

.slider-item-price {
    display: flex;
}

.slider-item-old-price .price {
    font-size: 18px;
    font-weight: 700;
    line-height: 26px;
    color: #1c9d7e;
    display: block;
    margin: 10px 0 0;
    padding-left: 10px;
    padding-right: 10px;
}

.slider-item-old-price .old-price,
.slider-item-price .price {
    font-size: 18px;
    font-weight: 700;
    line-height: 26px;
    color: #000;
    display: block;
    margin: auto 0;
    padding: 0 10px;
}

.slider-item-old-price .old-price {
    font-size: 14px;
    font-weight: 400;
    color: #55656f;
    margin: -5px 0 5px;
    text-decoration: line-through;
}

.slider-item-buttons>.slider-item-fav-button {
    border-left: 1px solid #e8e8ea;
    border-right: 1px solid #e8e8ea;
}

.slider-item-buttons>.slider-item-comp-button {
    border-right: 1px solid #e8e8ea;
}

.slider-item-buttons > .slider-item-cart-button > form {
    padding: 0;
    margin: 0;
    width: 100%;
    height: 100%;
}

.slider-item-buttons>.slider-item-cart-button>a,
.slider-item-buttons > .slider-item-cart-button button,
.slider-item-buttons>.slider-item-comp-button>a,
.slider-item-buttons>.slider-item-fav-button>a {
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    font-size: 0;
    border: none;
}

.slider-item-buttons>.slider-item-fav-button>a {
    background: url("../imgs/icos/fav-icon.877b670c7170.png")no-repeat 50%;
}

.slider-item-buttons>.slider-item-fav-button>a:hover, .slider-item-buttons>.slider-item-fav-button>a.in-fav:hover {
    background: url("../imgs/icos/fav-icon-hover.c051b5a64b5d.png")no-repeat 50%#f5f5f5;
}

.slider-item-buttons>.slider-item-fav-button>a.in-fav {
    background: url("../imgs/icos/fav-icon-hover.c051b5a64b5d.png")no-repeat 50%;
}

.slider-item-buttons>.slider-item-comp-button>a {
    background: url("../imgs/icos/compare-icon.2e6bdeb5ddba.png")no-repeat 50%;
}

.slider-item-buttons>.slider-item-comp-button>a:hover, .slider-item-buttons>.slider-item-comp-button>a.in-comp:hover {
    background: url("../imgs/icos/compare-icon-hover.6ee9ff5087c8.png")no-repeat 50%#f5f5f5;
}

.slider-item-buttons>.slider-item-comp-button>a.in-comp {
    background: url("../imgs/icos/compare-icon-hover.6ee9ff5087c8.png")no-repeat 50%;
}

.slider-item-buttons>.slider-item-cart-button>a, .slider-item-buttons > .slider-item-cart-button button {
    background: url("../imgs/icos/cart-icon.0b3f093a46b3.png")no-repeat 50%#039e54;
}

.slider-item-buttons>.slider-item-cart-button>a:hover, .slider-item-buttons > .slider-item-cart-button button:hover {
    background: url("../imgs/icos/cart-icon.0b3f093a46b3.png")no-repeat 50%#08874b;
}

/* Успех добавления: не серый (не читался как «добавлено»), а тёмный
   с белой галочкой — фирменный цвет сайта. */
.slider-item-buttons>.slider-item-cart-button>a.in-cart, .slider-item-buttons > .slider-item-cart-button button.in-cart {
    background: #0A222D;
    display: flex;
    align-items: center;
    justify-content: center;
}

.slider-item-buttons>.slider-item-cart-button>a.in-cart::after, .slider-item-buttons > .slider-item-cart-button button.in-cart::after {
    content: '';
    width: 15px;
    height: 8px;
    border: 3px solid #fff;
    border-top: 0;
    border-right: 0;
    transform: rotate(-45deg);
    margin-top: -3px;
}

/* --- Анимация добавления в корзину ------------------------------------- */
.add-to-cart-btn.in-cart {
    background: #0A222D;
}

.add-to-cart-btn.in-cart::before {
    content: '\2713\00a0';
}

.compare-add-to-cart.in-cart {
    background: #0A222D;
    color: #fff;
    border-color: #0A222D;
}

.nc-add-pop {
    animation: nc-add-pop .45s ease;
}

@keyframes nc-add-pop {
    0% { transform: scale(1); }
    35% { transform: scale(.88); }
    70% { transform: scale(1.06); }
    100% { transform: scale(1); }
}

.nc-cart-fly {
    position: fixed;
    z-index: 1080;
    width: 64px;
    height: 64px;
    margin: -32px 0 0 -32px;
    border-radius: 50%;
    background-color: #0A222D;
    background-size: cover;
    background-position: center;
    box-shadow: 0 6px 18px rgba(10, 34, 45, .35);
    pointer-events: none;
    opacity: .95;
    transition: transform .75s cubic-bezier(.45, .05, .35, 1),
                opacity .75s ease;
}

.nc-cart-fly--check::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    width: 16px;
    height: 8px;
    border: 3px solid #fff;
    border-top: 0;
    border-right: 0;
    transform: translate(-50%, -60%) rotate(-45deg);
}

/* Пульс корзины — только анимация. display менять НЕЛЬЗЯ: якорь .user-lists
   обязан оставаться table-cell, иначе он выходит из табличной строки шапки
   и корзина уезжает на вторую строку (перенос появлялся после каждого
   добавления товара). transform к table-cell применяется. */
a.cart.nc-cart-pulse {
    animation: nc-cart-pulse .55s ease;
}

@keyframes nc-cart-pulse {
    0% { transform: scale(1); }
    30% { transform: scale(1.25); }
    55% { transform: scale(.92); }
    100% { transform: scale(1); }
}

.service-banner {
    margin: 100px 0;
}

.service-banner-text {
    background: #0a222d;
    padding: 40px 70px;
    display: flex;
    flex-direction: column;
}

.service-banner-text>* {
    margin-top: auto;
    margin-bottom: auto;
}

.service-banner-text-1 {
    font-size: 44px;
    font-weight: 400;
    line-height: 44px;
    color: #fff;
}

.service-banner-phone,
.service-banner-text-2 {
    font-size: 24px;
    font-weight: 400;
    line-height: 44px;
    color: #1ae584;
}

.service-banner-phone {
    line-height: 30px;
    color: #fff;
}

.popular-brands-header {
    display: flex;
    margin-top: 100px;
    margin-bottom: 50px;
}

.popular-brands-header h2 {
    flex: 1;
    margin: auto;
}

.popular-brands-header a {
    margin: auto;
}

.popular-brands-wrapper {
    display: flex;
    flex-wrap: wrap;
}

.brand-wrapper {
    padding-left: 20px;
    padding-right: 20px;
}

.brand-card {
    color: #000;
    font-size: 16px;
    font-weight: 400;
    line-height: 20px;
    display: block;
    border: 1px solid #bcc2c6;
    padding: 20px;
}

.brand-s-desc {
    height: 40px;
    overflow: hidden;
}

.brand-card:hover {
    color: #000;
    background: rgba(0, 0, 0, 10%);
}

.brand-card:hover img {
    filter: brightness(90%) saturate(120%);
}

.brand-img {
    height: 33px;
}

.brand-img img {
    max-height: 22px;
    max-width: 100%;
}

.brand-img img.large {
    max-height: 42px;
}

.content-banners {
    display: flex;
    flex-wrap: wrap;
    margin-left: -20px;
    margin-right: -20px;
}

.content-banner-wrapper {
    padding-left: 20px;
    padding-right: 20px;
    color: #fff;
}

.content-banner {
    position: relative;
}

.content-banner>img {
    width: 100%;
}

.content-banner-text {
    position: absolute;
    left: 35px;
    top: 100px;
    max-width: 30%;
}

.content-banner-text-1 {
    font-size: 20px;
    font-weight: 400;
    line-height: 24px;
    margin-bottom: 20px;
}

.content-banner-text-2 {
    font-size: 16px;
    font-weight: 400;
    line-height: 20px;
}

a.button-url {
    padding: 10px 30px;
    border: 1px solid #1ae584;
    color: #1ae584;
    font-size: 14px;
    line-height: 17px;
    font-weight: 600;
}

.content-banner>a {
    position: absolute;
    left: 35px;
    bottom: 40px;
}

.callback-form {
    margin-left: -20px;
    margin-right: -20px;
    display: flex;
    flex-wrap: wrap;
    margin-top: 70px;
}

.callback-form-wrapper {
    padding-left: 20px;
    padding-right: 20px;
}

.callback-content {
    padding: 15px 30px;
    padding-left: 0;
}

#cheap .callback-content {
    padding-left: 30px;
}

.callback-content.green-bg {
    padding: 15px 30px;
}

.callback-content .small-text {
    font-size: 16px;
    font-weight: 300;
    margin-bottom: 30px;
}

.callback-content .worktime {
    color: #1c9d7e;
    font-size: 14px;
    font-weight: 300;
}

.callback-phone-number {
    font-size: 44px;
    line-height: 54px;
    font-weight: 300;
    margin-bottom: 28px;
}

.callback-content .last-text {
    font-weight: 300;
    font-size: 16px;
    line-height: 20px;
}

.tpl-component-netcat-module-requests-request.tpl-block-popup { z-index: 500; position: fixed; left: 0; right: 0; top: 0; bottom: 0; min-width: 100%; max-width: 100%; border: none; overflow-y: auto; background: rgba(0, 0, 0, 0.5); text-align: center; width: 100%; }
.tpl-component-netcat-module-requests-request .tpl-block-popup-background { position: fixed; left: 0; right: 40px; bottom: 0; top: 0; }
.tpl-component-netcat-module-requests-request .tpl-block-popup-container { position: relative; display: inline-block; text-align: left; padding: 35px 90px 60px; margin: 20px 0; min-width: 250px; max-width: 1060px; background: #fff; border-radius: 2px; box-shadow: 0 3px 15px rgba(0, 0, 0, 0.1); }
.tpl-component-netcat-module-requests-request .tpl-block-popup-container .tpl-block-popup-close-button { width: 50px; height: 50px; border-radius: 25px; background: url("/netcat_template/class/netcat_module_requests_request/images/icon_close.png") 50% 50% no-repeat; border: 1px solid #e5e5e5; transition: all .1s ease; position: absolute; top: 15px; right: 15px; }
.tpl-component-netcat-module-requests-request .tpl-block-popup-container .tpl-block-popup-close-button:hover { border-color: #999; }
.tpl-component-netcat-module-requests-request .tpl-block-popup-container .tpl-block-popup-close-button:active { border-color: #999; box-shadow: inset 0 4px 5px rgba(0, 0, 0, 0.25); }
.tpl-component-netcat-module-requests-request .tpl-block-popup-body { font-size: 18px; }
.tpl-component-netcat-module-requests-request .tpl-block-popup-body P { margin: 0; padding: 0 0 10px; }
.tpl-component-netcat-module-requests-request.tpl-block-popup-message .tpl-block-popup-body { margin: 35px 0; }
.tpl-component-netcat-module-requests-request.tpl-block-popup-message .tpl-block-popup-icon { width: 50px; height: 50px; background-size: 50px; background-repeat: no-repeat; margin: 20px 0 10px; }
.tpl-component-netcat-module-requests-request.tpl-block-popup-message.tpl-state-success .tpl-block-popup-icon { background-image: url('/netcat_template/class/netcat_module_requests_request/images/icon_success.svg'); }
.tpl-component-netcat-module-requests-request.tpl-block-popup-message.tpl-state-error .tpl-block-popup-icon { background-image: url('/netcat_template/class/netcat_module_requests_request/images/icon_error.svg'); }
.tpl-component-netcat-module-requests-request.tpl-block-popup-form .tpl-block-popup-container { padding-top: 40px; }
.tpl-component-netcat-module-requests-request.tpl-block-popup .tpl-block-fields:first-child { margin-top: 40px; }
.tpl-component-netcat-module-requests-request.tpl-block-popup-form .tpl-block-popup-container { max-width: 520px; padding-top: 55px; padding-left: 0; padding-right: 0; }
.tpl-component-netcat-module-requests-request .tpl-block-popup-body { margin: 15px 60px; }


.head-message {
    font-size: 16px;
    margin-top: 15px;
    text-align: center;
    margin-bottom: -15px;
    z-index: 2;
    position: relative;
}

.green-bg {
    background-color: #039e54;
}

.green-bg,
.green-bg h2 {
    color: #fff;
}

.callback-content form {
    margin-top: 35px;
}

.callback-content form .form-fields {
    position: relative;
}

form input {
    margin: 10px 0;
    border: 0;
}

.form-fields > .col-md-6 {
    width: 100%;
}

.callback-content .tpl-component-netcat-module-requests-request .tpl-block-input {
    margin-bottom: 0;
}

.callback-content .tpl-component-netcat-module-requests-request .tpl-block-input INPUT, 
.callback-content .tpl-component-netcat-module-requests-request .tpl-block-input INPUT:focus {
    width: 50%;
    margin: 10px 0;
    border: 0;
    padding: 12px 15px;
    font-size: 14px;
    border-radius: 0;
    font-family: "Montserrat", sans-serif;
}

.callback-content .tpl-component-netcat-module-requests-request .tpl-block-input textarea, 
.callback-content .tpl-component-netcat-module-requests-request .tpl-block-input textarea:focus {
    margin: 10px 0;
    border: 0;
    padding: 12px 15px;
    font-size: 14px;
    border-radius: 0;
    font-family: "Montserrat", sans-serif;
}

.callback-content .tpl-component-netcat-module-requests-request .tpl-block-input INPUT[type="checkbox"] {
    box-sizing: unset;
    width: 100%;
    background: unset;
    border-radius: 0;
    outline: none;
    color: unset;
    -webkit-appearance: auto;
    transition: unset;
    width: 15px;
    height: 15px;
}

.callback-content .tpl-component-netcat-module-requests-request .tpl-field-privacy-policy-agree .tpl-caption {
    display: flex;
    padding: 0 10px;
    margin: auto 0;
}

.pd-agree-wrapper,
.text-submit {
    display: flex;
}

.pd-agree-wrapper input {
    min-width: 18px;
    height: 18px;
    margin: 14px 27px 19px 0;
    padding: 0;
}

.pd-agree-wrapper label {
    margin: auto 0;
}

.form-check-input:checked {
    background-color: #0d6efd;
    border-color: #0d6efd;
}

#cheap .form-fields > .form-button-wrapper {
    position: relative;
    top: unset;
}

.form-fields > .form-button-wrapper {
    position: absolute;
    right: 0;
    width: unset;
    top: 75px;
}

.form-fields > .form-button-wrapper > .form-button {
    width: auto;
}

.text-submit button, .callback-content .tpl-component-netcat-module-requests-request .tpl-block-button {
    border: 0;
    background: #1ae584;
    padding: 12px 35px;
    line-height: 17px;
    font-size: 14px;
    color: #0a222d;
    margin-left: auto;
    margin-top: auto;
    margin-bottom: auto;
    font-weight: unset;
    width: unset;
    border-radius: 0;
    min-height: unset;
}

.callback-content .tpl-component-netcat-module-requests-request .tpl-block-button[disabled="disabled"] {
    opacity: unset;
}

footer .footer-container-wrapper {
    background: #0a222d;
    padding: 40px 30px;
    color: #fff;
}

footer .footer-header {
    display: flex;
    flex-wrap: wrap;
    margin-bottom: 27px;
}

footer .social-buttons {
    margin: auto 0 auto auto;
}

footer .social-button {
    margin-right: 18px;
}

footer .footer-wrapper {
    display: flex;
}

footer .footer-left-wrapper {
    display: flex;
    flex-direction: column;
    margin-right: 20px;
}

footer .footer-left-top-text {
    color: #1ae584;
    font-size: 18px;
    line-height: 26px;
}

footer .footer-left-bottom-text {
    font-size: 14px;
    line-height: 20px;
    margin-top: auto;
}

footer .footer-wrapper .footer-right-wrapper {
    margin-left: 20px;
    flex: 1 1 auto;
    width: unset;
}

footer .footer-right-wrapper p {
    font-size: 14px;
    line-height: 20px;
}

.breadcrumbs {
    margin-top: 7px;
    margin-bottom: 35px;
    font-size: 14px;
    line-height: 28px;
    color: #55656F;
}

.breadcrumbs a {
    font-size: 14px;
    line-height: 28px;
    color: #55656F;
    text-decoration: underline;
}

.product-details-wrapper {
    display: flex;
    flex-wrap: wrap;
}

.product-left {
    position: sticky;
    top: 15px;
    max-height: 100vh;
}

.product-details-wrapper > .col-2 > .product-right {
	margin-bottom: 0;
}

.product-details-wrapper .slick-arrow {
    z-index: 1001;
    font-size: 0;
}

.product-details-wrapper .product-gallery-nav .slick-arrow {
    box-shadow: none;
    top: 0;
    height: 100%;
    right: 0;
}

.product-details-wrapper .product-gallery-nav .slick-arrow::after {
    margin: auto 9px;
}

.product-details-wrapper .product-gallery-nav .slick-prev {
    left: 0;
    right: unset;
}

.product-gallery {
    margin-bottom: 10px;
    /*height: calc(100vh - 380px);
    align-content: center;*/
}

#order {
    margin-right: 0;
}

.product-gallery, .product-gallery-nav {
    margin-right: 16%;
}

.product-gallery .slick-track, .product-gallery-nav .slick-track {
    display: flex;
    max-height: 80vh;
}

.product-gallery-nav .slick-slide {
    border: 1px solid #D9D9D9;
    display: flex;
}

/* Главная галерея: одна высота на все слайды (равные, без растяжения).
   Высота фиксирована, ширину считаем из атрибутов width/height
   (aspect-ratio); при упирании в ширину слайда object-fit: contain
   вписывает картинку без искажения. Раньше без height в CSS высота
   бралась жёстко от атрибута — при ограничении ширины картинка
   растягивалась. */
.product-gallery .slick-slide img {
    max-width: 100%;
    width: auto;
    margin: auto;
    height: min(80vh, 700px);
    object-fit: contain;
}

/* Миниатюры-навигация: та же логика, высота — под слайд (126px с
   рамкой): иначе миниатюра растягивалась на высоту главной галереи
   и обрезалась overflow: hidden слайда. */
.product-gallery-nav .slick-slide img {
    max-width: 100%;
    width: auto;
    margin: auto;
    height: 124px;
    object-fit: contain;
}

.product-gallery button.toggle-fullscreen {
    display: none;
}

.fullscreen-w .product-gallery button.toggle-fullscreen {
    content: '';
    bottom: 0;
    position: absolute;
    right: 0;
    width: 40px;
    height: 40px;
    background-image: url("../imgs/icos/fullscreen.99a98c926213.png");
    background-size: contain;
    transform: rotateZ(90deg);
    opacity: 0.6;
    background-repeat: no-repeat;
    cursor: pointer;
    background-color: transparent;
    border: none;
    z-index: 1000;
    top: unset;
    box-shadow: none;
    display: block;
}

.product-gallery button.toggle-fullscreen:hover {
    opacity: 1;
}

.fullscreen-w .product-gallery button.toggle-fullscreen {
    bottom: unset;
    top: 80px;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e");
}

.toggle-fullscreen.slick-arrow::after {
    display: none;
}

.product-gallery .slick-slide {
    margin-top: auto;
    margin-bottom: auto;
    display: flex;
    max-height: 80vh;
}

.product-gallery-nav .slick-slide {
    max-height: 126px;
    /*max-width: 126px;*/
    margin: 0 15px;
    min-height: calc(100vw / 17);
    max-width: calc(100vw / 17);
}

h1.product-name {
    font-size: 32px;
    line-height: 42px;
    font-weight: 700;
    color: #0a222d;
    margin-bottom: 36px;
}

.product-info-wrapper-small {
	display: flex;
}

.product-s-specifications {
    display: flex;
    flex-wrap: wrap;
	flex-direction: column;
	flex: 1;
	padding-right: 10px;
}

/* Контейнер для одной строки характеристики */
p.spec {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin: 8px 0;
    font-size: 14px;
    width: 100%;
}

/* Название характеристики (левая часть) */
p.spec .spec-name {
    order: 1;
    background: #fff; /* Цвет фона страницы, чтобы перекрыть точки под текстом */
    padding-right: 4px;
    color: #555;
}

/* Значение характеристики (правая часть) */
p.spec .spec-value {
    order: 3;
    background: #fff; /* Цвет фона страницы */
    padding-left: 4px;
    font-weight: bold;
    color: #000;
}

/* Автоматический заполнитель точками между ними */
p.spec::after {
    content: "";
    order: 2;
    flex-grow: 1;
    border-bottom: 2px dotted #ccc; /* Точки. Если нужна сплошная линия, замените dotted на solid */
    margin-bottom: 4px;
    position: relative;
    top: -1px;
}


.product-s-specifications p {
    font-size: 14px;
    line-height: 25px;
    font-weight: 500;
	margin-bottom: 5px;
}

.product-s-specifications a {
    text-decoration: underline;
}

.product-s-specifications .all-specs-url {
    display: flex;
}

.all-specs-url a {
    text-decoration: none;
    font-weight: 600;
	font-size: 18px;
    line-height: 24px;
    margin-top: 10px;
    margin-bottom: 5px;
    
}

.product-info-wrapper-small .shipping-info {
  flex: 1;
  background-color: #E8E8EA;
  padding: 10px;
}

.shipping-info p {
    font-size: 14px;
    line-height: 24px;
}

.shipping-info .shipping-header, .payment-info .payment-text {
    font-weight: 600;
    font-size: 14px;
    line-height: 24px;
    margin-top: 1rem;
    margin-bottom: 0;
}

.payment-info {
    display: flex;
	flex-direction: column;
	margin-top: auto;
}

.payment-info .payment-img {
    margin-top: 18px;
    margin-bottom: auto;
    height: 24px;
}

.price-wrapper {
    display: flex;
    margin-top: 55px;
    border-bottom: 1px solid #000;
}

.price-wrapper .price {
    font-size: 28px;
    line-height: 26px;
    font-weight: 700;
}

.price-wrapper .beat-price {
    margin-left: auto;
}

.price.green {
  color: #039e54;
}

.price-wrapper > .old-price span {
    font-family: Montserrat;
    font-weight: 400;
    font-size: 28px;
    line-height: 26px;
    letter-spacing: 0%;
    text-decoration: line-through;
    color: #55656F;
    margin-left: 20px;
}

.price-wrapper .beat-price a {
    font-size: 14px;
    line-height: 26px;
    font-weight: 600;
}

.product-right .discount-wrapper {
    display: flex;
    margin-top: 14px;
    font-weight: 600;
    font-size: 16px;
    line-height: 100%;
    letter-spacing: 0%;
    color: #fff;
}

.product-right .discount-wrapper .discount-value {
    background-color: #FF5C00;
    padding: 15px;
    font-size: 26px;
    align-content: center;
}

.product-right .discount-wrapper .discount-description {
    background-color: #08874b;
    flex: 1;
    padding: 17px;
}

.product-buttons {
    margin-top: 40px;
    display: flex;
}

.buy-now-btn, .add-to-cart-btn {
    width: 100%;
    font-size: 16px;
    line-height: 20px;
    font-weight: 600;
    color: #fff;
    border: none;
    padding-top: 20px;
    padding-bottom: 20px;
}

.buy-now-btn {
    background: #039e54;
}

.add-to-cart-btn {
    background: #919BA1;
}

.button-wrapper {
    border-top: none;
}

.button-wrapper.slider-item-buttons {
    padding-left: 0;
}

.button-wrapper.slider-item-buttons > .slider-item-fav-button {
    border: 1px solid #e8e8ea;
    margin-right: -1px;
}

.button-wrapper.slider-item-buttons > .slider-item-comp-button {
    border: 1px solid #e8e8ea;
}

  .product-right h2 {
    font-size: 32px;
    line-height: 42px;
    font-weight: 700;
}

  .related-products .items-slider {
    display: flex;
    flex-wrap: wrap;
}

  .related-products .item-slider {
    margin-bottom: 40px;
}

  .related-products .product-wrapper {
    box-shadow: none;
}

  .full-specifications {
    font-size: 14px;
    font-weight: 400;
    line-height: 30px;
}

  .full-specifications .specs-table {
    display: flex;
    flex-wrap: wrap;
}

  .full-specifications .specs-table li {
    display: flex;
}

  .full-specifications .specs-table .spec-value, .full-specifications .specs-table .spec-value-green {
    margin-left: auto;
    text-align: center;
    width: 20%;
}

  .spec-value-green {
    color: #039e54;
}

  .catalog-header {
    display: flex;
    margin-bottom: 18px;
}

  .catalog-wrapper h1 {
    font-size: 32px;
    line-height: 28px;
    font-weight: 700;
    margin-top: auto;
    margin-bottom: auto;
}

  .catalog-header a {
    font-weight: 600;
    font-size: 14px;
    line-height: 18px;
    margin: auto 0 auto auto;
}

.catalog-header a.back_link {
    margin-left: 0;
    font-size: 0;
    width: 30px;
    height: 30px;
    background-image: url("../imgs/icos/menu-back.8a11b9d3a8c9.png");
    background-size: contain;
    margin-right: 8px;
    display: block;
}

.catalog-wrapper .sort-wrapper {
    /*margin-bottom: 65px;*/
  }

.catalog-wrapper .fast-filters-wrapper {
    display: flex;
    /*border-bottom: 1px solid #bcc2c6;*/
    padding: 0;
    /*padding-bottom: 17px;*/
	padding: 20px 10px;
	background-color: #E8E8EA;
}

.catalog-wrapper .fast-filters-wrapper:not(.subdivs-filters-wrapper) a, .catalog-wrapper .order-wrapper a {
    color: #0A222D;
    font-size: 14px;
    line-height: 25px;
    margin-right: 20px;
    display: inline-block;
}

.catalog-wrapper .subdivs-filters-wrapper .subdiv_wrapper a {
	display: flex;
}

.catalog-wrapper .subdivs-filters-wrapper .subdiv_wrapper a img {
	margin: -5px 12px -5px -12px;
	height: calc(100% + 10px);
}

.catalog-wrapper .subdivs-filters-wrapper .subdiv_wrapper a span {
	color: #0A222D;
	font-size: 14px;
	font-weight: 500;
	line-height: 16px;
	margin: auto 0;
	word-wrap: anywhere;
}

.catalog-wrapper .subdivs-filters-wrapper .subdiv_wrapper a:hover span {
	color: #039e54;
}

.subdivs_wrapper {
	width: 100%;
	/*display: flex;
	gap: 60px;*/
}

.subdivs_wrapper button {
  font-size: 0;
  line-height: 0;
  padding: 0;
  top: 19%;
}

.subdivs_wrapper button.slick-prev {
    left: -45px;
}

.product-details-wrapper > .fullscreen-w {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 100;
    background: #fff;
    height: 100vh;
    width: 100vw;
    display: flex;
}

.product-details-wrapper > .fullscreen-w > .product-left {
    width: 60vw;
    margin: auto;
    align-content: center;
}

.subdivs_wrapper button::after {
  margin: 3px;
}

.subdivs_wrapper .slick-track {
	margin: 0 -20px;
}

.subdivs_wrapper .subdiv_wrapper {
  background-color: #E8E8EA;
  display: flex;
  height: 60px;
  padding: 5px 12px;
}

.subdiv_wrapper_outer {
  padding: 0 20px;
}

/*.subdivs_wrapper .subdiv_wrapper:first-child {
	margin-left: 0;
}

.subdivs_wrapper .subdiv_wrapper:last-child {
	margin-right: 0;
}*/

.catalog-wrapper .fast-filters-wrapper a.active, .catalog-wrapper .fast-filters-wrapper a:hover {
    color: #039e54;
}

.catalog-wrapper .sort-wrapper .order-wrapper {
    margin-left: auto;
	width: min-content;
	margin-top: 20px;
	margin-bottom: 20px;
}

.fast-filters-wrapper.subdivs-filters-wrapper {
	background-color: transparent;
	padding: 0;
}

div.dropdown-menu {
    border-radius: 0;
}

.catalog-wrapper .sort-wrapper a.dropdown-item.active, .catalog-wrapper .sort-wrapper a.dropdown-item:active {
    color: #fff;
    text-decoration: none;
    background-color: #039e54;
}

.catalog-wrapper .sort-wrapper .order-wrapper .dropdown-menu {
	width: min-content;
}

.catalog-products-wrapper, .products-list {
    display: flex;
    flex-wrap: wrap;
}

.products-list {
    height: max-content;
}

.products-list .product-wrapper {
    box-shadow: none;
}

.filter-fields > .filter-range, .filter-fields > .filter-checkbox {
    border-bottom: 1px solid #BCC2C6;
}

.filter-field label span {
    font-size: 14px;
    line-height: 18px;
}

.filter-field-name {
    font-weight: 700;
    font-size: 14px;
    line-height: 18px;
    color: #0A222D;
    padding: 0;
    margin-bottom: 11px;
    margin-top: 17px;
}

.filter-checkbox .filter-field-name {
    padding: 20px 0;
    margin: 0;
    cursor: pointer;
}

.filter-checkbox .filter-field-name::after {
    margin-top: auto;
    margin-bottom: auto;
    width: .5rem;
    height: .5rem;
    border-top: 1px solid transparent;
    border-bottom: 1px solid;
    border-left: 1px solid;
    border-right: 1px solid transparent;
    transform: rotate(-225deg);
    display: inline-block;
    margin-left: .5rem;
    vertical-align: .255em;
    content: "";
    transition: cubic-bezier(.68,-0.55,.27,1.55);
    margin-bottom: -0.35rem;
}

.filter-checkbox .filter-field-name.collapsed::after {
    transform: rotate(-45deg);
    margin-bottom: 0;
}

.nc_netshop_filter_row {
    display: flex;
}

.filter-checkbox .filter-field {
    padding-bottom: 20px;
}

.nc_netshop_filter_row label {
    padding-right: 15px;
}

.nc_netshop_filter_row input {
    border: 1px solid #BCC2C6;
    padding: 11px 8px;
    width: 76px;
    margin: 0;
    margin-bottom: 11px;
}

.filter-checkbox label {
    display: flex;
}

.filter-checkbox span {
    margin: auto 9px;
}

.filter-checkbox input {
    width: auto;
    margin: 7px 0;
}

.filter-buttons button {
    width: 100%;
    margin-top: 23px;
    border: none;
    background: #919BA1;
    color: #fff;
    font-size: 14px;
    line-height: 17px;
    font-weight: 600;
    padding: 10px;
}

.filter-buttons input {
    width: 100%;
    margin-top: 23px;
    border: none;
    background: #919BA1;
    color: #fff;
    font-size: 14px;
    line-height: 17px;
    font-weight: 600;
    padding: 10px;
    cursor: pointer;
}

.filter-buttons input:hover {
    background: #7E878D;
}

/* --- Фильтр: поиск по значениям чекбоксов («Еще...») ---------------------- */
.filter-checkbox-search {
    width: 100%;
    border: 1px solid #BCC2C6;
    padding: 9px 10px;
    font-size: 14px;
    line-height: 18px;
    color: #0A222D;
    background: #fff;
    margin-bottom: 10px;
    -webkit-appearance: none;
    appearance: none;
    border-radius: 0;
}

.filter-checkbox-search:focus {
    outline: none;
    border-color: #039e54;
}

.filter-checkbox-search::-webkit-search-cancel-button {
    cursor: pointer;
}

.filter-checkbox-more {
    display: block;
    width: 100%;
    border: none;
    background: none;
    padding: 8px 0 0;
    font-size: 14px;
    font-weight: 600;
    color: #0A222D;
    text-align: left;
    text-decoration: underline;
    cursor: pointer;
}

.filter-checkbox-more:hover {
    color: #039e54;
}

.filter-checkbox-empty {
    font-size: 13px;
    color: #919BA1;
    padding: 6px 0;
}

/* --- Фильтр: ползунок диапазона «от/до» -------------------------------- */
.range-slider {
    position: relative;
    height: 24px;
    margin: 2px 0 16px;
}

.range-slider-track {
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    height: 4px;
    transform: translateY(-50%);
    background: #BCC2C6;
    border-radius: 2px;
}

.range-slider-fill {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background: #039e54;
    border-radius: 2px;
}

.range-slider-input {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 24px;
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
    pointer-events: none;
    -webkit-appearance: none;
    appearance: none;
    z-index: 3;
}

.range-slider-input::-webkit-slider-runnable-track {
    height: 24px;
    background: none;
}

.range-slider-input::-webkit-slider-thumb {
    -webkit-appearance: none;
    pointer-events: auto;
    width: 16px;
    height: 16px;
    margin-top: 4px; /* (24 - 16) / 2 — вертикально по центру дорожки */
    border-radius: 50%;
    background: #fff;
    border: 2px solid #039e54;
    box-shadow: 0 1px 2px rgba(10, 34, 45, .35);
    cursor: pointer;
}

.range-slider-input::-moz-range-track {
    height: 24px;
    background: none;
    border: none;
}

.range-slider-input::-moz-range-thumb {
    pointer-events: auto;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #fff;
    border: 2px solid #039e54;
    box-shadow: 0 1px 2px rgba(10, 34, 45, .35);
    cursor: pointer;
}

.range-slider-input:focus {
    outline: none;
}

.range-slider-input:focus-visible::-webkit-slider-thumb {
    outline: 2px solid #0A222D;
    outline-offset: 2px;
}

.range-slider-input:focus-visible::-moz-range-thumb {
    outline: 2px solid #0A222D;
    outline-offset: 2px;
}

div.readmore-wrapper {
    margin-bottom: 0;
}

a.readmore {
    color: #0A222D;
    width: 100%;
    padding: 13px;
    background: #BCC2C6;
    font-size: 14px;
    text-align: center;
    display: block;
    margin-bottom: 26px;
}

.pagination-wrapper {
    display: flex;
}

.catalog-pagination {
    margin: auto;
    display: flex;
}

.catalog-page-arrow {
    display: flex;
    margin: 0 8px;
}

.catalog-page-arrow img {
    max-height: 100%;
    margin-top: auto;
    margin-bottom: auto;
}

.catalog-page-next img {
    transform: rotate(180deg);
}

.catalog-pagination a.catalog-page {
    border: 1px solid #BCC2C6;
    color: #000;
    font-size: 18px;
    line-height: 40px;
    display: block;
    width: 40px;
    text-align: center;
    margin-left: -1px;
}

.catalog-pagination a.catalog-page:hover, .catalog-pagination a.catalog-page-current {
    background: #BCC2C6;
}

li.catalog-cat-nav-item {
    display: block;
}

li.catalog-cat-nav-item::before {
    color: #039e54;
    font-size: 18px;
}

.catalog-cat-nav-item a {
    font-size: 14px;
    line-height: 28px;
    color: #0A222D;
}

.catalog-cat-nav-item a:hover {
    color: #039e54;
}

.catalog-cat-nav-item.active > a {
    color: #039e54;
    font-weight: 600;
}

.cart-wrapper > div.active {
    display: flex;
    flex-wrap: wrap;
    margin-left: -20px;
    margin-right: -20px;
}

.cart-page-stage {
    display: none;
}

.cart-wrapper > div > * {
    padding-left: 20px;
    padding-right: 20px;
}

.cart-wrapper h2 {
    width: 100%;
    font-size: 32px;
    line-height: 28px;
    font-weight: 700;
    margin-bottom: 70px;
}

.cart-wrapper .cart-content {
    width: 70%;
}

.cart-wrapper .shipping-payment-methods {
    width: 30%;
    font-size: 14px;
    line-height: 28px;
}

.text-green {
    color: #039e54;
}

.cart-right-contacts {
    font-size: 18px;
    line-height: 28px;
    color: #039e54;
}

.cart-right-phone-number {
    font-size: 26px;
    line-height: 36px;
}

.cart-product-wrapper {
    display: flex;
    flex-wrap: wrap;
    margin-bottom: 35px;
}

.cart-product-wrapper.deleted {
    opacity: 0.5;
}

.cart-product-img {
    width: 84px;
    margin-right: 25px;
}

.cart-product-img img {
    width: 100%;
    /* атрибуты width/height — только соотношение сторон, не жёсткая
       высота (без этого картинка в корзине была 84×1200) */
    height: auto;
}

.cart-product-name {
    font-size: 16px;
    line-height: 26px;
    font-weight: 700;
}

.cart-product-name a {
    color: #000;
}

.cart-product-info {
    display: flex;
    flex-direction: column;
    flex: 1;
}

.cart-product-price-wrapper {
    display: flex;
    flex-wrap: wrap;
    border: 1px solid #BCC2C6;
    margin-top: auto;
    font-size: 18px;
    line-height: 26px;
}

.cart-quantity {
    display: flex;
    border-right: 1px solid #BCC2C6;
}

.cart-quantity a {
    color: #000;
    padding: 0 10px;
    font-size: 24px;
    line-height: 28px;
    margin-top: auto;
    margin-bottom: auto;
}

.cart-quantity a.cart-input-plus {
    color: #039e54;
}

.cart-quantity input {
    font-size: 18px;
    line-height: 26px;
    border: none;
    -moz-appearance: textfield !important;
    -webkit-appearance: none;
    padding: 5px;
    width: 73px;
    text-align: center;
}

.cart-price {
    margin-left: auto;  
    margin-top: auto;
    margin-bottom: auto;
    margin-right: 20px;
    font-weight: 700;
}

.cart-product-buttons {
    display: flex;
}

.cart-product-buttons a {
    font-size: 0;
    width: 38px;
    display: block;
    height: 100%;
    border-left: 1px solid #BCC2C6;
}

.slider-item-button.item-fav-button {
    background: url("../imgs/icos/fav-cart-icon.0a26b67fd9e3.png")no-repeat 50%;
    background-size: 20px;
}

.slider-item-button.item-fav-button:hover {
    background: url("../imgs/icos/fav-icon-hover.c051b5a64b5d.png")no-repeat 50%;
    background-size: 20px;
}

/* Товар в избранном: состояние после AJAX-переключения (shop.js ставит
   .in-fav). Раньше правила не было — сердечко оставалось серым, хотя
   класс добавлялся. Цвет — как активное сердечко в карточках. */
.slider-item-button.item-fav-button.in-fav,
.slider-item-button.item-fav-button.in-fav:hover {
    background: url("../imgs/icos/fav-icon-hover.c051b5a64b5d.png")no-repeat 50%;
    background-size: 20px;
}

.cart-item-delete-button .item-cart-button {
    background: url("../imgs/icos/del-icon.fbc47511abbd.png")no-repeat 50%;
}

.cart-summary {
    font-size: 18px;
    line-height: 28px;
    font-weight: 700;
    color: #0A222D;
    padding: 10px 0;
    border-top: 1px solid #BCC2C6;
    border-bottom: 1px solid #BCC2C6;
}

.user-info {
    width: 35%;
    margin-top: 35px;
}

.user-info p {
    font-size: 16px;
    line-height: 28px;
    font-weight: 700;
}

.user-info > input {
    width: 100%;
    padding: 7px 10px;
    margin-bottom: 14px;
}

form.cart-wrapper .cart-quantity input {
    margin: 0;
    border: none;
}

form.cart-wrapper input {
    margin-bottom: 14px;
    border: 1px solid;
}

.cart-submit-wrapper {
    width: 100%;
    padding-top: 23px;
}

.cart-submit-wrapper button {
    padding: 29px 65px;
    color: #fff;
    background: #039e54;
    font-size: 14px;
    line-height: 17px;
    font-weight: 600;
    border: none;
}

.cart-submit-wrapper button:disabled, .cart-submit-wrapper button[disabled] {
    background-color: #D9D9D9;
    color: #6d6d6d;
}

.bottom-line {
    border-bottom: 1px solid #BCC2C6;
    margin-top: 39px;
}

.catalog-mobile-subheader {
    display: none;
}

.contacts-wrapper {
    display: flex;
}

.address-left, .address-right {
    flex: 1;
}

.address-right {
    margin-bottom: 77px;
}

.address-title, .wt-title {
    font-size: 32px;
    line-height: 39px;
    margin-bottom: 25px;
}

.address-content, .wt-content {
    font-size: 14px;
    line-height: 22px;
}

.about-wrapper-out {
    display: flex;
    flex-direction: column;
}

.about-header {
    margin-bottom: 87px;
}

.about-wrapper-out h2 {
    font-size: 32px;
    line-height: 39px;
    font-weight: 700;
}

.about-reverse-wrapper {
    display: flex;
    flex-direction: row-reverse;
}

.about-reverse-wrapper .about-text-wrapper {
    padding-right: 44px;
}

.about-wrapper {
    display: flex;
}

.about-wrapper .about-green-text {
    margin-top: 40px;
    margin-bottom: 58px;
}

.about-wrapper .about-img {
    padding-right: 44px;
}

.about-green-text {
    font-size: 18px;
    font-weight: 600;
    line-height: 28px;
    color: #08874b;
    max-width: 60%;
}

.about-text-wrapper {
    display: flex;
    flex-direction: column;
    flex: 1 0 50%;
}

.about-text-wrapper h2 {
    margin-top: 75px;
}

.about-text {
    margin-top: auto;
    margin-bottom: auto;
    font-size: 14px;
    line-height: 24px;
}

.about-img {
    flex: 1 0 50%;
}

.about-img img {
    max-width: 100%;
}

.common-info-wrapper {
    display: flex;
    flex-direction: column;
}

.common-info-wrapper > div {
    display: flex;
}

.shipment-payment-info-wrapper h2, .common-info-title {
    margin-top: 60px;
    font-size: 32px;
    font-weight: 700;
    line-height: 39px;
    margin-bottom: 40px;
}

.common-info-title {
    margin-top: 0;
    flex: 0 0 20%;
}

.shipment-info-wrapper {
    display: flex;
}

.shipment-info-wrapper > div {
    flex: 1 0 50%;
}

.shipment-payment-info-wrapper p {
    font-size: 18px;
    line-height: 28px;
}

.delivery-map {
    margin-bottom: 60px;
}

.shipment-payment-info-wrapper .common-info-text p {
    font-size: 14px;
    line-height: 22px;
}

.payment-info-wrapper .about-green-text {
    margin-top: 20px;
}

.personal-info {
    margin-bottom: 100px;
    position: relative;
}

.personal-info-header {
    display: flex;
}

.personal-info h2 {
    flex: 1;
}

.personal-info-links {
    display: flex;
    gap: 30px;
}

.personal-info h2, .order-history h2 {
    font-size: 32px;
    font-weight: 700;
    line-height: 39px;
}

.personal-info form {
    margin-bottom: 40px;
}

.personal-info .fields-wrapper{
    padding-bottom: 20px;
    margin-bottom: 34px;
    border-bottom: 6px solid #E8E8EA;
}

.personal-info form .fields-wrapper{
    display: flex;
    flex-wrap: wrap;
}

.personal-info form .tpl-field {
    display: flex;
    flex-direction: column;
    /*flex: 1 0 auto;*/
    flex: 1 0 12.5%;
}

.personal-info form .tpl-field.tpl-field-big {
    display: flex;
    flex-direction: column;
    /*flex: 1 0 auto;*/
    flex: 1 0 25%;
}

.personal-info form .tpl-field-big input {
    width: 90%;
}

.personal-info form input::-webkit-outer-spin-button,
.personal-info form input::-webkit-inner-spin-button {
    -webkit-appearance: none;
}

.personal-info form input[type='number'] {
    -moz-appearance: textfield;
}

.personal-info form .tpl-field label {
    color: #55656F;
    font-size: 14px;
    line-height: 22px;
}

.personal-info form .tpl-field-button {
    flex: 0 0 100%;
    display: block;
}

.personal-info form .tpl-field input {
    padding: 5px 0;
    margin: 0;
    font-size: 16px;
    line-height: 24px;
    border-bottom: 1px solid #E8E8EA;
}

.personal-info form .tpl-field input:focus {
    outline: none;
}

.personal-info form .tpl-button-primary {
    padding: 20px 70px;
    background-color: #039e54;
    color: #fff;
    border: none;
    font-size: 14px;
    line-height: 22px;
    font-weight: 700;
}

.addresses .fields-wrapper {
    margin-bottom: 10px;
}

.personal-info.addresses form .tpl-field-button, #address_0, #user-edit-form .tpl-field-button {
    display: none;
}

.main_address {
    font-size: 14px;
    line-height: 22px;
    color: #08874B;
}

.address_control {
    display: flex;
}

.new_address_wrapper {
    padding-bottom: 20px;
    border-bottom: 6px solid #E8E8EA;
}

.new_main_address, .delete_address, .add_address {
    font-size: 14px;
    line-height: 28px;
    color: #919BA1;
    cursor: pointer;
    width: fit-content;
}

.new_main_address:hover, .delete_address:hover, .add_address:hover {
    color: #08874B;
}

.delete_address {
    margin-left: auto;
}

.addresses-common-form {
    display: none;
}

.order-history-header {
    font-weight: 500;
    padding: 20px 0;
    margin-top: 20px;
}

.order-history-header, .order-info-wrapper, .order-item-wrapper {
    font-size: 14px;
    line-height: 17px;
    display: flex;
    flex-wrap: wrap;
    padding: 20px;
}

.order-info-wrapper, .order-items-wrapper {
    background-color: #F5F5F5;
}

.order-id, .order-date, .order-sum, .shipment-date, .order-item-quantity {
    flex: 0 0 10%;
}

.order-status, .order-item-name {
    flex: 1 0 auto;
}

.payment-method, .order-item-price {
    flex: 0 0 15%;
}

.order-item-image {
    flex: 0 0 5%;
}

.order-item-image img {
    width: 100%;
    filter: brightness(96%) saturate(120%);
}

.order-item-name, .order-item-price, .order-item-quantity {
    align-self: center;
}

.order-item-name a {
    color: #000;
    margin: auto 30px;
}

.modal-content {
    border-radius: 0;
}

#authModal h2, #cheap h2, #passwordModal h2 {
    font-size: 28px;
    font-weight: 700;
    line-height: 34px;
}

#cheap .modal-content .tpl-field-privacy-policy-agree input {
    min-width: 18px;
    height: 18px;
    margin: 14px 0 19px 0;
    padding: 0;
    width: auto;
}

#cheap .form-fields > .form-button-wrapper > .form-button {
    margin: 0;
    padding: 0;
}

#authModal .modal-content div {
    font-size: 14px;
    line-height: 17px;
    margin-top: 25px;
}

#authModal .modal-content input, #cheap .modal-content input, #passwordModal .modal-content input {
    width: 100%;
    font-size: 20px;
    line-height: 24px;
    border: 1px solid #D9D9D9;
    outline: 0;
}

#authModal .modal-content input::-webkit-outer-spin-button,
#authModal .modal-content input::-webkit-inner-spin-button {
    -webkit-appearance: none;
}

#authModal .modal-content button, #cheap .modal-content button, #passwordModal .modal-content button {
    width: 100%;
    border: 1px solid #D9D9D9;
    font-size: 18px;
    font-weight: 700;
    line-height: 22px;
    padding: 17px;
}

#authModal .modal-content button.newCode, #authModal .modal-content button.newCodeReq {
    font-size: 18px;
    font-weight: 400;
    line-height: 22px;
}

#authModal .modal-content button.newCodeReq {
    background-color: #fff;
    color: #000;
}

#authModal .modal-content button.newCode, #authModal .modal-content button.newCode:disabled, #authModal .modal-content button.newCode:disabled:hover {
    color: #6d6d6d;
}

#authModal .authSend, #cheap .modal-content .callback-content button {
    border: none;
    color: #FFF;
    background-color: #039e54;
}

#authModal .authSend:disabled, #authModal .authSend:disabled:hover, 
#cheap .modal-content .callback-content button:disabled, 
#cheap .modal-content .callback-content button:disabled:hover {
    background-color: #D9D9D9;
    color: #6d6d6d;
}

#authModal .modal-content .auth-agreement {
    color: #55656F;
    font-size: 14px;
    font-weight: 400;
    line-height: 21px;
}

#authModal .modal-content .modalheader, #cheap .modal-content .modalheader, #passwordModal .modal-content .modalheader {
    position: absolute;
    width: 100%;
    display: flex;
    padding-right: 0;
    padding-left: 0;
    align-items: end;
    flex-wrap: wrap;
}

#authModal .modal-content .modalheader .btn-close, #cheap .modal-content .modalheader .btn-close, #passwordModal .modal-content .modalheader .btn-close {
    flex: 0 0 1em;
    z-index: 1;
    border: 0;
    padding: 24px;
    margin-left: auto;
}

.changePhone {
    line-height: 34px;
    font-size: 14px;
    color: #000;
}

.changePhone::before {
    content: "";
    background: url("../imgs/back-arrow.c1e317072a7d.png") no-repeat;
    padding: 2px 14px;
}

.modal-content button:focus {
    box-shadow: none;
}

.cart-error {
    position: absolute;
    margin-top: 40px;
    color: red;
}

.cart-shipping-methods-wrapper {
    margin: 40px 0;
}

.cart-shipping-methods-wrapper > p {
    font-size: 16px;
    line-height: 28px;
    font-weight: 700;
}

.cart-shipping-methods {
    display: flex;
    /* Зазор между способами не зависит от их порядка: раньше отступы
       давали классы (.courier-method margin-right / самовывоз margin-left)
       — при другом порядке (самовывоз первым) блоки «слипались». Классы
       в шаблоне остаются (на них завязаны JS-обработчики), но на
       отступы больше не влияют. */
    gap: 40px;
}

.cart-shipping-methods > div {
    /* Раньше flex-grow растягивал единственный способ на всю ширину.
       При двух способах каждый занимал calc(50% - 20px) (минус отступы
       между блоками) — оставляем эту же ширину и для одного способа. */
    flex: 0 1 calc(50% - 20px);
}

.cart-shipping-methods > div > div {
    height: 100%;
    border: 2px solid #BCC2C6;
}

.delivery-method-name input {
    display: none;
}

.delivery-method-wrapper label {
    display: flex;
    height: 100%;
    position: relative;
    cursor: pointer;
}

.delivery-method-wrapper label .delivery-method-info {
    flex: 1 0;
    margin-top: auto;
    margin-bottom: auto;
    margin-left: 10px;
}

.shipment-ico {
    flex: 0 1 15%;
    margin: auto;
    display: flex;
}

.shipment-ico img {
    max-width: 100%;
}

.courier-method .shipment-ico svg {
    max-width: 72%;
    margin: auto;
}

.delivery-method-description p {
    margin-bottom: 0;
}

svg.delivery-checked {
    position: absolute;
    width: 30px;
    right: 10px;
    top: 10px;
    display: none;
}

.delivery-method-name span {
    font-size: 16px;
    font-weight: 500;
    line-height: 36px;
}

.delivery-method-price {
    font-size: 14px;
    margin-bottom: 5px;
    color: #039e54;
}

.delivery-method-description p {
    font-size: 14px;
    line-height: 18px;
    margin-bottom: 5px;
}

.cart-stage-top {
    text-align: center;
    font-size: 20px;
    line-height: 28px;
    margin-bottom: 90px;
}

.tpl-block-main.tpl-component-order-added {
    flex: 1;
}

.tpl-block-main.tpl-component-order-added fieldset {
    text-align: center;
    margin-top: 90px;
    font-size: 20px;
    line-height: 26px;
}

.tpl-block-main.tpl-component-order-added legend {
    font-size: 30px;
    font-weight: bold;
    line-height: 36px;
}

#stageOk .cart-page-content {
    margin: auto;
}

/* --- Успех заказа (/order/success/): карточка под крошками --------------- */
.order-success {
    padding: 6px 0 70px;
}

.order-success-card {
    max-width: 640px;
    margin: 0 auto;
    background: #fff;
    border: 1px solid #E7EBED;
    box-shadow: 0 2px 10px rgba(10, 34, 45, .06);
    padding: 48px 40px 44px;
    text-align: center;
}

.order-success-icon {
    width: 76px;
    height: 76px;
    margin: 0 auto 24px;
    border-radius: 50%;
    background: #E6F6EF;
    display: flex;
    align-items: center;
    justify-content: center;
}

.order-success-icon img {
    width: 34px;
    height: auto;
}

.order-success-title {
    font-size: 30px;
    line-height: 36px;
    font-weight: 700;
    color: #0A222D;
    margin: 0 0 22px;
}

.order-success-number {
    font-size: 16px;
    line-height: 24px;
    color: #0A222D;
    margin: 0 0 12px;
}

.order-success-number-value {
    display: inline-block;
    background: #E6F6EF;
    color: #039e54;
    font-weight: 700;
    font-size: 18px;
    padding: 2px 14px;
    margin-left: 6px;
}

.order-success-note {
    font-size: 15px;
    line-height: 24px;
    color: #5A6A72;
    margin: 0 0 34px;
}

.order-success-note span {
    color: #0A222D;
    font-weight: 600;
}

.order-success-actions {
    display: flex;
    justify-content: center;
    gap: 14px;
    flex-wrap: wrap;
}

.order-success-button {
    display: inline-block;
    padding: 17px 44px;
    font-size: 14px;
    line-height: 17px;
    font-weight: 600;
    text-decoration: none;
    border: 1px solid transparent;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}

.order-success-button--primary {
    background: #039e54;
    color: #fff;
}

.order-success-button--primary:hover {
    background: #028A49;
    color: #fff;
}

.order-success-button--ghost {
    background: #fff;
    color: #0A222D;
    border-color: #BCC2C6;
}

.order-success-button--ghost:hover {
    color: #039e54;
    border-color: #039e54;
}

@media (max-width: 576px) {
    .order-success-card {
        padding: 36px 20px 32px;
    }

    .order-success-title {
        font-size: 24px;
        line-height: 30px;
    }

    .order-success-actions {
        flex-direction: column;
    }

    .order-success-button {
        width: 100%;
    }
}

/* --- Пустая корзина (/cart/): карточка в стиле страницы успеха --------- */
.cart-empty {
    padding: 6px 0 70px;
}

.cart-empty-card {
    max-width: 640px;
    margin: 0 auto;
    background: #fff;
    border: 1px solid #E7EBED;
    box-shadow: 0 2px 10px rgba(10, 34, 45, .06);
    padding: 48px 40px 44px;
    text-align: center;
}

.cart-empty-icon {
    width: 76px;
    height: 76px;
    margin: 0 auto 24px;
    border-radius: 50%;
    background: #E6F6EF;
    display: flex;
    align-items: center;
    justify-content: center;
}

.cart-empty-icon svg {
    width: 36px;
    height: 36px;
}

.cart-empty-title {
    font-size: 30px;
    line-height: 36px;
    font-weight: 700;
    color: #0A222D;
    margin: 0 0 14px;
}

.cart-empty-text {
    font-size: 15px;
    line-height: 24px;
    color: #5A6A72;
    margin: 0 0 34px;
}

.cart-empty-actions {
    display: flex;
    justify-content: center;
    gap: 14px;
    flex-wrap: wrap;
}

.cart-empty-button {
    display: inline-block;
    padding: 17px 44px;
    font-size: 14px;
    line-height: 17px;
    font-weight: 600;
    text-decoration: none;
    border: 1px solid transparent;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}

.cart-empty-button--primary {
    background: #039e54;
    color: #fff;
}

.cart-empty-button--primary:hover {
    background: #028A49;
    color: #fff;
}

.cart-empty-button--ghost {
    background: #fff;
    color: #0A222D;
    border-color: #BCC2C6;
}

.cart-empty-button--ghost:hover {
    color: #039e54;
    border-color: #039e54;
}

@media (max-width: 576px) {
    .cart-empty-card {
        padding: 36px 20px 32px;
    }

    .cart-empty-title {
        font-size: 24px;
        line-height: 30px;
    }

    .cart-empty-actions {
        flex-direction: column;
    }

    .cart-empty-button {
        width: 100%;
    }
}

a.logoff-button, a.change-password {
    display: block;
    font-size: 14px;
    color: red;
    width: fit-content;
}

.cookie-banner {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background: #000000;
    color: #ffffff;
    padding: 16px 20px;
    display: none; /* скрыт по умолчанию */
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    z-index: 9999;
    font-family: 'Inter', sans-serif;
    border-top: 1px solid #222;
}

.cookie-text {
    font-size: 14px;
    line-height: 1.4;
    flex: 1;
}

.cookie-btn {
    background: #039e54;
    color: #ffffff;
    border: none;
    padding: 10px 22px;
    font-size: 14px;
    cursor: pointer;
    border-radius: 4px;
    white-space: nowrap;
    transition: 0.2s;
}

.cookie-btn:hover {
    background: #02b965;
}


@media (min-width: 991.98px) and (max-width: 1725.98px) {
    .product-right {
        margin-left: -95px;
    }

    .slider-item-old-price .old-price, .slider-item-price .price {
        font-size: 14px;
    }

    .slider-item-old-price .price {
        font-size: 14px;
    }

    .slider-item-old-price .old-price {
        font-size: 12px;
    }

    .top-catalog-menu ul {
        font-size: 12px;
    }
	
	.catalog-menu-lists.row-cols-5 > * {
	  width: 25%;
	}
}

@media (min-width: 991.98px) and (max-width: 1599.98px) {
    .container-fluid {
        padding-left: 20px;
        padding-right: 20px;
    }

    .slick-arrow {
        right: -10px;
    }
    
    .slick-prev {
        left: -10px;
        right: unset;
    }

    .catalog-menu {
        min-width: 150px;
    }

    .banner-text-1, .banner-text-2 {
        font-size: 30px;
    }

    .banner-text-2 {
        font-size: 18px;
    }

    .slick-arrow::after {
        margin: 5px;
    }

    .service-banner-text-1 {
        font-size: 36px;
    }

    .brand-s-desc {
        font-size: 12px;
        line-height: 14px;
    }

    .content-banner-text-1 {
        font-size: 16px;
        line-height: 20px;
        margin-bottom: 5px;
    }

    .content-banner-text-2 {
        font-size: 12px;
        line-height: 16px;
    }

    .catalog-menu-wrapper .collapse {
        left: -20px;
    }

    .catalog-menu-content {
        padding-left: 20px;
        padding-right: 20px;
    }

    .address-title, .wt-title {
        font-size: 24px;
        line-height: 28px;
    }

    .about-wrapper-out h2 {
        font-size: 24px;
        line-height: 29px;
    }

    .about-header {
        margin-bottom: 45px;
    }

    .about-green-text {
        font-size: 14px;
        line-height: 18px;
        max-width: 100%;
    }

    .about-text {
        font-size: 12px;
        line-height: 16px;
    }

    .about-text-wrapper h2 {
        margin-top: 30px;
    }

    .about-wrapper .about-green-text {
        margin-top: 10px;
        margin-bottom: 20px;
    }
}

@media (min-width: 991.98px) and (max-width: 1279.98px) {
    .top-phone {
        font-size: 14px;
    }

    .top-menu-left {
        flex: unset;
    }

    .top-menu > ul {
        padding-left: 0;
    }

    .user-lists a {
        font-size: 0;
        padding-right: 5px;
    }

    .banner-left {
        padding: 24px 30px;
    }

    .banner-text-1, .banner-text-2 {
        font-size: 22px;
    }

    .banner-text-2 {
        font-size: 16px;
    }

    nav.top-catalog-menu {
        display: none;
    }

    .catalog-menu button {
        font-size: 12px;
    }

    input {
        font-size: 12px;
    }

    h2 {
        font-size: 32px;
        line-height: 36px;
    }

    .subcat-card span {
        font-size: 14px;
        left: 26px;
        bottom: 11px;
    }

    .home-cats {
        margin-top: 60px;
    }

    .home-cat span {
        font-size: 14px;
        left: 30px;
        max-width: 71%;
    }

    .slider-item-name, .slider-item-vendor {
        font-size: 14px;
    }

    .slider-item-old-price .price {
        font-size: 13px;
        margin: 0;
    }

    .slider-item-old-price .old-price, .slider-item-price .price {
        font-size: 13px;
    }

    .slider-item-buttons {
        height: 52px;
    }

    .service-banner-text {
        padding: 20px 40px;
    }

    .service-banner-text-1 {
        font-size: 24px;
    }

    .service-banner-phone, .service-banner-text-2 {
        font-size: 16px;
    }

    .popular-brands-wrapper > .brand-wrapper > .brand-card {
        padding: 10px;
    }

    .content-banner-text {
        left: 20px;
        top: 40px;
    }

    .content-banner > a {
        left: 20px;
        bottom: 10px;
    }

    footer .footer-left-top-text {
        font-size: 14px;
        line-height: 20px;
    }

    footer .footer-left-bottom-text {
        font-size: 12px;
        line-height: 16px;
    }

    footer .footer-right-wrapper p {
        font-size: 12px;
        line-height: 16px;
    }

    .catalog-menu-lists.row-cols-5 > * {
        width: 33.33%;
    }

    .catalog-wrapper .sort-wrapper .order-wrapper {
        width: auto;
    }

    .catalog-wrapper .sort-wrapper .order-wrapper a {
        margin-right: 0;
    }

    h1.product-name {
        font-size: 24px;
        line-height: 30px;
      }

    .product-s-specifications p {
        font-size: 14px;
        line-height: 26px;
    }

    .buy-now-btn, .add-to-cart-btn {
        font-size: 14px;
        line-height: 12px;
    }

    .shipment-payment-info-wrapper p {
        font-size: 14px;
        line-height: 22px;
    }

    .shipment-payment-info-wrapper h2, .common-info-title {
        font-size: 24px;
        line-height: 32px;
    }

    .common-info-title {
        flex: 0 0 25%;
    }
}

@media (max-width: 1023.98px) {
    body, input {
        font-size: 12px;
        line-height: 15px;
    }

    main {
        margin-bottom: 30px;
    }

    h2 {
        font-size: 20px;
        line-height: 24px;
    }

    .container-fluid {
        padding-left: 15px;
        padding-right: 15px;
    }

    .top-wrapper {
        margin-right: -15px;
        margin-left: -15px;
        padding-left: 15px;
        background: #BCC2C6;
    }

    .top-wrapper .top-menu-right {
        display: none;
    }

    .logo {
        width: 50%;
        margin-right: 50%;
        margin-bottom: 18px;
    }

    .head-message {
        font-size: 14px;
        margin-bottom: -40px;
    }

    .catalog-menu {
        width: 30%;
        min-width: unset;
    }

    .catalog-menu button {
        font-size: 12px;
        padding: 11px 9px;
    }

    .search {
        width: 60%;
        margin-left: 15px;
        margin-right: 0;
    }

    .user-lists {
        position: absolute;
        right: 15px;
        font-size: 0;
    }

    .user-lists a {
        border-color: #919BA1;
    }

    .user-lists .favorites, .user-lists .compare {
        display: none;
    }

    .user-lists .contacts {
        display: table-cell;
        background: url("../imgs/icos/contacts-icon-top-mobile.03fad720dbc0.png") no-repeat 8px 50%;
        padding-right: 0;
        padding-left: 40px;
    }

    .user-lists .login {
        display: table-cell;
        padding: 0 20px;
        background-position-x: 8px;
        opacity: 0.45;
    }

    #authModal h2 {
        font-size: 26px;
    }
    
    .user-lists .cart {
        background: url("../imgs/icos/cart-icon-top-mobile.72a77a704178.png") no-repeat 8px 50%;
        padding-right: 0;
        padding-left: 40px;
    }

    section.personal-info .fields-wrapper {
        flex-direction: column;
    }

    section.personal-info .fields-wrapper input {
        width: 100%;
    }

    section.personal-info .personal-info-header {
        flex-direction: column;
        margin-bottom: 10px;
    }

    section.order-history .order-history-header {
        display: none;
    }

    section.order-history .order-info-wrapper {
        flex-direction: column;
        gap: 10px;
    }

    section.order-history .order-info-wrapper .order-id {
        font-size: 18px;
        font-weight: 700;
        line-height: 26px;
        color: #000;
        display: block;
        margin: auto 0;
    }

    section.order-history .order-info-wrapper .order-id::before {
        content: "Заказ №";
    }

    section.order-history .order-info-wrapper .order-date::before {
        content: "Дата заказа: ";
    }

    section.order-history .order-info-wrapper .order-sum::before {
        content: "Сумма заказа: ";
    }

    section.order-history .order-info-wrapper .order-status::before {
        content: "Статус заказа: ";
    }

    section.order-history .order-info-wrapper .shipment-date::before {
        content: "Дата доставки: ";
    }

    section.order-history .order-item-wrapper {
        flex-direction: column;
        gap: 10px;
        border-bottom: 1px solid #919BA1;
    }

    section.order-history .order-items-wrapper {
        margin-bottom: 40px;
    }

    section.order-history .order-item-image {
        overflow: hidden;
    }

    section.order-history .order-item-name a {
        margin: 0;
    }

    section.order-history .order-item-quantity, section.order-history .order-item-price {
        align-self: end;
        font-size: 18px;
        font-weight: 700;
        line-height: 26px;
        color: #000;
        display: block;
        margin: auto 0;
        padding: 0 10px;
    }

    section.order-history .order-item-price {
        color: #039e54;
    }

    .catalog-menu-wrapper .collapse {
        left: -15px;
		height: calc(100vh - 170px);
		overflow: auto;
    }

    .catalog-menu-content {
        padding-left: 15px;
        padding-right: 15px;
    }

    .catalog-menu-header {
        border: none;
    }

    .catalog-menu-lists.row-cols-5 {
        flex-direction: column;
    }

    .catalog-menu-lists.row-cols-5 .catalog-menu-main-item {
        padding: 0;
		margin-bottom: 0;
    }

    .catalog-menu-item-header {
        margin-bottom: 0;
    }
	
	.catalog-menu-main-item span {
		padding: 20px 10px;
		line-height: 18px;
		color: #000;
		background: url("../imgs/icos/arrow-next.4284689b7d37.png") calc(100% - 8px) no-repeat;
		flex: 1;
		background-size: 8px;
	}
	
	.catalog-menu-item-header img.menu-main-img {
		display: none;
	}
	
	.catalog-menu-item-header a {
		display: flex;
		border-top: 1px solid #BCC2C6;
		border-bottom: 1px solid #BCC2C6;
	}
	
	.catalog-menu-item-header .menu-mobile-img {
		display: block;
		width: 36px !important;
		height: 36px;
		margin-top: auto;
		margin-bottom: auto;
	}
	
	

    .catalog-menu-main-item ul {
        display: none;
    }

    .catalog-menu-main-item ul li {
        display: inline;
        line-height: 16px;
    }

    .catalog-menu-main-item ul li::after {
        content: ', ';
    }

    .catalog-menu-main-item ul li:last-child::after {
        content: unset;
    }

    .catalog-menu-main-item ul li::before {
        content: unset;
    }

    .catalog-menu-item-wrapper {
        width: auto;
        padding: 0 8px;
        margin-top: 0;
    }

    .top-catalog-menu {
        overflow-x: scroll;
        border: none;
    }

    .top-catalog-menu ul {
        width: max-content;
    }

    .top-catalog-menu ul li {
        margin-left: 20px;
    }

    .home-banners {
        margin-left: -15px;
        margin-right: -15px;
    }

    .slick-track {
        display: flex;
    }

    .slick-initialized .home-banner {
        flex-direction: column-reverse;
        margin: 0;
        padding: 0 8px;
    }

    .banner-left, .banner-right {
        width: 100%;
    }

    .banner-right img {
        border-radius: 10px 10px 0 0;
    }

    .banner-left {
        padding: 8px 25px;
        border-radius: 0 0 10px 10px;
    }

    .banner-left img {
        max-width: 30%;
    }

    .banner-text-1 {
        font-size: 19px;
        line-height: 24px;
    }

    .banner-text-2 {
        font-size: 16px;
        line-height: 24px;
    }

    .banner-button, .banner-button:hover {
        font-size: 12px;
        line-height: 15px;
        border: none;
        padding: 0;
    }

    .slick-arrow {
        right: 5px;
        left: unset;
        bottom: 12px;
        top: unset;
        padding: 0;
    }

    .slick-arrow::after {
        margin: 5px;
        background-size: 25px;
        background-repeat: no-repeat;
        background-position: center;
    }

    .slick-arrow.slick-prev {
        right: 47px;
    }

    .product-details-wrapper > .fullscreen-w {
        display: flex;
    }

    .product-details-wrapper > .fullscreen-w > .product-left {
        width: 95%;
        max-height: 87vh;
        margin-top: 35%;
    }

    /*.product-details-wrapper > .fullscreen-w > .product-left button.slick-arrow {
        opacity: 0;
    }*/

    .fullscreen-w .product-gallery button.toggle-fullscreen {
        top: -45px;
    }

    .subcats-header {
        padding: 10px;
        border-bottom: 1px solid #E8E8EA;
    }

    .subcats-header h2 {
        font-size: 20px;
        line-height: 44px;
        margin-bottom: 0;
    }

    .subcats-header a {
        font-size: 0;
        margin: auto 0 auto auto;
    }

    .subcat-cards {
        flex-direction: column;
    }

    .row-cols-5 {
        margin-left: -8px;
        margin-right: -8px;
    }

    .row-cols-5 > div > * {
        padding-left: 8px;
        padding-right: 8px;
        margin-bottom: 16px;
    }

    .subcat-cards .col-1 .subcat-card {
        width: 50%;
    }

    .row-cols-5 > .col-2, .row-cols-5 > .col-1 {
        width: unset;
    }

    .subcat-card-2 span {
        left: 25px;
        font-size: 18px;
    }

    .subcat-card span {
        font-size: 12px;
        left: 25px;
        bottom: 5px;
        max-width: 72%;
    }

    .home-cats .home-cat {
        width: 50%;
    }

    .home-cat span {
        font-size: 12px;
        left: 18px;
        bottom: 7px;
    }

    .items-list-header {
        margin-top: 20px;
        margin-bottom: 25px;
    }

    .items-slider {
        margin-left: -8px;
        margin-right: -8px;
    }

    .item-slider {
        padding-right: 8px;
        padding-left: 8px;
    }

    .slider-item-name, .slider-item-vendor {
        font-size: 12px;
    }

    .slider-item-buttons {
        border: none;
        margin: 0;
    }

    .slider-item-buttons .slider-item-old-price, .slider-item-buttons .slider-item-price {
        width: 100%;
    }

    .slider-item-buttons .slider-item-price {
        height: 52px;
    }

    .slider-item-old-price .price {
        margin: 0;
    }

    .product-wrapper {
        box-shadow: none;
    }

    .slider-item-buttons {
        height: 97px;
    }

    .slider-item-buttons.row-cols-5 .col-1 {
        flex: 1;
    }

    .slider-item-buttons.row-cols-5 .slider-item-cart-button.col-1 {
        flex: 1.5;
    }

    .slider-item-buttons.row-cols-5 .col-1 a {
        line-height: 37px;
        border-top: 1px solid #E8E8EA;
    }

    .slider-item-buttons > .slider-item-fav-button {
        border-left: none;
    }

    .service-banner {
        flex-direction: column-reverse;
    }

    .service-banner > .col {
        width: 100%;
    }

    .service-banner-text {
        padding: 22px 11px;
    }

    .service-banner-text p {
        margin-bottom: 13px;
    }

    .service-banner-text img {
        max-width: 45%;
    }

    .service-banner-text-1 {
        font-size: 20px;
        line-height: 24px;
    }

    .service-banner-text-2 {
        font-size: 16px;
        line-height: 20px;
    }

    .service-banner-phone {
        font-size: 20px;
        line-height: 24px;
    }

    .popular-brands {
        overflow-x: scroll;
    }

    .popular-brands-header a {
        display: none;
    }

    .popular-brands-wrapper {
        width: max-content;
    }

    .brand-wrapper {
        padding-left: 8px;
        padding-right: 8px;
        max-width: 252px;
    }

    .brand-card {
        font-size: 16px;
        line-height: 20px;
        padding: 10px;
    }

    .content-banners {
        flex-direction: column;
        margin-top: 30px;
        margin-left: -16px;
        margin-right: -15px;
    }

    .content-banners .content-banner-wrapper {
        width: 100%;
        margin-bottom: 16px;
        padding-left: 16px;
        padding-right: 15px;
    }

    .content-banner-text {
        left: 17px;
        top: 29px;
        max-width: 46%;
    }

    .content-banner-text-1, .content-banner-text-2 {
        font-size: 12px;
        line-height: 16px;
    }

    .content-banner-text-2 {
        max-width: 71%;
    }

    .content-banner > a {
        display: none;
    }

    .callback-form {
        flex-direction: column;
        margin-top: 20px;
        margin-left: -16px;
        margin-right: -15px;
    }

    .callback-form-wrapper {
        width: 100%;
        padding-left: 16px;
        padding-right: 15px;
    }

    .callback-content h2 {
        font-size: 20px;
        line-height: 24px;
    }

    .callback-content .small-text {
        font-size: 16px;
        line-height: 20px;
        margin-bottom: 10px;
    }

    .callback-content .worktime, .callback-content .last-text {
        font-size: 14px;
        line-height: 20px;
    }

    .callback-content .callback-phone-number {
        font-size: 34px;
        line-height: 42px;
        margin-bottom: 16px;
        margin-top: 10px;
    }

    .callback-content.green-bg {
        padding: 20px 12px;
    }

    .callback-content form {
        margin-top: 16px;
    }

    .callback-content input[type="text"] {
        width: 100%;
    }

    .text-submit {
        flex-direction: column;
    }

    .text-submit button {
        margin-left: 0;
        margin-right: auto;
    }

    .pd-agree-wrapper input {
        margin-right: 10px;
    }

    .pd-agree-wrapper label {
        font-size: 10px;
    }

    footer .footer-container-wrapper {
        padding: 23px 14px;
    }

    .footer-logo {
        width: 45%;
    }

    .footer-logo img {
        width: 100%;
    }

    footer .footer-wrapper {
        flex-direction: column;
    }

    .footer-wrapper.row-cols-5 > div {
        width: auto;
        margin-left: 0;
        margin-right: 0;
    }

    footer .footer-left-top-text, footer .footer-left-bottom-text, footer .footer-right-wrapper p {
        font-size: 12px;
        line-height: 16px;
    }

    .footer-copyrights {
        font-size: 10px;
    }

    .cart-wrapper .cart-content, .cart-wrapper .shipping-payment-methods {
        width: 100%;
    }

    .cart-wrapper h2 {
        margin-bottom: 22px;
    }

    .cart-product-img {
        margin-right: 15px;
    }

    .cart-product-name {
        font-size: 14px;
        line-height: 20px;
        height: 6em;
        flex: 1 0 auto;
        margin-bottom: 20px;
    }

    .cart-product-price-wrapper {
        margin-left: -99px;
    }

    .cart-price {
        margin-right: auto;
    }

    .shipping-payment-methods {
        margin-top: 25px;
    }

    .cart-shipping-methods {
        flex-direction: column;
        gap: 0;  /* вертикальные отступы дают margin: 5px 0 у блоков */
    }

    .cart-shipping-methods > div {
        flex: 0 1 auto;
        margin: 5px 0;
    }

    .user-info {
        width: 100%;
    }

    .cart-submit-wrapper {
        text-align: center;
    }

    .product-details-wrapper.row-cols-5 > div {
        width: 100%;
    }

    /* .product-gallery {
        height: 40vh;
    } */

    .product-gallery, .product-gallery-nav {
        margin-right: 0;
    }

    h1.product-name {
        font-size: 16px;
        line-height: 26px;
        margin-bottom: 15px;
    }

    .product-s-specifications.row-cols-3 > div:first-child {
        width: 42%;
    }

    .product-s-specifications.row-cols-3 > div {
        width: 58%;
    }

    .product-s-specifications.row-cols-3 .all-specs-url {
        width: 100%;
    }

    .product-s-specifications p {
        font-size: 12px;
        line-height: 26px;
        margin-bottom: 0;
    }

    .product-s-specifications .all-specs-url a {
        margin-left: 0;
        margin-bottom: 0;
    }

    .product-details-wrapper .shipping-info {
        border-top: 1px solid #D9D9D9;
        margin-top: 20px;
    }

    .shipping-info .shipping-header, .payment-info .payment-text, .shipping-info p {
        font-size: 12px;
        line-height: 20px;
    }

    .price-wrapper {
        box-shadow: 0px -4px 4px 0px #00000026;
        border-radius: 16px 16px 0 0;
        margin-left: -15px;
        margin-right: -15px;
        padding: 30px 15px 10px 15px;
        margin-top: 100px;
    }

    .price-wrapper .price {
        font-size: 18px;
        line-height: 26px;
    }

    .price-wrapper .beat-price a {
        font-size: 12px;
    }

    .product-right .discount-wrapper {
        font-size: 12px;
    }

    .product-buttons {
        margin-top: 14px;
        position: relative;
    }

    .product-buttons.row-cols-5 > .col-2 {
        width: 50%;
    }

    .product-buttons.row-cols-5 > .col-1 {
        position: absolute;
        top: -300%;
        left: 8px;
    }

    .discount-wrapper + .product-buttons.row-cols-5 > .col-1 {
        top: -450%;
    }

    .button-wrapper.slider-item-buttons > .slider-item-fav-button, .button-wrapper.slider-item-buttons > .slider-item-comp-button {
        height: 62px;
        width: 62px;
    }

    .buy-now-btn, .add-to-cart-btn {
        font-size: 12px;
        line-height: 15px;
        padding-top: 12px;
        padding-bottom: 12px;
    }

    .product-right h2 {
        font-size: 20px;
        line-height: 42px;
    }

    .full-specifications .specs-table div {
        width: 100%;
    }

    .specs-table ul {
        padding-left: 0;
    }

    .specs-table ul li::before {
        content: none;
    }

    .catalog-wrapper h1 {
        font-size: 20px;
        line-height: 20px;
    }

    .catalog-header a {
        display: none;
    }

    .sort-wrapper {
        display: none;
    }

    .catalog-products-wrapper > .filter {
        display: none;
        background: #fff;
        width: 100%;
        left: 0;
        height: calc(65vh + 68px);
        position: sticky;
        top: 0;
        overflow-y: scroll;
    }

    .catalog-products-wrapper > .filter > .catalog-category-navigation-wrapper {
        margin-bottom: 40px;
        display: none;;
    }

    .catalog-wrapper .catalog-products-wrapper .products-list {
        width: 100%;
    }

    .catalog-wrapper .catalog-products-wrapper .products-list .products-list-product-wrapper {
        width: 50%;
		flex-basis: auto;
    }

    .filter-buttons button,
    .filter-buttons input {
        background: #039e54;
    }

    .filter-buttons input:hover {
        background: #039e54;
    }

    .filter.show {
        display: block;
    }

    .filter > .filter-wrapper {
        padding-left: 15px;
        padding-right: 15px;
    }

    .catalog-mobile-subheader {
        display: flex;
    }

    .catalog-mobile-subheader > a {
        color: #0A222D;
        line-height: 45px;
    }

    .catalog-mobile-subheader > a#sort {
        margin-right: auto;
    }

    .catalog-mobile-subheader > a.mobile-filter-btn {
        margin-left: auto;
    }

    .catalog-mobile-subheader > .dropdown-menu.show  {
        position: fixed !important;
        bottom: 0 !important;
        transform: unset !important;
        height: auto;
        inset: auto 0 0px 0 !important;
        box-shadow: 0px -4px 4px 0px #00000026;
        border-radius: 16px 16px 0 0;
        padding-top: 30px;
        padding-bottom: 40px;
    }

    .catalog-mobile-subheader .dropdown-item {
        font-size: 14px;
        line-height: 44px;
    }

    .catalog-mobile-subheader .dropdown-item:hover, .catalog-mobile-subheader .dropdown-item.active {
        background-color: transparent;
        color: #039e54;
    }

    .catalog-mobile-subheader .dropdown-item.active {
        background: url("../imgs/icos/checked-icon.f223d608c322.svg") no-repeat 95% 50%;
    }

    a#sort::after {
        content: none;
    }

    .breadcrumbs {
        display: none;
    }

    .ofh {
        overflow-y: hidden;
    }

    .contacts-wrapper {
        flex-direction: column;
    }

    .address-title, .wt-title {
        font-size: 20px;
        line-height: 24px;
        margin-bottom: 25px;
        margin-top: 55px;
    }

    .about-header {
        margin-bottom: 54px;
    }

    .about-wrapper-out h2 {
        font-size: 20px;
        line-height: 26px;
        margin-top: 28px;
    }

    .about-reverse-wrapper {
        flex-direction: column;
    }

    .about-img {
        margin-bottom: 40px;
    }

    .about-green-text {
        font-size: 14px;
        line-height: 22px;
        max-width: 100%;
    }

    .about-text {
        margin-top: 30px;
        margin-bottom: 30px;
        font-size: 12px;
        line-height: 20px;
    }

    .about-wrapper {
        flex-direction: column;
    }

    .about-text-wrapper h2 {
        margin-top: 14px;
    }

    .about-wrapper .about-green-text {
        margin-top: 28px;
        margin-bottom: 18px;
    }
    
    .about-wrapper .about-img, .about-reverse-wrapper .about-text-wrapper {
        padding-right: 0;
    }

    .shipment-info-wrapper, .common-info-wrapper > div {
        flex-direction: column;
    }

    .shipment-payment-info-wrapper h2, .common-info-title {
        margin-top: 40px;
        font-size: 24px;
        line-height: 32px;
        margin-bottom: 20px;
    }

    .shipment-payment-info-wrapper p, .shipment-payment-info-wrapper .common-info-text p {
        font-size: 12px;
        line-height: 20px;
    }
	
	.catalog-menu-header a {
		display: none;
	}
	
	.catalog-menu-header h2 {
		font-size: 24px;
		margin-bottom: 30px;
	}
	
	.cat-menu-back {
		width: 28px;
		background-size: 100%;
		height: 28px;
		line-height: 28px;
	}
	
	.subdivs_wrapper .slick-track {
	  margin: 0px -8px;
	}
	
	.subdiv_wrapper_outer {
	  padding: 0 8px;
	}
	
	.catalog-wrapper .subdivs-filters-wrapper .subdiv_wrapper a span {
		font-size: 10px;
		line-height: 12px;
	}
	
	.catalog-wrapper .subdivs-filters-wrapper .subdiv_wrapper {
		height: 45px;
	}
	
	.sort-wrapper:has(.fast-filters-wrapper.subdivs-filters-wrapper) {
	  display: block;
	}
	
	main.container-fluid {
		margin-top: 30px;
	}
	
	.product-gallery-nav .slick-slide {
		/*min-height: 126px;*/
		max-width: 100%;
		margin: 0 5px;
	}
	
	.product-details-wrapper .product-gallery-nav .slick-arrow::after {
		  margin: auto 0;
		  width: 13px;
		  height: 11px;
		  background-size: 11px;
	}
	
	.product-info-wrapper-small {
		flex-direction: column;
	}
	
	.product-info-wrapper-small .shipping-info {
	  background-color: #fff;
	  padding: 0;
	}
	
	.shipping-info .shipping-header, .payment-info .payment-text {
	  color: #039e54;
	}
	
	.top-catalog-menu {
		display: none;
	}
	
	.callback-content form {
	  margin: 0;
	}
	
	.callback-content form .col-md-12, .callback-content form .col-md-6 {
	  flex: 1 0 100%;
	  padding: 0;
	}
	
	.callback-content form .col-md-12 label, .callback-content form .col-md-6 label {
	  padding: 0;
	  margin: 0;
	}
	
	.callback-content .tpl-component-netcat-module-requests-request .tpl-block-input INPUT:not(#f2710), .callback-content .tpl-component-netcat-module-requests-request .tpl-block-input INPUT:focus:not(#f2710) {
		width: 100%;
	}
	
	.callback-content form .tpl-block-fields > div:nth-child(3) {
		order: 4;
	}
	
	.callback-content form .tpl-block-fields > .form-button-wrapper {
		position: relative;
		  top: unset;
		  order: 3;
		  padding: 0;
		  margin: 0;
	}
	
	.tpl-field-privacy-policy-agree {
		margin-top: 20px;
	}
	
	.tpl-field-privacy-policy-agree > .tpl-value.row > div {
	  flex: 1;
	}
	
}

@media (max-width: 600px) {
    .cookie-banner {
        flex-direction: column;
        align-items: flex-start;
    }

    .cookie-btn {
        width: 100%;
        margin-top: 10px;
    }
}

/* Django messages (ошибки входа и т.п.) — должны быть видимы */
.messages {
    margin: 10px 15px;
}

.messages .message {
    padding: 10px 15px;
    margin-bottom: 8px;
    font-size: 14px;
    line-height: 20px;
    border: 1px solid transparent;
    border-radius: 4px;
}

.messages .message.error {
    background: #fdecea;
    border-color: #f5c6c2;
    color: #b3261e;
}

.messages .message.success {
    background: #edf7ed;
    border-color: #c3e6cb;
    color: #1e7e34;
}

.messages .message.info {
    background: #e8f4fd;
    border-color: #b6dffc;
    color: #0a5ea8;
}

.messages .message.warning {
    background: #fff6e5;
    border-color: #ffe1a8;
    color: #9a6b00;
}

/* ==========================================================================
   Варианты товара: переключатель характеристик на карточке.
   Строка = меняющаяся характеристика, кнопка = ссылка на товар с этим
   значением и текущими значениями остальных характеристик.
   ========================================================================== */

.variants-block {
    margin-top: 22px;
    border-bottom: 1px solid #000;
    padding-bottom: 16px;
}

.variants-row {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 12px;
}

.variants-row:last-child {
    margin-bottom: 0;
}

.variants-key {
    min-width: 130px;
    padding-top: 9px;
    font-size: 14px;
    font-weight: 600;
    color: #55656F;
}

.variants-options {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.variant-option {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    min-width: 100px;
    padding: 8px 12px;
    border: 1px solid #55656F;
    border-radius: 4px;
    color: #000;
    text-decoration: none;
    transition: border-color .15s ease, box-shadow .15s ease,
        background-color .15s ease, color .15s ease;
}

.variant-option:hover,
.variant-option:focus-visible {
    border-color: #FF5C00;
}

/* Выбранный вариант: зелёный #039e54 — рамка, фон и тень, текст белый. */
.variant-option.is-current {
    border-color: #039e54;
    background-color: #039e54;
    box-shadow: 0 0 0 1px #039e54;
    color: #fff;
}

.variant-option-name {
    font-size: 14px;
    line-height: 18px;
    font-weight: 600;
}

.variant-option-price {
    font-size: 13px;
    line-height: 16px;
    color: #55656F;
}

.variant-option.is-current .variant-option-price {
    color: #fff;
}

/* AJAX-переключение вариантов (js/variant-switch.js): пока ответ
 * не пришёл, блок карточки приглушён и не кликается. */
.product-details-wrapper {
    transition: opacity .15s ease;
}

.product-details-wrapper.is-loading {
    opacity: .5;
    pointer-events: none;
}

@media (max-width: 576px) {
    .variants-row {
        flex-direction: column;
        gap: 6px;
    }

    .variants-key {
        min-width: 0;
        padding-top: 0;
    }
}


/* ===== Страницы ошибок 400/403/404/500 (templates/{400,403,404,500}.html).
 * Контентная часть внутри штатной шапки/футера base.html: крупный код
 * ошибки фирменным зелёным, короткий текст и кнопки-действия. */
.error-page {
    max-width: 720px;
    margin: 0 auto;
    padding: 48px 15px 64px;
    text-align: center;
}

.error-page .error-code {
    font-size: 96px;
    font-weight: 700;
    line-height: 1;
    color: #039e54;
}

.error-page h1 {
    margin: 12px 0 8px;
    font-size: 28px;
    font-weight: 600;
}

.error-page .error-lead {
    margin: 0 auto;
    max-width: 560px;
    font-size: 16px;
    line-height: 24px;
    color: #55656F;
}

.error-page .error-lead a {
    color: #039e54;
}

.error-page .error-path {
    margin: 16px 0 0;
    font-size: 14px;
    color: #55656F;
}

.error-page .error-path code {
    padding: 2px 6px;
    border-radius: 4px;
    background: #f1f3f5;
    word-break: break-all;
}

.error-page .error-actions {
    margin-top: 28px;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
}

.error-page .error-btn {
    display: inline-block;
    padding: 10px 28px;
    border: 1px solid #039e54;
    border-radius: 4px;
    background: #fff;
    color: #039e54;
    font-size: 15px;
    text-decoration: none;
    transition: background-color .15s ease, color .15s ease;
}

.error-page .error-btn:hover,
.error-page .error-btn:focus-visible {
    background: #039e54;
    color: #fff;
}

.error-page .error-btn.primary {
    background: #039e54;
    color: #fff;
}

.error-page .error-btn.primary:hover,
.error-page .error-btn.primary:focus-visible {
    background: #02834a;
    border-color: #02834a;
}

@media (max-width: 576px) {
    .error-page {
        padding: 32px 15px 48px;
    }

    .error-page .error-code {
        font-size: 64px;
    }

    .error-page h1 {
        font-size: 22px;
    }
}

/* ================= Фиксы адаптива (360px, мобильные фильтры) — 2026-11-15 ===== */

@media (max-width: 1023.98px) {
    /* --- Форма «Мы перезвоним Вам» / «Напишите нам» (callback-form.html).
       На узких экранах: кнопка была шириной контента и «уезжала»,
       чекбокс согласия из-за .row (отрицательные gutter'ы bootstrap) и
       .tpl-caption с display:flex рвал текст и ссылку на разные
       flex-элементы — получались огромные отступы и перенос. --- */
    .callback-content .tpl-component-netcat-module-requests-request .tpl-block-button {
        width: 100%;
        margin-left: 0;
        text-align: center;
        padding: 14px 20px;
    }

    .callback-content form .form-button-wrapper {
        margin-left: 0;
        margin-right: 0;
        padding-left: 0;
        padding-right: 0;
    }

    .callback-content form .form-button-wrapper > .form-button {
        width: 100%;
    }

    .tpl-field-privacy-policy-agree .tpl-value.row {
        display: flex;
        align-items: flex-start;
        gap: 10px;
        margin: 0;
        padding: 0;
        flex-wrap: nowrap;
    }

    .tpl-field-privacy-policy-agree .tpl-value.row > input[type="checkbox"] {
        flex: 0 0 auto;
        width: 18px;
        height: 18px;
        min-width: 18px;
        margin: 2px 0 0;
    }

    /* Перебивает мобильное же правило «.tpl-block-input INPUT:not(#f2710)
       { width: 100% }» (main.css ~4870): оно писалось под эталонный id
       f2710, а у нашего чекбокса id f_privacy_policy_agree — и :not()
       его пропускал, растягивая чекбокс на всю строку (подпись уползала
       вправо и переносилась). Специфичность равна, выигрывает порядок
       в файле (правило ниже). */
    .callback-content .tpl-component-netcat-module-requests-request .tpl-block-input input#f_privacy_policy_agree,
    .callback-content .tpl-component-netcat-module-requests-request .tpl-block-input input#f_privacy_policy_agree:focus {
        width: 18px;
    }

    .tpl-field-privacy-policy-agree .tpl-value.row > .tpl-caption {
        display: block;
        flex: 1 1 auto;
        padding: 0;
        margin: 0;
        line-height: 1.45;
    }

    /* --- Мобильные фильтры (<1024px): счётчик применённых параметров
       на кнопке «Фильтры» — виден и после закрытия панели (shop.js). --- */
    .mobile-filter-badge {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 20px;
        height: 20px;
        padding: 0 6px;
        margin-left: 6px;
        border-radius: 10px;
        background: #039e54;
        color: #fff;
        font-size: 12px;
        font-weight: 600;
        line-height: 20px;
        vertical-align: middle;
    }

    .mobile-filter-badge[hidden] {
        display: none;
    }

    /* Форма «Мы перезвоним Вам»: отступ между чекбоксом с подписью и
       кнопкой (по подтверждению владельца — выглядит правильно). */
    .tpl-field-privacy-policy-agree {
        margin-bottom: 10px !important;
    }

    /* Панель фильтров: от низа строки сортировки/фильтров (a#sort —
       line-height 45 + граница ≈ 46px) до фикс-блока кнопок внизу
       (≈118px): параметры целиком в прокрутке панели, ничем не
       перекрыты, товары закрыты. Перебивает мобильное правило выше
       (top:0, height calc(65vh + 68px)) — порядок в файле решает. */
    .catalog-products-wrapper > .filter {
        position: sticky;
        top: 46px;
        /* до самого низа экрана (товары закрыты), а padding-bottom
           отодвигает конец параметров выше фикс-блока кнопок (≈111px) —
           белый фон панели закрывает зону под кнопками. */
        height: calc(100vh - 46px);
        /* Firefox Android: 100vh считается по «большому» вьюпорту (без
           адресной строки) — панель уезжала за нижний край, и последние
           поля («Цена») прятались под кнопками. dvh = фактическая
           высота видимой области (URL-бар учитывается); старые браузеры
           остаются на строке выше. */
        height: calc(100dvh - 46px);
        padding-bottom: 118px;
        box-sizing: border-box;
        overflow-y: auto;
    }

    /* Фикс-блок внизу экрана (виден пока открыта панель — main.js
       вешает body.ofh): «Показать N товаров» (зелёная) и под ней
       «Сбросить» (серая), во всю ширину без скруглений. Порядок в
       DOM = порядок сверху вниз (apply идёт первым в шаблоне). */
    .filter-buttons {
        display: none;
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 60;
        background: #fff;
        padding: 0;
        box-shadow: 0 -6px 20px rgba(0, 0, 0, .15);
    }

    body.ofh .filter-buttons {
        display: block;
    }

    /* кнопка сама по себе больше не фиксируется — она внутри блока */
    .filter-apply-mobile {
        display: block;
        position: static;
        left: auto;
        right: auto;
        bottom: auto;
        max-width: none;
        width: 100%;
        margin: 0 0 8px !important;
        padding: 13px 16px !important;
        border: 0;
        border-radius: 0;
        background: #039e54;
        color: #fff;
        font-size: 15px;
        font-weight: 600;
        text-align: center;
        box-shadow: none;
        cursor: pointer;
    }

    /* «Сбросить» — под кнопкой применения, серым. */
    .filter-buttons input[type="submit"] {
        display: block;
        width: 100%;
        margin: 0;
        padding: 13px 16px;
        border: 0;
        border-radius: 0;
        background: #e5e7eb;
        color: #0a222d;
        font-size: 15px;
        font-weight: 600;
        text-align: center;
        cursor: pointer;
    }

    .filter-buttons input[type="submit"]:active {
        background: #d1d5db;
    }

    /* Короткая анимация счётчика при изменении количества (shop.js). */
    .filter-apply-count {
        display: inline-block;
    }

    .filter-apply-count.is-bump {
        animation: filter-count-bump 0.45s ease;
    }

    @keyframes filter-count-bump {
        0% { transform: scale(1); }
        30% { transform: scale(1.25); color: #d8ffe9; }
        100% { transform: scale(1); }
    }
}

@media (min-width: 1024px) {
    .filter-apply-mobile {
        display: none;
    }
}
