/* EstetLine brand layer — v2.1 — 2026-09-20
   Header responsiveness + stronger, more coherent palette.
   Loaded after UniShop generated styles, so these rules are intentionally overrides. */

:root {
    --estetline-navy: #082b63;
    --estetline-navy-dark: #051d46;
    --estetline-blue: #0b3f91;
    --estetline-blue-hover: #0755ad;
    --estetline-teal: #087f9f;
    --estetline-violet: #65539a;
    --estetline-ink: #25354d;
    --estetline-muted: #5d6878;
    --estetline-soft: #eef4fb;
    --estetline-soft-2: #e5edf9;
    --estetline-line: #d9e4f1;
}

/* ---------- Header / brand ---------- */
.estetline-brand {
    width: 100%;
    min-width: 0;
}

.estetline-brand__link {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    color: var(--estetline-navy);
    text-decoration: none !important;
}

.estetline-brand__img {
    display: block;
    width: 120px !important;
    height: auto !important;
    max-width: 120px !important;
    max-height: none !important;
    object-fit: contain;
    flex: 0 0 120px;
    filter: saturate(1.42) contrast(1.09);
}

.estetline-brand__copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    line-height: 1.08;
}

.estetline-brand__name {
    display: block;
    color: var(--estetline-navy);
    font-size: 29px;
    line-height: 1.05;
    font-weight: 700;
    letter-spacing: .15px;
    white-space: nowrap;
}

.estetline-brand__tagline {
    display: block;
    max-width: 190px;
    margin-top: 6px;
    color: var(--estetline-muted);
    font-size: 11px;
    line-height: 1.35;
    font-weight: 500;
}

/* Keep breathing room between brand and search. */
.header-block__item-logo {
    padding-right: 24px;
}

.header-block__item-search {
    min-width: 220px;
}

/* Search: restore the native light button. The previous version made it too heavy. */
.header-search__form {
    border-radius: 5px;
}

.header-search__input,
.header-search__category-btn {
    border-color: var(--estetline-line) !important;
}

.header-search__btn {
    color: var(--estetline-blue) !important;
    background: transparent !important;
    border: 0 !important;
}

.header-search__btn:hover,
.header-search__btn:focus,
.header-search__btn:active {
    color: var(--estetline-navy-dark) !important;
    background: var(--estetline-soft) !important;
    border-radius: 0 4px 4px 0;
}

.header-search__input:focus {
    border-color: #9eb9da !important;
    box-shadow: 0 0 0 2px rgba(11, 63, 145, .07);
}

/* Phone numbers should read as deliberate header content, not pale secondary text. */
.header-phones__main {
    color: #3d4a5e !important;
    font-weight: 600;
}

.header-phones__main:hover,
.header-phones__additional,
.header-phones__additional.selected,
.header-phones__callback {
    color: var(--estetline-blue) !important;
}

.header-cart__icon,
.header-account__icon,
.header-wishlist__icon,
.header-compare__icon {
    color: var(--estetline-navy) !important;
}

.header-cart__total-items,
.header-wishlist__total-items,
.header-compare__total-items {
    background: var(--estetline-teal) !important;
}

/* Desktop: the brand can be expressive without stealing space from search. */
@media (min-width: 1200px) {
    .header-block__item-logo {
        padding-right: 28px;
    }
}

/* 992–1199 is the tightest desktop width: compact the brand on purpose. */
@media (min-width: 992px) and (max-width: 1199px) {
    .header-block__item-logo {
        width: 270px !important;
        max-width: 270px !important;
        flex: 0 0 270px !important;
        padding-right: 20px;
    }

    .estetline-brand__link {
        gap: 9px;
    }

    .estetline-brand__img {
        width: 105px !important;
        max-width: 105px !important;
        max-height: none !important;
        flex-basis: 105px;
    }

    .estetline-brand__name {
        font-size: 24px;
    }

    .estetline-brand__tagline {
        display: none;
    }

    .header-block__item-search {
        min-width: 260px;
        padding-left: 10px;
        padding-right: 18px;
    }

    .header-block__item-telephone {
        padding-left: 10px;
        padding-right: 10px;
    }
}

/* Tablet/mobile header: search already moves to its own row in UniShop. */
@media (max-width: 991px) {
    .header-block__item-logo {
        padding-right: 14px;
    }

    .estetline-brand__link {
        gap: 8px;
    }

    .estetline-brand__img {
        width: 96px !important;
        max-width: 96px !important;
        max-height: none !important;
        flex-basis: 96px;
    }

    .estetline-brand__name {
        font-size: 22px;
    }

    .estetline-brand__tagline {
        display: none;
    }

    #search2 {
        margin-top: 4px;
    }
}

@media (max-width: 575px) {
    .header-block {
        padding-top: 18px;
        padding-bottom: 18px;
    }

    .header-block__item-logo {
        padding-right: 8px;
    }

    .estetline-brand__name {
        font-size: 19px;
    }
}

@media (max-width: 480px) {
    .estetline-brand__img {
        width: 90px !important;
        max-width: 90px !important;
        max-height: none !important;
        flex-basis: 90px;
    }
}

@media (max-width: 380px) {
    .estetline-brand__link {
        gap: 6px;
    }

    .estetline-brand__name {
        font-size: 18px;
    }
}


/* Allow the enlarged EstetLine logo to use its real width. */
.header-logo,
.header-block__item-logo {
    max-width: none !important;
}

/* ---------- Stronger site palette ---------- */
body {
    color: var(--estetline-ink);
}

h1, h2, h3, h4, h5,
h1.heading,
div.heading {
    color: var(--estetline-ink) !important;
}

b, strong {
    color: var(--estetline-navy) !important;
}

a,
.dropdown-menu li > a i {
    color: var(--estetline-blue);
}

a:hover,
a:focus,
a:active {
    color: var(--estetline-teal);
}

/* Main navigation: deeper navy and clearer hover state. */
.main-menu.set-before:before,
.menu2,
.menu-wrapper,
.menu-open,
#fly-menu .menu__header,
#fly-menu .menu__collapse {
    background-color: var(--estetline-navy) !important;
}

.menu2 .menu__level-1-li:hover,
.menu2 .menu__level-1-li.open {
    background: rgba(255, 255, 255, .09) !important;
}

.menu .menu__level-2-a,
.menu2 .menu__level-2-pm,
.menu2 .menu__more {
    color: var(--estetline-blue) !important;
}

/* Buttons: stronger contrast, less washed-out UI. */
.btn-primary,
.add_to_cart,
.product-page__add-to-cart,
.uni-slideshow__btn,
.swiper-viewport .title {
    color: #fff !important;
    background-color: var(--estetline-blue) !important;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.add_to_cart:hover,
.add_to_cart:focus,
.add_to_cart:active,
.product-page__add-to-cart:hover,
.product-page__add-to-cart:focus,
.product-page__add-to-cart:active {
    color: #fff !important;
    background-color: var(--estetline-navy-dark) !important;
}

/* Make the secondary commercial action visibly different from Add to cart. */
.btn.quick-order,
.product-page__quick-order {
    color: #fff !important;
    background-color: var(--estetline-teal) !important;
}

.btn.quick-order:hover,
.btn.quick-order:focus,
.btn.quick-order:active,
.product-page__quick-order:hover,
.product-page__quick-order:focus,
.product-page__quick-order:active {
    color: #fff !important;
    background-color: #066a86 !important;
}

.btn-default {
    color: var(--estetline-navy) !important;
    background: var(--estetline-soft) !important;
    border-color: var(--estetline-line) !important;
}

.btn-default:hover,
.btn-default:focus {
    color: var(--estetline-blue) !important;
    background: var(--estetline-soft-2) !important;
}

/* Price and product accents. */
.price .price-new,
.product-page__price,
.uni-timer__digit,
.product-banner__icon,
.product-banner__text {
    color: var(--estetline-navy) !important;
}

.product-thumb__name {
    color: #27364a !important;
    font-weight: 600;
}

.product-thumb__name:hover {
    color: var(--estetline-blue) !important;
}

.product-thumb__image {
    box-shadow: 0 7px 12px -8px rgba(8, 43, 99, .30);
}

/* Brand-like badges: blue + violet echo the logo without making the site colourful for colour's sake. */
.sticker__item.new,
.sticker__item.reward {
    background: var(--estetline-violet) !important;
}

.sticker__item.special {
    background: var(--estetline-teal) !important;
}

/* Tabs, dots and pagination. */
.nav-tabs {
    background: var(--estetline-soft) !important;
}

.nav-tabs > li > a {
    color: var(--estetline-blue) !important;
}

.nav-tabs > li.active > a,
.nav-tabs > li.active > a:focus,
.nav-tabs > li.active > a:hover {
    color: var(--estetline-teal) !important;
}

.owl-carousel .owl-dot.active span,
.swiper-viewport .swiper-pagination .swiper-pagination-bullet-active,
.pagination li.active span,
.pagination li.active span:hover,
.pagination li.active span:focus {
    background: var(--estetline-blue) !important;
}

/* The pale informational cards were one of the main reasons the page felt washed out. */
.prgrid--item {
    background: var(--estetline-soft-2) !important;
    border: 1px solid #d6e2f2;
}

.prgrid--title {
    color: var(--estetline-navy) !important;
    font-weight: 600;
}

.prgrid--text ul li:before {
    background: var(--estetline-teal) !important;
}

/* Footer / floating actions. */
footer {
    background: var(--estetline-navy-dark) !important;
    color: #dce5f1 !important;
}

.footer__column-heading {
    color: #fff !important;
}

footer a,
.footer__column-a,
.footer__column-a:hover,
.footer__column-a:active,
.footer__column-a:visited {
    color: #dce5f1 !important;
}

footer a:hover,
.footer__column-a:hover {
    color: #fff !important;
}

.fly-block__callback,
.fly-block__compare,
.fly-block__compare-total {
    background: var(--estetline-navy) !important;
}

.fly-block__wishlist,
.fly-block__wishlist-total {
    background: var(--estetline-teal) !important;
}

/* Focus states throughout forms. */
.form-control:focus,
select:focus,
textarea:focus {
    border-color: #91afd3 !important;
    box-shadow: 0 0 0 2px rgba(11, 63, 145, .06) !important;
}

/* ---------- 2026-09-20: header search spacing + catalog view controls ---------- */
@media (min-width: 1200px) {
    .header-block__item-search {
        padding-left: 24px !important;
    }
}

@media (min-width: 992px) and (max-width: 1199px) {
    .header-block__item-search {
        padding-left: 16px !important;
    }
}

/* Catalog sort/view controls: keep the project's original hidden state.
   The temporary override that restored .sorts-block has been removed. */

/* Product attributes shown on card hover: one attribute per line. */
.product-thumb__attribute-value {
    padding-right: 0 !important;
}

.product-thumb__attribute-value:not(:last-child)::after {
    content: "" !important;
    display: block !important;
    height: 0;
    padding: 0 !important;
}

/* ---------- 2026-09-20: mobile header fit, aligned menu/search, refreshed mobile menu, product tabs ---------- */

/* Mobile/tablet: Menu and search must sit on one baseline. */
@media (max-width: 992px) {
    #main-menu > .row {
        display: flex !important;
        align-items: center !important;
        flex-wrap: nowrap !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    #main-menu .main-menu {
        flex: 0 0 auto !important;
        width: auto !important;
        min-width: 0 !important;
    }

    #main-menu .menu-open {
        float: none !important;
        flex: 0 0 auto !important;
        height: 36px !important;
        margin: 0 10px 0 0 !important;
        padding: 0 15px !important;
    }

    #search2 {
        flex: 1 1 auto !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    #search2 .header-search,
    #search2 .header-search__form {
        width: 100% !important;
        height: 36px !important;
        margin: 0 !important;
    }

    #search2 .header-search__input,
    #search2 .header-search__category-btn {
        height: 36px !important;
    }

    /* Mobile menu: use the brighter blue/violet spectrum from the logo. */
    .menu-wrapper {
        background: linear-gradient(155deg, #103778 0%, #174db9 52%, #6150b6 100%) !important;
    }

    .menu-wrapper .menu,
    .menu-wrapper .menu__collapse,
    .menu2 .menu__collapse {
        background: transparent !important;
    }

    .menu-wrapper .menu__header {
        color: #fff !important;
        background: rgba(5, 28, 72, .46) !important;
        border-bottom: 1px solid rgba(255, 255, 255, .13) !important;
    }

    .menu-wrapper .menu__header-title,
    .menu-wrapper .menu__header-icon,
    .menu-wrapper .menu__level-1-a,
    .menu-wrapper .menu__level-1-pm,
    .menu-wrapper .menu__level-1-li:after {
        color: #fff !important;
    }

    .menu-wrapper .menu__header-icon.fa-times {
        background: rgba(255, 255, 255, .07) !important;
    }

    .menu-wrapper .menu__level-1-li {
        background: transparent !important;
        border-top: 1px solid rgba(255, 255, 255, .13) !important;
    }

    .menu-wrapper .menu__level-1-li:hover,
    .menu-wrapper .menu__level-1-li.open {
        background: rgba(255, 255, 255, .11) !important;
    }

    .menu-wrapper .menu__level-2 {
        background: #f3f7ff !important;
    }

    .menu-wrapper .menu__level-2-a,
    .menu-wrapper .menu__level-2-pm {
        color: #174db9 !important;
    }

    .menu-wrapper .menu__level-3-a {
        color: #33455f !important;
    }
}

/* Phones + cart used to push the header beyond the viewport on iPhone. */
@media (max-width: 767px) {
    html,
    body {
        max-width: 100%;
        overflow-x: hidden;
    }

    .header-block {
        width: 100% !important;
        max-width: 100% !important;
        align-items: center !important;
        padding: 16px 0 15px !important;
        box-sizing: border-box;
    }

    .header-block__item-logo {
        flex: 1 1 auto !important;
        min-width: 0 !important;
        padding: 0 3px 0 0 !important;
    }

    .estetline-brand__link {
        gap: 6px !important;
    }

    .estetline-brand__img {
        width: 78px !important;
        max-width: 78px !important;
        flex: 0 0 78px !important;
    }

    .estetline-brand__name {
        font-size: 18px !important;
        line-height: 1.05 !important;
    }

    .header-block__item-telephone {
        flex: 0 1 auto !important;
        min-width: 0 !important;
        padding: 0 2px !important;
    }

    .header-phones {
        padding-right: 20px !important;
    }

    .header-phones__main {
        font-size: 14px !important;
        line-height: 1.35 !important;
        font-weight: 600 !important;
    }

    .header-phones__show-phone {
        right: 0 !important;
        width: 18px !important;
        height: 18px !important;
        font-size: .6em !important;
    }

    .header-block__item-cart {
        flex: 0 0 34px !important;
        width: 34px !important;
        min-width: 34px !important;
        padding: 0 !important;
    }

    .header-cart__icon {
        font-size: 1.95em !important;
    }

    .header-cart__total-items {
        font-size: .72em !important;
    }
}

@media (max-width: 390px) {
    .estetline-brand__img {
        width: 70px !important;
        max-width: 70px !important;
        flex-basis: 70px !important;
    }

    .estetline-brand__name {
        font-size: 17px !important;
    }

    .header-phones__main {
        font-size: 13px !important;
    }

    .header-block__item-cart {
        flex-basis: 31px !important;
        width: 31px !important;
        min-width: 31px !important;
    }

    .header-cart__icon {
        font-size: 1.8em !important;
    }
}

/* Product page tabs: active label must have clear contrast. */
.prtabs li.active > a,
.prtabs li.active > a:hover,
.prtabs li.active > a:focus,
.product-page-tabs > li.active > a,
.product-page-tabs > li.active > a:hover,
.product-page-tabs > li.active > a:focus {
    color: #fff !important;
    background: #174db9 !important;
}

.prtabs li:not(.active) > a,
.product-page-tabs > li:not(.active) > a {
    color: #0b3f91 !important;
}


/* ===== Видео в карточке товара ===== */

#modal-video .modal-dialog {
    width: calc(100% - 40px) !important;
    max-width: 1000px !important;
    margin: 30px auto !important;
}

#modal-video .modal-content {
    border-radius: 8px;
    overflow: hidden;
}

#modal-video .modal-body {
    padding: 0 !important;
    width: 100%;
    aspect-ratio: 16 / 9;
    background: #000;
}

#modal-video .modal-body iframe {
    display: block;
    width: 100% !important;
    height: 100% !important;
    border: 0;
}

/* Телефон */
@media (max-width: 767px) {
    #modal-video .modal-dialog {
        width: calc(100% - 20px) !important;
        margin: 10px auto !important;
    }

    #modal-video .modal-header {
        padding: 12px 15px;
    }
}