/* =====================================================
   ROOT
===================================================== */

:root {
    --cream: #fffaf1;
    --cream-dark: #f4eadb;

    --red: #9f1239;
    --deep-red: #7f1d1d;

    --gold: #c89b3c;
    --gold-light: #e7c878;

    --dark: #211512;
    --brown: #4a3028;

    --white: #ffffff;
    --gray: #766b66;

    --container: 1380px;

    --serif: "Cormorant Garamond", serif;
    --sans: "Montserrat", sans-serif;

    --shadow:
        0 15px 50px rgba(33, 21, 18, 0.10);

    --shadow-premium:
        0 25px 70px rgba(33, 21, 18, 0.14);

    --transition:
        0.45s cubic-bezier(.2, .7, .2, 1);
}


/* =====================================================
   RESET
===================================================== */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    overflow-x: hidden;
}

body {
    width: 100%;
    min-height: 100%;
    overflow-x: hidden;

    font-family: var(--sans);
    color: var(--dark);
    background: var(--cream);

    line-height: 1.6;

    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

img {
    display: block;
    max-width: 100%;
}

button,
input {
    font: inherit;
}

button {
    cursor: pointer;
}

a {
    color: inherit;
    text-decoration: none;
}

button:focus-visible,
a:focus-visible,
input:focus-visible {
    outline: 2px solid var(--gold);
    outline-offset: 3px;
}


/* =====================================================
   HEADER
===================================================== */

.site-header {
    position: sticky;
    top: 0;

    z-index: 1000;

    background:
        rgba(255, 250, 241, 0.94);

    backdrop-filter:
        blur(20px);

    -webkit-backdrop-filter:
        blur(20px);

    border-bottom:
        1px solid rgba(159, 18, 57, .10);

    box-shadow:
        0 4px 25px rgba(33, 21, 18, .035);

    transition:
        box-shadow var(--transition),
        background var(--transition);
}

.site-header:hover {
    box-shadow:
        0 8px 35px rgba(33, 21, 18, .07);
}

.header-inner {
    width: 100%;
    max-width: var(--container);

    min-height: 88px;

    margin: auto;
    padding: 0 30px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 30px;
}


/* =====================================================
   BRAND / LOGO
===================================================== */

.brand {
    display: inline-flex;
    align-items: center;

    flex-shrink: 0;

    transition:
        transform var(--transition);
}

.brand:hover {
    transform:
        translateY(-2px);
}

.brand-logo {
    display: block;

    width: auto;
    max-width: 155px;
    height: 55px;

    object-fit: contain;
}

.brand-star {
    color: var(--gold);
    font-size: 27px;
}

.brand-text {
    display: flex;
    flex-direction: column;
}

.brand-text strong {
    font-family: var(--serif);

    font-size: 30px;
    font-weight: 700;

    line-height: 1;

    color: var(--red);
}

.brand-text small {
    margin-top: 4px;

    font-size: 8px;
    letter-spacing: 3px;
    font-weight: 700;

    color: var(--dark);
}


/* =====================================================
   DESKTOP NAV
===================================================== */

.main-nav {
    display: flex;
    align-items: center;

    gap: 30px;

    margin-left: auto;
}

.main-nav a {
    position: relative;

    padding: 8px 0;

    font-size: 10px;
    font-weight: 600;

    letter-spacing: 1.2px;

    text-transform: uppercase;

    color: var(--dark);

    transition:
        color var(--transition);
}

.main-nav a::after {
    content: "";

    position: absolute;

    left: 0;
    bottom: 0;

    width: 0;
    height: 1px;

    background: var(--gold);

    transition:
        width var(--transition);
}

.main-nav a:hover {
    color: var(--red);
}

.main-nav a:hover::after {
    width: 100%;
}


/* =====================================================
   HEADER ACTIONS
===================================================== */

.header-actions {
    display: flex;
    align-items: center;

    gap: 5px;

    flex-shrink: 0;
}

.header-icon {
    position: relative;

    width: 50px;
    height: 50px;

    display: grid;
    place-items: center;

    border: 0;

    background: transparent;

    color: var(--dark);

    font-size: 20px;

    transition:
        transform var(--transition),
        color var(--transition),
        background var(--transition);
}

.header-icon:hover {
    color: var(--red);

    transform:
        translateY(-2px);
}

.count-badge {
    position: absolute;

    top: 0;
    right: 0;

    min-width: 17px;
    height: 17px;

    padding: 0 4px;

    display: grid;
    place-items: center;

    border-radius: 50%;

    background: var(--red);
    color: var(--white);

    font-size: 8px;
    font-weight: 700;

    line-height: 1;

    box-shadow:
        0 3px 8px rgba(159, 18, 57, .18);
}

.menu-btn {
    display: none;

    width: 40px;
    height: 40px;

    border: 0;

    background: transparent;

    color: var(--dark);

    font-size: 23px;
}


/* =====================================================
   MOBILE MENU
===================================================== */

.mobile-menu {
    position: fixed;

    inset: 0;

    z-index: 2000;

    width: 100%;
    min-height: 100vh;

    padding:
        100px 30px 35px;

    display: flex;
    flex-direction: column;

    background:
        var(--cream);

    transform:
        translateX(100%);

    visibility: hidden;

    opacity: 0;

    transition:
        transform .45s cubic-bezier(.2, .7, .2, 1),
        visibility .45s ease,
        opacity .45s ease;

    overflow-y: auto;
}

.mobile-menu.open {
    transform:
        translateX(0);

    visibility: visible;

    opacity: 1;
}

.mobile-menu::before {
    content: "";

    position: absolute;

    top: 0;
    left: 0;
    right: 0;

    height: 4px;

    background:
        linear-gradient(
            90deg,
            var(--red),
            var(--gold),
            var(--red)
        );
}

.mobile-menu-label {
    margin-bottom: 20px;

    color: var(--gold);

    font-size: 9px;
    font-weight: 700;

    letter-spacing: 3px;

    text-transform: uppercase;
}

.mobile-close {
    position: absolute;

    top: 22px;
    right: 22px;

    width: 45px;
    height: 45px;

    display: grid;
    place-items: center;

    border:
        1px solid rgba(33, 21, 18, .10);

    border-radius: 50%;

    background:
        var(--white);

    color: var(--dark);

    font-size: 30px;

    line-height: 1;

    transition:
        all var(--transition);
}

.mobile-close:hover {
    color: var(--white);

    background: var(--red);

    border-color: var(--red);

    transform:
        rotate(90deg);
}

.mobile-menu > a {
    position: relative;

    display: flex;
    align-items: center;

    min-height: 60px;

    padding:
        12px 0;

    border-bottom:
        1px solid rgba(33, 21, 18, .08);

    font-family: var(--serif);

    color: var(--red);

    font-size: 32px;

    transition:
        padding-left var(--transition),
        color var(--transition);
}

.mobile-menu > a::after {
    content: "→";

    margin-left: auto;

    color: var(--gold);

    font-family: var(--sans);

    font-size: 15px;

    opacity: 0;

    transform:
        translateX(-10px);

    transition:
        all var(--transition);
}

.mobile-menu > a:hover {
    padding-left: 8px;
}

.mobile-menu > a:hover::after {
    opacity: 1;

    transform:
        translateX(0);
}

.mobile-menu-header {
    position: absolute;

    top: 0;
    left: 0;
    right: 0;

    min-height: 75px;

    padding:
        0 25px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    border-bottom:
        1px solid rgba(159, 18, 57, .10);
}

.mobile-menu-title {
    font-family: var(--serif);

    color: var(--red);

    font-size: 28px;
    font-weight: 600;
}

.mobile-nav {
    display: flex;
    flex-direction: column;
}

.mobile-nav a {
    display: flex;
    align-items: center;

    gap: 20px;

    padding:
        17px 0;

    border-bottom:
        1px solid rgba(33, 21, 18, .08);

    font-family: var(--serif);

    color: var(--red);

    font-size: 31px;

    transition:
        padding-left var(--transition),
        color var(--transition);
}

.mobile-nav a span {
    width: 30px;

    color: var(--gold);

    font-family: var(--sans);

    font-size: 9px;
    font-weight: 700;

    letter-spacing: 1px;
}

.mobile-nav a:hover {
    padding-left: 8px;
}

.mobile-menu-footer {
    margin-top: auto;

    padding-top: 40px;

    display: flex;
    justify-content: space-between;

    gap: 20px;

    color: var(--gray);

    font-size: 8px;
    font-weight: 700;

    letter-spacing: 2px;
}


/* =====================================================
   HERO
===================================================== */

.hero {
    position: relative;

    min-height: 650px;

    overflow: hidden;

    background:
        radial-gradient(
            circle at 20% 20%,
            rgba(200, 155, 60, .15),
            transparent 30%
        ),
        var(--cream-dark);
}

.hero-slide {
    position: absolute;

    inset: 0;

    width: 100%;
    max-width: var(--container);

    min-height: 650px;

    margin: auto;

    padding:
        110px 30px;

    display: grid;

    grid-template-columns:
        .9fr 1.1fr;

    align-items: center;

    gap: 50px;

    opacity: 0;
    visibility: hidden;

    transform:
        translateX(35px);

    pointer-events: none;

    transition:
        opacity .8s ease,
        transform .8s ease,
        visibility .8s ease;
}

.hero-slide.active {
    position: relative;

    opacity: 1;
    visibility: visible;

    transform:
        translateX(0);

    pointer-events: auto;
}

.hero-content {
    position: relative;

    z-index: 3;

    padding-left: 5%;
}

.hero-small,
.section-label {
    display: inline-block;

    color: var(--gold);

    font-size: 10px;

    font-weight: 700;

    letter-spacing: 3px;

    text-transform: uppercase;
}

.hero h1 {
    margin:
        18px 0;

    max-width:
        650px;

    font-family:
        var(--serif);

    font-size:
        clamp(55px, 7vw, 105px);

    font-weight:
        500;

    line-height:
        .85;

    letter-spacing:
        -.025em;
}

.hero h1 span {
    display: block;

    color: var(--red);

    font-style: italic;
}

.hero p {
    max-width:
        500px;

    margin-bottom:
        32px;

    color:
        var(--gray);

    font-size:
        15px;

    line-height:
        1.75;
}

.hero-actions {
    display: flex;
    align-items: center;

    flex-wrap: wrap;

    gap: 22px;
}

.hero-text-link {
    display: inline-flex;
    align-items: center;

    gap: 8px;

    color: var(--dark);

    font-size: 10px;
    font-weight: 700;

    letter-spacing: 1px;

    text-transform: uppercase;

    transition:
        color var(--transition);
}

.hero-text-link span {
    font-size: 16px;

    transition:
        transform var(--transition);
}

.hero-text-link:hover {
    color: var(--red);
}

.hero-text-link:hover span {
    transform:
        translateX(5px);
}

.hero-trust {
    margin-top: 28px;

    display: flex;
    align-items: center;

    flex-wrap: wrap;

    gap: 8px;

    color: var(--gray);

    font-size: 8px;
    font-weight: 600;

    letter-spacing: 1px;

    text-transform: uppercase;
}

.hero-trust span {
    color: var(--gold);
}


/* =====================================================
   HERO IMAGE
===================================================== */

.hero-image {
    position: relative;

    height: 560px;

    overflow: hidden;

    background:
        var(--cream-dark);

    box-shadow:
        var(--shadow-premium);
}

.hero-image::before {
    content: "";

    position: absolute;

    inset: 0;

    z-index: 1;

    background:
        linear-gradient(
            135deg,
            rgba(255,255,255,.12),
            transparent 45%
        );

    pointer-events: none;
}

.hero-image::after {
    content: "";

    position: absolute;

    inset: 18px;

    z-index: 2;

    border:
        1px solid
        rgba(255, 255, 255, .65);

    pointer-events: none;
}

.hero-image-frame {
    position: absolute;

    inset: 28px;

    z-index: 2;

    border:
        1px solid
        rgba(255, 255, 255, .22);

    pointer-events: none;
}

.hero-image img {
    width: 100%;
    height: 100%;

    object-fit: cover;

    transition:
        transform 1.2s ease;
}

.hero-slide.active .hero-image img {
    animation:
        heroImageZoom 6s ease forwards;
}

@keyframes heroImageZoom {

    from {
        transform:
            scale(1.06);
    }

    to {
        transform:
            scale(1);
    }

}

.hero-image:hover img {
    transform:
        scale(1.04);
}

.hero-image-badge {
    position: absolute;

    z-index: 4;

    right: 30px;
    bottom: 30px;

    width: 75px;
    height: 75px;

    display: flex;
    flex-direction: column;

    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background:
        rgba(255, 250, 241, .94);

    color:
        var(--red);

    box-shadow:
        0 10px 30px rgba(0, 0, 0, .12);
}

.hero-image-badge span {
    font-family:
        var(--serif);

    font-size:
        25px;

    line-height:
        1;
}

.hero-image-badge small {
    margin-top:
        4px;

    font-size:
        6px;

    font-weight:
        700;

    letter-spacing:
        1px;

    text-align:
        center;
}


/* =====================================================
   HERO CONTROLS
===================================================== */

.hero-controls {
    position: absolute;

    z-index: 20;

    left: 50%;
    bottom: 25px;

    transform:
        translateX(-50%);

    width:
        min(
            calc(100% - 60px),
            var(--container)
        );

    padding:
        0 30px;

    display: flex;
    align-items: center;

    justify-content: space-between;

    pointer-events: none;
}

.hero-arrow {
    width: 44px;
    height: 44px;

    display: grid;
    place-items: center;

    border:
        1px solid rgba(33, 21, 18, .18);

    background:
        rgba(255, 250, 241, .88);

    color:
        var(--dark);

    font-size:
        17px;

    pointer-events:
        auto;

    transition:
        all var(--transition);
}

.hero-arrow:hover {
    border-color:
        var(--red);

    background:
        var(--red);

    color:
        var(--white);

    transform:
        translateY(-2px);
}

.hero-dots {
    display:
        flex;

    align-items:
        center;

    gap:
        8px;

    pointer-events:
        auto;
}

.hero-dot {
    width:
        24px;

    height:
        2px;

    padding:
        0;

    border:
        0;

    background:
        rgba(33, 21, 18, .25);

    transition:
        all var(--transition);
}

.hero-dot.active {
    width:
        45px;

    background:
        var(--red);
}


/* =====================================================
   BUTTONS
===================================================== */

.primary-btn,
.secondary-btn {
    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    min-height:
        52px;

    padding:
        0 28px;

    border:
        0;

    font-size:
        10px;

    font-weight:
        700;

    letter-spacing:
        1.5px;

    text-transform:
        uppercase;

    transition:
        all var(--transition);
}

.primary-btn {
    color:
        var(--white);

    background:
        var(--red);

    box-shadow:
        0 8px 20px rgba(159,18,57,.10);
}

.primary-btn:hover {
    background:
        var(--deep-red);

    transform:
        translateY(-3px);

    box-shadow:
        0 15px 30px
        rgba(159, 18, 57, .2);
}

.secondary-btn {
    color:
        var(--red);

    border:
        1px solid var(--red);

    background:
        transparent;
}

.secondary-btn:hover {
    color:
        var(--white);

    background:
        var(--red);

    transform:
        translateY(-2px);
}


/* =====================================================
   INTRO
===================================================== */

.intro-section {
    width: 100%;
    max-width:
        800px;

    margin:
        auto;

    padding:
        110px 30px;

    text-align:
        center;
}

.intro-section h2,
.section-heading h2,
.about-content h2,
.newsletter h2 {
    margin:
        12px 0 18px;

    font-family:
        var(--serif);

    font-size:
        clamp(42px, 5vw, 68px);

    font-weight:
        500;

    line-height:
        .95;
}

.intro-section h2 em,
.section-heading h2 em,
.about-content h2 em,
.newsletter h2 em {
    color:
        var(--red);

    font-style:
        italic;
}

.intro-section p {
    color:
        var(--gray);

    font-size:
        14px;
}


/* =====================================================
   SHOP
===================================================== */

.shop-section {
    width:
        100%;

    max-width:
        var(--container);

    margin:
        auto;

    padding:
        70px 30px 120px;
}

.section-heading {
    display:
        flex;

    justify-content:
        space-between;

    align-items:
        end;

    gap:
        30px;

    margin-bottom:
        40px;
}

.product-total {
    color:
        var(--gray);

    font-size:
        10px;

    letter-spacing:
        1px;
}


/* =====================================================
   FILTERS
===================================================== */

.filters {
    display:
        flex;

    flex-wrap:
        wrap;

    gap:
        9px;

    margin-bottom:
        25px;
}

.filter-btn {
    padding:
        11px 18px;

    border:
        1px solid rgba(33, 21, 18, .15);

    background:
        transparent;

    color:
        var(--dark);

    font-size:
        9px;

    letter-spacing:
        1px;

    text-transform:
        uppercase;

    transition:
        all var(--transition);
}

.filter-btn:hover,
.filter-btn.active {
    color:
        var(--white);

    border-color:
        var(--red);

    background:
        var(--red);
}


/* =====================================================
   SEARCH
===================================================== */

.search-box {
    display:
        none;

    margin-bottom:
        30px;
}

.search-box.show {
    display:
        block;
}

.search-input-wrap {
    position:
        relative;

    width:
        100%;
}

.search-box input {
    width:
        100%;

    padding:
        16px 48px 16px 45px;

    border:
        1px solid rgba(33, 21, 18, .15);

    outline:
        none;

    background:
        var(--white);

    color:
        var(--dark);

    font-size:
        12px;

    transition:
        border-color var(--transition),
        box-shadow var(--transition);
}

.search-box input:focus {
    border-color:
        var(--gold);

    box-shadow:
        0 8px 25px rgba(33,21,18,.05);
}

.search-symbol {
    position:
        absolute;

    left:
        17px;

    top:
        50%;

    transform:
        translateY(-50%);

    color:
        var(--gray);

    font-size:
        18px;

    pointer-events:
        none;
}

.search-clear {
    position:
        absolute;

    right:
        10px;

    top:
        50%;

    width:
        32px;

    height:
        32px;

    transform:
        translateY(-50%);

    border:
        0;

    background:
        transparent;

    color:
        var(--gray);

    font-size:
        20px;
}


/* =====================================================
   PRODUCT GRID
===================================================== */

.product-grid {
    width:
        100%;

    display:
        grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap:
        48px 24px;
}


/* =====================================================
   PRODUCT CARD
===================================================== */

.product-card {
    position:
        relative;

    min-width:
        0;

    animation:
        productAppear .7s ease both;
}

@keyframes productAppear {

    from {
        opacity:
            0;

        transform:
            translateY(20px);
    }

    to {
        opacity:
            1;

        transform:
            translateY(0);
    }

}


/* =====================================================
   PRODUCT IMAGE
===================================================== */

.product-image {
    position:
        relative;

    width:
        100%;

    aspect-ratio:
        3 / 4;

    overflow:
        hidden;

    background:
        #f2e8dd;
}

.product-image-wrap {
    position:
        absolute;

    inset:
        0;

    overflow:
        hidden;
}

.product-img {
    position:
        absolute;

    inset:
        0;

    width:
        100%;

    height:
        100%;

    object-fit:
        contain;

    transition:
        opacity .55s ease,
        transform .75s cubic-bezier(.2, .7, .2, 1);
}

.front-img {
    opacity:
        1;

    transform:
        scale(1);
}

.back-img {
    opacity:
        0;

    transform:
        scale(1.05);
}

.product-card:hover .front-img {
    opacity:
        0;

    transform:
        scale(1.05);
}

.product-card:hover .back-img {
    opacity:
        1;

    transform:
        scale(1);
}


/* =====================================================
   BADGE
===================================================== */

.product-badge {
    position:
        absolute;

    z-index:
        5;

    top:
        13px;

    left:
        13px;

    padding:
        7px 10px;

    color:
        var(--white);

    background:
        var(--red);

    font-size:
        7px;

    font-weight:
        700;

    letter-spacing:
        1px;

    text-transform:
        uppercase;

    box-shadow:
        0 5px 15px rgba(159,18,57,.12);
}


/* =====================================================
   WISHLIST
===================================================== */

.wishlist-btn {
    position:
        absolute;

    z-index:
        5;

    top:
        10px;

    right:
        10px;

    width:
        38px;

    height:
        38px;

    display:
        grid;

    place-items:
        center;

    border:
        0;

    border-radius:
        50%;

    background:
        rgba(255, 255, 255, .94);

    color:
        var(--dark);

    font-size:
        20px;

    box-shadow:
        0 6px 18px rgba(33,21,18,.08);

    transition:
        all var(--transition);
}

.wishlist-btn:hover,
.wishlist-btn.active {
    color:
        var(--red);

    transform:
        scale(1.08);
}


/* =====================================================
   QUICK VIEW
===================================================== */

.quick-view {
    position:
        absolute;

    z-index:
        5;

    bottom:
        15px;

    left:
        50%;

    transform:
        translate(-50%, 20px);

    opacity:
        0;

    width:
        calc(100% - 30px);

    padding:
        13px;

    border:
        0;

    color:
        var(--dark);

    background:
        rgba(255, 255, 255, .95);

    font-size:
        9px;

    font-weight:
        700;

    letter-spacing:
        1px;

    text-transform:
        uppercase;

    transition:
        all var(--transition);
}

.product-card:hover .quick-view {
    opacity:
        1;

    transform:
        translate(-50%, 0);
}


/* =====================================================
   PRODUCT INFO
===================================================== */

.product-info {
    min-width:
        0;

    padding-top:
        18px;
}

.product-category {
    display:
        block;

    margin-bottom:
        5px;

    color:
        var(--gold);

    font-size:
        8px;

    font-weight:
        700;

    letter-spacing:
        1.5px;

    text-transform:
        uppercase;
}

.product-info h3 {
    min-height:
        56px;

    margin-bottom:
        9px;

    font-family:
        var(--serif);

    font-size:
        23px;

    font-weight:
        600;

    line-height:
        1.05;
}

.product-price {
    display:
        flex;

    align-items:
        center;

    flex-wrap:
        wrap;

    gap:
        8px;

    margin-bottom:
        5px;
}

.product-price strong {
    color:
        var(--red);

    font-size:
        14px;
}

.product-price del {
    color:
        #999;

    font-size:
        10px;
}

.product-price-coming {
    min-height: 24px;
    align-items: center;
}

.product-price-coming strong {
    color: var(--gray);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .3px;
}

.product-card-coming-soon .product-image {
    background: #f7f2ea;
}

.add-cart.is-disabled,
.add-cart:disabled {
    opacity: .55;
    cursor: not-allowed;
    border-color: rgba(159,18,57,.35);
    color: var(--gray);
    background: rgba(255,255,255,.65);
}


.discount {
    display:
        inline-block;

    margin-bottom:
        12px;

    color:
        #16803c;

    font-size:
        8px;

    font-weight:
        700;
}


/* =====================================================
   COLORS
===================================================== */

.product-colors {
    display:
        flex;

    gap:
        6px;

    margin-bottom:
        10px;
}

.color-dot {
    width:
        14px;

    height:
        14px;

    flex-shrink:
        0;

    border-radius:
        50%;

    border:
        1px solid rgba(0, 0, 0, .12);
}


/* =====================================================
   SIZES
===================================================== */

.product-sizes {
    display:
        flex;

    flex-wrap:
        wrap;

    gap:
        5px;

    margin-bottom:
        13px;
}

.product-sizes span {
    min-width:
        28px;

    padding:
        5px 7px;

    text-align:
        center;

    border:
        1px solid rgba(33, 21, 18, .12);

    color:
        var(--gray);

    font-size:
        7px;

    font-weight:
        600;
}


/* =====================================================
   CART BUTTON
===================================================== */

.add-cart {
    width:
        100%;

    min-height:
        42px;

    padding:
        10px;

    border:
        1px solid var(--red);

    background:
        transparent;

    color:
        var(--red);

    font-size:
        13px;

    font-weight:
        700;

    letter-spacing:
        1.3px;

    text-transform:
        uppercase;

    transition:
        all var(--transition);
}

.add-cart:hover {
    color:
        var(--white);

    background:
        var(--red);

    transform:
        translateY(-2px);
}


/* =====================================================
   LOAD MORE
===================================================== */

.load-more-wrap {
    width:
        100%;

    margin-top:
        65px;

    text-align:
        center;
}

.load-more-wrapper {
    width:
        100%;

    margin-top:
        65px;

    text-align:
        center;
}

.load-more-btn {
    min-width:
        190px;

    min-height:
        52px;

    padding:
        0 22px;

    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        15px;

    border:
        1px solid var(--red);

    background:
        transparent;

    color:
        var(--red);

    font-size:
        10px;

    font-weight:
        700;

    letter-spacing:
        1.5px;

    text-transform:
        uppercase;

    transition:
        all var(--transition);
}

.load-more-btn:hover {
    color:
        var(--white);

    background:
        var(--red);

    transform:
        translateY(-3px);

    box-shadow:
        0 15px 30px
        rgba(159, 18, 57, .16);
}

.load-more-icon {
    font-size:
        16px;

    transition:
        transform var(--transition);
}

.load-more-btn:hover .load-more-icon {
    transform:
        translateY(4px);
}

.load-more-info {
    margin-top:
        12px;

    color:
        var(--gray);

    font-size:
        9px;

    letter-spacing:
        .5px;
}

.load-more-btn.hidden {
    display:
        none;
}


/* =====================================================
   NEW ARRIVALS
===================================================== */

.new-arrivals {
    min-height: 580px;

    display: flex;

    align-items: center;

    padding: 80px 8%;

    background:
        linear-gradient(
            90deg,
            rgba(33, 21, 18, 0.88),
            rgba(33, 21, 18, 0.45)
        ),
         url("../assets/sections/products/green-floral/1.jpg")
        center / cover
        no-repeat;
}

.new-arrivals-content {
    max-width:
        600px;
}

.new-arrivals h2 {
    margin:
        15px 0;

    font-family:
        var(--serif);

    font-size:
        clamp(50px, 6vw, 85px);

    line-height:
        .9;

    font-weight:
        500;
}

.new-arrivals h2 em {
    color:
        var(--gold-light);

    font-style:
        italic;
}

.new-arrivals p {
    margin-bottom:
        30px;

    color:
        rgba(255, 255, 255, .75);
}


/* =====================================================
   COLLECTIONS
===================================================== */

.collections {
    width:
        100%;

    max-width:
        var(--container);

    margin:
        auto;

    padding:
        110px 30px;
}

.center {
    display:
        block;

    text-align:
        center;
}

.collection-grid {
    display:
        grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap:
        20px;

    margin-top:
        45px;
}

.collection-card {
    position:
        relative;

    height:
        520px;

    overflow:
        hidden;

    background:
        var(--dark);

    box-shadow:
        0 12px 35px rgba(33,21,18,.08);
}

.collection-card img {
    width:
        100%;

    height:
        140%;

    object-fit:
        cover;

    transition:
        transform 1s ease;

    opacity:
        .9;
}

.collection-card:hover img {
    transform:
        scale(1.07);
}

.collection-card::after {
    content:
        "";

    position:
        absolute;

    inset:
        0;

    background:
        linear-gradient(
            transparent 35%,
            rgba(0, 0, 0, .75)
        );
}

.collection-card > div {
    position:
        absolute;

    z-index:
        2;

    left:
        25px;

    right:
        25px;

    bottom:
        25px;

    color:
        var(--white);
}

.collection-card span {
    color:
        var(--gold-light);

    font-size:
        9px;

    letter-spacing:
        2px;
}

.collection-card h3 {
    margin:
        4px 0;

    font-family:
        var(--serif);

    font-size:
        42px;

    font-weight:
        500;
}

.collection-card p {
    font-size:
        10px;

    color:
        rgba(255, 255, 255, .7);
}


/* =====================================================
   ABOUT
===================================================== */

.about-section {
    width:
        100%;

    max-width:
        var(--container);

    margin:
        auto;

    padding:
        50px 30px 120px;

    display:
        grid;

    grid-template-columns:
        1fr 1fr;

    gap:
        80px;

    align-items:
        center;
}

.about-image {
    height:
        650px;

    overflow:
        hidden;

    box-shadow:
        var(--shadow);
}

.about-image img {
    width:
        100%;

    height:
        100%;

    object-fit:
        cover;

    transition:
        transform 1s ease;
}

.about-image:hover img {
    transform:
        scale(1.04);
}

.about-content p {
    max-width:
        550px;

    margin-bottom:
        20px;

    color:
        var(--gray);

    font-size:
        14px;
}


/* =====================================================
   NEWSLETTER
===================================================== */

.newsletter {
    padding:
        100px 30px;

    text-align:
        center;

    background:
        var(--cream-dark);
}

.newsletter p {
    max-width:
        500px;

    margin:
        0 auto 30px;

    color:
        var(--gray);
}

.newsletter form {
    width:
        100%;

    max-width:
        550px;

    margin:
        auto;

    display:
        flex;
}

.newsletter input {
    flex:
        1;

    min-width:
        0;

    padding:
        17px 18px;

    border:
        1px solid rgba(33, 21, 18, .15);

    outline:
        none;

    background:
        var(--white);

    color:
        var(--dark);
}

.newsletter input:focus {
    border-color:
        var(--gold);
}

.newsletter button {
    padding:
        0 25px;

    border:
        0;

    color:
        var(--white);

    background:
        var(--red);

    font-size:
        9px;

    font-weight:
        700;

    letter-spacing:
        1px;

    text-transform:
        uppercase;

    transition:
        background var(--transition);
}

.newsletter button:hover {
    background:
        var(--deep-red);
}


/* =====================================================
   FOOTER
===================================================== */

.footer {
    padding:
        70px 30px 25px;

    background:
        var(--dark);

    color:
        rgba(255, 255, 255, .75);
}

.footer-grid {
    max-width:
        var(--container);

    margin:
        auto;

    display:
        grid;

    grid-template-columns:
        2fr 1fr 1fr 1fr;

    gap:
        50px;
}

.footer .brand-logo {
    max-width:
        145px;

  
}

.footer .brand-text strong {
    color:
        var(--gold-light);
}

.footer .brand-text small {
    color:
        rgba(255, 255, 255, .7);
}

.footer-brand p {
    max-width:
        330px;

    margin-top:
        20px;

    font-size:
        11px;

    line-height:
        1.8;
}

.footer h4 {
    margin-bottom:
        20px;

    color:
        var(--white);

    font-size:
        10px;

    letter-spacing:
        1px;

    text-transform:
        uppercase;
}

.footer-grid > div:not(.footer-brand) {
    display:
        flex;

    flex-direction:
        column;

    gap:
        10px;
}

.footer-grid a {
    font-size:
        18x;

    transition:
        color var(--transition);
}

.footer-grid a:hover {
    color:
        var(--gold-light);
}

.footer-bottom {
    max-width:
        var(--container);

    margin:
        60px auto 0;

    padding-top:
        20px;

    border-top:
        1px solid rgba(255, 255, 255, .1);

    display:
        flex;

    justify-content:
        space-between;

    gap:
        20px;

    font-size:
        8px;

    color:
        rgba(255, 255, 255, .45);
}


/* =====================================================
   MODAL
===================================================== */

.modal {
    position:
        fixed;

    inset:
        0;

    z-index:
        3000;

    display:
        none;

    place-items:
        center;

    padding:
        20px;

    background:
        rgba(33, 21, 18, .75);

    backdrop-filter:
        blur(8px);

    -webkit-backdrop-filter:
        blur(8px);
}

.modal.open {
    display:
        grid;
}

.modal-content {
    position:
        relative;

    width:
        min(1000px, 100%);

    max-height:
        90vh;

    overflow-y:
        auto;

    padding:
        35px;

    background:
        var(--cream);

    box-shadow:
        0 30px 100px rgba(0,0,0,.22);
}

.modal-close {
    position:
        absolute;

    z-index:
        10;

    top:
        12px;

    right:
        15px;

    width:
        38px;

    height:
        38px;

    border:
        0;

    border-radius:
        50%;

    background:
        var(--white);

    color:
        var(--dark);

    font-size:
        25px;
}

.modal-product {
    display:
        grid;

    grid-template-columns:
        1fr 1fr;

    gap:
        40px;
}

.modal-product-image {
    height:
        600px;

    overflow:
        hidden;
}

.modal-product-image img {
    width:
        100%;

    height:
        100%;

    object-fit:
        cover;
}

.modal-product-info {
    align-self:
        center;
}

.modal-product-info h2 {
    margin:
        10px 0 15px;

    font-family:
        var(--serif);

    font-size:
        50px;

    line-height:
        .95;
}

.modal-price {
    margin-bottom:
        20px;

    color:
        var(--red);

    font-size:
        20px;

    font-weight:
        700;
}


/* =====================================================
   TABLET
===================================================== */

@media (max-width: 1200px) {

    .header-inner {
        gap:
            15px;
    }

    .main-nav {
        gap:
            18px;
    }

    .product-grid {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }

}


/* =====================================================
   TABLET / SMALL LAPTOP
===================================================== */

@media (max-width: 992px) {

    .header-inner {
        min-height:
            80px;
    }

    .main-nav {
        display:
            none;
    }

    .menu-btn {
        display:
            grid;

        place-items:
            center;
    }

    .hero {
        min-height:
            780px;
    }

    .hero-slide {
        min-height:
            780px;

        grid-template-columns:
            1fr;

        grid-template-rows:
            auto 1fr;

        align-content:
            center;

        padding:
            55px 30px 90px;

        gap:
            35px;
    }

    .hero-content {
        padding-left:
            0;
    }

    .hero h1 {
        font-size:
            clamp(58px, 9vw, 90px);
    }

    .hero-image {
        height:
            400px;
    }

    .hero-controls {
        bottom:
            20px;
    }

    .product-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .collection-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .collection-card:last-child {
        grid-column:
            1 / -1;
    }

    .about-section {
        grid-template-columns:
            1fr;

        gap:
            40px;
    }

    .about-image {
        height:
            550px;
    }

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

}


/* =====================================================
   MOBILE
===================================================== */

@media (max-width: 600px) {

    .header-inner {
        min-height:
            70px;

        padding:
            0 14px;
    }

    .brand-logo {
        max-width:
            120px;

        height:
            48px;
    }

    .header-actions {
        gap:
            1px;
    }

    .header-icon {
        width:
            34px;

        height:
            34px;

        font-size:
            18px;
    }

    .menu-btn {
        width:
            36px;

        height:
            36px;

        font-size:
            22px;
    }

    .count-badge {
        top:
            -1px;

        right:
            -1px;

        min-width:
            15px;

        height:
            15px;

        font-size:
            7px;
    }


    /* MOBILE MENU */

    .mobile-menu {
        padding:
            90px 22px 30px;
    }

    .mobile-menu > a {
        min-height:
            55px;

        font-size:
            28px;
    }

    .mobile-menu-label {
        margin-bottom:
            12px;

        font-size:
            8px;
    }

    .mobile-menu-footer {
        flex-direction:
            column;

        gap:
            8px;
    }


    /* HERO */

    .hero {
        min-height:
            700px;
    }

    .hero-slide {
        min-height:
            700px;

        padding:
            45px 20px 85px;

        gap:
            30px;
    }

    .hero-small {
        font-size:
            8px;

        letter-spacing:
            2px;
    }

    .hero h1 {
             font-size: clamp(25px, 13vw, 14px) !important;
             line-height: -0.05;
             margin: 2px 0 !important;
            
    }

    .hero p {
            font-size: 12px !important;
            line-height: 1.65;
            max-width: 34rem;
            margin-bottom: 0px !important;
    }

    .hero-actions {
        gap:
            15px;
    }

    .primary-btn,
    .secondary-btn {
        min-height:
            25px !important;

        padding:
            0 10px !important;

        font-size:
            8px;
    }

    .hero-text-link {
        font-size:
            8px;
    }

    .hero-trust {
        margin-top:
            20px;

        font-size:
            6px;
    }

    .hero-image {
        height:
            320px;

        box-shadow:
            0 15px 40px rgba(33,21,18,.12);
    }

    .hero-image::after {
        inset:
            12px;
    }

    .hero-image-frame {
        inset:
            20px;
    }

    .hero-image-badge {
        right:
            18px;

        bottom:
            18px;

        width:
            60px;

        height:
            60px;
    }

    .hero-image-badge span {
        font-size:
            20px;
    }

    .hero-image-badge small {
        font-size:
            5px;
    }

    .hero-controls {
        width:
            100%;

        padding:
            0 20px;

        bottom:
            17px;
    }

    .hero-arrow {
        width:
            38px;

        height:
            38px;

        font-size:
            14px;
    }

    .hero-dot {
        width:
            17px;
    }

    .hero-dot.active {
        width:
            32px;
    }


    /* INTRO */

    .intro-section {
        padding:
            75px 20px;
    }

    .intro-section h2,
    .section-heading h2,
    .about-content h2,
    .newsletter h2 {
        font-size:
            clamp(37px, 11vw, 52px);
    }

    .intro-section p {
        font-size:
            11px;

        line-height:
            1.8;
    }


    /* SHOP */

    .shop-section {
        padding:
            55px 15px 80px;
    }

    .section-heading {
        display:
            block;

        margin-bottom:
            25px;
    }

    .product-total {
        display:
            block;

        margin-top:
            8px;
    }


    /* FILTERS */

    .filters {
        overflow-x:
            auto;

        flex-wrap:
            nowrap;

        margin-right:
            -15px;

        padding-bottom:
            7px;

        scrollbar-width:
            none;
    }

    .filters::-webkit-scrollbar {
        display:
            none;
    }

    .filter-btn {
        flex-shrink:
            0;

        padding:
            10px 14px;

        font-size:
            8px;
    }


    /* SEARCH */

    .search-box {
        margin-bottom:
            22px;
    }

    .search-box input {
        padding:
            14px 42px;

        font-size:
            10px;
    }


    /* PRODUCT GRID */

    .product-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap:
            30px 10px;
    }

    .product-image {
        aspect-ratio:
            3 / 4;
    }

    .product-badge {
        top:
            8px;

        left:
            8px;

        padding:
            5px 7px;

        font-size:
            6px;
    }

    .wishlist-btn {
        top:
            7px;

        right:
            7px;

        width:
            31px;

        height:
            31px;

        font-size:
            17px;
    }

    .product-info {
        padding-top:
            11px;
    }

    .product-category {
        margin-bottom:
            4px;

        font-size:
            6px;

        letter-spacing:
            1px;
    }

    .product-info h3 {
        min-height:
            40px;

        margin-bottom:
            6px;

        font-size:
            17px;

        line-height:
            1.05;
    }

    .product-price {
        gap:
            5px;
    }

    .product-price strong {
        font-size:
            11px;
    }

    .product-price del {
        font-size:
            8px;
    }

    .discount {
        margin-bottom:
            8px;

        font-size:
            7px;
    }

    .product-colors {
        gap:
            4px;

        margin-bottom:
            8px;
    }

    .color-dot {
        width:
            11px;

        height:
            11px;
    }

    .product-sizes {
        gap:
            3px;

        margin-bottom:
            9px;
    }

    .product-sizes span {
        min-width:
            23px;

        padding:
            4px 5px;

        font-size:
            6px;
    }

    .add-cart {
        min-height:
            36px;

        padding:
            8px 5px;

        font-size:
            7px;

        letter-spacing:
            .8px;
    }

    .quick-view {
        display:
            none;
    }


    /* LOAD MORE */

    .load-more-wrap,
    .load-more-wrapper {
        margin-top:
            20px !important;
    }

    .load-more-btn {
        min-width:
            165px;

        min-height:
            48px;

        padding:
            0 17px;

        font-size:
            8px;
    }

    .load-more-info {
        font-size:
            7px;
    }


    /* NEW ARRIVALS */

    .new-arrivals {
        min-height:
            500px;

        padding:
            60px 20px;
    }

    .new-arrivals h2 {
        font-size:
            clamp(45px, 14vw, 65px);
    }

    .new-arrivals p {
        font-size:
            11px;

        line-height:
            1.8;
    }


    /* COLLECTIONS */

    .collections {
        padding:
            75px 15px;
    }

    .collection-grid {
        grid-template-columns:
            1fr;

        gap:
            12px;

        margin-top:
            30px;
    }

    .collection-card:last-child {
        grid-column:
            auto;
    }

    .collection-card {
        height:
            430px;
    }


    /* ABOUT */

    .about-section {
        padding:
            30px 20px 80px;
    }

    .about-image {
        height:
            450px;
    }

    .about-content p {
        font-size:
            12px;

        line-height:
            1.8;
    }


    /* NEWSLETTER */

    .newsletter {
        padding:
            20px 20px;
    }

    .newsletter p {
        font-size:
            11px;

        line-height:
            1.8;
    }

    .newsletter form {
        flex-direction:
            column;

        gap:
            8px;
    }

    .newsletter input {
        min-height:
            50px;

        font-size:
            11px;
    }

    .newsletter button {
        min-height:
            50px;

        padding:
            0 20px;
    }


    /* FOOTER */

    .footer {
        padding:
            55px 20px 20px;
    }

    .footer-grid {
        grid-template-columns:
            1fr;

        gap:
            35px;
    }

    .footer-bottom {
        flex-direction:
            column;

        margin-top:
            40px;
    }


    /* MODAL */

    .modal {
        padding:
            10px;
    }

    .modal-content {
        max-height:
            94vh;

        padding:
            25px 18px;
    }

    .modal-product {
        grid-template-columns:
            1fr;

        gap:
            25px;
    }

    .modal-product-image {
        height:
            380px;
    }

    .modal-product-info h2 {
        font-size:
            38px;
    }

}


/* =====================================================
   SMALL MOBILE
   IMPORTANT:
   ALWAYS 2 PRODUCTS PER ROW
===================================================== */

@media (max-width: 420px) {

    .header-inner {
        padding:
            0 10px;
    }

    .brand-logo {
        max-width:
            105px;

        height:
            43px;
    }

    .header-icon {
        width:
            31px;

        height:
            31px;
    }

    .menu-btn {
        width:
            34px;

        height:
            34px;
    }


    /* HERO */

    .hero {
        min-height:
            650px;
    }

    .hero-slide {
        min-height:
            650px;

        padding:
            38px 15px 80px;

        gap:
            25px;
    }

    .hero h1 {
        font-size:
            clamp(44px, 14vw, 60px);
    }

    .hero-image {
        height:
            290px;
    }

    .hero-controls {
        padding:
            0 15px;
    }


    /* PRODUCT GRID */

    .product-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap:
            27px 8px;
    }

    .product-image {
        aspect-ratio:
            3 / 4;
    }

    .product-info h3 {
        min-height:
            36px;

        font-size:
            15px;
    }

    .product-price strong {
        font-size:
            10px;
    }

    .product-price del {
        font-size:
            7px;
    }

    .product-badge {
        padding:
            4px 5px;

        font-size:
            5px;
    }

    .wishlist-btn {
        width:
            28px;

        height:
            28px;

        font-size:
            15px;
    }

    .color-dot {
        width:
            10px;

        height:
            10px;
    }

    .product-sizes span {
        min-width:
            21px;

        padding:
            3px 4px;
    }

    .add-cart {
        min-height:
            34px;

        font-size:
            6px;
    }

    .load-more-btn {
        min-width:
            155px;

        min-height:
            45px;
    }

}


/* =====================================================
   EXTRA SMALL DEVICES
   STILL 2 PRODUCTS PER ROW
===================================================== */

@media (max-width: 360px) {

    .header-inner {
        padding:
            0 7px;
    }

    .brand-logo {
        max-width:
            95px;

        height:
            40px;
    }

    .header-actions {
        gap:
            0;
    }

    .header-icon {
        width:
            29px;

        height:
            29px;

        font-size:
            16px;
    }

    .menu-btn {
        width:
            31px;

        height:
            31px;

        font-size:
            20px;
    }


    /* HERO */

    .hero-slide {
        padding-left:
            12px;

        padding-right:
            12px;
    }

    .hero h1 {
        font-size:
            43px;
    }

    .hero-image {
        height:
            275px;
    }

    .hero-controls {
        padding:
            0 12px;
    }

    .hero-arrow {
        width:
            34px;

        height:
            34px;
    }


    /* PRODUCT GRID */

    .product-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap:
            24px 7px;
    }

    .product-info h3 {
        min-height:
            34px;

        font-size:
            14px;
    }

    .product-price {
        display:
            block;
    }

    .product-price del {
        display:
            block;

        margin-top:
            2px;
    }

    .product-sizes span {
        min-width:
            19px;

        padding:
            3px;
    }

    .add-cart {
        font-size:
            5.5px;

        letter-spacing:
            .5px;
    }

}


/* =====================================================
   REDUCED MOTION
===================================================== */

@media (prefers-reduced-motion: reduce) {

    html {
        scroll-behavior:
            auto;
    }

    *,
    *::before,
    *::after {
        animation-duration:
            .01ms !important;

        animation-iteration-count:
            1 !important;

        transition-duration:
            .01ms !important;
    }

}

/* =========================================================
   VYOJIN PREMIUM HEADER
   ========================================================= */

.site-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 9999;

    background: rgba(255, 250, 241, 0.96);
    border-bottom: 1px solid rgba(127, 29, 29, 0.10);

    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);

    transition:
        background 0.3s ease,
        box-shadow 0.3s ease,
        border-color 0.3s ease;
}


/* Header when scrolling */

.site-header.scrolled {
    background: rgba(255, 250, 241, 0.98);
    box-shadow: 0 8px 30px rgba(33, 21, 18, 0.08);
}


/* =========================================================
   HEADER INNER
   ========================================================= */

.header-inner {
    min-height: 88px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 35px;
}


/* =========================================================
   BRAND
   ========================================================= */

.brand {
    position: relative;

    display: inline-flex;
    align-items: center;

    flex-shrink: 0;

    text-decoration: none;
    color: #211512;
}


.brand-logo {
    display: block;

    width: 150px;
    max-width: 100%;
    height: auto;

    object-fit: contain;

    transition:
        transform 0.3s ease,
        opacity 0.3s ease;
}


.brand:hover .brand-logo {
    transform: scale(1.03);
}


/* Fallback text */

.brand-fallback {
    display: none;

    font-family: Georgia, "Times New Roman", serif;
    font-size: 25px;
    font-weight: 700;
    letter-spacing: 1px;

    color: #7f1d1d;
}


/* =========================================================
   DESKTOP NAVIGATION
   ========================================================= */

.desktop-nav {
    display: flex;
    align-items: center;
    justify-content: center;

    gap: 34px;

    margin-left: auto;
    margin-right: auto;
}


.desktop-nav a {
    position: relative;

    display: inline-flex;
    align-items: center;

    padding: 10px 0;

    color: #3b2924;

    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.8px;
    text-transform: uppercase;

    text-decoration: none;

    white-space: nowrap;

    transition:
        color 0.3s ease,
        transform 0.3s ease;
}


/* Underline */

.desktop-nav a::after {
    content: "";

    position: absolute;

    left: 0;
    bottom: 3px;

    width: 0;
    height: 1.5px;

    background: #9f1239;

    transition: width 0.3s ease;
}


.desktop-nav a:hover,
.desktop-nav a.active {
    color: #9f1239;
}


.desktop-nav a:hover::after,
.desktop-nav a.active::after {
    width: 100%;
}


/* =========================================================
   HEADER ACTIONS
   ========================================================= */

.header-actions {
    display: flex;
    align-items: center;

    gap: 7px;

    flex-shrink: 0;
}


/* =========================================================
   ICON BUTTON
   ========================================================= */

.icon-btn {
    position: relative;

    width: 44px;
    height: 44px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    border: 1px solid transparent;
    border-radius: 50%;

    background: transparent;

    color: #211512;

    font-size: 16px;

    cursor: pointer;

    transition:
        background 0.3s ease,
        color 0.3s ease,
        border-color 0.3s ease,
        transform 0.3s ease;
}


.icon-btn:hover {
    background: #fff;
    color: #9f1239;

    border-color: rgba(159, 18, 57, 0.12);

    transform: translateY(-2px);
}


.icon-btn i {
    line-height: 1;
}


/* =========================================================
   HEADER COUNT BADGE
   ========================================================= */

.header-count {
    position: absolute;

    top: 1px;
    right: 0;

    min-width: 17px;
    height: 17px;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 0 4px;

    border-radius: 50%;

    background: #9f1239;
    color: #fff;

    border: 2px solid #fffaf1;

    font-size: 9px;
    font-weight: 700;
    line-height: 1;

    pointer-events: none;
}


/* =========================================================
   MOBILE MENU BUTTON
   ========================================================= */

.mobile-menu-btn {
    display: none;

    width: 44px;
    height: 44px;

    align-items: center;
    justify-content: center;

    border: 1px solid rgba(127, 29, 29, 0.15);
    border-radius: 50%;

    background: #fff;

    color: #7f1d1d;

    font-size: 17px;

    cursor: pointer;

    transition:
        background 0.3s ease,
        color 0.3s ease,
        transform 0.3s ease;
}


.mobile-menu-btn:hover {
    background: #7f1d1d;
    color: #fff;

    transform: translateY(-2px);
}


.mobile-menu-btn i {
    line-height: 1;
}


/* =========================================================
   MOBILE NAVIGATION
   ========================================================= */

.mobile-nav {
    display: none;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 1150px) {

    .header-inner {
        gap: 20px;
    }

    .desktop-nav {
        gap: 20px;
    }

    .desktop-nav a {
        font-size: 12px;
        letter-spacing: 0.5px;
    }

    .brand-logo {
        width: 135px;
    }

}


/* =========================================================
   TABLET / MOBILE
   ========================================================= */

@media (max-width: 900px) {

    .site-header {
        position: sticky;
    }


    .header-inner {
        min-height: 76px;

        gap: 15px;
    }


    .brand-logo {
        width: 130px;
    }


    /* Hide desktop navigation */

    .desktop-nav {
        display: none;
    }


    /* Keep header actions */

    .header-actions {
        margin-left: auto;
    }


    /* Mobile menu button */

    .mobile-menu-btn {
        display: inline-flex;
    }


    /* =====================================================
       MOBILE NAV PANEL
       ===================================================== */

    .mobile-nav {
        position: absolute;

        top: 100%;
        left: 0;

        width: 100%;

        display: flex;
        flex-direction: column;

        padding: 8px 22px 22px;

        background: rgba(255, 250, 241, 0.99);

        border-top: 1px solid rgba(127, 29, 29, 0.08);
        border-bottom: 1px solid rgba(127, 29, 29, 0.12);

        box-shadow: 0 18px 35px rgba(33, 21, 18, 0.10);

        opacity: 0;
        visibility: hidden;
        pointer-events: none;

        transform: translateY(-12px);

        transition:
            opacity 0.3s ease,
            visibility 0.3s ease,
            transform 0.3s ease;

        max-height: calc(100vh - 76px);
        overflow-y: auto;
    }


    /* Open mobile menu */

    .mobile-nav.active,
    .mobile-nav.open {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;

        transform: translateY(0);
    }


    /* Mobile links */

    .mobile-nav a {
        position: relative;

        display: flex;
        align-items: center;

        min-height: 52px;

        padding: 0 5px;

        border-bottom: 1px solid rgba(127, 29, 29, 0.08);

        color: #211512;

        font-size: 13px;
        font-weight: 600;

        letter-spacing: 0.8px;
        text-transform: uppercase;

        text-decoration: none;

        transition:
            color 0.3s ease,
            padding-left 0.3s ease;
    }


    .mobile-nav a:last-child {
        border-bottom: none;
    }


    .mobile-nav a::before {
        content: "→";

        margin-right: 12px;

        color: #9f1239;

        opacity: 0;

        transform: translateX(-8px);

        transition:
            opacity 0.3s ease,
            transform 0.3s ease;
    }


    .mobile-nav a:hover,
    .mobile-nav a.active {
        color: #9f1239;

        padding-left: 8px;
    }


    .mobile-nav a:hover::before,
    .mobile-nav a.active::before {
        opacity: 1;
        transform: translateX(0);
    }

}


/* =========================================================
   MOBILE PHONE
   ========================================================= */

@media (max-width: 600px) {

    .header-inner {
        min-height: 70px;

        padding-left: 16px;
        padding-right: 16px;
    }


    .brand-logo {
        width: 112px;
    }


    .header-actions {
        gap: 2px;
    }


    .icon-btn,
    .mobile-menu-btn {
        width: 39px;
        height: 39px;

        font-size: 15px;
    }


    .header-count {
        top: 0;
        right: -1px;

        min-width: 16px;
        height: 16px;

        font-size: 8px;
    }


    .mobile-nav {
        padding-left: 18px;
        padding-right: 18px;

        max-height: calc(100vh - 70px);
    }


    .mobile-nav a {
        min-height: 50px;

        font-size: 12px;
    }

}


/* =========================================================
   SMALL PHONES
   ========================================================= */

@media (max-width: 400px) {

    .header-inner {
        padding-left: 12px;
        padding-right: 12px;
    }


    .brand-logo {
        width: 100px;
    }


    .icon-btn,
    .mobile-menu-btn {
        width: 36px;
        height: 36px;

        font-size: 14px;
    }


    .header-actions {
        gap: 0;
    }

}


/* =========================================================
   ACCESSIBILITY
   ========================================================= */

.desktop-nav a:focus-visible,
.mobile-nav a:focus-visible,
.icon-btn:focus-visible,
.mobile-menu-btn:focus-visible,
.brand:focus-visible {
    outline: 2px solid #9f1239;
    outline-offset: 4px;
}


/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

    .site-header,
    .brand-logo,
    .desktop-nav a,
    .desktop-nav a::after,
    .icon-btn,
    .mobile-menu-btn,
    .mobile-nav,
    .mobile-nav a,
    .mobile-nav a::before {
        transition: none;
    }

}

.icon-btn i,
.mobile-menu-btn i {
    display: inline-block;
    font-size: 16px;
    line-height: 1;
}

.mobile-menu-btn i {
    font-size: 18px;
}

/* =====================================================
   PREMIUM HEADER ICONS
===================================================== */

.header-actions {
    display: flex;
    align-items: center;
    gap: 6px;
}


/* icon button */

.header-icon,
.mobile-menu-btn {
    position: relative;

    width: 44px;
    height: 44px;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 0;
    border: 0;
    background: transparent;

    color: var(--dark);

    cursor: pointer;

    transition:
        color 0.3s ease,
        transform 0.3s ease;
}


/* svg */

.header-icon svg,
.mobile-menu-btn svg {
    width: 20px;
    height: 20px;

    fill: none;

    stroke: currentColor;
    stroke-width: 1.35;

    stroke-linecap: round;
    stroke-linejoin: round;

    transition:
        transform 0.3s ease,
        stroke-width 0.3s ease;
}


/* hover */

.header-icon:hover,
.mobile-menu-btn:hover {
    color: var(--red);

    transform: translateY(-1px);
}


.header-icon:hover svg,
.mobile-menu-btn:hover svg {
    stroke-width: 1.7;
}


/* =====================================================
   HEADER COUNTER
===================================================== */

.header-count {
    position: absolute;

    top: 4px;
    right: 2px;

    min-width: 16px;
    height: 16px;

    padding: 0 4px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: var(--red);
    color: #ffffff;

    font-family: inherit;
    font-size: 8px;
    font-weight: 600;

    line-height: 1;

    box-shadow:
        0 2px 8px rgba(159, 18, 57, 0.2);
}


/* =====================================================
   MOBILE MENU ICON
===================================================== */

.mobile-menu-btn {
    display: none;
}

.mobile-menu-btn .menu-icon {
    width: 22px;
    height: 22px;
}


/* =====================================================
   MOBILE
===================================================== */

@media (max-width: 900px) {

    .desktop-nav {
        display: none;
    }

    .mobile-menu-btn {
        display: flex;
    }

    .header-actions {
        gap: 2px;
    }

}


@media (max-width: 600px) {

    .header-icon,
    .mobile-menu-btn {
        width: 40px;
        height: 40px;
    }

    .header-icon svg {
        width: 19px;
        height: 19px;
    }

    .mobile-menu-btn .menu-icon {
        width: 21px;
        height: 21px;
    }

}


@media (max-width: 400px) {

    .header-actions {
        gap: 0;
    }

    .header-icon,
    .mobile-menu-btn {
        width: 37px;
        height: 37px;
    }

}

/* =====================================================
   QUICK VIEW IMAGE AREA
===================================================== */

.modal-product-image-area {
    width: 100%;
}


/* main image */

.modal-main-image {
    width: 100%;
    aspect-ratio: 4 / 5;

    overflow: hidden;

    background: #f5f1eb;
}


.modal-main-image img {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;

    transition: opacity 0.25s ease;
}


/* =====================================================
   IMAGE THUMBNAILS
===================================================== */

.modal-image-thumbnails {
    display: grid;

    grid-template-columns: repeat(4, 1fr);

    gap: 10px;

    margin-top: 12px;
}


.modal-thumb {
    position: relative;

    padding: 0;

    width: 100%;
    aspect-ratio: 1 / 1.15;

    border: 1px solid #ded7ce;

    background: #f8f5ef;

    cursor: pointer;

    overflow: hidden;

    transition:
        border-color 0.3s ease,
        transform 0.3s ease;
}


.modal-thumb img {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;

    transition: transform 0.4s ease;
}


.modal-thumb:hover {
    border-color: var(--gold);

    transform: translateY(-2px);
}


.modal-thumb:hover img {
    transform: scale(1.04);
}


/* active thumbnail */

.modal-thumb.active {
    border: 1px solid var(--red);

    box-shadow:
        0 0 0 1px var(--red);
}


/* =====================================================
   MODAL PRODUCT
===================================================== */

.modal-product {
    display: grid;

    grid-template-columns:
        minmax(0, 1.05fr)
        minmax(340px, 0.95fr);

    gap: 45px;

    align-items: start;
}


.modal-product-info {
    padding: 15px 10px 15px 0;
}


.modal-product-info h2 {
    margin: 12px 0 18px;

    font-size: 32px;
    line-height: 1.15;

    font-weight: 400;
}


.modal-price {
    display: flex;
    align-items: center;

    gap: 12px;

    font-size: 24px;

    color: var(--red);

    margin-bottom: 8px;
}


.modal-price del {
    font-size: 15px;

    color: #999;

    font-weight: 400;
}


.modal-discount {
    margin-bottom: 30px;

    font-size: 12px;

    color: var(--red);

    letter-spacing: 1px;
}


/* =====================================================
   MODAL OPTIONS
===================================================== */

.modal-option {
    margin-bottom: 24px;
}


.modal-option-title {
    display: block;

    margin-bottom: 12px;

    font-size: 11px;

    letter-spacing: 1.5px;

    text-transform: uppercase;

    color: #6f665f;
}


.modal-option .product-colors {
    display: flex;

    gap: 9px;
}


.modal-option .product-sizes {
    display: flex;

    gap: 8px;
}


.modal-option .product-sizes span {
    min-width: 42px;
    height: 38px;

    display: flex;
    align-items: center;
    justify-content: center;

    border: 1px solid #ddd5cb;

    font-size: 11px;

    cursor: pointer;

    transition: all 0.25s ease;
}


.modal-option .product-sizes span:hover {
    border-color: var(--red);

    color: var(--red);
}


/* add to cart */

.modal-add-cart {
    width: 100%;

    margin-top: 15px;
}


/* =====================================================
   MOBILE
===================================================== */

@media (max-width: 800px) {

    .modal-product {
        grid-template-columns: 1fr;

        gap: 25px;
    }


    .modal-product-info {
        padding: 0;
    }


    .modal-product-info h2 {
        font-size: 26px;
    }

}


@media (max-width: 480px) {

    .modal-image-thumbnails {
        gap: 6px;
    }


    .modal-product-info h2 {
        font-size: 23px;
    }


    .modal-price {
        font-size: 21px;
    }

}

.modal-product-price {
    margin-top: 10px;
    color: var(--red);
    font-size: 22px;
    font-weight: 700;
}

.modal-detail-block {
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid rgba(33, 21, 18, 0.10);
}

.modal-detail-block h4 {
    margin: 0 0 12px;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--dark);
}

.modal-detail-block p {
    margin: 0;
    color: #6f625d;
    font-size: 14px;
    line-height: 1.8;
}


.modal-product-quality {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 12px 0 18px;
    font-size: 13px;
    color: #756963;
}

.quality-stars {
    color: var(--gold);
    letter-spacing: 2px;
}


.product-quality-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.product-quality-list li {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding: 10px 0;
    border-bottom: 1px solid rgba(33, 21, 18, 0.07);
    font-size: 13px;
}

.product-quality-list li:last-child {
    border-bottom: 0;
}

.product-quality-list span {
    color: #766a65;
}

.product-quality-list strong {
    color: var(--dark);
    text-align: right;
}


.modal-colors,
.modal-sizes,
.modal-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.modal-color,
.modal-size,
.modal-tag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 7px 12px;
    border: 1px solid rgba(33, 21, 18, 0.14);
    border-radius: 4px;
    font-size: 12px;
    color: var(--dark);
    background: #fff;
}

.modal-tag {
    border-color: rgba(200, 155, 60, 0.35);
    background: rgba(200, 155, 60, 0.08);
}

@media (max-width: 600px) {
    .shop-section {
        padding: 0px 15px 15px !important
    }
}
@media (max-width: 600px) {
    .intro-section {
        padding: 20px 20px !important;
    }
}

@media (max-width: 600px) {
    .collections {
        padding: 11px 25px 29px !important;
    }
}

@media (max-width: 600px) {
    .about-section {
        padding: 30px 20px 10px !important;
    }
}

@media (max-width: 420px) {
    .hero-slide {
        min-height: 650px;
        padding: 5px 15px 80px !important;
        gap: 25px;
    }
}



/* =====================================================
   NEW ARRIVALS
===================================================== */

.new-arrivals-section {
    width: 100%;
    padding: 45px 0 80px;
    background: var(--cream);
    overflow: hidden;
}


/* =====================================================
   CATEGORY SLIDER
===================================================== */

.arrival-slider-wrap {
    position: relative;

    width: 100%;
    max-width: 1500px;

    margin: 0 auto;

    display: flex;
    align-items: center;

    padding: 0 45px;
}


.arrival-categories-wrap {
    width: 100%;

    overflow-x: auto;
    overflow-y: hidden;

    scrollbar-width: none;

    -webkit-overflow-scrolling: touch;

    scroll-behavior: smooth;

    overscroll-behavior-x: contain;
}

.arrival-categories-wrap::-webkit-scrollbar {
    display: none;
}


.arrival-categories {
    width: max-content;

    min-width: 100%;

    display: flex;
    align-items: flex-start;
    justify-content: center;

    gap: 24px;

    padding: 5px 20px 20px;

    box-sizing: border-box;
}


/* =====================================================
   CATEGORY
===================================================== */

.arrival-category {
    width: 108px;

    flex: 0 0 108px;

    display: block;

    text-align: center;

    text-decoration: none;

    color: var(--dark);

    cursor: pointer;
}


.arrival-category-circle {
    width: 108px;
    height: 108px;

    box-sizing: border-box;

    padding: 4px;

    border-radius: 50%;

    overflow: hidden;

    background: #fff;

    border: 1px solid #cbbab0;

    transition:
        transform .3s ease,
        border-color .3s ease,
        box-shadow .3s ease;
}


.arrival-category-circle img {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;

    border-radius: 50%;
}


.arrival-category:hover .arrival-category-circle {
    transform: translateY(-4px);

    border-color: var(--red);
}


.arrival-category.active .arrival-category-circle {
    border: 2px solid var(--red);

    box-shadow:
        0 0 0 2px rgba(159,18,57,.08);
}


/* new arrivals circle */

.arrival-new-circle {
    display: flex;

    align-items: center;
    justify-content: center;

    background: #f8df77;
}


.arrival-new-circle span {
    color: var(--dark);

    font-size: 18px;

    line-height: 1.15;

    font-weight: 600;

    text-align: center;
}


.arrival-category > span:last-child {
    display: block;

    margin-top: 10px;

    color: var(--dark);

    font-size: 14px;

    line-height: 1.35;

    letter-spacing: .25px;
}


/* =====================================================
   SLIDER ARROWS
===================================================== */

.arrival-slider-arrow {
    position: absolute;

    top: 50%;

    z-index: 10;

    width: 38px;
    height: 38px;

    margin-top: -28px;

    display: flex;
    align-items: center;
    justify-content: center;

    border: 1px solid #d8cbc3;

    border-radius: 50%;

    background: #fff;

    color: var(--dark);

    cursor: pointer;

    box-shadow:
        0 5px 18px rgba(0,0,0,.08);

    transition: .25s ease;
}


.arrival-slider-arrow:hover {
    background: var(--red);

    color: #fff;

    border-color: var(--red);
}


.arrival-slider-prev {
    left: 5px;
}


.arrival-slider-next {
    right: 5px;
}


/* =====================================================
   PAYMENT BANNER
===================================================== */

.arrival-payment-banner {
    width: calc(100% - 52px);
    max-width: 1400px;

    min-height: 95px;

    margin: 35px auto 60px;

    padding: 18px 35px;

    box-sizing: border-box;

    display: flex;
    align-items: center;
    justify-content: center;

    gap: 35px;

    background: #242a33;

    color: #fff;
}


.arrival-payment-text {
    display: flex;

    flex-direction: column;

    gap: 4px;
}


.arrival-payment-text strong {
    font-size: 20px;

    letter-spacing: 1px;
}


.arrival-payment-text span {
    font-size: 13px;

    color: rgba(255,255,255,.65);
}


.arrival-powered {
    color: rgba(255,255,255,.7);

    font-size: 14px;
}


.arrival-powered strong {
    color: #fff;
}


.arrival-shop-btn {
    min-width: 145px;
    min-height: 52px;

    display: inline-flex;

    align-items: center;
    justify-content: center;

    padding: 10px 24px;

    border-radius: 5px;

    background: #19c4d0;

    color: #fff;

    text-decoration: none;

    font-size: 15px;

    font-weight: 600;

    transition: .3s ease;
}


.arrival-shop-btn:hover {
    background: #10aeb9;

    transform: translateY(-2px);
}


/* =====================================================
   TOOLBAR
===================================================== */

.arrival-toolbar {
    width: calc(100% - 52px);
    max-width: 1400px;

    margin: 0 auto 18px;

    display: flex;

    align-items: center;

    justify-content: space-between;
}


.arrival-filter-button {
    display: flex;

    align-items: center;

    gap: 14px;

    padding: 0;

    border: 0;

    background: transparent;

    color: var(--dark);

    font-family: inherit;

    font-size: 18px;

    cursor: pointer;
}


.arrival-filter-button i {
    font-size: 19px;

    color: var(--dark);

    transition: transform .25s ease;
}


.arrival-filter-button.active i {
    transform: rotate(90deg);
}


.arrival-product-total {
    color: #666;

    font-size: 17px;

    letter-spacing: .4px;
}


/* =====================================================
   FILTER PANEL
===================================================== */

.arrival-filter-panel {
    width: calc(100% - 52px);
    max-width: 1400px;

    margin: 0 auto 28px;

    padding: 22px;

    box-sizing: border-box;

    display: none;

    grid-template-columns:
        minmax(180px, 260px)
        minmax(180px, 260px)
        auto;

    align-items: end;

    gap: 18px;

    background: #fff;

    border: 1px solid #eadfd8;

    box-shadow:
        0 12px 35px rgba(33,21,18,.07);
}


.arrival-filter-panel.open {
    display: grid;
}


.arrival-filter-group {
    display: flex;

    flex-direction: column;

    gap: 8px;
}


.arrival-filter-group label {
    color: #666;

    font-size: 11px;

    text-transform: uppercase;

    letter-spacing: 1px;
}


.arrival-filter-group select {
    width: 100%;

    height: 44px;

    padding: 0 12px;

    border: 1px solid #d9cbc3;

    background: #fff;

    color: var(--dark);

    font-family: inherit;

    font-size: 13px;

    outline: none;

    cursor: pointer;
}


.arrival-filter-group select:focus {
    border-color: var(--red);
}


.arrival-reset-filter {
    height: 44px;

    padding: 0 25px;

    border: 1px solid var(--red);

    background: transparent;

    color: var(--red);

    font-family: inherit;

    font-size: 13px;

    cursor: pointer;

    transition: .25s ease;
}


.arrival-reset-filter:hover {
    background: var(--red);

    color: #fff;
}


/* =====================================================
   PRODUCT GRID
===================================================== */

.arrival-product-grid {
    width: calc(100% - 52px);
    max-width: 1400px;

    margin: 0 auto;

    display: grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap: 42px 18px;
}


/* =====================================================
   PRODUCT CARD
===================================================== */

.arrival-card {
    min-width: 0;
}


.arrival-card-image {
    position: relative;

    width: 100%;

    aspect-ratio: 4 / 5;

    overflow: hidden;

    background: #eee8e2;

    cursor: pointer;
}


.arrival-card-image img {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;

    transition: transform .5s ease;
}


.arrival-card:hover .arrival-card-image img {
    transform: scale(1.025);
}


/* badge */

.arrival-card-badge {
    position: absolute;

    top: 12px;
    left: 12px;

    z-index: 3;

    padding: 5px 9px;

    background: var(--red);

    color: #fff;

    font-size: 10px;

    letter-spacing: .7px;

    text-transform: uppercase;
}


/* wishlist */

.arrival-card-wishlist {
    position: absolute;

    top: 12px;
    right: 12px;

    z-index: 4;

    width: 38px;
    height: 38px;

    display: flex;

    align-items: center;
    justify-content: center;

    border: 0;

    border-radius: 50%;

    background: rgba(255,255,255,.94);

    color: var(--dark);

    font-size: 19px;

    cursor: pointer;
}


.arrival-card-wishlist.active {
    color: var(--red);
}


/* quick view */

.arrival-card-quick {
    position: absolute;

    left: 12px;
    right: 12px;
    bottom: 12px;

    z-index: 3;

    padding: 11px;

    border: 0;

    background: rgba(255,255,255,.95);

    color: var(--dark);

    font-family: inherit;

    font-size: 12px;

    cursor: pointer;

    opacity: 0;

    transform: translateY(10px);

    transition: .3s ease;
}


.arrival-card:hover .arrival-card-quick {
    opacity: 1;

    transform: translateY(0);
}


/* info */

.arrival-card-info {
    padding: 14px 2px 0;
}


.arrival-card-category {
    display: block;

    margin-bottom: 6px;

    color: #777;

    font-size: 10px;

    letter-spacing: 1px;

    text-transform: uppercase;
}


.arrival-card-title {
    margin: 0;

    color: var(--dark);

    font-size: 16px;

    line-height: 1.45;

    font-weight: 500;

    cursor: pointer;
}


.arrival-card-source {
    display: block;

    margin-top: 8px;

    color: #777;

    font-size: 10px;

    letter-spacing: 1.2px;
}


/* rating */

.arrival-card-rating {
    display: flex;

    align-items: center;

    gap: 7px;

    margin-top: 10px;

    color: var(--dark);

    font-size: 14px;
}


.arrival-card-stars {
    color: #e5aa20;

    font-size: 17px;

    letter-spacing: 1px;
}


/* price */

.arrival-card-price {
    display: flex;

    align-items: center;

    gap: 9px;

    margin-top: 11px;
}


.arrival-card-price strong {
    color: var(--dark);

    font-size: 20px;

    font-weight: 500;
}


.arrival-card-price del {
    color: #888;

    font-size: 13px;
}


/* =====================================================
   TABLET
===================================================== */

@media (max-width: 992px) {

    .arrival-product-grid {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }

    .arrival-categories {
        justify-content: flex-start;
    }

}


/* =====================================================
   MOBILE
===================================================== */

@media (max-width: 600px) {

    .new-arrivals-section {
        padding: 25px 0 55px;
    }


    /* category */

    .arrival-slider-wrap {
        padding: 0;
    }


    .arrival-categories-wrap {
        width: 100%;
    }


    .arrival-categories {
        justify-content: flex-start;

        gap: 12px;

        padding:
            5px
            20px
            18px;
    }


    .arrival-category {
        width: 88px;

        flex-basis: 88px;
    }


    .arrival-category-circle {
        width: 88px;
        height: 88px;
    }


    .arrival-new-circle span {
        font-size: 14px;
    }


    .arrival-category > span:last-child {
        margin-top: 8px;

        font-size: 12px;
    }


    /* hide arrows */

    .arrival-slider-arrow {
        display: none;
    }


    /* payment */

    .arrival-payment-banner {
        width: calc(100% - 28px);

        min-height: 88px;

        margin: 22px auto 45px;

        padding: 14px;

        gap: 10px;
    }


    .arrival-payment-text strong {
        font-size: 14px;
    }


    .arrival-payment-text span {
        font-size: 9px;
    }


    .arrival-powered {
        display: none;
    }


    .arrival-shop-btn {
        min-width: 105px;

        min-height: 45px;

        padding: 8px 12px;

        font-size: 12px;
    }


    /* toolbar */

    .arrival-toolbar {
        width: calc(100% - 30px);

        margin-bottom: 16px;
    }


    .arrival-filter-button {
        gap: 9px;

        font-size: 15px;
    }


    .arrival-product-total {
        font-size: 14px;
    }


    /* filter panel */

    .arrival-filter-panel {
        width: calc(100% - 30px);

        grid-template-columns: 1fr;

        gap: 14px;

        padding: 16px;

        margin-bottom: 22px;
    }


    .arrival-filter-group select,
    .arrival-reset-filter {
        height: 42px;
    }


    /* products */

    .arrival-product-grid {
        width: calc(100% - 28px);

        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap: 35px 10px;
    }


    .arrival-card-badge {
        top: 7px;
        left: 7px;

        padding: 4px 7px;

        font-size: 8px;
    }


    .arrival-card-wishlist {
        top: 7px;
        right: 7px;

        width: 31px;
        height: 31px;

        font-size: 16px;
    }


    .arrival-card-quick {
        display: none;
    }


    .arrival-card-info {
        padding-top: 9px;
    }


    .arrival-card-category {
        margin-bottom: 5px;

        font-size: 8px;
    }


    .arrival-card-title {
        font-size: 13px;

        line-height: 1.4;
    }


    .arrival-card-source {
        margin-top: 5px;

        font-size: 8px;
    }


    .arrival-card-rating {
        gap: 4px;

        margin-top: 7px;

        font-size: 10px;
    }


    .arrival-card-stars {
        font-size: 12px;

        letter-spacing: 0;
    }


    .arrival-card-price {
        gap: 6px;

        margin-top: 7px;
    }


    .arrival-card-price strong {
        font-size: 16px;
    }


    .arrival-card-price del {
        font-size: 10px;
    }

}


/* =====================================================
   SMALL MOBILE
===================================================== */

@media (max-width: 380px) {

    .arrival-category {
        width: 78px;

        flex-basis: 78px;
    }


    .arrival-category-circle {
        width: 78px;
        height: 78px;
    }


    .arrival-category > span:last-child {
        font-size: 10px;
    }


    .arrival-product-grid {
        width: calc(100% - 20px);

        gap: 30px 7px;
    }


    .arrival-card-title {
        font-size: 12px;
    }

}

/* =========================
   PAYMENT SUCCESS MODAL
========================= */

.payment-success-modal {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.65);
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
    z-index: 99999;
}

.payment-success-modal.open {
    display: flex;
}

.payment-success-content {
    position: relative;
    width: 100%;
    max-width: 480px;
    background: #fff;
    border-radius: 20px;
    padding: 40px 30px 30px;
    text-align: center;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
    animation: paymentSuccessPopup 0.25s ease;
}

@keyframes paymentSuccessPopup {
    from {
        opacity: 0;
        transform: scale(0.9) translateY(20px);
    }

    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

.payment-success-close {
    position: absolute;
    top: 12px;
    right: 15px;
    border: 0;
    background: transparent;
    font-size: 28px;
    cursor: pointer;
    color: #777;
}

.payment-success-icon {
    width: 70px;
    height: 70px;
    margin: 0 auto 20px;
    border-radius: 50%;
    background: #e8f8ee;
    display: flex;
    align-items: center;
    justify-content: center;
}

.payment-success-icon i {
    font-size: 32px;
    color: #20a05a;
}

.payment-success-content h2 {
    margin: 0 0 10px;
    font-size: 26px;
}

.payment-success-message {
    margin: 0 0 25px;
    color: #666;
}

.payment-order-details {
    background: #f7f7f7;
    border-radius: 12px;
    padding: 15px;
    margin-bottom: 25px;
    text-align: left;
}

.payment-detail-row {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    padding: 10px 0;
    border-bottom: 1px solid #e5e5e5;
}

.payment-detail-row:last-child {
    border-bottom: 0;
}

.payment-detail-row span {
    color: #777;
}

.payment-detail-row strong {
    max-width: 65%;
    text-align: right;
    word-break: break-word;
}

.payment-success-btn {
    width: 100%;
    border: 0;
    border-radius: 10px;
    padding: 14px 20px;
    cursor: pointer;
    font-size: 16px;
    font-weight: 600;
}



/* =========================================================
   PREMIUM STATIC NEW ARRIVALS
   ========================================================= */

.premium-arrivals {
    padding: 90px 5%;
    background: #faf7f2;
    overflow: hidden;
}


/* HEADER */

.premium-arrivals-header {
    max-width: 1400px;
    margin: 0 auto 45px;

    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 30px;
}

.premium-arrivals-heading {
    max-width: 650px;
}

.premium-arrivals-eyebrow {
    display: block;
    margin-bottom: 12px;

    color: #9f1239;

    font-size: 11px;
    font-weight: 700;
    letter-spacing: 3px;
    text-transform: uppercase;
}

.premium-arrivals-heading h2 {
    margin: 0 0 15px;

    color: #9f1239;

    font-family: Georgia, "Times New Roman", serif;

    font-size: clamp(42px, 5vw, 68px);
    font-weight: 500;
    line-height: .95;
}

.premium-arrivals-heading p {
    margin: 0;

    color: #665f58;

    font-size: 15px;
    line-height: 1.8;
}

.premium-arrivals-view-all {
    display: inline-flex;
    align-items: center;
    gap: 10px;

    padding: 13px 22px;

    border: 1px solid #9f1239;
    border-radius: 999px;

    color: #9f1239;
    text-decoration: none;

    font-size: 13px;
    font-weight: 700;

    transition: .3s ease;
}

.premium-arrivals-view-all:hover {
    background: #9f1239;
    color: #fff;
}


/* BANNER */

.premium-arrivals-banner {
    position: relative;

    max-width: 1400px;
    min-height: 220px;

    margin: 0 auto 50px;
    padding: 42px 46px;

    display: grid;
    grid-template-columns: 1.5fr 1fr auto;
    align-items: center;
    gap: 35px;

    overflow: hidden;

    border-radius: 24px;

    background: linear-gradient(
        110deg,
        #9f1239,
        #7f0f2e,
        #5f0b24
    );

    box-shadow: 0 25px 60px rgba(159, 18, 57, .18);
}

.premium-banner-glow {
    position: absolute;

    width: 400px;
    height: 400px;

    top: -250px;
    right: 10%;

    border-radius: 50%;

    background: rgba(255,255,255,.08);
}

.premium-banner-content {
    position: relative;
    z-index: 2;
}

.premium-banner-label {
    display: block;

    margin-bottom: 10px;

    color: #e9c978;

    font-size: 10px;
    font-weight: 700;
    letter-spacing: 3px;
}

.premium-banner-content h3 {
    margin: 0 0 12px;

    color: #fff;

    font-family: Georgia, "Times New Roman", serif;

    font-size: clamp(30px, 4vw, 48px);
    font-weight: 500;
}

.premium-banner-content h3 span {
    color: #e9c978;
}

.premium-banner-content p {
    margin: 0;

    color: rgba(255,255,255,.75);

    font-size: 14px;
}


/* FEATURES */

.premium-banner-details {
    position: relative;
    z-index: 2;

    display: flex;
    flex-direction: column;
    gap: 14px;
}

.premium-banner-feature {
    display: flex;
    align-items: center;
    gap: 11px;

    color: #fff;

    font-size: 12px;
    font-weight: 600;
}

.premium-banner-feature i {
    width: 32px;
    height: 32px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: rgba(255,255,255,.1);

    color: #e9c978;
}


/* BUTTON */

.premium-banner-button {
    position: relative;
    z-index: 2;

    display: inline-flex;
    align-items: center;
    gap: 10px;

    padding: 14px 23px;

    white-space: nowrap;

    border-radius: 999px;

    background: #fff;
    color: #9f1239;

    text-decoration: none;

    font-size: 12px;
    font-weight: 700;

    transition: .3s ease;
}

.premium-banner-button:hover {
    background: #e9c978;
    color: #5f0b24;
}


/* =========================================================
   STATIC PRODUCT GRID
   ========================================================= */

.premium-arrivals-grid {
    max-width: 1400px;
    margin: 0 auto;

    display: grid;

    grid-template-columns: repeat(4, 1fr);

    gap: 28px;
}


/* PRODUCT CARD */

.premium-arrival-card {
    min-width: 0;

    background: #fff;

    border-radius: 18px;

    overflow: hidden;

    transition:
        transform .35s ease,
        box-shadow .35s ease;

    box-shadow: 0 8px 30px rgba(50,30,20,.06);
}

.premium-arrival-card:hover {
    transform: translateY(-7px);

    box-shadow: 0 18px 45px rgba(50,30,20,.13);
}


/* IMAGE */

.premium-arrival-image {
    position: relative;

    display: block;

    width: 100%;

    aspect-ratio: 3 / 4;

    overflow: hidden;

    background: #f2eee8;
}

.premium-arrival-image img {
    width: 100%;
    height: 140%;

    display: block;

    object-fit: cover;

    transition: transform .6s ease;
}

.premium-arrival-card:hover
.premium-arrival-image img {
    transform: scale(1.06);
}


/* BADGE */

.premium-arrival-badge {
    position: absolute;

    top: 14px;
    left: 14px;

    padding: 7px 12px;

    border-radius: 999px;

    background: #9f1239;
    color: #fff;

    font-size: 10px;
    font-weight: 700;

    text-transform: uppercase;
    letter-spacing: 1px;
}


/* INFO */

.premium-arrival-info {
    padding: 18px 18px 21px;
}

.premium-arrival-category {
    display: block;

    margin-bottom: 7px;

    color: #9f1239;

    font-size: 10px;
    font-weight: 700;

    letter-spacing: 1.5px;
    text-transform: uppercase;
}

.premium-arrival-info h3 {
    margin: 0 0 10px;

    color: #342c28;

    font-family: Georgia, "Times New Roman", serif;

    font-size: 18px;
    font-weight: 500;

    line-height: 1.3;
}

.premium-arrival-price {
    color: #9f1239;

    font-size: 16px;
    font-weight: 700;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 1100px) {

    .premium-arrivals {
        padding: 70px 4%;
    }

    .premium-arrivals-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 22px;
    }

    .premium-arrivals-banner {
        grid-template-columns: 1fr 1fr;
    }

    .premium-banner-button {
        justify-self: start;
    }
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 700px) {

    .premium-arrivals {
        padding: 55px 18px;
    }

    .premium-arrivals-header {
        align-items: flex-start;
        flex-direction: column;

        margin-bottom: 30px;
    }

    .premium-arrivals-heading h2 {
        font-size: 42px;
    }

    .premium-arrivals-banner {
        grid-template-columns: 1fr;

        padding: 30px 25px;

        gap: 24px;

        border-radius: 20px;
    }

    .premium-banner-content h3 {
        font-size: 34px;
    }

    .premium-banner-details {
        flex-direction: row;
        flex-wrap: wrap;
    }

    .premium-arrivals-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 14px;
    }

    .premium-arrival-info {
        padding: 14px;
    }

    .premium-arrival-info h3 {
        font-size: 16px;
    }

    .premium-arrival-price {
        font-size: 14px;
    }
}


/* =========================================================
   SMALL MOBILE
   ========================================================= */

@media (max-width: 420px) {

    .premium-arrivals-heading h2 {
        font-size: 36px;
    }

    .premium-arrivals-grid {
        gap: 10px;
    }

    .premium-arrival-info h3 {
        font-size: 14px;
    }

    .premium-arrival-category {
        font-size: 9px;
    }
}

/* =========================================================
   QUICK VIEW - SIZE & COLOR SELECTION
   FIX: CLICK + SELECTED HIGHLIGHT
========================================================= */

/* Color and size containers */
.modal-colors,
.modal-sizes {
    position: relative;
    z-index: 20;

    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}


/* Base color/size buttons */
.modal-color-option,
.modal-size-option {
    position: relative;
    z-index: 21;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    cursor: pointer;
    pointer-events: auto;

    user-select: none;

    transition:
        color 0.25s ease,
        background 0.25s ease,
        border-color 0.25s ease,
        box-shadow 0.25s ease,
        transform 0.25s ease;
}


/* =========================================================
   COLOR BUTTON
========================================================= */

.modal-color-option {
    width: 38px;
    height: 38px;

    min-height: 38px;
    padding: 0;

    border: 2px solid rgba(33, 21, 18, 0.15);
    border-radius: 50%;

    background: #fff;

    font-size: 0;

    overflow: visible;
}


/* Color hover */
.modal-color-option:hover {
    border-color: var(--red);

    transform: scale(1.08);
}


/* Selected color */
.modal-color-option.selected {
    border: 2px solid var(--red);

    box-shadow:
        0 0 0 3px var(--cream),
        0 0 0 5px var(--red);

    transform: scale(1.08);
}


/* =========================================================
   SIZE BUTTON
========================================================= */

.modal-size-option {
    min-width: 48px;
    min-height: 40px;

    padding: 8px 14px;

    border: 1px solid #ddd5cb;
    border-radius: 4px;

    background: #fff;

    color: var(--dark);

    font-size: 12px;
    font-weight: 600;
}


/* Size hover */
.modal-size-option:hover {
    border-color: var(--red);

    color: var(--red);

    background: rgba(159, 18, 57, 0.04);
}


/* Selected size */
.modal-size-option.selected {
    border-color: var(--red);

    background: var(--red);

    color: #fff;

    box-shadow:
        0 5px 15px rgba(159, 18, 57, 0.18);

    transform: translateY(-1px);
}


/* =========================================================
   MAKE SURE MODAL INFO STAYS ABOVE BACKGROUND
========================================================= */

.modal-product-info {
    position: relative;
    z-index: 10;
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 600px) {

    .modal-color-option {
        width: 34px;
        height: 34px;
    }

    .modal-size-option {
        min-width: 44px;
        min-height: 38px;

        padding: 7px 12px;

        font-size: 11px;
    }

}

.brand-logo {
    width: 170px !important;
    height: 60px !important;
    object-fit: contain !important;
    display: block !important;
}

.new-arrivals {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 550px;
    width: 100%;
    overflow: hidden;
}

.new-arrivals-image {
    width: 100%;
    height: 100%;
    min-height: 550px;
    overflow: hidden;
}

.new-arrivals-image img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.new-arrivals-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    padding: 70px;
}

.new-arrivals-content .section-label {
    margin-bottom: 18px;
}

.new-arrivals-content h2 {
    margin: 0 0 20px;
}

.new-arrivals-content h2 em {
    display: block;
}

.new-arrivals-content p {
    max-width: 500px;
    margin-bottom: 30px;
    line-height: 1.7;
}

/* =========================================================
   PREMIUM NEW ARRIVALS — EDITORIAL CARD
========================================================= */

.new-arrivals {
    width: min(1180px, calc(100% - 60px));
    min-height: 500px;

    margin: 100px auto;

    display: grid;
    grid-template-columns: 38% 62%;

    overflow: hidden;

    background: #1c1511;

    border: 1px solid rgba(188, 145, 88, 0.22);

    box-shadow:
        0 30px 80px rgba(28, 18, 12, 0.14);

    position: relative;
}


/* =========================================================
   IMAGE — SMALLER
========================================================= */

.new-arrivals-image {
    position: relative;

    min-height: 500px;

    overflow: hidden;

    background: #241b16;
}

.new-arrivals-image img {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;

    object-position: center;

    transition: transform 0.8s ease;
}

.new-arrivals:hover .new-arrivals-image img {
    transform: scale(1.035);
}


/* subtle image overlay */

.new-arrivals-image::after {
    content: "";

    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            180deg,
            rgba(0, 0, 0, 0.02),
            rgba(0, 0, 0, 0.22)
        );

    pointer-events: none;
}


/* NEW badge */

.new-arrivals-image-tag {
    position: absolute;

    left: 22px;
    top: 22px;

    z-index: 2;

    padding: 7px 12px;

    background: #f0dfc4;

    color: #241a14;

    font-size: 8px;
    font-weight: 700;

    letter-spacing: 0.22em;

    text-transform: uppercase;
}


/* =========================================================
   CONTENT
========================================================= */

.new-arrivals-content {
    position: relative;

    display: flex;
    flex-direction: column;
    justify-content: space-between;

    padding: 55px 65px;

    color: #0000;

    background:
      radial-gradient(circle at 90% 10%, rgba(183, 136, 75, 0.12), transparent 30%), #fffaf1;
}


/* =========================================================
   TOP
========================================================= */

.new-arrivals-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.new-arrivals-content .section-label {
    color: #c69a62;

    font-size: 9px;
    font-weight: 700;

    letter-spacing: 0.28em;

    text-transform: uppercase;
}

.new-arrivals-season {
    color: rgba(255, 255, 255, 0.35);

    font-size: 8px;
    font-weight: 600;

    letter-spacing: 0.22em;

    text-transform: uppercase;
}


/* =========================================================
   MAIN
========================================================= */

.new-arrivals-main {
    max-width: 560px;

    margin: auto 0;
}

.new-arrivals-small-title {
    display: block;

    margin-bottom: 16px;

    color: #987b5b;

    font-size: 9px;
    font-weight: 600;

    letter-spacing: 0.24em;

    text-transform: uppercase;
}


/* Heading */

.new-arrivals-content h2 {
    margin: 0;

    color: #f5eee6;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: clamp(48px, 5vw, 72px);

    font-weight: 400;

    line-height: 0.95;

    letter-spacing: -0.045em;
}

.new-arrivals-content h2 em {
    display: block;

    margin-top: 7px;

    color: #c99b60;

    font-style: italic;

    font-weight: 400;
}


/* Description */

.new-arrivals-content p {
    max-width: 430px;

    margin: 28px 0 30px;

    color: rgba(245, 238, 230, 0.62);

    font-size: 13px;

    line-height: 1.85;
}


/* =========================================================
   BUTTON
========================================================= */

.new-arrivals-content .primary-btn {
    display: inline-flex;

    align-items: center;
    justify-content: space-between;

    gap: 30px;

    width: 205px;

    padding: 14px 15px 14px 19px;

    background: #c99b60;

    color: #211711;

    border: 1px solid #c99b60;

    text-decoration: none;

    font-size: 9px;
    font-weight: 700;

    letter-spacing: 0.16em;

    text-transform: uppercase;

    transition:
        background 0.3s ease,
        color 0.3s ease,
        transform 0.3s ease;
}

.new-arrivals-content .primary-btn:hover {
    background: transparent;

    color: #d0a36b;

    transform: translateY(-2px);
}


/* Arrow */

.primary-btn-arrow {
    display: flex;

    align-items: center;
    justify-content: center;

    width: 25px;
    height: 25px;

    border: 1px solid currentColor;

    font-size: 14px;

    transition: transform 0.3s ease;
}

.new-arrivals-content .primary-btn:hover .primary-btn-arrow {
    transform: translateX(4px);
}


/* =========================================================
   BOTTOM
========================================================= */

.new-arrivals-bottom {
    display: flex;

    align-items: center;

    gap: 14px;

    color: rgba(255, 255, 255, 0.27);

    font-size: 7px;
    font-weight: 600;

    letter-spacing: 0.24em;

    text-transform: uppercase;
}

.new-arrivals-line {
    width: 35px;
    height: 1px;

    background: rgba(201, 155, 96, 0.45);
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 900px) {

    .new-arrivals {
        width: calc(100% - 40px);

        grid-template-columns: 40% 60%;

        min-height: 460px;
    }

    .new-arrivals-image {
        min-height: 460px;
    }

    .new-arrivals-content {
        padding: 45px;
    }

    .new-arrivals-content h2 {
        font-size: 50px;
    }
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 700px) {

    .new-arrivals {
        width: calc(100% - 30px);

        margin: 0px auto !important;

        display: flex;
        flex-direction: column;

        min-height: auto;
    }

    .new-arrivals-image {
        height: 330px;
        min-height: 330px;
    }

    .new-arrivals-content {
        min-height: 440px;

        padding: 35px 25px;
    }

    .new-arrivals-main {
        margin: 45px 0;
    }

    .new-arrivals-content h2 {
        font-size: 47px;
    }

    .new-arrivals-content p {
        font-size: 12px;
    }

    .new-arrivals-content .primary-btn {
        width: 200px;
    }
}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 420px) {

    .new-arrivals {
        width: calc(100% - 20px);
    }

    .new-arrivals-image {
        height: 290px;
        min-height: 290px;
    }

    .new-arrivals-content {
        padding: 30px 20px;
    }

    .new-arrivals-content h2 {
        font-size: 42px;
    }

    .new-arrivals-top {
        gap: 10px;
    }

    .new-arrivals-season {
        font-size: 7px;
    }
}

/* =========================================================
   PRODUCT IMAGE LINKS
========================================================= */
.product-image-link,
.index-product-image-link {
    display: block;
    text-decoration: none;
    color: inherit;
}

.product-image-link {
    width: 100%;
}

.product-image-link .product-image-wrap {
    width: 100%;
}

.index-product-image-link {
    width: 100%;
    height: 100%;
}

.index-product-image-link img {
    display: block;
    width: 100%;
}

.premium-arrival-image {
    text-decoration: none;
}




/* =========================================================
   vyojin final responsive system
   single final override layer for the current catalogue
========================================================= */
.site-header{position:sticky;top:0;z-index:9999;background:rgba(255,250,241,.98);border-bottom:1px solid rgba(111,23,36,.14);box-shadow:0 6px 24px rgba(48,24,18,.07);backdrop-filter:blur(16px)}
.header-inner{position:relative;width:min(1320px,100%);min-height:78px;margin:0 auto;padding:7px 22px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.header-left-actions,.header-right-actions{display:flex;align-items:center;gap:4px;z-index:2}
.header-left-actions{margin-right:auto}.header-right-actions{margin-left:auto}
.brand{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;gap:8px;z-index:3}
.brand-logo-wrap{width:58px;height:58px;flex:0 0 58px;display:grid;place-items:center;overflow:hidden;background:transparent;border:0;border-radius:0}
.brand-logo{width:100%!important;height:100%!important;object-fit:contain!important;display:block}
.brand-wordmark{font-family:Montserrat,Arial,sans-serif;font-size:17px;font-weight:700;letter-spacing:.2em;color:#6f1724;white-space:nowrap}
.desktop-nav{display:none!important}
.header-icon{position:relative;width:40px!important;height:40px!important;border:0;background:transparent;color:#6f1724;display:grid;place-items:center;border-radius:50%;cursor:pointer;padding:0}
.header-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7}
.header-icon:hover{background:#f2e4d6;color:#8c1d2b}
.header-count{position:absolute;top:1px;right:0;min-width:15px;height:15px;padding:0 3px;border-radius:99px;background:#7f1d2d;color:#fff;font:700 8px/15px Montserrat,Arial,sans-serif;text-align:center}
.mobile-menu-btn{display:flex;width:40px;height:40px;border:0;background:transparent;border-radius:50%;padding:0;cursor:pointer;align-items:center;justify-content:center;flex-direction:column;gap:4px}
.mobile-menu-btn span{width:19px;height:1.5px;background:#6f1724;border-radius:2px}
.mobile-nav{display:flex;max-height:0;overflow:hidden;flex-direction:column;background:#fffaf1;border-top:1px solid transparent;transition:max-height .25s ease,border-color .25s ease}
.mobile-nav.open{max-height:360px;border-top-color:rgba(111,23,36,.12);padding:5px 16px 12px}
.mobile-nav a{padding:13px 8px;color:#3c2926;text-decoration:none;border-bottom:1px solid rgba(111,23,36,.08);font:600 11px Montserrat,Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.mobile-nav a:last-child{border-bottom:0}

/* hero content follows the image so copy is never above the model */
.hero{overflow:hidden;background:#f7f1eb}
.hero-slide{display:flex!important;flex-direction:column;gap:0!important;padding:0!important;min-height:0!important;overflow:hidden}
.hero-slide:not(.active){display:none!important}
.hero-image{order:1;width:100%;height:min(78vh,760px);min-height:430px;overflow:hidden;background:#f7f1eb;display:flex;align-items:center;justify-content:center}
.hero-image img{display:block;width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important;transform:none!important;background:#f7f1eb}
.hero-content{order:2;width:100%;padding:22px 7vw 66px!important;text-align:center;background:linear-gradient(180deg,#f7f1eb 0%,#fffaf5 100%)}
.hero-small{font-size:9px!important;letter-spacing:.25em!important}
.hero h1{font-size:clamp(34px,5vw,62px)!important;line-height:1!important;margin:8px 0 10px!important;white-space:normal!important}
.hero p{max-width:620px;margin:0 auto 16px!important;font-size:12px!important;line-height:1.6!important}
.hero .primary-btn{font-size:10px!important;padding:11px 18px!important;letter-spacing:.1em}
.hero-controls{z-index:5;bottom:16px!important}
.hero-dot{width:6px!important;height:6px!important}.hero-arrow{width:34px!important;height:34px!important}

/* catalogue cards: full image only */
.product-image,.product-image-wrap{overflow:hidden;background:#f7f1eb}
.product-image{aspect-ratio:3/4!important}
.product-img{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important;transform:none!important;background:#f7f1eb}
.product-card:hover .front-img{opacity:0}.product-card:hover .back-img{opacity:1}.product-card:hover .front-img,.product-card:hover .back-img{transform:none!important}
.product-info{padding:12px 4px 0!important}
.product-info h3{font-size:16px!important;line-height:1.25!important;margin:5px 0 8px!important}
.product-category{font-size:9px!important;letter-spacing:.12em!important}
.product-colour-fixed{font:500 10px/1.4 Montserrat,Arial,sans-serif;color:#7b6660;margin:0 0 8px}
/* .product-price,.discount,.product-colors,.modal-price-row,.arrival-card-price,.premium-arrival-price,.pair-product-price,.related-product-price{display:none!important} */
.product-sizes{display:flex;flex-wrap:wrap;gap:5px!important;margin:6px 0 10px!important}
.product-sizes span{min-width:25px;height:25px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #ddd0c6;background:#fff;color:#493a35;font-size:9px}
.product-sizes .size-out-of-stock{text-decoration:line-through;color:#aaa;background:#f3eee9;border-color:#e2d9d1;position:relative}
.add-cart{width:100%;min-height:36px;border:0!important;border-radius:2px!important;background:#7f1d2d!important;color:#fff!important;font:600 9px Montserrat,Arial,sans-serif!important;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}

/* section images always complete */
.collection-card img,.premium-arrival-image img,.about-image img{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important;background:#f7f1eb}
.collection-card{overflow:hidden;background:#f7f1eb}
.premium-arrival-image{background:#f7f1eb;overflow:hidden}

/* no product count label */
.product-total{display:none!important}

/* search on phone */
.search-box{margin:12px 0!important}
.search-box input{font-size:12px!important;padding:12px 14px!important}

/* product page */
.product-main-image,.product-main-image img{background:#f7f1eb!important}
.product-main-image img{height:730px!important;object-fit:contain!important;object-position:center!important}
.product-thumbnail img{object-fit:contain!important;background:#f7f1eb}
.product-option[hidden]{display:none!important}
/* .product-price-row{display:none!important} */
.product-quantity-note{display:flex;flex-direction:column;gap:5px;margin:16px 0;color:#5e4e48;font-size:11px}
.product-quantity-note span{color:#8a7770;font-size:10px}
.product-size-option.out-of-stock{position:relative;color:#aaa!important;background:#f4efeb!important;text-decoration:line-through!important;border-color:#e1d8d0!important;cursor:not-allowed!important}
.product-size-option.out-of-stock::after{content:"";position:absolute;left:15%;right:15%;top:50%;height:1px;background:#a99b94;transform:rotate(-12deg)}
.product-actions .primary-btn{background:#7f1d2d!important;color:#fff!important}
.pair-product-image{background:#f7f1eb!important;overflow:hidden}
.pair-product-image img{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important;background:#f7f1eb}
.related-product-image,.related-product-image img{background:#f7f1eb!important}
.related-product-image img{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important}

/* new-arrival cards compact */
.premium-arrivals-grid{gap:18px!important}
.premium-arrival-info h3{font-size:15px!important;line-height:1.25!important}
.premium-arrival-category{font-size:9px!important}

@media (max-width:700px){
 .header-inner{min-height:62px;padding:4px 9px}
 .brand-logo-wrap{width:47px;height:47px;flex-basis:47px}
 .brand-wordmark{font-size:12px;letter-spacing:.14em}
 .header-icon,.mobile-menu-btn{width:34px!important;height:34px!important}
 .header-icon svg{width:17px;height:17px}
 .header-count{top:-1px;right:-1px;min-width:13px;height:13px;line-height:13px;font-size:7px}
 .hero-image{height:auto;min-height:0;aspect-ratio:4/5}
 .hero-content{padding:15px 15px 58px!important}
 .hero h1{font-size:clamp(28px,9vw,43px)!important;margin:6px 0 8px!important}
 .hero p{font-size:10px!important;line-height:1.5!important;max-width:320px;margin-bottom:12px!important}
 .hero-small{font-size:7px!important;letter-spacing:.2em!important}
 .hero .primary-btn{font-size:8px!important;padding:9px 14px!important}
 .hero-controls{bottom:11px!important;padding:0 10px!important}
 .hero-arrow{width:29px!important;height:29px!important;font-size:12px!important}
 .product-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}
 .product-info h3{font-size:12px!important}
 .product-colour-fixed{font-size:8px!important}
 .product-sizes{gap:3px!important}
 .product-sizes span{min-width:22px;height:22px;font-size:8px;padding:0 4px}
 .add-cart{min-height:32px;font-size:8px!important}
 .collection-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
 .collection-card{height:300px!important}
 .collection-card h3{font-size:20px!important}
 .collection-card p{font-size:8px!important}
 .collection-card div{padding:10px!important}
 .premium-arrivals-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
 .premium-arrival-info{padding:8px!important}
 .premium-arrival-info h3{font-size:11px!important}
 .premium-arrival-category{font-size:7px!important}
 .product-detail-section{padding:28px 0 45px!important}
 .product-detail-grid{display:block!important}
 .product-gallery{display:flex!important;flex-direction:column-reverse!important;gap:8px!important;position:static!important}
 .product-main-image{min-height:0!important;aspect-ratio:4/5!important}
 .product-main-image img{height:100%!important;object-fit:contain!important}
 .product-thumbnails{display:flex!important;flex-direction:row!important;overflow-x:auto!important;gap:6px!important}
 .product-thumbnail{width:62px!important;height:76px!important;flex:0 0 62px!important}
 .product-information{padding-top:22px!important}
 .product-name{font-size:30px!important}
 .product-rating{margin:12px 0 15px!important;font-size:10px!important}
 .product-actions{gap:8px!important}
 .product-actions button{min-height:42px!important;font-size:9px!important}
 .pairs-products{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
 .pair-product-image{aspect-ratio:3/4!important}
 .pair-product-name{font-size:10px!important;line-height:1.3!important}
}
@media (max-width:380px){
 .brand-wordmark{display:none}
 .brand-logo-wrap{width:43px;height:43px;flex-basis:43px}
 .hero h1{font-size:29px!important}
 .product-grid{gap:9px!important}
 .collection-card{height:270px!important}
 .collection-card h3{font-size:18px!important}
}

/* final phone-only layout correction: original hero design preserved */
.hero-slide{display:grid!important;grid-template-columns:.9fr 1.1fr;grid-template-rows:1fr;align-items:center;gap:28px;padding:55px 30px;min-height:650px;position:absolute;inset:0;width:100%;max-width:var(--container);margin:auto;opacity:0;visibility:hidden;pointer-events:none;transform:translateX(35px);transition:opacity .45s ease,transform .45s ease,visibility .45s ease}
.hero-slide.active{position:relative;opacity:1;visibility:visible;pointer-events:auto;transform:translateX(0)}
.hero{min-height:650px;position:relative;overflow:hidden}
.hero-content{order:initial;width:auto;padding-left:5%!important;text-align:left;background:transparent}
.hero-image{order:initial;width:100%;height:560px;min-height:0;overflow:hidden;background:transparent;display:flex;align-items:center;justify-content:center}
.hero-image img{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important;background:transparent}
.hero h1{white-space:nowrap!important;font-size:clamp(38px,4.4vw,62px)!important;line-height:1.04!important;margin:18px 0!important}
.hero p{max-width:520px;margin:0 0 18px!important;font-size:12px!important;line-height:1.6!important}
.hero-content .primary-btn{font-size:10px!important;padding:11px 18px!important}
.collection-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px!important;margin-top:28px!important}
.collection-card{height:520px!important}
.collection-card img{object-fit:contain!important}
@media (max-width:700px){
 html,body{max-width:100%;overflow-x:hidden}
 .hero{min-height:0;height:auto;padding:0}
 .hero-slide{position:absolute;grid-template-columns:1fr;grid-template-rows:auto auto;gap:7px;padding:24px 14px 58px;min-height:0;max-width:none;align-content:center}
 .hero-slide.active{position:relative}
 .hero-content{padding:0!important;text-align:center;order:1;display:flex;flex-direction:column;align-items:center}
 .hero-small{font-size:7px!important;letter-spacing:.2em!important}
 .hero h1{font-size:clamp(27px,8.5vw,38px)!important;line-height:1!important;margin:7px 0 6px!important;white-space:nowrap!important}
 .hero p{font-size:9px!important;line-height:1.45!important;max-width:300px!important;margin:0 auto 10px!important}
 .hero-content .primary-btn{font-size:8px!important;padding:9px 14px!important;min-height:32px}
 .hero-image{order:2;width:100%;height:auto;aspect-ratio:4/5;min-height:0}
 .hero-image img{width:100%!important;height:100%!important;object-fit:contain!important}
 .hero-controls{bottom:10px!important;left:0;right:0;padding:0 10px!important}
 .hero-arrow{width:29px!important;height:29px!important;font-size:12px!important}
 .hero-dot{width:6px!important;height:6px!important}
 .collection-grid{grid-template-columns:1fr!important;gap:12px!important;margin-top:20px!important}
 .collection-card{width:100%!important;height:auto!important;min-height:0!important;aspect-ratio:4/5}
 .collection-card img{width:100%!important;height:100%!important;object-fit:contain!important}
 .collection-card div{padding:12px!important}
 .collection-card span{font-size:7px!important}
 .collection-card h3{font-size:20px!important;margin:4px 0!important}
 .collection-card p{font-size:8px!important;margin:0!important}
 .product-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:11px!important}
 .product-img{object-fit:contain!important}
 .product-info{padding:9px 2px 0!important}
 .product-info h3{font-size:11px!important;line-height:1.3!important;margin:4px 0 6px!important}
 .product-category{font-size:7px!important}
 .product-colour-fixed{font-size:7px!important;margin-bottom:6px!important}
 .product-sizes{gap:3px!important;margin:5px 0 8px!important}
 .product-sizes span{min-width:21px;height:21px;font-size:7px;padding:0 3px}
 .add-cart{min-height:31px!important;font-size:7px!important;padding:0 5px!important;letter-spacing:.08em!important}
 .premium-arrivals-grid{grid-template-columns:1fr!important;gap:12px!important}
 .premium-arrival-image{aspect-ratio:4/5!important;height:auto!important}
 .premium-arrival-image img{width:100%!important;height:100%!important;object-fit:contain!important}
 .section-header{margin-bottom:12px!important}
 .section-header h2{font-size:25px!important;line-height:1.15!important}
 .section-header p{font-size:9px!important;line-height:1.5!important}
 .product-detail-section{padding:24px 12px 40px!important}
 .product-main-image{aspect-ratio:4/5!important;min-height:0!important}
 .product-main-image img{width:100%!important;height:100%!important;object-fit:contain!important}
 .product-thumbnail img{width:100%!important;height:100%!important;object-fit:contain!important}
 .product-information{padding-top:18px!important}
 .product-name{font-size:27px!important;line-height:1.15!important}
 .product-actions{gap:7px!important}
 .product-actions button{min-height:40px!important;font-size:8px!important}
 .pairs-products{grid-template-columns:1fr!important;gap:12px!important}
 .pair-product-image,.related-product-image{aspect-ratio:4/5!important}
 .related-product-image img{object-fit:contain!important}
}
@media (max-width:380px){
 .hero-slide{padding-left:10px;padding-right:10px}
 .hero h1{font-size:27px!important}
 .hero p{font-size:8px!important;max-width:280px!important}
 .product-grid{gap:8px!important}
 .product-info h3{font-size:10px!important}
}

/* =====================================================
   final hero presentation - image first, no overlay copy
   ===================================================== */
.hero {
    position: relative;
    width: 100%;
    min-height: clamp(430px, 43vw, 760px);
    height: clamp(430px, 43vw, 760px);
    overflow: hidden;
    background: var(--cream-dark);
    isolation: isolate;
}

.hero-slide {
    position: absolute !important;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    min-height: 0;
    margin: 0;
    padding: 0;
    display: block;
    opacity: 0;
    visibility: hidden;
    transform: none;
    pointer-events: none;
    transition: opacity .55s ease, visibility .55s ease;
    background: var(--cream-dark);
}

.hero-slide.active {
    position: absolute !important;
    inset: 0;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.hero-media {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background: var(--cream-dark);
}

.hero-media picture,
.hero-media img {
    display: block;
    width: 100%;
    height: 100%;
}

.hero-media img {
    object-fit: contain;
    object-position: center;
    background: var(--cream-dark);
}

.hero-controls {
    position: absolute;
    z-index: 30;
    left: 0;
    right: 0;
    bottom: 22px;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0 22px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    pointer-events: none;
    transform: none;
}

.hero-arrow {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    padding: 0;
    border: 1px solid rgba(159, 18, 57, .35);
    border-radius: 50%;
    background: rgba(255, 250, 241, .94);
    color: var(--red);
    font-size: 17px;
    line-height: 1;
    pointer-events: auto;
    box-shadow: 0 8px 24px rgba(33, 21, 18, .12);
}

.hero-arrow:hover {
    background: var(--red);
    color: var(--white);
    border-color: var(--red);
}

.hero-dots {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 7px 10px;
    border-radius: 999px;
    background: rgba(255, 250, 241, .78);
    backdrop-filter: blur(8px);
    pointer-events: auto;
}

.hero-dot {
    width: 22px;
    height: 3px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: rgba(159, 18, 57, .25);
}

.hero-dot.active {
    width: 38px;
    background: var(--red);
}

/* keep festive mood premium and uncropped */
.collection-card {
    height: auto;
    min-height: 0;
    background: var(--cream-dark);
}

.collection-card img {
    width: 100%;
    height: auto;
    aspect-ratio: auto;
    object-fit: contain;
    background: var(--cream-dark);
}

@media (max-width: 767px) {
    .hero {
        min-height: 0;
        height: auto;
        aspect-ratio: 9 / 16;
        background: var(--cream-dark);
    }

    .hero-slide,
    .hero-slide.active,
    .hero-media {
        position: absolute !important;
        inset: 0;
        height: 100%;
    }

    .hero-media img {
        object-fit: contain;
        width: 100%;
        height: 100%;
        background: var(--cream-dark);
    }

    .hero-controls {
        bottom: 12px;
        padding: 0 12px;
    }

    .hero-arrow {
        width: 34px;
        height: 34px;
        font-size: 14px;
    }

    .hero-dots {
        gap: 5px;
        padding: 5px 8px;
    }

    .hero-dot {
        width: 15px;
        height: 2px;
    }

    .hero-dot.active {
        width: 25px;
    }

    /* one festive mood card per row on every phone size */
    .collection-grid {
        grid-template-columns: 1fr !important;
        gap: 14px;
        margin-top: 24px;
    }

    .collection-card,
    .collection-card:last-child {
        grid-column: auto !important;
        width: 100%;
    }

    .collection-card img {
        height: auto;
        max-height: none;
    }

    .collection-card > div {
        left: 16px;
        right: 16px;
        bottom: 16px;
    }

    .collection-card h3 {
        font-size: 28px;
    }
}

/* =====================================================
   VYOJIN FINAL HEADER + HERO
   Reference-led layout: clean cream header, centered logo,
   left search/menu, right wishlist/cart and image-first hero.
===================================================== */
.announcement-bar{
    width:100%;
    height:32px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#9f0b46;
    color:#fff;
    font:600 11px Montserrat,Arial,sans-serif;
    letter-spacing:.02em;
}
.site-header{
    position:sticky;
    top:0;
    z-index:1000;
    background:rgba(255,252,247,.98);
    border-bottom:1px solid rgba(92,48,39,.12);
    box-shadow:0 4px 18px rgba(50,25,20,.05);
}
.header-main-row{
    position:relative;
    width:100%;
    max-width:1440px;
    min-height:82px;
    margin:0 auto;
    padding:8px 38px;
    display:flex;
    align-items:center;
    justify-content:space-between;
}
.header-left-actions,.header-right-actions{
    display:flex;
    align-items:center;
    gap:10px;
    min-width:300px;
}
.header-right-actions{justify-content:flex-end}
.header-icon,.mobile-menu-btn{
    position:relative;
    width:42px!important;
    height:42px!important;
    display:grid;
    place-items:center;
    padding:0;
    border:0;
    background:transparent;
    color:#211914;
    cursor:pointer;
}
.header-icon svg{
    width:21px;
    height:21px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.6;
    stroke-linecap:round;
    stroke-linejoin:round;
}
.header-icon:hover{color:#9f0b46}
.header-search-inline{
    width:280px;
    height:38px;
    display:flex;
    align-items:center;
    gap:10px;
    padding:0 12px;
    border:1px solid #cfc7c0;
    background:#fff;
}
.header-search-inline svg{
    width:19px;
    height:19px;
    flex:0 0 auto;
    fill:none;
    stroke:#655d58;
    stroke-width:1.5;
}
.header-search-inline input{
    width:100%;
    border:0;
    outline:0;
    background:transparent;
    color:#211914;
    font:400 12px Montserrat,Arial,sans-serif;
}
.header-search-inline input::placeholder{color:#77706b}
.header-search-trigger{display:none}
.brand{
    position:absolute;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%);
    width:155px;
    height:70px;
    display:flex;
    align-items:center;
    justify-content:center;
    z-index:3;
}
.brand:hover{transform:translate(-50%,-50%)}
.brand-logo{
    display:block;
    width:150px!important;
    height:70px!important;
    max-width:none!important;
    object-fit:contain;
}
.brand-wordmark{display:none!important}
.desktop-nav{
    min-height:48px;
    width:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:38px;
    padding:0 20px;
    border-top:1px solid rgba(92,48,39,.05);
    background:#fffdfa;
    overflow-x:auto;
    scrollbar-width:none;
}
.desktop-nav::-webkit-scrollbar{display:none}
.desktop-nav a{
    position:relative;
    flex:0 0 auto;
    padding:15px 0 13px;
    color:#171210;
    font:700 11px Montserrat,Arial,sans-serif;
    text-transform:uppercase;
    white-space:nowrap;
}
.desktop-nav a::after{
    content:"";
    position:absolute;
    left:0;
    right:100%;
    bottom:7px;
    height:2px;
    background:#9f0b46;
    transition:right .25s ease;
}
.desktop-nav a:hover::after,.desktop-nav a.active::after{right:0}
.desktop-nav a.active{color:#9f0b46}
.header-count{
    position:absolute;
    top:3px;
    right:1px;
    min-width:14px;
    height:14px;
    padding:0 3px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:#9f0b46;
    color:#fff;
    font:700 7px Arial,sans-serif;
}
.mobile-nav{display:none}
.mobile-menu-btn{display:none}

/* hero */
.hero{
    position:relative;
    width:100%;
    height:clamp(560px,calc(100vh - 162px),720px);
    min-height:560px;
    overflow:hidden;
    background:
        radial-gradient(circle at 13% 45%,rgba(210,125,132,.17),transparent 30%),
        radial-gradient(circle at 72% 10%,rgba(214,171,105,.13),transparent 28%),
        #f8eee7;
}
.hero-slide{
    position:absolute!important;
    inset:0;
    width:100%;
    height:100%;
    display:grid!important;
    grid-template-columns:43% 57%;
    align-items:stretch;
    padding:0;
    margin:0;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateX(22px);
    transition:opacity .55s ease,transform .55s ease,visibility .55s ease;
    background:transparent;
}
.hero-slide.active{
    position:absolute!important;
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translateX(0);
}
.hero-copy{
    position:relative;
    z-index:2;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:48px 40px 75px;
    background:
        radial-gradient(circle at 50% 48%,rgba(255,255,255,.8),transparent 55%),
        linear-gradient(135deg,#f8e8df 0%,#f7eee9 55%,#f3dfd8 100%);
}
.hero-copy::before,.hero-copy::after{
    content:"";
    position:absolute;
    width:100px;
    height:100px;
    border:1px solid rgba(159,11,70,.14);
    border-radius:50%;
    pointer-events:none;
}
.hero-copy::before{left:-50px;top:15%;}
.hero-copy::after{right:-50px;bottom:12%;}
.hero-copy-logo{
    width:110px;
    height:65px;
    object-fit:contain;
    margin-bottom:16px;
}
.hero-eyebrow{
    color:#9f0b46;
    font:700 10px Montserrat,Arial,sans-serif;
    letter-spacing:3px;
}
.hero-copy h1{
    max-width:500px;
    margin:13px 0 7px;
    color:#741233;
    font:500 clamp(48px,5.2vw,82px)/.9 "Cormorant Garamond",Georgia,serif;
    letter-spacing:-.035em;
}
.hero-copy h1 em{
    display:block;
    color:#c94f76;
    font-style:italic;
    font-weight:500;
}
.hero-copy p{
    margin:12px 0 26px;
    color:#5e4c45;
    font:500 11px Montserrat,Arial,sans-serif;
    letter-spacing:3px;
    text-transform:uppercase;
}
.hero-shop-btn{
    min-width:145px;
    height:44px;
    padding:0 23px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    border-radius:999px;
    background:#9f0b46;
    color:#fff;
    font:600 10px Montserrat,Arial,sans-serif;
    letter-spacing:1.4px;
    text-transform:uppercase;
    box-shadow:0 10px 22px rgba(159,11,70,.18);
    transition:transform .2s ease,background .2s ease;
}
.hero-shop-btn:hover{background:#7f0939;transform:translateY(-2px)}
.hero-shop-btn span{font-size:18px;line-height:1}
.hero-media{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:100%;
    overflow:hidden;
    background:#eee0d6;
}
.hero-media::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    background:linear-gradient(90deg,rgba(248,238,231,.22),transparent 20%);
    pointer-events:none;
}
.hero-media img{
    display:block;
    width:100%;
    height:100%;
    object-fit:contain;
    object-position:center;
    background:#eee0d6;
}
.hero-controls{
    position:absolute;
    z-index:20;
    left:0;
    right:0;
    bottom:20px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0 22px;
    pointer-events:none;
}
.hero-arrow{
    width:40px!important;
    height:40px!important;
    border:1px solid rgba(159,11,70,.18)!important;
    border-radius:50%!important;
    display:grid!important;
    place-items:center;
    background:rgba(255,253,250,.94)!important;
    color:#9f0b46!important;
    font:400 20px/1 Arial,sans-serif!important;
    pointer-events:auto;
}
.hero-dots{
    display:flex;
    align-items:center;
    gap:6px;
    padding:6px 9px;
    border-radius:999px;
    background:rgba(255,253,250,.78);
    backdrop-filter:blur(7px);
    pointer-events:auto;
}
.hero-dot{width:8px!important;height:8px!important;padding:0;border:1px solid #9f0b46!important;border-radius:50%!important;background:transparent!important}
.hero-dot.active{background:#9f0b46!important}

@media (max-width:900px){
    .header-main-row{padding:7px 18px}
    .header-left-actions,.header-right-actions{min-width:0}
    .header-search-inline{width:210px}
    .desktop-nav{gap:25px}
    .hero{height:620px;min-height:620px}
    .hero-copy{padding-left:24px;padding-right:24px}
    .hero-copy h1{font-size:clamp(42px,6vw,64px)}
}

@media (max-width:767px){
    .announcement-bar{height:27px;font-size:8px;letter-spacing:.02em}
    .site-header{position:sticky}
    .header-main-row{height:61px;min-height:61px;padding:4px 8px}
    .header-left-actions,.header-right-actions{gap:2px}
    .header-search-inline{display:none}
    .header-search-trigger{display:grid!important}
    .mobile-menu-btn{display:grid!important}
    .mobile-menu-btn span{display:block;width:18px;height:1.5px;margin:0.5px 0;background:#211914}
    .header-icon,.mobile-menu-btn{width:35px!important;height:35px!important}
    .header-icon svg{width:18px;height:18px}
    .brand{width:110px;height:53px}
    .brand-logo{width:105px!important;height:85px!important}
    .desktop-nav{display:none}
    .mobile-nav{display:flex;position:absolute;left:0;right:0;top:88px;z-index:20;max-height:0;overflow:hidden;flex-direction:column;background:#fffdfa;border-top:1px solid rgba(92,48,39,.08);transition:max-height .3s ease,box-shadow .3s ease}
    .mobile-nav.open{max-height:430px;box-shadow:0 12px 25px rgba(33,21,18,.10)}
    .mobile-nav a{padding:13px 18px;border-bottom:1px solid rgba(92,48,39,.07);font:700 10px Montserrat,Arial,sans-serif;text-transform:uppercase;color:#211914}
    .mobile-nav a:active{color:#9f0b46}

    .hero{
        height:auto;
        min-height:0;
        aspect-ratio:3 / 4;
        overflow:hidden;
        background:#f8eee7;
    }
    .hero-slide,.hero-slide.active{
        position:absolute!important;
        inset:0;
        height:100%;
        min-height:0;
        grid-template-columns:1fr;
        grid-template-rows:auto 1fr;
        align-items:stretch;
    }
    .hero-copy{
        order:1;
        min-height:225px;
        padding:18px 18px 42px;
        justify-content:center;
    }
    .hero-copy-logo{width:78px;height:43px;margin-bottom:8px}
    .hero-eyebrow{font-size:7px;letter-spacing:2px}
    .hero-copy h1{font-size:clamp(34px,10.5vw,47px);line-height:.9;margin:7px 0 5px}
    .hero-copy p{font-size:7px;letter-spacing:1.5px;margin:6px 0 13px}
    .hero-shop-btn{height:33px;min-width:112px;padding:0 15px;font-size:7px;gap:8px}
    .hero-shop-btn span{font-size:14px}
    .hero-media{
        order:2;
        min-height:0;
        height:auto;
        background:#eee0d6;
    }
    .hero-media img{
        width:100%;
        height:100%;
        object-fit:contain;
        object-position:center;
    }
    .hero-controls{bottom:9px;padding:0 10px}
    .hero-arrow{width:31px!important;height:31px!important;font-size:14px!important}
    .hero-dots{gap:4px;padding:4px 7px}
    .hero-dot{width:6px!important;height:6px!important}
}

@media (max-width:380px){
    .brand{width:96px}
    .brand-logo{width:92px!important}
    .hero-copy{min-height:205px;padding:14px 12px 38px}
    .hero-copy-logo{width:70px;height:39px}
    .hero-copy h1{font-size:33px}
    .hero-copy p{font-size:6.5px;margin-bottom:10px}
    .hero-shop-btn{height:30px;min-width:105px;font-size:6.5px}
}



/* =========================================================
   VYOJIN HERO - MOBILE ONLY
   Full image first -> content below
   Desktop design remains unchanged
========================================================= */

@media screen and (max-width: 767px) {

    /* hero container */
    .hero {
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        overflow: hidden !important;
        position: relative !important;
    }

    /* each slide */
    .hero .hero-slide {
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;

        display: none !important;
        flex-direction: column !important;

        position: relative !important;
        overflow: hidden !important;

        background: #f8ebe5 !important;
    }

    /* active slide */
    .hero .hero-slide.active {
        display: flex !important;
    }


    /* =====================================================
       1. FULL HERO IMAGE FIRST
    ===================================================== */

    .hero .hero-media {
        order: 1 !important;

        display: block !important;

        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;

        position: relative !important;

        overflow: hidden !important;

        margin: 0 !important;
        padding: 0 !important;

        background: #f8ebe5 !important;
    }

    .hero .hero-media img {
        display: block !important;

        width: 100% !important;
        height: auto !important;

        max-width: 100% !important;
        max-height: none !important;

        object-fit: contain !important;
        object-position: center center !important;

        margin: 0 !important;
        padding: 0 !important;
    }


    /* =====================================================
       2. CONTENT AFTER FULL IMAGE
    ===================================================== */

    .hero .hero-copy {
        order: 2 !important;

        position: relative !important;

        top: auto !important;
        right: auto !important;
        bottom: auto !important;
        left: auto !important;

        transform: none !important;

        width: 100% !important;
        max-width: 100% !important;

        height: auto !important;
        min-height: 0 !important;

        margin: 0 !important;

        padding: 20px 16px 28px !important;

        box-sizing: border-box !important;

        display: flex !important;
        flex-direction: column !important;

        align-items: center !important;
        justify-content: center !important;

        text-align: center !important;

        background: #f8ebe5 !important;
    }


    /* hero logo inside content */
    .hero .hero-copy-logo {
        width: 55px !important;
        height: auto !important;

        margin: 0 0 8px !important;

        object-fit: contain !important;
    }


    /* eyebrow */
    .hero .hero-eyebrow {
        display: block !important;

        margin: 0 0 5px !important;

        font-size: 8px !important;
        line-height: 1.3 !important;

        letter-spacing: 2.5px !important;

        text-align: center !important;
    }


    /* heading */
    .hero .hero-copy h1 {
        margin: 0 0 8px !important;
        padding: 0 !important;

        font-size: 28px !important;
        line-height: 1.12 !important;

        text-align: center !important;
    }

    .hero .hero-copy h1 em {
        display: inline !important;
    }


    /* description */
    .hero .hero-copy p {
        margin: 0 0 15px !important;
        padding: 0 !important;

        font-size: 8px !important;
        line-height: 1.5 !important;

        letter-spacing: 1.8px !important;

        text-align: center !important;
    }


    /* =====================================================
       3. SHOP NOW BUTTON
    ===================================================== */

    .hero .hero-shop-btn {
        display: inline-flex !important;

        align-items: center !important;
        justify-content: center !important;

        width: auto !important;
        min-width: 105px !important;

        height: 34px !important;

        padding: 0 20px !important;
        margin: 0 !important;

        box-sizing: border-box !important;

        border-radius: 22px !important;

        font-size: 8px !important;
        line-height: 1 !important;

        letter-spacing: 1.5px !important;

        text-decoration: none !important;

        background: #a50046 !important;
        color: #ffffff !important;
    }

    .hero .hero-shop-btn span {
        margin-left: 7px !important;
    }


    /* =====================================================
       4. CONTROLS
    ===================================================== */

    .hero .hero-controls {
        position: absolute !important;

        left: 0 !important;
        right: 0 !important;
        bottom: 14px !important;

        width: 100% !important;

        display: flex !important;

        align-items: center !important;
        justify-content: space-between !important;

        padding: 0 14px !important;

        box-sizing: border-box !important;

        z-index: 50 !important;

        pointer-events: none !important;
    }


    /* arrows */
    .hero .hero-arrow {
        pointer-events: auto !important;

        width: 32px !important;
        height: 32px !important;

        min-width: 32px !important;

        padding: 0 !important;
        margin: 0 !important;

        border-radius: 50% !important;

        display: flex !important;

        align-items: center !important;
        justify-content: center !important;

        background: #ffffff !important;

        border: 1px solid #ead6dc !important;

        color: #a50046 !important;

        font-size: 16px !important;

        box-shadow: 0 2px 8px rgba(0,0,0,.08);
    }


    /* dots */
    .hero .hero-dots {
        pointer-events: auto !important;

        position: absolute !important;

        left: 50% !important;
        bottom: 0 !important;

        transform: translateX(-50%) !important;

        display: flex !important;

        align-items: center !important;
        justify-content: center !important;

        gap: 5px !important;

        padding: 5px 8px !important;

        border-radius: 20px !important;

        background: rgba(255,255,255,.88) !important;
    }

    .hero .hero-dot {
        width: 6px !important;
        height: 6px !important;

        min-width: 6px !important;
        min-height: 6px !important;

        padding: 0 !important;
        margin: 0 !important;

        border-radius: 50% !important;

        border: 1px solid #a50046 !important;

        background: transparent !important;
    }

    .hero .hero-dot.active {
        background: #a50046 !important;
    }


    /* remove old overlay/background effects */
    .hero .hero-slide::before,
    .hero .hero-slide::after,
    .hero .hero-media::before,
    .hero .hero-media::after {
        display: none !important;
    }
}


/* =========================================================
   SMALL PHONES
========================================================= */

@media screen and (max-width: 380px) {

    .hero .hero-copy {
        padding: 17px 13px 24px !important;
    }

    .hero .hero-copy-logo {
        width: 48px !important;
        margin-bottom: 6px !important;
    }

    .hero .hero-eyebrow {
        font-size: 7px !important;
        letter-spacing: 2px !important;
    }

    .hero .hero-copy h1 {
        font-size: 24px !important;
        margin-bottom: 7px !important;
    }

    .hero .hero-copy p {
        font-size: 7px !important;
        letter-spacing: 1.4px !important;
        margin-bottom: 12px !important;
    }

    .hero .hero-shop-btn {
        min-width: 98px !important;
        height: 31px !important;
        padding: 0 16px !important;
        font-size: 7px !important;
    }

    .hero .hero-arrow {
        width: 29px !important;
        height: 29px !important;
        min-width: 29px !important;
        font-size: 14px !important;
    }
}

@media screen and (max-width: 767px) {

    #mobileMenuButton {
        width: 38px !important;
        height: 38px !important;
        padding: 0 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    #mobileMenuButton i {
        font-size: 18px !important;
        line-height: 1 !important;
        letter-spacing: -2px !important;
    }
}

.announcement-bar {
    width: 100%;
    overflow: hidden;
    white-space: nowrap;
    background: #a50046;
    color: #fff;
    padding: 9px 0;
    position: relative;
}

.announcement-track {
    display: inline-flex;
    align-items: center;
    gap: 55px;
    width: max-content;
    animation: productTicker 35s linear infinite;
}

.announcement-track span {
    display: inline-block;
    font-size: 12px;
    letter-spacing: 1px;
    font-weight: 500;
}

.announcement-track span::before {
    content: "✦";
    margin-right: 55px;
    opacity: .8;
}

@keyframes productTicker {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(-50%);
    }
}

/* =========================
   BRAND / LOGO
========================= */

.brand {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 6px;
    text-decoration: none;
    flex-shrink: 1;
    min-width: 0;
    line-height: 1;
}

.brand-logo {
    display: block;
    width: clamp(75px, 10vw, 150px);
    height: auto;
    max-height: 65px;
    object-fit: contain;
    flex-shrink: 1;
}

.brand-text {
    display: block;
    margin: 0;
    padding: 0;
    font-size: clamp(18px, 2vw, 28px);
    line-height: 1;
    font-weight: 700;
    letter-spacing: clamp(0.5px, 0.15vw, 2px);
    color: #8b5e3c;
    white-space: nowrap;
    flex-shrink: 0;
    margin-left: -15px !important;
    margin-top: 10px !important;
}


/* =========================
   TABLET
========================= */

@media (max-width: 900px) {

    .brand {
        gap: 5px;
    }

    .brand-logo {
        width: 105px;
        max-height: 58px;
    }

    .brand-text {
        font-size: 22px;
        letter-spacing: 1px;
    }
}


/* =========================
   MOBILE
========================= */
@media (max-width: 600px) {

    .brand-text {
        margin-left: -6px !important;
        margin-top: 7px !important;
    }

    .brand {
        gap: 0px !important;
        margin-left: -20px;
    }

}




/* =========================
   SMALL MOBILE
========================= */

@media (max-width: 430px) {

    .brand {
        gap: 3px;
        max-width: 47vw;
    }

    .brand-logo {
        width: 70px;
        max-height: 44px;
    }

    .brand-text {
        font-size: 17px;
        letter-spacing: 0.5px;
    }
}


/* =========================
   VERY SMALL PHONES
========================= */

@media (max-width: 360px) {

    .brand {
        gap: 2px;
        max-width: 46vw;
    }

    .brand-logo {
        width: 62px;
        max-height: 40px;
    }

    .brand-text {
        font-size: 15px;
        letter-spacing: 0.3px;
    }
}

/* =========================================================
   VYOJIN - FINAL RESPONSIVE FIX
   Cart / Wishlist / Cards / Mobile
   Paste this at the VERY END of css/pages.css
   ========================================================= */

/* ---------- global responsive protection ---------- */

html {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
}

body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

img {
    max-width: 100%;
}


/* =========================================================
   PAGE CONTAINER
   ========================================================= */

.vj-page {
    width: 100%;
    max-width: 100%;
    padding-left: 20px;
    padding-right: 20px;
    overflow: hidden;
}

.vj-page-inner {
    width: 100%;
    max-width: 1080px;
    margin-left: auto;
    margin-right: auto;
}


/* =========================================================
   CART / WISHLIST GRID
   ========================================================= */

.vj-grid {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}


/* =========================================================
   CARD
   ========================================================= */

.vj-card {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
}


/* =========================================================
   CARD IMAGE
   Prevent image cutting
   ========================================================= */

.vj-card-media {
    width: 100%;
    min-width: 0;
    overflow: hidden;
    background: #f7f1eb;
}

.vj-card-media img {
    width: 100%;
    height: 100%;
    max-width: 100%;
    display: block;
    object-fit: contain;
    object-position: center;
}


/* =========================================================
   CARD CONTENT
   ========================================================= */

.vj-card-body {
    width: 100%;
    min-width: 0;
    padding: 14px;
    gap: 7px;
    overflow: hidden;
}

.vj-card-cat {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 10px;
}

.vj-card-title {
    width: 100%;
    max-width: 100%;
    font-size: 18px;
    line-height: 1.2;
    overflow-wrap: anywhere;
    word-break: normal;
}

.vj-meta {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    gap: 4px 10px;
    font-size: 11px;
}

.vj-price-row {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}

.vj-price {
    font-size: 16px;
}


/* =========================================================
   CARD BUTTONS
   ========================================================= */

.vj-card-actions {
    width: 100%;
    display: flex;
    flex-direction: row;
    gap: 8px;
    margin-top: auto;
    padding-top: 7px;
}

.vj-card-actions .vj-btn {
    min-width: 0;
    width: 100%;
    max-width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}


/* =========================================================
   BUTTON SAFETY
   ========================================================= */

.vj-btn {
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}


/* =========================================================
   SUMMARY
   ========================================================= */

.vj-summary {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
}

.vj-summary-lines {
    width: 100%;
    min-width: 0;
}

.vj-summary-line,
.vj-summary-total {
    width: 100%;
    min-width: 0;
    display: flex;
    justify-content: space-between;
    gap: 15px;
}

.vj-summary-line span,
.vj-summary-total span,
.vj-summary-total strong {
    min-width: 0;
    overflow-wrap: anywhere;
}

.vj-summary-actions {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.vj-summary-actions .vj-btn {
    width: 100%;
    max-width: 100%;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 1100px) {

    .vj-page {
        padding-left: 18px;
        padding-right: 18px;
    }

    .vj-page-inner {
        max-width: 100%;
    }

    .vj-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 16px;
    }

    .vj-card-body {
        padding: 13px;
    }

    .vj-card-title {
        font-size: 17px;
    }

    .vj-card-actions {
        gap: 7px;
    }

    .vj-card-actions .vj-btn {
        padding-left: 9px;
        padding-right: 9px;
        font-size: 11px;
    }
}


/* =========================================================
   SMALL TABLET
   ========================================================= */

@media (max-width: 850px) {

    .vj-page {
        padding: 32px 15px 55px;
    }

    .vj-page-head {
        margin-bottom: 24px;
    }

    .vj-page-head h1 {
        font-size: 34px;
    }

    .vj-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px;
    }

    .vj-card-body {
        padding: 12px;
        gap: 6px;
    }

    .vj-card-title {
        font-size: 17px;
    }

    .vj-meta {
        font-size: 10px;
    }

    .vj-price {
        font-size: 15px;
    }

    .vj-card-actions {
        gap: 7px;
    }

    .vj-card-actions .vj-btn {
        font-size: 10px;
        padding: 10px 8px;
    }
}


/* =========================================================
   MOBILE
   IMPORTANT:
   2 CARDS IN ONE ROW
   ========================================================= */

@media (max-width: 600px) {

    .vj-page {
        width: 100%;
        padding: 24px 10px 40px;
    }

    .vj-page-inner {
        width: 100%;
        max-width: 100%;
    }

    .vj-page-head {
        margin-bottom: 18px;
    }

    .vj-page-head .vj-eyebrow {
        font-size: 8px;
        letter-spacing: 2px;
        margin-bottom: 5px;
    }

    .vj-page-head h1 {
        font-size: 28px;
        line-height: 1.1;
    }

    .vj-page-head p {
        font-size: 10px;
        line-height: 1.45;
        margin-top: 7px;
    }


    /* 2 cards in one row */
    .vj-grid {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 9px;
    }


    /* card */
    .vj-card {
        width: 100%;
        min-width: 0;
        border-radius: 9px;
    }


    /* image */
    .vj-card-media {
        width: 100%;
        aspect-ratio: 3 / 4;
        min-height: 0;
    }

    .vj-card-media img {
        width: 100%;
        height: 100%;
        object-fit: contain;
    }


    /* remove button */
    .vj-remove {
        width: 27px;
        height: 27px;
        top: 6px;
        right: 6px;
        font-size: 14px;
    }


    /* badge */
    .vj-badge {
        top: 6px;
        left: 6px;
        padding: 3px 6px;
        font-size: 7px;
        border-radius: 12px;
    }


    /* content */
    .vj-card-body {
        width: 100%;
        min-width: 0;
        padding: 8px 7px 9px;
        gap: 5px;
    }


    .vj-card-cat {
        font-size: 7px;
        letter-spacing: .8px;
        line-height: 1.2;
    }


    .vj-card-title {
        font-size: 12px;
        line-height: 1.25;
        min-height: 30px;
        overflow-wrap: anywhere;
    }


    .vj-meta {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 2px;
        font-size: 8px;
        line-height: 1.3;
    }


    .vj-price-row {
        gap: 4px;
        margin-top: 1px;
    }

    .vj-price {
        font-size: 13px;
    }

    .vj-old-price {
        font-size: 9px;
    }

    .vj-discount {
        font-size: 8px;
    }


    /* =====================================================
       MOBILE CARD BUTTONS
       CHECKOUT TOP
       VIEW BELOW
       ===================================================== */

    .vj-card-actions {
        width: 100%;
        display: flex;
        flex-direction: column;
        gap: 5px;
        padding-top: 5px;
        margin-top: auto;
    }

    .vj-card-actions .vj-btn {
        width: 100%;
        min-width: 0;
        min-height: 34px;
        height: auto;
        padding: 7px 5px;
        font-size: 8px;
        line-height: 1.2;
        letter-spacing: .04em;
        white-space: nowrap;
    }


    /* summary */
    .vj-summary {
        margin-top: 18px;
    }

    .vj-summary-line {
        font-size: 11px;
        padding: 6px 0;
    }

    .vj-summary-total {
        font-size: 14px;
        padding-top: 9px;
    }

    .vj-summary-actions {
        min-width: 0;
        gap: 7px;
    }

    .vj-summary-actions .vj-btn {
        width: 100%;
        min-height: 40px;
        font-size: 9px;
        padding: 9px 10px;
    }

    .vj-note {
        font-size: 8px;
        line-height: 1.4;
    }
}


/* =========================================================
   SMALL PHONE
   ========================================================= */

@media (max-width: 420px) {

    .vj-page {
        padding-left: 8px;
        padding-right: 8px;
        padding-top: 20px;
    }

    .vj-page-head {
        margin-bottom: 15px;
    }

    .vj-page-head h1 {
        font-size: 25px;
    }

    .vj-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 7px;
    }

    .vj-card {
        border-radius: 7px;
    }

    .vj-card-body {
        padding: 7px 6px 8px;
        gap: 4px;
    }

    .vj-card-title {
        font-size: 11px;
        line-height: 1.2;
        min-height: 27px;
    }

    .vj-card-cat {
        font-size: 6.5px;
    }

    .vj-meta {
        font-size: 7px;
    }

    .vj-price {
        font-size: 12px;
    }

    .vj-card-actions {
        gap: 4px;
        padding-top: 4px;
    }

    .vj-card-actions .vj-btn {
        min-height: 31px;
        padding: 6px 3px;
        font-size: 7px;
    }

    .vj-remove {
        width: 24px;
        height: 24px;
        font-size: 12px;
    }

    .vj-badge {
        font-size: 6px;
        padding: 3px 5px;
    }
}


/* =========================================================
   VERY SMALL PHONE
   ========================================================= */

@media (max-width: 360px) {

    .vj-page {
        padding-left: 6px;
        padding-right: 6px;
    }

    .vj-grid {
        gap: 6px;
    }

    .vj-card-body {
        padding: 6px 5px 7px;
    }

    .vj-card-title {
        font-size: 10px;
    }

    .vj-meta {
        font-size: 6.5px;
    }

    .vj-price {
        font-size: 11px;
    }

    .vj-card-actions .vj-btn {
        min-height: 29px;
        font-size: 6.5px;
        padding-left: 2px;
        padding-right: 2px;
    }

    .vj-summary-line {
        font-size: 10px;
    }

    .vj-summary-total {
        font-size: 12px;
    }
}


/* =========================================================
   PREVENT LONG TEXT FROM BREAKING MOBILE LAYOUT
   ========================================================= */

.vj-card-title,
.vj-card-cat,
.vj-meta,
.vj-price-row,
.vj-summary,
.vj-summary-line,
.vj-summary-total,
.vj-note {
    overflow-wrap: anywhere;
    word-break: break-word;
}


/* =========================================================
   TOUCH DEVICES
   Remove hover movement that can cause visual shifting
   ========================================================= */

@media (hover: none) {

    .vj-card:hover {
        transform: none;
    }

    .vj-remove:hover {
        background: rgba(23, 18, 15, .72);
    }
}


/* =========================================================
   LANDSCAPE PHONE
   ========================================================= */

@media (max-width: 850px) and (orientation: landscape) {

    .vj-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 9px;
    }

    .vj-card-actions {
        flex-direction: column;
        gap: 4px;
    }

    .vj-card-title {
        font-size: 11px;
    }

    .vj-card-body {
        padding: 8px;
    }
}









/* Product code shown directly below price on every product card. */
.product-card-code {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 6px;
    margin-bottom: 8px;
    font-size: 12px;
    line-height: 1.4;
}

.product-card-code span {
    color: #777;
    font-weight: 500;
}

.product-card-code strong {
    color: #17120f;
    font-weight: 600;
    letter-spacing: 0.8px;
}


/* ==============================
   COOKIE CONSENT
================================ */

.cookie-consent {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 99999;

    background: #9f1239;
    color: #f7f0e8;

    padding: 18px 7%;
    box-shadow: 0 -5px 25px rgba(0, 0, 0, 0.25);

    display: none;
}

.cookie-consent.show {
    display: block;
}

.cookie-content {
    max-width: 1400px;
    margin: 0 auto;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
}

.cookie-text {
    flex: 1;
}

.cookie-text h3 {
    margin: 0 0 6px;
    font-size: 18px;
    font-weight: 600;
}

.cookie-text p {
    margin: 0;
    font-size: 13px;
    line-height: 1.6;
    color: #ddd2c8;
}

.cookie-text a {
    color: #fff;
    text-decoration: underline;
}

.cookie-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
}

.cookie-btn {
    min-width: 100px;
    height: 42px;
    padding: 0 20px;

    border-radius: 4px;
    cursor: pointer;

    font-size: 14px;
    font-weight: 500;

    transition: all 0.2s ease;
}

.cookie-deny {
    background: transparent;
    color: #f7f0e8;
    border: 1px solid rgba(247, 240, 232, 0.5);
}

.cookie-deny:hover {
    background: rgba(255, 255, 255, 0.08);
}

.cookie-accept {
    background: #f7f0e8;
    color: #17120f;
    border: 1px solid #f7f0e8;
}

.cookie-accept:hover {
    background: #fff;
}

.cookie-btn:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 3px;
}


/* Mobile */
@media (max-width: 700px) {
    .cookie-consent {
        padding: 18px 20px;
    }

    .cookie-content {
        flex-direction: column;
        align-items: stretch;
        gap: 16px;
    }

    .cookie-text h3 {
        font-size: 17px;
    }

    .cookie-text p {
        font-size: 12px;
    }

    .cookie-actions {
        width: 100%;
    }

    .cookie-btn {
        flex: 1;
        min-width: 0;
    }
}



