/* =========================================================
   KSHAMA TEXTILES / AURA ETHNIC — MASTER STYLESHEET
   Structure:
   1. Root variables & resets
   2. Global utilities (container, stitch, eyebrow, reveal)
   3. Announcement bar
   4. Header + mobile drawer
   5. Buttons (shared)
   6. Back-to-top / WhatsApp FAB
   7. Footer
   8. Home page
   9. About page
   10. Contact page
   11. Legal pages (Privacy / Shipping / Returns / Terms)
   ========================================================= */

/* ---------- 1. root variables & resets ---------- */
:root{
    --ink:#1c140f;
    --ink-soft:#332621;
    --ivory:#faf5ec;
    --ivory-alt:#f2e9d8;
    --emerald:#1f4d3d;
    --emerald-dark:#143529;
    --marigold:#c9963c;
    --marigold-light:#e2b869;
    --wine:#6e1f3b;
    --line:#e2d5bd;
    --text-soft:#6f6255;
    --header-h:92px;
    --header-h-scrolled:66px;
    --announce-h:36px;
    --rail-h:70px;   
    --ease:cubic-bezier(.4,0,.2,1);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x:hidden;width:100%;}
body{font-family:'Manrope',sans-serif;color:var(--ink);line-height:1.6;background:var(--ivory);overflow-x:hidden;width:100%;}
h1,h2,h3,h4{font-family:'Fraunces',serif;font-weight:450;letter-spacing:.01em;color:var(--ink);}
img{max-width:100%;display:block;}
a{text-decoration:none;color:inherit;}
ul{list-style:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}
::selection{background:var(--marigold);color:var(--ink);}
body.menu-open{overflow:hidden;}

/* ---------- 2. global utilities ---------- */
.container{max-width:1360px;margin:0 auto;padding:0 clamp(18px,4vw,56px);}

.stitch{
    height:1px;width:100%;
    background-image:repeating-linear-gradient(90deg, var(--marigold) 0 6px, transparent 6px 12px);
    opacity:.8;
}
.eyebrow{
    display:inline-flex;align-items:center;gap:.5rem;
    font-family:'Manrope',sans-serif;font-size:.7rem;font-weight:700;
    letter-spacing:.18em;text-transform:uppercase;color:var(--emerald);
}
.eyebrow::before{content:'';width:16px;height:1px;background:var(--marigold);display:block;}

.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease), transform .8s var(--ease);}
.reveal.is-visible{opacity:1;transform:translateY(0);}
.reveal-scale{opacity:0;transform:scale(.94);transition:opacity .8s var(--ease), transform .8s var(--ease);}
.reveal-scale.is-visible{opacity:1;transform:scale(1);}
.reveal-stagger > * {opacity:0;transform:translateY(22px);transition:opacity .65s var(--ease), transform .65s var(--ease);}
.reveal-stagger.is-visible > *{opacity:1;transform:translateY(0);}
.reveal-stagger.is-visible > *:nth-child(1){transition-delay:.04s;}
.reveal-stagger.is-visible > *:nth-child(2){transition-delay:.1s;}
.reveal-stagger.is-visible > *:nth-child(3){transition-delay:.16s;}
.reveal-stagger.is-visible > *:nth-child(4){transition-delay:.22s;}
.reveal-stagger.is-visible > *:nth-child(5){transition-delay:.28s;}
.reveal-stagger.is-visible > *:nth-child(6){transition-delay:.34s;}

@media (prefers-reduced-motion: reduce){
    .reveal,.reveal-scale,.reveal-stagger > *{opacity:1 !important;transform:none !important;transition:none !important;}
}

/* shared section heading pattern (used across home/about/contact) */
.section{padding:clamp(3rem,6vw,4.5rem) 0;}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;margin-bottom:2rem;flex-wrap:wrap;}
.section-head h2{font-size:clamp(1.5rem,2.6vw,2.1rem);margin-top:.5rem;}
.section-head .view-all{
    font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
    border-bottom:1px solid var(--ink);padding-bottom:2px;
    transition:color .25s var(--ease), border-color .25s var(--ease);
}
.section-head .view-all:hover{color:var(--emerald);border-color:var(--emerald);}

/* shared "page header" pattern (used on About / Contact) */
.page-header{
    position:relative;padding:clamp(3rem,7vw,5.5rem) 0 clamp(2.5rem,5vw,4rem);
    background:var(--ivory-alt);text-align:center;overflow:hidden;
}
.page-header h1{
    font-size:clamp(2.2rem,5vw,3.4rem);margin:.9rem auto .9rem;max-width:16ch;
    opacity:0;transform:translateY(18px);animation:heroIn .8s .2s var(--ease) forwards;
}
.page-header p{
    font-size:1rem;color:var(--text-soft);max-width:52ch;margin:0 auto;
    opacity:0;transform:translateY(18px);animation:heroIn .8s .38s var(--ease) forwards;
}

.page-header .eyebrow{justify-content:center;opacity:0;transform:translateY(18px);animation:heroIn .8s .06s var(--ease) forwards;}
@keyframes heroIn{to{opacity:1;transform:translateY(0);}}

/* category page-header meta row (light, matches page-header pattern site-wide) */
.page-header-meta{
    display:flex;justify-content:center;gap:2.25rem;margin-top:1.75rem;flex-wrap:wrap;
    opacity:0;transform:translateY(18px);animation:heroIn .8s .5s var(--ease) forwards;
}
.page-header-meta div{display:flex;flex-direction:column;align-items:center;gap:.2rem;}
.page-header-meta strong{font-family:'Fraunces',serif;font-style:italic;font-size:1.35rem;color:var(--emerald);}
.page-header-meta span{font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-soft);}

/* ---------- 3. announcement bar ---------- */
.announce-bar{
    height:var(--announce-h);background:var(--ink);color:var(--ivory-alt);
    display:flex;align-items:center;justify-content:center;
    font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;font-weight:500;
    position:relative;overflow:hidden;
}
.announce-track{position:relative;width:100%;text-align:center;height:100%;}
.announce-item{
    position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:.6rem;
    opacity:0;transform:translateY(10px);
    transition:opacity .5s var(--ease), transform .5s var(--ease);pointer-events:none;
}
.announce-item.active{opacity:1;transform:translateY(0);pointer-events:auto;}
.announce-item span.gem{color:var(--marigold-light);}

/* ---------- 4. header + mobile drawer ---------- */
.site-header{
    position:sticky;top:0;z-index:50;background:var(--ivory);color:var(--ink);
    height:var(--header-h);display:flex;align-items:center;
    border-bottom:1px solid var(--line);
    transition:height .35s var(--ease), box-shadow .35s var(--ease);
}
.site-header.is-scrolled{
    height:var(--header-h-scrolled);
    box-shadow:0 8px 24px rgba(28,20,15,.08);
}
.header-inner{display:flex;align-items:center;gap:clamp(1.5rem,3vw,3rem);width:100%;}
.header-nav{display:none;gap:1.5rem;font-size:.76rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;flex:1 1 auto;white-space:nowrap;}
.header-nav a{position:relative;padding:4px 0;white-space:nowrap;}
.header-nav a::after{
    content:'';position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--marigold);
    transition:width .3s var(--ease);
}
.header-nav a:hover::after{width:100%;}
.logo{text-align:left;flex:0 0 auto;white-space:nowrap;}
.logo-mark{
    font-family:'Fraunces',serif;font-style:italic;font-weight:450;
    font-size:clamp(1.3rem,2.4vw,1.9rem);letter-spacing:.03em;transition:font-size .35s var(--ease);
}
.logo-sub{display:block;font-size:.58rem;letter-spacing:.32em;text-transform:uppercase;color:var(--text-soft);margin-top:1px;}
.logo-img{
    height:clamp(48px,6vw,72px);width:auto;display:block;
    transition:height .35s var(--ease);
}
.site-header.is-scrolled .logo-img{height:clamp(38px,4.6vw,54px);}
.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:1.35rem;flex:0 0 auto;margin-left:auto;}
.icon-btn{position:relative;display:flex;transition:transform .25s var(--ease), color .25s var(--ease);}
.icon-btn:hover{transform:translateY(-2px);color:var(--emerald);}
/* header search */
.header-search{
    position:relative;display:flex;align-items:center;
    border:1px solid var(--line);background:var(--ivory-alt);
    border-radius:999px;height:40px;padding:0 .3rem 0 1rem;
    flex:0 1 220px;min-width:0;transition:border-color .25s var(--ease), flex-basis .3s var(--ease);
}
.header-search:focus-within{border-color:var(--marigold);}
.header-search-icon{flex:0 0 auto;color:var(--text-soft);margin-right:.55rem;}
.header-search-input{
    flex:1;min-width:0;border:none;background:transparent;font-family:inherit;
    font-size:.85rem;color:var(--ink);height:100%;
}
.header-search-input::placeholder{color:var(--text-soft);}
.header-search-input:focus{outline:none;}
.header-search-toggle{display:none;}

@media (max-width:640px){
    .header-search{
        flex-basis:0;width:40px;height:40px;padding:0;border-color:transparent;background:transparent;overflow:hidden;
    }
    .header-search-icon{display:none;}
    .header-search-input{width:0;padding:0;opacity:0;}
    .header-search-toggle{display:flex;}
    .header-search.open{
        flex-basis:200px;width:200px;padding:0 .3rem 0 1rem;border-color:var(--line);background:var(--ivory-alt);
        position:absolute;right:56px;top:50%;transform:translateY(-50%);z-index:5;
    }
    .header-search.open .header-search-input{width:auto;padding:0;opacity:1;}
    .header-search.open .header-search-icon{display:block;}
}
.cart-dot{
    position:absolute;top:-3px;right:-3px;width:8px;height:8px;border-radius:50%;
    background:var(--wine);transform:scale(0);transition:transform .3s var(--ease);
}
.cart-dot.show{transform:scale(1);}
.burger{display:flex;flex-direction:column;gap:5px;}
.burger span{width:22px;height:2px;background:var(--ink);transition:transform .3s var(--ease), opacity .3s var(--ease);}

@media (min-width:960px){
    .header-nav{display:flex;}
    .burger{display:none;}
}

.drawer-overlay{
    position:fixed;inset:0;background:rgba(28,20,15,.5);z-index:60;
    opacity:0;pointer-events:none;transition:opacity .35s var(--ease);
}
.drawer-overlay.open{opacity:1;pointer-events:auto;}
.drawer{
    position:fixed;top:0;left:0;bottom:0;width:min(320px,84vw);background:var(--ivory);color:var(--ink);
    z-index:70;transform:translateX(-100%);transition:transform .45s var(--ease);
    overflow-y:auto;padding:1.75rem 1.5rem;
}
.drawer.open{transform:translateX(0);}
.drawer-close{margin-bottom:1.5rem;font-size:1.5rem;font-family:'Fraunces',serif;}
.drawer-logo{font-family:'Fraunces',serif;font-style:italic;font-size:1.15rem;margin-bottom:.25rem;}
.drawer-logo-img{height:44px;width:auto;display:block;margin-bottom:.25rem;}
.drawer a{
    display:block;padding:.85rem 0;border-bottom:1px dashed var(--line);
    font-size:.95rem;transition:padding-left .25s var(--ease), color .25s var(--ease);
}
.drawer a:hover{padding-left:8px;color:var(--emerald);}

/* ---------- 5. buttons (shared) ---------- */
.btn{
    display:inline-flex;align-items:center;gap:.55rem;padding:.95rem 2.1rem;
    background:var(--ink);color:var(--ivory);
    font-size:.76rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
    position:relative;overflow:hidden;transition:color .35s var(--ease), transform .25s var(--ease);
}
.btn::before{
    content:'';position:absolute;inset:0;background:var(--emerald);
    transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease);z-index:-1;
}
.btn:hover{transform:translateY(-2px);}
.btn:hover::before{transform:scaleX(1);}
.btn-outline{background:transparent;color:var(--ink);border:1px solid var(--ink);}
.btn-outline::before{background:var(--ink);}
.btn-outline:hover{color:var(--ivory);}

/* ---------- 6. back-to-top / whatsapp fab ---------- */
.back-to-top{
    position:fixed;right:22px;bottom:92px;z-index:40;width:44px;height:44px;border-radius:50%;
    background:var(--ink);color:var(--ivory);display:flex;align-items:center;justify-content:center;
    opacity:0;transform:translateY(12px);pointer-events:none;
    transition:opacity .3s var(--ease), transform .3s var(--ease), background .25s var(--ease);
}
.back-to-top:hover{background:var(--emerald);}
.back-to-top.show{opacity:1;transform:translateY(0);pointer-events:auto;}
.whatsapp-fab{
    position:fixed;right:22px;bottom:26px;z-index:40;width:44px;height:44px;border-radius:50%;
    background:#25D366;display:flex;align-items:center;justify-content:center;
    box-shadow:0 6px 20px rgba(28,20,15,.28);
    animation:pulse 2.6s infinite;
}
@keyframes pulse{
    0%{box-shadow:0 0 0 0 rgba(37,211,102,.5);}
    70%{box-shadow:0 0 0 14px rgba(37,211,102,0);}
    100%{box-shadow:0 0 0 0 rgba(37,211,102,0);}
}

/* ---------- 7. footer ---------- */
.site-footer{background:var(--ink);color:var(--ivory-alt);padding:0 0 1.75rem;}
.footer-top-stitch{
    height:1px;width:100%;
    background-image:repeating-linear-gradient(90deg, var(--marigold) 0 6px, transparent 6px 12px);
}
.footer-logo-img{height:66px;width:auto;display:block;margin-bottom:1rem;}
.footer-grid{display:grid;gap:2.75rem;grid-template-columns:1fr;padding:3.75rem 0 2.5rem;}
@media (min-width:768px){.footer-grid{grid-template-columns:1.3fr 1fr 1fr 1.2fr;}}
.footer-logo{font-family:'Fraunces',serif;font-style:italic;font-size:1.3rem;margin-bottom:1rem;color:var(--ivory);}
.footer-heading{
    font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;
    margin-bottom:1.1rem;color:var(--marigold-light);
}
.footer-links a{
    display:block;color:var(--ivory-alt);opacity:.8;font-size:.88rem;margin-bottom:.65rem;
    transition:opacity .25s var(--ease), padding-left .25s var(--ease);
}
.footer-links a:hover{opacity:1;padding-left:5px;color:var(--marigold-light);}
.newsletter-form{display:flex;gap:0;margin-top:.9rem;border:1px solid rgba(250,245,236,.28);}
.newsletter-form input{
    flex:1;min-width:120px;padding:.85rem 1rem;background:transparent;color:var(--ivory);
    font-size:.85rem;border:none;
}
.newsletter-form input::placeholder{color:rgba(250,245,236,.5);}
.newsletter-form button{
    padding:.85rem 1.3rem;background:var(--marigold);color:var(--ink);font-size:.72rem;font-weight:700;
    letter-spacing:.08em;text-transform:uppercase;transition:background .25s var(--ease);
}
.newsletter-form button:hover{background:var(--marigold-light);}
.social-row{display:flex;gap:.85rem;margin-top:1.4rem;}
.social-row a{
    width:36px;height:36px;border-radius:50%;border:1px solid rgba(250,245,236,.3);
    display:flex;align-items:center;justify-content:center;color:var(--ivory-alt);
    transition:background .25s var(--ease), border-color .25s var(--ease), transform .25s var(--ease);
}
.social-row a:hover{background:var(--marigold);border-color:var(--marigold);color:var(--ink);transform:translateY(-3px);}
.footer-bottom{
    padding-top:1.75rem;border-top:1px solid rgba(250,245,236,.14);
    display:flex;justify-content:space-between;flex-wrap:wrap;gap:.75rem;
    font-size:.75rem;color:rgba(250,245,236,.55);white-space:nowrap;
}
.footer-bottom a{text-decoration:none;transition:color .25s var(--ease);}
.footer-bottom a:hover{color:var(--marigold-light);}

/* =========================================================
   8. HOME PAGE
   ========================================================= */

.category-rail-section{
    height:var(--rail-h);
    display:flex;align-items:center;
    border-bottom:1px solid var(--line);
    overflow:hidden;
}
.category-rail-section .container{
    min-width:0;
}
.category-rail{
    display:flex;gap:.7rem;overflow-x:auto;scroll-snap-type:x mandatory;
    scrollbar-width:none;width:100%;padding:0;
}
.category-rail::-webkit-scrollbar{display:none;}
.category-pill{
    flex:0 0 auto;scroll-snap-align:start;padding:.65rem 1.3rem;border:1px solid var(--line);
    border-radius:999px;font-size:.76rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;
    color:var(--ink-soft);transition:background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease);
}
.category-pill:hover, .category-pill.active{background:var(--ink);color:var(--ivory);border-color:var(--ink);}

/* hero */
.hero{
    position:relative;padding:clamp(2.5rem,5vw,4.5rem) 0 clamp(3rem,6vw,5rem);
    background:var(--ivory-alt);overflow:hidden;
}
.hero-grid{display:grid;grid-template-columns:1fr;gap:2.75rem;align-items:center;}
@media (min-width:900px){.hero-grid{grid-template-columns:1.1fr .9fr;gap:3.5rem;}}
.hero-frame{position:relative;order:2;}
@media (min-width:900px){.hero-frame{order:1;}}
.hero-frame::before{
    content:'';position:absolute;top:18px;left:18px;right:-18px;bottom:-18px;
    border:1px solid var(--marigold);z-index:0;
}
.hero-frame .frame-inner{position:relative;z-index:1;aspect-ratio:4/5;overflow:hidden;}
.hero-frame .frame-inner img{width:100%;height:100%;object-fit:cover;transform:scale(1.02);transition:transform 8s var(--ease);}
.hero:hover .hero-frame .frame-inner img{transform:scale(1.1);}
.hero-tag{
    position:absolute;left:-14px;bottom:28px;z-index:2;background:var(--ink);color:var(--ivory);
    padding:.8rem 1.1rem;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;
    display:flex;flex-direction:column;gap:2px;
}
.hero-tag strong{font-family:'Fraunces',serif;font-style:italic;font-size:.95rem;letter-spacing:0;text-transform:none;color:var(--marigold-light);}
.hero-copy{order:1;}
@media (min-width:900px){.hero-copy{order:2;}}
.hero-copy h1{
    font-size:clamp(2.4rem,5vw,3.6rem);line-height:1.05;margin:.9rem 0 1.1rem;
    opacity:0;transform:translateY(18px);animation:heroIn .8s .25s var(--ease) forwards;
}
.hero-copy p{
    font-size:1rem;color:var(--text-soft);margin-bottom:1.75rem;max-width:38ch;
    opacity:0;transform:translateY(18px);animation:heroIn .8s .42s var(--ease) forwards;
}
.hero-copy .btn{opacity:0;transform:translateY(18px);animation:heroIn .8s .58s var(--ease) forwards;}
.hero-copy .eyebrow{opacity:0;transform:translateY(18px);animation:heroIn .8s .1s var(--ease) forwards;}

/* shop by category: full-bleed equal grid */
.category-heading{padding-bottom:1.5rem;}
.category-grid{display:grid;grid-template-columns:repeat(3,1fr);}
@media (max-width:900px){.category-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.category-grid{grid-template-columns:1fr;}}
.category-tile{position:relative;overflow:hidden;aspect-ratio:3/4;background:var(--ivory-alt);}
@media (min-width:900px){.category-tile{aspect-ratio:4/5;}}
.category-tile img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease);}
.category-tile:hover img{transform:scale(1.06);}
.category-tile::after{
    content:'';position:absolute;inset:0;
    background:linear-gradient(180deg,transparent 45%,rgba(28,20,15,.5));
}
.category-tile .cat-title{position:absolute;left:0;right:0;bottom:2.6rem;z-index:2;text-align:center;padding:0 1rem;}
.category-tile .cat-title span{
    font-family:'Fraunces',serif;font-size:clamp(1.4rem,2.6vw,2.3rem);
    letter-spacing:.08em;text-transform:uppercase;color:var(--ivory);
    text-shadow:0 4px 20px rgba(0,0,0,.35);
}
.category-badge{
    position:absolute;left:14px;bottom:14px;z-index:2;display:flex;align-items:center;gap:.4rem;
    background:rgba(28,20,15,.85);color:var(--ivory);font-size:.68rem;font-weight:600;
    letter-spacing:.03em;padding:.5rem .8rem;
}

/* shop by occasion */
.occasion-grid{display:grid;gap:.9rem;grid-template-columns:repeat(2,1fr);}
@media (min-width:760px){.occasion-grid{grid-template-columns:repeat(4,1fr);gap:1rem;}}
.occasion-tile{position:relative;overflow:hidden;aspect-ratio:3/4.3;background:var(--ivory-alt);}
.occasion-tile img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease);}
.occasion-tile:hover img{transform:scale(1.07);}
.occasion-tile::after{
    content:'';position:absolute;inset:0;
    background:linear-gradient(180deg, rgba(28,20,15,.05) 0%, rgba(28,20,15,.1) 40%, rgba(28,20,15,.6) 100%);
    transition:background .4s var(--ease);
}
.occasion-tile:hover::after{background:linear-gradient(180deg, rgba(28,20,15,.1) 0%, rgba(28,20,15,.2) 40%, rgba(28,20,15,.7) 100%);}
.occasion-label{position:absolute;left:0;right:0;top:60%;z-index:2;text-align:center;padding:0 .75rem;}
.occasion-label span{
    font-family:'Fraunces',serif;font-style:italic;font-weight:450;
    font-size:clamp(1.35rem,2.4vw,1.9rem);letter-spacing:.01em;color:var(--ivory);
    text-shadow:0 4px 22px rgba(0,0,0,.4);
}
.occasion-tile.-accent .occasion-label span{color:var(--marigold-light);}

/* style grid */
.style-grid{display:grid;gap:1.4rem;grid-template-columns:repeat(2,1fr);}
@media (min-width:700px){.style-grid{grid-template-columns:repeat(5,1fr);}}
.style-item{text-align:left;}
.style-item .frame{overflow:hidden;aspect-ratio:3/4;margin-bottom:.85rem;position:relative;}
.style-item img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease);}
.style-item:hover img{transform:scale(1.08);}
.style-item .frame::after{
    content:'Shop →';position:absolute;left:.9rem;bottom:.9rem;color:var(--ivory);
    font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;
    opacity:0;transform:translateY(6px);transition:opacity .3s var(--ease), transform .3s var(--ease);
}
.style-item:hover .frame::after{opacity:1;transform:translateY(0);}
.style-item .frame::before{
    content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(28,20,15,.5));
    opacity:0;transition:opacity .3s var(--ease);
}
.style-item:hover .frame::before{opacity:1;}
.style-item p{font-family:'Fraunces',serif;font-size:.98rem;}

/* seasonal promo banner: full-bleed image background, copy overlaid right */
.promo-banner{
    position:relative;overflow:hidden;
    min-height:420px;display:flex;align-items:center;
}
@media (min-width:860px){.promo-banner{min-height:520px;}}
.promo-bg{
    position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;
    transition:transform 1.2s var(--ease);z-index:0;
}
.promo-banner:hover .promo-bg{transform:scale(1.04);}
.promo-tint{
    position:absolute;inset:0;z-index:1;
    background:linear-gradient(90deg, rgba(28,20,15,.15) 0%, rgba(28,20,15,.15) 45%, rgba(28,20,15,.65) 100%);
}
.promo-copy{
    position:relative;z-index:2;
    display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:.4rem;
    padding:clamp(2.25rem,5vw,4rem) clamp(1.5rem,5vw,5rem);text-align:left;
    margin-left:auto;max-width:520px;width:100%;
}
.promo-copy .eyebrow{color:var(--marigold-light);}
.promo-copy .eyebrow::before{background:var(--marigold-light);}
.promo-copy h2{
    font-style:italic;font-weight:450;font-size:clamp(2rem,4.4vw,3.1rem);
    margin:.35rem 0 .4rem;color:var(--ivory);
}
.promo-copy p.sub{
    font-family:'Fraunces',serif;font-size:clamp(1rem,1.6vw,1.25rem);color:rgba(250,245,236,.85);
    margin-bottom:1.75rem;
}
.promo-copy .btn{background:var(--ivory);color:var(--ink);border:1px solid var(--ivory);padding:1rem 2.6rem;letter-spacing:.14em;}
.promo-copy .btn::before{background:var(--ink);}
.promo-copy .btn:hover{color:var(--ivory);}

/* banner strip: full-bleed ink editorial */
.banner-strip{
    position:relative;min-height:52vh;display:flex;align-items:center;justify-content:center;
    background:var(--ink);overflow:hidden;text-align:center;color:var(--ivory);
}
.banner-strip::before, .banner-strip::after{
    content:'';position:absolute;left:0;right:0;height:1px;
    background-image:repeating-linear-gradient(90deg, var(--marigold) 0 6px, transparent 6px 12px);
}
.banner-strip::before{top:0;} .banner-strip::after{bottom:0;}
.banner-strip img{
    position:absolute;top:0;bottom:0;width:30%;object-fit:cover;
    opacity:0;transition:opacity .9s var(--ease), transform .9s var(--ease);filter:brightness(.65) saturate(1.05);
}
.banner-strip img.left{left:0;transform:translateX(-40px);}
.banner-strip img.right{right:0;transform:translateX(40px);}
.banner-strip.is-visible img{opacity:1;transform:translateX(0);}
.banner-strip .banner-text{position:relative;z-index:2;padding:0 1.5rem;}
.banner-strip .eyebrow{color:var(--marigold-light);justify-content:center;}
.banner-strip .eyebrow::before{background:var(--marigold-light);}
.banner-strip h2{font-size:clamp(1.9rem,3.8vw,3rem);margin:.75rem 0 .6rem;color:var(--ivory);}
.banner-strip p{color:rgba(250,245,236,.7);}

/* visit our store */
.store-visit{
    position:relative;overflow:hidden;min-height:54vh;
    display:flex;align-items:center;justify-content:center;text-align:center;color:var(--ivory);
}
.store-visit::before, .store-visit::after{
    content:'';position:absolute;left:0;right:0;height:1px;z-index:3;
    background-image:repeating-linear-gradient(90deg, var(--marigold-light) 0 6px, transparent 6px 12px);
}
.store-visit::before{top:0;} .store-visit::after{bottom:0;}
.store-visit-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;filter:saturate(1.05);}
.store-visit-tint{position:absolute;inset:0;z-index:1;background:rgba(0,0,0,0.4);}
.store-visit-content{position:relative;z-index:2;padding:2rem 1.5rem;max-width:640px;}
.store-visit-content .eyebrow{justify-content:center;color:var(--marigold-light);}
.store-visit-content .eyebrow::before{background:var(--marigold-light);}
.store-visit-content h2{font-size:clamp(2.1rem,5vw,3.4rem);color:var(--ivory);margin:.7rem 0 .55rem;letter-spacing:.02em;}
.store-visit-content p.tagline{
    font-size:.95rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(250,245,236,.85);
    margin-bottom:1.9rem;
}
.store-visit-content .btn{background:var(--ivory);color:var(--ink);}
.store-visit-content .btn::before{background:var(--marigold);}
.store-visit-content .btn:hover{color:var(--ink);}

/* palette swatches + product row */
.chip-row{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:2rem;}
.chip{
    display:flex;align-items:center;gap:.55rem;padding:.5rem .95rem .5rem .5rem;border:1px solid var(--line);
    font-size:.78rem;font-weight:500;transition:all .25s var(--ease);
}
.chip .swatch{width:22px;height:22px;display:block;border:1px solid rgba(28,20,15,.15);}
.chip:hover{border-color:var(--ink);}
.chip.active{background:var(--ink);color:var(--ivory);border-color:var(--ink);}
.chip.active .swatch{border-color:rgba(250,245,236,.4);}

.product-row{display:grid;gap:1.5rem;grid-template-columns:repeat(2,1fr);}
@media (min-width:700px){.product-row{grid-template-columns:repeat(4,1fr);}}
.product-card{position:relative;}
.product-card .frame{position:relative;overflow:hidden;aspect-ratio:3/4;background:var(--ivory-alt);}
.product-card img{width:100%;height:100%;object-fit:cover;transition:transform .55s var(--ease);}
.product-card:hover img{transform:scale(1.06);}
.status-badges{position:absolute;top:12px;left:12px;display:flex;flex-direction:column;gap:.35rem;align-items:flex-start;}
.status-badge{
    background:var(--ink);color:var(--ivory);font-size:.62rem;font-weight:700;letter-spacing:.06em;
    text-transform:uppercase;padding:.32rem .55rem;
}
.status-badge.-alt{background:var(--emerald);}
.wish-btn{
    position:absolute;top:12px;right:12px;width:34px;height:34px;border-radius:50%;background:var(--ivory);
    display:flex;align-items:center;justify-content:center;opacity:0;transform:translateY(-8px);
    transition:opacity .3s var(--ease), transform .3s var(--ease);
}
.product-card:hover .wish-btn{opacity:1;transform:translateY(0);}
.add-cart-slide{
    position:absolute;left:0;right:0;bottom:0;background:var(--ink);color:var(--marigold-light);text-align:center;
    font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:600;padding:.7rem;
    transform:translateY(100%);transition:transform .3s var(--ease);
}
.product-card:hover .add-cart-slide{transform:translateY(0);}
.product-info{padding-top:.85rem;}
.product-info p.name{font-family:'Fraunces',serif;font-size:.95rem;margin-bottom:.4rem;}
.price-old{color:var(--text-soft);text-decoration:line-through;font-size:.8rem;margin-right:.4rem;}
.price-new{font-weight:700;font-size:.92rem;color:var(--emerald);}
.discount{color:var(--wine);font-size:.75rem;margin-left:.5rem;font-weight:600;}

/* follow strip */
.gallery-strip{display:grid;gap:.5rem;grid-template-columns:repeat(3,1fr);}
@media (min-width:700px){.gallery-strip{grid-template-columns:repeat(6,1fr);}}
.gallery-strip .frame{overflow:hidden;aspect-ratio:1;position:relative;}
.gallery-strip img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease);}
.gallery-strip .frame::after{
    content:'♡';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
    color:var(--ivory);font-size:1.3rem;background:rgba(28,20,15,.35);
    opacity:0;transition:opacity .3s var(--ease);
}
.gallery-strip .frame:hover::after{opacity:1;}
.gallery-strip .frame:hover img{transform:scale(1.08);}

/* =========================================================
   9. ABOUT PAGE
   ========================================================= */

/* stats strip */
.stats-strip{background:var(--ink);color:var(--ivory);}
.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);}
@media (min-width:760px){.stats-grid{grid-template-columns:repeat(4,1fr);}}
.stat-item{
    padding:clamp(2rem,4vw,3rem) 1.5rem;text-align:center;
    border-right:1px solid rgba(250,245,236,.14);border-bottom:1px solid rgba(250,245,236,.14);
}
@media (min-width:760px){.stat-item:nth-child(4n){border-right:none;} .stat-item{border-bottom:none;}}
@media (max-width:759px){.stat-item:nth-child(2n){border-right:none;} .stat-item:nth-child(n+3){border-bottom:none;}}
.stat-item strong{
    display:block;font-family:'Fraunces',serif;font-style:italic;font-weight:450;
    font-size:clamp(1.9rem,3.6vw,2.6rem);color:var(--marigold-light);margin-bottom:.35rem;
}
.stat-item span{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(250,245,236,.7);}

/* story split */
.story-grid{display:grid;grid-template-columns:1fr;gap:2.75rem;align-items:center;}
@media (min-width:900px){.story-grid{grid-template-columns:.95fr 1.05fr;gap:4rem;}}
.story-frame{position:relative;}
.story-frame::before{
    content:'';position:absolute;top:18px;left:18px;right:-18px;bottom:-18px;
    border:1px solid var(--marigold);z-index:0;
}
.story-frame.reverse::before{left:-18px;right:18px;}
.story-frame .frame-inner{position:relative;z-index:1;aspect-ratio:4/5;overflow:hidden;}
.story-frame .frame-inner img{width:100%;height:100%;object-fit:cover;}
.story-copy h2{font-size:clamp(1.7rem,3vw,2.4rem);margin:.75rem 0 1.1rem;}
.story-copy p{color:var(--text-soft);margin-bottom:1.1rem;max-width:52ch;}
.story-copy p:last-of-type{margin-bottom:0;}
.story-row{order:1;}
.story-row.flip .story-frame{order:2;}
.story-row.flip .story-copy{order:1;}
@media (min-width:900px){
    .story-row.flip .story-frame{order:1;}
    .story-row.flip .story-copy{order:2;}
}
.story-row + .story-row{margin-top:clamp(3rem,6vw,5rem);}

/* values */
.values-grid{display:grid;gap:1.4rem;grid-template-columns:1fr;}
@media (min-width:640px){.values-grid{grid-template-columns:repeat(2,1fr);}}
@media (min-width:1000px){.values-grid{grid-template-columns:repeat(4,1fr);}}
.value-card{
    padding:2.25rem 1.75rem;border:1px solid var(--line);background:var(--ivory);
    transition:border-color .3s var(--ease), transform .3s var(--ease);
}
.value-card:hover{border-color:var(--marigold);transform:translateY(-4px);}
.value-card .num{
    font-family:'Fraunces',serif;font-style:italic;font-size:1.5rem;color:var(--marigold);
    margin-bottom:1rem;display:block;
}
.value-card h3{font-size:1.15rem;margin-bottom:.6rem;}
.value-card p{font-size:.88rem;color:var(--text-soft);}

/* craftsmanship quote strip */
.quote-strip{
    position:relative;min-height:44vh;display:flex;align-items:center;justify-content:center;
    background:var(--emerald-dark);overflow:hidden;text-align:center;color:var(--ivory);
}
.quote-strip::before,.quote-strip::after{
    content:'';position:absolute;left:0;right:0;height:1px;
    background-image:repeating-linear-gradient(90deg, var(--marigold-light) 0 6px, transparent 6px 12px);
}
.quote-strip::before{top:0;} .quote-strip::after{bottom:0;}
.quote-strip blockquote{
    position:relative;z-index:2;padding:0 1.5rem;max-width:720px;
    font-family:'Fraunces',serif;font-style:italic;font-weight:450;
    font-size:clamp(1.4rem,3.2vw,2.1rem);line-height:1.4;
}
.quote-strip cite{
    display:block;margin-top:1.4rem;font-family:'Manrope',sans-serif;font-style:normal;
    font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--marigold-light);
}

/* =========================================================
   10. CONTACT PAGE
   ========================================================= */

.contact-info-grid{display:grid;gap:1.2rem;grid-template-columns:1fr;}
@media (min-width:640px){.contact-info-grid{grid-template-columns:repeat(2,1fr);}}
@media (min-width:1000px){.contact-info-grid{grid-template-columns:repeat(4,1fr);}}
.info-card{
    padding:2rem 1.6rem;border:1px solid var(--line);background:var(--ivory);text-align:left;
    transition:border-color .3s var(--ease), transform .3s var(--ease);
}
.info-card:hover{border-color:var(--marigold);transform:translateY(-4px);}
.info-card .icon-wrap{
    width:46px;height:46px;border-radius:50%;background:var(--ivory-alt);display:flex;
    align-items:center;justify-content:center;margin-bottom:1.1rem;color:var(--emerald);
}
.info-card h3{font-size:1rem;margin-bottom:.45rem;}
.info-card p{font-size:.86rem;color:var(--text-soft);margin-bottom:.15rem;}
.info-card a{color:var(--ink);font-weight:600;}
.info-card a:hover{color:var(--emerald);}

/* contact split: form + media */
.contact-split{background:var(--ivory-alt);overflow:hidden;}
.contact-split-grid{display:grid;grid-template-columns:1fr;}
@media (min-width:900px){.contact-split-grid{grid-template-columns:1fr 1fr;min-height:600px;}}
.contact-media{position:relative;overflow:hidden;aspect-ratio:4/3;}
@media (min-width:900px){.contact-media{aspect-ratio:auto;height:100%;}}
.contact-media img{width:100%;height:100%;object-fit:cover;}
.contact-form-wrap{padding:clamp(2.25rem,5vw,4rem);}
.contact-form-wrap h2{font-size:clamp(1.6rem,2.8vw,2.1rem);margin:.7rem 0 .6rem;}
.contact-form-wrap > p{color:var(--text-soft);margin-bottom:2rem;max-width:48ch;}

.field-row{display:grid;gap:1.1rem;grid-template-columns:1fr;margin-bottom:1.1rem;}
@media (min-width:560px){.field-row.two{grid-template-columns:1fr 1fr;}}
.field label{
    display:block;font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
    color:var(--ink-soft);margin-bottom:.5rem;
}
.field input,.field textarea{
    width:100%;padding:.85rem 1rem;background:var(--ivory);border:1px solid var(--line);
    font-family:inherit;font-size:.9rem;color:var(--ink);transition:border-color .25s var(--ease);
}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--marigold);}
.field textarea{resize:vertical;min-height:130px;}
.contact-form-wrap .btn{margin-top:.4rem;width:100%;justify-content:center;}
@media (min-width:560px){.contact-form-wrap .btn{width:auto;}}

/* map */
.map-wrap{position:relative;width:100%;aspect-ratio:21/8;min-height:280px;filter:grayscale(.15);}
.map-wrap iframe{width:100%;height:100%;border:0;display:block;}

/* FAQ accordion */
.faq-list{max-width:820px;margin:0 auto;}
.faq-item{border-bottom:1px dashed var(--line);}
.faq-q{
    display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;
    padding:1.4rem 0;text-align:left;font-family:'Fraunces',serif;font-size:1.05rem;
}
.faq-q .plus{flex:0 0 auto;font-size:1.3rem;color:var(--marigold);transition:transform .3s var(--ease);}
.faq-item.open .faq-q .plus{transform:rotate(45deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .35s var(--ease);font-size:.9rem;color:var(--text-soft);}
.faq-a p{padding-bottom:1.4rem;max-width:65ch;}

/* =========================================================
   11. LEGAL PAGES (Privacy / Shipping / Returns / Terms)
   ========================================================= */

.legal-header{padding:clamp(2.75rem,6vw,4.5rem) 0 clamp(2rem,4vw,3rem);background:var(--ivory-alt);text-align:center;}
.legal-header h1{font-size:clamp(2rem,4.4vw,3rem);margin:.8rem 0 .6rem;}
.legal-header p{color:var(--text-soft);max-width:52ch;margin:0 auto;font-size:.92rem;}
.legal-header .eyebrow{justify-content:center;}

.legal-layout{display:grid;grid-template-columns:1fr;gap:3rem;padding:clamp(2.5rem,5vw,4rem) 0;}
@media (min-width:960px){.legal-layout{grid-template-columns:260px 1fr;}}

.legal-toc{align-self:start;}
@media (min-width:960px){.legal-toc{position:sticky;top:calc(var(--header-h) + 24px);}}
.legal-toc p.toc-label{font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--text-soft);margin-bottom:1rem;}
.legal-toc a{
    display:block;padding:.55rem 0 .55rem .9rem;font-size:.85rem;color:var(--ink-soft);
    border-left:2px solid var(--line);transition:border-color .25s var(--ease), color .25s var(--ease), padding-left .25s var(--ease);
}
.legal-toc a:hover{border-color:var(--marigold);color:var(--ink);padding-left:1.15rem;}

.legal-content h2{font-size:1.4rem;margin:2.5rem 0 1rem;scroll-margin-top:calc(var(--header-h) + 20px);}
.legal-content h2:first-child{margin-top:0;}
.legal-content h3{font-size:1.02rem;margin:1.5rem 0 .6rem;font-family:'Manrope',sans-serif;font-weight:700;}
.legal-content p{color:var(--text-soft);margin-bottom:.9rem;font-size:.92rem;}
.legal-content ul,.legal-content ol{margin:0 0 1rem 1.2rem;color:var(--text-soft);font-size:.92rem;}
.legal-content li{margin-bottom:.5rem;}
.legal-content a.inline-link{color:var(--emerald);font-weight:600;border-bottom:1px solid var(--emerald);}
.legal-content strong{color:var(--ink);}

.legal-callout{
    border-left:3px solid var(--marigold);background:var(--ivory-alt);
    padding:1.2rem 1.4rem;margin:1.2rem 0 1.6rem;font-size:.88rem;color:var(--ink-soft);
}
.legal-callout p{margin-bottom:0;color:var(--ink-soft);}
.legal-callout p + p{margin-top:.6rem;}
.legal-callout.-wine{border-left-color:var(--wine);}
.legal-callout.-emerald{border-left-color:var(--emerald);}

.legal-address{border:1px solid var(--line);padding:1.4rem 1.5rem;margin:1.2rem 0 1.6rem;font-size:.88rem;}
.legal-address strong{display:block;margin-bottom:.3rem;font-family:'Fraunces',serif;font-size:1rem;}

.legal-updated{
    display:inline-block;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;
    color:var(--text-soft);border:1px solid var(--line);padding:.4rem .8rem;margin-bottom:1.5rem;
}

/* mini badge tag (returns policy) */
.policy-tag{
    display:inline-block;font-size:.65rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
    background:var(--ink);color:var(--marigold-light);padding:.3rem .6rem;margin-bottom:.8rem;
}

/* step-style numbered list (shipping policy) */
.steps-list{list-style:none;margin:0 0 1.4rem;counter-reset:step;}
.steps-list li{
    position:relative;padding:.9rem 0 .9rem 2.6rem;border-bottom:1px dashed var(--line);
    color:var(--text-soft);font-size:.9rem;
}
.steps-list li:last-child{border-bottom:none;}
.steps-list li::before{
    counter-increment:step;content:counter(step);
    position:absolute;left:0;top:.85rem;width:1.6rem;height:1.6rem;border-radius:50%;
    background:var(--ink);color:var(--marigold-light);font-size:.72rem;font-weight:700;
    display:flex;align-items:center;justify-content:center;
}
/* =========================================================
   12. CART PAGE
   ========================================================= */

.cart-layout{display:grid;grid-template-columns:1fr;gap:2.5rem;align-items:start;}
@media (min-width:960px){.cart-layout{grid-template-columns:1.7fr 1fr;gap:3rem;}}

.cart-items{display:flex;flex-direction:column;}
.cart-item{
    display:grid;grid-template-columns:88px 1fr;gap:1.1rem;
    padding:1.5rem 0;border-bottom:1px solid var(--line);
}
@media (min-width:640px){.cart-item{grid-template-columns:100px 1fr auto auto;align-items:center;gap:1.4rem;}}
.cart-item:first-child{padding-top:0;}
.cart-item-media{
    width:88px;height:110px;overflow:hidden;background:var(--ivory-alt);flex:0 0 auto;
}
@media (min-width:640px){.cart-item-media{width:100px;height:126px;}}
.cart-item-media img{width:100%;height:100%;object-fit:cover;}
.cart-item-info{min-width:0;}
.cart-item-name{font-family:'Fraunces',serif;font-size:1rem;margin-bottom:.35rem;}
.cart-item-meta{font-size:.8rem;color:var(--text-soft);margin-bottom:.7rem;}
.cart-item-remove{
    display:inline-flex;align-items:center;gap:.35rem;font-size:.72rem;font-weight:600;
    letter-spacing:.04em;text-transform:uppercase;color:var(--wine);
    transition:opacity .25s var(--ease);
}
.cart-item-remove:hover{opacity:.7;}
.cart-item-qty{grid-column:2;margin-top:.5rem;}
@media (min-width:640px){.cart-item-qty{grid-column:auto;margin-top:0;}}
.qty-stepper{
    display:inline-flex;align-items:center;border:1px solid var(--line);width:fit-content;
}
.qty-btn{
    width:32px;height:32px;display:flex;align-items:center;justify-content:center;
    font-size:1rem;color:var(--ink-soft);transition:background .25s var(--ease), color .25s var(--ease);
}
.qty-btn:hover{background:var(--ink);color:var(--ivory);}
.qty-input{
    width:36px;text-align:center;border:none;border-left:1px solid var(--line);border-right:1px solid var(--line);
    font-size:.85rem;font-weight:600;background:transparent;color:var(--ink);
}
.cart-item-price{grid-column:2;margin-top:.5rem;text-align:left;}
@media (min-width:640px){.cart-item-price{grid-column:auto;margin-top:0;text-align:right;min-width:100px;}}
.cart-item-price .price-new{display:block;font-size:1rem;}
.cart-item-price .price-old{display:block;margin:.2rem 0 0;}

.cart-summary{
    border:1px solid var(--line);background:var(--ivory-alt);padding:1.9rem 1.75rem;
}
@media (min-width:960px){.cart-summary{position:sticky;top:calc(var(--header-h) + 24px);}}
.cart-summary h2{font-size:1.25rem;margin-bottom:1.4rem;}
.summary-row{display:flex;align-items:center;justify-content:space-between;font-size:.88rem;color:var(--text-soft);margin-bottom:.9rem;}
.summary-row .discount-text{color:var(--wine);font-weight:600;}
.summary-row.total{
    color:var(--ink);font-size:1.05rem;font-weight:700;margin:1.2rem 0 1.5rem;
}
.summary-row.total span:last-child{font-family:'Fraunces',serif;font-size:1.3rem;font-weight:450;color:var(--emerald);}

.promo-row{display:flex;gap:0;margin-bottom:1.5rem;border:1px solid var(--line);}
.promo-row input{
    flex:1;min-width:0;padding:.8rem 1rem;background:var(--ivory);border:none;font-size:.85rem;color:var(--ink);
}
.promo-row .btn-outline{padding:.8rem 1.2rem;font-size:.68rem;border:none;border-left:1px solid var(--line);}

.cart-checkout-btn{width:100%;justify-content:center;margin-bottom:1rem;}
.cart-secure-note{text-align:center;font-size:.76rem;color:var(--text-soft);}

/* =========================================================
   13. WISHLIST PAGE
   ========================================================= */

/* wishlist reuses .product-row / .product-card from the home page —
   this just forces the remove button to stay visible (no hover needed) */
.wishlist-grid .wish-btn{opacity:1;transform:translateY(0);}
.wishlist-grid .add-cart-slide{transform:translateY(0);position:static;padding:.65rem;margin-top:.85rem;width:100%;}
.wishlist-empty{
    text-align:center;padding:clamp(3rem,6vw,5rem) 1.5rem;border:1px dashed var(--line);
}
.wishlist-empty p{color:var(--text-soft);margin:.6rem 0 1.5rem;}

/* =========================================================
   14. CHECKOUT PAGE
   ========================================================= */

.checkout-steps-bar{background:var(--ivory-alt);border-bottom:1px solid var(--line);padding:1.3rem 0;}
.checkout-steps{display:flex;align-items:center;justify-content:center;gap:.75rem;flex-wrap:wrap;}
.checkout-step{
    display:flex;align-items:center;gap:.5rem;font-size:.76rem;font-weight:600;letter-spacing:.04em;
    text-transform:uppercase;color:var(--text-soft);
}
.checkout-step .step-num{
    width:24px;height:24px;border-radius:50%;border:1px solid var(--line);background:var(--ivory);
    display:flex;align-items:center;justify-content:center;font-size:.7rem;color:var(--text-soft);
    font-family:'Manrope',sans-serif;
}
.checkout-step.active{color:var(--ink);}
.checkout-step.active .step-num{background:var(--ink);border-color:var(--ink);color:var(--ivory);}
.checkout-step.done{color:var(--emerald);}
.checkout-step.done .step-num{background:var(--emerald);border-color:var(--emerald);color:var(--ivory);}
.checkout-step-line{width:36px;height:1px;background:var(--line);}

.checkout-layout{display:grid;grid-template-columns:1fr;gap:2.5rem;align-items:start;}
@media (min-width:960px){.checkout-layout{grid-template-columns:1.6fr 1fr;gap:3rem;}}

.checkout-forms{display:flex;flex-direction:column;gap:1.5rem;}
.checkout-card{border:1px solid var(--line);background:var(--ivory);padding:clamp(1.5rem,3vw,2.25rem);}
.checkout-card h2{font-size:1.15rem;margin-bottom:1.4rem;display:flex;align-items:center;gap:.6rem;}
.checkout-card h2 .card-num{
    width:26px;height:26px;border-radius:50%;background:var(--ink);color:var(--marigold-light);
    font-family:'Manrope',sans-serif;font-size:.75rem;font-weight:700;
    display:flex;align-items:center;justify-content:center;flex:0 0 auto;
}

.payment-options{display:flex;flex-direction:column;gap:.8rem;margin-bottom:1.5rem;}
.payment-option{
    display:flex;align-items:center;gap:.85rem;padding:1rem 1.1rem;border:1px solid var(--line);
    cursor:pointer;transition:border-color .25s var(--ease), background .25s var(--ease);
}
.payment-option:hover{border-color:var(--marigold);}
.payment-option input[type="radio"]{accent-color:var(--emerald);width:16px;height:16px;flex:0 0 auto;}
.payment-option.active{border-color:var(--ink);background:var(--ivory-alt);}
.payment-option-label{display:flex;align-items:center;gap:.65rem;font-size:.88rem;font-weight:600;}
.payment-option-label svg{flex:0 0 auto;color:var(--emerald);}
.payment-option-note{font-size:.76rem;color:var(--text-soft);margin-left:auto;}

.checkout-summary{
    border:1px solid var(--line);background:var(--ivory-alt);padding:1.9rem 1.75rem;
}
@media (min-width:960px){.checkout-summary{position:sticky;top:calc(var(--header-h) + 24px);}}
.checkout-summary h2{font-size:1.25rem;margin-bottom:1.4rem;}
.checkout-summary-items{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem;}
.checkout-summary-item{display:flex;align-items:center;gap:.85rem;}
.checkout-summary-item .item-media{
    position:relative;width:52px;height:64px;flex:0 0 auto;overflow:hidden;background:var(--ivory);
}
.checkout-summary-item .item-media img{width:100%;height:100%;object-fit:cover;}
.checkout-summary-item .item-media .item-qty{
    position:absolute;top:-6px;right:-6px;width:19px;height:19px;border-radius:50%;background:var(--ink);
    color:var(--ivory);font-size:.62rem;font-weight:700;display:flex;align-items:center;justify-content:center;
}
.checkout-summary-item .item-info{flex:1;min-width:0;}
.checkout-summary-item .item-name{font-size:.82rem;font-weight:600;margin-bottom:.15rem;}
.checkout-summary-item .item-meta{font-size:.72rem;color:var(--text-soft);}
.checkout-summary-item .item-price{font-size:.85rem;font-weight:700;color:var(--emerald);white-space:nowrap;}

/* =========================================================
   15. SHOP & CATEGORY — BREADCRUMB, TOOLBAR, FILTERS, GRID VIEWS
   ========================================================= */

/* breadcrumb */
.breadcrumb-bar{background:var(--ivory-alt);border-bottom:1px solid var(--line);padding:.9rem 0;}
.breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;font-size:.76rem;font-weight:600;letter-spacing:.03em;color:var(--text-soft);}
.breadcrumb a{color:var(--text-soft);transition:color .25s var(--ease);}
.breadcrumb a:hover{color:var(--emerald);}
.breadcrumb .sep{color:var(--line);}
.breadcrumb .current{color:var(--ink);}

.subcategory-rail{padding:1.4rem 0;border-bottom:1px solid var(--line);}

/* shop toolbar */
.shop-toolbar{
    display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;
    padding-bottom:1.5rem;margin-bottom:1.5rem;border-bottom:1px solid var(--line);
}
.filter-toggle-btn{
    display:none;align-items:center;gap:.55rem;padding:.7rem 1.1rem;border:1px solid var(--ink);
    font-size:.76rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;
    transition:background .25s var(--ease), color .25s var(--ease);
}
.filter-toggle-btn:hover{background:var(--ink);color:var(--ivory);}
.filter-toggle-btn .count-dot{
    background:var(--wine);color:var(--ivory);font-size:.62rem;font-weight:700;
    width:17px;height:17px;border-radius:50%;display:flex;align-items:center;justify-content:center;
}
.shop-result-count{font-size:.85rem;color:var(--text-soft);}
.shop-toolbar-right{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;margin-left:auto;}
.shop-sort{display:flex;align-items:center;gap:.6rem;}
.shop-sort label{font-size:.74rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);white-space:nowrap;}
.shop-sort select{
    border:1px solid var(--line);background:var(--ivory);padding:.6rem 2rem .6rem .9rem;font-size:.82rem;
    color:var(--ink);font-family:inherit;appearance:none;cursor:pointer;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%231c140f' stroke-width='1.4' fill='none'/%3E%3C/svg%3E");
    background-repeat:no-repeat;background-position:right .9rem center;
    transition:border-color .25s var(--ease);
}
.shop-sort select:focus{outline:none;border-color:var(--marigold);}
.view-toggle{display:flex;border:1px solid var(--line);}
.view-toggle button{
    width:38px;height:38px;display:flex;align-items:center;justify-content:center;color:var(--text-soft);
    border-right:1px solid var(--line);transition:background .25s var(--ease), color .25s var(--ease);
}
.view-toggle button:last-child{border-right:none;}
.view-toggle button:hover{color:var(--ink);}
.view-toggle button.active{background:var(--ink);color:var(--ivory);}
@media (max-width:900px){.filter-toggle-btn{display:inline-flex;}}

/* desktop filters collapse toggle */
.filters-collapse-btn{
    display:none;align-items:center;gap:.5rem;padding:.7rem 1.1rem;border:1px solid var(--line);
    font-size:.76rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);
    transition:background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease);
}
.filters-collapse-btn:hover{border-color:var(--ink);color:var(--ink);}
.filters-collapse-btn svg{flex:0 0 auto;}
.filters-collapse-btn.active{background:var(--ink);color:var(--ivory);border-color:var(--ink);}
@media (min-width:900px){.filters-collapse-btn{display:inline-flex;}}

.shop-layout.filters-hidden .shop-filters{display:none;}
@media (min-width:900px){
    .shop-layout.filters-hidden{grid-template-columns:1fr;}
}
@media (min-width:1300px){
    .shop-layout.filters-hidden .shop-grid.-cols4{grid-template-columns:repeat(5,1fr);}
    .shop-layout.filters-hidden .shop-grid.-cols3{grid-template-columns:repeat(4,1fr);}
}

/* active filter tags */
.active-filters{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:2rem;}
.active-filters:empty{display:none;}
.filter-tag{
    display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .5rem .4rem .85rem;
    background:var(--ivory-alt);border:1px solid var(--line);font-size:.76rem;color:var(--ink-soft);
}
.filter-tag button{display:flex;align-items:center;justify-content:center;width:16px;height:16px;color:var(--text-soft);transition:color .2s var(--ease);}
.filter-tag button:hover{color:var(--wine);}
.clear-all-filters{font-size:.75rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--wine);border-bottom:1px solid var(--wine);padding-bottom:2px;}

/* shop layout */
.shop-layout{display:grid;grid-template-columns:1fr;gap:2.5rem;align-items:start;}
@media (min-width:900px){.shop-layout{grid-template-columns:270px 1fr;}}

/* filters sidebar */
.shop-filters{align-self:start;}
@media (min-width:900px){
    .shop-filters{position:sticky;top:calc(var(--header-h) + 24px);max-height:calc(100vh - var(--header-h) - 48px);overflow-y:auto;padding-right:.5rem;}
}
.filters-head-mobile{display:none;align-items:center;justify-content:space-between;margin-bottom:1.3rem;padding-bottom:1rem;border-bottom:1px solid var(--line);}
.filters-head-mobile h3{font-size:1.15rem;}
.filters-head-mobile button{font-size:1.5rem;font-family:'Fraunces',serif;color:var(--text-soft);}

.filter-group{border-bottom:1px solid var(--line);padding:1.3rem 0;}
.filter-group:first-child{padding-top:0;}
.filter-group-head{display:flex;align-items:center;justify-content:space-between;width:100%;font-family:'Fraunces',serif;font-size:1rem;color:var(--ink);}
.filter-group-head svg{transition:transform .3s var(--ease);color:var(--marigold);flex:0 0 auto;}
.filter-group.collapsed .filter-group-head svg{transform:rotate(-90deg);}
.filter-group-body{margin-top:1.1rem;display:flex;flex-direction:column;gap:.85rem;max-height:420px;overflow:hidden;transition:max-height .35s var(--ease), margin-top .35s var(--ease), opacity .3s var(--ease);opacity:1;}
.filter-group.collapsed .filter-group-body{max-height:0;margin-top:0;opacity:0;}

.filter-check{display:flex;align-items:center;gap:.7rem;font-size:.86rem;color:var(--ink-soft);cursor:pointer;}
.filter-check input{appearance:none;width:17px;height:17px;border:1px solid var(--line);flex:0 0 auto;position:relative;transition:background .2s var(--ease), border-color .2s var(--ease);}
.filter-check input:checked{background:var(--ink);border-color:var(--ink);}
.filter-check input:checked::after{content:'';position:absolute;left:5px;top:1px;width:4px;height:9px;border:solid var(--ivory);border-width:0 2px 2px 0;transform:rotate(45deg);}
.filter-check .count{margin-left:auto;color:var(--text-soft);font-size:.74rem;}

.filter-size-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.55rem;}
.filter-size-grid button{border:1px solid var(--line);padding:.55rem 0;font-size:.78rem;font-weight:600;color:var(--ink-soft);transition:background .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease);}
.filter-size-grid button:hover{border-color:var(--ink);}
.filter-size-grid button.active{background:var(--ink);color:var(--ivory);border-color:var(--ink);}

.filter-colour-grid{display:flex;flex-wrap:wrap;gap:.65rem;}
.filter-colour-grid button{width:30px;height:30px;border-radius:50%;position:relative;box-shadow:0 0 0 1px var(--line);transition:transform .2s var(--ease), box-shadow .2s var(--ease);}
.filter-colour-grid button:hover{transform:translateY(-2px);}
.filter-colour-grid button.active{box-shadow:0 0 0 2px var(--ivory), 0 0 0 3px var(--ink);}

.price-range{padding-top:.3rem;}
.price-range input[type="range"]{width:100%;accent-color:var(--emerald);margin-bottom:.9rem;}
.price-inputs{display:flex;align-items:center;gap:.6rem;}
.price-inputs .price-box{flex:1;display:flex;align-items:center;gap:.3rem;border:1px solid var(--line);padding:.5rem .7rem;font-size:.8rem;}
.price-inputs .price-box input{border:none;width:100%;font-family:inherit;font-size:.8rem;color:var(--ink);background:transparent;}
.price-inputs .price-box input:focus{outline:none;}
.price-inputs span{color:var(--text-soft);}

.filter-rating{display:flex;flex-direction:column;gap:.75rem;}
.filter-rating button{display:flex;align-items:center;gap:.6rem;font-size:.83rem;color:var(--ink-soft);}
.filter-rating .stars{display:flex;gap:2px;color:var(--marigold);}
.filter-rating .stars svg{width:14px;height:14px;}
.filter-rating button.active{color:var(--ink);font-weight:700;}

.apply-filters-btn{width:100%;justify-content:center;margin-top:.5rem;display:none;}

@media (max-width:900px){
    .shop-filters{
        position:fixed;top:0;left:0;bottom:0;width:min(340px,86vw);background:var(--ivory);z-index:80;
        transform:translateX(-100%);transition:transform .4s var(--ease);padding:1.75rem 1.5rem 2rem;overflow-y:auto;
    }
    .shop-filters.open{transform:translateX(0);}
    .filters-head-mobile{display:flex;}
    .apply-filters-btn{display:inline-flex;position:sticky;bottom:0;}
}
.filters-overlay{position:fixed;inset:0;background:rgba(28,20,15,.5);z-index:75;opacity:0;pointer-events:none;transition:opacity .35s var(--ease);}
.filters-overlay.open{opacity:1;pointer-events:auto;}

/* grid view variants (reuses .product-row / .product-card) */
.shop-grid.-cols3{grid-template-columns:repeat(2,1fr);}
@media (min-width:700px){.shop-grid.-cols3{grid-template-columns:repeat(3,1fr);}}
.shop-grid.-cols4{grid-template-columns:repeat(2,1fr);}
@media (min-width:700px){.shop-grid.-cols4{grid-template-columns:repeat(4,1fr);}}

.shop-grid.-list{grid-template-columns:1fr !important;gap:1.2rem;}
.shop-grid.-list .product-card{display:grid;grid-template-columns:180px 1fr;gap:1.5rem;border:1px solid var(--line);padding:1rem;}
@media (max-width:560px){.shop-grid.-list .product-card{grid-template-columns:110px 1fr;padding:.75rem;gap:1rem;}}
.shop-grid.-list .product-card .frame{aspect-ratio:3/4;height:100%;}
.shop-grid.-list .product-card .product-info{padding-top:0;display:flex;flex-direction:column;justify-content:center;gap:.35rem;}
.product-desc{display:none;}
.shop-grid.-list .product-card .product-desc{display:block;font-size:.82rem;color:var(--text-soft);margin:.3rem 0 .7rem;max-width:52ch;}
.shop-grid.-list .product-card .add-cart-slide{
    position:static;transform:none;display:inline-flex;width:fit-content;padding:.65rem 1.4rem;
    background:var(--ink);color:var(--marigold-light);margin-top:.4rem;
}
.shop-grid.-list .product-card .wish-btn{opacity:1;transform:none;position:static;margin-left:auto;}

/* pagination */
.pagination{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:3rem;flex-wrap:wrap;}
.page-btn{
    min-width:38px;height:38px;padding:0 .5rem;display:flex;align-items:center;justify-content:center;
    border:1px solid var(--line);font-size:.82rem;font-weight:600;color:var(--ink-soft);
    transition:background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease);
}
.page-btn:hover{border-color:var(--ink);color:var(--ink);}
.page-btn.active{background:var(--ink);color:var(--ivory);border-color:var(--ink);}
.page-btn:disabled{opacity:.4;pointer-events:none;}
.page-dots{color:var(--text-soft);font-size:.82rem;padding:0 .3rem;}

/* =========================================================
   16. PRODUCT DETAIL PAGE
   ========================================================= */

.pdp-layout{display:grid;grid-template-columns:1fr;gap:2.5rem;align-items:start;}
@media (min-width:960px){.pdp-layout{grid-template-columns:1.05fr 1fr;gap:3.5rem;}}

/* ---- gallery ---- */
.pdp-gallery{display:flex;flex-direction:column-reverse;gap:1rem;}
@media (min-width:640px){.pdp-gallery{flex-direction:row;}}
.pdp-thumbs{display:flex;gap:.7rem;overflow-x:auto;scrollbar-width:none;}
.pdp-thumbs::-webkit-scrollbar{display:none;}
@media (min-width:640px){.pdp-thumbs{flex-direction:column;overflow-x:visible;overflow-y:auto;max-height:560px;}}
.pdp-thumb{flex:0 0 auto;width:64px;height:80px;border:1px solid var(--line);overflow:hidden;opacity:.65;background:none;transition:opacity .25s var(--ease), border-color .25s var(--ease);}
.pdp-thumb img{width:100%;height:100%;object-fit:cover;}
.pdp-thumb:hover{opacity:1;}
.pdp-thumb.active{opacity:1;border-color:var(--ink);}
@media (min-width:900px){.pdp-thumb{width:76px;height:96px;}}

.pdp-main-wrap{position:relative;flex:1;min-width:0;}
.pdp-gallery-main{position:relative;overflow:hidden;aspect-ratio:4/5;background:var(--ivory-alt);cursor:zoom-in;}
.pdp-gallery-main img{width:100%;height:100%;object-fit:cover;display:block;user-select:none;-webkit-user-drag:none;}
.pdp-zoom-lens{position:absolute;width:150px;height:150px;border:1px solid var(--marigold);background:rgba(250,245,236,.35);display:none;pointer-events:none;z-index:3;}
@media (min-width:960px){.pdp-gallery-main.zoom-active .pdp-zoom-lens{display:block;}}
.pdp-zoom-pane{
    display:none;position:absolute;left:calc(100% + 24px);top:0;width:100%;height:100%;
    border:1px solid var(--line);background-color:var(--ivory-alt);background-repeat:no-repeat;
    z-index:5;box-shadow:0 12px 30px rgba(28,20,15,.18);
}
@media (min-width:960px){.pdp-main-wrap.zoom-active .pdp-zoom-pane{display:block;}}
.pdp-expand-btn{
    position:absolute;right:14px;bottom:14px;z-index:4;width:40px;height:40px;border-radius:50%;
    background:var(--ivory);color:var(--ink);display:flex;align-items:center;justify-content:center;
    box-shadow:0 4px 14px rgba(28,20,15,.18);transition:transform .25s var(--ease), background .25s var(--ease);
}
.pdp-expand-btn:hover{transform:scale(1.07);background:var(--ink);color:var(--ivory);}
.pdp-gallery-badges{position:absolute;top:14px;left:14px;z-index:4;display:flex;flex-direction:column;gap:.35rem;}
.pdp-wish-btn{
    position:absolute;top:14px;right:14px;z-index:4;width:38px;height:38px;border-radius:50%;background:var(--ivory);
    display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(28,20,15,.15);transition:transform .25s var(--ease);
}
.pdp-wish-btn:hover{transform:scale(1.08);}
.pdp-wish-btn svg{transition:fill .25s var(--ease), stroke .25s var(--ease);}
.pdp-wish-btn.active svg{fill:var(--wine);stroke:var(--wine);}
.pdp-counter{display:flex;justify-content:center;gap:.4rem;margin-top:.8rem;}
@media (min-width:640px){.pdp-counter{display:none;}}
.pdp-counter span{width:6px;height:6px;border-radius:50%;background:var(--line);transition:background .25s var(--ease), transform .25s var(--ease);}
.pdp-counter span.active{background:var(--ink);transform:scale(1.3);}

/* ---- info column ---- */
.pdp-info{display:flex;flex-direction:column;}
.pdp-brand{margin-bottom:.6rem;}
.pdp-title{font-size:clamp(1.5rem,2.6vw,2.1rem);margin-bottom:.6rem;}
.pdp-subtitle{color:var(--text-soft);font-size:.92rem;margin-bottom:1rem;}
.pdp-rating-row{display:flex;align-items:center;gap:.7rem;margin-bottom:1.1rem;flex-wrap:wrap;}
.pdp-rating-pill{display:inline-flex;align-items:center;gap:.3rem;background:var(--emerald);color:var(--ivory);font-size:.78rem;font-weight:700;padding:.25rem .55rem;}
.pdp-rating-pill svg{width:12px;height:12px;}
.pdp-rating-count{font-size:.82rem;color:var(--text-soft);border-bottom:1px solid var(--line);padding-bottom:1px;}
.pdp-price-row{display:flex;align-items:baseline;flex-wrap:wrap;gap:.7rem;margin-bottom:.35rem;}
.pdp-price-row .price-new{font-size:1.55rem;}
.pdp-price-row .price-old{font-size:1rem;}
.pdp-price-row .discount{font-size:.85rem;}
.pdp-tax-note{font-size:.76rem;color:var(--text-soft);margin-bottom:1.4rem;}

.pdp-offers{border:1px dashed var(--line);padding:1.1rem 1.2rem;margin-bottom:1.6rem;display:flex;flex-direction:column;gap:.7rem;}
.pdp-offer-item{display:flex;gap:.65rem;font-size:.85rem;color:var(--ink-soft);align-items:flex-start;}
.pdp-offer-item svg{flex:0 0 auto;color:var(--emerald);margin-top:2px;}
.pdp-offer-item strong{color:var(--ink);}

.pdp-selector{margin-bottom:1.5rem;}
.pdp-selector-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.85rem;}
.pdp-selector-head span.label{font-size:.76rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);}
.pdp-selector-head span.value{font-size:.8rem;color:var(--text-soft);}
.pdp-size-guide-link{font-size:.76rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--emerald);border-bottom:1px solid var(--emerald);padding-bottom:1px;}
.pdp-color-grid{display:flex;flex-wrap:wrap;gap:.65rem;}
.pdp-color-grid button{width:34px;height:34px;border-radius:50%;position:relative;box-shadow:0 0 0 1px var(--line);transition:transform .2s var(--ease), box-shadow .2s var(--ease);}
.pdp-color-grid button:hover{transform:translateY(-2px);}
.pdp-color-grid button.active{box-shadow:0 0 0 2px var(--ivory), 0 0 0 3px var(--ink);}
.pdp-size-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.6rem;}
.pdp-size-grid button{border:1px solid var(--line);padding:.7rem 0;font-size:.8rem;font-weight:600;color:var(--ink-soft);transition:all .2s var(--ease);position:relative;}
.pdp-size-grid button:hover{border-color:var(--ink);}
.pdp-size-grid button.active{background:var(--ink);color:var(--ivory);border-color:var(--ink);}
.pdp-size-grid button.disabled{color:var(--line);pointer-events:none;text-decoration:line-through;}
.pdp-size-warn{font-size:.78rem;color:var(--wine);margin-top:.6rem;display:none;}
.pdp-size-warn.show{display:block;}

.pdp-qty-row{display:flex;align-items:center;gap:1.2rem;margin-bottom:1.6rem;flex-wrap:wrap;}
.pdp-qty-row .qty-stepper{border-color:var(--ink);}
.pdp-stock-note{font-size:.8rem;color:var(--wine);font-weight:600;}

.pdp-actions{display:flex;gap:.9rem;margin-bottom:1.5rem;flex-wrap:wrap;}
.pdp-actions .btn{flex:1;min-width:180px;justify-content:center;padding:1.05rem 1.5rem;}
.pdp-actions .btn-buy{background:var(--emerald);}
.pdp-actions .btn-buy::before{background:var(--emerald-dark);}
.pdp-actions .icon-btn-lg{width:56px;height:56px;flex:0 0 auto;border:1px solid var(--ink);display:flex;align-items:center;justify-content:center;transition:background .25s var(--ease), color .25s var(--ease);}
.pdp-actions .icon-btn-lg:hover{background:var(--ink);color:var(--ivory);}
.pdp-actions .icon-btn-lg.active{background:var(--wine);border-color:var(--wine);color:var(--ivory);}
.pdp-actions .icon-btn-lg.active svg{fill:var(--ivory);}

.pdp-delivery{border:1px solid var(--line);padding:1.25rem 1.4rem;margin-bottom:1.6rem;}
.pdp-delivery h3{font-size:.92rem;margin-bottom:.9rem;font-family:'Manrope',sans-serif;font-weight:700;}
.pdp-pincode-row{display:flex;gap:0;border:1px solid var(--line);max-width:360px;}
.pdp-pincode-row input{flex:1;min-width:0;padding:.8rem 1rem;border:none;background:var(--ivory);font-size:.85rem;font-family:inherit;color:var(--ink);}
.pdp-pincode-row input:focus{outline:none;}
.pdp-pincode-row button{padding:.8rem 1.3rem;background:var(--ink);color:var(--ivory);font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;transition:background .25s var(--ease);}
.pdp-pincode-row button:hover{background:var(--emerald);}
.pdp-delivery-result{margin-top:.9rem;font-size:.83rem;color:var(--ink-soft);display:none;align-items:center;gap:.5rem;}
.pdp-delivery-result.show{display:flex;}
.pdp-delivery-result svg{color:var(--emerald);flex:0 0 auto;}

.pdp-trust-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:1.8rem;}
@media (min-width:560px){.pdp-trust-grid{grid-template-columns:repeat(4,1fr);}}
.pdp-trust-item{display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center;padding:1rem .5rem;border:1px solid var(--line);}
.pdp-trust-item svg{color:var(--emerald);}
.pdp-trust-item span{font-size:.72rem;color:var(--text-soft);line-height:1.35;}

.pdp-meta{font-size:.8rem;color:var(--text-soft);display:flex;flex-wrap:wrap;gap:.4rem 1.5rem;margin-bottom:.5rem;}
.pdp-meta strong{color:var(--ink-soft);}
.pdp-share-row{display:flex;align-items:center;gap:.8rem;margin-top:.5rem;}
.pdp-share-row span{font-size:.76rem;color:var(--text-soft);}
.pdp-share-row a{width:32px;height:32px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--ink-soft);transition:all .25s var(--ease);}
.pdp-share-row a:hover{background:var(--ink);color:var(--ivory);border-color:var(--ink);}

/* accordion — reuses .faq-list/.faq-item/.faq-q/.faq-a */
.pdp-accordion-wrap .faq-list{max-width:none;margin:0;}
.pdp-accordion-wrap .faq-q{font-size:.98rem;}

/* ---- reviews ---- */
.review-summary{display:grid;grid-template-columns:1fr;gap:2rem;padding:2rem;border:1px solid var(--line);background:var(--ivory-alt);margin-bottom:2.5rem;}
@media (min-width:760px){.review-summary{grid-template-columns:220px 1fr;align-items:center;}}
.review-score{text-align:center;}
.review-score strong{display:block;font-family:'Fraunces',serif;font-style:italic;font-size:3rem;color:var(--emerald);}
.review-score .stars{display:flex;justify-content:center;gap:2px;color:var(--marigold);margin:.4rem 0;}
.review-score .stars svg{width:16px;height:16px;}
.review-score span.count{font-size:.8rem;color:var(--text-soft);}
.rating-bars{display:flex;flex-direction:column;gap:.55rem;}
.rating-bar-row{display:grid;grid-template-columns:50px 1fr 34px;align-items:center;gap:.8rem;font-size:.78rem;color:var(--text-soft);}
.rating-bar-track{height:6px;background:var(--line);position:relative;overflow:hidden;}
.rating-bar-fill{position:absolute;left:0;top:0;bottom:0;background:var(--marigold);}
.review-write-btn{margin-top:1.3rem;}
@media (min-width:760px){.review-write-btn{grid-column:2;justify-self:start;}}

.review-list{display:flex;flex-direction:column;gap:1.8rem;}
.review-card{border-bottom:1px solid var(--line);padding-bottom:1.8rem;}
.review-card:last-child{border-bottom:none;}
.review-head{display:flex;align-items:center;flex-wrap:wrap;gap:.7rem;margin-bottom:.5rem;}
.review-avatar{width:38px;height:38px;border-radius:50%;background:var(--emerald);color:var(--ivory);display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-style:italic;font-size:1rem;flex:0 0 auto;}
.review-name{font-weight:700;font-size:.9rem;}
.review-verified{display:inline-flex;align-items:center;gap:.3rem;font-size:.68rem;color:var(--emerald);font-weight:700;letter-spacing:.04em;text-transform:uppercase;}
.review-date{font-size:.76rem;color:var(--text-soft);margin-left:auto;}
.review-stars{display:flex;gap:2px;color:var(--marigold);margin-bottom:.6rem;}
.review-stars svg{width:14px;height:14px;}
.review-text{font-size:.9rem;color:var(--ink-soft);margin-bottom:.7rem;max-width:70ch;}
.review-imgs{display:flex;gap:.5rem;margin-bottom:.7rem;}
.review-imgs img{width:56px;height:56px;object-fit:cover;border:1px solid var(--line);}
.review-helpful{display:flex;align-items:center;gap:.5rem;font-size:.78rem;color:var(--text-soft);}
.review-helpful button{display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--line);padding:.4rem .8rem;transition:border-color .25s var(--ease), color .25s var(--ease);}
.review-helpful button:hover{border-color:var(--ink);color:var(--ink);}

/* ---- generic modal (size guide) ---- */
.modal-overlay{position:fixed;inset:0;background:rgba(28,20,15,.7);z-index:90;opacity:0;pointer-events:none;transition:opacity .35s var(--ease);}
.modal-overlay.open{opacity:1;pointer-events:auto;}
.modal-box{
    position:fixed;top:50%;left:50%;transform:translate(-50%,-46%);z-index:95;background:var(--ivory);
    width:min(560px,90vw);max-height:84vh;overflow-y:auto;padding:2rem;opacity:0;pointer-events:none;
    transition:opacity .35s var(--ease), transform .35s var(--ease);
}
.modal-box.open{opacity:1;pointer-events:auto;transform:translate(-50%,-50%);}
.modal-close{position:absolute;top:1.1rem;right:1.2rem;font-size:1.6rem;font-family:'Fraunces',serif;color:var(--text-soft);}
.modal-box h3{font-size:1.3rem;margin-bottom:1.2rem;}
.size-table{width:100%;border-collapse:collapse;font-size:.83rem;margin-bottom:1rem;}
.size-table th,.size-table td{border:1px solid var(--line);padding:.6rem .7rem;text-align:center;color:var(--ink-soft);}
.size-table th{background:var(--ivory-alt);font-weight:700;color:var(--ink);}
.size-table-note{font-size:.78rem;color:var(--text-soft);}

/* ---- lightbox ---- */
.lightbox-overlay{position:fixed;inset:0;background:rgba(15,10,7,.94);z-index:100;opacity:0;pointer-events:none;transition:opacity .35s var(--ease);display:flex;flex-direction:column;}
.lightbox-overlay.open{opacity:1;pointer-events:auto;}
.lightbox-top{display:flex;justify-content:flex-end;padding:1.2rem 1.5rem;}
.lightbox-close{color:var(--ivory);font-size:2rem;font-family:'Fraunces',serif;}
.lightbox-stage{flex:1;display:flex;align-items:center;justify-content:center;gap:1rem;padding:0 1rem;position:relative;overflow:hidden;}
.lightbox-stage img{max-width:min(78vw,900px);max-height:74vh;object-fit:contain;}
.lightbox-nav{width:44px;height:44px;border-radius:50%;background:rgba(250,245,236,.12);color:var(--ivory);display:flex;align-items:center;justify-content:center;flex:0 0 auto;transition:background .25s var(--ease);}
.lightbox-nav:hover{background:rgba(250,245,236,.25);}
.lightbox-thumbs{display:flex;gap:.6rem;justify-content:center;padding:1.2rem;overflow-x:auto;}
.lightbox-thumbs button{width:52px;height:66px;flex:0 0 auto;overflow:hidden;opacity:.5;border:1px solid transparent;background:none;transition:opacity .25s var(--ease), border-color .25s var(--ease);}
.lightbox-thumbs button.active{opacity:1;border-color:var(--marigold);}
.lightbox-thumbs img{width:100%;height:100%;object-fit:cover;}

/* ---- sticky mobile add-to-cart ---- */
.pdp-sticky-cta{
    position:fixed;left:0;right:0;bottom:0;z-index:55;background:var(--ivory);border-top:1px solid var(--line);
    display:flex;align-items:center;gap:1rem;padding:.85rem 1.1rem;box-shadow:0 -8px 24px rgba(28,20,15,.08);
    transform:translateY(100%);transition:transform .35s var(--ease);
}
.pdp-sticky-cta.show{transform:translateY(0);}
@media (min-width:960px){.pdp-sticky-cta{display:none;}}
.pdp-sticky-cta .price-new{font-size:1.1rem;}
.pdp-sticky-cta .btn{flex:1;justify-content:center;padding:.9rem 1rem;}

/* ============ TRY IT ON MODAL ============ */
.tryon-modal { max-width: 520px; }
.tryon-sub { font-size: .85rem; color: #767676; margin-bottom: 1rem; }

.tryon-upload-empty {
    display: flex; align-items: center; justify-content: center;
    aspect-ratio: 3/4; border-radius: 12px; background: #f4f1ec;
    border: 1.5px dashed #cabfa9;
}
.tryon-upload-btn {
    display: inline-flex; align-items: center; gap: .5rem;
    padding: .7rem 1.2rem; background: #1c140f; color: #fff;
    border-radius: 999px; font-size: .85rem; cursor: pointer;
}

.tryon-stage {
    position: relative; width: 100%; aspect-ratio: 3/4;
    border-radius: 12px; overflow: hidden; background: #f4f1ec;
    touch-action: none;
}
.tryon-user-photo {
    width: 100%; height: 100%; object-fit: cover;
    display: block; user-select: none; pointer-events: none;
}
.tryon-loading-overlay{
    position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:.9rem; background:rgba(28,20,15,.55); color:#fff; border-radius:12px; text-align:center; padding:1rem;
}
.tryon-spinner{
    width:38px; height:38px; border-radius:50%; border:3px solid rgba(255,255,255,.35);
    border-top-color:#fff; animation:tryonSpin .8s linear infinite;
}
@keyframes tryonSpin{ to{ transform:rotate(360deg); } }
.tryon-loading-overlay p{ font-size:.85rem; letter-spacing:.03em; margin:0; }

.tryon-error{
    margin-top:.9rem; padding:.8rem 1rem; border-radius:8px;
    background:rgba(110,31,59,.08); border:1px solid rgba(110,31,59,.25);
    color:#6e1f3b; font-size:.82rem;
}

.tryon-btn-row,.tryon-result-actions{ display:flex; gap:.6rem; margin-top:1.2rem; flex-wrap:wrap; }
.tryon-btn-row .btn,.tryon-result-actions .btn{ flex:1; min-width:140px; justify-content:center; }
.tryon-btn-row .btn:disabled{ opacity:.6; pointer-events:none; }

/* Try It On trigger button next to actions */
.pdp-tryon-btn {
    display: inline-flex; align-items: center; gap: .4rem;
    padding: .75rem 1.1rem; border-radius: 999px; border: 1.5px solid #1c140f;
    background: transparent; font-size: .85rem; cursor: pointer;
    white-space: nowrap;
}
.pdp-tryon-btn:hover { background: #1c140f; color: #fff; }

/* =========================================================
   17. ACCOUNT PAGE
   ========================================================= */

.acc-header{background:var(--ivory-alt);padding:clamp(2.25rem,4vw,3rem) 0;}
.acc-header-inner{display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap;}
.acc-header-avatar{
    width:64px;height:64px;border-radius:50%;background:var(--emerald);color:var(--ivory);
    display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-style:italic;
    font-size:1.6rem;flex:0 0 auto;box-shadow:0 6px 18px rgba(28,20,15,.12);
}
.acc-header-greet h1{font-size:clamp(1.4rem,2.6vw,1.9rem);margin-bottom:.2rem;}
.acc-header-greet p{font-size:.85rem;color:var(--text-soft);}
.acc-tier-badge{
    display:inline-flex;align-items:center;gap:.4rem;background:var(--ink);color:var(--marigold-light);
    font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:.35rem .7rem;
    margin-left:auto;
}
.acc-tier-badge svg{width:13px;height:13px;}

.acc-layout{display:grid;grid-template-columns:1fr;gap:2.5rem;align-items:start;padding:clamp(2rem,4vw,3rem) 0;}
@media (min-width:960px){.acc-layout{grid-template-columns:280px 1fr;}}

/* ---- sidebar ---- */
.acc-sidebar{align-self:start;}
@media (min-width:960px){.acc-sidebar{position:sticky;top:calc(var(--header-h) + 24px);}}

.acc-user-card{
    border:1px solid var(--line);background:var(--ivory);padding:1.6rem 1.5rem;text-align:center;margin-bottom:1.2rem;
}
.acc-avatar-wrap{position:relative;width:76px;height:76px;margin:0 auto .9rem;}
.acc-avatar{
    width:100%;height:100%;border-radius:50%;background:var(--emerald);color:var(--ivory);
    display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-style:italic;font-size:1.9rem;
}
.acc-avatar-edit{
    position:absolute;right:-2px;bottom:-2px;width:26px;height:26px;border-radius:50%;background:var(--marigold);
    color:var(--ink);display:flex;align-items:center;justify-content:center;border:2px solid var(--ivory);
    transition:transform .25s var(--ease);
}
.acc-avatar-edit:hover{transform:scale(1.1);}
.acc-user-card h3{font-size:1.05rem;margin-bottom:.2rem;}
.acc-user-card p{font-size:.8rem;color:var(--text-soft);margin-bottom:.9rem;}
.acc-user-meta{
    display:inline-flex;align-items:center;gap:.4rem;font-size:.68rem;font-weight:700;letter-spacing:.06em;
    text-transform:uppercase;color:var(--emerald);background:var(--ivory-alt);padding:.4rem .75rem;
}

.acc-nav{border:1px solid var(--line);background:var(--ivory);padding:.6rem;display:flex;flex-direction:column;gap:.2rem;}
.acc-nav-btn{
    display:flex;align-items:center;gap:.8rem;width:100%;padding:.8rem .9rem;font-size:.86rem;font-weight:600;
    color:var(--ink-soft);text-align:left;transition:background .22s var(--ease), color .22s var(--ease);
}
.acc-nav-btn svg{flex:0 0 auto;color:var(--text-soft);transition:color .22s var(--ease);}
.acc-nav-btn:hover{background:var(--ivory-alt);color:var(--ink);}
.acc-nav-btn.active{background:var(--ink);color:var(--ivory);}
.acc-nav-btn.active svg{color:var(--marigold-light);}
.acc-nav-count{
    margin-left:auto;font-size:.68rem;font-weight:700;background:var(--ivory-alt);color:var(--ink-soft);
    padding:.15rem .5rem;border-radius:999px;
}
.acc-nav-btn.active .acc-nav-count{background:rgba(250,245,236,.18);color:var(--ivory);}
.acc-nav-divider{height:1px;background:var(--line);margin:.5rem .3rem;}
.acc-nav-btn.-logout{color:var(--wine);}
.acc-nav-btn.-logout svg{color:var(--wine);}
.acc-nav-btn.-logout:hover{background:rgba(110,31,59,.08);}

/* mobile sidebar -> horizontal pill rail */
@media (max-width:959px){
    .acc-user-card{display:none;}
    .acc-nav{
        flex-direction:row;gap:.5rem;overflow-x:auto;padding:.5rem;border:none;background:none;
        scrollbar-width:none;
    }
    .acc-nav::-webkit-scrollbar{display:none;}
    .acc-nav-btn{
        flex:0 0 auto;width:auto;white-space:nowrap;border:1px solid var(--line);border-radius:999px;
        padding:.65rem 1.1rem;background:var(--ivory);
    }
    .acc-nav-btn.active{border-color:var(--ink);}
    .acc-nav-divider{display:none;}
    .acc-nav-btn.-logout{order:99;}
}

/* ---- content panels ---- */
.acc-panel{display:none;}
.acc-panel.active{display:block;animation:accFade .4s var(--ease);}
@keyframes accFade{from{opacity:0;transform:translateY(8px);} to{opacity:1;transform:translateY(0);}}
.acc-panel-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.6rem;}
.acc-panel-head h2{font-size:clamp(1.3rem,2.2vw,1.7rem);}
.acc-panel-head p{font-size:.85rem;color:var(--text-soft);margin-top:.3rem;}

/* dashboard stat cards */
.acc-stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.1rem;margin-bottom:2.2rem;}
@media (min-width:640px){.acc-stats-grid{grid-template-columns:repeat(4,1fr);}}
.acc-stat-card{
    position:relative;overflow:hidden;border:1px solid var(--line);background:var(--ivory);
    padding:1.6rem 1.4rem 1.35rem;transition:border-color .25s var(--ease), transform .25s var(--ease), box-shadow .25s var(--ease);
}
.acc-stat-card::before{
    content:'';position:absolute;top:0;left:0;width:100%;height:3px;background:var(--marigold);
    transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease);
}
.acc-stat-card:hover{border-color:var(--marigold);transform:translateY(-3px);box-shadow:0 12px 28px rgba(28,20,15,.08);}
.acc-stat-card:hover::before{transform:scaleX(1);}
.acc-stat-card .icon-wrap{
    width:42px;height:42px;border-radius:50%;background:var(--ivory-alt);display:flex;align-items:center;
    justify-content:center;color:var(--emerald);margin-bottom:1.15rem;
}
.acc-stat-card strong{
    display:block;font-family:'Fraunces',serif;font-style:normal;font-weight:560;
    font-size:2.15rem;line-height:1;letter-spacing:-.01em;color:var(--ink);
    font-variant-numeric:tabular-nums lining-nums;margin-bottom:.6rem;
}
.acc-stat-card span{display:block;font-size:.76rem;color:var(--text-soft);margin-bottom:.75rem;}
.acc-stat-card a.stat-link{
    display:inline-flex;align-items:center;gap:.3rem;font-size:.7rem;font-weight:700;
    letter-spacing:.06em;text-transform:uppercase;color:var(--emerald);
}
.acc-stat-card a.stat-link::after{content:'→';display:inline-block;transition:transform .25s var(--ease);}
.acc-stat-card a.stat-link:hover::after{transform:translateX(3px);}

/* per-card accent — same palette as status badges elsewhere on the site */
.acc-stat-card:nth-child(1)::before{background:var(--emerald);}
.acc-stat-card:nth-child(1) .icon-wrap{color:var(--emerald);}
.acc-stat-card:nth-child(1) a.stat-link{color:var(--emerald);}

.acc-stat-card:nth-child(2)::before{background:var(--marigold);}
.acc-stat-card:nth-child(2) .icon-wrap{color:var(--marigold);}
.acc-stat-card:nth-child(2) a.stat-link{color:var(--marigold);}

.acc-stat-card:nth-child(3)::before{background:var(--wine);}
.acc-stat-card:nth-child(3) .icon-wrap{color:var(--wine);}
.acc-stat-card:nth-child(3) a.stat-link{color:var(--wine);}

.acc-stat-card:nth-child(4)::before{background:var(--ink);}
.acc-stat-card:nth-child(4) .icon-wrap{color:var(--ink);background:var(--marigold-light);}
.acc-stat-card:nth-child(4) a.stat-link{color:var(--ink);}

.acc-quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:2.2rem;}
@media (min-width:640px){.acc-quick-grid{grid-template-columns:repeat(4,1fr);}}
.acc-quick-item{
    display:flex;flex-direction:column;align-items:center;gap:.6rem;text-align:center;padding:1.3rem .8rem;
    border:1px dashed var(--line);transition:border-color .25s var(--ease), background .25s var(--ease);
}
.acc-quick-item:hover{border-style:solid;border-color:var(--ink);background:var(--ivory-alt);}
.acc-quick-item svg{color:var(--emerald);}
.acc-quick-item span{font-size:.78rem;font-weight:600;color:var(--ink-soft);}

/* ---- orders ---- */
.acc-filter-pills{display:flex;gap:.6rem;overflow-x:auto;margin-bottom:1.6rem;scrollbar-width:none;}
.acc-filter-pills::-webkit-scrollbar{display:none;}

.order-card{border:1px solid var(--line);background:var(--ivory);margin-bottom:1.1rem;overflow:hidden;}
.order-card-head{
    display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.8rem;
    padding:1.1rem 1.4rem;background:var(--ivory-alt);border-bottom:1px solid var(--line);
}
.order-card-id{font-size:.86rem;font-weight:700;color:var(--ink);}
.order-card-date{font-size:.76rem;color:var(--text-soft);margin-top:.15rem;}
.order-status{
    font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:.35rem .7rem;
    background:var(--emerald);color:var(--ivory);
}
.order-status.-processing{background:var(--marigold);color:var(--ink);}
.order-status.-cancelled{background:var(--wine);}
.order-status.-returned{background:var(--ink-soft);}
.order-card-body{padding:1.3rem 1.4rem;}
.order-items-row{display:flex;gap:.9rem;overflow-x:auto;margin-bottom:1.2rem;scrollbar-width:none;}
.order-items-row::-webkit-scrollbar{display:none;}
.order-item-thumb{flex:0 0 auto;width:64px;height:80px;overflow:hidden;background:var(--ivory-alt);border:1px solid var(--line);position:relative;}
.order-item-thumb img{width:100%;height:100%;object-fit:cover;}
.order-item-thumb .more-count{
    position:absolute;inset:0;background:rgba(28,20,15,.65);color:var(--ivory);display:flex;align-items:center;
    justify-content:center;font-size:.8rem;font-weight:700;
}
.order-card-foot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.9rem;}
.order-total{font-size:.9rem;color:var(--ink-soft);}
.order-total strong{color:var(--emerald);font-family:'Fraunces',serif;font-size:1.05rem;}
.order-actions{display:flex;gap:.6rem;flex-wrap:wrap;}
.order-actions button, .order-actions a{
    font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:.55rem .95rem;
    border:1px solid var(--ink);color:var(--ink);transition:background .25s var(--ease), color .25s var(--ease);
}
.order-actions button:hover, .order-actions a:hover{background:var(--ink);color:var(--ivory);}
.order-actions .-primary{background:var(--ink);color:var(--ivory);}
.order-actions .-primary:hover{background:var(--emerald);border-color:var(--emerald);}
.order-actions .-danger{border-color:var(--wine);color:var(--wine);}
.order-actions .-danger:hover{background:var(--wine);color:var(--ivory);}
.order-track-toggle{
    display:inline-flex;align-items:center;gap:.4rem;font-size:.76rem;font-weight:700;color:var(--emerald);
    margin-top:1rem;border-bottom:1px solid var(--emerald);padding-bottom:1px;width:fit-content;
}
.order-track-toggle svg{transition:transform .3s var(--ease);}
.order-card.-expanded .order-track-toggle svg{transform:rotate(180deg);}

.order-timeline{max-height:0;overflow:hidden;transition:max-height .4s var(--ease), margin-top .4s var(--ease);margin-top:0;}
.order-card.-expanded .order-timeline{max-height:220px;margin-top:1.3rem;}
.order-timeline-track{display:flex;justify-content:space-between;position:relative;padding-top:.4rem;}
.order-timeline-track::before{content:'';position:absolute;top:16px;left:16px;right:16px;height:2px;background:var(--line);}
.order-timeline-step{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:.5rem;flex:1;text-align:center;}
.order-timeline-step .dot{width:32px;height:32px;border-radius:50%;background:var(--ivory);border:2px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--text-soft);}
.order-timeline-step.done .dot{background:var(--emerald);border-color:var(--emerald);color:var(--ivory);}
.order-timeline-step.current .dot{background:var(--marigold);border-color:var(--marigold);color:var(--ink);}
.order-timeline-step span{font-size:.68rem;color:var(--text-soft);max-width:80px;}
.order-timeline-step.done span, .order-timeline-step.current span{color:var(--ink-soft);font-weight:600;}

/* ---- addresses ---- */
.acc-address-grid{display:grid;grid-template-columns:1fr;gap:1.1rem;}
@media (min-width:640px){.acc-address-grid{grid-template-columns:repeat(2,1fr);}}
.address-card{border:1px solid var(--line);background:var(--ivory);padding:1.4rem 1.5rem;position:relative;transition:border-color .25s var(--ease);}
.address-card.-default{border-color:var(--emerald);}
.address-card-tags{display:flex;gap:.5rem;margin-bottom:.9rem;flex-wrap:wrap;}
.address-type-badge{font-size:.66rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:var(--ivory-alt);color:var(--ink-soft);padding:.3rem .6rem;}
.address-default-badge{font-size:.66rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:var(--emerald);color:var(--ivory);padding:.3rem .6rem;}
.address-card h4{font-size:.95rem;margin-bottom:.4rem;}
.address-card p{font-size:.84rem;color:var(--text-soft);line-height:1.55;margin-bottom:.9rem;}
.address-card-actions{display:flex;gap:1.2rem;}
.address-card-actions button{display:inline-flex;align-items:center;gap:.35rem;font-size:.76rem;font-weight:700;color:var(--ink-soft);transition:color .25s var(--ease);}
.address-card-actions button:hover{color:var(--emerald);}
.address-card-actions button.-danger:hover{color:var(--wine);}
.address-card-add{
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.7rem;min-height:180px;
    border:1px dashed var(--line);color:var(--text-soft);transition:border-color .25s var(--ease), color .25s var(--ease);
}
.address-card-add:hover{border-color:var(--ink);color:var(--ink);border-style:solid;}
.address-card-add .plus-circle{width:42px;height:42px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;}
.address-card-add:hover .plus-circle{border-color:var(--ink);}
.address-card-add span{font-size:.82rem;font-weight:600;}

/* ---- profile form ---- */
.acc-profile-card{border:1px solid var(--line);background:var(--ivory);padding:clamp(1.6rem,3vw,2.25rem);margin-bottom:1.5rem;}
.acc-profile-card h3{font-size:1.02rem;margin-bottom:1.4rem;padding-bottom:1rem;border-bottom:1px solid var(--line);}
.acc-avatar-upload{display:flex;align-items:center;gap:1.2rem;margin-bottom:1.8rem;}
.acc-avatar-upload .acc-avatar{width:72px;height:72px;font-size:1.7rem;flex:0 0 auto;}
.acc-avatar-upload-btns{display:flex;gap:.7rem;}
.gender-radio-row{display:flex;gap:.9rem;flex-wrap:wrap;}
.gender-radio{display:flex;align-items:center;gap:.55rem;border:1px solid var(--line);padding:.75rem 1.1rem;font-size:.85rem;color:var(--ink-soft);cursor:pointer;transition:all .2s var(--ease);flex:1;min-width:110px;justify-content:center;}
.gender-radio input{accent-color:var(--emerald);}
.gender-radio:has(input:checked){border-color:var(--ink);background:var(--ivory-alt);color:var(--ink);font-weight:600;}

/* ---- payment methods ---- */
.pay-method-card{
    display:flex;align-items:center;gap:1.1rem;border:1px solid var(--line);background:var(--ivory);
    padding:1.2rem 1.4rem;margin-bottom:.9rem;
}
.pay-method-icon{width:46px;height:32px;background:var(--ivory-alt);border-radius:4px;display:flex;align-items:center;justify-content:center;color:var(--emerald);flex:0 0 auto;font-size:.62rem;font-weight:800;letter-spacing:.02em;}
.pay-method-info{flex:1;min-width:0;}
.pay-method-info strong{display:block;font-size:.9rem;margin-bottom:.15rem;}
.pay-method-info span{font-size:.78rem;color:var(--text-soft);}
.pay-method-default{font-size:.65rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--emerald);border:1px solid var(--emerald);padding:.25rem .55rem;flex:0 0 auto;}
.pay-method-remove{color:var(--text-soft);transition:color .25s var(--ease);flex:0 0 auto;}
.pay-method-remove:hover{color:var(--wine);}
.add-payment-btn{
    display:flex;align-items:center;justify-content:center;gap:.6rem;width:100%;border:1px dashed var(--line);
    padding:1.1rem;font-size:.84rem;font-weight:600;color:var(--text-soft);transition:all .25s var(--ease);
}
.add-payment-btn:hover{border-style:solid;border-color:var(--ink);color:var(--ink);}

/* ---- toggle switch (notifications) ---- */
.acc-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 0;border-bottom:1px solid var(--line);}
.acc-toggle-row:last-child{border-bottom:none;}
.acc-toggle-text strong{display:block;font-size:.88rem;margin-bottom:.2rem;}
.acc-toggle-text span{font-size:.78rem;color:var(--text-soft);}
.switch{position:relative;display:inline-block;width:44px;height:25px;flex:0 0 auto;}
.switch input{opacity:0;width:0;height:0;}
.switch-track{position:absolute;inset:0;background:var(--line);border-radius:999px;cursor:pointer;transition:background .25s var(--ease);}
.switch-track::before{content:'';position:absolute;left:3px;top:3px;width:19px;height:19px;border-radius:50%;background:var(--ivory);transition:transform .25s var(--ease);box-shadow:0 1px 3px rgba(28,20,15,.25);}
.switch input:checked + .switch-track{background:var(--emerald);}
.switch input:checked + .switch-track::before{transform:translateX(19px);}

/* ---- security ---- */
.session-row{display:flex;align-items:center;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line);}
.session-row:last-child{border-bottom:none;}
.session-row .icon-wrap{width:38px;height:38px;border-radius:50%;background:var(--ivory-alt);display:flex;align-items:center;justify-content:center;color:var(--emerald);flex:0 0 auto;}
.session-row-info{flex:1;min-width:0;}
.session-row-info strong{display:block;font-size:.86rem;}
.session-row-info span{font-size:.76rem;color:var(--text-soft);}
.session-current{font-size:.65rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--emerald);}
.session-revoke{font-size:.74rem;font-weight:700;color:var(--wine);border-bottom:1px solid var(--wine);padding-bottom:1px;flex:0 0 auto;}
.danger-zone{border:1px solid rgba(110,31,59,.3);background:rgba(110,31,59,.04);padding:1.4rem 1.5rem;margin-top:.5rem;}
.danger-zone h4{color:var(--wine);font-size:.92rem;margin-bottom:.4rem;}
.danger-zone p{font-size:.82rem;color:var(--ink-soft);margin-bottom:1rem;}
.danger-zone .btn{background:var(--wine);}
.danger-zone .btn::before{background:var(--ink);}

/* ---- support ---- */
.acc-support-grid{display:grid;gap:1.1rem;grid-template-columns:1fr;margin-bottom:2rem;}
@media (min-width:640px){.acc-support-grid{grid-template-columns:repeat(3,1fr);}}

/* =========================================================
   18. ACCOUNT PAGE — CART TAB ADD-ONS
   ========================================================= */
.acc-panel[data-panel="cart"] .cart-summary{position:sticky;top:calc(var(--header-h) + 24px);}
.acc-panel[data-panel="cart"] .cart-item{transition:opacity .3s var(--ease), transform .3s var(--ease);}
.acc-panel[data-panel="cart"] .cart-item.-removing{opacity:0;transform:translateX(12px);}
.acc-cart-empty{text-align:center;padding:clamp(3rem,6vw,5rem) 1.5rem;border:1px dashed var(--line);}
.acc-cart-empty p{color:var(--text-soft);margin:.6rem 0 1.5rem;}

/* =========================================================
   19. HERO CAROUSEL (HOME)
   ========================================================= */
.hero-carousel{
    position:relative;overflow:hidden;background:var(--ink);
    height:calc(100vh - var(--header-h) - var(--announce-h) - var(--rail-h));
    min-height:360px;
}
@supports (height: 100dvh){
    .hero-carousel{height:calc(100dvh - var(--header-h) - var(--announce-h) - var(--rail-h));}
}

.hero-carousel-track{position:relative;width:100%;height:100%;}
.hero-carousel-slide{
    position:absolute;inset:0;display:flex;align-items:center;
    background-size:cover;background-position:center;background-repeat:no-repeat;
    opacity:0;visibility:hidden;transition:opacity 1s var(--ease), visibility 1s var(--ease);
}
.hero-carousel-slide.active{opacity:1;visibility:visible;z-index:1;}

.hero-carousel-tint{
    position:absolute;inset:0;
    background:linear-gradient(90deg, rgba(28,20,15,.62) 0%, rgba(28,20,15,.28) 42%, rgba(28,20,15,.05) 70%);
}


.hero-carousel-content{position:relative;z-index:2;max-width:600px;}
.hero-carousel-content .eyebrow{color:var(--marigold-light);}
.hero-carousel-content .eyebrow::before{background:var(--marigold-light);}
.hero-carousel-content h1{
    font-size:clamp(2.4rem,6vw,4.4rem);line-height:1.04;color:var(--ivory);
    margin:1rem 0 1.1rem;
}
.hero-carousel-content p{
    font-size:1rem;color:rgba(250,245,236,.85);margin-bottom:2rem;max-width:42ch;
}
.hero-carousel-content .btn{background:transparent;color:var(--ivory);border:1px solid var(--ivory);}
.hero-carousel-content .btn::before{background:var(--ivory);}
.hero-carousel-content .btn:hover{color:var(--ink);}

.hero-carousel-arrow{
    position:absolute;top:50%;transform:translateY(-50%);z-index:3;
    width:46px;height:46px;border-radius:50%;background:rgba(250,245,236,.92);color:var(--ink);
    display:flex;align-items:center;justify-content:center;
    transition:background .25s var(--ease), transform .25s var(--ease);
}
.hero-carousel-arrow:hover{background:var(--ivory);transform:translateY(-50%) scale(1.08);}
.hero-carousel-arrow.-prev{left:24px;}
.hero-carousel-arrow.-next{right:24px;}

.hero-carousel-dots{
    position:absolute;bottom:28px;left:50%;transform:translateX(-50%);z-index:3;
    display:flex;gap:.6rem;
}
.hero-carousel-dots button{
    width:8px;height:8px;border-radius:50%;background:rgba(250,245,236,.5);
    transition:background .25s var(--ease), width .25s var(--ease), border-radius .25s var(--ease);
}
.hero-carousel-dots button.active{background:var(--marigold-light);width:24px;border-radius:4px;}

@media (max-width:640px){
    .hero-carousel-arrow{width:38px;height:38px;}
    .hero-carousel-arrow.-prev{left:12px;}
    .hero-carousel-arrow.-next{right:12px;}
    .hero-carousel-content p{display:none;}
    .hero-carousel-dots{bottom:18px;}
}
