/* ============================================================================
   theme.css — ALL THEME STYLES IN ONE PLACE
   ----------------------------------------------------------------------------
   Organized by section so you can find things fast:
     1. Reset & base
     2. Color / font variables
     3. Promo bar
     4. Header (logo, search, cart/wishlist)
     5. Nav row (browse categories + main menu)
     6. Mobile topbar, drawer, search panel, bottom tab bar
     7. Hero slider
     8. Offers ticker
     9. Shop by categories row
    10. Product grid / cards
    11. Footer
   Every page pulls from this single file, so a style change here shows up
   everywhere it's used — no need to hunt through PHP files.
   ========================================================================== */

/* ---------- 1. Reset & base ---------- */
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{margin:0;}
body{
    font-family:'Quantico','Helvetica Neue',Arial,sans-serif;
    color:var(--text-dark);
    display:flex;
    flex-direction:column;
    min-height:100vh;
}
.site-main{flex:1 0 auto;}

/* ---------- 2. Color / font variables ---------- */
:root{
    --wine:#5c1632;
    --wine-dark:#3f0f22;
    --text-dark:#141414;
    --border:#e7e2e4;
    --gray:#6b6b6b;
}


/* ---------- 3. Top announcement bar ---------- */
.announcement-bar{
    position:sticky;
    top:0;
    z-index:110;
    background:var(--wine-dark);
    color:#f4e9ee;
    display:flex;
    align-items:center;
    padding:11px 0;
    font-size:14px;
    font-weight:500;
    letter-spacing:.3px;
    min-height:40px;
    -webkit-transform:translateZ(0);
    transform:translateZ(0); /* keeps the sticky bar correctly painted on load on mobile browsers */
}
.announcement-marquee{
    flex:1;
    overflow:hidden;
}
.announcement-track{
    display:inline-flex;
    width:max-content;
    animation:announcement-scroll 22s linear infinite;
}
.announcement-bar:hover .announcement-track{animation-play-state:paused;}
.announcement-text{
    display:inline-block;
    white-space:nowrap;
    padding-right:64px;
}
@keyframes announcement-scroll{
    0%   {transform:translateX(0);}
    100% {transform:translateX(-50%);}
}
.announcement-bar .announcement-close{
    position:relative;
    flex-shrink:0;
    margin:0 14px 0 10px;
    width:26px; height:26px;
    display:flex; align-items:center; justify-content:center;
    background:rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.18);
    border-radius:50%;
    color:#f4e9ee;
    cursor:pointer;
    opacity:.9;
    transition:background .15s ease, opacity .15s ease, transform .15s ease;
}
.announcement-bar .announcement-close svg{width:13px;height:13px;}
.announcement-bar .announcement-close:hover{
    opacity:1;
    background:rgba(255,255,255,.18);
    transform:scale(1.06);
}

@media (max-width:768px){
    .announcement-bar{
        padding:9px 0;
        font-size:11.5px;
        min-height:34px;
    }
    .announcement-track{animation-duration:18s;}
    .announcement-text{padding-right:32px;}
    .announcement-bar .announcement-close{
        width:22px; height:22px;
        margin:0 10px 0 8px;
    }
    .announcement-bar .announcement-close svg{width:11px;height:11px;}
}

/* ---------- 4. Header top row ---------- */
.site-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:40px;
    padding:26px 48px;
    background:#ffffff;
    border-bottom:1px solid var(--border);
}
.logo{display:flex;align-items:center;text-decoration:none;flex-shrink:0;}
.logo img{height:56px;width:auto;display:block;}

.search-wrap{flex:1;max-width:760px;position:relative;}
.search-wrap input{
    width:100%;
    padding:14px 52px 14px 20px;
    border:none;
    background:#efefef;
    border-radius:12px;
    font-size:15px;
    font-family:'Quantico','Helvetica Neue',Arial,sans-serif;
    outline:none;
}
.search-wrap input::placeholder{color:#8d8d8d;font-family:'Quantico','Helvetica Neue',Arial,sans-serif;}
.search-wrap button{
    position:absolute;
    right:6px; top:50%;
    transform:translateY(-50%);
    background:none;
    border:none;
    cursor:pointer;
    padding:8px;
    color:#3f3f3f;
}
.search-wrap svg{width:18px;height:18px;}

.header-actions{display:flex;align-items:center;gap:34px;flex-shrink:0;}
.header-actions a{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:4px;
    text-decoration:none;
    color:var(--text-dark);
    font-size:14px;
    position:relative;
}
.header-actions svg{width:24px;height:24px;stroke:var(--text-dark);}
.badge{
    position:absolute;
    top:-6px; right:-10px;
    background:var(--wine);
    color:#fff;
    font-size:10px;
    min-width:16px; height:16px;
    border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    padding:0 3px;
}

/* ---------- 5. Nav row ---------- */
.nav-row{
    display:flex;
    align-items:stretch;
    background:#ffffff;
    border-bottom:1px solid var(--border);
    box-shadow:0 2px 6px rgba(0,0,0,.04);
    position:relative;
}
.browse-wrap{position:relative;margin-left:48px;flex-shrink:0;}
.browse-toggle{
    display:flex;
    align-items:center;
    gap:10px;
    height:100%;
    padding:16px 26px;
    background:var(--wine);
    color:#fff;
    border:none;
    border-radius:8px 8px 0 0;
    font-family:'Quantico','Helvetica Neue',Arial,sans-serif;
    font-size:14px;
    font-weight:400;
    letter-spacing:.5px;
    cursor:pointer;
}
.browse-toggle svg{flex-shrink:0;}
.categories-dropdown{
    position:absolute;
    top:100%;
    left:0;
    width:100%;
    min-width:220px;
    background:#fff;
    border:2px solid #b3a8ab;
    border-top:none;
    box-shadow:0 8px 20px rgba(0,0,0,.08);
    display:none;
    flex-direction:column;
    z-index:20;
}
.categories-dropdown.open{display:flex;}
/* Open instantly on hover too — no need to click first on desktop */
.browse-wrap:hover .categories-dropdown{display:flex;}
.categories-dropdown a{
    padding:12px 20px;
    text-decoration:none;
    color:var(--text-dark);
    font-size:14px;
    font-weight:500;
    border-bottom:1px solid var(--border);
}
.categories-dropdown a:last-child{border-bottom:none;}
.categories-dropdown a:hover{background:#f4f1f2;color:var(--wine);}

.main-nav{display:flex;align-items:stretch;margin-left:24px;}
.main-nav a{
    display:flex;
    align-items:center;
    padding:0 20px;
    text-decoration:none;
    color:var(--text-dark);
    font-size:14px;
    font-weight:400;
    letter-spacing:.3px;
    border-bottom:3px solid transparent;
    transition:color .15s ease, border-color .15s ease;
}
.main-nav a:hover,
.main-nav a.active{color:var(--wine);border-bottom-color:var(--wine);}

/* ---------- 6. Mobile topbar, drawer, search panel, bottom nav ---------- */
.mobile-topbar{display:none;}
.mobile-search-panel{display:none;}
.mobile-drawer-overlay{display:none;}
.mobile-drawer{display:none;}

@media (max-width:768px){
    .site-header,.nav-row{display:none;}

    .mobile-topbar{
        display:grid;
        grid-template-columns:1fr auto 1fr;
        align-items:center;
        padding:11px 16px;
        background:#fff;
        border-bottom:1px solid var(--border);
        position:relative;
    }
    .mobile-topbar .side-group{display:flex;align-items:center;gap:14px;}
    .mobile-topbar .side-group:first-child{justify-self:start;}
    .mobile-topbar .side-group:last-child{justify-self:end;}
    .mobile-topbar button{
        background:none;border:none;padding:4px;cursor:pointer;color:var(--text-dark);
    }
    .mobile-topbar svg{width:21px;height:21px;}
    .mobile-topbar a{color:var(--text-dark);display:flex;position:relative;}
    .mobile-logo{justify-self:center;}
    .mobile-logo img{height:31px;width:auto;display:block;}

    .mobile-search-panel{
        display:block;
        flex-shrink:0;
        position:relative;
        max-height:0;
        overflow:hidden;
        background:#fff;
        transition:max-height .25s ease;
    }
    .mobile-search-panel.open{max-height:90px;border-bottom:1px solid var(--border);}
    .mobile-search-panel-inner{
        display:flex;
        align-items:center;
        gap:10px;
        padding:14px 16px;
    }
    .mobile-search-panel input{
        flex:1;
        padding:12px 16px;
        border:none;
        background:#efefef;
        border-radius:10px;
        font-size:14px;
        font-family:'Quantico','Helvetica Neue',Arial,sans-serif;
        outline:none;
    }
    .mobile-search-panel button{
        display:flex;
        align-items:center;
        justify-content:center;
        flex-shrink:0;
        width:36px;height:36px;
        background:#efefef;
        border:none;
        border-radius:50%;
        color:var(--text-dark);
        cursor:pointer;
    }

    .mobile-drawer-overlay{
        display:block;
        position:fixed; inset:0;
        background:rgba(0,0,0,.4);
        opacity:0; pointer-events:none;
        transition:opacity .2s ease;
        z-index:250;
    }
    .mobile-drawer-overlay.open{opacity:1;pointer-events:auto;}

    .mobile-drawer{
        display:flex;
        flex-direction:column;
        position:fixed;
        top:0; bottom:0; left:0;
        width:82%;
        max-width:320px;
        background:#fff;
        transform:translateX(-100%);
        transition:transform .25s ease;
        z-index:260;
    }
    .mobile-drawer.open{transform:translateX(0);}
    .mobile-drawer-head{
        display:flex;
        align-items:center;
        justify-content:space-between;
        padding:18px 18px;
        border-bottom:1px solid var(--border);
    }
    .mobile-drawer-head img{height:34px;width:auto;}
    .mobile-drawer-head button{background:none;border:none;color:var(--text-dark);cursor:pointer;padding:4px;}
    .mobile-drawer-head svg{width:20px;height:20px;}

    .mobile-drawer-nav{display:flex;flex-direction:column;padding:6px 0;flex:1;overflow-y:auto;}
    .mobile-drawer-nav a{
        padding:13px 20px;
        text-decoration:none;
        color:var(--text-dark);
        font-size:14px;
        font-weight:400;
        letter-spacing:.3px;
        border-bottom:1px solid var(--border);
    }
    .mobile-cat-toggle{
        display:flex;
        align-items:center;
        justify-content:space-between;
        width:100%;
        padding:14px 20px;
        background:none;
        border:none;
        border-bottom:1px solid var(--border);
        font-family:'Quantico','Helvetica Neue',Arial,sans-serif;
        font-size:14px;
        font-weight:400;
        letter-spacing:.3px;
        color:var(--text-dark);
        cursor:pointer;
    }
    .mobile-cat-toggle .plus{transition:transform .2s ease;}
    .mobile-cat-toggle.open .plus{transform:rotate(45deg);}
    .mobile-cat-list{
        display:flex;
        flex-direction:column;
        max-height:0;
        overflow:hidden;
        transition:max-height .25s ease;
        background:#faf8f9;
    }
    .mobile-cat-list.open{max-height:400px;}
    .mobile-cat-list a{
        padding:12px 32px;
        text-decoration:none;
        color:var(--text-dark);
        font-size:13.5px;
        border-bottom:1px solid var(--border);
    }
    .mobile-drawer-footer{padding:16px 20px;border-top:1px solid var(--border);}
    .mobile-drawer-footer a{
        display:flex;
        align-items:center;
        gap:10px;
        text-decoration:none;
        color:var(--text-dark);
        font-size:14px;
        font-weight:400;
    }
    .mobile-drawer-footer svg{width:20px;height:20px;}
}

/* ---------- 7. Hero slider ---------- */
.hero-slider{
    position:relative;
    overflow:hidden;
    width:100%;
    background:#f4f1f2;
    touch-action:pan-y;
}
.hero-track{
    display:flex;
    transition:transform .5s cubic-bezier(.22,.68,.32,1);
    will-change:transform;
}
.hero-slide{flex:0 0 100%;min-width:100%;line-height:0;}
.hero-slide img{
    display:block;width:100%;height:auto;
    pointer-events:none;-webkit-user-drag:none;user-select:none;
}
.hero-arrow{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    width:44px;height:44px;
    border:none;
    border-radius:50%;
    background:rgba(20,10,15,.35);
    color:#fff;
    display:flex;align-items:center;justify-content:center;
    cursor:pointer;
    z-index:5;
    transition:background .15s ease;
}
.hero-arrow:hover{background:rgba(20,10,15,.55);}
.hero-arrow svg{width:22px;height:22px;}
.hero-prev{left:16px;}
.hero-next{right:16px;}
.hero-dots{
    position:absolute;
    left:0; right:0; bottom:16px;
    display:flex;align-items:center;justify-content:center;gap:8px;
    z-index:5;
}
.hero-dots button{
    width:8px;height:8px;
    border-radius:50%;
    border:none;
    background:rgba(255,255,255,.55);
    cursor:pointer;padding:0;
    transition:background .2s ease, width .2s ease;
}
.hero-dots button.active{background:#ffffff;width:22px;border-radius:4px;}

@media (max-width:768px){
    .hero-arrow{width:36px;height:36px;}
    .hero-arrow svg{width:18px;height:18px;}
    .hero-prev{left:10px;}
    .hero-next{right:10px;}
    .hero-dots{bottom:10px;}
}

/* ---------- 8. Offers ticker ---------- */
/* HIDDEN FOR NOW (per request) — markup and styles below are untouched,
   just switched off. Remove this one rule to bring it back. */
.offer-ticker-wrap, .usp-mobile-wrap{display:none !important;}

.offer-ticker-wrap{padding:20px 48px 0;}
.offer-ticker{
    position:relative;
    display:flex;
    align-items:center;
    border:1px solid var(--wine);
    border-radius:8px;
    padding:14px 20px;
    overflow:hidden;
    background:#fff9fb;
}
.offer-ticker::before,
.offer-ticker::after{
    content:'';
    position:absolute;
    top:0; bottom:0;
    width:50px;
    z-index:2;
    pointer-events:none;
}
.offer-ticker::before{left:0;background:linear-gradient(to right, #fff9fb 40%, transparent);}
.offer-ticker::after{right:0;background:linear-gradient(to left, #fff9fb 40%, transparent);}
.offer-track{
    display:inline-flex;
    align-items:center;
    gap:16px;
    white-space:nowrap;
    font-size:15px;
    font-weight:600;
    color:#141414;
    font-family:'Quantico','Helvetica Neue',Arial,sans-serif;
    animation:offer-scroll 42s linear infinite;
}
@keyframes offer-scroll{
    0%   {transform:translateX(100%);}
    100% {transform:translateX(-100%);}
}
.offer-icon{width:28px;height:28px;flex-shrink:0;display:block;}
.scrolling-text{display:inline-flex;align-items:center;white-space:nowrap;}
.separator{color:var(--wine);flex-shrink:0;}
.text-green{color:#1e8a3c;}
.text-orange{color:#d9762b;}

/* Mobile-only static USP strip (hidden on desktop) — small single line,
   no marquee/scrolling at all. */
.usp-mobile-wrap{display:none;}

@media (max-width:768px){
    .offer-ticker-wrap{display:none;}

    .usp-mobile-wrap{
        display:block;
        padding:14px 12px 0;
    }
    .usp-mobile{
        display:flex;
        align-items:center;
        justify-content:center;
        gap:4px;
        border:1px solid var(--wine);
        border-radius:8px;
        padding:9px 8px;
        background:#fff9fb;
        font-size:10.5px;
        font-weight:600;
        color:#141414;
        font-family:'Quantico','Helvetica Neue',Arial,sans-serif;
    }
    .usp-mobile-text{
        flex:0 1 auto;
        min-width:0;
        overflow:hidden;
        text-overflow:ellipsis;
        white-space:nowrap;
    }
    .usp-mobile-divider{color:var(--wine);flex-shrink:0;}
    .usp-mobile-badge{width:17px;height:17px;flex-shrink:0;display:block;}
}

/* ---------- 9. Shop by categories row ---------- */
.cat-section{padding:32px 48px 48px;}
.cat-heading{
    text-align:center;
    font-size:26px;
    font-weight:500;
    letter-spacing:.3px;
    color:#141414;
    margin:0 0 24px;
    font-family:'Quantico','Helvetica Neue',Arial,sans-serif;
}
.cat-slider{position:relative;}
.cat-viewport{overflow:hidden;}
.cat-track{
    display:flex;
    justify-content:safe center;
    gap:16px;
    transition:transform .4s cubic-bezier(.22,.68,.32,1);
    touch-action:pan-y;
}
.cat-slide{flex:0 0 calc((100% - 5*16px) / 6);min-width:0;}
.cat-slide a{display:block;text-decoration:none;color:inherit;}
.cat-img-wrap{
    display:block;width:100%;overflow:hidden;
    border-radius:6px;background:#f4f1f2;line-height:0;
    position:relative;
}
.cat-img-wrap img{
    display:block;width:100%;height:auto;
    pointer-events:none;-webkit-user-drag:none;user-select:none;
    transition:opacity .15s ease;
}
.is-cat-loading .cat-img-wrap img{opacity:.45;}
.is-cat-loading .cat-img-wrap::after{
    content:'';
    position:absolute;top:50%;left:50%;
    width:22px;height:22px;margin:-11px 0 0 -11px;
    border:2.5px solid rgba(0,0,0,.15);
    border-top-color:var(--wine-dark,#7a1f2b);
    border-radius:50%;
    animation:catTapSpin .6s linear infinite;
}
@keyframes catTapSpin{to{transform:rotate(360deg);}}
.cat-label{
    display:block;text-align:center;margin-top:10px;
    font-size:14px;font-weight:500;letter-spacing:.3px;
    color:#141414;
    font-family:'Quantico','Helvetica Neue',Arial,sans-serif;
}
.cat-arrow{
    display:flex;
    position:absolute;
    top:calc(50% - 14px);
    transform:translateY(-50%);
    width:40px;height:40px;
    border:1px solid var(--border);
    border-radius:50%;
    background:#ffffff;
    color:#141414;
    align-items:center;justify-content:center;
    cursor:pointer;
    z-index:3;
    transition:background .15s ease, opacity .15s ease;
}
.cat-arrow:hover{background:#f4f1f2;}
.cat-arrow[disabled]{opacity:.35;cursor:default;}
.cat-arrow svg{width:18px;height:18px;}
.cat-prev{left:8px;}
.cat-next{right:8px;}

@media (max-width:768px){
    .cat-section{padding:24px 16px 32px;}
    .cat-heading{font-size:20px;margin-bottom:16px;}
    .cat-track{gap:10px;}
    .cat-slide{flex:0 0 calc((100% - 2*10px) / 3);}
    .cat-label{font-size:11.5px;margin-top:6px;}
    .cat-arrow{width:32px;height:32px;}
    .cat-arrow svg{width:14px;height:14px;}
    .cat-prev{left:4px;}
    .cat-next{right:4px;}
}

/* ---------- 10. Product grid / cards ---------- */
.product-section{padding:8px 12px 48px;}
.product-section-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding-bottom:18px;
    border-bottom:1px solid var(--border);
    margin-bottom:28px;
}
.product-section-head h2{
    margin:0;
    font-size:20px;
    font-weight:700;
    letter-spacing:1px;
    color:var(--wine);
    font-family:'Quantico','Helvetica Neue',Arial,sans-serif;
}
.view-more-btn{
    display:inline-block;
    background:var(--wine-dark);
    color:#ffffff;
    padding:10px 26px;
    border-radius:999px;
    font-size:14px;
    font-weight:600;
    letter-spacing:.3px;
    text-decoration:none;
    font-family:'Quantico','Helvetica Neue',Arial,sans-serif;
    white-space:nowrap;
}
.product-grid{display:grid;grid-template-columns:repeat(4, minmax(0, 1fr));gap:20px;}
.product-card{
    position:relative;
    min-width:0;
    padding:12px;
    border:1px solid var(--border);
    border-radius:10px;
}
.product-img-wrap{
    position:relative;
    display:block;
    border-radius:8px;
    overflow:hidden;
    background:#f4f1f2;
    line-height:0;
}
.product-img-wrap img{display:block;width:100%;height:auto;}
.sale-badge{
    position:absolute;
    top:12px;left:12px;
    background:#2e9e4d;
    color:#ffffff;
    font-size:11px;
    font-weight:700;
    letter-spacing:.5px;
    padding:5px 14px;
    border-radius:999px;
    box-shadow:0 2px 6px rgba(0,0,0,.15);
    z-index:2;
}
.add-to-cart-btn{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    margin-top:12px;
    background:var(--wine-dark);
    color:#ffffff;
    padding:11px 12px;
    border-radius:6px;
    font-size:13px;
    font-weight:600;
    letter-spacing:.3px;
    font-family:'Quantico','Helvetica Neue',Arial,sans-serif;
    text-decoration:none;
    transition:background .15s ease;
}
.add-to-cart-btn:hover{background:var(--wine);}
.add-to-cart-btn svg{width:17px;height:17px;}
.delivery-badge{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    margin-top:10px;
    border:1px solid #b9d4f5;
    background:#eef5ff;
    color:#2f6fed;
    font-size:12px;
    font-weight:700;
    letter-spacing:.2px;
    padding:9px 10px;
    border-radius:6px;
}
.delivery-badge svg{width:13px;height:13px;flex-shrink:0;}
.product-title{
    margin:10px 0 8px;
    font-size:15px;
    font-weight:500;
    color:#141414;
    max-width:100%;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    font-family:'Quantico','Helvetica Neue',Arial,sans-serif;
}
.price-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px;}
.price-final-row{display:contents;}
.save-badge{
    background:#e8f7ec;
    color:#1e8a3c;
    font-size:12px;
    font-weight:700;
    padding:4px 10px;
    border-radius:4px;
    white-space:nowrap;
}
.mrp-price{color:#9a9a9a;text-decoration:line-through;font-size:14px;font-weight:500;}
.final-price{font-weight:700;font-size:18px;color:#141414;}
.size-row{display:flex;gap:8px;}
.size-box{
    border:1px solid #d8d8d8;
    border-radius:4px;
    padding:4px 11px;
    font-size:12px;
    font-weight:600;
    color:#141414;
}

@media (max-width:768px){
    .product-section{padding:4px 16px 32px;}
    .product-section-head{padding-bottom:14px;margin-bottom:18px;}
    .product-section-head h2{font-size:15px;}
    .view-more-btn{padding:8px 18px;font-size:12.5px;}
    .product-grid{grid-template-columns:repeat(2, minmax(0, 1fr));gap:12px;}
    .delivery-badge{font-size:10px;padding:7px 6px;margin-top:8px;gap:4px;}
    .product-title{font-size:12.5px;margin:8px 0 6px;}
    .save-badge{font-size:10px;padding:3px 7px;}
    .price-row{flex-direction:column;align-items:flex-start;gap:6px;}
    .price-final-row{display:flex;align-items:center;gap:8px;}
    .mrp-price{font-size:12px;}
    .final-price{font-size:14px;}
    .size-box{padding:3px 8px;font-size:11px;}
    .product-card{padding:10px;}

    /* SALE badge sits at the bottom-left of the image on mobile */
    .sale-badge{top:auto;bottom:12px;}

    .add-to-cart-btn{padding:10px 12px;font-size:12px;}
    .add-to-cart-btn svg{width:15px;height:15px;}
}

/* ---------- 11. Footer ---------- */
.site-footer{
    background:#F9FAFC;
    padding:48px 48px 24px;
    border-top:3px solid var(--wine-dark);
    font-family:'Quantico','Helvetica Neue',Arial,sans-serif;
}
.footer-top{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:140px;}
.footer-brand{flex:0 0 260px;max-width:280px;}
.footer-brand img{height:44px;width:auto;display:block;margin-bottom:18px;}
.footer-brand p{margin:0;color:#000000;font-weight:500;font-size:14px;letter-spacing:.3px;line-height:1.6;}
.footer-col{flex:0 0 auto;}
.footer-col h4{
    margin:0 0 20px;
    font-size:14px;
    font-weight:500;
    letter-spacing:.3px;
    color:#9c9ca0;
    text-transform:uppercase;
}
.footer-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px;}
.footer-col a{text-decoration:none;color:#000000;font-size:14px;font-weight:500;letter-spacing:.3px;}
.footer-col a:hover{color:var(--wine);}

.footer-wave-wrap{position:relative;line-height:0;margin-top:0;background:#F9FAFC;}
.footer-wave-wrap svg{display:block;width:100%;height:60px;}
.footer-bottom{
    background:var(--wine-dark);
    padding:22px 48px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:16px;
    font-size:14px;
    font-weight:500;
    letter-spacing:.3px;
    color:#e9dde2;
}
.footer-bottom a{color:#ffffff;font-weight:500;text-decoration:underline;}
.footer-madewith{
    display:inline-flex;
    align-items:center;
    gap:8px;
    background:rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.15);
    border-radius:999px;
    padding:8px 18px;
    color:#f4e9ee;
    font-size:14px;
    font-weight:500;
    letter-spacing:.3px;
}
.footer-madewith .dot{width:6px;height:6px;border-radius:50%;background:#8fd694;display:inline-block;}

.footer-mobile-divider{display:none;}
.footer-mobile-links{display:none;}
.mobile-bottom-nav{display:none;}

@media (max-width:768px){
    .site-footer{padding:40px 24px 24px;}
    .footer-top{flex-direction:column;align-items:center;text-align:center;gap:0;}
    .footer-brand{max-width:100%;flex:0 0 auto;}
    .footer-brand img{margin:0 auto 16px;}
    .footer-brand p{font-weight:500;color:#000000;}
    .footer-col{display:none;}

    .footer-mobile-divider{
        display:block;width:100%;max-width:340px;margin:20px auto;
        border:none;border-top:1px solid var(--border);
    }
    .footer-mobile-links{
        display:flex;align-items:center;justify-content:center;
        flex-wrap:wrap;gap:8px;font-size:13px;font-weight:500;
    }
    .footer-mobile-links a{color:#000000;text-decoration:none;}
    .footer-mobile-links span{color:#9c9ca0;}

    .footer-bottom{justify-content:center;text-align:center;}
    .footer-madewith{display:none;}

    /* leave room above the fixed bottom tab bar */
    body{padding-bottom:64px;}

    .mobile-bottom-nav{
        display:flex;
        position:fixed;
        left:0; right:0; bottom:0;
        z-index:150;
        background:#ffffff;
        border-top:1px solid var(--border);
    }
    .mobile-bottom-nav a{
        flex:1;
        display:flex;
        flex-direction:column;
        align-items:center;
        gap:4px;
        padding:10px 4px 12px;
        text-decoration:none;
        color:var(--text-dark);
        font-size:11px;
        font-weight:500;
        font-family:'Quantico','Helvetica Neue',Arial,sans-serif;
    }
    .mobile-bottom-nav svg{width:22px;height:22px;}
    .mobile-bottom-nav a.is-active{color:var(--wine);}
}

/* ---------- 12. Contact Us page ---------- */
.page-banner{
    background:#f2f2f2;
    padding:40px 24px;
    text-align:center;
}
.page-banner h1{
    margin:0 0 8px;
    font-size:32px;
    font-weight:500;
    color:#141414;
    font-family:'Quantico','Helvetica Neue',Arial,sans-serif;
}
.page-banner .breadcrumb{font-size:14px;}
.page-banner .breadcrumb a{color:var(--gray);text-decoration:none;}
.page-banner .breadcrumb a:hover{color:var(--wine);}

.contact-section{
    display:flex;
    align-items:flex-start;
    gap:48px;
    padding:40px 48px;
}
.contact-map{flex:1 1 45%;min-width:0;}
.contact-map iframe{
    width:100%;
    height:600px;
    border-radius:8px;
    display:block;
}
.contact-info{flex:1 1 55%;min-width:0;}
.contact-info-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:28px 48px;
    margin-bottom:24px;
}
.contact-info-grid h3{
    margin:0 0 10px;
    font-size:20px;
    font-weight:500;
    color:#141414;
    font-family:'Quantico','Helvetica Neue',Arial,sans-serif;
}
.contact-info-grid p{margin:0;font-size:15px;color:#3a3a3a;}
.contact-info-grid a{color:#3a3a3a;text-decoration:none;}
.contact-info-grid a:hover{color:var(--wine);}
.contact-social{display:flex;gap:10px;}
.contact-social a{
    width:34px;height:34px;
    border-radius:50%;
    background:var(--wine-dark);
    color:#ffffff;
    display:flex;align-items:center;justify-content:center;
    transition:background .15s ease;
}
.contact-social a:hover{background:var(--wine);}
.contact-intro{
    margin:0 0 28px;
    font-size:15px;
    line-height:1.7;
    color:#3a3a3a;
}
.contact-form-heading{
    margin:0 0 20px;
    font-size:24px;
    font-weight:500;
    color:#141414;
    font-family:'Quantico','Helvetica Neue',Arial,sans-serif;
}
.contact-form label{
    display:block;
    margin-bottom:8px;
    font-size:13px;
    font-weight:600;
    letter-spacing:.2px;
    color:#141414;
}
.contact-form input,
.contact-form textarea{
    width:100%;
    border:1px solid var(--border);
    border-radius:6px;
    padding:13px 14px;
    font-size:14px;
    font-family:'Quantico','Helvetica Neue',Arial,sans-serif;
    color:#141414;
    background:#ffffff;
    outline:none;
    box-sizing:border-box;
}
.contact-form input:focus,
.contact-form textarea:focus{border-color:var(--wine);}
.contact-form textarea{resize:vertical;margin-bottom:20px;}
.form-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:24px;
    margin-bottom:20px;
}
.contact-submit-btn{
    background:var(--wine-dark);
    color:#ffffff;
    border:none;
    padding:14px 36px;
    border-radius:4px;
    font-size:14px;
    font-weight:700;
    letter-spacing:1px;
    cursor:pointer;
    font-family:'Quantico','Helvetica Neue',Arial,sans-serif;
    transition:background .15s ease;
}
.contact-submit-btn:hover{background:var(--wine);}

@media (max-width:768px){
    .page-banner{padding:28px 16px;}
    .page-banner h1{font-size:24px;}

    .contact-section{flex-direction:column;padding:24px 16px;gap:28px;}
    .contact-map iframe{height:280px;}
    .contact-info-grid{grid-template-columns:1fr;gap:20px;}
    .contact-info-grid h3{font-size:16px;}
    .contact-info-grid p{font-size:13.5px;}
    .contact-form-heading{font-size:19px;}
    .form-row{grid-template-columns:1fr;gap:16px;}
}

/* ---------- 13. Order Tracking page ---------- */
.order-tracking-section{
    display:flex;
    justify-content:center;
    padding:56px 24px;
}
.order-tracking-box{width:100%;max-width:620px;}
.order-tracking-intro{
    text-align:center;
    font-size:15px;
    line-height:1.7;
    color:#3a3a3a;
    margin:0 0 36px;
}
.order-tracking-form label{
    display:block;
    margin-bottom:8px;
    font-size:14px;
    font-weight:500;
    color:#141414;
}
.order-tracking-form .input-with-icon{position:relative;margin-bottom:24px;}
.order-tracking-form input{
    width:100%;
    border:1px solid var(--border);
    border-radius:6px;
    padding:14px 46px 14px 16px;
    font-size:14px;
    font-family:'Quantico','Helvetica Neue',Arial,sans-serif;
    color:#141414;
    background:#ffffff;
    outline:none;
    box-sizing:border-box;
}
.order-tracking-form input:focus{border-color:var(--wine);}
.order-tracking-form .input-with-icon svg{
    position:absolute;
    right:14px; top:50%;
    transform:translateY(-50%);
    width:18px;height:18px;
    color:#1e8a6a;
    pointer-events:none;
}
.order-tracking-submit-btn{
    width:100%;
    background:var(--wine-dark);
    color:#ffffff;
    border:none;
    padding:16px;
    border-radius:4px;
    font-size:14px;
    font-weight:700;
    letter-spacing:1px;
    cursor:pointer;
    font-family:'Quantico','Helvetica Neue',Arial,sans-serif;
    transition:background .15s ease;
}
.order-tracking-submit-btn:hover{background:var(--wine);}

@media (max-width:768px){
    .order-tracking-section{padding:32px 16px;}
    .order-tracking-intro{font-size:13.5px;margin-bottom:28px;}
}

/* ---------- 14. My Account page (login / register) ---------- */
.account-section{
    display:flex;
    justify-content:center;
    padding:56px 24px;
}
.account-box{width:100%;max-width:560px;text-align:center;}
.account-heading{
    margin:0 0 4px;
    font-size:28px;
    font-weight:500;
    color:#141414;
    font-family:'Quantico','Helvetica Neue',Arial,sans-serif;
}
.account-subtext{
    margin:0 0 28px;
    font-size:16px;
    color:#3a3a3a;
}
.account-form{
    text-align:left;
    border:1px dashed var(--border);
    border-radius:6px;
    padding:32px;
    box-sizing:border-box;
}
.account-field-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-bottom:8px;
    font-size:14px;
}
.account-field-row label{font-weight:500;color:#141414;}
.account-field-row .req{color:#c0392b;}
.account-remember{display:flex;align-items:center;gap:6px;font-weight:400 !important;cursor:pointer;}
.account-remember input{width:auto;}
.account-lost-link{color:var(--gray);text-decoration:underline;font-size:13px;}
.account-lost-link:hover{color:var(--wine);}

.account-form > label{
    display:block;
    margin-bottom:8px;
    font-size:14px;
    font-weight:500;
    color:#141414;
}
.account-form input[type="text"],
.account-form input[type="email"],
.account-form input[type="tel"],
.account-form input[type="password"]{
    width:100%;
    border:1px solid var(--border);
    border-radius:6px;
    padding:13px 14px;
    font-size:14px;
    font-family:'Quantico','Helvetica Neue',Arial,sans-serif;
    color:#141414;
    background:#ffffff;
    outline:none;
    box-sizing:border-box;
    margin-bottom:20px;
}
.account-form input:focus{border-color:var(--wine);}

/* Checkout form fields never had their own input styling — this is the
   fix for "checkout has no CSS" (theme.css itself was loading fine, but
   nothing styled the actual text/email/tel/textarea/select fields there). */
.checkout-form-col > label,
.checkout-form-col .form-row label{
    display:block;
    margin-bottom:8px;
    font-size:14px;
    font-weight:500;
    color:#141414;
}
.checkout-form-col input[type="text"],
.checkout-form-col input[type="email"],
.checkout-form-col input[type="tel"],
.checkout-form-col textarea{
    width:100%;
    border:1px solid var(--border);
    border-radius:6px;
    padding:13px 14px;
    font-size:14px;
    font-family:'Quantico','Helvetica Neue',Arial,sans-serif;
    color:#141414;
    background:#ffffff;
    outline:none;
    box-sizing:border-box;
    margin-bottom:20px;
}
.checkout-form-col input:focus,
.checkout-form-col textarea:focus{border-color:var(--wine);}
.checkout-form-col textarea{resize:vertical;min-height:70px;}
.req{color:#c0392b;}
.account-form .input-with-icon{position:relative;}
.account-form .input-with-icon input{padding-right:46px;}
.account-form .input-with-icon svg{
    position:absolute;
    right:14px; top:16px;
    width:18px;height:18px;
    color:#1e8a6a;
    pointer-events:none;
}
.account-password-wrap{position:relative;}
.account-password-wrap input{padding-right:46px;}
.account-toggle-pw{
    position:absolute;
    right:12px; top:12px;
    width:22px;height:22px;
    background:none;
    border:none;
    color:var(--gray);
    cursor:pointer;
    padding:0;
}
.account-toggle-pw svg line{transition:opacity .1s ease;}
.account-toggle-pw.is-visible svg line{opacity:0;}
.account-privacy-note{
    font-size:13px;
    line-height:1.6;
    color:var(--gray);
    margin:0 0 20px;
}
.account-privacy-note a{color:var(--text-dark);text-decoration:underline;}
.account-submit-btn{
    width:100%;
    background:var(--wine-dark);
    color:#ffffff;
    border:none;
    padding:15px;
    border-radius:4px;
    font-size:13px;
    font-weight:700;
    letter-spacing:1px;
    cursor:pointer;
    font-family:'Quantico','Helvetica Neue',Arial,sans-serif;
    transition:background .15s ease;
}
.account-submit-btn:hover{background:var(--wine);}
.account-switch{
    text-align:center;
    margin:20px 0 0;
    font-size:14px;
    color:#3a3a3a;
}
.account-switch a{color:var(--text-dark);text-decoration:underline;font-weight:600;}
.account-switch a:hover{color:var(--wine);}

@media (max-width:768px){
    .account-section{padding:32px 16px;}
    .account-heading{font-size:22px;}
    .account-form{padding:20px;}
}

/* ---------- 15. Shop page ---------- */
.shop-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:16px;
    padding:20px 48px;
    border-bottom:1px solid var(--border);
}
.shop-toolbar-left{display:flex;align-items:center;gap:18px;flex-wrap:wrap;font-size:14px;}
.shop-filter-label{display:flex;align-items:center;gap:6px;font-weight:600;color:#141414;}
.shop-filter-label svg{width:16px;height:16px;}
.shop-dropdown{position:relative;}
.shop-dropdown-toggle{
    display:flex;
    align-items:center;
    gap:5px;
    background:none;
    border:none;
    font-size:14px;
    font-family:'Quantico','Helvetica Neue',Arial,sans-serif;
    color:#141414;
    cursor:pointer;
    padding:0;
}
.shop-dropdown-toggle:disabled{color:var(--gray);cursor:not-allowed;}
.shop-dropdown-toggle svg{width:13px;height:13px;}
.shop-dropdown-panel{
    display:none;
    position:absolute;
    top:100%; left:0;
    margin-top:12px;
    min-width:180px;
    background:#fff;
    border:1px solid var(--border);
    border-radius:6px;
    box-shadow:0 8px 20px rgba(0,0,0,.08);
    flex-direction:column;
    z-index:20;
    overflow:hidden;
}
.shop-dropdown-panel.open{display:flex;}
.shop-dropdown-panel a{
    padding:11px 16px;
    font-size:14px;
    color:#141414;
    text-decoration:none;
    border-bottom:1px solid var(--border);
}
.shop-dropdown-panel a:last-child{border-bottom:none;}
.shop-dropdown-panel a:hover{background:#f4f1f2;color:var(--wine);}
.shop-results-count{color:var(--gray);font-size:14px;}

.shop-toolbar-right{display:flex;align-items:center;gap:24px;}
.shop-sort{display:flex;align-items:center;gap:8px;font-size:14px;color:#141414;}
.shop-sort select{
    border:1px solid var(--border);
    border-radius:6px;
    padding:8px 12px;
    font-size:14px;
    font-family:'Quantico','Helvetica Neue',Arial,sans-serif;
    color:#141414;
    background:#fff;
    cursor:pointer;
    outline:none;
}
.shop-grid-view-icons{display:flex;gap:4px;}
.shop-grid-view-icons button{
    width:30px;height:30px;
    display:flex;align-items:center;justify-content:center;
    border:none;
    background:none;
    color:var(--gray);
    cursor:pointer;
    border-radius:4px;
}
.shop-grid-view-icons button svg{width:18px;height:18px;}
.shop-grid-view-icons button:hover{background:#f4f1f2;}
.shop-grid-view-icons button.is-active{color:var(--wine-dark);background:#f4f1f2;}

.shop-product-section{padding-top:24px;}

/* Shop page cards: borderless like the reference — no box around each
   product, just the grid gap for separation. The Add to Cart button stays
   (the reference site doesn't have one, but we're keeping ours). */
.shop-product-section .product-card{
    border:none;
    padding:0 0 18px;
    border-radius:0;
    border-bottom:1px solid var(--border);
}

/* Tighter grid on the shop page (reference keeps products close together,
   not much air between them) */
.shop-product-section .product-grid{gap:14px 18px;}

/* Sale badge on the shop page — a flush corner ribbon instead of the
   floating pill used elsewhere, a bit more distinct/"designed" looking */
.shop-product-section .sale-badge{
    top:0; left:0; bottom:auto;
    padding:6px 16px 6px 12px;
    font-size:10.5px;
    letter-spacing:1px;
    border-radius:0 0 8px 0;
    box-shadow:0 2px 5px rgba(0,0,0,.12);
}

/* Save badge on the shop page — bigger, bolder block like the reference
   (its own clear row above the price, not a small inline chip) */
.shop-product-section .save-badge{
    display:inline-block;
    font-size:13px;
    font-weight:700;
    padding:7px 14px;
    border-radius:6px;
    letter-spacing:.2px;
}
.shop-product-section .price-row{gap:8px;}

/* Grid density variants (toggled by the icons above) */
#shopProductGrid.cols-2{grid-template-columns:repeat(2, minmax(0, 1fr));}
#shopProductGrid.cols-3{grid-template-columns:repeat(3, minmax(0, 1fr));}
#shopProductGrid.cols-4{grid-template-columns:repeat(4, minmax(0, 1fr));}

/* List view */
#shopProductGrid.view-list{display:flex;flex-direction:column;gap:16px;}
#shopProductGrid.view-list .product-card{
    display:flex;
    flex-direction:row;
    align-items:center;
    gap:20px;
    padding:16px;
}
#shopProductGrid.view-list .product-img-wrap{width:120px;flex-shrink:0;align-self:flex-start;}
#shopProductGrid.view-list .delivery-badge{flex-shrink:0;width:auto;margin-top:0;}
#shopProductGrid.view-list .product-title{
    flex:1 1 auto;
    min-width:120px;
    white-space:normal;
    margin:0;
}
#shopProductGrid.view-list .price-row{flex-shrink:0;margin-bottom:0;}
#shopProductGrid.view-list .size-row{flex-shrink:0;}
#shopProductGrid.view-list .add-to-cart-btn{flex-shrink:0;width:auto;margin-top:0;white-space:nowrap;}

@media (max-width:768px){
    .shop-toolbar{padding:14px 16px;flex-direction:column;align-items:flex-start;}
    .shop-toolbar-left{gap:12px;font-size:12.5px;}
    .shop-toolbar-right{width:100%;justify-content:space-between;}
    .shop-product-section{padding-top:16px;}
    .shop-product-section .product-grid{gap:10px 12px;}
    .shop-product-section .product-card{padding:0 0 14px;}

    /* Reference has square-cornered images on mobile — no rounded curve */
    .shop-product-section .product-img-wrap{border-radius:0;}

    .shop-product-section .sale-badge{font-size:9.5px;padding:5px 12px 5px 10px;}
    .shop-product-section .save-badge{font-size:11.5px;padding:5px 10px;}
    .shop-product-section .price-row{flex-direction:column;align-items:flex-start;gap:6px;}
    .shop-product-section .price-final-row{display:flex;align-items:center;gap:8px;}

    #shopProductGrid.view-list .product-card{flex-direction:column;}
    #shopProductGrid.view-list .product-img-wrap{width:100%;}
}

/* ---------- 16. Shop page — mobile filter sidebar ---------- */
/* Utility: desktop-only / mobile-only toggles for the shop toolbar.
   Desktop keeps the existing dropdown row exactly as-is (it's already
   right). Mobile swaps it for a single "Filters" trigger + a compact
   "Sort by", matching the reference site's mobile toolbar. */
.shop-mobile-only{display:none;}

@media (max-width:768px){
    .shop-desktop-only{display:none !important;}
    .shop-mobile-only{display:flex;}

    .shop-toolbar{flex-direction:row;align-items:center;justify-content:space-between;padding:14px 16px;}
    .shop-toolbar-left{gap:0;}
    .shop-toolbar-right{width:auto;justify-content:flex-end;}

    .shop-mobile-filter-btn{
        align-items:center;
        gap:6px;
        background:none;
        border:none;
        font-family:'Quantico','Helvetica Neue',Arial,sans-serif;
        font-weight:600;
        font-size:14px;
        color:#141414;
        cursor:pointer;
        padding:0;
    }
    .shop-mobile-filter-btn svg{width:16px;height:16px;}

    .shop-sort{gap:6px;font-size:13px;}
    .shop-sort-icon{width:16px;height:16px;}
    .shop-sort select{padding:6px 8px;font-size:13px;}

    .shop-grid-view-icons{display:none;} /* density icons are a desktop-only nicety */
}

/* Overlay + slide-in drawer — mirrors the mobile nav drawer pattern */
.mobile-filter-overlay{
    display:none;
    position:fixed; inset:0;
    background:rgba(0,0,0,.4);
    opacity:0; pointer-events:none;
    transition:opacity .2s ease;
    z-index:250;
}
.mobile-filter-overlay.open{opacity:1;pointer-events:auto;}

.mobile-filter-drawer{
    display:none;
    flex-direction:column;
    position:fixed;
    top:0; bottom:0; left:0;
    width:82%;
    max-width:320px;
    background:#fff;
    transform:translateX(-100%);
    transition:transform .25s ease;
    z-index:260;
    overflow-y:auto;
    overscroll-behavior:contain;
    padding:20px 0;
}
.mobile-filter-drawer.open{transform:translateX(0);}

@media (max-width:768px){
    .mobile-filter-overlay{display:block;}
    .mobile-filter-drawer{display:flex;}
}

.filter-section{padding:0 20px 18px;border-bottom:1px solid var(--border);margin-bottom:18px;}
.filter-section:last-child{border-bottom:none;margin-bottom:0;}

.filter-section-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    font-size:14px;
    font-weight:700;
    letter-spacing:.3px;
    color:#141414;
    margin-bottom:14px;
}
.filter-collapse-toggle{
    background:none;
    border:none;
    color:var(--gray);
    font-size:18px;
    line-height:1;
    cursor:pointer;
    padding:2px 6px;
    margin-left:auto;
}
.filter-drawer-close{
    background:none;
    border:none;
    color:var(--text-dark);
    cursor:pointer;
    padding:2px 4px;
    margin-left:10px;
}
.filter-drawer-close svg{width:18px;height:18px;}

.filter-section-body{
    display:flex;
    flex-direction:column;
    max-height:600px;
    overflow:hidden;
    transition:max-height .25s ease, opacity .2s ease;
}
.filter-section.collapsed .filter-section-body{max-height:0;opacity:0;}

/* Color swatches */
.filter-color-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;}
.filter-color-option{
    display:flex;
    align-items:center;
    gap:10px;
    font-size:12.5px;
    letter-spacing:.3px;
    color:#141414;
    cursor:pointer;
}
.filter-color-option input{position:absolute;opacity:0;width:0;height:0;}
.filter-color-swatch{
    width:20px;height:20px;
    border-radius:50%;
    border:1px solid rgba(0,0,0,.12);
    flex-shrink:0;
}
.filter-color-option input:checked + .filter-color-swatch{box-shadow:0 0 0 2px #fff, 0 0 0 3.5px var(--wine);}

/* Size + Status radios */
.filter-size-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;}
.filter-status-list{display:flex;flex-direction:column;gap:14px;}
.filter-radio-option{
    display:flex;
    align-items:center;
    gap:10px;
    font-size:12.5px;
    letter-spacing:.3px;
    color:#141414;
    cursor:pointer;
}
.filter-radio-option input{position:absolute;opacity:0;width:0;height:0;}
.filter-radio-dot{
    width:16px;height:16px;
    border-radius:50%;
    border:1.5px solid var(--border);
    flex-shrink:0;
    position:relative;
}
.filter-radio-option input:checked + .filter-radio-dot{border-color:var(--wine);}
.filter-radio-option input:checked + .filter-radio-dot::after{
    content:'';
    position:absolute;
    inset:3px;
    border-radius:50%;
    background:var(--wine);
}

/* Price range slider */
.filter-price-slider{position:relative;height:20px;margin:6px 0 12px;}
.filter-price-track{
    position:absolute;
    top:50%; left:0; right:0;
    height:3px;
    transform:translateY(-50%);
    background:var(--border);
    border-radius:3px;
}
.filter-price-range{
    position:absolute;
    top:50%; height:3px;
    transform:translateY(-50%);
    background:var(--wine);
    border-radius:3px;
    left:0; right:0;
}
.filter-price-input{
    position:absolute;
    top:0; left:0;
    width:100%;
    margin:0;
    -webkit-appearance:none;
    appearance:none;
    background:none;
    pointer-events:none;
}
.filter-price-input::-webkit-slider-thumb{
    -webkit-appearance:none;
    pointer-events:auto;
    width:16px;height:16px;
    border-radius:50%;
    background:#fff;
    border:2px solid var(--wine);
    cursor:pointer;
    margin-top:-1px;
}
.filter-price-input::-moz-range-thumb{
    pointer-events:auto;
    width:16px;height:16px;
    border-radius:50%;
    background:#fff;
    border:2px solid var(--wine);
    cursor:pointer;
}
.filter-price-input::-webkit-slider-runnable-track{background:transparent;}
.filter-price-input::-moz-range-track{background:transparent;}
.filter-price-label{font-size:12.5px;color:var(--gray);margin:0;}

/* ============================================================================
   13. ADDED FOR ADMIN-PANEL INTEGRATION — cart, checkout, product detail,
   account/order history, wishlist, search, flash messages, legal pages.
   Reuses the same design tokens (--wine, --border, --gray, --text-dark)
   as everything above so it matches the rest of the theme.
   ============================================================================ */

/* -- misc shared bits -- */
.empty-state{padding:60px 24px;text-align:center;color:var(--gray);font-size:16px;}
.empty-state a{color:var(--wine);font-weight:600;text-decoration:none;}
.oos-badge{position:absolute;bottom:12px;left:12px;background:#6b6b6b;color:#fff;font-size:10px;font-weight:700;letter-spacing:.4px;padding:5px 10px;border-radius:999px;z-index:2;}
.product-img-wrap-outer{position:relative;}
.card-wishlist-form{margin:0;position:absolute;top:12px;right:12px;z-index:3;}
.card-wishlist-heart{
    width:32px;height:32px;
    border-radius:50%;
    background:#fff;
    border:1px solid var(--border);
    display:flex;align-items:center;justify-content:center;
    cursor:pointer;
    color:var(--text-dark);
    box-shadow:0 2px 6px rgba(0,0,0,.12);
}
.card-wishlist-heart svg{width:15px;height:15px;}
.card-wishlist-heart.is-active{color:var(--wine);}
button.add-to-cart-btn{
    width:100%;
    border:none;
    cursor:pointer;
    appearance:none;
    -webkit-appearance:none;
    -moz-appearance:none;
}
.add-to-cart-btn.is-disabled{background:#c9c9c9;cursor:not-allowed;}
.add-to-cart-btn.is-disabled:hover{background:#c9c9c9;}
.add-to-cart-form{margin:0;}
.product-title-link{text-decoration:none;color:inherit;}
.status-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;white-space:nowrap;}

.cart-flash{padding:14px 18px;border-radius:8px;margin-bottom:20px;font-size:14px;}
.cart-flash-error{background:#fdecec;color:#a8281c;border:1px solid #f3b7b0;}
.cart-flash-ok{background:#e9f7ef;color:#1b7a3d;border:1px solid #b6e3c6;}
.cart-flash ul{margin:0;padding-left:20px;}
.low-stock-note{color:#d97706;display:block;}

/* -- cart page -- */
.cart-steps{
    display:flex;flex-wrap:wrap;
    padding:28px 12px;
    max-width:1300px;margin:0 auto;
    gap:24px;
    border-bottom:1px solid var(--border);
}
.cart-step{display:flex;align-items:center;gap:12px;opacity:.4;}
.cart-step.is-active{opacity:1;}
.cart-step-num{font-size:30px;font-weight:700;color:var(--gray);}
.cart-step.is-active .cart-step-num{color:var(--text-dark);}
.cart-step strong{display:block;font-size:14px;letter-spacing:.3px;}
.cart-step small{display:block;color:var(--gray);font-size:12px;}

.cart-section{padding:28px 12px 56px;max-width:1300px;margin:0 auto;}
.cart-empty{text-align:center;padding:60px 0;}
.cart-empty p{margin-bottom:18px;font-size:16px;color:var(--gray);}

.cart-layout{display:grid;grid-template-columns:1fr 340px;gap:28px;align-items:start;}
@media (max-width:900px){.cart-layout{grid-template-columns:1fr;}}

.cart-table{border:1px solid var(--border);border-radius:10px;overflow:hidden;margin-bottom:16px;}
.cart-table-head{display:grid;grid-template-columns:32px 2.2fr 1fr 1.1fr 1fr;gap:12px;padding:14px 16px;background:#f7f5f6;font-weight:500;font-size:12px;color:var(--gray);text-transform:uppercase;letter-spacing:.4px;}
.cart-table-head span:first-child{visibility:hidden;}
.cart-row{display:grid;grid-template-columns:32px 2.2fr 1fr 1.1fr 1fr;gap:12px;align-items:center;padding:14px 16px;border-top:1px solid var(--border);}
.cart-row-remove-form{margin:0;}
.cart-row-remove-x{background:none;border:none;font-size:19px;line-height:1;color:var(--gray);cursor:pointer;padding:2px 6px;}
.cart-row-remove-x:hover{color:#c0392b;}
.cart-row-product{display:flex;align-items:center;gap:12px;min-width:0;}
.cart-row-product img{width:52px;height:52px;object-fit:cover;border-radius:8px;flex-shrink:0;background:#f4f1f2;}
.cart-row-product a{color:var(--text-dark);text-decoration:none;font-weight:400;font-size:14px;}
.cart-row-product small{display:block;color:var(--gray);font-size:12px;margin-top:2px;}
.cart-row-price{font-size:14px;}
.cart-row-qty{display:flex;align-items:center;gap:6px;}
.cart-row-qty input{width:52px;padding:7px;border:1px solid var(--border);border-radius:6px;font-size:14px;}
.cart-qty-stack{display:flex;flex-direction:column;gap:2px;}
.cart-qty-stack button{width:20px;height:15px;border:1px solid var(--border);background:#f7f5f6;font-size:10px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:3px;padding:0;}
.cart-row-subtotal{font-weight:400;font-size:14px;color:var(--wine);}

.cart-actions-row{margin-top:4px;}
.cart-coupon-form{display:flex;gap:10px;max-width:520px;}
.cart-coupon-form input{flex:1;padding:14px 16px;border:1px solid var(--border);border-radius:6px;font-size:14px;}
.cart-coupon-form button{background:var(--wine-dark);color:#fff;border:none;padding:14px 28px;border-radius:6px;font-weight:600;cursor:pointer;white-space:nowrap;font-size:14px;}
.cart-coupon-form button:hover{background:var(--wine);}
.cart-coupon-applied{border:1px solid var(--border);border-radius:8px;padding:10px 14px;font-size:13px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.cart-coupon-remove{background:none;border:1px solid var(--border);border-radius:6px;padding:5px 10px;cursor:pointer;font-size:12px;}
.cart-coupon-remove:hover{border-color:#c0392b;color:#c0392b;}
.cart-update-btn:hover{background:#e2d9dc;}

.cart-summary-box{border:1px solid var(--border);border-radius:10px;padding:22px;position:sticky;top:20px;}
.cart-summary-box h3{margin:0 0 16px;font-size:19px;text-transform:uppercase;letter-spacing:.4px;}
.cart-summary-row{display:flex;justify-content:space-between;padding:10px 0;font-size:14px;border-bottom:1px solid var(--border);}
.cart-summary-total{font-weight:700;font-size:18px;border-bottom:none;padding-top:14px;}
.cart-checkout-btn{display:block;text-align:center;margin-top:18px;text-decoration:none;}

@media (max-width:900px){
    .cart-table-head{display:none;}
    .cart-row{grid-template-columns:32px 1fr;grid-template-areas:"remove product" "empty1 price" "empty2 qty" "empty3 subtotal";row-gap:6px;}
    .cart-row-remove-x{grid-area:remove;}
    .cart-row-product{grid-area:product;}
    .cart-row-price{grid-area:price;}
    .cart-row-qty{grid-area:qty;}
    .cart-row-subtotal{grid-area:subtotal;}
    .cart-row-price::before{content:"Price: ";color:var(--gray);font-size:12px;}
    .cart-row-qty::before{content:"Qty: ";color:var(--gray);font-size:12px;}
    .cart-row-subtotal::before{content:"Subtotal: ";color:var(--gray);font-size:12px;}
}

/* -- checkout page -- */
.checkout-breadcrumb-row{
    display:flex;flex-wrap:wrap;align-items:center;gap:8px;
    padding:20px 12px;
    max-width:1200px;margin:0 auto;
    font-size:13px;color:var(--gray);
    text-transform:uppercase;letter-spacing:.4px;
}
.checkout-breadcrumb-row a{color:var(--gray);text-decoration:none;}
.checkout-breadcrumb-row a:hover{color:var(--wine);}
.ckb-sep{color:var(--border);}
.ckb-step{font-weight:500;}
.ckb-step.is-active{color:var(--wine);}

.checkout-section{padding:12px 12px 56px;max-width:1200px;margin:0 auto;}
.checkout-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:32px;align-items:start;}
.checkout-form-col{max-width:none;text-align:left;}
.checkout-summary-col{border:1px solid var(--border);border-radius:10px;padding:20px;position:sticky;top:20px;}
.checkout-summary-items{margin-bottom:14px;max-height:360px;overflow-y:auto;}
.checkout-summary-item{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px;}
.checkout-summary-item-qty-badge{background:var(--gray);color:#fff;font-size:11px;font-weight:700;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.checkout-summary-item img{width:44px;height:44px;object-fit:cover;border-radius:6px;background:#f4f1f2;flex-shrink:0;}
.checkout-summary-item-info{flex:1;display:flex;flex-direction:column;}
.checkout-summary-item-info small{color:var(--gray);}
.checkout-summary-item-total{font-weight:600;white-space:nowrap;}
.payment-methods{margin:8px 0 20px;display:flex;flex-direction:column;gap:10px;}
.payment-method-option{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:8px;padding:12px 14px;cursor:pointer;font-weight:500;}
.payment-method-option input{width:auto;}
.payment-note{font-size:13px;color:var(--gray);}
.account-submit-btn.secondary{background:transparent;color:var(--text-dark);border:1px solid var(--border);}
@media (max-width:900px){.checkout-grid{grid-template-columns:1fr;}.checkout-summary-col{position:static;}}

/* -- returning customer collapsible -- */
.returning-customer-box{border:1px solid var(--border);border-radius:8px;margin-bottom:24px;overflow:hidden;}
.returning-customer-toggle{
    width:100%;display:flex;align-items:center;gap:10px;
    background:#f7f5f6;border:none;padding:14px 16px;
    font-size:14px;font-weight:600;color:var(--text-dark);
    cursor:pointer;text-align:left;
    font-family:'Quantico','Helvetica Neue',Arial,sans-serif;
}
.returning-customer-toggle svg{width:17px;height:17px;flex-shrink:0;}
.returning-customer-toggle .rc-chevron{margin-left:auto;transition:transform .2s ease;}
.returning-customer-toggle.is-open .rc-chevron{transform:rotate(180deg);}
.returning-customer-panel{padding:16px;}
.returning-customer-panel label{font-size:13px;font-weight:600;display:block;margin-bottom:6px;}
.returning-customer-panel input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:6px;margin-bottom:14px;box-sizing:border-box;}
.returning-customer-msg{font-size:13px;color:var(--gray);margin:10px 0 0;}

/* -- billing form extras -- */
.form-row-3{grid-template-columns:1fr 1fr 1fr;}
#co-country{width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:6px;background:#f7f5f6;color:var(--gray);margin-bottom:20px;}
.account-form select, .checkout-form-col select{
    width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:6px;
    margin-bottom:20px;background:#fff;font-size:14px;box-sizing:border-box;
}
.ship-different-check{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;margin:4px 0 18px;cursor:pointer;}
.ship-different-check input{width:auto;}
.ship-different-fields{border-top:1px solid var(--border);padding-top:16px;margin-bottom:6px;}

.checkout-step-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:10px;flex-wrap:wrap;}
.checkout-back-link{background:none;border:none;color:var(--gray);font-size:14px;cursor:pointer;text-decoration:none;font-family:'Quantico','Helvetica Neue',Arial,sans-serif;}
.checkout-back-link:hover{color:var(--wine);}
.checkout-continue-btn{width:auto;padding:14px 32px;}
@media (max-width:600px){
    .checkout-step-actions{flex-direction:column;align-items:stretch;gap:14px;}
    .checkout-back-link{order:-1;text-align:center;padding:6px 0;}
    .checkout-continue-btn{width:100%;}
}

/* -- coupon reveal on checkout summary -- */
.checkout-coupon-row{margin-bottom:12px;}
.checkout-coupon-add-link{display:flex;align-items:center;gap:8px;background:none;border:none;font-size:13px;color:var(--text-dark);cursor:pointer;padding:0;}
.checkout-coupon-add-link svg{width:15px;height:15px;color:var(--gray);}
.checkout-coupon-add-link span{color:var(--wine);font-weight:600;text-decoration:underline;}
.checkout-coupon-form{display:flex;gap:8px;margin-bottom:14px;}
.checkout-coupon-form input{flex:1;padding:13px 14px;border:1px solid var(--border);border-radius:6px;font-size:14px;box-sizing:border-box;font-family:'Quantico','Helvetica Neue',Arial,sans-serif;}
.checkout-coupon-form input:focus{border-color:var(--wine);outline:none;}
.checkout-coupon-form button{background:var(--wine-dark);color:#fff;border:none;padding:0 20px;border-radius:6px;font-weight:600;cursor:pointer;}
.checkout-coupon-form button:hover{background:var(--wine);}

@media (max-width:600px){.form-row-3{grid-template-columns:1fr;}}

/* -- product detail page -- */
.product-detail-main-img{position:relative;border-radius:12px;overflow:hidden;background:#f4f1f2;}
.product-detail-main-img img{display:block;width:100%;height:auto;}
.product-detail-thumbs{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px;}
.pd-thumb{border:2px solid transparent;border-radius:8px;overflow:hidden;padding:0;width:64px;height:64px;background:#f4f1f2;cursor:pointer;}
.pd-thumb img{width:100%;height:100%;object-fit:cover;}
.pd-thumb.is-active{border-color:var(--wine);}
.pd-brand{color:var(--gray);text-transform:uppercase;font-size:12px;letter-spacing:.5px;margin-bottom:6px;}
.pd-title{font-size:28px;margin:0 0 6px;}
.pd-sku{color:var(--gray);font-size:13px;margin-bottom:14px;}
.pd-price-row{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:10px;}
.pd-final-price{font-size:26px;font-weight:700;}
.pd-mrp-price{color:#9a9a9a;text-decoration:line-through;font-size:17px;}
.pd-unit{color:var(--gray);font-size:14px;}
.pd-stock{font-weight:600;margin-bottom:16px;}
.pd-stock.in-stock{color:#16a34a;}
.pd-stock.out-of-stock{color:#dc2626;}
.pd-bullets{margin:0 0 22px;padding-left:20px;color:#3a3a3a;}
.pd-bullets li{margin-bottom:6px;}
.pd-variant-group{margin-bottom:18px;}
.pd-variant-group label{display:block;font-weight:600;margin-bottom:8px;}
.pd-variant-options{display:flex;gap:8px;flex-wrap:wrap;}
.pd-variant-pill{position:relative;}
.pd-variant-pill input{position:absolute;opacity:0;}
.pd-variant-pill span{display:inline-block;padding:8px 16px;border:1px solid var(--border);border-radius:6px;cursor:pointer;font-size:14px;}
.pd-variant-pill input:checked + span{background:var(--wine-dark);color:#fff;border-color:var(--wine-dark);}
.pd-qty-row{display:flex;align-items:center;gap:14px;margin-bottom:20px;}
.qty-stepper{display:flex;align-items:center;border:1px solid var(--border);border-radius:6px;overflow:hidden;}
.qty-btn{background:#f7f5f6;border:none;width:34px;height:38px;font-size:18px;cursor:pointer;}
.qty-stepper input{width:50px;border:none;text-align:center;font-size:15px;-moz-appearance:textfield;}
.pd-add-btn{max-width:280px;}

/* -- order success / tracking result -- */
.order-success-section,.order-tracking-result{max-width:640px;margin:0 auto;padding:40px 24px;}
.order-success-box{text-align:center;border:1px solid var(--border);border-radius:12px;padding:36px 28px;}
.order-success-check{width:56px;height:56px;line-height:56px;border-radius:50%;background:#16a34a;color:#fff;font-size:28px;margin:0 auto 16px;}
.order-success-number{font-size:18px;margin:10px 0;}
.order-success-items{text-align:left;margin:20px 0;}
.order-success-item{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border);font-size:14px;}
.order-success-note{color:var(--gray);font-size:13px;margin-top:16px;}
.order-success-actions{display:flex;gap:12px;justify-content:center;margin-top:22px;flex-wrap:wrap;}
.order-success-actions .account-submit-btn{width:auto;padding:12px 22px;}
.order-tracking-result{text-align:left;border-top:1px solid var(--border);margin-top:20px;padding-top:24px;}
.order-tracking-address{margin-top:14px;color:#3a3a3a;}

/* -- legal / info pages -- */
.legal-page{max-width:760px;margin:0 auto;padding:36px 24px 64px;line-height:1.7;color:#3a3a3a;}
.legal-page h3{margin:24px 0 8px;color:var(--text-dark);}
.legal-page a{color:var(--wine);}

/* -- my account: order history reuses account-box widened -- */

/* ============================================================================
   14. PRODUCT PAGE v2 — matches reference layout (gallery overlay heart,
   next-product arrow, delivery/viewer/share meta, payment trust panel,
   separate buybox, accordion, related products, floating buttons)
   ============================================================================ */
.product-detail{
    display:grid;
    grid-template-columns:1fr 1fr 300px;
    grid-template-areas:"gallery info buybox";
    gap:28px;
    align-items:start;
    padding:24px 12px;
    max-width:1300px;
    margin:0 auto;
}
.product-detail-gallery{grid-area:gallery;position:relative;}
.product-detail-info{grid-area:info;}
.pd-buybox{
    grid-area:buybox;
    border:1px solid var(--border);
    border-radius:10px;
    padding:20px;
    position:sticky;
    top:20px;
}

@media (max-width:980px){
    .product-detail{grid-template-columns:1fr;grid-template-areas:"gallery" "info" "buybox";padding:12px;gap:18px;}
    .pd-buybox{position:static;border:none;padding:18px;border-radius:10px;background:#f7f5f5;}
    .pd-price-row{align-items:center;}
    .product-detail-main-img{border-radius:0;}
}

.pd-heart-form{margin:0;}
.pd-heart-overlay{
    position:absolute;
    top:12px;left:12px;
    z-index:3;
    width:36px;height:36px;
    border-radius:50%;
    background:#fff;
    border:1px solid var(--border);
    display:flex;align-items:center;justify-content:center;
    cursor:pointer;
    color:var(--text-dark);
    box-shadow:0 2px 6px rgba(0,0,0,.12);
}
.pd-heart-overlay svg{width:17px;height:17px;}
.pd-heart-overlay.is-active{color:var(--wine);}

.pd-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:6px;}
.pd-title-row .pd-title{margin:0;}
.pd-next-arrow{
    flex-shrink:0;
    width:34px;height:34px;
    border-radius:50%;
    border:1px solid var(--border);
    display:flex;align-items:center;justify-content:center;
    color:var(--text-dark);
    text-decoration:none;
}
.pd-next-arrow:hover{border-color:var(--wine);color:var(--wine);}
.pd-next-arrow svg{width:16px;height:16px;}

.pd-bullets-check{list-style:none;margin:0 0 20px;padding:0;color:#3a3a3a;}
.pd-bullets-check li{display:flex;align-items:flex-start;gap:8px;margin-bottom:8px;}
.pd-check{color:#16a34a;font-weight:700;flex-shrink:0;}

.pd-meta-list{margin-bottom:18px;}
.pd-meta-row{
    display:flex;align-items:center;gap:10px;
    padding:10px 0;
    border-bottom:1px solid var(--border);
    font-size:14px;
    color:#3a3a3a;
    text-decoration:none;
}
.pd-meta-row svg{width:18px;height:18px;flex-shrink:0;color:var(--gray);}
a.pd-meta-row{color:#3a3a3a;}
a.pd-meta-row:hover{color:var(--wine);}
button.pd-meta-row{
    background:none;border:none;width:100%;
    text-align:left;cursor:pointer;
    font-family:'Quantico','Helvetica Neue',Arial,sans-serif;
}
button.pd-meta-row:hover{color:var(--wine);}
button.pd-meta-row:hover svg{color:var(--wine);}
.pd-share-row{flex-wrap:wrap;}
.pd-delivery-range{margin-left:4px;}
@media (max-width:600px){
    .pd-delivery-row{flex-wrap:wrap;}
    .pd-delivery-label{width:auto;}
    .pd-delivery-range{margin-left:4px;font-weight:600;}
}
.pd-share-icons{display:flex;gap:8px;margin-left:auto;}
.pd-share-icons a, .pd-share-icons button{
    width:28px;height:28px;border-radius:50%;
    background:#f4f1f2;
    display:flex;align-items:center;justify-content:center;
    color:var(--text-dark);
    border:none;cursor:pointer;padding:0;font-family:inherit;
}
.pd-share-icons a:hover, .pd-share-icons button:hover{background:var(--wine);color:#fff;}
.pd-share-icons svg{width:14px;height:14px;}

.pd-payment-box{border:1px solid var(--border);border-radius:10px;padding:16px;margin-top:6px;}
.pd-payment-label{display:flex;align-items:center;gap:8px;font-weight:600;font-size:13px;margin:0 0 12px;color:var(--text-dark);}
.pd-payment-label svg{width:16px;height:16px;color:#16a34a;}
.pd-payment-icons{display:flex;flex-wrap:wrap;gap:8px;}
.pd-payment-pill{background:#f4f1f2;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:600;color:#3a3a3a;}

.pd-buybox .pd-price-row{margin-bottom:8px;}
.pd-payment-fieldset{
    border:1px solid var(--border);
    border-radius:10px;
    padding:18px 16px 16px;
    margin:0 0 6px;
}
.pd-payment-fieldset legend{
    padding:0 8px;
    margin-left:4px;
    font-size:13px;
    font-weight:700;
    color:var(--text-dark);
}
.ns-svg-pays{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-start;}
.ns-svg-pays svg{
    border:1px solid var(--border);
    border-radius:6px;
    background:#fff;
    padding:2px 4px;
}
.pd-buybox-buttons{display:flex;flex-direction:column;gap:10px;}
.pd-buy-now-btn{background:var(--wine);}
.pd-buy-now-btn:hover{background:var(--wine-dark);}
@media (max-width:980px){
    .pd-buybox-buttons{flex-direction:row;}
    .pd-buybox-buttons button{flex:1;}
}

/* -- accordion -- */
.pd-accordion-section{max-width:1300px;margin:0 auto;padding:0 12px 40px;}
.pd-accordion-item{border-bottom:1px solid var(--border);}
.pd-accordion-toggle{
    width:100%;
    display:flex;align-items:center;justify-content:space-between;
    background:none;border:none;
    padding:18px 0;
    font-size:16px;font-weight:600;
    font-family:'Quantico','Helvetica Neue',Arial,sans-serif;
    color:var(--text-dark);
    cursor:pointer;
    text-align:left;
}
.pd-accordion-toggle svg{width:16px;height:16px;transition:transform .2s ease;flex-shrink:0;}
.pd-accordion-toggle[aria-expanded="true"] svg{transform:rotate(180deg);}
.pd-accordion-panel{max-height:0;overflow:hidden;transition:max-height .25s ease;}
.pd-accordion-panel .pd-description{padding-bottom:18px;color:#3a3a3a;line-height:1.7;}
.pd-info-table{width:100%;border-collapse:collapse;margin-bottom:18px;}
.pd-info-table th{text-align:left;padding:8px 12px 8px 0;color:var(--gray);font-weight:600;width:140px;}
.pd-info-table td{padding:8px 0;color:#3a3a3a;}
.pd-category-line{padding:16px 0;color:#3a3a3a;}
.pd-category-line a{color:var(--wine);text-decoration:none;font-weight:600;}

.pd-related-section{max-width:1300px;margin:0 auto;}
.pd-related-heading{text-align:center;font-size:26px;margin-bottom:24px;}

/* -- floating buttons -- */
.floating-btn{
    position:fixed;
    right:20px;
    width:44px;height:44px;
    border-radius:50%;
    background:var(--wine-dark);
    color:#fff;
    display:flex;align-items:center;justify-content:center;
    box-shadow:0 4px 12px rgba(0,0,0,.2);
    text-decoration:none;
    border:none;
    cursor:pointer;
    z-index:90;
}
.floating-btn svg{width:19px;height:19px;}
.floating-btn:hover{background:var(--wine);}
.floating-scroll-top{bottom:78px;opacity:0;pointer-events:none;transition:opacity .2s ease;}
.floating-scroll-top.is-visible{opacity:1;pointer-events:auto;}
.floating-clock{bottom:20px;}
@media (max-width:760px){
    .floating-scroll-top{bottom:150px;}
    .floating-clock{bottom:92px;}
}

/* ============================================================================
   15. TOAST — simple bottom notification for add-to-cart / wishlist actions
   ============================================================================ */
.toast{
    position:fixed;
    left:50%;
    bottom:24px;
    transform:translateX(-50%) translateY(16px);
    background:var(--text-dark);
    color:#fff;
    padding:13px 24px;
    border-radius:8px;
    font-size:14px;
    font-weight:600;
    font-family:'Quantico','Helvetica Neue',Arial,sans-serif;
    box-shadow:0 6px 20px rgba(0,0,0,.18);
    opacity:0;
    pointer-events:none;
    transition:opacity .25s ease, transform .25s ease;
    z-index:300;
    max-width:88vw;
    text-align:center;
}
.toast.is-visible{opacity:1;transform:translateX(-50%) translateY(0);}
.badge.is-hidden{display:none;}

/* ============================================================================
   16. MINI-CART DRAWER — slide-in panel from the right, live-updating
   ============================================================================ */
.cart-drawer-overlay{
    position:fixed;inset:0;
    background:rgba(0,0,0,.35);
    opacity:0;pointer-events:none;
    transition:opacity .25s ease;
    -webkit-backdrop-filter:blur(4px);
    backdrop-filter:blur(4px);
    z-index:400;
}
.cart-drawer-overlay.is-open{opacity:1;pointer-events:auto;}
.cart-drawer{
    position:fixed;top:0;right:0;bottom:0;
    width:400px;max-width:92vw;
    background:#fff;
    box-shadow:-8px 0 24px rgba(0,0,0,.15);
    transform:translateX(100%);
    transition:transform .28s ease;
    z-index:401;
    display:flex;flex-direction:column;
}
.cart-drawer.is-open{transform:translateX(0);}
body.cart-drawer-locked{overflow:hidden;}

.cart-drawer-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--border);}
.cart-drawer-head h3{margin:0;font-size:19px;}
.cart-drawer-head button{background:none;border:none;cursor:pointer;color:var(--text-dark);padding:4px;}
.cart-drawer-head button svg{width:20px;height:20px;}

.cart-drawer-body{flex:1;overflow-y:auto;padding:8px 20px;}
.cart-drawer-empty{color:var(--gray);text-align:center;padding:50px 20px;}
.cart-drawer-empty svg{width:64px;height:64px;color:var(--border);margin-bottom:16px;}
.cart-drawer-empty p{margin:0 0 20px;font-size:15px;}
.cart-drawer-empty .account-submit-btn{display:inline-block;width:auto;padding:12px 28px;text-decoration:none;}

.cart-drawer-line{display:flex;gap:12px;padding:16px 0;border-bottom:1px solid var(--border);}
.cart-drawer-line img{width:60px;height:60px;object-fit:cover;border-radius:8px;background:#f4f1f2;flex-shrink:0;}
.cart-drawer-line-info{flex:1;min-width:0;}
.cart-drawer-line-name{margin:0 0 4px;font-size:14px;font-weight:500;color:var(--text-dark);}
.cart-drawer-line-variant{margin:0 0 4px;font-size:12px;color:var(--gray);}
.cart-drawer-line-qty{display:flex;align-items:center;gap:8px;}
.cart-drawer-qty-btn{width:24px;height:24px;border:1px solid var(--border);border-radius:6px;background:#f7f5f6;cursor:pointer;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center;}
.cart-drawer-qty-val{min-width:16px;text-align:center;font-size:14px;font-weight:500;}
.cart-drawer-line-price{margin-left:6px;font-size:12px;color:var(--gray);}
.cart-drawer-remove{align-self:flex-start;background:none;border:none;color:var(--gray);cursor:pointer;padding:4px;}
.cart-drawer-remove:hover{color:#c0392b;}
.cart-drawer-remove svg{width:15px;height:15px;}

.cart-drawer-footer{padding:16px 20px 20px;border-top:1px solid var(--border);}
.cart-drawer-subtotal{display:flex;justify-content:space-between;font-size:16px;font-weight:700;margin-bottom:14px;}
.cart-drawer-footer .account-submit-btn{display:block;text-align:center;text-decoration:none;margin-bottom:10px;}
.cart-drawer-footer .account-submit-btn:last-child{margin-bottom:0;}
.cart-drawer-footer .account-submit-btn.secondary{background:transparent;color:var(--text-dark);border:1px solid var(--border);}

/* Intentionally NOT full-width even on small phones — always leaves a
   visible dimmed backdrop strip on the left, like a proper drawer rather
   than a full-page takeover. */
@media (max-width:480px){.cart-drawer{width:88vw;max-width:360px;}}

/* -- Add to Cart: icon hides, small spinning circle takes its place while adding -- */
.add-to-cart-spinner{
    display:inline-block;
    width:15px;height:15px;
    border:2px solid rgba(255,255,255,.4);
    border-top-color:#fff;
    border-radius:50%;
    animation:add-to-cart-spin .6s linear infinite;
    vertical-align:middle;
}
@keyframes add-to-cart-spin{ to { transform: rotate(360deg); } }

/* -- Toast: rectangular bar on mobile, not a small centered pill -- */
@media (max-width:600px){
    .toast{
        left:12px;right:12px;
        transform:translateY(16px);
        max-width:none;
        border-radius:8px;
        text-align:center;
    }
    .toast.is-visible{transform:translateY(0);}
}

/* ============================================================================
   17. ACCOUNT POPUP + DELIVERY & RETURN MODAL — centered modal, fade +
   scale-in transition. The account popup opens from the header account
   icon on mobile; the delivery modal opens from the product page on any
   screen size.
   ============================================================================ */
.account-popup-overlay, .site-modal-overlay{
    position:fixed;inset:0;
    background:rgba(0,0,0,.45);
    opacity:0;pointer-events:none;
    transition:opacity .2s ease;
    -webkit-backdrop-filter:blur(4px);
    backdrop-filter:blur(4px);
    z-index:400;
    display:flex;align-items:center;justify-content:center;
    padding:20px;
}
.account-popup-overlay.is-open, .site-modal-overlay.is-open{opacity:1;pointer-events:auto;}

.account-popup, .site-modal{
    position:fixed;
    top:50%;left:50%;
    width:440px;max-width:calc(100vw - 40px);
    max-height:85vh;
    background:#fff;
    border-radius:14px;
    box-shadow:0 20px 50px rgba(0,0,0,.25);
    transform:translate(-50%,-50%) scale(.94);
    opacity:0;
    pointer-events:none;
    transition:transform .22s ease, opacity .22s ease;
    z-index:401;
    display:flex;flex-direction:column;
}
.account-popup.is-open, .site-modal.is-open{
    transform:translate(-50%,-50%) scale(1);
    opacity:1;
    pointer-events:auto;
}

.account-popup-head, .site-modal-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--border);flex-shrink:0;}
.account-popup-head h3, .site-modal-head h3{margin:0;font-size:19px;}
.account-popup-head button, .site-modal-head button{background:none;border:none;cursor:pointer;color:var(--text-dark);padding:4px;}
.account-popup-head button svg, .site-modal-head button svg{width:20px;height:20px;}
.account-popup-body, .site-modal-body{flex:1;overflow-y:auto;padding:12px 22px 28px;}
.account-popup-body .page-banner,
.account-popup-body .breadcrumb,
.site-modal-body .page-banner,
.site-modal-body .breadcrumb{display:none;} /* popup already has its own head/title */
.account-popup-body .account-heading{display:none;} /* avoid a duplicate heading under the popup's own "My Account" title bar */
.account-popup-body .account-box{padding:0;border:none;box-shadow:none;max-width:none;}
.site-modal-body .legal-page{padding:0;max-width:none;}
.site-modal-body .legal-page h3:first-child{margin-top:0;}

/* -- smooth circular loading spinner (used by both popups and the mobile
      cart-drawer trigger, instead of an abrupt content jump) -- */
.account-popup-spinner, .cart-drawer-spinner{display:flex;align-items:center;justify-content:center;padding:60px 0;}
.account-popup-spinner span, .cart-drawer-spinner span{
    width:32px;height:32px;
    border:3px solid var(--border);
    border-top-color:var(--wine);
    border-radius:50%;
    animation:spinner-rotate .7s linear infinite;
}

/* -- soft fade transitions: popup content swap + login/register toggle -- */
.account-popup-body, .site-modal-body{transition:opacity .15s ease;}
.account-popup-body.is-fading, .site-modal-body.is-fading{opacity:0;}
.account-panel{transition:opacity .15s ease;}
.account-panel.is-fading-out{opacity:0;}
.account-panel.is-fading-in{opacity:0;}
@keyframes spinner-rotate{ to { transform:rotate(360deg); } }

/* ============================================================================
   18. PRODUCT REVIEWS — real review list + a pure-CSS star-rating picker
   (no JS needed: uses the classic reversed-radio + sibling-hover trick)
   ============================================================================ */
.pd-review-overview{display:flex;gap:32px;align-items:center;margin-bottom:20px;flex-wrap:wrap;}
.pd-review-average{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:110px;}
.pd-review-average-num{font-size:34px;font-weight:700;line-height:1;}
.pd-review-stars{color:#f59e0b;font-size:16px;letter-spacing:1px;}
.pd-review-count{color:var(--gray);font-size:13px;}
.pd-review-bars{flex:1;min-width:200px;display:flex;flex-direction:column;gap:5px;}
.pd-review-bar-row{display:grid;grid-template-columns:32px 1fr 24px;align-items:center;gap:10px;font-size:12px;color:#3a3a3a;}
.pd-review-bar-track{height:8px;background:var(--border);border-radius:4px;overflow:hidden;}
.pd-review-bar-fill{height:100%;background:#f59e0b;border-radius:4px;}
.pd-write-review-btn{display:inline-block;width:auto;padding:12px 24px;text-decoration:none;margin-bottom:18px;}
.pd-write-review-btn.secondary{background:#fff;color:var(--wine);border:1px solid var(--wine);}
@media (max-width:600px){.pd-review-overview{flex-direction:column;align-items:flex-start;gap:16px;}}

.pd-review-list{margin-bottom:20px;}
.pd-review-item{padding:14px 0;border-bottom:1px solid var(--border);}
.pd-review-item:last-child{border-bottom:none;}
.pd-review-item-head{display:flex;align-items:center;gap:10px;margin-bottom:6px;flex-wrap:wrap;}
.pd-review-item-head strong{font-size:14px;}
.pd-review-date{color:var(--gray);font-size:12px;margin-left:auto;}
.pd-review-item p{margin:0;color:#3a3a3a;font-size:14px;line-height:1.6;}

.pd-review-form{margin-top:4px;}
.pd-star-input{display:inline-flex;flex-direction:row-reverse;justify-content:flex-end;gap:2px;margin-bottom:16px;}
.pd-star-input input{position:absolute;opacity:0;width:0;height:0;}
.pd-star-input label{cursor:pointer;color:var(--border);font-size:26px;line-height:1;transition:color .1s ease;}
.pd-star-input label:hover,
.pd-star-input label:hover ~ label,
.pd-star-input input:checked ~ label{color:#f59e0b;}
.pd-review-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;}
.pd-review-form input[type="text"], .pd-review-form input[type="email"]{
    padding:11px 13px;border:1px solid var(--border);border-radius:6px;font-size:14px;box-sizing:border-box;width:100%;
}
.pd-review-form textarea{
    width:100%;padding:11px 13px;border:1px solid var(--border);border-radius:6px;font-size:14px;
    box-sizing:border-box;resize:vertical;margin-bottom:14px;font-family:inherit;
}
.pd-review-submit-btn{width:auto;padding:12px 28px;}
@media (max-width:600px){.pd-review-form .form-row{grid-template-columns:1fr;}}

/* ============================================================
   TOURNAMENTS / FRANCHISE — images-only gallery pages
   ============================================================ */
.gallery-section{max-width:1280px;margin:0 auto;padding:0 20px 60px;}
.gallery-grid{display:grid;grid-template-columns:repeat(3, minmax(0,1fr));gap:16px;}
.gallery-item{border-radius:10px;overflow:hidden;background:#f4f1f2;aspect-ratio:4/3;}
.gallery-item img{width:100%;height:100%;object-fit:cover;display:block;}
@media(max-width:900px){
    .gallery-grid{grid-template-columns:repeat(2, minmax(0,1fr));gap:10px;}
}
@media(max-width:520px){
    .gallery-grid{grid-template-columns:1fr;gap:10px;}
    .gallery-item{aspect-ratio:16/10;}
}

.franchise-apply-wrap{display:flex;justify-content:center;margin-top:34px;}
.franchise-apply-btn{
    display:inline-flex;align-items:center;gap:10px;
    background:#25D366;color:#fff;font-weight:700;font-size:16px;
    padding:14px 28px;border-radius:50px;text-decoration:none;
    box-shadow:0 4px 14px rgba(37,211,102,.35);
    transition:transform .15s ease, box-shadow .15s ease;
}
.franchise-apply-btn:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(37,211,102,.45);}
@media(max-width:520px){
    .franchise-apply-btn{width:100%;justify-content:center;padding:14px 20px;}
}
