/* Поверх CSS Aspro: фиксируем меню и блоки главной (без JS Bitrix) */
.menu-row.bgcolored { background: #213c76 !important; }
.menu-items { list-style: none !important; margin: 0 !important; padding: 0 !important; display: flex !important; flex-wrap: wrap !important; }
.menu-items > .menu-item { position: relative !important; display: block !important; float: none !important; visibility: visible !important; opacity: 1 !important; }
.menu-items > .menu-item > a { display: block !important; padding: 0 20px !important; line-height: 48px !important; color: #fff !important; text-transform: uppercase !important; font-weight: 600 !important; text-decoration: none !important; }
.menu-items > .menu-item:hover > a { background: #1b3263 !important; }
.menu-items .dropdown-menu { display: none !important; position: absolute !important; left: 0 !important; top: 100% !important; z-index: 100 !important; min-width: 280px !important; background: #fff !important; border: 1px solid #e5e5e5 !important; box-shadow: 0 6px 18px rgba(0,0,0,.12) !important; list-style: none !important; margin: 0 !important; padding: 12px 0 !important; }
.menu-items .menu-item.catalog:hover > .dropdown-menu { display: block !important; }
.menu-items .dropdown-menu a { display: block !important; padding: 6px 16px !important; color: #333 !important; text-decoration: none !important; }
.menu-items .dropdown-menu ul { list-style: none !important; margin: 0 !important; padding: 0 0 8px 16px !important; }
.menu-items .dropdown-menu ul a { color: #666 !important; font-size: 13px !important; }

.top_slider_wrapp .slides { list-style: none; margin: 0; padding: 0; }
/* flexslider сам управляет слайдами — не скрывать через CSS */
/* main-ico-block: как на оригинале (подстраховка поверх старых кэшей) */
.main-ico-block {
    margin: 40px 0 0 !important;
    padding: 30px 30px 0;
    display: block !important;
    text-align: left !important;
}
.main-ico-block .elem {
    display: flex !important;
    align-items: center !important;
    text-align: left !important;
    margin-bottom: 30px !important;
}
.main-ico-block .elem img {
    display: block !important;
    width: auto !important;
    height: auto !important;
    max-height: 60px !important;
    margin: 0 20px 0 0 !important;
}
.main-ico-block .elem .text {
    display: block;
    font-size: 15px;
}
.main-ico-block .elem b {
    color: #213c76;
    display: block;
}

/* flexslider: высота баннера как в Aspro */
.top_slider_wrapp .flexslider,
.top_slider_wrapp .flexslider .slides > li {
    height: 450px;
}
.top_slider_wrapp .banner_bg {
    min-height: 450px;
    height: 100%;
    background-size: cover;
    background-position: center;
}
/* Карусели главной — не перебивать Owl (стили в aspro custom.css) */
.header-wrapper .logo-block .logo img { width: 200px !important; height: auto !important; max-height: 48px; }
#mobileheader .title-block a {
    display: block;
    color: inherit;
    text-decoration: none;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.address-row { margin-top: 6px; margin-bottom: 8px; color: #777; font-size: 12px; }
.search-block { padding-top: 8px; }
.search { display: flex; gap: 0; }
.search-input { height: 40px; border: 1px solid #ddd; padding: 0 12px; width: 100%; }
.btn-search { height: 40px; border: 0; background: #213c76; color: #fff; padding: 0 18px; text-transform: uppercase; font-weight: 600; }
.right-icons { padding-top: 12px; }
/* счётчик корзины: серый пустой, цветной при товарах (класс basket-count) */
.basket-link:not(.basket-count) .count {
    background: #b0b0b0;
}
.basket-link.basket-count .count,
body .basket-link.basket-count .count {
    background-color: #213c76;
}


/* Десктоп: header_wrap прозрачный, как на оригинале (блок и так только md/lg) */
@media (min-width: 992px) {
    .header_wrap {
        background: transparent !important;
        background-color: transparent !important;
    }
    .header_wrap .header-wrapper {
        background: transparent !important;
        background-color: transparent !important;
    }
}

/* Футер прижат к низу на коротких страницах */
html {
    height: 100%;
}
body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}
.wrapper1 {
    flex: 1 0 auto;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    width: 100%;
}
.wrapper1 > #content,
.wrapper1 > .wraps {
    flex: 1 0 auto;
}

/* Font Awesome: шрифты лежат в /assets/aspro/vendor/fonts/ */
@font-face {
    font-family: 'FontAwesome';
    src: url('/assets/aspro/vendor/fonts/fontawesome-webfont.eot?v=4.7.0');
    src: url('/assets/aspro/vendor/fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),
         url('/assets/aspro/vendor/fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),
         url('/assets/aspro/vendor/fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),
         url('/assets/aspro/vendor/fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype');
    font-weight: normal;
    font-style: normal;
}

/* FAQ accordion: плавное открытие/закрытие */
.item-views.faq .panel-collapse.collapse {
    display: block;
    overflow: hidden;
    max-height: 0;
    opacity: 0;
    transition: max-height .35s ease, opacity .25s ease, padding .25s ease;
}
.item-views.faq .panel-collapse.collapse.in,
.item-views.faq .panel-collapse.collapse.show {
    max-height: 800px;
    opacity: 1;
}
.item-views.faq .accordion-head {
    cursor: pointer;
}
.item-views.faq .accordion-head .fa {
    transition: transform .25s ease;
}
.item-views.faq .accordion-head.accordion-open .fa {
    transform: rotate(180deg);
}

.bx_filter .bx_filter_block.limited_block {
    overflow-x: hidden;
    max-width: 100%;
    box-sizing: border-box;
}
.bx_filter .bx_filter_block.limited_block.price_block {
    max-height: none;
    overflow-y: visible;
}
.bx_filter .wrapp_slider {
    margin-top: 18px;
    padding: 0 4px 18px;
    max-width: 100%;
    box-sizing: border-box;
    overflow: visible;
}
.bx_filter .bx_ui_slider_track {
    position: relative;
    height: 6px;
    background: #e5e5e5;
    border-radius: 3px;
    margin: 28px 10px 10px;
}
.bx_filter .bx_ui_slider_range,
.bx_filter .bx_ui_slider_pricebar_V {
    position: absolute;
    top: 0;
    bottom: 0;
    background: #213c76;
    border-radius: 3px;
    right: auto;
}
/* перебиваем Aspro top:100% / разные margin у left/right */
.bx_filter .bx_ui_slider_track .bx_ui_slider_handle,
.bx_filter .smartfilter .bx_ui_slider_track .bx_ui_slider_handle,
.bx_filter .bx_ui_slider_handle.left,
.bx_filter .bx_ui_slider_handle.right {
    position: absolute !important;
    top: 50% !important;
    width: 16px !important;
    height: 16px !important;
    margin: -8px 0 0 -8px !important;
    border-radius: 50%;
    background: #fff;
    border: 2px solid #213c76;
    cursor: pointer;
    /* z-index: 5; */
    z-index: 80;
    right: auto !important;
    bottom: auto !important;
    transform: none !important;
}
.bx_filter .bx_ui_slider_part {
    position: absolute;
    top: -22px;
    width: 1px;
    font-size: 11px;
    color: #999;
}
.bx_filter .bx_ui_slider_part span {
    position: absolute;
    top: 0;
    left: 50%;
    display: block;
    width: 72px;
    margin-left: -36px;
    text-align: center;
    white-space: nowrap;
    font-size: 11px;
    color: #999;
}
.bx_filter .bx_ui_slider_part.p2 span,
.bx_filter .bx_ui_slider_part.p3 span,
.bx_filter .bx_ui_slider_part.p4 span {
    display: none;
}
.bx_filter .bx_ui_slider_part.p1 { left: 0; }
.bx_filter .bx_ui_slider_part.p2 { left: 25%; }
.bx_filter .bx_ui_slider_part.p3 { left: 50%; }
.bx_filter .bx_ui_slider_part.p4 { left: 75%; }
.bx_filter .bx_ui_slider_part.p5 { left: auto; right: 0; }
.bx_filter .bx_ui_slider_part.first span {
    left: 0;
    margin-left: 0;
    text-align: left;
}
.bx_filter .bx_ui_slider_part.last span {
    left: auto;
    right: 0;
    margin-left: 0;
    text-align: right;
}

/* 404: контент по центру по вертикали */

.wrapper1:has(.page_not_found) > .wraps {
    align-content: center;
}

#footer {
    margin-top: auto;
    flex-shrink: 0;
}

.page-top-title { margin: 0 0 8px; }
.breadcrumbs { font-size: 12px; color: #888; }
.breadcrumbs .separator { margin: 0 8px; }
.with_left_block { display: grid; grid-template-columns: 250px 1fr; gap: 30px; align-items: start; }
.blog_wrapper { margin-bottom: 40px; }
.blog_wrapper .item { min-height: 220px; background-size: cover; background-position: center; position: relative; margin-bottom: 20px; }
.blog_wrapper .title { position: absolute; left: 0; right: 0; bottom: 0; padding: 15px; background: linear-gradient(transparent, rgba(0,0,0,.75)); }
.blog_wrapper .title a { color: #fff; font-weight: 700; text-decoration: none; }
.blog_wrapper .date-block { color: #ddd; font-size: 12px; margin-top: 4px; }
.company_front { margin-bottom: 40px; }
.footer { background: #f3f3f3; padding: 30px 0; margin-top: 40px; border-top: 1px solid #e5e5e5; }
.footer .item.title a { font-weight: 700; text-transform: uppercase; color: #222; font-size: 12px; }
.footer .item a { color: #555; font-size: 13px; }
.footer .phone a { font-size: 18px; font-weight: 700; color: #222; }
.callback-block a, .callback_wrap a { border-bottom: 1px dashed #213c76; text-decoration: none; }
.modal { display: none; position: fixed; inset: 0; z-index: 200; background: rgba(0,0,0,.55); align-items: center; justify-content: center; }
.modal:target { display: flex; }
.modal .form.popup { position: relative; width: 420px; max-width: 92%; background: #fff; padding: 25px; }
.modal .close { position: absolute; right: 12px; top: 6px; font-size: 26px; color: #999; text-decoration: none; }

.products { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; border-left: 1px solid #e5e5e5; border-top: 1px solid #e5e5e5; }
.product-card { display: flex; flex-direction: column; border-right: 1px solid #e5e5e5; border-bottom: 1px solid #e5e5e5; padding: 18px 15px; background: #fff; }
.product-card__thumb { display: block; height: 170px; text-align: center; }
.product-card__img { max-height: 170px; }
.product-card__title { font-weight: 600; margin: 10px 0 6px; }
.product-card__price-value { font-size: 18px; font-weight: 700; }
.btn, .btn-default { display: inline-block; background: #213c76; color: #fff !important; border: 0; border-radius: 3px; padding: 10px 18px; text-transform: uppercase; font-weight: 600; text-decoration: none; cursor: pointer; }
.btn--small { padding: 8px 14px; font-size: 12px; }
.btn--reset { background: #e9e9e9; color: #333 !important; }
.sort-bar { display: flex; gap: 22px; padding: 10px 15px; margin-bottom: 20px; background: #f5f5f5; border: 1px solid #e5e5e5; }
.sort-bar__link--active { font-weight: 700; color: #222; }
.side-menu { border: 1px solid #e5e5e5; margin-bottom: 20px; }
.side-menu__list, .side-menu__sub { list-style: none; margin: 0; padding: 0; }
.side-menu__link { display: block; padding: 11px 15px; font-weight: 700; color: #222; text-transform: uppercase; font-size: 12px; text-decoration: none; border-bottom: 1px solid #e5e5e5; }
.side-menu__sub-link { display: block; padding: 5px 15px 5px 28px; color: #444; font-size: 13px; text-decoration: none; }
.side-menu__item--active > .side-menu__link, .side-menu__sub-item--active > .side-menu__sub-link { color: #213c76; }
.filter { border: 1px solid #e5e5e5; padding: 15px; margin-bottom: 20px; background: #fafafa; }
.filter__title { font-weight: 700; text-transform: uppercase; margin-bottom: 12px; font-size: 13px; }
.filter__block { margin-bottom: 14px; }
.filter__input, .filter__select { width: 100%; height: 34px; border: 1px solid #ccc; padding: 0 8px; }
.filter__range { display: flex; gap: 6px; align-items: center; }
/* согласие на ПДн: без рамки/фона от .filter */
.licence_block.filter,
.filter.licence_block.label_block {
    border: none;
    background: transparent;
    padding: 0 0 20px;
    margin: -10px 0 0;
    box-shadow: none;
}
.subscribe { border: 1px solid #e5e5e5; padding: 15px; background: #213c76; color: #fff; }
.subscribe__input { width: 100%; height: 34px; border: 0; margin: 8px 0; padding: 0 10px; }
.btn--subscribe { background: #fff; color: #213c76 !important; width: 100%; }
.product { display: grid; grid-template-columns: 400px 1fr; gap: 40px; margin-bottom: 40px; }
.product__main-pic { border: 1px solid #e5e5e5; padding: 15px; text-align: center; }
.product__price { font-size: 28px; font-weight: 700; }
.basket__table { width: 100%; border-collapse: collapse; }
.basket__th, .basket__td { padding: 10px; border-bottom: 1px solid #e5e5e5; text-align: left; vertical-align: middle; }
.static-page table { width: 100%; border-collapse: collapse; font-size: 13px; }
.static-page td, .static-page th { border: 1px solid #ddd; padding: 4px 8px; }
.static-page .jakor-out { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px 20px; margin-bottom: 25px; }
.contacts { margin-bottom: 30px; }
.contacts__map-frame { width: 100%; height: 500px; border: 0; }
.form__input { width: 100%; height: 40px; border: 1px solid #ccc; padding: 0 12px; margin-bottom: 10px; }
.form__input--area { height: 110px; padding: 10px 12px; }
@media (max-width: 991px) {
    .with_left_block { grid-template-columns: 1fr; }
    .products { grid-template-columns: repeat(2, 1fr); }
    .product { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    .products { grid-template-columns: 1fr; }
    .menu-items > .menu-item > a { line-height: 40px !important; padding: 0 12px !important; font-size: 12px !important; }
}

/* Оригинальное table-меню Aspro без JS: только видимость пунктов, без перебивки padding/line-height */
.mega-menu .table-menu table { width: 100%; }
.mega-menu .table-menu td.menu-item { visibility: visible !important; opacity: 1 !important; }
.mega-menu .table-menu td.menu-item.dropdown.js-dropdown { display: none !important; }
.inline-search-block { display: none; }
.inline-search-block.show { display: block !important; z-index: 300; }
#callback.show, .modal.show { display: flex !important; }

/* Карточка товара: структура оригинального Aspro без Bitrix JS */
.catalog_detail .item_main_info {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    min-height: 540px;
}
.catalog_detail .item_main_info > .img_wrapper {
    float: none !important;
    position: relative !important;
    width: auto !important;
    height: 540px !important;
}
.catalog_detail .item_slider:not(.flex),
.catalog_detail .item_slider .slides,
.catalog_detail .item_slider .offers_img,
.catalog_detail .item_slider .popup_link {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100% !important;
    height: 100% !important;
}
.catalog_detail .item_slider .offers_img img {
    display: block !important;
    width: auto !important;
    height: auto !important;
    max-width: 400px !important;
    max-height: 400px !important;
}
.catalog_detail .item_slider .offers_img {
    opacity: 1 !important;
}
.catalog_detail .item_main_info > .right_info {
    float: none !important;
    display: flex !important;
    align-items: center;
    width: auto !important;
    min-width: 0;
    padding: 45px 65px !important;
}
.catalog_detail .right_info .info_item,
.catalog_detail .right_info .middle_info {
    width: 100%;
}
.catalog_detail .bx_item_detail_size {
    display: block !important;
    margin: 0 0 16px;
}
.catalog_detail .bx_item_detail_size .item {
    cursor: pointer;
}
.catalog_detail .offer_buy_block {
    display: inline-block !important;
}
.catalog_detail .btn.in-cart {
    background: #1d3b6b !important;
}
.catalog_detail .tabs_section {
    margin-top: 20px;
}
/* страницы без левого меню: контент на всю ширину */
@media (min-width: 1300px) {
    .wrapper_inner:not(:has(.left_block)) > .right_block.wide_N,
    .wrapper_inner:not(:has(.left_block)) > .right_block.wide_ {
        width: 100% !important;
    }
}

.contacts.maxwidth-theme .dark_table { display: block; font-weight: 700; margin-bottom: 4px; }
.contacts.maxwidth-theme .icon { width: 50px; vertical-align: top; padding-right: 12px; }
.contacts.maxwidth-theme table td { padding-bottom: 18px; vertical-align: top; }
.bx_filter_select_block { position: relative; cursor: pointer; }
.bx_filter_select_popup { position: absolute; left: 0; right: 0; top: 100%; z-index: 20; background: #fff; border: 1px solid #e5e5e5; box-shadow: 0 4px 12px rgba(0,0,0,.08); }
.bx_filter_select_popup ul { list-style: none; margin: 0; padding: 8px 0; }
.bx_filter_select_popup a { display: block; padding: 6px 12px; color: #333; text-decoration: none; }
.bx_filter_select_popup a:hover,
.bx_filter_select_popup a.current { background: #f5f5f5; }
.bx_filter .wrapp_change_inputs { display: flex; gap: 8px; }
.bx_filter .min-price,
.bx_filter .max-price { width: 100%; height: 34px; border: 1px solid #ccc; padding: 0 8px; }
.catalog_item .button_block form { display: inline; }
.catalog_item .button_block button.to-cart { border: 0; }
.bx-sbb-empty-cart-container { text-align: center; padding: 60px 20px; }
.bx-sbb-empty-cart-text { font-size: 22px; font-weight: 600; margin-bottom: 12px; }
.fast_view_block { display: block; text-decoration: none; }

.basket-items-list-table { width: 100%; border-collapse: collapse; margin-bottom: 20px; }
.basket-items-list-table th { text-align: left; padding: 12px 10px; border-bottom: 1px solid #e5e5e5; font-size: 12px; text-transform: uppercase; color: #888; }
.basket-items-list-item-container td { padding: 18px 10px; border-bottom: 1px solid #eee; vertical-align: middle; }
.basket-items-list-item-descriptions-inner { display: flex; gap: 16px; align-items: center; }
.basket-item-image { max-width: 90px; max-height: 90px; }
.basket-item-info-name { margin: 0; font-size: 16px; font-weight: 600; }
.basket-item-info-name-link { color: #222; text-decoration: none; }
.basket-item-price-current-text { font-size: 16px; font-weight: 700; }
.basket-item-price-title { font-size: 12px; color: #888; margin-top: 4px; }
.basket-item-amount-filed { width: 64px; height: 36px; text-align: center; border: 1px solid #ddd; }
.basket-item-actions-remove { width: 28px; height: 28px; border: 0; background: transparent; cursor: pointer; position: relative; }
.basket-item-actions-remove::before,
.basket-item-actions-remove::after { content: ''; position: absolute; left: 13px; top: 6px; width: 2px; height: 16px; background: #999; }
.basket-item-actions-remove::before { transform: rotate(45deg); }
.basket-item-actions-remove::after { transform: rotate(-45deg); }
.basket-checkout-container { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin: 20px 0 30px; padding: 18px; background: #f7f7f7; border: 1px solid #e5e5e5; }
.basket-checkout-block-total-title { font-size: 14px; color: #666; }
.basket-coupon-block-total-price-current { font-size: 24px; font-weight: 700; }

.bigdata_recommended_products_items { margin-top: 40px; margin-bottom: 40px; }
.viewed_slider .title_block { font-size: 22px; font-weight: 700; margin-bottom: 20px; }
.viewed_slider .all_wrapp,
.viewed_slider .content_inner {
    overflow: visible;
}
.viewed_slider .js-recommend-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    border-top: 1px solid #e5e5e5;
    border-left: 1px solid #e5e5e5;
    overflow: visible;
    position: relative;
}
.viewed_slider .catalog_item {
    width: 20%;
    box-sizing: border-box;
    border-right: 1px solid #e5e5e5;
    border-bottom: 1px solid #e5e5e5;
    padding: 0 !important;
    background: transparent;
    position: relative;
    z-index: 1;
    overflow: visible !important;
}
/* aspro padding-bottom раздувает flex-ряд — отключаем */
.viewed_slider .tabs_slider .catalog_item:not(.touch):hover,
.viewed_slider .tabs_slider .catalog_item.hover,
.tabs_slider .catalog_item:not(.touch):hover,
.tabs_slider .catalog_item.hover {
    z-index: 58 !important;
    padding-bottom: 0 !important;
}
.viewed_slider .catalog_item .inner_wrap {
    position: relative;
    z-index: 1;
    padding: 18px 14px;
    background: #fff;
    box-sizing: border-box;
    height: 100%;
    transition: box-shadow 0.2s ease-out, border-color 0.2s ease-out;
}
.viewed_slider .catalog_item:hover,
.viewed_slider .catalog_item.hover {
    z-index: 58;
}
.viewed_slider .catalog_item:hover .inner_wrap,
.viewed_slider .catalog_item.hover .inner_wrap {
    border: 1px solid #fff;
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);
    z-index: 58;
}
/* кнопка вне потока — сетка не прыгает */
.viewed_slider .footer_button {
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    margin: 0 !important;
    padding: 0 14px 18px !important;
    height: auto !important;
    opacity: 0;
    visibility: hidden;
    background: #fff;
    box-shadow: 0 12px 20px rgba(0, 0, 0, 0.15);
    box-sizing: border-box;
    pointer-events: none;
}
.viewed_slider .catalog_item:hover .footer_button,
.viewed_slider .catalog_item.hover .footer_button {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto;
}
.viewed_slider .image_wrapper_block { text-align: center; min-height: 150px; }
.viewed_slider .image_wrapper_block img { max-height: 140px; max-width: 100%; }
.viewed_slider .item-title { margin: 12px 0 8px; font-weight: 600; min-height: 40px; }
.js-add-to-cart.loadings { opacity: .6; pointer-events: none; }
.to-cart.hidden, .in-cart.hidden { display: none !important; }

@media (max-width: 991px) {
    .viewed_slider .catalog_item { width: 33.333%; }
}
@media (max-width: 640px) {
    .viewed_slider .catalog_item { width: 50%; }
    .viewed_slider .footer_button {
        position: static;
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        box-shadow: none;
        padding: 0 0 4px !important;
        margin-top: 10px !important;
    }
    .viewed_slider .catalog_item:hover .inner_wrap,
    .viewed_slider .catalog_item.hover .inner_wrap {
        box-shadow: none;
        border: none;
    }
    .basket-items-list-item-descriptions-inner { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 767px) {
    .catalog_detail .item_main_info {
        grid-template-columns: 1fr;
    }
    .catalog_detail .item_main_info > .img_wrapper {
        height: 360px !important;
    }
    .catalog_detail .item_main_info > .right_info {
        padding: 25px !important;
    }
}

