/* ==========================================================
   THE WEBBED VAULT
   MAIN STYLESHEET
========================================================== */

/* ==========================================================
   GOOGLE FONT
========================================================== */

@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap");

/* ==========================================================
   CSS VARIABLES
========================================================== */

:root{

    /* Colours */
    --background:#070707;
    --background-light:#101010;

    --card:#151515;
    --card-hover:#1d1d1d;

    --border:rgba(255,255,255,.08);
    --border-hover:#2563eb;

    --blue:#2563eb;
    --blue-light:#3b82f6;

    --red:#d11f39;

    --white:#ffffff;

    --grey:#9ca3af;
    --light-grey:#d1d5db;

    --success:#22c55e;
    --warning:#facc15;

    /* Shadows */
    --shadow-small:0 8px 20px rgba(0,0,0,.25);
    --shadow-medium:0 15px 35px rgba(0,0,0,.35);
    --shadow-large:0 25px 60px rgba(37,99,235,.20);

    /* Radius */
    --radius-small:12px;
    --radius-medium:18px;
    --radius-large:26px;
    --radius-pill:999px;

    /* Container */
    --container:1400px;

    /* Transition */
    --transition:.35s ease;

}

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

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

*::before,
*::after{
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
    scroll-padding-top:120px;
}

body{
    font-family:"Poppins",sans-serif;
    background:var(--background);
    color:var(--white);
    overflow-x:hidden;
    min-height:100vh;
    line-height:1.6;
}

/* ==========================================================
   GLOBAL
========================================================== */

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

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

button{
    font:inherit;
    cursor:pointer;
    border:none;
    outline:none;
}

input{
    font:inherit;
    outline:none;
}

textarea{
    font:inherit;
    outline:none;
}

select{
    font:inherit;
    outline:none;
}

ul,
ol{
    list-style:none;
}

main{
    width:100%;
}

section{
    position:relative;
    padding:120px 8%;
}

section::before{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    background:
        radial-gradient(
            circle at top,
            rgba(37,99,235,.025),
            transparent 55%
        );
}

.container{
    width:min(var(--container),100%);
    margin-inline:auto;
}

/* ==========================================================
   TYPOGRAPHY
========================================================== */

h1{
    font-size:clamp(3.5rem,8vw,6.8rem);
    font-weight:800;
    line-height:1;
}

h2{
    font-size:clamp(2rem,5vw,3rem);
    font-weight:700;
}

h3{
    font-size:1.35rem;
    font-weight:600;
}

p{
    color:var(--light-grey);
}

/* ==========================================================
   SECTION TITLES
========================================================== */

.section-title{
    text-align:center;
    margin-bottom:70px;
}

.section-subtitle{
    display:inline-block;
    margin-bottom:15px;
    padding:8px 18px;

    color:var(--blue-light);
    font-size:.9rem;
    font-weight:700;
    letter-spacing:3px;
    text-transform:uppercase;

    background:rgba(37,99,235,.08);
    border:1px solid rgba(37,99,235,.18);
    border-radius:999px;
}

.section-title h2{
    margin-bottom:18px;
    letter-spacing:-1px;
    text-shadow:0 8px 30px rgba(37,99,235,.15);
}

.section-title p{
    max-width:700px;
    margin-inline:auto;
}

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

.primary-btn,
.secondary-btn{
    display:inline-flex;
    justify-content:center;
    align-items:center;
    gap:10px;

    padding:18px 40px;

    border-radius:var(--radius-pill);

    font-weight:700;

    transition:var(--transition);
}

/* Primary */

.primary-btn{
    position:relative;
    overflow:hidden;
    isolation:isolate;

    background:#22c55e;
    color:#fff;
}

.primary-btn::before{
    content:"";
    position:absolute;
    top:0;
    left:-100%;

    width:50%;
    height:100%;

    background:linear-gradient(
        120deg,
        transparent,
        rgba(255,255,255,.18),
        transparent
    );

    transition:left .6s ease;

    pointer-events:none;
    z-index:0;
}

.primary-btn>*{
    position:relative;
    z-index:1;
}

.primary-btn:hover{
    background:#16a34a;
    transform:translateY(-2px);
}

/* Secondary */

.secondary-btn{
    background:#dc2626;
    color:#fff;

    border:2px solid var(--blue);
}

.secondary-btn:hover{

    background:var(--red);

    border-color:var(--red);

    color:#fff;

    transform:translateY(-2px);
}


/* ==========================================================
   ANNOUNCEMENT BAR
========================================================== */

.announcement-bar{
    background:linear-gradient(90deg,var(--blue),var(--red));
    text-align:center;
    padding:12px;
    font-size:14px;
    font-weight:600;
    letter-spacing:.5px;
}

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

.header{
    position:sticky;
    top:0;
    z-index:999;
}

/* ==========================================================
   NAVBAR
========================================================== */

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

    gap:35px;

    width:100%;
    padding:20px 70px;

    background:#0d0d0d;

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

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

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

.logo{
    display:flex;
    align-items:center;
    flex-shrink:0;
}

.logo img{
    display:block;

    width:170px;
    height:auto;

    transition:
        transform .35s ease,
        opacity .35s ease;
}

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


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

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

    flex:1;
    max-width:340px;

    background:#171717;

    border:1px solid #252525;
    border-radius:999px;

    overflow:hidden;

    transition:.3s ease;
}

.nav-search:hover{
    border-color:var(--blue);
    box-shadow:0 0 25px rgba(37,99,235,.20);
}

.nav-search input{
    flex:1;

    padding:14px 18px;

    border:none;
    outline:none;

    background:transparent;

    color:#fff;
    font-size:15px;
}

.nav-search input::placeholder{
    color:#888;
}

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

    width:54px;
    height:54px;

    border:none;

    background:none;

    color:#fff;

    cursor:pointer;

    transition:.3s ease;
}

.nav-search button:hover{
    color:var(--blue);
}

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

.nav-links{
    display:flex;
    align-items:center;
    gap:28px;

    list-style:none;
}

.nav-links a{
    position:relative;

    color:var(--white);

    font-weight:600;

    transition:color .3s ease;
}
 

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

    position:absolute;

    left:0;
    bottom:-8px;

    width:0;
    height:2px;

    background:var(--blue);

    transition:width .3s ease;
}

.nav-links a:hover{
    color:var(--blue);
}

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

/* ==========================================================
   NAV ICONS
========================================================== */

.nav-icons{
    display:flex;
    align-items:center;
    gap:18px;
}

.nav-icons a{
    position:relative;

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

    width:48px;
    height:48px;

    color:#fff;

    font-size:1.15rem;

    transition:.35s ease;
}

.nav-icons a i{

    display:block;

    line-height:1;

    transform:translateY(0);

}

/* Fix Account Icon */


.nav-icons a:hover{

    color:var(--blue);

    transform:translateY(-3px);

}


#wishlistCount,
#cartCount{

    position:absolute;

    top:-6px;
    right:-6px;

    width:20px;
    height:20px;

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

    border-radius:50%;

    background:var(--red);

    color:#fff;

    font-size:.7rem;
    font-weight:700;

}

/* ==========================================================
   MOBILE NAV PLACEHOLDERS
========================================================== */

.menu-toggle,
.mobile-menu,
.menu-overlay{
    display:none;
}

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

.menu-toggle{
    display:none;

    width:48px;
    height:48px;

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

    border:none;
    border-radius:12px;

    background:#171717;

    color:#fff;
    font-size:1.3rem;

    cursor:pointer;

    transition:.35s ease;
}

.menu-toggle:hover{
    background:var(--blue);
}

.menu-overlay{
    position:fixed;
    inset:0;

    background:rgba(0,0,0,.65);

    opacity:0;
    visibility:hidden;

    transition:.35s ease;

    z-index:998;
}

.menu-overlay.active{
    opacity:1;
    visibility:visible;
}

.mobile-menu{
    position:fixed;

    top:0;
    right:-320px;

    width:320px;
    max-width:90%;

    height:100vh;

    padding:90px 30px 40px;

    background:#111;

    display:flex;
    flex-direction:column;
    gap:18px;

    transition:.35s ease;

    z-index:999;
}

.mobile-menu.active{
    right:0;
}

.mobile-menu a{
    padding:14px 0;

    color:#fff;

    font-weight:600;

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

    transition:.3s;
}

.mobile-menu a:hover{
    color:var(--blue);
    padding-left:10px;
}

.mobile-icons{
    display:flex;
    gap:15px;

    margin-top:25px;
}

.mobile-icons a{
    width:48px;
    height:48px;

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

    border-radius:50%;

    background:#171717;

    color:#fff;

    transition:.3s;
}

.mobile-icons a:hover{
    background:var(--blue);
}

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

.hero{
    position:relative;

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

    min-height:100vh;

    padding:140px 8% 100px;

    overflow:hidden;

    text-align:center;

    background:
        linear-gradient(
            rgba(5,8,15,.78),
            rgba(5,8,15,.88)
        ),
        url("Images/Hero/Hero.webp") center/cover no-repeat;
}

.hero-overlay{
    position:absolute;
    inset:0;

    background:
        radial-gradient(
            circle at top,
            rgba(37,99,235,.18),
            transparent 60%
        );

    pointer-events:none;
}

.hero-content{
    position:relative;
    z-index:2;

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

    margin:0 auto;
}

.hero-tag{
    display:inline-flex;
    align-items:center;
    justify-content:center;

    padding:10px 22px;

    margin-bottom:28px;

    border-radius:999px;

    background:rgba(37,99,235,.12);

    border:1px solid rgba(37,99,235,.25);

    color:var(--blue-light);

    font-size:.9rem;
    font-weight:700;

    letter-spacing:2px;

    text-transform:uppercase;
}

.hero h1{
    margin-bottom:28px;

    text-transform:uppercase;

    letter-spacing:-2px;
}

.hero-description{
    max-width:700px;

    margin:0 auto 42px;

    font-size:1.15rem;
    line-height:1.8;

    color:var(--light-grey);
}

.hero-buttons{

    display:flex;

    justify-content:center;

    align-items:center;

    flex-wrap:wrap;

    gap:18px;

    margin-top:35px;
}

.hero-scroll{
    position:absolute;

    left:50%;
    bottom:35px;

    transform:translateX(-50%);

    z-index:2;
}

.hero-scroll a{
    display:flex;
    justify-content:center;
    align-items:center;

    width:52px;
    height:52px;

    border-radius:50%;

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

    color:#fff;

    transition:.35s ease;
}

.hero-scroll a:hover{
    background:var(--blue);

    transform:translateY(6px);
}

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

.hero-content > *{
    opacity:0;
    transform:translateY(35px);
    animation:heroFade .8s ease forwards;
}

.hero-tag{
    animation-delay:.1s;
}

.hero h1{
    animation-delay:.25s;
}

.hero-description{
    animation-delay:.4s;
}

.hero-buttons{
    animation-delay:.55s;
}

.hero-scroll{
    animation:heroScroll 2s ease-in-out infinite;
}

@keyframes heroFade{

    from{
        opacity:0;
        transform:translateY(35px);
    }

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

}

@keyframes heroScroll{

    0%,
    100%{
        transform:translateX(-50%) translateY(0);
    }

    50%{
        transform:translateX(-50%) translateY(10px);
    }

}

/* ==========================================================
   FEATURED PRODUCTS
========================================================== */

.featured-products{
    background:var(--background);
}

.products,
.products-grid{

    display:grid;

    grid-template-columns:
        repeat(auto-fit,minmax(300px,1fr));

    gap:32px;

    align-items:stretch;
}

.product{
    position:relative;

    display:flex;
    flex-direction:column;

    height:100%;

    overflow:hidden;

    background:var(--card);

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

    border-radius:24px;

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

.product:hover{

    transform:translateY(-10px);

    border-color:var(--blue);

    box-shadow:
        0 20px 45px rgba(0,0,0,.35);
}

.product::before{
    content:"";

    position:absolute;
    inset:0;

    background:
        linear-gradient(
            135deg,
            rgba(37,99,235,.06),
            transparent 45%
        );

    opacity:0;

    transition:.35s ease;

    pointer-events:none;
}

.product:hover::before{
    opacity:1;
}

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

.product-content{
    display:flex;
    flex-direction:column;
    flex:1;

    padding:28px;
}

.product-content h3{
    margin-bottom:12px;

    font-size:1.35rem;
    font-weight:700;

    line-height:1.4;
}

.product-content h3 a{
    color:var(--white);

    transition:.3s ease;
}

.product-content h3 a:hover{
    color:var(--blue);
}

/* ==========================================================
   PRICE
========================================================== */

.price{
    margin-bottom:22px;

    color:var(--blue-light);

    font-size:1.55rem;

    font-weight:800;

    letter-spacing:-.5px;
}

/* ==========================================================
   ADD TO CART BUTTON
========================================================== */

.full-cart-btn{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:10px;

    width:100%;

    margin-top:auto;

    padding:16px 20px;

    border:none;
    border-radius:14px;

    background:var(--blue);

    color:#fff;

    font-size:.95rem;
    font-weight:700;

    cursor:pointer;

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

.full-cart-btn:hover{
    background:var(--blue-light);

    transform:translateY(-2px);

    box-shadow:0 12px 24px rgba(37,99,235,.30);
}

.full-cart-btn i{
    font-size:1rem;
}

/* ==========================================================
   NEW DROPS
========================================================== */

.new-drops{
    position:relative;

    background:
        linear-gradient(
            180deg,
            rgba(255,255,255,.015),
            transparent
        );
}

.new-drops .section-title{
    margin-bottom:70px;
}

.new-drops .products{
    margin-top:10px;
}

/* ==========================================================
   SHOP BY CATEGORY
========================================================== */

.categories{
    position:relative;

    background:var(--background);
}

.category-grid{
    display:grid;

    grid-template-columns:
        repeat(
            auto-fit,
            minmax(220px,1fr)
        );

    gap:28px;
}

.category-card{
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;

    min-height:220px;

    padding:35px 25px;

    text-align:center;

    background:var(--card);

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

    border-radius:22px;

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

.category-card:hover{

    transform:translateY(-10px);

    border-color:var(--blue);

    box-shadow:
        0 18px 40px rgba(0,0,0,.35);
}

.category-card span{
    display:flex;
    justify-content:center;
    align-items:center;

    width:80px;
    height:80px;

    margin-bottom:22px;

    border-radius:50%;

    background:rgba(37,99,235,.10);

    font-size:2.5rem;
}

.category-card h3{
    margin-bottom:10px;

    color:var(--white);

    font-size:1.3rem;
    font-weight:700;
}

.category-card small{
    color:var(--grey);

    font-size:.9rem;
}

.category-card.disabled{
    opacity:.65;

    cursor:not-allowed;
}

.category-card.disabled:hover{
    transform:none;

    border-color:var(--border);

    box-shadow:none;
}

/* ==========================================================
   FOLLOW US
========================================================== */

.social-section{
    position:relative;

    background:linear-gradient(
        180deg,
        transparent,
        rgba(255,255,255,.015)
    );
}

.social-grid{
    display:grid;

    grid-template-columns:
        repeat(
            auto-fit,
            minmax(180px,1fr)
        );

    gap:24px;
}

.social-card{
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;

    min-height:200px;

    padding:35px 20px;

    text-align:center;

    background:var(--card);

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

    border-radius:22px;

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

.social-card:hover{

    transform:translateY(-10px);

    border-color:var(--blue);

    box-shadow:
        0 18px 40px rgba(37,99,235,.18);
}

.social-card i{

    margin-bottom:20px;

    color:var(--blue);

    font-size:3rem;

    transition:
        transform .35s ease,
        color .35s ease;
}

.social-card:hover i{

    transform:scale(1.1);

    color:var(--blue-light);
}

.social-card h3{
    color:var(--white);

    font-size:1.2rem;
    font-weight:700;
}

/* ==========================================================
   WHY CHOOSE US
========================================================== */

.why-us{
    position:relative;

    background:var(--background);
}

.why-grid{
    display:grid;

    grid-template-columns:
        repeat(
            auto-fit,
            minmax(260px,1fr)
        );

    gap:30px;
}

.why-card{
    display:flex;
    flex-direction:column;
    align-items:center;

    padding:40px 30px;

    text-align:center;

    background:var(--card);

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

    border-radius:24px;

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

.why-card:hover{

    transform:translateY(-8px);

    border-color:var(--blue);

    box-shadow:
        0 20px 40px rgba(0,0,0,.35);
}

.why-icon{
    display:flex;
    justify-content:center;
    align-items:center;

    width:90px;
    height:90px;

    margin-bottom:24px;

    border-radius:50%;

    background:rgba(37,99,235,.10);

    font-size:2.8rem;
}

.why-card h3{
    margin-bottom:14px;

    color:var(--white);

    font-size:1.35rem;
    font-weight:700;
}

.why-card p{
    color:var(--light-grey);

    line-height:1.8;
}

/* ==========================================================
   CUSTOMER REVIEWS
========================================================== */

.reviews{
    position:relative;

    background:
        linear-gradient(
            180deg,
            rgba(255,255,255,.015),
            transparent
        );
}

.review-grid{
    display:grid;

    grid-template-columns:
        repeat(
            auto-fit,
            minmax(320px,1fr)
        );

    gap:30px;
}

.review-card{
    display:flex;
    flex-direction:column;

    height:100%;

    padding:35px;

    background:var(--card);

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

    border-radius:24px;

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

.review-card:hover{

    transform:translateY(-8px);

    border-color:var(--blue);

    box-shadow:
        0 18px 40px rgba(0,0,0,.35);
}

.stars{
    margin-bottom:20px;

    color:#facc15;

    font-size:1.25rem;

    letter-spacing:3px;
}

.review-card p{
    flex:1;

    margin-bottom:24px;

    color:var(--light-grey);

    line-height:1.8;

    font-style:italic;
}

.review-card h4{
    color:var(--white);

    font-size:1rem;

    font-weight:700;
}

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

.footer{
    position:relative;

    padding:90px 8% 40px;

    background:#0b0b0b;

    border-top:1px solid var(--border);
}

.footer-grid{
    display:grid;

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

    gap:50px;

    margin-bottom:50px;
}

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

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

.footer-column h3{
    margin-bottom:22px;

    color:var(--white);

    font-size:1.15rem;
    font-weight:700;
}

.footer-column p{
    color:var(--grey);

    line-height:1.8;
}

.footer-column a{
    margin-bottom:12px;

    color:var(--grey);

    transition:.3s ease;
}

.footer-column a:hover{
    color:var(--blue);

    padding-left:6px;
}

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

.footer-logo{
    width:180px;

    margin-bottom:24px;
}

.footer-logo img{

    display:block;

    width:170px;
    height:auto;

    transition:transform .35s ease;
}

.footer-logo:hover img{

    transform:scale(1.03);
}
/* ==========================================================
   FOOTER SOCIALS
========================================================== */

.footer-socials{
    display:flex;
    flex-wrap:wrap;

    gap:14px;

    margin:24px 0;
}

.footer-socials a{
    display:flex;
    justify-content:center;
    align-items:center;

    width:48px;
    height:48px;

    border-radius:50%;

    background:#171717;

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

    color:var(--white);

    font-size:1.1rem;

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

.footer-socials a:hover{
    background:var(--blue);

    border-color:var(--blue);

    transform:translateY(-4px);
}

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

.footer-email{
    margin-top:20px;

    color:var(--light-grey);

    font-weight:600;

    word-break:break-word;
}

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

.footer-bottom{
    display:flex;
    justify-content:space-between;
    align-items:center;
    flex-wrap:wrap;

    gap:20px;

    padding-top:30px;

    margin-top:30px;

    border-top:1px solid var(--border);
}

.footer-bottom p{
    color:var(--grey);

    font-size:.9rem;
}

.footer-bottom a{
    color:var(--grey);

    transition:.3s ease;
}

.footer-bottom a:hover{
    color:var(--blue);
}

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

.shop-header{
    position:relative;

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

    min-height:auto;

    padding:90px 8% 70px;

    text-align:center;

    overflow:hidden;

    background:
        linear-gradient(
            rgba(5,8,15,.82),
            rgba(5,8,15,.90)
        ),
        url("Images/Hero/Hero.webp")
        center/cover
        no-repeat;
}

.shop-header::before{
    content:"";

    position:absolute;
    inset:0;

    background:
        radial-gradient(
            circle at top,
            rgba(37,99,235,.15),
            transparent 65%
        );

    pointer-events:none;
}

.shop-header-content{
    position:relative;

    z-index:2;

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

    margin:0 auto;
}

.shop-header h1{
    margin:22px 0;

    letter-spacing:-1px;
}

.shop-header p{
    max-width:700px;

    margin:0 auto;

    color:var(--light-grey);

    font-size:1.1rem;

    line-height:1.8;
}


/* ==========================================================
   BREADCRUMB
========================================================== */

.breadcrumb{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:12px;

    margin-bottom:22px;

    font-size:.95rem;
}

.breadcrumb a{
    color:var(--grey);

    transition:.3s ease;
}

.breadcrumb a:hover{
    color:var(--blue);
}

.breadcrumb span{
    color:var(--light-grey);
}

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

.shop-toolbar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    flex-wrap:wrap;

    gap:25px;

    padding:30px 8%;
}

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

.shop-search{
    display:flex;
    align-items:center;

    flex:1;
    min-width:280px;
    max-width:520px;

    padding:0 20px;

    background:var(--card);

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

    border-radius:16px;

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

.shop-search:hover,
.shop-search:focus-within{

    border-color:var(--blue);

    box-shadow:
        0 0 18px rgba(37,99,235,.18);
}

.shop-search i{
    margin-right:16px;
    color:var(--grey);
}

.shop-search input{

    flex:1;

    padding:18px 0;

    border:none;
    outline:none;

    background:transparent;

    color:var(--white);

    font-size:1rem;
}

.shop-search input::placeholder{
    color:var(--grey);
}

/* ==========================================================
   RESULTS BAR
========================================================== */

.results-bar{

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

    padding:0 8% 30px;
}

.results-bar p{

    color:var(--light-grey);

    font-size:.95rem;
}

.results-bar strong{

    color:var(--blue);

    font-weight:700;
}

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

.shop-sort{
    display:flex;
    align-items:center;
    gap:14px;
}

.shop-sort label{

    color:var(--light-grey);

    font-weight:600;
}

.shop-sort select{

    min-width:220px;

    padding:14px 18px;

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

    border-radius:12px;

    background:var(--card);

    color:var(--white);

    font-size:.95rem;

    cursor:pointer;

    transition:.3s ease;
}

.shop-sort select:hover,
.shop-sort select:focus{

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

.shop-search{

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

.shop-search:focus-within{

    transform:translateY(-2px);
}
/* ==========================================================
   LOAD MORE
========================================================== */

.load-more-section{

    text-align:center;

    padding:20px 8% 100px;
}

.load-more-btn{

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

    padding:18px 40px;

    border:none;

    border-radius:999px;

    background:var(--blue);

    color:#fff;

    font-weight:700;

    transition:.3s ease;
}

.load-more-btn:hover{

    background:var(--blue-light);

    transform:translateY(-3px);

    box-shadow:
        0 15px 35px rgba(37,99,235,.25);
}

/* ==========================================================
   EMPTY PRODUCTS
========================================================== */

.no-products{

    grid-column:1 / -1;

    text-align:center;

    padding:80px 20px;

    color:var(--light-grey);
}

.no-products h3{

    margin-bottom:12px;

    color:var(--white);
}
/* ==========================================================
   PRODUCT PAGE
========================================================== */

.product-page{
    display:grid;

    grid-template-columns:
        minmax(420px,1fr)
        minmax(420px,1fr);

    gap:70px;

    align-items:start;

    padding:100px 8%;
}

/* ==========================================================
   PRODUCT GALLERY
========================================================== */

.product-gallery{
    position:sticky;
    top:120px;
}
/* ==========================================================
   PRODUCT IMAGE WRAPPER
========================================================== */

.product-image-wrapper{
    position:relative;

    overflow:hidden;

    background:
        radial-gradient(
            circle at center,
            rgba(37,99,235,.10),
            transparent 70%
        ),
        linear-gradient(
            180deg,
            #111,
            #181818
        );
}

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

.product-image{
    display:flex;
    justify-content:center;
    align-items:center;

    height:420px;

    padding:35px;
}

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

    object-fit:contain;

    filter:
        drop-shadow(
            0 25px 35px rgba(0,0,0,.45)
        );

    transition:.45s ease;
}
.main-product-image:hover img{

    transform:scale(1.02);

    filter:
        drop-shadow(
            0 30px 40px rgba(0,0,0,.45)
        );
}

.product-card-video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* ==========================================================
   PRODUCT WISHLIST BUTTON
========================================================== */

.wishlist-floating{

    position:absolute;

    top:18px;
    right:18px;

    width:46px;
    height:46px;

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

    border:none;
    border-radius:50%;

    background:rgba(20,20,20,.75);

    backdrop-filter:blur(10px);

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

    color:#fff;

    cursor:pointer;

    z-index:20;

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

.wishlist-floating:hover{

    background:var(--red);

    border-color:var(--red);

    transform:scale(1.08);
}

.wishlist-floating.active{

    background:var(--red);

    border-color:var(--red);

    color:#fff;
}

.wishlist-floating i{

    font-size:1rem;

    pointer-events:none;
}

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

.product-wishlist{

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

    width:56px;
    height:56px;

    border:none;
    border-radius:50%;

    background:rgba(20,20,20,.85);

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

    color:#fff;

    cursor:pointer;

    transition:.3s ease;
}

.product-wishlist:hover{

    background:var(--red);

    border-color:var(--red);

    transform:scale(1.08);
}

.product-wishlist.active{

    background:var(--red);

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

.product-wishlist i{

    font-size:1.1rem;

    pointer-events:none;
}


/* ==========================================================
   PRODUCT WISHLIST BUTTON
========================================================== */

.wishlist-btn{

    width:52px;
    height:52px;

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

    border:none;
    border-radius:50%;

    background:rgba(20,20,20,.75);

    backdrop-filter:blur(10px);

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

    color:#fff;

    cursor:pointer;

    transition:.35s ease;
}

.wishlist-btn i{

    font-size:1.15rem;

    transition:.3s ease;
}

.wishlist-btn:hover{

    background:var(--red);

    border-color:var(--red);

    transform:translateY(-3px);
}

.wishlist-btn.active{

    background:var(--red);

    border-color:var(--red);
}
/* ==========================================================
   PRODUCT BADGE
========================================================== */

.product-badge{
    position:absolute;

    top:18px;
    left:18px;

    z-index:5;

    padding:8px 16px;

    border-radius:999px;

    background:var(--blue);

    color:#fff;

    font-size:.75rem;
    font-weight:700;

    letter-spacing:1px;

    text-transform:uppercase;

    box-shadow:0 10px 20px rgba(37,99,235,.25);
}

/* ==========================================================
   PRODUCT THUMBNAILS
========================================================== */

.thumbnails{
    display:grid;

    grid-template-columns:
        repeat(auto-fit,minmax(90px,1fr));

    gap:16px;

    margin-top:22px;
}

.thumbnails img{
    width:100%;
    aspect-ratio:1;

    object-fit:cover;

    border:2px solid transparent;

    border-radius:14px;

    cursor:pointer;

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

.thumbnails img:hover,
.thumbnails img.active{
    border-color:var(--blue);

    transform:translateY(-2px);
}

/* ==========================================================
   PRODUCT INFORMATION
========================================================== */

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

.product-info h1{
    margin:20px 0 18px;

    color:var(--white);

    font-size:clamp(2.2rem,4vw,3.4rem);

    line-height:1.2;
}

.product-price{
    margin-bottom:28px;

    color:var(--blue);

    font-size:2rem;
    font-weight:800;
}

.product-description{
    margin-bottom:35px;

    color:var(--light-grey);

    font-size:1.05rem;

    line-height:1.9;
}

/* ==========================================================
   PRODUCT ACTIONS
========================================================== */

.product-actions{
    display:flex;
    align-items:center;
    gap:18px;

    margin-bottom:40px;
}

.product-actions .primary-btn{
    flex:1;

    justify-content:center;
}


.product-wishlist{
    position:absolute;

    top:18px;
    right:18px;

    width:46px;
    height:46px;

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

    border-radius:50%;

    background:rgba(20,20,20,.75);

    backdrop-filter:blur(10px);

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

    color:#fff;

    z-index:5;

    transition:.3s ease;
}

.product-wishlist:hover{

    background:var(--red);

    color:#fff;

    transform:scale(1.08) rotate(8deg);
}

/* ==========================================================
   PRODUCT FEATURES
========================================================== */

.product-features{
    margin-bottom:40px;
}

.product-features h3{
    margin-bottom:18px;

    color:var(--white);

    font-size:1.3rem;
    font-weight:700;
}

.product-features ul{
    display:flex;
    flex-direction:column;

    gap:14px;
}

.product-features li{
    position:relative;

    padding-left:28px;

    color:var(--light-grey);

    line-height:1.8;
}

.product-features li::before{
    content:"✓";

    position:absolute;

    left:0;
    top:0;

    color:var(--blue);

    font-weight:700;
}

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

.product-info-box{
    display:flex;
    flex-direction:column;

    gap:18px;
}

.info-item{
    display:flex;
    align-items:flex-start;

    gap:18px;

    padding:22px;

    background:var(--card);

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

    border-radius:18px;

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

.info-item:hover{

    transform:translateY(-5px);

    border-color:var(--blue);

    box-shadow:
        0 18px 40px rgba(37,99,235,.18);
}

.info-item i{
    margin-top:2px;

    color:var(--blue);

    font-size:1.4rem;
}

.info-item h4{
    margin-bottom:6px;

    color:var(--white);

    font-size:1rem;
    font-weight:700;
}

.info-item p{
    color:var(--light-grey);

    line-height:1.7;
}



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

.cart-layout{
    display:grid;

    grid-template-columns:
        minmax(0,2fr)
        minmax(320px,420px);

    gap:40px;

    align-items:start;

    padding:80px 8%;
}

.cart-container{
    background:var(--card);

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

    border-radius:24px;

    padding:30px;

    min-height:420px;
}

.cart-items,
.wishlist-items{
    display:flex;
    flex-direction:column;

    gap:20px;
}

.cart-summary{
    position:sticky;

    top:120px;

    padding:30px;

    background:var(--card);

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

    border-radius:24px;
}

.cart-summary h2{
    margin-bottom:30px;
}

.cart-summary h2{
    margin-bottom:30px;
}

.cart-summary h2{
    margin-bottom:30px;
}
/* ==========================================================
   CART / WISHLIST ITEMS
========================================================== */

.cart-item{
    display:grid;

    grid-template-columns:130px 1fr;

    gap:24px;

    align-items:center;

    padding:24px;

    background:var(--card);

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

    border-radius:20px;

    margin-bottom:20px;
}

.cart-item img{
    width:130px;
    height:130px;

    object-fit:contain;

    background:#111;

    border-radius:14px;

    padding:10px;

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

    flex-shrink:0;
}

.cart-info{
    display:flex;
    flex-direction:column;

    gap:14px;
}

.cart-info h3{
    margin:0;

    font-size:1.4rem;

    color:var(--white);
}

.cart-info h3 a{
    color:inherit;
}

.cart-info p{
    margin:0;

    color:var(--blue);

    font-size:1.2rem;

    font-weight:700;
}

.wishlist-actions{
    display:flex;

    flex-wrap:wrap;

    gap:14px;

    margin-top:8px;
}

.wishlist-actions button{
    display:inline-flex;
    align-items:center;
    justify-content:center;

    gap:8px;

    padding:14px 22px;

    border:none;

    border-radius:999px;

    cursor:pointer;

    font-weight:600;

    transition:.3s ease;
}

.move-to-cart{
    background:var(--blue);

    color:#fff;
}

.remove-item{
    background:#d62828;

    color:#fff;
}

.move-to-cart:hover,
.remove-item:hover{
    transform:translateY(-2px);
}

.empty-cart{
    text-align:center;

    padding:80px 20px;
}

.empty-cart i{
    font-size:3rem;

    color:var(--blue);

    margin-bottom:20px;
}

.empty-cart h2{
    margin-bottom:14px;
}

.continue-shopping{
    display:inline-flex;
    align-items:center;
    justify-content:center;

    margin-top:24px;

    padding:16px 30px;

    border-radius:999px;

    background:var(--blue);

    color:#fff;

    font-weight:700;
}
/* ==========================================================
   SUMMARY
========================================================== */

.summary-row{
    display:flex;
    justify-content:space-between;
    align-items:center;

    margin-bottom:18px;

    color:var(--light-grey);
}

.total-row{
    margin-top:22px;

    padding-top:22px;

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

    font-size:1.2rem;

    font-weight:700;
}

.payment-icons{

    display:flex;

    justify-content:center;

    flex-wrap:wrap;

    gap:18px;

    margin:30px 0;

    font-size:2rem;

    color:var(--grey);
}

.cart-guarantees{
    display:flex;
    flex-direction:column;

    gap:14px;

    margin-top:25px;
}

.cart-guarantees p{
    color:var(--light-grey);
}


/* ==========================================================
   ACCOUNT PAGE
========================================================== */

.account-page{
    padding:80px 8%;
}

.account-hero{
    text-align:center;

    max-width:700px;

    margin:0 auto 70px;
}

.account-avatar{

    width:110px;
    height:110px;

    margin:0 auto 30px;

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

    border-radius:50%;

    background:
        linear-gradient(
            135deg,
            var(--blue),
            var(--blue-light)
        );

    color:#fff;

    font-size:2.8rem;

    box-shadow:
        0 20px 45px rgba(37,99,235,.25);
}

.account-grid{
    display:grid;

    grid-template-columns:
        repeat(
            auto-fit,
            minmax(280px,1fr)
        );

    gap:30px;
}

.account-card{
    padding:40px 30px;

    text-align:center;

    background:var(--card);

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

    border-radius:22px;

    transition:.35s ease;
}

.account-card:hover{

    transform:translateY(-10px);

    border-color:var(--blue);

    box-shadow:
        0 20px 45px rgba(37,99,235,.18);
}

.account-icon{

    width:70px;
    height:70px;

    margin:0 auto 24px;

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

    border-radius:50%;

    background:rgba(37,99,235,.10);

    color:var(--blue);

    font-size:1.8rem;
}

/* ==========================================================
   CONTACT
========================================================== */

.contact-section{
    padding:90px 8%;
}

.contact-grid{
    display:grid;

    grid-template-columns:
        minmax(320px,1fr)
        minmax(420px,1.2fr);

    gap:50px;
}

.contact-info{
    display:flex;
    flex-direction:column;

    gap:25px;
}

.contact-item{
    display:flex;

    gap:18px;

    padding:22px;

    background:var(--card);

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

    border-radius:18px;
}

.contact-item:hover{

    transform:translateY(-6px);

    border-color:var(--blue);

    box-shadow:
        0 18px 40px rgba(37,99,235,.18);
}

.contact-item i{

    width:52px;
    height:52px;

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

    border-radius:50%;

    background:rgba(37,99,235,.10);

    color:var(--blue);

    font-size:1.25rem;

    flex-shrink:0;
}

.contact-form{
    padding:35px;

    background:var(--card);

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

    border-radius:24px;
}

/* ==========================================================
   CONTACT SOCIAL LINKS
========================================================== */

.social-links{
    display:flex;
    flex-wrap:wrap;

    gap:16px;

    margin-top:30px;
}

.social-links a{
    display:flex;
    justify-content:center;
    align-items:center;

    width:52px;
    height:52px;

    border-radius:50%;

    background:var(--card);

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

    color:var(--white);

    font-size:1.2rem;

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

.social-links a:hover{
    background:var(--blue);

    border-color:var(--blue);

    color:#fff;

    transform:translateY(-4px);
}

/* ==========================================================
   FORMS
========================================================== */

.form-group{
    display:flex;
    flex-direction:column;

    margin-bottom:22px;
}

.form-group label{
    margin-bottom:8px;

    color:var(--white);

    font-size:.95rem;
    font-weight:600;
}

.form-group input,
.form-group textarea,
.form-group select{
    width:100%;

    padding:16px 18px;

    background:#161616;

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

    border-radius:14px;

    color:var(--white);

    font-family:inherit;
    font-size:1rem;

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

.form-group input::placeholder,
.form-group textarea::placeholder{
    color:var(--grey);
}

.form-group textarea{
    resize:vertical;

    min-height:180px;
}

.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus{
    outline:none;

    border-color:var(--blue);

    box-shadow:0 0 0 4px rgba(37,99,235,.15);
}

.form-group input:disabled,
.form-group textarea:disabled,
.form-group select:disabled{
    opacity:.6;

    cursor:not-allowed;
}

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

.account-btn,
.btn-primary{
    display:inline-flex;
    justify-content:center;
    align-items:center;
    gap:10px;

    padding:18px 40px;

    border-radius:var(--radius-pill);

    background:var(--blue);

    color:#fff;

    font-weight:700;

    transition:var(--transition);
}

.account-btn:hover,
.btn-primary:hover{

    background:var(--blue-light);

    transform:translateY(-3px);

    box-shadow:
        0 15px 35px rgba(37,99,235,.25);
}
/* ==========================================================
   PAGE HEADER
========================================================== */

.page-header{
    text-align:center;

    max-width:850px;

    margin:0 auto;

    padding:90px 8% 70px;
}

.page-header h1{
    margin:20px 0;
}

.page-header p{
    max-width:700px;

    margin:0 auto;

    color:var(--light-grey);

    line-height:1.8;
}

/* ==========================================================
   FEATURES
========================================================== */

.features-grid{

    display:grid;

    grid-template-columns:
        repeat(auto-fit,minmax(260px,1fr));

    gap:30px;
}

.feature-card{

    padding:35px;

    text-align:center;

    background:var(--card);

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

    border-radius:22px;

    transition:.35s ease;
}

.feature-card:hover{

    transform:translateY(-10px);

    border-color:var(--blue);

    box-shadow:
        0 20px 45px rgba(37,99,235,.20);
}

.feature-card i{

    margin-bottom:24px;

    color:var(--blue);

    font-size:3rem;

    transition:
        color .35s ease,
        transform .35s ease;
}

.feature-card:hover i{

    color:var(--blue-light);

    transform:scale(1.08);
}

/* ==========================================================
   CTA SECTION
========================================================== */

.cta-section{
    padding:100px 8%;

    text-align:center;
}

.cta-content{
    max-width:760px;

    margin:0 auto;

    padding:60px 40px;

    background:linear-gradient(
        135deg,
        rgba(37,99,235,.08),
        rgba(15,23,42,.95)
    );

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

    border-radius:28px;
}

.cta-content h2{
    margin:18px 0;
}

.cta-content p{
    max-width:620px;

    margin:0 auto 35px;

    color:var(--grey);
}

/* ==========================================================
   TOAST NOTIFICATIONS
========================================================== */

.toast{

    position:fixed;

    bottom:30px;
    right:30px;

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

    padding:16px 24px;

    border-radius:14px;

    background:rgba(17,17,17,.96);

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

    color:#fff;

    font-weight:600;

    box-shadow:
        0 20px 45px rgba(0,0,0,.35);

    opacity:0;

    transform:
        translateY(25px);

    transition:
        opacity .3s ease,
        transform .3s ease;

    z-index:99999;

    pointer-events:none;
}

.toast.show{

    opacity:1;

    transform:
        translateY(0);
}

/* ==========================================================
   RESPONSIVE
========================================================== */

/* ==========================================================
   DESKTOP DEFAULT
========================================================== */

.menu-toggle,
.mobile-menu,
.menu-overlay{
    display:none;
}

/* ==========================================================
   LARGE LAPTOP
========================================================== */

@media (max-width:1200px){

    section{
        padding:90px 6%;
    }

    .navbar{
        padding:20px 6%;
    }

    .hero,
    .shop-header{
        padding:130px 6% 90px;
    }

    .product-page{
        gap:50px;
    }

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

}

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

@media (max-width:992px){

    .nav-search,
    .nav-links{
        display:none;
    }

    .menu-toggle{
        display:flex;
        align-items:center;
        justify-content:center;
    }

    .mobile-menu,
    .menu-overlay{
        display:block;
    }

    .navbar{
        padding:24px 6%;
        min-height:105px;
    }

    .logo img{
        width:145px;
    }

    .product-page{
        grid-template-columns:1fr;
        gap:60px;
    }

    .product-gallery{
        position:relative;
        top:0;
    }

    .cart-layout,
    .contact-grid{
        grid-template-columns:1fr;
    }

    .account-grid{
        grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    }

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

}

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

@media (max-width:768px){
    

    .currency-button{
    min-width:72px;

    height:38px;

    padding:0 9px;

    font-size:.78rem;
}

.currency-menu{
    right:-10px;
}

    section{
        padding:80px 20px;
    }

    .navbar{
        padding:28px 20px;
        min-height:115px;
        gap:18px;
    }

    .logo img{
        width:150px;
    }

    .hero{
        min-height:85vh;
        padding:120px 20px 80px;
    }

    .hero-buttons{
        flex-direction:column;
        width:100%;
    }

    .hero-buttons .primary-btn,
    .hero-buttons .secondary-btn{
        width:100%;
        justify-content:center;
    }

    .products,
    .products-grid,
    .category-grid,
    .social-grid,
    .why-grid,
    .review-grid,
    .features-grid{
        grid-template-columns:1fr;
    }

    .product{
        border-radius:24px;
    }

    .product-image{
        height:300px;
        padding:30px;
    }

    .product-content{
        padding:28px;
    }

    .product-content h3{
        font-size:1.45rem;
        margin-bottom:12px;
    }

    .price{
        font-size:1.9rem;
    }

    .full-cart-btn{
        padding:16px;
        border-radius:14px;
    }

    .wishlist-floating{
        width:42px;
        height:42px;
    }

    .shop-toolbar{
        flex-direction:column;
        align-items:stretch;
    }

    .shop-search{
        max-width:none;
    }

    .shop-sort{
        width:100%;
    }

    .shop-sort select{
        width:100%;
    }

    .product-page{
        gap:40px;
    }

    .main-product-image{
        min-height:500px;
    }

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

}

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

@media (max-width:576px){



    h1{
        font-size:2.3rem;
    }

    h2{
        font-size:1.9rem;
    }

    section{
        padding:70px 20px;
    }

    .announcement-bar{
        font-size:.8rem;
    }

    .navbar{
        min-height:110px;
        padding:24px 18px;
    }

    .logo img{
        width:135px;
    }

    .main-product-image{
        min-height:420px;
        padding:20px;
    }

    .product-image{
        height:260px;
    }

    .product-content{
        padding:22px;
    }

    .cart-summary,
    .contact-form,
    .account-card{
        padding:24px;
    }

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

}



/* ==========================================================
   CURRENCY SELECTOR
========================================================== */

.currency-selector{
    position:relative;
    display:flex;
    align-items:center;
}

.currency-button{
    display:flex;
    align-items:center;
    justify-content:center;

    gap:7px;

    min-width:82px;
    height:40px;

    padding:0 12px;

    background:var(--card) !important;
    color:#fff !important;

    border:1px solid var(--border);
    border-radius:10px;

    font-family:inherit;
    font-size:.85rem;
    font-weight:600;

    cursor:pointer;

    box-shadow:none;

    transition:.3s ease;
}

.currency-button:hover{
    background:rgba(37,99,235,.10) !important;

    border-color:var(--blue);

    color:#fff !important;
}

.currency-button i{
    font-size:.65rem;

    color:#fff;

    transition:.3s ease;
}

.currency-selector.active .currency-button i{
    transform:rotate(180deg);
}

/* ==========================================================
   CURRENCY DROPDOWN
========================================================== */

.currency-menu{
    position:absolute;

    top:calc(100% + 10px);
    right:0;

    min-width:135px;

    padding:8px;

    background:var(--card) !important;

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

    border-radius:12px;

    box-shadow:0 15px 35px rgba(0,0,0,.45);

    opacity:0;
    visibility:hidden;

    transform:translateY(-8px);

    transition:.25s ease;

    z-index:9999;
}

.currency-selector.active .currency-menu{
    opacity:1;
    visibility:visible;

    transform:translateY(0);
}

.currency-menu button{
    display:block;

    width:100%;

    padding:10px 12px;

    border:0;

    border-radius:8px;

    background:transparent !important;

    color:#fff !important;

    font-family:inherit;

    font-size:.85rem;

    font-weight:500;

    text-align:left;

    cursor:pointer;

    transition:.25s ease;
}

.currency-menu button:hover{
    background:rgba(37,99,235,.15) !important;

    color:var(--blue-light) !important;
}

.currency-menu button.active{
    background:rgba(37,99,235,.18) !important;

    color:var(--blue-light) !important;
}

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

@media (max-width:768px){

    .currency-button{
        min-width:72px;
        height:38px;

        padding:0 9px;

        font-size:.78rem;
    }

    .currency-menu{
        right:-10px;
    }

}

@media (max-width:576px){

    .currency-button{
        min-width:68px;

        font-size:.75rem;
    }

}

/* ==========================================================
   PRODUCT CARD IMAGE SIZING + MOBILE 2-COLUMN GRID
========================================================== */

/* ----------------------------------------------------------
   PRODUCT CARD IMAGE AREA
   Makes every product-card image the exact same size
---------------------------------------------------------- */

.product .product-image-wrapper {
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    position: relative;
}


/* ----------------------------------------------------------
   PRODUCT CARD IMAGE
---------------------------------------------------------- */

.product .product-image {
    width: 100%;
    height: 100%;
    padding: 20px;

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

    overflow: hidden;
}


/* ----------------------------------------------------------
   PRODUCT CARD PHOTOS
---------------------------------------------------------- */

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

    object-fit: contain;

    display: block;
}


/* ----------------------------------------------------------
   PRODUCT CARD VIDEOS
---------------------------------------------------------- */

.product .product-image .product-card-video {
    width: 100%;
    height: 100%;

    object-fit: cover;

    display: block;
}

/* ==========================================================
   PRODUCT CARD VIDEO — HOVER TO PLAY
========================================================== */

.product .product-image {
    position: relative;
    overflow: hidden;
}

.product .product-card-image,
.product .product-card-video {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.product .product-card-video {
    position: absolute;
    inset: 0;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease;
}

/* Show video when hovering the product card */
.product:hover .product-card-video {
    opacity: 1;
}



/* ==========================================================
   MOBILE — 2 PRODUCTS SIDE BY SIDE
========================================================== */

@media (max-width: 768px) {

    .products,
    .products-grid {

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

        gap: 16px;

    }


    /* Keep image boxes identical */

    .product .product-image-wrapper {

        aspect-ratio: 1 / 1;

    }


    .product .product-image {

        height: 100%;

        padding: 12px;

    }


    /* Smaller card content so 2 cards fit nicely */

    .product-content {

        padding: 16px;

    }


    .product-content h3 {

        font-size: 1rem;

        line-height: 1.35;

        margin-bottom: 8px;

    }


    .price {

        font-size: 1.2rem;

        margin-bottom: 14px;

    }


    .full-cart-btn {

        padding: 12px 8px;

        font-size: .8rem;

        gap: 6px;

        border-radius: 12px;

    }


    .wishlist-floating {

        width: 36px;

        height: 36px;

        top: 10px;

        right: 10px;

    }

}


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

@media (max-width: 576px) {

    .products,
    .products-grid {

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

        gap: 12px;

    }


    .product .product-image {

        padding: 8px;

    }


    .product-content {

        padding: 13px;

    }


    .product-content h3 {

        font-size: .9rem;

    }


    .price {

        font-size: 1.05rem;

    }


    .full-cart-btn {

        padding: 11px 6px;

        font-size: .75rem;

    }


    .wishlist-floating {

        width: 32px;

        height: 32px;

        top: 8px;

        right: 8px;

    }

}

/* ==========================================================
   PRODUCT PAGE GALLERY — CONSISTENT IMAGE SIZING
   This only affects the individual product page.
   It does NOT affect product cards.
========================================================== */


/* ----------------------------------------------------------
   MAIN PRODUCT IMAGE AREA
---------------------------------------------------------- */

.product-gallery .main-product-image {

    width: 100%;

    height: 620px;

    display: flex;

    align-items: center;

    justify-content: center;

    overflow: hidden;

    position: relative;

}


/* ----------------------------------------------------------
   EVERY MAIN PRODUCT PHOTO
---------------------------------------------------------- */

.product-gallery .main-product-image img {

    width: 100%;

    height: 100%;

    object-fit: contain;

    object-position: center;

    display: block;

}


/* ----------------------------------------------------------
   THUMBNAIL BOXES
   Every thumbnail is exactly the same size.
---------------------------------------------------------- */

.product-gallery .thumbnails {

    display: grid;

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

    gap: 16px;

    margin-top: 22px;

}


/* ----------------------------------------------------------
   EVERY THUMBNAIL
---------------------------------------------------------- */

.product-gallery .thumbnails img {

    width: 100%;

    aspect-ratio: 1 / 1;

    height: auto;

    object-fit: contain;

    object-position: center;

    display: block;

}


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

@media (max-width: 992px) {

    .product-gallery .main-product-image {

        height: 550px;

    }

}


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

@media (max-width: 768px) {

    .product-gallery .main-product-image {

        height: 460px;

    }


    .product-gallery .thumbnails {

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

        gap: 10px;

    }

}


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

@media (max-width: 576px) {

    .product-gallery .main-product-image {

        height: 400px;

    }


    .product-gallery .thumbnails {

        gap: 8px;

    }

}

/* ==========================================================
   MOBILE HAMBURGER — BIGGER
========================================================== */

@media (max-width: 768px) {

    .menu-toggle {

        width: 52px;
        height: 52px;

        display: flex;

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

        font-size: 1.65rem;

        padding: 0;

        flex-shrink: 0;

    }

}


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

@media (max-width: 576px) {

    .menu-toggle {

        width: 48px;
        height: 48px;

        font-size: 1.5rem;

    }

}

/* ==========================================================
   FINAL MOBILE FIX — NAVBAR
========================================================== */

@media (max-width: 768px){

    html,
    body{
        width:100%;
        max-width:100%;
        overflow-x:hidden;
    }

    .navbar{
        width:100%;
        max-width:100%;
        box-sizing:border-box;

        padding:16px 10px;
        min-height:82px;

        gap:6px;

        justify-content:space-between;

        overflow:visible;
    }

    /* ------------------------------------------------------
       LOGO
    ------------------------------------------------------ */

    .navbar .logo{
        flex:0 1 auto;
        min-width:0;
        max-width:92px;

        overflow:hidden;
    }

    .navbar .logo img{
        display:block;
        width:92px;
        max-width:100%;
        height:auto;
    }

    /* ------------------------------------------------------
       HIDE DESKTOP SEARCH + LINKS
    ------------------------------------------------------ */

    .navbar .nav-search,
    .navbar .nav-links{
        display:none !important;
    }

    /* ------------------------------------------------------
       MOBILE ICON GROUP
    ------------------------------------------------------ */

    .navbar .nav-icons{
        display:flex;
        align-items:center;
        justify-content:flex-end;

        gap:3px;

        flex:1 1 auto;
        min-width:0;
    }

    /* ------------------------------------------------------
       CURRENCY
    ------------------------------------------------------ */

    .navbar .currency-selector{
        flex-shrink:1;
        min-width:0;
    }

    .navbar .currency-button{
        min-width:60px;
        width:auto;

        height:38px;

        padding:0 6px;

        gap:4px;

        font-size:.7rem;

        white-space:nowrap;
    }

    .navbar .currency-button i{
        font-size:.55rem;
    }

    /* ------------------------------------------------------
       WISHLIST / ACCOUNT / CART
    ------------------------------------------------------ */

    .navbar .nav-icons > a{
        width:36px;
        height:36px;

        flex:0 0 36px;

        font-size:1rem;
    }

    /* ------------------------------------------------------
       COUNTERS
    ------------------------------------------------------ */

    .navbar #wishlistCount,
    .navbar #cartCount{
        width:17px;
        height:17px;

        top:-3px;
        right:-3px;

        line-height:17px;

        font-size:.6rem;
    }

    /* ------------------------------------------------------
       HAMBURGER
    ------------------------------------------------------ */

    .navbar .menu-toggle{
        display:flex;
        align-items:center;
        justify-content:center;

        width:42px;
        height:42px;

        flex:0 0 42px;

        padding:0;
        margin:0;

        font-size:1.3rem;

        border-radius:12px;
    }

}


/* ==========================================================
   FINAL MOBILE MENU — SHEIN STYLE
========================================================== */

@media (max-width:992px){

    .mobile-menu{

        position:fixed;

        top:0;
        right:-100%;

        width:min(360px,88vw);
        max-width:none;

        height:100dvh;

        box-sizing:border-box;

        padding:24px 24px 30px;

        margin:0;

        background:#111;

        display:flex;
        flex-direction:column;

        gap:0;

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

        z-index:9999;

        transition:right .35s ease;
    }

    .mobile-menu.active{
        right:0;
    }

    /* ------------------------------------------------------
       CLOSE BUTTON
    ------------------------------------------------------ */

    .mobile-menu .menu-close{

        width:44px;
        height:44px;

        flex:0 0 44px;

        margin:0 0 20px auto;

        padding:0;

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

        border:none;
        border-radius:50%;

        background:#1b1b1b;

        color:#fff;

        font-size:1.3rem;

        cursor:pointer;
    }

    /* ------------------------------------------------------
       SEARCH BAR
    ------------------------------------------------------ */

    .mobile-search{

        width:100%;
        height:50px;
        min-height:50px;

        margin:0 0 22px;

        display:flex;
        align-items:center;

        box-sizing:border-box;

        background:#191919;

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

        border-radius:12px;

        overflow:hidden;

        flex:0 0 50px;
    }

    .mobile-search input{

        flex:1 1 auto;

        min-width:0;

        width:100%;
        height:100%;

        padding:0 14px;

        border:none;
        outline:none;

        background:transparent;

        color:#fff;

        font-family:inherit;

        font-size:.9rem;
    }

    .mobile-search input::placeholder{
        color:#888;
    }

    .mobile-search button{

        width:48px;
        height:48px;

        flex:0 0 48px;

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

        padding:0;

        border:none;

        background:transparent;

        color:#fff;

        font-size:1rem;

        cursor:pointer;
    }

        /* ------------------------------------------------------
       VERTICAL MENU LINKS
    ------------------------------------------------------ */

    .mobile-nav-links{

        width:100%;

        display:flex;
        flex-direction:column;

        flex:0 0 auto;

        margin:0;
        padding:0;
    }

    .mobile-nav-links a{

        display:block;

        width:100%;

        box-sizing:border-box;

        padding:14px 4px;

        margin:0;

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

        color:#fff;

        font-size:1rem;

        font-weight:600;

        line-height:1.3;

        text-decoration:none;

        white-space:normal;

        transition:
            color .25s ease,
            padding-left .25s ease;
    }

    .mobile-nav-links a:first-child{

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

    .mobile-nav-links a:hover{

        color:var(--blue-light);

        padding-left:10px;
    }


    /* ------------------------------------------------------
       BOTTOM MOBILE ICONS
    ------------------------------------------------------ */

    .mobile-menu .mobile-icons{

        width:100%;

        margin-top:25px;

        padding-top:22px;

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

        display:flex;

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

        gap:16px;

        flex:0 0 auto;
    }

    .mobile-menu .mobile-icons a{

        width:48px;
        height:48px;

        flex:0 0 48px;

        display:flex;

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

        margin:0;
        padding:0;

        border-radius:50%;

        background:#191919;

        color:#fff;

        font-size:1.15rem;

        text-decoration:none;

        transition:
            background .25s ease,
            color .25s ease,
            transform .25s ease;
    }

    .mobile-menu .mobile-icons a:hover{

        background:var(--blue);

        color:#fff;

        transform:translateY(-2px);
    }

}


/* ==========================================================
   SMALL PHONES — MENU
========================================================== */

@media (max-width:576px){

    .mobile-menu{

        width:min(340px,88vw);

        padding:
            20px
            20px
            25px;
    }

    .mobile-menu .menu-close{

        width:42px;
        height:42px;

        flex-basis:42px;

        margin-bottom:18px;
    }

    .mobile-search{

        height:48px;
        min-height:48px;

        flex-basis:48px;

        margin-bottom:20px;
    }

    .mobile-search button{

        width:48px;
        height:48px;

        flex-basis:48px;
    }

    .mobile-nav-links a{

        padding:13px 4px;

        font-size:.95rem;
    }

    .mobile-menu .mobile-icons{

        margin-top:22px;

        gap:14px;
    }

    .mobile-menu .mobile-icons a{

        width:46px;
        height:46px;

        flex-basis:46px;
    }

}


/* ==========================================================
   MOBILE PRODUCT GRID — TWO SIDE BY SIDE
========================================================== */

@media (max-width:768px){

    .products,
    .products-grid{

        display:grid;

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

        gap:16px;

        width:100%;
    }

    .product{

        width:100%;

        min-width:0;

        box-sizing:border-box;

        border-radius:18px;
    }

    /* ------------------------------------------------------
       PRODUCT IMAGE AREA
    ------------------------------------------------------ */

    .product .product-image-wrapper{

        width:100%;

        aspect-ratio:1 / 1;

        min-width:0;

        overflow:hidden;

        position:relative;
    }

    .product .product-image{

        width:100%;
        height:100%;

        box-sizing:border-box;

        padding:12px;

        display:flex;

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

        overflow:hidden;
    }

    .product .product-image img{

        width:100%;
        height:100%;

        max-width:100%;
        max-height:100%;

        object-fit:contain;

        object-position:center;

        display:block;
    }

    /* Video cards */

    .product .product-image .product-card-video{

        width:100%;
        height:100%;

        object-fit:cover;

        display:block;
    }


    /* ------------------------------------------------------
       PRODUCT CONTENT
    ------------------------------------------------------ */

    .product-content{

        width:100%;

        box-sizing:border-box;

        padding:16px;
    }

    .product-content h3{

        font-size:1rem;

        line-height:1.35;

        margin-bottom:8px;
    }

    .price{

        font-size:1.2rem;

        margin-bottom:14px;
    }

    .full-cart-btn{

        width:100%;

        box-sizing:border-box;

        padding:12px 8px;

        font-size:.8rem;

        gap:6px;

        border-radius:12px;
    }

    .wishlist-floating{

        width:36px;
        height:36px;

        top:10px;
        right:10px;
    }


    /* ------------------------------------------------------
       SMALLER PRODUCT BADGES
    ------------------------------------------------------ */

    .product-badge{

        top:8px;
        left:8px;

        padding:5px 9px;

        max-width:calc(100% - 16px);

        box-sizing:border-box;

        border-radius:999px;

        font-size:.58rem;

        line-height:1.2;

        letter-spacing:.5px;

        white-space:nowrap;

        overflow:hidden;

        text-overflow:ellipsis;
    }

}


/* ==========================================================
   VERY SMALL PHONES — PRODUCT CARDS
========================================================== */

@media (max-width:576px){

    .products,
    .products-grid{

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

        gap:12px;
    }

    .product .product-image{

        padding:8px;
    }

    .product-content{

        padding:13px;
    }

    .product-content h3{

        font-size:.9rem;
    }

    .price{

        font-size:1.05rem;
    }

    .full-cart-btn{

        padding:11px 6px;

        font-size:.75rem;
    }

    .wishlist-floating{

        width:32px;
        height:32px;

        top:8px;
        right:8px;
    }

    .product-badge{

        top:6px;
        left:6px;

        padding:4px 7px;

        font-size:.52rem;

        letter-spacing:.35px;

        max-width:calc(100% - 12px);
    }

}

/* ==========================================================
   FINAL MOBILE CLEANUP
========================================================== */

@media (max-width:768px){

    /* ------------------------------------------------------
       PREVENT ANYTHING FROM PUSHING THE PAGE SIDEWAYS
    ------------------------------------------------------ */

    *,
    *::before,
    *::after{
        box-sizing:border-box;
    }

    html,
    body{
        width:100%;
        max-width:100%;

        margin:0;
        padding:0;

        overflow-x:hidden;
    }


    /* ------------------------------------------------------
       ANNOUNCEMENT BAR
    ------------------------------------------------------ */

    .announcement-bar{

        width:100%;

        box-sizing:border-box;

        padding-left:12px;
        padding-right:12px;

        text-align:center;

        white-space:normal;

        overflow:hidden;

        line-height:1.4;
    }


    /* ------------------------------------------------------
       NAVBAR — FINAL WIDTH SAFETY
    ------------------------------------------------------ */

    .navbar,
    .navbar > *,
    .navbar .nav-icons{

        min-width:0;
    }


    /* ------------------------------------------------------
       HERO / GENERAL CONTENT
    ------------------------------------------------------ */

    .hero,
    .shop-header,
    section{

        max-width:100%;

        box-sizing:border-box;

        overflow:hidden;
    }


    /* ------------------------------------------------------
       PRODUCT CARD SAFETY
    ------------------------------------------------------ */

    .products,
    .products-grid{

        width:100%;

        max-width:100%;

        overflow:visible;
    }

    .product{

        min-width:0;

        max-width:100%;

        overflow:hidden;
    }

    .product-image-wrapper{

        max-width:100%;

        overflow:hidden;
    }

    .product-content{

        min-width:0;

        max-width:100%;

        overflow:hidden;
    }

    .product-content h3,
    .product-content h3 a{

        min-width:0;

        overflow:hidden;

        display:-webkit-box;

        -webkit-box-orient:vertical;

        -webkit-line-clamp:2;
    }


    /* ------------------------------------------------------
       PRODUCT CARD VIDEO
    ------------------------------------------------------ */

    .product-card-video{

        max-width:100%;

        object-fit:cover;
    }


    /* ------------------------------------------------------
       PRODUCT CARD BADGE
    ------------------------------------------------------ */

    .product-badge{

        z-index:5;

        pointer-events:none;
    }


    /* ------------------------------------------------------
       WISHLIST BUTTON
    ------------------------------------------------------ */

    .wishlist-floating{

        z-index:6;

        flex-shrink:0;
    }


    /* ------------------------------------------------------
       BUTTON TEXT
    ------------------------------------------------------ */

    .full-cart-btn{

        min-width:0;

        max-width:100%;

        overflow:hidden;

        white-space:nowrap;

        text-overflow:ellipsis;
    }

}


/* ==========================================================
   SMALL PHONE FINAL ADJUSTMENTS
========================================================== */

@media (max-width:576px){

    .announcement-bar{

        font-size:.75rem;

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


    .navbar{

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


    .products,
    .products-grid{

        width:100%;

        padding-left:0;
        padding-right:0;
    }


    .product-content h3,
    .product-content h3 a{

        font-size:.88rem;
    }

}


/* ==========================================================
   PRODUCT PAGE MOBILE GALLERY
   Keeps the gallery consistent without affecting cards
========================================================== */

@media (max-width:768px){

    .product-gallery .main-product-image{

        width:100%;

        height:460px;

        min-height:0;

        display:flex;

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

        overflow:hidden;
    }

    .product-gallery .main-product-image img{

        width:100%;
        height:100%;

        object-fit:contain;

        object-position:center;

        display:block;
    }


    .product-gallery .thumbnails{

        width:100%;

        display:grid;

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

        gap:10px;

        margin-top:22px;
    }

    .product-gallery .thumbnails img{

        width:100%;

        aspect-ratio:1 / 1;

        height:auto;

        object-fit:contain;

        object-position:center;

        display:block;
    }

}


@media (max-width:576px){

    .product-gallery .main-product-image{

        height:400px;
    }

    .product-gallery .thumbnails{

        gap:8px;
    }

}


/* ==========================================================
   END OF FINAL MOBILE OVERRIDES
========================================================== */

/* ==========================================================
   PRODUCT BADGES — CLEANER / SMALLER
========================================================== */

.product-badge {

    padding: 5px 10px;

    font-size: .62rem;

    line-height: 1.15;

    letter-spacing: .4px;

    border-radius: 999px;

    white-space: nowrap;

    max-width: calc(100% - 20px);

    overflow: hidden;

    text-overflow: ellipsis;

}


/* ----------------------------------------------------------
   MOBILE
---------------------------------------------------------- */

@media (max-width:768px) {

    .product-badge {

        top: 7px;
        left: 7px;

        padding: 4px 7px;

        font-size: .5rem;

        line-height: 1.1;

        letter-spacing: .25px;

        max-width: calc(100% - 14px);

    }

}


/* ----------------------------------------------------------
   VERY SMALL PHONES
---------------------------------------------------------- */

@media (max-width:576px) {

    .product-badge {

        top: 6px;
        left: 6px;

        padding: 3px 6px;

        font-size: .46rem;

        letter-spacing: .15px;

    }

}

/* ==========================================================
   CART QUANTITY CONTROLS — MODERN
   Desktop + Mobile
========================================================== */


/* ----------------------------------------------------------
   QUANTITY WRAPPER
---------------------------------------------------------- */

.quantity {

    display: inline-flex;

    align-items: center;

    width: fit-content;

    height: 42px;

    padding: 3px;

    gap: 0;

    background: #151515;

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

    border-radius: 12px;

    box-sizing: border-box;

}


/* ----------------------------------------------------------
   PLUS / MINUS
---------------------------------------------------------- */

.quantity .minus,
.quantity .plus {

    width: 36px;

    height: 34px;

    min-width: 36px;

    padding: 0;

    margin: 0;

    display: flex;

    align-items: center;

    justify-content: center;

    border: none;

    border-radius: 9px;

    background: transparent;

    color: #fff;

    font-family: inherit;

    font-size: 1.15rem;

    font-weight: 500;

    line-height: 1;

    cursor: pointer;

    transition:
        background .2s ease,
        color .2s ease;

}


/* Hover */

.quantity .minus:hover,
.quantity .plus:hover {

    background: rgba(37,99,235,.15);

    color: var(--blue);

}


/* ----------------------------------------------------------
   NUMBER
---------------------------------------------------------- */

.quantity span {

    min-width: 34px;

    height: 34px;

    display: flex;

    align-items: center;

    justify-content: center;

    color: #fff;

    font-size: .9rem;

    font-weight: 600;

    user-select: none;

}


/* ----------------------------------------------------------
   REMOVE / BIN
---------------------------------------------------------- */

.quantity .remove-item {

    width: 38px;

    height: 38px;

    min-width: 38px;

    margin-left: 10px;

    padding: 0;

    display: flex;

    align-items: center;

    justify-content: center;

    border: 1px solid rgba(214,40,40,.35);

    border-radius: 10px;

    background: rgba(214,40,40,.08);

    color: #e05252;

    font-size: .9rem;

    cursor: pointer;

    transition:
        background .2s ease,
        border-color .2s ease,
        color .2s ease;

}


/* Hover */

.quantity .remove-item:hover {

    background: rgba(214,40,40,.16);

    border-color: rgba(214,40,40,.65);

    color: #ff5c5c;

}


/* ----------------------------------------------------------
   MAKE SURE GENERIC BUTTON STYLES DON'T OVERRIDE IT
---------------------------------------------------------- */

.quantity button {

    box-shadow: none;

    transform: none;

}

.quantity button:hover {

    transform: none;

}


/* ==========================================================
   MOBILE CART QUANTITY
========================================================== */

@media (max-width:768px) {

    .quantity {

        height: 40px;

        padding: 3px;

        border-radius: 11px;

    }


    .quantity .minus,
    .quantity .plus {

        width: 34px;

        height: 32px;

        min-width: 34px;

        font-size: 1.05rem;

    }


    .quantity span {

        min-width: 30px;

        height: 32px;

        font-size: .85rem;

    }


    .quantity .remove-item {

        width: 36px;

        height: 36px;

        min-width: 36px;

        margin-left: 8px;

        border-radius: 9px;

        font-size: .82rem;

    }

}

/* ==========================================================
   MOBILE PRODUCT VIDEO THUMBNAIL
========================================================== */

@media (max-width: 768px) {

    .video-thumbnail {
        position: relative;

        display: block;

        padding: 0;

        overflow: hidden;

        cursor: pointer;

        border: none;

        background: #111;

        appearance: none;
        -webkit-appearance: none;
    }


    .video-thumbnail-preview {
        position: absolute;

        inset: 0;

        width: 100%;
        height: 100%;

        display: block;

        object-fit: cover;

        pointer-events: none;
    }


    .video-thumbnail-icon {
        position: absolute;

        inset: 0;

        display: flex;

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

        pointer-events: none;

        background:
            rgba(0, 0, 0, .12);

        color: #fff;
    }


    .video-thumbnail-icon i {
        width: 34px;
        height: 34px;

        display: flex;

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

        border-radius: 50%;

        background:
            rgba(0, 0, 0, .72);

        font-size: .75rem;

        padding-left: 2px;
    }


    .video-thumbnail.active {
        border: 2px solid var(--blue);
    }

}

/* ==========================================================
   PRODUCT THUMBNAILS — MOBILE TOUCH FIX
========================================================== */

@media (max-width: 768px) {

    .product-gallery .thumbnail {

        cursor: pointer;

        touch-action: manipulation;

        -webkit-tap-highlight-color:
            transparent;

    }

}

/* ==========================================================
   CART + WISHLIST — MOBILE FIX
   Keeps everything compact and properly sized on phones
========================================================== */

@media (max-width: 768px) {

    /* Main cart / wishlist layout */
    .cart-layout {
        display: grid;
        grid-template-columns: 1fr;
        gap: 20px;
        padding: 30px 14px;
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }

    /* Product list container */
    .cart-container {
        width: 100%;
        max-width: 100%;
        padding: 14px;
        min-height: 0;
        box-sizing: border-box;
        border-radius: 18px;
    }

    /* Individual cart/wishlist product */
    .cart-item {
        grid-template-columns: 78px minmax(0, 1fr);
        gap: 14px;
        padding: 14px;
        margin-bottom: 12px;
        border-radius: 16px;
        width: 100%;
        box-sizing: border-box;
    }

    .cart-item img {
        width: 78px;
        height: 78px;
        padding: 6px;
        border-radius: 10px;
    }

    .cart-info {
        min-width: 0;
        gap: 8px;
    }

    .cart-info h3 {
        font-size: 1rem;
        line-height: 1.3;
        overflow-wrap: anywhere;
    }

    .cart-info p {
        font-size: .95rem;
    }

    /* Quantity / action controls */
    .cart-item button,
    .wishlist-actions button {
        max-width: 100%;
        font-size: .8rem;
    }

    /* Summary */
    .cart-summary {
        position: static;
        width: 100%;
        max-width: 100%;
        padding: 18px;
        box-sizing: border-box;
        border-radius: 18px;
    }

    .cart-summary h2 {
        margin-bottom: 18px;
        font-size: 1.3rem;
    }

    .cart-summary .primary-btn,
    .cart-summary .secondary-btn {
        width: 100%;
        box-sizing: border-box;
    }
}


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

@media (max-width: 576px) {

    .cart-layout {
        padding: 22px 10px;
        gap: 16px;
    }

    .cart-container {
        padding: 10px;
        border-radius: 16px;
    }

    .cart-item {
        grid-template-columns: 68px minmax(0, 1fr);
        gap: 11px;
        padding: 11px;
        border-radius: 14px;
    }

    .cart-item img {
        width: 68px;
        height: 68px;
        padding: 5px;
    }

    .cart-info h3 {
        font-size: .9rem;
    }

    .cart-info p {
        font-size: .85rem;
    }

    .cart-summary {
        padding: 15px;
        border-radius: 16px;
    }

    .cart-summary h2 {
        font-size: 1.2rem;
    }
}