:root {
    color-scheme: light;
    --samarovka-blue: #00aeea;
    --samarovka-blue-rgb: 0, 174, 234;
    --samarovka-blue-dark: #008bc0;
    --samarovka-ink: #111820;
    --samarovka-muted: #65717c;
    --samarovka-soft: #f3f8fb;
    --samarovka-border: rgba(17, 24, 32, .1);
    --samarovka-shadow: 0 1rem 3rem rgba(17, 24, 32, .08);
    --bs-primary: var(--samarovka-blue-dark);
    --bs-primary-rgb: 0, 139, 192;
    --bs-link-color: var(--samarovka-blue-dark);
    --bs-link-hover-color: #006d98;
    --bs-focus-ring-color: rgba(var(--samarovka-blue-rgb), .25);
}

html {
    min-height: 100%;
    scroll-behavior: smooth;
}

body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    color: var(--samarovka-ink);
    background: #fff;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

img {
    max-width: 100%;
}

.site-main {
    flex: 1 0 auto;
}

.py-lg-6 {
    padding-top: 5rem !important;
    padding-bottom: 5rem !important;
}

.py-lg-7 {
    padding-top: 7rem !important;
    padding-bottom: 7rem !important;
}

.btn-primary {
    --bs-btn-bg: var(--samarovka-blue-dark);
    --bs-btn-border-color: var(--samarovka-blue-dark);
    --bs-btn-hover-bg: #007ba9;
    --bs-btn-hover-border-color: #007ba9;
    --bs-btn-active-bg: #006d98;
    --bs-btn-active-border-color: #006d98;
    --bs-btn-focus-shadow-rgb: var(--samarovka-blue-rgb);
}

.site-utility-bar {
    background: #fbfcfd;
}

.utility-link {
    color: var(--samarovka-ink);
    text-decoration: none;
}

.utility-link:hover,
.utility-link:focus {
    color: var(--samarovka-blue-dark);
}

.site-header {
    z-index: 1030;
    border-color: var(--samarovka-border) !important;
    box-shadow: 0 .15rem .7rem rgba(17, 24, 32, .035);
    transition: background-color .22s ease, border-color .22s ease, box-shadow .22s ease, backdrop-filter .22s ease;
}

/* Once the sticky header leaves the top of the page it becomes a translucent glass layer. */
.site-header.is-scrolled {
    background: rgba(255, 255, 255, .72) !important;
    border-color: rgba(17, 24, 32, .08) !important;
    box-shadow: 0 .55rem 1.8rem rgba(17, 24, 32, .09);
    -webkit-backdrop-filter: saturate(165%) blur(18px);
    backdrop-filter: saturate(165%) blur(18px);
}

@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
    .site-header.is-scrolled {
        background: rgba(255, 255, 255, .94) !important;
    }
}

.site-brand {
    display: inline-flex;
    align-items: center;
    min-width: 0;
}

.site-brand img {
    width: 214px;
    max-width: 45vw;
    height: auto;
}

.site-header .nav-link {
    position: relative;
    color: var(--samarovka-ink);
    font-weight: 600;
    border-radius: .75rem;
    padding: .65rem .8rem !important;
}

.site-header .nav-link:hover,
.site-header .nav-link:focus,
.site-header .nav-link.active {
    color: var(--samarovka-blue-dark);
    background: rgba(var(--samarovka-blue-rgb), .08);
}

.site-search {
    width: min(100%, 330px);
}

.site-search .form-control {
    border-radius: .8rem 0 0 .8rem;
    border-right: 0;
}

.site-search .btn {
    border-radius: 0 .8rem .8rem 0;
}


.site-search-shell {
    position: relative;
    width: min(100%, 330px);
    z-index: 1040;
}

.site-search-shell .site-search {
    width: 100%;
}

.search-suggestions {
    position: absolute;
    top: calc(100% + .45rem);
    left: 0;
    right: 0;
    max-height: min(70vh, 520px);
    overflow-y: auto;
    background: rgba(255, 255, 255, .98);
    border: 1px solid rgba(15, 23, 42, .1);
    border-radius: 1rem;
    padding: .4rem;
    z-index: 1060;
}

.search-suggestion {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr) auto;
    align-items: center;
    gap: .7rem;
    min-height: 58px;
    padding: .45rem .55rem;
    color: var(--samarovka-ink);
    text-decoration: none;
    border-radius: .75rem;
}

.search-suggestion:hover,
.search-suggestion:focus,
.search-suggestion.is-active {
    color: var(--samarovka-ink);
    background: rgba(var(--samarovka-blue-rgb), .08);
    outline: none;
}

.search-suggestion-media {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    overflow: hidden;
    border-radius: .65rem;
    background: #f4f7fb;
}

.search-suggestion-media img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.search-suggestion-no-image {
    color: var(--bs-secondary-color);
    font-size: .85rem;
}

.search-suggestion-main {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: .12rem;
}

.search-suggestion-title {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: .9rem;
    font-weight: 600;
}

.search-suggestion-meta {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--bs-secondary-color);
    font-size: .75rem;
}

.search-suggestion-price {
    white-space: nowrap;
    color: var(--samarovka-blue-dark);
    font-size: .85rem;
    font-weight: 700;
}

.search-suggestion-price.is-unavailable {
    color: var(--bs-secondary-color);
    font-weight: 500;
}

.search-suggestions-status,
.search-suggestions-all {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    min-height: 46px;
    padding: .6rem .75rem;
    color: var(--bs-secondary-color);
    font-size: .85rem;
    text-align: center;
}

.search-suggestions-all {
    color: var(--samarovka-blue-dark);
    font-weight: 600;
    text-decoration: none;
    border-top: 1px solid rgba(15, 23, 42, .08);
}

.search-suggestions-all:hover,
.search-suggestions-all:focus {
    color: var(--samarovka-blue);
}

@media (max-width: 1199.98px) {
    .offcanvas .site-search-shell {
        width: 100%;
    }

    .offcanvas .search-suggestions {
        position: static;
        margin-top: .5rem;
        max-height: 52vh;
        box-shadow: none !important;
    }
}

.header-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    min-height: 42px;
    padding: .55rem .65rem;
    color: var(--samarovka-ink);
    text-decoration: none;
    border-radius: .75rem;
    font-size: .9rem;
    font-weight: 600;
}

.header-action:hover,
.header-action:focus {
    color: var(--samarovka-blue-dark);
    background: rgba(var(--samarovka-blue-rgb), .08);
}

.header-action svg {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* Compact utility actions keep the desktop header focused on navigation/search.
   Text labels remain in the mobile off-canvas, while these buttons expose their
   names through accessible labels/popovers and retain live cart/favourites counters. */
.header-action-icon {
    position: relative;
    flex: 0 0 42px;
    width: 42px;
    min-width: 42px;
    padding: 0;
}

.header-action-icon .header-action-badge {
    position: absolute;
    top: -.18rem;
    right: -.22rem;
    min-width: 1.2rem;
    height: 1.2rem;
    padding: 0 .28rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .68rem;
    line-height: 1;
}

.header-action-icon .header-action-badge[hidden] {
    display: none !important;
}

.storefront-mobile-nav .nav-link {
    padding: .8rem 0;
    color: var(--samarovka-ink);
    border-bottom: 1px solid var(--samarovka-border);
    font-size: 1.05rem;
    font-weight: 600;
}

.storefront-mobile-nav .nav-link.active {
    color: var(--samarovka-blue-dark);
}

.home-hero {
    position: relative;
    background:
        radial-gradient(circle at 82% 20%, rgba(var(--samarovka-blue-rgb), .16), transparent 28%),
        linear-gradient(135deg, #f9fcfe 0%, #eef8fc 52%, #fff 100%);
    border-bottom: 1px solid var(--samarovka-border);
}

.hero-kicker,
.section-kicker {
    color: var(--samarovka-blue-dark);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.home-hero h1 {
    max-width: 760px;
    letter-spacing: -.035em;
}

.home-hero .lead {
    max-width: 690px;
    line-height: 1.65;
}

.hero-orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(1px);
    pointer-events: none;
}

.hero-orb-one {
    width: 260px;
    height: 260px;
    top: -120px;
    right: 20%;
    background: rgba(var(--samarovka-blue-rgb), .08);
}

.hero-orb-two {
    width: 170px;
    height: 170px;
    bottom: -90px;
    left: 7%;
    background: rgba(17, 24, 32, .035);
}

.hero-card {
    position: relative;
    overflow: hidden;
    background: rgba(255, 255, 255, .9);
    border: 1px solid rgba(255, 255, 255, .8);
    border-radius: 1.5rem;
    backdrop-filter: blur(12px);
}

.hero-card-accent {
    height: .35rem;
    background: linear-gradient(90deg, var(--samarovka-blue), #72dbff);
}

.hero-card-body {
    padding: 2rem;
}

.hero-stat {
    display: flex;
    flex-direction: column;
    gap: .25rem;
    padding: 1rem;
    background: var(--samarovka-soft);
    border-radius: 1rem;
}

.hero-stat strong {
    color: var(--samarovka-ink);
}

.hero-stat span {
    color: var(--samarovka-muted);
}

.section-space {
    padding-top: 5rem;
    padding-bottom: 5rem;
}

.section-heading h2 {
    letter-spacing: -.025em;
}

.section-link,
.category-card-link {
    color: var(--samarovka-blue-dark);
    font-weight: 700;
    text-decoration: none;
}

.section-link:hover,
.section-link:focus,
.category-card:hover .category-card-link {
    color: #006d98;
}

.category-card {
    background: #fff;
    border-radius: 1.2rem;
    box-shadow: 0 .65rem 2rem rgba(17, 24, 32, .06);
    transition: transform .18s ease, box-shadow .18s ease;
}

.category-card:hover,
.category-card:focus-visible {
    transform: translateY(-4px);
    box-shadow: var(--samarovka-shadow);
}

.category-card-image {
    position: relative;
    aspect-ratio: 16 / 7;
    overflow: hidden;
    background: var(--samarovka-soft);
}

.category-card-image::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(17, 24, 32, .13), transparent 45%);
}

.category-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .3s ease;
}

.category-card:hover .category-card-image img {
    transform: scale(1.035);
}

.trust-panel {
    background: var(--samarovka-soft);
    border: 1px solid rgba(var(--samarovka-blue-rgb), .12);
    border-radius: 1.5rem;
}

.trust-item {
    display: flex;
    flex-direction: column;
    gap: .55rem;
    padding: 1.25rem;
    background: #fff;
    border: 1px solid var(--samarovka-border);
    border-radius: 1rem;
}

.trust-number {
    color: var(--samarovka-blue-dark);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .08em;
}

.trust-item span {
    color: var(--samarovka-muted);
    font-size: .9rem;
    line-height: 1.45;
}

.delivery-strip {
    overflow: hidden;
    position: relative;
    background: var(--samarovka-ink);
    border-radius: 1.5rem;
}

.delivery-strip::before {
    content: "";
    position: absolute;
    width: 280px;
    height: 280px;
    right: 12%;
    bottom: -220px;
    border-radius: 50%;
    background: rgba(var(--samarovka-blue-rgb), .35);
}

.delivery-strip > * {
    position: relative;
}

.section-kicker-light {
    color: #7cdfff;
}

.content-page {
    padding-top: 3rem;
    padding-bottom: 5rem;
}

.content-page-header {
    margin-bottom: 2rem;
}

.content-shell {
    padding: 2rem;
    background: #fff;
    border: 1px solid var(--samarovka-border);
    border-radius: 1.25rem;
    box-shadow: 0 .5rem 2rem rgba(17, 24, 32, .045);
}

.catalog-placeholder-card {
    height: 100%;
    padding: 1.5rem;
    background: var(--samarovka-soft);
    border-radius: 1rem;
}

/* Marketplace badges and partner reel restored from the legacy storefront. */
.storefront-marketplaces {
    background: #fff;
    border-top: 1px solid var(--samarovka-border);
}

.marketplace-card {
    min-height: 100%;
    border: 1px solid var(--samarovka-border);
    border-radius: 1.25rem;
    background: #fff;
    box-shadow: 0 .4rem 1.5rem rgba(17, 24, 32, .045);
}

.marketplace-card-link {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    text-decoration: none;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.marketplace-card-link:hover,
.marketplace-card-link:focus-visible {
    transform: translateY(-2px);
    border-color: rgba(var(--samarovka-blue-rgb), .35);
    box-shadow: 0 .8rem 2rem rgba(17, 24, 32, .08);
}

.marketplace-card-link img {
    display: block;
    width: min(100%, 360px);
    height: auto;
    max-height: 74px;
}

.storefront-partners {
    overflow: hidden;
    background: var(--samarovka-soft);
    border-top: 1px solid var(--samarovka-border);
}

.partners-reel {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.partner-logo-card {
    display: flex;
    min-height: 96px;
    align-items: center;
    justify-content: center;
    padding: 1.2rem 1.4rem;
    overflow: hidden;
    border: 1px solid var(--samarovka-border);
    border-radius: 1.25rem;
    background: #fff;
    text-decoration: none;
    box-shadow: 0 .35rem 1.3rem rgba(17, 24, 32, .04);
}

.partner-logo-card[href] {
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.partner-logo-card[href]:hover,
.partner-logo-card[href]:focus-visible {
    transform: translateY(-2px);
    border-color: rgba(var(--samarovka-blue-rgb), .3);
    box-shadow: 0 .75rem 1.8rem rgba(17, 24, 32, .075);
}

.partner-logo-card img {
    display: block;
    width: 100%;
    max-width: 300px;
    max-height: 58px;
    object-fit: contain;
}

@media (max-width: 767.98px) {
    .partners-reel {
        display: flex;
        margin-right: calc(var(--bs-gutter-x, 1.5rem) * -.5);
        padding-right: calc(var(--bs-gutter-x, 1.5rem) * .5);
        padding-bottom: .35rem;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scroll-snap-type: x proximity;
        scrollbar-width: thin;
    }

    .partner-logo-card {
        flex: 0 0 min(82vw, 310px);
        scroll-snap-align: start;
    }

    .home-products-grid {
        flex-wrap: nowrap;
        margin-right: calc(var(--bs-gutter-x, 1.5rem) * -.5);
        padding-right: calc(var(--bs-gutter-x, 1.5rem) * .5);
        padding-bottom: .65rem;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scroll-snap-type: x proximity;
        scrollbar-width: thin;
    }

    .home-products-grid-item {
        flex: 0 0 min(78vw, 310px);
        width: min(78vw, 310px);
        scroll-snap-align: start;
    }
}

.site-footer {
    color: rgba(255, 255, 255, .86);
    background: #111820;
}

.footer-brand img {
    width: 215px;
    max-width: 100%;
    height: auto;
}

.footer-title {
    margin-bottom: .8rem;
    color: #fff;
    font-weight: 700;
}

.footer-copy {
    max-width: 410px;
    color: rgba(255, 255, 255, .58);
    line-height: 1.6;
}

.footer-nav {
    gap: .15rem;
}

.footer-nav .nav-link,
.footer-link {
    width: fit-content;
    padding: .2rem 0;
    color: rgba(255, 255, 255, .68);
    text-decoration: none;
}

.footer-nav .nav-link:hover,
.footer-nav .nav-link:focus,
.footer-link:hover,
.footer-link:focus {
    color: #fff;
}

.footer-bottom {
    color: rgba(255, 255, 255, .46);
}

@media (max-width: 991.98px) {
    .site-brand img {
        width: 190px;
    }

    .section-space {
        padding-top: 3.75rem;
        padding-bottom: 3.75rem;
    }

    .home-hero .container {
        padding-top: 4rem !important;
        padding-bottom: 4rem !important;
    }
}

@media (max-width: 575.98px) {
    .site-brand img {
        width: 154px;
        max-width: 44vw;
    }

    .header-action {
        padding-inline: .5rem;
    }

    .home-hero h1 {
        font-size: clamp(2.25rem, 12vw, 3.25rem);
    }

    .hero-card-body,
    .content-shell {
        padding: 1.35rem;
    }

    .section-space {
        padding-top: 3rem;
        padding-bottom: 3rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    .category-card,
    .category-card-image img {
        transition: none;
    }
}

.catalog-category-tile {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-height: 74px;
    padding: 1rem 1.15rem;
    color: var(--samarovka-ink);
    background: var(--samarovka-soft);
    border: 1px solid rgba(var(--samarovka-blue-rgb), .1);
    border-radius: 1rem;
    font-weight: 700;
    text-decoration: none;
    transition: transform .18s ease, border-color .18s ease, background-color .18s ease;
}

.catalog-category-tile:hover,
.catalog-category-tile:focus {
    color: var(--samarovka-blue-dark);
    background: #fff;
    border-color: rgba(var(--samarovka-blue-rgb), .35);
    transform: translateY(-2px);
}

/* Modern breadcrumb trail shared across catalogue, product, cart and checkout pages. */
.breadcrumb {
    --bs-breadcrumb-divider-color: rgba(101, 113, 124, .6);
    --bs-breadcrumb-item-active-color: var(--samarovka-ink);
    width: fit-content;
    max-width: 100%;
    margin: 0;
    padding: .45rem .65rem;
    font-family: inherit;
    font-size: .82rem;
    font-weight: 600;
    line-height: 1.35;
    background: rgba(var(--samarovka-blue-rgb), .045);
    border: 1px solid rgba(var(--samarovka-blue-rgb), .12);
    border-radius: .9rem;
}

.breadcrumb-item {
    display: inline-flex;
    align-items: center;
    min-width: 0;
}

.breadcrumb-item + .breadcrumb-item {
    padding-left: .45rem;
}

.breadcrumb-item + .breadcrumb-item::before {
    content: "›";
    padding-right: .45rem;
    color: rgba(101, 113, 124, .7);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1;
}

.breadcrumb-item a {
    margin: -.12rem -.28rem;
    padding: .12rem .28rem;
    color: var(--samarovka-muted);
    text-decoration: none;
    border-radius: .45rem;
    transition: color .16s ease, background-color .16s ease;
}

.breadcrumb-item a:hover,
.breadcrumb-item a:focus-visible {
    color: var(--samarovka-blue-dark);
    text-decoration: none;
    background: rgba(var(--samarovka-blue-rgb), .08);
    outline: none;
}

.breadcrumb-item.active {
    color: var(--samarovka-ink);
    font-weight: 700;
}

@media (max-width: 575.98px) {
    .breadcrumb {
        width: 100%;
        padding: .4rem .55rem;
        border-radius: .8rem;
        font-size: .78rem;
    }
}

.product-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--samarovka-border);
    border-radius: 1.2rem;
    box-shadow: 0 .35rem 1.5rem rgba(17, 24, 32, .04);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.product-card:hover {
    transform: translateY(-3px);
    border-color: rgba(var(--samarovka-blue-rgb), .24);
    box-shadow: 0 .9rem 2.5rem rgba(17, 24, 32, .08);
}

.product-card-media {
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1 / 1;
    padding: 1rem;
    overflow: hidden;
    background: #fff;
    text-decoration: none;
}

.product-card-media img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: transform .22s ease;
}

.product-card:hover .product-card-media img {
    transform: scale(1.025);
}

.product-card-no-image {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 180px;
    padding: 1rem;
    color: var(--samarovka-muted);
    background: var(--samarovka-soft);
    border-radius: .8rem;
    font-size: .85rem;
    text-align: center;
}

.product-card-body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    padding: 1rem 1.1rem 1.2rem;
    border-top: 1px solid var(--samarovka-border);
}

.product-card-brand {
    margin-bottom: .4rem;
    color: var(--samarovka-muted);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.product-card-title {
    line-height: 1.4;
}

.product-card-title a {
    color: var(--samarovka-ink);
    text-decoration: none;
}

.product-card-title a:hover,
.product-card-title a:focus {
    color: var(--samarovka-blue-dark);
}

.product-card-price,
.product-page-price {
    color: var(--samarovka-ink);
    font-weight: 800;
    letter-spacing: -.02em;
}

.product-card-price {
    font-size: 1.15rem;
}

.product-card-unavailable {
    color: var(--samarovka-muted);
    font-size: .9rem;
    font-weight: 600;
}

.product-gallery-main {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 420px;
    padding: 2rem;
    background: #fff;
    border: 1px solid var(--samarovka-border);
    border-radius: 1.4rem;
}

.product-gallery-main img {
    width: 100%;
    max-height: 560px;
    object-fit: contain;
}

.product-gallery-thumbs {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(74px, 1fr));
    gap: .65rem;
}

.product-gallery-thumbs a {
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1 / 1;
    padding: .35rem;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--samarovka-border);
    border-radius: .8rem;
}

.product-gallery-thumbs img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.product-title {
    letter-spacing: -.025em;
}

.product-purchase-panel {
    padding: 1.5rem;
    background: var(--samarovka-soft);
    border: 1px solid rgba(var(--samarovka-blue-rgb), .12);
    border-radius: 1.2rem;
}

.product-page-price {
    font-size: clamp(1.75rem, 4vw, 2.4rem);
}

.product-marketplaces {
    padding: 1.1rem 1.2rem;
    background: #fff;
    border: 1px solid var(--samarovka-border);
    border-radius: 1rem;
}

.product-marketplace-links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .8rem;
}

.product-marketplace-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 58px;
    padding: .65rem .9rem;
    background: var(--samarovka-soft);
    border: 1px solid var(--samarovka-border);
    border-radius: .9rem;
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.product-marketplace-link:hover,
.product-marketplace-link:focus-visible {
    transform: translateY(-1px);
    border-color: rgba(var(--samarovka-blue-rgb), .3);
    box-shadow: 0 .45rem 1.2rem rgba(17, 24, 32, .08);
    outline: none;
}

.product-marketplace-link img {
    display: block;
    width: auto;
    max-width: 180px;
    height: 38px;
}

.product-description-section,
.product-recommendations {
    border-top: 1px solid var(--samarovka-border);
}

.product-description-rich {
    max-width: none;
    color: var(--samarovka-ink);
    font-size: 1rem;
    line-height: 1.75;
}

.product-description-rich > :first-child {
    margin-top: 0;
}

.product-description-rich > :last-child {
    margin-bottom: 0;
}

.product-description-rich h2,
.product-description-rich h3,
.product-description-rich h4,
.product-description-rich h5 {
    margin-top: 1.65em;
    margin-bottom: .65em;
    color: var(--samarovka-ink);
    font-weight: 700;
}

.product-description-rich p,
.product-description-rich ul,
.product-description-rich ol,
.product-description-rich blockquote,
.product-description-rich table {
    margin-bottom: 1rem;
}

.product-description-rich a {
    color: var(--samarovka-blue-dark);
    text-decoration-thickness: .08em;
    text-underline-offset: .16em;
}

.product-description-rich blockquote {
    padding: .9rem 1rem;
    background: var(--samarovka-soft);
    border-left: 3px solid var(--samarovka-blue);
    border-radius: 0 .7rem .7rem 0;
}

.product-description-rich table {
    width: 100%;
    border-collapse: collapse;
}

.product-description-rich th,
.product-description-rich td {
    padding: .65rem .75rem;
    border: 1px solid var(--samarovka-border);
    vertical-align: top;
}

.product-description-rich th {
    background: var(--samarovka-soft);
    font-weight: 700;
}

@media (max-width: 575.98px) {
    .product-card-body {
        padding: .85rem;
    }

    .product-card-title {
        font-size: .92rem;
    }

    .product-card-media {
        padding: .65rem;
    }

    .product-gallery-main {
        min-height: 300px;
        padding: 1rem;
    }

    .product-marketplace-links {
        align-items: stretch;
    }

    .product-marketplace-link {
        flex: 1 1 140px;
    }

    .product-marketplace-link img {
        max-width: 150px;
        height: 34px;
    }
}

.product-variants {
    padding: 1rem;
    background: #fff;
    border: 1px solid var(--samarovka-border);
    border-radius: 1rem;
}

.product-variants-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: .65rem;
}

.product-variant-option {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr);
    align-items: center;
    gap: .75rem;
    min-width: 0;
    padding: .65rem;
    color: var(--samarovka-ink);
    background: var(--samarovka-soft);
    border: 1px solid transparent;
    border-radius: .8rem;
    text-decoration: none;
    transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
}

.product-variant-option:hover,
.product-variant-option:focus {
    color: var(--samarovka-blue-dark);
    background: #fff;
    border-color: rgba(var(--samarovka-blue-rgb), .35);
    box-shadow: 0 .35rem 1rem rgba(17, 24, 32, .06);
}

.product-variant-option.active {
    background: rgba(var(--samarovka-blue-rgb), .08);
    border-color: rgba(var(--samarovka-blue-rgb), .45);
    box-shadow: inset 0 0 0 1px rgba(var(--samarovka-blue-rgb), .08);
}

.product-variant-option.disabled {
    opacity: .65;
}

.product-variant-thumb {
    display: grid;
    place-items: center;
    width: 64px;
    height: 64px;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--samarovka-border);
    border-radius: .7rem;
}

.product-variant-thumb img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: .2rem;
}

.product-variant-thumb-placeholder {
    width: 1.25rem;
    height: 1.25rem;
    background: var(--samarovka-border);
    border-radius: 50%;
}

.product-variant-content {
    display: flex;
    flex-direction: column;
    gap: .25rem;
    min-width: 0;
}

.product-variant-label {
    overflow-wrap: anywhere;
    font-size: .9rem;
    font-weight: 700;
    line-height: 1.35;
}

.product-variant-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .2rem .45rem;
    color: var(--samarovka-muted);
    font-size: .8rem;
    font-weight: 600;
}


.product-price-vat {
    color: var(--samarovka-muted);
    font-size: .85rem;
    font-weight: 500;
}

@media (max-width: 575.98px) {
    .product-variants-list {
        grid-template-columns: 1fr;
    }
}

.product-add-to-cart {
    max-width: 520px;
}

.product-quantity-control,
.cart-quantity-control {
    width: 180px;
}

.product-quantity-control .form-control,
.cart-quantity-control .form-control {
    min-width: 0;
    font-weight: 700;
}

.product-quantity-control input[type="number"],
.cart-quantity-control input[type="number"] {
    appearance: textfield;
    -moz-appearance: textfield;
}

.product-quantity-control input[type="number"]::-webkit-inner-spin-button,
.product-quantity-control input[type="number"]::-webkit-outer-spin-button,
.cart-quantity-control input[type="number"]::-webkit-inner-spin-button,
.cart-quantity-control input[type="number"]::-webkit-outer-spin-button {
    margin: 0;
    -webkit-appearance: none;
}

.cart-items {
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--samarovka-border);
    border-radius: 1.2rem;
}

.cart-item {
    display: grid;
    grid-template-columns: 132px minmax(0, 1fr);
    gap: 1.25rem;
    padding: 1.25rem;
}

.cart-item + .cart-item {
    border-top: 1px solid var(--samarovka-border);
}

.cart-item-media {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 132px;
    height: 132px;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--samarovka-border);
    border-radius: .9rem;
}

.cart-item-media a {
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
}

.cart-item-media img {
    width: 100%;
    height: 100%;
    padding: .45rem;
    object-fit: contain;
}

.cart-item-no-image {
    padding: .75rem;
    color: var(--samarovka-muted);
    font-size: .75rem;
    text-align: center;
}

.cart-item-main {
    min-width: 0;
}

.cart-item-title-row,
.cart-item-bottom {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
}

.cart-item-bottom {
    align-items: flex-end;
}

.cart-item-price {
    display: flex;
    flex-direction: column;
    gap: .2rem;
    min-width: 150px;
}

.cart-item-price strong {
    font-size: 1.1rem;
}

.cart-item-price span {
    color: var(--samarovka-muted);
    font-size: .75rem;
}

.cart-summary {
    top: 96px;
    padding: 1.5rem;
    background: #fff;
    border: 1px solid var(--samarovka-border);
    border-radius: 1.2rem;
    box-shadow: 0 .5rem 1.8rem rgba(17, 24, 32, .05);
}

.cart-summary-total {
    font-size: 1.4rem;
    font-weight: 800;
    letter-spacing: -.02em;
}

.cart-status-dot {
    width: .55rem;
    height: .55rem;
    flex: 0 0 auto;
    background: #198754;
    border-radius: 50%;
}

@media (min-width: 992px) {
    .position-lg-sticky {
        position: sticky;
    }
}

@media (max-width: 575.98px) {
    .product-add-to-cart .product-quantity-control {
        width: 100%;
    }

    .cart-item {
        grid-template-columns: 88px minmax(0, 1fr);
        gap: .85rem;
        padding: 1rem;
    }

    .cart-item-media {
        width: 88px;
        height: 88px;
    }

    .cart-item-title-row {
        flex-direction: column;
        gap: .35rem;
    }

    .cart-item-title-row [data-cart-remove] {
        align-self: flex-start;
    }

    .cart-item-bottom {
        grid-column: 1 / -1;
        flex-direction: column;
        align-items: stretch;
    }

    .cart-item-price {
        min-width: 0;
        text-align: left !important;
    }

    .cart-quantity-control {
        width: 100%;
        max-width: 190px;
    }
}

/* Stateful product-cart controls used on catalogue cards and product pages. */
.cart-product-control {
    min-width: 0;
}

.cart-product-quantity-control {
    position: relative;
}

.product-card-cart-control .cart-product-quantity-control {
    width: 100%;
}

.product-card-cart-control .cart-product-quantity-control .form-control {
    min-width: 0;
    padding-right: .35rem;
    padding-left: .35rem;
    background: #fff;
}

.product-page-cart-control {
    max-width: 520px;
}

.cart-control-loading {
    position: absolute;
    z-index: 5;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, .82);
    border-radius: var(--bs-border-radius);
}

.cart-product-control.is-loading [data-cart-product-quantity-panel] {
    cursor: wait;
}

.cart-product-control[aria-busy="true"] .btn,
.cart-product-control[aria-busy="true"] .form-control {
    cursor: wait;
}

.cart-control-feedback {
    line-height: 1.25;
}

.cart-item.is-loading {
    opacity: .72;
    cursor: wait;
}

/* Keep the add button and quantity editor mutually exclusive even when a
 * Bootstrap display rule would otherwise override the native [hidden] state. */
.cart-product-control [data-cart-add][hidden],
.cart-product-control [data-cart-product-quantity-panel][hidden] {
    display: none !important;
}

.cart-product-quantity-control input[type="number"] {
    min-width: 0;
    appearance: textfield;
    -moz-appearance: textfield;
}

.cart-product-quantity-control input[type="number"]::-webkit-inner-spin-button,
.cart-product-quantity-control input[type="number"]::-webkit-outer-spin-button {
    margin: 0;
    -webkit-appearance: none;
}

/* Filled quantity steppers. Bootstrap input-group flattens the right edge when
 * the loading overlay follows the + button, so target the actual step buttons. */
.cart-product-quantity-control [data-cart-product-step],
.cart-quantity-control [data-cart-step] {
    min-width: 2.65rem;
    color: #fff;
    background: var(--samarovka-blue-dark);
    border-color: var(--samarovka-blue-dark);
    font-size: 1.05rem;
    font-weight: 800;
    box-shadow: none;
}

.cart-product-quantity-control [data-cart-product-step]:hover,
.cart-product-quantity-control [data-cart-product-step]:focus-visible,
.cart-quantity-control [data-cart-step]:hover,
.cart-quantity-control [data-cart-step]:focus-visible {
    color: #fff;
    background: #007ba9;
    border-color: #007ba9;
}

.cart-product-quantity-control [data-cart-product-step="-1"],
.cart-quantity-control [data-cart-step="-1"] {
    border-top-left-radius: .7rem !important;
    border-bottom-left-radius: .7rem !important;
}

.cart-product-quantity-control [data-cart-product-step="1"],
.cart-quantity-control [data-cart-step="1"] {
    border-top-right-radius: .7rem !important;
    border-bottom-right-radius: .7rem !important;
}

/* Checkout */
.checkout-section {
    position: relative;
    display: flex;
    gap: 1rem;
    padding: 1.4rem;
}

.checkout-section-number {
    display: inline-flex;
    width: 2rem;
    height: 2rem;
    flex: 0 0 2rem;
    align-items: center;
    justify-content: center;
    color: var(--bs-primary);
    font-weight: 800;
    background: rgba(var(--bs-primary-rgb), .08);
    border-radius: 50%;
}

.checkout-section-content {
    min-width: 0;
    flex: 1 1 auto;
}

.checkout-method-grid,
.checkout-payment-grid,
.checkout-delivery-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .8rem;
}

.checkout-method-card,
.checkout-payment-card,
.checkout-delivery-option,
.checkout-pickup-option {
    display: flex;
    gap: .8rem;
    align-items: flex-start;
    padding: 1rem;
    margin: 0;
    color: inherit;
    text-align: left;
    background: #fff;
    border: 1px solid var(--samarovka-border);
    border-radius: .9rem;
    transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}

.checkout-method-card,
.checkout-payment-card,
.checkout-delivery-option {
    cursor: pointer;
}

.checkout-method-card:hover,
.checkout-payment-card:hover,
.checkout-delivery-option:hover,
.checkout-pickup-option:hover {
    border-color: rgba(var(--bs-primary-rgb), .5);
}

.checkout-method-card:has(input:checked),
.checkout-payment-card:has(input:checked),
.checkout-delivery-option.is-selected,
.checkout-pickup-option.is-selected {
    background: rgba(var(--bs-primary-rgb), .04);
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 .15rem rgba(var(--bs-primary-rgb), .08);
}

.checkout-method-card .form-check-input,
.checkout-payment-card .form-check-input,
.checkout-delivery-option .form-check-input {
    flex: 0 0 auto;
    margin-top: .2rem;
}

.checkout-pickup-results {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
    max-height: 390px;
    overflow: auto;
}

.checkout-pickup-option {
    width: 100%;
    appearance: none;
    cursor: pointer;
}

.checkout-summary {
    top: 96px;
    padding: 1.5rem;
    background: #fff;
    border: 1px solid var(--samarovka-border);
    border-radius: 1.2rem;
    box-shadow: 0 .5rem 1.8rem rgba(17, 24, 32, .05);
}

.checkout-summary-items {
    max-height: 300px;
    overflow: auto;
}

.checkout-success-card {
    max-width: 720px;
    padding: 2.5rem;
}

.checkout-success-icon {
    display: inline-flex;
    width: 4rem;
    height: 4rem;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.25rem;
    color: #fff;
    font-size: 2rem;
    font-weight: 800;
    background: #198754;
    border-radius: 50%;
}

.checkout-success-summary {
    max-width: 520px;
    margin-right: auto;
    margin-left: auto;
}

@media (max-width: 767.98px) {
    .checkout-method-grid,
    .checkout-payment-grid,
    .checkout-delivery-options,
    .checkout-pickup-results {
        grid-template-columns: 1fr;
    }

    .checkout-section {
        padding: 1.1rem;
    }
}

/* Sequential checkout flow: later steps must stay completely hidden until the
 * preceding server-validated step is complete. */
[data-checkout-step][hidden],
.checkout-step-valid[hidden],
[data-delivery-loading][hidden] {
    display: none !important;
}

.checkout-delivery-groups {
    display: grid;
    gap: 1rem;
}

.checkout-delivery-group {
    border: 1px solid var(--bs-border-color);
    border-radius: 1rem;
    padding: 1rem;
    background: var(--bs-body-bg);
}

.checkout-delivery-group .checkout-delivery-options:empty {
    display: none;
}

.checkout-pickup-picker {
    max-width: 100%;
}

.checkout-payment-card.is-loading,
.checkout-delivery-option.is-loading {
    opacity: .65;
    pointer-events: none;
}

/* Checkout DaData suggestions stay above adjacent Bootstrap cards without
 * escaping the current form column. */
.dadata-suggest-results {
    position: absolute;
    z-index: 1080;
    top: 100%;
    right: calc(var(--bs-gutter-x) * .5);
    left: calc(var(--bs-gutter-x) * .5);
    max-height: 22rem;
    overflow-y: auto;
    background: var(--bs-body-bg);
}

.dadata-suggest-results[hidden] {
    display: none !important;
}


/* Unified pickup-point chooser: CDEK, L-Post and Russian Post on MapLibre/OpenFreeMap. */
.checkout-pickup-map-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(280px, .85fr);
    gap: 1rem;
    align-items: stretch;
}

.checkout-pickup-map-column {
    min-width: 0;
}

.checkout-pickup-map {
    width: 100%;
    min-height: 480px;
    overflow: hidden;
    background: var(--bs-tertiary-bg);
    border: 1px solid var(--samarovka-border);
    border-radius: 1rem;
}

.checkout-pickup-basemap-loading {
    position: absolute;
    z-index: 4;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 1rem;
    background: rgba(var(--bs-body-bg-rgb), .88);
    backdrop-filter: blur(3px);
}

.checkout-pickup-basemap-loading[hidden] {
    display: none !important;
}

.checkout-pickup-basemap-loading-inner {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: .8rem;
    max-width: 18rem;
    padding: 1rem 1.25rem;
    text-align: center;
    background: var(--bs-body-bg);
    border: 1px solid var(--samarovka-border);
    border-radius: 1rem;
    box-shadow: 0 .5rem 1.5rem rgba(17, 24, 32, .08);
}

.checkout-pickup-basemap-loading .spinner-border {
    width: 2rem;
    height: 2rem;
}

.checkout-pickup-selected-point {
    padding: 1rem 1.1rem;
    background: var(--bs-body-bg);
    border: 1px solid var(--samarovka-border);
    border-radius: 1rem;
    box-shadow: 0 .35rem 1rem rgba(17, 24, 32, .06);
}

.checkout-pickup-selected-point[hidden] {
    display: none !important;
}

.checkout-pickup-selected-price {
    color: var(--bs-primary);
    font-size: .95rem;
    font-weight: 800;
}

.checkout-pickup-map-list {
    display: flex;
    flex-direction: column;
    gap: .6rem;
    max-height: 480px;
    padding-right: .2rem;
    overflow: auto;
}

.checkout-pickup-map-card {
    width: 100%;
    padding: .9rem 1rem;
    color: inherit;
    text-align: left;
    background: #fff;
    border: 1px solid var(--samarovka-border);
    border-left-width: 4px;
    border-radius: .9rem;
    transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}

.checkout-pickup-map-card:hover,
.checkout-pickup-map-card.is-selected {
    background: rgba(var(--bs-primary-rgb), .04);
    border-color: rgba(var(--bs-primary-rgb), .65);
    box-shadow: 0 0 0 .15rem rgba(var(--bs-primary-rgb), .08);
}

.checkout-pickup-map-card.is-cdek {
    border-left-color: #36a852;
}

.checkout-pickup-map-card.is-lpost {
    border-left-color: #6655c7;
}

.checkout-pickup-map-card.is-russian-post {
    border-left-color: #0d6efd;
}

.checkout-pickup-provider {
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .02em;
    text-transform: uppercase;
}

.checkout-pickup-price {
    color: var(--bs-primary);
    font-size: .88rem;
}

.checkout-pickup-map-marker-host {
    display: block;
}

.checkout-pickup-map-marker {
    --pickup-marker-accent: var(--bs-primary);
    --pickup-marker-ring: rgba(var(--bs-primary-rgb), .18);
    --pickup-marker-bg: #fff;
    --pickup-marker-border: rgba(0, 0, 0, .12);
    position: relative;
    display: inline-flex;
    min-width: 72px;
    min-height: 36px;
    align-items: center;
    gap: .35rem;
    padding: .3rem .55rem;
    color: #17202a;
    white-space: nowrap;
    background: var(--pickup-marker-bg);
    border: 1px solid var(--pickup-marker-border);
    border-radius: 999px;
    box-shadow: 0 .3rem .8rem rgba(17, 24, 32, .2);
    transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease, background-color .12s ease;
}

.checkout-pickup-map-marker::after {
    content: '';
    position: absolute;
    left: 50%;
    bottom: -5px;
    width: 10px;
    height: 10px;
    background: var(--pickup-marker-bg);
    border-right: 1px solid var(--pickup-marker-border);
    border-bottom: 1px solid var(--pickup-marker-border);
    transform: translateX(-50%) rotate(45deg);
    transition: border-color .12s ease, background-color .12s ease;
}

.checkout-pickup-map-marker:hover {
    z-index: 20;
    box-shadow: 0 .45rem 1rem rgba(17, 24, 32, .28);
    transform: scale(1.06);
}

.checkout-pickup-map-marker.is-selected {
    --pickup-marker-border: var(--pickup-marker-accent);
    z-index: 30;
    box-shadow: 0 0 0 .18rem var(--pickup-marker-ring),
        0 .5rem 1.1rem rgba(17, 24, 32, .28);
    transform: scale(1.08);
}

.checkout-pickup-map-marker.is-selected .checkout-pickup-marker-price {
    color: var(--pickup-marker-accent);
}

.checkout-pickup-marker-dot {
    width: .7rem;
    height: .7rem;
    flex: 0 0 .7rem;
    background: var(--bs-primary);
    border-radius: 50%;
}

.checkout-pickup-map-marker.is-cdek .checkout-pickup-marker-dot {
    background: #36a852;
}

.checkout-pickup-map-marker.is-cdek {
    --pickup-marker-accent: #36a852;
    --pickup-marker-ring: rgba(54, 168, 82, .2);
}

.checkout-pickup-map-marker.is-lpost .checkout-pickup-marker-dot {
    background: #6655c7;
}

.checkout-pickup-map-marker.is-lpost {
    --pickup-marker-accent: #6655c7;
    --pickup-marker-ring: rgba(102, 85, 199, .2);
}

.checkout-pickup-map-marker.is-russian-post .checkout-pickup-marker-dot {
    background: #0d6efd;
}

.checkout-pickup-map-marker.is-russian-post {
    --pickup-marker-accent: #0d6efd;
    --pickup-marker-ring: rgba(13, 110, 253, .2);
}

.checkout-pickup-marker-price {
    font-size: .76rem;
    font-weight: 800;
}

.checkout-pickup-map-selection:empty {
    display: none;
}

@media (max-width: 991.98px) {
    .checkout-pickup-map-layout {
        grid-template-columns: 1fr;
    }

    .checkout-pickup-map {
        min-height: 380px;
    }

    .checkout-pickup-map-list {
        max-height: 360px;
    }
}

@media (max-width: 575.98px) {
    .checkout-pickup-map {
        min-height: 330px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .site-header {
        transition: none;
    }
}

/* Homepage v2: customer-facing storefront landing page built from the local catalogue projection. */
.home-hero-v2 {
    --home-hero-parallax-y: 0px;
    background-image:
        linear-gradient(90deg, rgba(248, 252, 254, .93) 0%, rgba(248, 252, 254, .84) 38%, rgba(248, 252, 254, .48) 72%, rgba(248, 252, 254, .34) 100%),
        linear-gradient(180deg, rgba(231, 247, 252, .12) 0%, rgba(222, 242, 248, .28) 100%),
        url('/media/img/samarovka_hero.webp');
    background-repeat: no-repeat;
    /* Slight overscan gives the stronger desktop parallax room to travel without exposing edges. */
    background-size: cover, cover, 112% auto;
    background-position: center, center, center calc(50% + var(--home-hero-parallax-y));
    will-change: background-position;
}

.home-hero-v2 .hero-orb {
    display: none;
}

.home-hero-title {
    max-width: 660px;
    line-height: 1;
    letter-spacing: -.045em;
}

.home-hero-title-primary,
.home-hero-title-secondary {
    display: block;
}

.home-hero-title-primary {
    font-size: clamp(2.5rem, 4.1vw, 4.05rem);
}

.home-hero-title-secondary {
    margin-top: .18em;
    font-size: clamp(1.85rem, 3vw, 2.9rem);
    line-height: 1.05;
    letter-spacing: -.035em;
}

.home-hero-search {
    position: relative;
    max-width: 680px;
    z-index: 20;
}

.home-hero-search .search-suggestions {
    width: 100%;
}

.home-hero-search .input-group {
    padding: .35rem;
    background: rgba(255, 255, 255, .82);
    border: 1px solid rgba(17, 24, 32, .09);
    border-radius: 1.15rem;
    box-shadow: 0 .8rem 2.5rem rgba(17, 24, 32, .08);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
}

.home-hero-search .input-group-text,
.home-hero-search .form-control,
.home-hero-search .btn {
    border: 0;
}

.home-hero-search .input-group-text {
    padding-left: .9rem;
    color: var(--samarovka-muted);
    border-radius: .8rem 0 0 .8rem;
}

.home-hero-search .input-group-text svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
}

.home-hero-search .form-control {
    min-width: 0;
    box-shadow: none;
}

.home-hero-search .btn {
    border-radius: .85rem !important;
}

.home-benefit-chip {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: .4rem .72rem;
    color: #42515d;
    background: rgba(255, 255, 255, .65);
    border: 1px solid rgba(17, 24, 32, .08);
    border-radius: 999px;
    font-size: .82rem;
    font-weight: 700;
}

.home-showcase {
    display: grid;
    grid-template-columns: 1.18fr .82fr;
    grid-template-rows: repeat(2, minmax(0, 1fr));
    gap: .85rem;
    min-height: 520px;
    padding: .85rem;
    background: rgba(255, 255, 255, .64);
    border: 1px solid rgba(255, 255, 255, .88);
    border-radius: 1.8rem;
    box-shadow: 0 1.4rem 4rem rgba(17, 24, 32, .1);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
}

.home-showcase-product {
    position: relative;
    display: flex;
    min-width: 0;
    flex-direction: column;
    justify-content: flex-end;
    overflow: hidden;
    color: var(--samarovka-ink);
    background: #fff;
    border: 1px solid rgba(17, 24, 32, .07);
    border-radius: 1.3rem;
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease;
}

.home-showcase-product.is-primary {
    grid-row: 1 / -1;
}

.home-showcase-media {
    position: absolute;
    inset: 0;
    z-index: 0;
    color: inherit;
    text-decoration: none;
}

.home-showcase-product:hover,
.home-showcase-product:focus-within {
    color: var(--samarovka-ink);
    transform: translateY(-3px);
    box-shadow: 0 .85rem 2.2rem rgba(17, 24, 32, .1);
    outline: none;
}

.home-showcase-product img {
    position: absolute;
    inset: .75rem .75rem 5.35rem;
    width: calc(100% - 1.5rem);
    height: calc(100% - 6.1rem);
    object-fit: contain;
    transition: transform .25s ease;
}

.home-showcase-product:hover img {
    transform: scale(1.035);
}

.home-showcase-product.has-variants img {
    bottom: 7rem;
    height: calc(100% - 7.75rem);
}

.home-showcase-no-image {
    position: absolute;
    inset: .75rem .75rem 5.35rem;
    display: grid;
    place-items: center;
    color: var(--samarovka-muted);
    background: var(--samarovka-soft);
    border-radius: 1rem;
    font-size: .75rem;
    font-weight: 700;
}

.home-showcase-product.has-variants .home-showcase-no-image {
    bottom: 7rem;
}

.home-showcase-copy {
    position: relative;
    z-index: 1;
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: .12rem;
    padding: .85rem 1rem 1rem;
    background: linear-gradient(to top, #fff 72%, rgba(255, 255, 255, .8), transparent);
}

.home-showcase-copy strong {
    display: -webkit-box;
    overflow: hidden;
    font-size: .88rem;
    line-height: 1.25;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.home-showcase-copy strong a {
    color: inherit;
    text-decoration: none;
}

.home-showcase-copy strong a:hover,
.home-showcase-copy strong a:focus-visible {
    color: var(--samarovka-blue-dark);
}

.home-showcase-product.is-primary .home-showcase-copy strong {
    font-size: 1rem;
}

.home-showcase-brand {
    color: var(--samarovka-muted);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.home-showcase-price {
    margin-top: .18rem;
    color: var(--samarovka-blue-dark);
    font-weight: 800;
}

.home-showcase-unavailable {
    margin-top: .18rem;
    color: var(--samarovka-muted);
    font-size: .75rem;
    font-weight: 700;
}

.home-hero-fallback {
    min-height: 420px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

.home-hero-icon {
    display: grid;
    width: 4rem;
    height: 4rem;
    place-items: center;
    color: #fff;
    background: linear-gradient(135deg, var(--samarovka-blue), var(--samarovka-blue-dark));
    border-radius: 1.2rem;
    font-size: 1.6rem;
    font-weight: 900;
}

.home-quick-strip {
    position: relative;
    z-index: 2;
    margin-top: -1px;
    background: #fff;
    border-bottom: 1px solid var(--samarovka-border);
}

.home-quick-item {
    display: flex;
    min-height: 104px;
    flex-direction: column;
    justify-content: center;
    padding: 1.2rem 1.4rem;
    border-right: 1px solid var(--samarovka-border);
}

.home-quick-strip .row > div:last-child .home-quick-item {
    border-right: 0;
}

.home-quick-item strong {
    color: var(--samarovka-ink);
    font-size: 1.05rem;
}

.home-quick-item span {
    margin-top: .2rem;
    color: var(--samarovka-muted);
    font-size: .82rem;
}

.home-category-card {
    position: relative;
    display: flex;
    min-height: 230px;
    overflow: hidden;
    color: var(--samarovka-ink);
    background: linear-gradient(145deg, #f5fbfe, #edf6fa);
    border: 1px solid rgba(var(--samarovka-blue-rgb), .12);
    border-radius: 1.35rem;
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.home-category-card:hover,
.home-category-card:focus-visible {
    color: var(--samarovka-ink);
    border-color: rgba(var(--samarovka-blue-rgb), .35);
    box-shadow: 0 1rem 2.6rem rgba(17, 24, 32, .08);
    transform: translateY(-4px);
    outline: none;
}

.home-category-card.has-image::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(7, 24, 34, .84) 0%, rgba(7, 24, 34, .58) 52%, rgba(7, 24, 34, .08) 100%);
}

.home-category-media {
    position: absolute;
    inset: 0;
}

.home-category-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .35s ease;
}

.home-category-card:hover .home-category-media img {
    transform: scale(1.045);
}

.home-category-index {
    position: absolute;
    right: 1.2rem;
    top: .85rem;
    color: rgba(var(--samarovka-blue-rgb), .18);
    font-size: 4.8rem;
    font-weight: 900;
    letter-spacing: -.08em;
    line-height: 1;
}

.home-category-body {
    position: relative;
    z-index: 1;
    display: flex;
    max-width: 80%;
    flex-direction: column;
    justify-content: flex-end;
    padding: 1.5rem;
}

.home-category-body p {
    color: var(--samarovka-muted);
    font-size: .9rem;
    line-height: 1.5;
}

.home-category-body > span {
    color: var(--samarovka-blue-dark);
    font-size: .86rem;
    font-weight: 800;
}

.home-category-card.has-image .home-category-body h3,
.home-category-card.has-image .home-category-body p,
.home-category-card.has-image .home-category-body > span {
    color: #fff;
}

.home-category-card.has-image .home-category-body p {
    color: rgba(255, 255, 255, .74);
}

.home-products-section {
    overflow: hidden;
}

/* Homepage cards show only a few variant pills; the remaining variants stay one tap away. */
.home-products-grid .product-card-variant-picker {
    padding: .55rem;
}

.home-products-grid .product-card-variant-pills {
    gap: .32rem;
}

.home-business-actions .btn {
    min-width: 150px;
}

.delivery-provider-list {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}

.delivery-provider-list span {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: .3rem .65rem;
    color: rgba(255, 255, 255, .86);
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 999px;
    font-size: .78rem;
    font-weight: 700;
}

.home-business-panel {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 92% 8%, rgba(var(--samarovka-blue-rgb), .13), transparent 28%),
        var(--samarovka-soft);
    border: 1px solid rgba(var(--samarovka-blue-rgb), .14);
    border-radius: 1.6rem;
}

.home-feature-icon {
    color: var(--samarovka-blue-dark);
    font-size: .78rem;
    font-weight: 900;
    letter-spacing: .08em;
}

@media (max-width: 991.98px) and (orientation: landscape) and (max-height: 650px) {
    .home-hero-v2 {
        /* Phone/tablet landscape: size the photo from the hero height, not its width.
         * Extra vertical overscan keeps the stronger parallax from revealing image edges. */
        background-size: cover, cover, auto calc(100% + 200px);
        background-position: center, center, center calc(50% + var(--home-hero-parallax-y));
    }
}

@media (max-width: 991.98px) {
    .home-hero-title {
        max-width: 620px;
    }

    .home-showcase {
        min-height: 430px;
    }

    .home-quick-item {
        border-bottom: 1px solid var(--samarovka-border);
    }

    .home-quick-strip .row > div:nth-child(2) .home-quick-item {
        border-right: 0;
    }

    .home-quick-strip .row > div:nth-last-child(-n+2) .home-quick-item {
        border-bottom: 0;
    }
}

@media (max-width: 575.98px) {
    .home-hero-v2 {
        background-image:
            linear-gradient(180deg, rgba(248, 252, 254, .91) 0%, rgba(248, 252, 254, .82) 52%, rgba(248, 252, 254, .65) 100%),
            url('/media/img/samarovka_hero.webp');
        background-size: cover, cover;
        background-position: center, 58% calc(50% + var(--home-hero-parallax-y));
    }

    .home-hero-title-primary {
        font-size: clamp(2.05rem, 9vw, 2.65rem);
    }

    .home-hero-title-secondary {
        margin-top: .2em;
        font-size: clamp(1.45rem, 6.5vw, 1.95rem);
        line-height: 1.08;
    }

    .home-hero-search {
        width: 100%;
    }

    .home-hero-search .input-group {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        width: 100%;
        gap: 0;
    }

    .home-hero-search .input-group-text {
        grid-column: 1;
        min-width: 46px;
    }

    .home-hero-search .form-control {
        grid-column: 2;
        width: 100%;
        min-width: 0;
    }

    .home-hero-search .btn {
        grid-column: 1 / -1;
        width: 100%;
        margin-top: .35rem;
    }

    .home-hero-search .search-suggestions {
        max-height: min(58vh, 440px);
    }

    .home-showcase {
        display: block;
        min-height: 0;
        padding: .65rem;
    }

    .home-showcase-product.is-primary {
        min-height: 285px;
    }

    .home-showcase-product:not(.is-primary) {
        display: none;
    }

    .home-quick-item {
        min-height: 92px;
        padding: 1rem;
    }

    .home-category-card {
        min-height: 205px;
    }

    .home-category-body {
        max-width: 92%;
        padding: 1.25rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .home-showcase-product,
    .home-showcase-product img,
    .home-category-card,
    .home-category-media img {
        transition: none;
    }
}

/* Product cards may represent a Commerce Product Card with multiple concrete
 * products. Variants stay visible as compact pills instead of a dropdown. */
.product-card-variant-picker {
    padding: .65rem .7rem;
    background: var(--samarovka-soft);
    border: 1px solid var(--samarovka-border);
    border-radius: .8rem;
}

.product-card-variant-label {
    margin-bottom: .38rem;
    color: var(--samarovka-muted);
    font-size: .75rem;
    font-weight: 700;
}

.product-card-variant-pills {
    display: flex;
    min-width: 0;
    flex-wrap: wrap;
    gap: .38rem;
}

.product-card-variant-pill {
    min-width: 0;
    padding: .32rem .62rem;
    color: var(--samarovka-ink);
    background: #fff;
    border: 1px solid rgba(var(--samarovka-blue-rgb), .2);
    border-radius: 999px;
    font-size: .78rem;
    font-weight: 700;
    line-height: 1.15;
    transition: color .16s ease, background-color .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.product-card-variant-pill:hover,
.product-card-variant-pill:focus-visible {
    color: var(--samarovka-blue-dark);
    border-color: rgba(var(--samarovka-blue-rgb), .5);
    outline: none;
    box-shadow: 0 0 0 .18rem rgba(var(--samarovka-blue-rgb), .1);
}

.product-card-variant-pill.active {
    color: #fff;
    background: var(--samarovka-blue);
    border-color: var(--samarovka-blue);
}

.product-card-variant-pill.is-unavailable:not(.active) {
    color: var(--samarovka-muted);
    background: rgba(255, 255, 255, .58);
    border-style: dashed;
}

.product-card-variant-pill:disabled {
    cursor: wait;
    opacity: .65;
}

.product-card-variant-more {
    display: inline-flex;
    align-items: center;
    padding: .32rem .5rem;
    color: var(--samarovka-blue-dark);
    border-radius: 999px;
    font-size: .75rem;
    font-weight: 800;
    line-height: 1.15;
    text-decoration: none;
}

.product-card-variant-more:hover,
.product-card-variant-more:focus-visible {
    color: #006d98;
    text-decoration: underline;
    text-underline-offset: .15rem;
}

.home-showcase-variant-picker {
    margin-top: .32rem;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
}

.home-showcase-variant-picker .product-card-variant-label {
    display: none;
}

.home-showcase-variant-picker .product-card-variant-pills {
    flex-wrap: nowrap;
    gap: .28rem;
    overflow-x: auto;
    padding: .08rem 0 .12rem;
    scrollbar-width: none;
}

.home-showcase-variant-picker .product-card-variant-pills::-webkit-scrollbar {
    display: none;
}

.home-showcase-variant-picker .product-card-variant-pill {
    flex: 0 0 auto;
    padding: .22rem .46rem;
    font-size: .68rem;
}

.product-card [data-product-card-price][hidden],
.product-card [data-product-card-unavailable][hidden],
.product-card [data-cart-product-control][hidden],
.product-card [data-product-card-brand][hidden],
.product-card [data-product-card-sku][hidden],
.product-card [data-product-card-image][hidden],
.product-card [data-product-card-no-image][hidden],
.home-showcase-product [hidden] {
    display: none !important;
}

@media (max-width: 575.98px) {
    .product-card-variant-picker {
        padding: .55rem;
    }

    .product-card-variant-pill {
        padding: .28rem .5rem;
        font-size: .72rem;
    }

    .home-showcase-variant-picker {
        padding: 0;
    }

    .home-showcase-variant-picker .product-card-variant-pill {
        padding: .18rem .4rem;
        font-size: .64rem;
    }
}

/* Payment and delivery information page. Live service/payment availability is
   rendered from the Commerce delivery-method catalog; these styles are purely
   presentational and intentionally contain no provider-specific business rules. */
.payment-delivery-page {
    background: linear-gradient(180deg, #f8fbfd 0, #fff 32rem);
}

.payment-delivery-hero {
    position: relative;
    overflow: hidden;
    padding: 3rem 0 4.5rem;
    border-bottom: 1px solid var(--samarovka-border);
    background:
        radial-gradient(circle at 88% 12%, rgba(var(--samarovka-blue-rgb), .17), transparent 25rem),
        linear-gradient(135deg, #fff 0%, #f2fafc 58%, #eef8fc 100%);
}

.payment-delivery-hero h1 {
    max-width: 760px;
    letter-spacing: -.035em;
}

.payment-delivery-hero .lead {
    max-width: 800px;
    line-height: 1.65;
}

.payment-delivery-live-card {
    padding: 1.6rem;
    background: rgba(255, 255, 255, .88);
    border: 1px solid rgba(255, 255, 255, .95);
    border-radius: 1.35rem;
    box-shadow: 0 1rem 3rem rgba(17, 24, 32, .08);
    backdrop-filter: blur(14px);
}

.payment-delivery-live-dot {
    width: .8rem;
    height: .8rem;
    flex: 0 0 auto;
    border-radius: 50%;
    background: #2f9e64;
    box-shadow: 0 0 0 .35rem rgba(47, 158, 100, .12);
}

.payment-delivery-live-dot.is-error {
    background: #d39e00;
    box-shadow: 0 0 0 .35rem rgba(211, 158, 0, .12);
}

.payment-delivery-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .65rem;
}

.payment-delivery-stat {
    min-width: 0;
    padding: .9rem .75rem;
    background: var(--samarovka-soft);
    border-radius: .9rem;
}

.payment-delivery-stat strong,
.payment-delivery-stat span {
    display: block;
}

.payment-delivery-stat strong {
    margin-bottom: .1rem;
    color: var(--samarovka-ink);
    font-size: 1.45rem;
    line-height: 1;
}

.payment-delivery-stat span {
    color: var(--samarovka-muted);
    font-size: .75rem;
    line-height: 1.25;
}

.payment-delivery-note {
    display: inline-flex;
    align-items: center;
    min-height: 2.25rem;
    padding: .4rem .8rem;
    color: var(--samarovka-blue-dark);
    background: rgba(var(--samarovka-blue-rgb), .08);
    border: 1px solid rgba(var(--samarovka-blue-rgb), .14);
    border-radius: 999px;
    font-size: .85rem;
    font-weight: 700;
}

.delivery-provider-card,
.payment-method-card {
    background: #fff;
    border: 1px solid var(--samarovka-border);
    border-radius: 1.25rem;
    box-shadow: 0 .55rem 2rem rgba(17, 24, 32, .045);
}

.delivery-provider-card {
    padding: 1.5rem;
}

.delivery-provider-mark {
    display: grid;
    place-items: center;
    width: 3rem;
    height: 3rem;
    flex: 0 0 auto;
    color: #fff;
    background: var(--samarovka-ink);
    border-radius: .9rem;
    font-size: 1.1rem;
    font-weight: 800;
}

.delivery-method-list {
    display: flex;
    flex-direction: column;
    gap: .7rem;
}

.delivery-method-item {
    padding: .9rem 1rem;
    background: var(--samarovka-soft);
    border: 1px solid rgba(17, 24, 32, .045);
    border-radius: .9rem;
}

.delivery-method-tag {
    flex: 0 0 auto;
    padding: .22rem .5rem;
    color: var(--samarovka-blue-dark);
    background: rgba(var(--samarovka-blue-rgb), .1);
    border-radius: 999px;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .015em;
}

.delivery-payment-chips {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}

.delivery-payment-chips span {
    padding: .2rem .45rem;
    color: var(--samarovka-muted);
    background: #fff;
    border: 1px solid var(--samarovka-border);
    border-radius: .45rem;
    font-size: .7rem;
    font-weight: 600;
}

.delivery-calculation-card {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    padding: 1.4rem 1.5rem;
    background: rgba(var(--samarovka-blue-rgb), .055);
    border: 1px solid rgba(var(--samarovka-blue-rgb), .13);
    border-radius: 1.15rem;
}

.delivery-calculation-icon,
.payment-method-icon {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    color: var(--samarovka-blue-dark);
    background: rgba(var(--samarovka-blue-rgb), .1);
    border-radius: .9rem;
}

.delivery-calculation-icon {
    width: 3.25rem;
    height: 3.25rem;
}

.delivery-calculation-icon svg,
.payment-method-icon svg {
    width: 1.6rem;
    height: 1.6rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.payment-method-card {
    padding: 1.6rem;
}

.payment-method-icon {
    width: 3.15rem;
    height: 3.15rem;
    margin-bottom: 1.25rem;
}

.payment-method-card p {
    line-height: 1.65;
}

.payment-delivery-flow {
    overflow: hidden;
    color: rgba(255, 255, 255, .75);
    background:
        radial-gradient(circle at 90% 120%, rgba(var(--samarovka-blue-rgb), .45), transparent 24rem),
        var(--samarovka-ink);
    border-radius: 1.5rem;
}

.payment-delivery-flow-header {
    padding: 2rem 2rem 1.25rem;
}

.payment-delivery-step {
    height: 100%;
    padding: 1.5rem 2rem 2rem;
    border-top: 1px solid rgba(255, 255, 255, .09);
}

.payment-delivery-step span,
.payment-delivery-step strong {
    display: block;
}

.payment-delivery-step span {
    margin-bottom: .9rem;
    color: #7cdfff;
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .09em;
}

.payment-delivery-step strong {
    margin-bottom: .45rem;
    color: #fff;
    font-size: 1.05rem;
}

.payment-delivery-step p {
    margin: 0;
    font-size: .875rem;
    line-height: 1.55;
}

.payment-delivery-cta {
    padding: 2rem;
    background: var(--samarovka-soft);
    border: 1px solid rgba(var(--samarovka-blue-rgb), .12);
    border-radius: 1.35rem;
}

@media (min-width: 1200px) {
    .payment-delivery-step:not(:last-child) {
        border-right: 1px solid rgba(255, 255, 255, .09);
    }
}

@media (max-width: 767.98px) {
    .payment-delivery-hero {
        padding-top: 2rem;
        padding-bottom: 3rem;
    }

    .payment-delivery-stats {
        grid-template-columns: 1fr;
    }

    .payment-delivery-stat {
        display: flex;
        align-items: baseline;
        gap: .65rem;
    }

    .delivery-calculation-card {
        align-items: flex-start;
    }

    .payment-delivery-flow-header,
    .payment-delivery-step,
    .payment-delivery-cta {
        padding-inline: 1.35rem;
    }
}

/* Contact page */
.contact-hero {
    padding: 3rem 0 4rem;
    background:
        radial-gradient(circle at 90% 5%, rgba(var(--samarovka-blue-rgb), .12), transparent 24rem),
        linear-gradient(180deg, rgba(var(--samarovka-blue-rgb), .035), transparent);
    border-bottom: 1px solid var(--samarovka-border);
}

.contact-hero-note {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    padding: 1.25rem 1.4rem;
    background: #fff;
    border: 1px solid var(--samarovka-border);
    border-radius: 1.15rem;
    box-shadow: 0 .65rem 2rem rgba(17, 24, 32, .05);
}

.contact-hero-note strong {
    font-size: .95rem;
}

.contact-hero-note span {
    color: var(--samarovka-muted);
    font-size: .85rem;
    line-height: 1.55;
}

.contact-card {
    padding: 1.5rem;
    background: #fff;
    border: 1px solid var(--samarovka-border);
    border-radius: 1.25rem;
    box-shadow: 0 .55rem 2rem rgba(17, 24, 32, .045);
}

.contact-card-icon,
.contact-empty-icon {
    display: grid;
    place-items: center;
    width: 3rem;
    height: 3rem;
    margin-bottom: 1.25rem;
    color: var(--samarovka-blue-dark);
    background: rgba(var(--samarovka-blue-rgb), .1);
    border-radius: .9rem;
}

.contact-card-icon svg,
.contact-empty-icon svg {
    width: 1.55rem;
    height: 1.55rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.contact-card-main,
.contact-card-secondary {
    display: block;
    width: fit-content;
    color: var(--samarovka-ink);
    text-decoration: none;
}

.contact-card-main {
    font-size: 1.35rem;
    font-weight: 750;
    line-height: 1.25;
}

.contact-card-main:hover,
.contact-card-secondary:hover {
    color: var(--samarovka-blue-dark);
}

.contact-card-secondary {
    margin-top: .45rem;
    color: var(--samarovka-muted);
    font-size: .95rem;
    font-weight: 650;
}

.contact-card-email {
    overflow-wrap: anywhere;
    font-size: 1.1rem;
}

.contact-hours {
    color: var(--samarovka-ink);
    font-size: 1rem;
    font-weight: 650;
    line-height: 1.65;
}

.contact-address-panel {
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--samarovka-border);
    border-radius: 1.35rem;
    box-shadow: 0 .55rem 2rem rgba(17, 24, 32, .04);
}

.contact-address-intro,
.contact-address-item {
    padding: 1.6rem;
}

.contact-address-intro {
    background: var(--samarovka-soft);
}

.contact-address-item + .contact-address-item {
    border-top: 1px solid var(--samarovka-border);
}

.contact-address-item address {
    color: var(--samarovka-ink);
    font-style: normal;
    font-weight: 600;
    line-height: 1.65;
}

.contact-company-card {
    padding: 2rem;
    color: rgba(255, 255, 255, .74);
    background:
        radial-gradient(circle at 95% 130%, rgba(var(--samarovka-blue-rgb), .48), transparent 25rem),
        var(--samarovka-ink);
    border-radius: 1.5rem;
}

.contact-company-details {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    overflow: hidden;
    background: rgba(255, 255, 255, .1);
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 1rem;
}

.contact-company-details > div {
    padding: 1rem 1.1rem;
    background: rgba(17, 24, 32, .72);
}

.contact-company-details dt {
    margin-bottom: .35rem;
    color: rgba(255, 255, 255, .52);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.contact-company-details dd {
    margin: 0;
    color: #fff;
    font-weight: 650;
    line-height: 1.55;
}

.contact-company-details .contact-company-wide {
    grid-column: 1 / -1;
}

.contact-empty-state {
    display: flex;
    align-items: flex-start;
    gap: 1.25rem;
    max-width: 52rem;
    padding: 1.6rem;
    background: var(--samarovka-soft);
    border: 1px solid var(--samarovka-border);
    border-radius: 1.25rem;
}

.contact-empty-icon {
    flex: 0 0 auto;
    margin: 0;
}

@media (min-width: 768px) {
    .contact-address-item + .contact-address-item {
        border-top: 0;
        border-left: 1px solid var(--samarovka-border);
    }
}

@media (max-width: 767.98px) {
    .contact-hero {
        padding-top: 2rem;
        padding-bottom: 3rem;
    }

    .contact-company-card {
        padding: 1.35rem;
    }

    .contact-company-details {
        grid-template-columns: 1fr;
    }

    .contact-company-details .contact-company-wide {
        grid-column: auto;
    }
}

/* Desktop catalogue navigation. The link remains a normal /catalog/ anchor;
   hovering it (or moving keyboard focus into the item) reveals the category tree. */
@media (min-width: 992px) {
    .catalog-nav-item {
        position: relative;
    }

    /* Keep the parent nav item hovered while the pointer crosses the visual
       spacing before the flyout. The bridge belongs to the parent, so it stays
       interactive even before the dropdown itself receives pointer events. */
    .catalog-nav-item::after {
        content: '';
        position: absolute;
        z-index: 1049;
        top: 100%;
        left: 0;
        width: min(760px, calc(100vw - 300px));
        min-width: 560px;
        height: .65rem;
        pointer-events: none;
    }

    .catalog-nav-item:hover::after,
    .catalog-nav-item:focus-within::after {
        pointer-events: auto;
    }

    .catalog-nav-link {
        display: inline-flex;
        align-items: center;
        gap: .38rem;
    }

    .catalog-nav-chevron {
        width: .82rem;
        height: .82rem;
        fill: none;
        stroke: currentColor;
        stroke-width: 1.8;
        stroke-linecap: round;
        stroke-linejoin: round;
        transition: transform .18s ease;
    }

    .catalog-nav-dropdown {
        position: absolute;
        z-index: 1050;
        top: calc(100% + .55rem);
        left: 0;
        width: min(760px, calc(100vw - 300px));
        min-width: 560px;
        max-height: min(72vh, 620px);
        padding: 1.1rem;
        overflow-y: auto;
        color: var(--samarovka-ink);
        background: rgba(255, 255, 255, .98);
        border: 1px solid rgba(17, 24, 32, .09);
        border-radius: 1rem;
        box-shadow: 0 1.25rem 3rem rgba(17, 24, 32, .16);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translateY(-.35rem);
        transform-origin: top left;
        transition: opacity .16s ease, transform .16s ease, visibility .16s linear;
        -webkit-backdrop-filter: saturate(155%) blur(18px);
        backdrop-filter: saturate(155%) blur(18px);
    }

    .catalog-nav-item:hover .catalog-nav-dropdown,
    .catalog-nav-item:focus-within .catalog-nav-dropdown {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateY(0);
    }

    .catalog-nav-item:hover .catalog-nav-chevron,
    .catalog-nav-item:focus-within .catalog-nav-chevron {
        transform: rotate(180deg);
    }

    .catalog-nav-dropdown-header {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        gap: 1rem;
        padding: .15rem .2rem .9rem;
        margin-bottom: .25rem;
        border-bottom: 1px solid rgba(17, 24, 32, .08);
    }

    .catalog-nav-kicker {
        margin-bottom: .15rem;
        color: var(--samarovka-blue-dark);
        font-size: .73rem;
        font-weight: 800;
        letter-spacing: .08em;
        text-transform: uppercase;
    }

    .catalog-nav-title {
        font-size: 1.08rem;
        font-weight: 750;
        letter-spacing: -.015em;
    }

    .catalog-nav-all {
        flex: 0 0 auto;
        color: var(--samarovka-blue-dark);
        font-size: .87rem;
        font-weight: 700;
        text-decoration: none;
    }

    .catalog-nav-all:hover,
    .catalog-nav-all:focus {
        text-decoration: underline;
        text-underline-offset: .18rem;
    }

    .catalog-nav-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(185px, 1fr));
        gap: .45rem;
        padding-top: .45rem;
    }

    .catalog-nav-group {
        min-width: 0;
        padding: .65rem;
        border-radius: .8rem;
        transition: background-color .16s ease;
    }

    .catalog-nav-group:hover,
    .catalog-nav-group:focus-within {
        background: rgba(var(--samarovka-blue-rgb), .055);
    }

    .catalog-nav-root {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: .55rem;
        color: var(--samarovka-ink);
        font-size: .92rem;
        font-weight: 750;
        line-height: 1.25;
        text-decoration: none;
    }

    .catalog-nav-root:hover,
    .catalog-nav-root:focus {
        color: var(--samarovka-blue-dark);
    }

    .catalog-nav-root-arrow {
        color: var(--samarovka-blue-dark);
        transition: transform .16s ease;
    }

    .catalog-nav-root:hover .catalog-nav-root-arrow,
    .catalog-nav-root:focus .catalog-nav-root-arrow {
        transform: translateX(.15rem);
    }

    .catalog-nav-children {
        display: grid;
        gap: .18rem;
        margin-top: .45rem;
    }

    .catalog-nav-children a {
        display: block;
        padding: .2rem 0;
        overflow: hidden;
        color: var(--bs-secondary-color);
        font-size: .82rem;
        line-height: 1.25;
        text-decoration: none;
        text-overflow: ellipsis;
    }

    .catalog-nav-children a:hover,
    .catalog-nav-children a:focus {
        color: var(--samarovka-blue-dark);
    }
}

@media (prefers-reduced-motion: reduce) {
    .catalog-nav-chevron,
    .catalog-nav-dropdown,
    .catalog-nav-root-arrow {
        transition: none;
    }
}

/* Public storefront contact details shared by the header and footer. */
.utility-phone {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-weight: 600;
}

.utility-phone svg {
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.header-action.active {
    color: var(--samarovka-blue-dark);
    background: rgba(var(--samarovka-blue-rgb), .08);
}

.mobile-contact-phones {
    display: flex;
    flex-direction: column;
    gap: .25rem;
}

.mobile-contact-phones a {
    width: fit-content;
    color: var(--samarovka-ink);
    font-weight: 700;
    text-decoration: none;
}

.footer-contacts {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .38rem;
    margin-bottom: .8rem;
}

.footer-contact-main {
    color: #fff;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.25;
    text-decoration: none;
}

.footer-contact-main:hover,
.footer-contact-main:focus {
    color: rgba(255, 255, 255, .78);
}

.footer-contact-meta {
    color: rgba(255, 255, 255, .58);
    font-size: .875rem;
    line-height: 1.5;
}

.footer-contact-all {
    margin-top: .25rem;
}

.cabinet-placeholder,
.tracking-placeholder {
    max-width: 760px;
    margin: 0 auto;
}

.cabinet-placeholder p,
.tracking-placeholder p {
    max-width: 600px;
}

.cabinet-placeholder-icon,
.tracking-placeholder-icon {
    display: grid;
    width: 64px;
    height: 64px;
    place-items: center;
    color: var(--samarovka-blue-dark);
    background: rgba(var(--samarovka-blue-rgb), .1);
    border-radius: 50%;
}

.cabinet-placeholder-icon svg,
.tracking-placeholder-icon svg {
    width: 32px;
    height: 32px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* Legal documents: readable long-form content with a sticky desktop contents panel. */
.legal-hero {
    padding: 3rem 0 2.25rem;
}

.legal-version-card {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    padding: 1rem 1.15rem;
    background: rgba(var(--samarovka-blue-rgb), .07);
    border: 1px solid rgba(var(--samarovka-blue-rgb), .14);
    border-radius: 1rem;
}

.legal-version-card span {
    color: var(--bs-secondary-color);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.legal-version-card strong {
    color: var(--samarovka-ink);
    font-size: .96rem;
}

.legal-toc {
    position: sticky;
    top: 7.25rem;
    display: flex;
    flex-direction: column;
    gap: .12rem;
    padding: 1.1rem;
    background: #fff;
    border: 1px solid var(--samarovka-border);
    border-radius: 1rem;
    box-shadow: 0 .5rem 2rem rgba(17, 24, 32, .035);
}

.legal-toc-title {
    padding: .15rem .65rem .6rem;
    color: var(--samarovka-ink);
    font-size: .82rem;
    font-weight: 800;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.legal-toc a {
    padding: .42rem .65rem;
    color: var(--bs-secondary-color);
    border-radius: .6rem;
    font-size: .86rem;
    line-height: 1.3;
    text-decoration: none;
}

.legal-toc a:hover,
.legal-toc a:focus {
    color: var(--samarovka-blue-dark);
    background: rgba(var(--samarovka-blue-rgb), .065);
}

.legal-document {
    padding: clamp(1.5rem, 3vw, 2.75rem);
}

.legal-section {
    scroll-margin-top: 8rem;
    padding-bottom: 2rem;
    margin-bottom: 2rem;
    border-bottom: 1px solid var(--samarovka-border);
}

.legal-section:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.legal-section h2 {
    margin-bottom: 1rem;
    color: var(--samarovka-ink);
    font-size: clamp(1.25rem, 2vw, 1.55rem);
    font-weight: 750;
    letter-spacing: -.02em;
}

.legal-section p,
.legal-section li,
.legal-details dd {
    color: #44505b;
    line-height: 1.72;
}

.legal-section p:last-child,
.legal-section ul:last-child {
    margin-bottom: 0;
}

.legal-section ul {
    display: grid;
    gap: .45rem;
    padding-left: 1.25rem;
}

.legal-section a {
    color: var(--samarovka-blue-dark);
    text-underline-offset: .16rem;
}

.legal-details {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    margin: 1.25rem 0 0;
    overflow: hidden;
    background: var(--samarovka-soft);
    border: 1px solid var(--samarovka-border);
    border-radius: .9rem;
}

.legal-details > div {
    padding: .9rem 1rem;
    border-bottom: 1px solid var(--samarovka-border);
}

.legal-details > div:nth-child(odd) {
    border-right: 1px solid var(--samarovka-border);
}

.legal-details > div:last-child,
.legal-details > div:nth-last-child(2):nth-child(odd) {
    border-bottom: 0;
}

.legal-details > div:last-child:nth-child(odd) {
    grid-column: 1 / -1;
    border-right: 0;
}

.legal-details dt {
    margin-bottom: .2rem;
    color: var(--bs-secondary-color);
    font-size: .76rem;
    font-weight: 750;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.legal-details dd {
    margin: 0;
    color: var(--samarovka-ink);
    font-weight: 600;
}

.legal-note {
    padding: .9rem 1rem;
    margin-top: 1rem;
    color: #34404b !important;
    background: rgba(var(--samarovka-blue-rgb), .065);
    border-left: 3px solid var(--samarovka-blue-dark);
    border-radius: 0 .75rem .75rem 0;
}

.legal-contact-row {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem 1rem;
    margin-top: 1rem;
}

.legal-contact-row a {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: .5rem .8rem;
    color: var(--samarovka-ink);
    background: var(--samarovka-soft);
    border: 1px solid var(--samarovka-border);
    border-radius: .7rem;
    font-weight: 700;
    text-decoration: none;
}

.legal-contact-row a:hover,
.legal-contact-row a:focus {
    color: var(--samarovka-blue-dark);
    border-color: rgba(var(--samarovka-blue-rgb), .3);
}

@media (max-width: 991.98px) {
    .legal-toc {
        position: static;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .legal-toc-title {
        grid-column: 1 / -1;
    }
}

@media (max-width: 575.98px) {
    .legal-hero {
        padding-top: 2rem;
    }

    .legal-toc {
        grid-template-columns: 1fr;
        padding: .85rem;
    }

    .legal-details {
        grid-template-columns: 1fr;
    }

    .legal-details > div,
    .legal-details > div:nth-child(odd),
    .legal-details > div:last-child:nth-child(odd) {
        grid-column: auto;
        border-right: 0;
        border-bottom: 1px solid var(--samarovka-border);
    }

    .legal-details > div:last-child {
        border-bottom: 0;
    }
}

/* Cookie consent / optional analytics */
.cookie-consent {
    position: fixed;
    right: 1rem;
    bottom: 1rem;
    left: 1rem;
    z-index: 1090;
    display: flex;
    justify-content: center;
    pointer-events: none;
}

.cookie-consent-card {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: center;
    width: min(100%, 980px);
    padding: 1rem 1.1rem;
    background: rgba(255, 255, 255, .97);
    border: 1px solid rgba(24, 39, 56, .12);
    border-radius: 1rem;
    box-shadow: 0 1.25rem 3.5rem rgba(24, 39, 56, .18);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    pointer-events: auto;
}

.cookie-consent-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    color: var(--samarovka-blue-dark);
    background: rgba(var(--samarovka-blue-rgb), .08);
    border-radius: .85rem;
}

.cookie-consent-icon svg,
.cookie-consent-close svg {
    width: 1.35rem;
    height: 1.35rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cookie-consent-title {
    margin-bottom: .2rem;
    color: var(--samarovka-ink);
    font-size: .98rem;
    font-weight: 750;
}

.cookie-consent-text {
    max-width: 660px;
    margin: 0;
    color: var(--bs-secondary-color);
    font-size: .86rem;
    line-height: 1.5;
}

.cookie-consent-text a {
    color: var(--samarovka-blue-dark);
    text-underline-offset: .15rem;
}

.cookie-consent-actions {
    display: flex;
    gap: .55rem;
    align-items: center;
    justify-content: flex-end;
}

.cookie-consent-actions .btn {
    white-space: nowrap;
}

.cookie-consent-close {
    position: absolute;
    top: .45rem;
    right: .45rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    color: var(--bs-secondary-color);
    background: transparent;
    border: 0;
    border-radius: .6rem;
}

.cookie-consent-close:hover,
.cookie-consent-close:focus-visible {
    color: var(--samarovka-ink);
    background: var(--samarovka-soft);
}

@media (max-width: 767.98px) {
    .cookie-consent {
        right: .75rem;
        bottom: .75rem;
        left: .75rem;
    }

    .cookie-consent-card {
        grid-template-columns: auto minmax(0, 1fr);
        gap: .8rem;
        padding: 1rem;
    }

    .cookie-consent-content {
        padding-right: 1.6rem;
    }

    .cookie-consent-actions {
        grid-column: 1 / -1;
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .cookie-consent-actions .btn {
        white-space: normal;
    }
}

@media (max-width: 439.98px) {
    .cookie-consent-icon {
        display: none;
    }

    .cookie-consent-card {
        grid-template-columns: 1fr;
    }

    .cookie-consent-actions {
        grid-column: 1;
        grid-template-columns: 1fr;
    }
}

.cookie-consent[hidden],
.cookie-consent-close[hidden] {
    display: none !important;
}

/* Header action popovers are desktop-only. Without this base rule the
   tooltip markup falls back to normal inline text below the desktop breakpoint,
   replacing the intended compact icon-only actions on tablets/mobile. */
.header-action-popover {
    display: none;
}

/* Desktop popovers restore context for the compact icon-only header actions
   without widening the navigation. They are visual-only and never intercept
   pointer input, so the whole icon remains the link target. */
@media (min-width: 992px) {
    .header-action-popover {
        display: block;
        position: absolute;
        z-index: 1090;
        top: calc(100% + .7rem);
        left: 50%;
        width: max-content;
        max-width: 220px;
        padding: .62rem .72rem;
        color: var(--samarovka-ink);
        background: rgba(255, 255, 255, .97);
        border: 1px solid rgba(15, 23, 42, .1);
        border-radius: .72rem;
        box-shadow: 0 .8rem 2rem rgba(15, 23, 42, .14);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translate(-50%, -.25rem);
        transition: opacity .14s ease, visibility .14s ease, transform .14s ease;
        text-align: left;
        white-space: nowrap;
    }

    .header-action-popover::before,
    .header-action-popover::after {
        position: absolute;
        left: 50%;
        content: "";
        border-right: .42rem solid transparent;
        border-bottom: .42rem solid rgba(255, 255, 255, .97);
        border-left: .42rem solid transparent;
        transform: translateX(-50%);
    }

    .header-action-popover::before {
        top: -.48rem;
        border-right-width: .46rem;
        border-bottom: .46rem solid rgba(15, 23, 42, .1);
        border-left-width: .46rem;
    }

    .header-action-popover::after {
        top: -.4rem;
    }

    .header-action-popover strong,
    .header-action-popover > span {
        display: block;
    }

    .header-action-popover strong {
        font-size: .82rem;
        font-weight: 700;
        line-height: 1.2;
    }

    .header-action-popover > span {
        margin-top: .18rem;
        color: var(--bs-secondary-color);
        font-size: .72rem;
        font-weight: 500;
        line-height: 1.25;
    }

    .header-action-icon:hover .header-action-popover,
    .header-action-icon:focus .header-action-popover,
    .header-action-icon:focus-visible .header-action-popover {
        opacity: 1;
        visibility: visible;
        transform: translate(-50%, 0);
    }

    .header-action-popover-end {
        right: 0;
        left: auto;
        transform: translateY(-.25rem);
    }

    .header-action-popover-end::before,
    .header-action-popover-end::after {
        right: .82rem;
        left: auto;
        transform: none;
    }

    .header-action-icon:hover .header-action-popover-end,
    .header-action-icon:focus .header-action-popover-end,
    .header-action-icon:focus-visible .header-action-popover-end {
        transform: translateY(0);
    }
}

/* Secure order tracking: OTP recovery and minimal authorized status view. */
.tracking-page {
    max-width: 980px;
}

.tracking-page-header {
    max-width: 760px;
}

.tracking-shell,
.tracking-result-shell {
    max-width: 760px;
    margin: 0 auto 1.25rem;
    padding: clamp(1.35rem, 3vw, 2rem);
}

.tracking-shell-intro {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.tracking-shell-icon {
    display: grid;
    flex: 0 0 52px;
    width: 52px;
    height: 52px;
    place-items: center;
    color: var(--samarovka-blue-dark);
    background: rgba(var(--samarovka-blue-rgb), .1);
    border-radius: 50%;
}

.tracking-shell-icon svg,
.tracking-security-note svg {
    width: 26px;
    height: 26px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.tracking-lookup-form,
.tracking-code-form {
    display: grid;
    gap: 1.25rem;
}

.tracking-channel-pills {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}

.tracking-channel-pill {
    display: flex;
    align-items: center;
    gap: .8rem;
    min-height: 76px;
    padding: .9rem 1rem;
    color: var(--samarovka-ink);
    background: #fff;
    border: 1px solid var(--samarovka-border);
    border-radius: 1rem;
    cursor: pointer;
    transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.tracking-channel-pill:hover {
    border-color: rgba(var(--samarovka-blue-rgb), .45);
}

.btn-check:focus-visible + .tracking-channel-pill {
    outline: 3px solid rgba(var(--samarovka-blue-rgb), .2);
    outline-offset: 2px;
}

.btn-check:checked + .tracking-channel-pill {
    color: var(--samarovka-blue-dark);
    background: rgba(var(--samarovka-blue-rgb), .07);
    border-color: rgba(var(--samarovka-blue-rgb), .55);
    box-shadow: 0 0 0 1px rgba(var(--samarovka-blue-rgb), .08);
}

.tracking-channel-pill svg {
    flex: 0 0 26px;
    width: 26px;
    height: 26px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.tracking-channel-pill span {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: .12rem;
}

.tracking-channel-pill strong {
    font-size: .98rem;
}

.tracking-channel-pill small {
    color: var(--bs-secondary-color);
    font-size: .78rem;
}

.tracking-submit {
    justify-self: start;
    min-width: 180px;
}

.tracking-security-note {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    margin-top: 1.5rem;
    padding: .9rem 1rem;
    color: var(--bs-secondary-color);
    background: var(--bs-tertiary-bg);
    border-radius: .9rem;
}

.tracking-security-note svg {
    flex: 0 0 22px;
    width: 22px;
    height: 22px;
    color: var(--samarovka-blue-dark);
}

.tracking-security-note div {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    font-size: .85rem;
    line-height: 1.45;
}

.tracking-security-note strong {
    color: var(--samarovka-ink);
}

.tracking-code-input {
    max-width: 260px;
    font-size: 1.7rem;
    font-weight: 700;
    letter-spacing: .35em;
    text-align: center;
}

.tracking-code-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem 1.25rem;
    margin-top: 1rem;
}

.tracking-feedback {
    max-width: 760px;
    margin: 0 auto 1rem;
}

.tracking-result-shell[hidden],
.tracking-shell[hidden] {
    display: none !important;
}

.tracking-result-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid var(--samarovka-border);
}

.tracking-status-badge {
    display: inline-flex;
    align-items: center;
    max-width: 260px;
    padding: .5rem .75rem;
    color: var(--samarovka-blue-dark);
    font-size: .82rem;
    font-weight: 700;
    line-height: 1.25;
    text-align: center;
    background: rgba(var(--samarovka-blue-rgb), .1);
    border-radius: 999px;
}

.tracking-summary-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
    padding: 1.25rem 0;
}

.tracking-summary-item {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: .15rem;
    padding: .9rem 1rem;
    background: var(--bs-tertiary-bg);
    border-radius: .9rem;
}

.tracking-summary-item-wide {
    grid-column: 1 / -1;
}

.tracking-summary-item > span,
.tracking-carrier-number > span {
    color: var(--bs-secondary-color);
    font-size: .78rem;
}

.tracking-summary-item > strong,
.tracking-carrier-number > strong {
    color: var(--samarovka-ink);
    font-size: .97rem;
}

.tracking-summary-item > small {
    color: var(--bs-secondary-color);
    line-height: 1.35;
}

.tracking-carrier-number {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .9rem 1rem;
    background: rgba(var(--samarovka-blue-rgb), .06);
    border: 1px solid rgba(var(--samarovka-blue-rgb), .12);
    border-radius: .9rem;
}

.tracking-timeline-wrap {
    margin-top: 1.5rem;
}

.tracking-timeline {
    padding: 0;
    margin: 0;
    list-style: none;
}

.tracking-timeline li {
    position: relative;
    display: grid;
    grid-template-columns: 24px 1fr;
    gap: .75rem;
    min-height: 58px;
    padding-bottom: .9rem;
}

.tracking-timeline li:not(:last-child)::before {
    position: absolute;
    top: 18px;
    bottom: -2px;
    left: 7px;
    width: 2px;
    background: var(--samarovka-border);
    content: '';
}

.tracking-timeline-dot {
    position: relative;
    z-index: 1;
    width: 16px;
    height: 16px;
    margin-top: .15rem;
    background: #fff;
    border: 2px solid var(--samarovka-border);
    border-radius: 50%;
}

.tracking-timeline .is-current .tracking-timeline-dot {
    background: var(--samarovka-blue);
    border-color: var(--samarovka-blue);
    box-shadow: 0 0 0 4px rgba(var(--samarovka-blue-rgb), .1);
}

.tracking-timeline li > div {
    display: flex;
    flex-direction: column;
    gap: .12rem;
}

.tracking-timeline li strong {
    font-size: .93rem;
}

.tracking-timeline li span:not(.tracking-timeline-dot) {
    color: var(--bs-secondary-color);
    font-size: .78rem;
}

.tracking-result-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--samarovka-border);
}

.tracking-privacy-note {
    margin-top: 1rem;
    color: var(--bs-secondary-color);
    font-size: .78rem;
}

.tracking-help {
    max-width: 760px;
    margin: 1.5rem auto 0;
}

@media (max-width: 575.98px) {
    .tracking-shell-intro,
    .tracking-result-head {
        align-items: flex-start;
    }

    .tracking-channel-pills,
    .tracking-summary-grid {
        grid-template-columns: 1fr;
    }

    .tracking-submit,
    .tracking-code-form .btn,
    .tracking-result-actions .btn {
        width: 100%;
    }

    .tracking-status-badge {
        max-width: 180px;
        font-size: .75rem;
    }

    .tracking-carrier-number {
        align-items: flex-start;
        flex-direction: column;
        gap: .2rem;
    }
}

/* Customer cabinet: passwordless SMS/e-mail authentication and the Phase 3 shell. */
.cabinet-page {
    max-width: 980px;
}

.cabinet-page-header {
    max-width: 760px;
}

.cabinet-auth-shell,
.cabinet-service-state,
.cabinet-welcome {
    max-width: 760px;
    margin: 0 auto 1.25rem;
    padding: clamp(1.35rem, 3vw, 2rem);
}

.cabinet-auth-shell[hidden] {
    display: none !important;
}

.cabinet-shell-intro {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.cabinet-shell-icon,
.cabinet-card-icon {
    display: grid;
    flex: 0 0 52px;
    width: 52px;
    height: 52px;
    place-items: center;
    color: var(--samarovka-blue-dark);
    background: rgba(var(--samarovka-blue-rgb), .1);
    border-radius: 50%;
}

.cabinet-shell-icon svg,
.cabinet-card-icon svg,
.cabinet-security-note svg {
    width: 26px;
    height: 26px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cabinet-service-state p {
    max-width: 590px;
}

.cabinet-auth-form,
.cabinet-code-form {
    display: grid;
    gap: 1.25rem;
}

.cabinet-method-pills {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}

.cabinet-method-pill {
    display: flex;
    align-items: center;
    gap: .8rem;
    min-height: 76px;
    padding: .9rem 1rem;
    color: var(--samarovka-ink);
    background: #fff;
    border: 1px solid var(--samarovka-border);
    border-radius: 1rem;
    cursor: pointer;
    transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.cabinet-method-pill:hover {
    border-color: rgba(var(--samarovka-blue-rgb), .45);
}

.btn-check:focus-visible + .cabinet-method-pill {
    outline: 3px solid rgba(var(--samarovka-blue-rgb), .2);
    outline-offset: 2px;
}

.btn-check:checked + .cabinet-method-pill {
    color: var(--samarovka-blue-dark);
    background: rgba(var(--samarovka-blue-rgb), .07);
    border-color: rgba(var(--samarovka-blue-rgb), .55);
    box-shadow: 0 0 0 1px rgba(var(--samarovka-blue-rgb), .08);
}

.cabinet-method-pill svg {
    flex: 0 0 26px;
    width: 26px;
    height: 26px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cabinet-method-pill span {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: .12rem;
}

.cabinet-method-pill strong {
    font-size: .98rem;
}

.cabinet-method-pill small {
    color: var(--bs-secondary-color);
    font-size: .78rem;
}

.cabinet-auth-submit {
    justify-self: start;
    min-width: 180px;
}

.cabinet-security-note {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    margin-top: 1.5rem;
    padding: .9rem 1rem;
    color: var(--bs-secondary-color);
    background: var(--bs-tertiary-bg);
    border-radius: .9rem;
}

.cabinet-security-note svg {
    flex: 0 0 22px;
    width: 22px;
    height: 22px;
    color: var(--samarovka-blue-dark);
}

.cabinet-security-note div {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    font-size: .85rem;
    line-height: 1.45;
}

.cabinet-security-note strong {
    color: var(--samarovka-ink);
}

.cabinet-code-input {
    max-width: 260px;
    font-size: 1.7rem;
    font-weight: 700;
    letter-spacing: .35em;
    text-align: center;
}

.cabinet-code-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem 1.25rem;
    margin-top: 1rem;
}

.cabinet-feedback {
    max-width: 760px;
    margin: 0 auto 1rem;
}

.cabinet-welcome {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
}

.cabinet-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.cabinet-card {
    display: flex;
    min-height: 280px;
    flex-direction: column;
    padding: 1.5rem;
}

.cabinet-card-muted {
    background: linear-gradient(145deg, #fff, rgba(var(--samarovka-blue-rgb), .035));
}

.cabinet-card-head {
    display: flex;
    align-items: center;
    gap: .9rem;
}

.cabinet-card-icon {
    flex-basis: 44px;
    width: 44px;
    height: 44px;
}

.cabinet-card-icon svg {
    width: 23px;
    height: 23px;
}

.cabinet-contact-list {
    display: grid;
    gap: .75rem;
    margin-top: 1.35rem;
}

.cabinet-contact-row {
    display: grid;
    gap: .12rem;
    padding: .85rem 1rem;
    background: var(--bs-tertiary-bg);
    border-radius: .9rem;
}

.cabinet-contact-row > span {
    color: var(--bs-secondary-color);
    font-size: .76rem;
}

.cabinet-contact-row > strong {
    overflow-wrap: anywhere;
    font-size: .96rem;
}

.cabinet-contact-row > small {
    color: #2f7d4c;
    font-size: .75rem;
    font-weight: 700;
}


/* Phase 7: customer profile and verified contact management. */
.cabinet-profile-section {
    padding: clamp(1.2rem, 2.5vw, 1.6rem);
    scroll-margin-top: 7rem;
}

.cabinet-profile-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr);
    gap: 1.25rem;
}

.cabinet-profile-form,
.cabinet-profile-contacts {
    display: flex;
    flex-direction: column;
    gap: 1.15rem;
    min-width: 0;
    padding: 1.2rem;
    border: 1px solid var(--samarovka-border);
    border-radius: 1rem;
    background: #fff;
}

.cabinet-profile-form-head {
    min-width: 0;
}

.cabinet-profile-contact-list {
    display: grid;
    gap: .75rem;
}

.cabinet-profile-contact {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .85rem;
    padding: .9rem 1rem;
    background: var(--bs-tertiary-bg);
    border-radius: .9rem;
}

.cabinet-profile-contact > div {
    display: grid;
    gap: .12rem;
    min-width: 0;
}

.cabinet-profile-contact span,
.cabinet-profile-contact small {
    color: var(--bs-secondary-color);
    font-size: .76rem;
}

.cabinet-profile-contact strong {
    overflow-wrap: anywhere;
    font-size: .96rem;
}

.cabinet-profile-contact small {
    color: #2f7d4c;
    font-weight: 700;
}

.cabinet-identity-panel {
    padding: 1.2rem;
    border: 1px solid rgba(var(--samarovka-blue-rgb), .18);
    border-radius: 1rem;
    background: linear-gradient(145deg, rgba(var(--samarovka-blue-rgb), .045), #fff);
}

.cabinet-identity-inline-form,
.cabinet-identity-code-form {
    display: flex;
    align-items: flex-end;
    gap: .75rem;
    max-width: 48rem;
}

.cabinet-identity-code-form > div {
    width: min(100%, 16rem);
}

/* Phase 5: authenticated order history and order details. */
.cabinet-orders-section,
.cabinet-order-hero,
.cabinet-order-section {
    padding: clamp(1.2rem, 2.5vw, 1.6rem);
}

.cabinet-orders-head,
.cabinet-order-section-head,
.cabinet-order-hero {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.cabinet-order-list {
    display: grid;
    gap: .85rem;
}

.cabinet-order-card {
    padding: 1.1rem 1.2rem;
    background: #fff;
    border: 1px solid var(--samarovka-border);
    border-radius: 1rem;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.cabinet-order-card:hover {
    border-color: rgba(var(--samarovka-blue-rgb), .28);
    box-shadow: 0 .75rem 2rem rgba(17, 24, 32, .06);
    transform: translateY(-1px);
}

.cabinet-order-card-top,
.cabinet-order-card-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.cabinet-order-number {
    color: var(--samarovka-ink);
    font-size: 1.05rem;
    font-weight: 750;
    text-decoration: none;
}

.cabinet-order-number:hover,
.cabinet-order-number:focus {
    color: var(--samarovka-blue-dark);
}

.cabinet-order-card-body {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
    margin: 1rem 0;
    padding: .9rem 0;
    border-top: 1px solid var(--samarovka-border);
    border-bottom: 1px solid var(--samarovka-border);
}

.cabinet-order-card-body > div {
    display: grid;
    gap: .18rem;
    min-width: 0;
}

.cabinet-order-card-body span,
.cabinet-order-total span {
    color: var(--bs-secondary-color);
    font-size: .76rem;
}

.cabinet-order-card-body strong {
    overflow: hidden;
    font-size: .9rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cabinet-orders-empty {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: center;
    margin-top: 1.5rem;
    padding: 1.15rem;
    background: var(--bs-tertiary-bg);
    border-radius: 1rem;
}

.cabinet-order-hero {
    align-items: center;
}

.cabinet-order-total {
    display: grid;
    gap: .15rem;
    min-width: 160px;
    text-align: right;
}

.cabinet-order-total strong {
    color: var(--samarovka-ink);
    font-size: 1.55rem;
}

.cabinet-order-detail-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.cabinet-order-delivery {
    grid-column: 1 / -1;
}

.cabinet-order-section-head {
    margin-bottom: 1rem;
}

.cabinet-order-timeline {
    display: grid;
    gap: 0;
    padding: 0;
    margin: 0;
    list-style: none;
}

.cabinet-order-timeline li {
    position: relative;
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    gap: .7rem;
    min-height: 54px;
    padding-bottom: .8rem;
}

.cabinet-order-timeline li:not(:last-child)::before {
    position: absolute;
    top: 12px;
    bottom: -2px;
    left: 5px;
    width: 2px;
    background: var(--samarovka-border);
    content: '';
}

.cabinet-order-timeline-dot {
    position: relative;
    z-index: 1;
    width: 12px;
    height: 12px;
    margin-top: .28rem;
    background: #fff;
    border: 2px solid #aab4bd;
    border-radius: 50%;
}

.cabinet-order-timeline li.is-current .cabinet-order-timeline-dot {
    background: var(--samarovka-blue-dark);
    border-color: var(--samarovka-blue-dark);
    box-shadow: 0 0 0 4px rgba(var(--samarovka-blue-rgb), .1);
}

.cabinet-order-timeline li > div {
    display: grid;
    gap: .1rem;
}

.cabinet-order-timeline small {
    color: var(--bs-secondary-color);
}

.cabinet-order-facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .7rem;
    margin: 0;
}

.cabinet-order-facts > div {
    display: grid;
    gap: .15rem;
    padding: .75rem .85rem;
    background: var(--bs-tertiary-bg);
    border-radius: .8rem;
}

.cabinet-order-facts .cabinet-order-fact-wide {
    grid-column: 1 / -1;
}

.cabinet-order-facts dt {
    color: var(--bs-secondary-color);
    font-size: .74rem;
    font-weight: 600;
}

.cabinet-order-facts dd {
    margin: 0;
    overflow-wrap: anywhere;
    color: var(--samarovka-ink);
    font-weight: 700;
}

.cabinet-order-items {
    display: grid;
    border-top: 1px solid var(--samarovka-border);
}

.cabinet-order-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 1rem;
    align-items: center;
    padding: .9rem 0;
    border-bottom: 1px solid var(--samarovka-border);
}

.cabinet-order-item-main {
    display: grid;
    gap: .12rem;
    min-width: 0;
}

.cabinet-order-item-main span,
.cabinet-order-item-qty {
    color: var(--bs-secondary-color);
    font-size: .8rem;
}

.cabinet-order-item-name {
    color: var(--samarovka-ink);
    font-weight: 700;
    text-decoration: none;
}

.cabinet-order-item-name:hover,
.cabinet-order-item-name:focus {
    color: var(--samarovka-blue-dark);
}

.cabinet-order-item-total {
    min-width: 100px;
    text-align: right;
}

.cabinet-order-amounts {
    display: grid;
    gap: .55rem;
    width: min(100%, 390px);
    margin: 1.1rem 0 0 auto;
}

.cabinet-order-amounts > div {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
}

.cabinet-order-amount-total {
    padding-top: .7rem;
    border-top: 1px solid var(--samarovka-border);
    font-size: 1.08rem;
}

.cabinet-order-comment {
    padding: .9rem 1rem;
    background: var(--bs-tertiary-bg);
    border-radius: .85rem;
}

@media (max-width: 767.98px) {
    .cabinet-profile-grid {
        grid-template-columns: 1fr;
    }

    .cabinet-profile-contact,
    .cabinet-identity-inline-form,
    .cabinet-identity-code-form {
        align-items: stretch;
        flex-direction: column;
    }

    .cabinet-identity-code-form > div {
        width: 100%;
    }

    .cabinet-grid,
    .cabinet-order-detail-grid {
        grid-template-columns: 1fr;
    }

    .cabinet-order-delivery {
        grid-column: auto;
    }

    .cabinet-order-card-body {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cabinet-orders-head,
    .cabinet-order-hero {
        align-items: flex-start;
        flex-direction: column;
    }

    .cabinet-order-total {
        min-width: 0;
        text-align: left;
    }

    .cabinet-orders-empty {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .cabinet-orders-empty .btn {
        grid-column: 1 / -1;
    }

    .cabinet-grid {
        grid-template-columns: 1fr;
    }

    .cabinet-welcome {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 575.98px) {
    .cabinet-order-card-top,
    .cabinet-order-card-actions,
    .cabinet-order-section-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .cabinet-order-card-body,
    .cabinet-order-facts {
        grid-template-columns: 1fr;
    }

    .cabinet-order-facts .cabinet-order-fact-wide {
        grid-column: auto;
    }

    .cabinet-order-item {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: .45rem .75rem;
    }

    .cabinet-order-item-main {
        grid-column: 1 / -1;
    }

    .cabinet-order-item-total {
        min-width: 0;
    }

    .cabinet-shell-intro {
        align-items: flex-start;
    }

    .cabinet-method-pills {
        grid-template-columns: 1fr;
    }

    .cabinet-auth-submit,
    .cabinet-code-form .btn,
    .cabinet-welcome .btn {
        width: 100%;
    }
}

.cabinet-order-claim {
    overflow: hidden;
}

.cabinet-claim-panel {
    border-top: 1px solid var(--bs-border-color-translucent);
    padding-top: 1.25rem;
}

.cabinet-claim-form,
.cabinet-claim-code {
    display: grid;
    gap: 1rem;
    max-width: 44rem;
}

.cabinet-claim-feedback {
    max-width: 44rem;
}

.cabinet-claim-code[hidden],
.cabinet-claim-panel[hidden],
.cabinet-claim-form[hidden] {
    display: none !important;
}

@media (max-width: 575.98px) {
    .cabinet-order-claim .cabinet-orders-head > .btn,
    .cabinet-claim-form .btn,
    .cabinet-claim-code .btn {
        width: 100%;
    }
}

/* Customer cabinet: saved courier/postal addresses. */
.cabinet-address-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.cabinet-address-card {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    min-width: 0;
    padding: 1rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 1rem;
    background: var(--bs-body-bg);
}

.cabinet-address-card.is-default {
    border-color: rgba(var(--bs-primary-rgb), .45);
    box-shadow: 0 0 0 .15rem rgba(var(--bs-primary-rgb), .07);
}

.cabinet-address-card-head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
}

.cabinet-address-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-top: auto;
}

.cabinet-address-editor {
    padding: 1rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 1rem;
    background: rgba(var(--bs-body-color-rgb), .025);
}

.cabinet-address-editor[hidden] {
    display: none !important;
}

.checkout-saved-addresses {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}

.checkout-saved-address {
    display: block;
    width: 100%;
    padding: .85rem 1rem;
    text-align: left;
    border: 1px solid var(--bs-border-color);
    border-radius: .9rem;
    background: var(--bs-body-bg);
    color: inherit;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.checkout-saved-address:hover,
.checkout-saved-address:focus-visible {
    border-color: rgba(var(--bs-primary-rgb), .55);
    box-shadow: 0 .35rem 1rem rgba(0, 0, 0, .06);
}

.checkout-saved-address.is-selected {
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 .15rem rgba(var(--bs-primary-rgb), .1);
}

@media (max-width: 767.98px) {
    .cabinet-address-list,
    .checkout-saved-addresses {
        grid-template-columns: 1fr;
    }

    .cabinet-address-actions .btn {
        flex: 1 1 auto;
    }
}

/* Phase 9 — guest/session and account-backed favourites. */
.product-card {
    position: relative;
}

.product-favourite-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    color: var(--samarovka-ink);
    transition: color .16s ease, background-color .16s ease, border-color .16s ease, transform .16s ease, box-shadow .16s ease;
}

.product-favourite-toggle svg,
.product-page-favourite-toggle svg {
    width: 21px;
    height: 21px;
    fill: transparent;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: fill .16s ease, transform .16s ease;
}

.product-favourite-toggle.is-active svg,
.product-page-favourite-toggle.is-active svg {
    fill: currentColor;
}

.product-card-favourite-toggle {
    position: absolute;
    z-index: 4;
    top: .75rem;
    right: .75rem;
    width: 42px;
    height: 42px;
    padding: 0;
    color: var(--samarovka-ink);
    background: rgba(255, 255, 255, .92);
    border: 1px solid var(--samarovka-border);
    border-radius: 50%;
    box-shadow: 0 .3rem 1rem rgba(17, 24, 32, .08);
    backdrop-filter: blur(8px);
}

.product-card-favourite-toggle:hover,
.product-card-favourite-toggle:focus-visible,
.product-card-favourite-toggle.is-active {
    color: var(--samarovka-blue-dark);
    background: #fff;
    border-color: rgba(var(--samarovka-blue-rgb), .35);
    outline: none;
    box-shadow: 0 .45rem 1.2rem rgba(17, 24, 32, .12), 0 0 0 .18rem rgba(var(--samarovka-blue-rgb), .08);
}

.product-card-favourite-toggle:hover svg {
    transform: scale(1.06);
}

.product-favourite-toggle[aria-busy="true"] svg,
.product-page-favourite-toggle[aria-busy="true"] svg {
    opacity: .35;
}

.product-card-favourite-toggle [data-favourite-spinner] {
    position: absolute;
}

.product-purchase-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: .75rem;
    align-items: start;
}

.product-page-cart-control {
    min-width: 0;
}

.product-page-favourite-toggle {
    display: inline-flex;
    width: 100%;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    margin-top: 0;
    white-space: nowrap;
}

@media (min-width: 520px) {
    .product-purchase-actions {
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: start;
    }

    .product-page-favourite-toggle {
        width: auto;
        min-width: 154px;
        min-height: 48px;
    }

    .product-purchase-actions-unavailable {
        align-items: center;
    }
}

.product-page-favourite-toggle.is-active {
    color: var(--samarovka-blue-dark);
    background: rgba(var(--samarovka-blue-rgb), .06);
    border-color: rgba(var(--samarovka-blue-rgb), .35);
}

.favourites-context {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
    padding: 1.1rem 1.25rem;
}

.favourites-empty-icon {
    display: inline-flex;
    width: 64px;
    height: 64px;
    align-items: center;
    justify-content: center;
    margin-bottom: 1rem;
    color: var(--samarovka-blue-dark);
    background: rgba(var(--samarovka-blue-rgb), .08);
    border-radius: 50%;
}

.favourites-empty-icon svg {
    width: 30px;
    height: 30px;
    fill: transparent;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.favourites-feedback {
    position: fixed;
    z-index: 1090;
    right: 1rem;
    bottom: 1rem;
    max-width: min(420px, calc(100vw - 2rem));
    margin: 0;
    opacity: 0;
    transform: translateY(.75rem);
    transition: opacity .18s ease, transform .18s ease;
    box-shadow: 0 .75rem 2rem rgba(17, 24, 32, .14);
}

.favourites-feedback.is-visible {
    opacity: 1;
    transform: translateY(0);
}

@media (max-width: 575.98px) {
    .product-card-favourite-toggle {
        top: .55rem;
        right: .55rem;
        width: 38px;
        height: 38px;
    }

    .favourites-context {
        align-items: stretch;
        flex-direction: column;
    }
}

@media (prefers-reduced-motion: reduce) {
    .product-favourite-toggle,
    .product-favourite-toggle svg,
    .product-page-favourite-toggle svg,
    .favourites-feedback {
        transition: none;
    }
}

/* Phase 11 — customer notification preferences and session security. */
.cabinet-preferences-section {
    padding: clamp(1.2rem, 2.5vw, 1.6rem);
    scroll-margin-top: 7rem;
}

.cabinet-preferences-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
}

.cabinet-preference-panel {
    display: flex;
    flex-direction: column;
    gap: 1.15rem;
    min-width: 0;
    padding: 1.2rem;
    border: 1px solid var(--samarovka-border);
    border-radius: 1rem;
    background: #fff;
}

.cabinet-preferences-form {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.cabinet-preferences-form fieldset {
    min-width: 0;
    padding: 0;
    margin: 0;
    border: 0;
}

.cabinet-session-list {
    display: grid;
    gap: .75rem;
}

.cabinet-session-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .9rem 1rem;
    border: 1px solid var(--bs-border-color);
    border-radius: .9rem;
    background: var(--bs-body-bg);
}

.cabinet-session-row.is-current {
    border-color: rgba(var(--bs-primary-rgb), .35);
    background: rgba(var(--bs-primary-rgb), .035);
}

.cabinet-session-row > div {
    display: grid;
    gap: .2rem;
    min-width: 0;
}

.cabinet-session-row small {
    color: var(--bs-secondary-color);
}

@media (max-width: 991.98px) {
    .cabinet-preferences-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575.98px) {
    .cabinet-session-row {
        align-items: flex-start;
        flex-direction: column;
    }

    .cabinet-session-row .btn {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .home-hero-v2 {
        --home-hero-parallax-y: 0px !important;
        will-change: auto;
    }
}


/* Product marking badge. The official Chestny Znak block is kept intact,
 * with dedicated clear space around it as required by the brand guidelines. */
.product-marking-badge {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    padding: 1rem 1.25rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 1rem;
    background: var(--bs-body-bg);
}

.product-marking-logo-wrap {
    flex: 0 0 auto;
    padding: .75rem;
    line-height: 0;
}

.product-marking-logo {
    display: block;
    width: 180px;
    height: auto;
    max-width: 100%;
}

.product-marking-copy {
    min-width: 0;
}

@media (max-width: 575.98px) {
    .product-marking-badge {
        align-items: flex-start;
        flex-direction: column;
        gap: .75rem;
    }

    .product-marking-logo {
        width: 150px;
    }
}
