/* ============================================================
 * Plan9 Commerce — Main Storefront CSS
 * static/css/main.css
 * ============================================================ */

/* 1. Design Tokens */
:root {
    --color-primary:      #e91e8c;
    --color-primary-dark: #c4156f;
    --color-primary-light:#fce4f3;
    --color-secondary:    #ffd600;
    --color-dark:         #1a1a2e;
    --color-dark-mid:     #2d2d44;
    --color-mid:          #6b6b80;
    --color-light:        #f7f4ff;
    --color-white:        #ffffff;
    --color-success:      #00c853;
    --color-error:        #f44336;
    --color-warning:      #ff9800;
    
    /* Dedicated retail "sale" colour — deliberately distinct from
       both brand primary (used all over the UI for non-sale things)
       and --color-error (a different semantic meaning). #c62828 on
       white gives ~5.9:1 contrast, comfortably passing WCAG AA for
       any text size. */
    --color-sale:         #c62828;
    --color-sale-dark:    #a31f1f;

    --font-head: 'Fredoka One', cursive;
    --font-body: 'Nunito', sans-serif;

    --sp-xs: 4px; --sp-sm: 8px; --sp-md: 16px;
    --sp-lg: 24px; --sp-xl: 48px; --sp-xxl: 96px;

    --r-sm: 6px; --r-md: 14px; --r-lg: 24px; --r-full: 999px;

    --shadow-sm: 0 2px 12px rgba(26,26,46,.07);
    --shadow-md: 0 6px 30px rgba(26,26,46,.10);
    --shadow-lg: 0 12px 50px rgba(26,26,46,.14);
    --shadow-pink: 0 6px 30px rgba(233,30,140,.25);

    --t-fast: .15s ease; --t-norm: .3s ease;
    --t-bounce: .4s cubic-bezier(.34,1.56,.64,1);

    --max-w: 1280px;
    --header-h: 128px;
}

/* 2. Reset */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth}
body{font-family:var(--font-body);color:var(--color-dark);background:#fff;overflow-x:hidden;line-height:1.65}
body.menu-open{overflow:hidden}
img{max-width:100%;height:auto;display:block}
a{color:var(--color-primary);text-decoration:none;transition:color var(--t-fast)}
a:hover{color:var(--color-primary-dark)}
ul,ol{list-style:none}
p{color:var(--color-mid);margin-bottom:var(--sp-md)}
p:last-child{margin-bottom:0}
h1,h2,h3,h4,h5,h6{font-family:var(--font-head);line-height:1.15;color:var(--color-dark)}
h1{font-size:clamp(2.2rem,5vw,3.8rem)}
h2{font-size:clamp(1.8rem,3.5vw,2.8rem)}
h3{font-size:clamp(1.2rem,2vw,1.6rem)}

/* 3. Layout */
.container{width:100%;max-width:var(--max-w);margin:0 auto;padding:0 var(--sp-lg)}
.section{padding:var(--sp-xxl) 0}
.section--light-bg{background:var(--color-light)}
.section--dark-bg{background:var(--color-dark)}
/*#siteMain{padding-top:var(--header-h)}*/

/* 4. Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-sm);font-family:var(--font-body);font-weight:800;font-size:1rem;line-height:1;padding:14px 28px;border-radius:var(--r-full);border:2px solid transparent;cursor:pointer;transition:background var(--t-fast),color var(--t-fast),transform var(--t-bounce),box-shadow var(--t-fast);text-decoration:none;white-space:nowrap}
.btn:hover{transform:translateY(-2px);text-decoration:none}
.btn:active{transform:translateY(0)}
.btn--primary{background:var(--color-primary);color:#fff;box-shadow:var(--shadow-pink)}
.btn--primary:hover{background:var(--color-primary-dark);color:#fff;box-shadow:0 8px 40px rgba(233,30,140,.35)}
.btn--secondary{background:var(--color-secondary);color:var(--color-dark)}
.btn--secondary:hover{background:#e6c200;color:var(--color-dark)}
.btn--outline{background:transparent;color:var(--color-primary);border-color:var(--color-primary)}
.btn--outline:hover{background:var(--color-primary);color:#fff}
.btn--outline-white{background:transparent;color:#fff;border-color:rgba(255,255,255,.7)}
.btn--outline-white:hover{background:rgba(255,255,255,.15);color:#fff;border-color:#fff}
.btn--sm{font-size:.875rem;padding:10px 20px}
.btn--lg{font-size:1.1rem;padding:18px 36px}
.btn--full{width:100%}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}

/* 4b. Toggle Switch (on/off checkboxes: gift wrap, newsletter, etc.) */
.toggle-switch{position:relative;display:inline-flex;align-items:center;cursor:pointer;vertical-align:middle;flex-shrink:0}
.toggle-switch input{position:absolute;opacity:0;width:0;height:0;margin:0}
.toggle-switch .toggle-track{
    display:inline-block;width:44px;height:24px;border-radius:var(--r-full);
    background:#d7d7e0;transition:background var(--t-fast);flex-shrink:0;
}
.toggle-switch .toggle-thumb{
    position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;
    background:#fff;box-shadow:var(--shadow-sm);
    transition:transform var(--t-fast);
}
.toggle-switch input:checked + .toggle-track{background:var(--color-primary)}
.toggle-switch input:checked + .toggle-track .toggle-thumb{transform:translateX(20px)}
.toggle-switch input:disabled + .toggle-track{opacity:.5;cursor:not-allowed}
.toggle-switch input:focus-visible + .toggle-track{box-shadow:0 0 0 3px rgba(233,30,140,.25)}

/* 5. Demo Banner */
.demo-banner{position:fixed;top:0;left:0;right:0;z-index:99999;background:linear-gradient(135deg,var(--color-dark),var(--color-dark-mid));color:#fff;font-size:.85rem;box-shadow:0 2px 10px rgba(0,0,0,.3)}
.demo-banner__inner{display:flex;align-items:center;gap:var(--sp-md);padding:10px var(--sp-lg);max-width:var(--max-w);margin:0 auto;flex-wrap:wrap}
.demo-banner__label{background:var(--color-primary);color:#fff;font-weight:800;font-size:.75rem;padding:3px 10px;border-radius:var(--r-full);white-space:nowrap;flex-shrink:0}
.demo-banner__text{display:flex;align-items:center;gap:var(--sp-md);flex:1;color:rgba(255,255,255,.9);flex-wrap:wrap}
.demo-banner__btn{background:var(--color-secondary);color:var(--color-dark);font-weight:800;font-size:.85rem;padding:8px 18px;border-radius:var(--r-full);white-space:nowrap;transition:transform var(--t-fast);flex-shrink:0}
.demo-banner__btn:hover{transform:translateY(-1px);color:var(--color-dark)}
.demo-banner__close{background:none;border:1px solid rgba(255,255,255,.3);color:rgba(255,255,255,.7);cursor:pointer;font-size:.85rem;padding:4px 10px;border-radius:4px;transition:all var(--t-fast);margin-left:auto;flex-shrink:0}
.demo-banner__close:hover{background:rgba(255,255,255,.1);color:#fff}

/* 6. Header */
.site-header{position:fixed;top:0;left:0;right:0;z-index:2100;background:#fff;transition:box-shadow var(--t-norm)}
.site-header.is-sticky{box-shadow:var(--shadow-md)}
.site-header__inner{display:flex;align-items:center;gap:var(--sp-lg);height:101px;padding:0 var(--sp-lg);max-width:var(--max-w);margin:0 auto;min-width:0}
.site-header__logo{flex-shrink:1;min-width:0;max-width:60vw;overflow:hidden;text-decoration:none;display:flex;flex-direction:column;justify-content:center;gap:2px}
.site-header__logo-img{max-height:70px;width:auto;flex-shrink:0;object-fit:contain}
.logo-text{font-family:var(--font-head);font-size:1.5rem;color:var(--color-primary);display:inline-block;max-width:100%;white-space:nowrap;vertical-align:middle}
.site-header__logo p{margin:0;max-width:100%;overflow:hidden;white-space:nowrap}
.header-search{flex:1;max-width:480px;display:flex;border:2px solid rgba(26,26,46,.12);border-radius:var(--r-full);overflow:hidden;transition:border-color var(--t-fast)}
.header-search:focus-within{border-color:var(--color-primary)}
.header-search__input{flex:1;min-width:0;padding:10px 18px;border:none;outline:none;font-family:var(--font-body);font-size:.95rem;background:transparent}
.header-search__btn{padding:10px 16px;background:var(--color-primary);border:none;color:#fff;cursor:pointer;flex-shrink:0}
.header-search__btn:hover{background:var(--color-primary-dark)}
.header-actions{display:flex;align-items:center;gap:var(--sp-sm);flex-shrink:0}
.header-action-wrap{position:relative}
.header-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:46px;height:46px;padding:6px;border-radius:var(--r-md);background:transparent;border:none;cursor:pointer;color:var(--color-dark);transition:background var(--t-fast),color var(--t-fast);position:relative;text-decoration:none}
.header-btn:hover{background:var(--color-light);color:var(--color-primary)}
.header-btn__label{font-size:.7rem;font-weight:700;line-height:1}
.header-btn--cart .header-btn__label{color:var(--color-primary);font-size:.85rem;font-weight:800}
.cart-badge{position:absolute;top:4px;right:4px;min-width:18px;height:18px;background:var(--color-primary);color:#fff;font-size:.65rem;font-weight:800;border-radius:var(--r-full);display:flex;align-items:center;justify-content:center;padding:0 4px}
.header-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:180px;background:#fff;border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:var(--sp-sm) 0;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity var(--t-norm),visibility var(--t-norm),transform var(--t-norm);z-index:200}
.header-dropdown.is-open{opacity:1;visibility:visible;transform:translateY(0)}
.header-dropdown a{display:block;padding:10px var(--sp-lg);font-size:.9rem;font-weight:700;color:var(--color-dark);transition:color var(--t-fast),background var(--t-fast)}
.header-dropdown a:hover{color:var(--color-primary);background:var(--color-primary-light)}
.header-dropdown__heading{font-size:.8rem!important;text-transform:uppercase;letter-spacing:.04em;color:var(--color-mid)!important;border-bottom:1px solid rgba(26,26,46,.08);margin-bottom:4px;padding-bottom:12px!important}
.header-dropdown__heading:hover{color:var(--color-primary)!important;background:transparent!important}
.dropdown-divider{height:1px;background:rgba(26,26,46,.08);margin:var(--sp-xs) 0}
.header-btn--menu{display:none;flex-direction:column;gap:5px;height:auto;padding:10px}
.hamburger{display:block;width:22px;height:2px;background:var(--color-dark);border-radius:2px;transition:transform var(--t-norm),opacity var(--t-fast)}
.header-btn--menu.is-active .hamburger:nth-child(1){transform:translateY(7px) rotate(45deg)}
.header-btn--menu.is-active .hamburger:nth-child(2){opacity:0}
.header-btn--menu.is-active .hamburger:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.site-nav{background:var(--color-dark);border-top:1px solid rgba(255,255,255,.08)}
.site-nav .container{max-width:var(--max-w);margin:0 auto;padding:0 var(--sp-lg)}
.site-nav__list{display:flex;align-items:center;gap:2px;flex-wrap:nowrap;min-width:0}
/* Root fix: flex children default to min-width:auto, which blocks
   long text from ever shrinking below its natural width regardless
   of flex-shrink — this is the actual cause of the header overflow,
   not the number of items. min-width:0 here unlocks real shrinking
   for every top-level nav <li> (Home, Shop, categories, dropdown
   groups, More, Blog, Contact) uniformly, before any truncation
   rules below decide how each one visually handles running out of
   room. */
.site-nav__list>li{min-width:0}
.site-nav__link{display:flex;align-items:center;gap:4px;padding:13px 16px;font-weight:700;font-size:.9rem;color:rgba(255,255,255,.85);transition:color var(--t-fast),background var(--t-fast);min-width:0}
.site-nav__link:hover{color:var(--color-secondary);background:rgba(255,255,255,.05)}
/* Plain links only (Home/Shop/category links/Blog/Contact/Advanced
   direct-category links) — always a single text node, so ellipsis on
   the link itself is safe. Scoped to the <a> variant specifically so
   it never applies to the <button> dropdown/More variant below,
   which needs its icon isolated from the truncation instead (see
   .site-nav__label). Short labels are untouched: a flex item only
   shrinks to max-width once the row genuinely runs out of room, so
   one long label doesn't cause short neighbours to truncate too. */
a.site-nav__link{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px}
/* Category Dropdown / More buttons contain text + an icon as
   separate flex children — truncating the whole button would clip
   the icon unpredictably. Isolate the label text in its own element
   instead, so the icon (below) always renders at full size. */
.site-nav__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:130px}
.site-nav__link svg{flex-shrink:0}
/* The More item is the safety net itself — it must never shrink,
   truncate, or disappear, regardless of how tight the row gets. */
.site-nav__more{flex-shrink:0}
.site-nav__more .site-nav__label{max-width:none;overflow:visible;text-overflow:clip}
@media(max-width:1024px){
    /* Tighter available width between 769–1024px — cap labels more
       aggressively so the row still fits without wrapping or
       overflowing; short labels are still unaffected either way. */
    a.site-nav__link{max-width:110px}
    .site-nav__label{max-width:90px}
}
.has-dropdown{position:relative}
.site-nav__dropdown{position:absolute;top:100%;left:0;min-width:200px;background:#fff;border-radius:0 0 var(--r-md) var(--r-md);box-shadow:var(--shadow-lg);padding:var(--sp-sm) 0;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity var(--t-norm),visibility var(--t-norm),transform var(--t-norm);z-index:100}
.has-dropdown:hover .site-nav__dropdown,.site-nav__dropdown.is-open{opacity:1;visibility:visible;transform:translateY(0)}
.site-nav__dropdown a{display:block;padding:10px var(--sp-lg);font-size:.9rem;font-weight:700;color:var(--color-dark);transition:color var(--t-fast),background var(--t-fast)}
.site-nav__dropdown a:hover{color:var(--color-primary);background:var(--color-primary-light)}
.has-dropdown>button.site-nav__link{background:none;border:0;cursor:pointer;font-family:inherit}
.mobile-nav{position:fixed;top:0;right:0;bottom:0;width:min(320px,85vw);background:#fff;box-shadow:var(--shadow-lg);z-index:2000;padding:var(--sp-xl) 0;overflow-y:auto;transform:translateX(110%);transition:transform var(--t-norm);display:flex;flex-direction:column}
.mobile-nav.is-open{transform:translateX(0)}
.mobile-nav a{display:block;padding:14px var(--sp-xl);font-weight:700;font-size:1rem;color:var(--color-dark);border-bottom:1px solid rgba(26,26,46,.06);transition:color var(--t-fast),background var(--t-fast)}
.mobile-nav a:hover{color:var(--color-primary);background:var(--color-primary-light)}
.mobile-nav__group-label{display:block;padding:14px var(--sp-xl) 4px;font-weight:800;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-mid)}
.mobile-nav a.mobile-nav__group-item{padding-left:calc(var(--sp-xl) + 14px);font-weight:600;font-size:.92rem}
.mobile-nav__divider{height:1px;background:rgba(26,26,46,.1);margin:var(--sp-sm) 0}

/* 7. Messages */
.messages-wrap{padding:var(--sp-md) 0}
.alert{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-md);padding:var(--sp-md) var(--sp-lg);border-radius:var(--r-md);margin-bottom:var(--sp-sm);font-weight:600}
.alert-success{background:#e8f5e9;color:#2e7d32;border-left:4px solid var(--color-success)}
.alert-danger,.alert-error{background:#ffebee;color:#c62828;border-left:4px solid var(--color-error)}
.alert-info{background:var(--color-primary-light);color:var(--color-primary-dark);border-left:4px solid var(--color-primary)}
.alert-warning{background:#fff8e1;color:#e65100;border-left:4px solid var(--color-warning)}
.alert-close{background:none;border:none;cursor:pointer;font-size:1rem;color:inherit;padding:0;line-height:1}

/* 8. Hero */
.hero{position:relative;min-height:580px;background:linear-gradient(135deg,var(--color-dark) 0%,#16213e 50%,#0f3460 100%);display:flex;align-items:center;overflow:hidden;padding:var(--sp-xxl) 0 calc(var(--sp-xxl) + 60px)}
.hero__inner{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-xl);align-items:center}
.hero__eyebrow{display:inline-flex;align-items:center;gap:var(--sp-sm);background:rgba(255,214,0,.15);color:var(--color-secondary);border:1px solid rgba(255,214,0,.3);padding:6px 16px;border-radius:var(--r-full);font-size:.9rem;font-weight:700;margin-bottom:var(--sp-md)}
.hero__title{color:#fff;font-size:clamp(2.8rem,6vw,4.5rem);margin-bottom:var(--sp-md)}
.hero__highlight{color:var(--color-secondary);display:block}
.hero__subtitle{color:rgba(255,255,255,.8);font-size:1.2rem;font-weight:600;margin-bottom:var(--sp-xl);max-width:480px}
.hero__actions{display:flex;gap:var(--sp-md);flex-wrap:wrap;margin-bottom:var(--sp-lg)}
.hero__trust{display:flex;gap:var(--sp-lg);flex-wrap:wrap}
.hero__trust span{font-size:.85rem;font-weight:700;color:rgba(255,255,255,.7)}
.hero__visual{display:flex;align-items:center;justify-content:center}
.hero__blob{width:420px;height:420px;max-width:100%;background:radial-gradient(circle at 30% 30%,rgba(233,30,140,.2),rgba(255,214,0,.1),transparent 70%);border-radius:60% 40% 70% 30%/50% 60% 40% 50%;animation:blob 8s ease-in-out infinite}
@keyframes blob{0%,100%{border-radius:60% 40% 70% 30%/50% 60% 40% 50%}50%{border-radius:30% 70% 40% 60%/60% 30% 70% 40%}}
.hero__wave{position:absolute;bottom:0;left:0;right:0;z-index:3;line-height:0}
.hero__wave svg{width:100%;height:60px}

/* 9. Features Strip */
.features-strip{padding:var(--sp-lg) 0;background:#fff;border-bottom:1px solid rgba(26,26,46,.06);box-shadow:var(--shadow-sm)}
.features-strip__list{display:flex;justify-content:center;gap:var(--sp-xl);flex-wrap:wrap}
.features-strip__item{display:flex;align-items:center;gap:var(--sp-md)}
.features-strip__item>span{font-size:2rem}
.features-strip__item div{display:flex;flex-direction:column;gap:2px}
.features-strip__item strong{font-size:.9rem;font-weight:800;color:var(--color-dark)}
.features-strip__item span:last-child{font-size:.8rem;color:var(--color-mid)}

/* 10. Section Headings */
.section-heading{margin-bottom:var(--sp-xl)}
.section-heading--center{text-align:center}
.section-heading--center h2::after{content:'';display:block;width:60px;height:4px;background:var(--color-primary);border-radius:var(--r-full);margin:var(--sp-sm) auto 0}
.section-heading--white h2,.section-heading--white .section-subtitle{color:#fff}
.section-subtitle{font-size:1.1rem;color:var(--color-mid);font-weight:600;margin-top:var(--sp-sm)}
.section-cta{text-align:center;margin-top:var(--sp-xl)}

/* 11. Product Cards */
.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--sp-lg)}
.product-grid--4{grid-template-columns:repeat(4,1fr)}
.product-card{background:#fff;border-radius:var(--r-lg);box-shadow:var(--shadow-sm);overflow:hidden;transition:transform var(--t-bounce),box-shadow var(--t-norm);display:flex;flex-direction:column;border:1px solid rgba(26,26,46,.05)}
.product-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.product-card__img{position:relative;overflow:hidden;aspect-ratio:1/1;background:var(--color-light)}
.product-card__img img{width:100%;height:100%;object-fit:cover;transition:transform var(--t-norm)}
.product-card:hover .product-card__img img{transform:scale(1.07)}
.product-card__img-link{position:absolute;inset:0;display:block;z-index:1}
.product-card__no-img{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:4rem;background:var(--color-light);color:var(--color-mid)}
.product-card__overlay{position:absolute;inset:0;background:rgba(26,26,46,.5);display:flex;align-items:flex-end;justify-content:center;padding:var(--sp-md);opacity:0;transition:opacity var(--t-norm);z-index:2;pointer-events:none}

.product-card:hover .product-card__overlay{opacity:1}
.product-card__quick-add{background:#fff;color:var(--color-primary);border:none;padding:10px 20px;border-radius:var(--r-full);font-family:var(--font-body);font-weight:800;font-size:.9rem;cursor:pointer;width:100%;transition:background var(--t-fast),color var(--t-fast)}
.product-card__quick-add:hover{background:var(--color-primary);color:#fff}


/* The one sale badge, used everywhere a discounted product appears
   (product cards on every listing page, product detail, Related
   Products) — see .sale-badge below for the non-card usage. Strong
   dedicated colour (not brand primary) for maximum shelf-stopping
   prominence; bold/uppercase/spacing carry the "on sale" signal
   without relying on colour alone — the SAVE X% text is the real
   semantic cue. No animation, no oversized graphics, per spec. */
.badge{position:absolute;top:var(--sp-md); background:#ffffff;left:var(--sp-md);padding:4px 12px;border-radius:var(--r-full);font-size:.75rem;font-weight:800;text-transform:uppercase;z-index:2}
.badge--oos{background:rgba(26,26,46,.7);color:#fff}
.badge--abs{position:absolute}

/* Non-absolutely-positioned variant of the same badge, for contexts
   like the product detail page where it sits inline next to the
   price rather than pinned to a product image corner. Same colours,
   same weight/spacing — one visual design, two layout contexts. */



.sale-badge{display:inline-block;background:var(--color-sale);color:#fff;font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:5px 14px;border-radius:var(--r-full);box-shadow:0 2px 8px rgba(198,40,40,.35);vertical-align:middle}
.product-card__body{padding:var(--sp-md) var(--sp-lg);display:flex;flex-direction:column;gap:var(--sp-sm);flex:1}
.product-card__name{font-size:1rem;font-family:var(--font-body);font-weight:800;line-height:1.3}
.product-card__name a{color:var(--color-dark);transition:color var(--t-fast)}
.product-card__name a:hover{color:var(--color-primary)}
.product-card__brand{font-size:.72rem;color:var(--color-mid);text-transform:uppercase;letter-spacing:.04em;margin:2px 0 0;font-weight:700}
.product-card__desc{font-size:.8rem;color:var(--color-mid);line-height:1.4;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.product-card__price{display:flex;align-items:center;gap:var(--sp-sm);flex-wrap:wrap}
.price{font-family:var(--font-head);font-size:1.3rem;color:var(--color-primary)}
/* Canonical sale-price hierarchy, used identically on every listing
   card, the product detail page, and Related Products — original
   price smaller/muted/struck-through, sale price larger/bold and the
   visually dominant element. Defined once here; nothing else in the
   stylesheet should redefine .price-old or .price-sale. */
.price-sale{font-family:var(--font-head);font-size:1.3rem;font-weight:700;color:var(--color-sale)}
.price-old{font-size:.9rem;color:#b0b0c3;text-decoration:line-through}
.add-to-cart-btn{margin-top:auto}

/* Visually hidden but present for assistive tech — used to label
   "Original price"/"Sale price" next to the struck-through and
   dominant prices without adding visual clutter. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* 12. Categories */
.category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(234px,1fr));gap:var(--sp-md)}
.category-card{position:relative;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:1/1;background:var(--color-light);display:block;transition:transform var(--t-bounce),box-shadow var(--t-norm)}
.category-card:hover{transform:translateY(-6px) scale(1.02);box-shadow:var(--shadow-lg)}
.category-card img{width:100%;height:100%;object-fit:cover;transition:transform var(--t-norm)}
.category-card:hover img{transform:scale(1.1)}
.category-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:55%;background:linear-gradient(transparent,rgba(26,26,46,.85));z-index:1}
.category-card__placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:4rem}
.category-card__label{position:absolute;bottom:var(--sp-md);left:0;right:0;text-align:center;z-index:2;color:#fff;font-family:var(--font-head);font-size:1.1rem;padding:0 var(--sp-sm)}


/* 13. Steps */
.steps-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-lg);margin-bottom:var(--sp-xl)}
.step-card{text-align:center;padding:var(--sp-xl) var(--sp-lg);background:rgba(255,255,255,.05);border-radius:var(--r-lg);border:1px solid rgba(255,255,255,.1);position:relative;transition:transform var(--t-bounce)}
.step-card:hover{transform:translateY(-6px)}
.step-num{position:absolute;top:-16px;left:50%;transform:translateX(-50%);width:32px;height:32px;background:var(--color-primary);color:#fff;border-radius:var(--r-full);font-family:var(--font-head);font-size:1rem;display:flex;align-items:center;justify-content:center}
.step-icon{font-size:2.5rem;margin:var(--sp-md) 0 var(--sp-sm)}
.step-card h3{color:#fff;margin-bottom:var(--sp-sm)}
.step-card p{color:rgba(255,255,255,.7);font-size:.9rem}


/* 14. Testimonials */
.testimonials-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-lg)}
.testimonial-card{background:#fff;border-radius:var(--r-lg);padding:var(--sp-lg) var(--sp-xl);box-shadow:var(--shadow-sm);border:1px solid rgba(26,26,46,.05);display:flex;flex-direction:column;gap:var(--sp-md);transition:transform var(--t-bounce),box-shadow var(--t-norm)}
.testimonial-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.testimonial-card .stars{color:#e6c200;font-size:1.1rem;letter-spacing:2px}
.testimonial-card p{font-size:1rem;font-weight:600;color:var(--color-dark);line-height:1.6;font-style:italic;flex:1;margin:0}
.testimonial-card span{font-size:.85rem;font-weight:800;color:var(--color-mid)}

/* 15. Shop page */
.shop-hero{background:linear-gradient(135deg,var(--color-dark) 0%,var(--color-dark-mid) 100%);padding:var(--sp-xl) 0;border-bottom:3px solid var(--color-primary)}
.shop-hero h1{color:#fff;font-size:clamp(1.8rem,4vw,2.8rem);margin:var(--sp-sm) 0}
.breadcrumb{font-size:.85rem;color:rgba(255,255,255,.6);margin-bottom:var(--sp-sm)}
.breadcrumb a{color:rgba(255,255,255,.6);font-weight:600}
.breadcrumb a:hover{color:var(--color-secondary)}
.shop-page{padding:var(--sp-xl) 0 var(--sp-xxl)}
.shop-layout{display:grid;grid-template-columns:240px 1fr;gap:var(--sp-xl);align-items:start}
.shop-sidebar{position:sticky;top:calc(var(--header-h) + var(--sp-lg))}
.sidebar-widget{background:#fff;border-radius:var(--r-lg);padding:var(--sp-lg);margin-bottom:var(--sp-md);box-shadow:var(--shadow-sm);border:1px solid rgba(26,26,46,.05)}
.sidebar-widget__title{font-family:var(--font-head);font-size:1.1rem;color:var(--color-dark);margin-bottom:var(--sp-md);padding-bottom:var(--sp-sm);border-bottom:2px solid var(--color-primary-light)}
.sidebar-widget ul{list-style:none}
.sidebar-widget ul li a{display:flex;justify-content:space-between;padding:9px 0;font-size:.9rem;font-weight:600;color:var(--color-dark);border-bottom:1px solid rgba(26,26,46,.05);transition:color var(--t-fast),padding-left var(--t-fast)}
.sidebar-widget ul li a:hover,.sidebar-widget ul li a.is-active{color:var(--color-primary);padding-left:var(--sp-sm)}
.sidebar-widget .count{font-size:.75rem;color:var(--color-mid);background:var(--color-light);padding:2px 8px;border-radius:var(--r-full)}
.shop-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-lg);padding:var(--sp-md) var(--sp-lg);background:#fff;border-radius:var(--r-md);box-shadow:var(--shadow-sm);border:1px solid rgba(26,26,46,.05)}
.shop-toolbar__count{font-size:.9rem;font-weight:700;color:var(--color-mid);margin:0}
.shop-toolbar__sort{padding:8px 32px 8px 14px;border:1px solid rgba(26,26,46,.12);border-radius:var(--r-full);font-family:var(--font-body);font-weight:700;font-size:.9rem;color:var(--color-dark);background:#fff;cursor:pointer;appearance:none}
.shop-empty{text-align:center;padding:var(--sp-xxl) 0;display:flex;flex-direction:column;align-items:center;gap:var(--sp-md)}
.shop-empty>span{font-size:4rem}

/* 16. Product page */
.product-page{padding:var(--sp-xl) 0 var(--sp-xxl)}
.product-page-header{background:var(--color-light);padding:var(--sp-md) 0;border-bottom:1px solid rgba(26,26,46,.06)}
.product-main{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-xxl);align-items:start;margin-bottom:var(--sp-xxl)}
.product-category{font-size:.8rem;font-weight:700;color:var(--color-mid);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--sp-sm);display:block}
.product-title{font-size:clamp(1.8rem,3.5vw,2.5rem);margin-bottom:var(--sp-md)}
.product-rating{display:flex;align-items:center;gap:var(--sp-md);margin-bottom:var(--sp-md)}
.stars{color:#e6c200;font-size:1rem}
.rating-count{font-size:.85rem;color:var(--color-mid)}
.product-price{margin-bottom:var(--sp-lg)}
.product-price .price,.product-price .price-sale{font-size:2.2rem}
.product-price .price-old{font-size:1.2rem}
.product-price .sale-badge{margin-left:var(--sp-sm)}
.product-stock{margin-bottom:var(--sp-md)}
.stock-badge{display:inline-flex;align-items:center;gap:var(--sp-sm);padding:4px 12px;border-radius:var(--r-full);font-size:.85rem;font-weight:700}
.stock-badge--in{background:#e8f5e9;color:#2e7d32}
.stock-badge--low{background:#fff8e1;color:#e65100}
.stock-badge--out{background:#ffebee;color:#c62828}
.product-short-desc{font-size:1rem;color:var(--color-mid);margin-bottom:var(--sp-lg);padding-bottom:var(--sp-lg);border-bottom:1px solid rgba(26,26,46,.07)}
.product-gallery{position:sticky;top:calc(var(--header-h) + var(--sp-lg))}
.gallery-main{border-radius:var(--r-lg);overflow:hidden;background:var(--color-light);margin-bottom:var(--sp-md);position:relative}
.gallery-main__img{width:100%;aspect-ratio:1/1;object-fit:cover}
.gallery-placeholder{width:100%;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;font-size:6rem;background:var(--color-light)}
.gallery-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-sm)}
.gallery-thumb{border:2px solid transparent;border-radius:var(--r-sm);overflow:hidden;cursor:pointer;background:none;padding:0;transition:border-color var(--t-fast)}
.gallery-thumb img{width:100%;aspect-ratio:1/1;object-fit:cover}
.gallery-thumb.is-active,.gallery-thumb:hover{border-color:var(--color-primary)}
.variant-options{display:flex;gap:var(--sp-sm);flex-wrap:wrap;margin-top:var(--sp-sm);margin-bottom:var(--sp-lg)}
.variant-btn{padding:8px 16px;border:2px solid rgba(26,26,46,.12);border-radius:var(--r-full);background:#fff;cursor:pointer;font-family:var(--font-body);font-weight:700;font-size:.9rem;transition:all var(--t-fast);display:flex;flex-direction:column;align-items:center;gap:2px}
.variant-btn.is-active,.variant-btn:hover{border-color:var(--color-primary);background:var(--color-primary-light);color:var(--color-primary)}
.variant-btn:disabled{opacity:.5;cursor:not-allowed}
.variant-price{font-size:.8rem;font-weight:800;color:var(--color-primary)}
.product-qty-row{display:flex;gap:var(--sp-md);margin-bottom:var(--sp-md);align-items:center}
.qty-control{display:flex;align-items:center;border:2px solid rgba(26,26,46,.12);border-radius:var(--r-md);overflow:hidden;flex-shrink:0}
.qty-btn{width:40px;height:52px;background:var(--color-light);border:none;cursor:pointer;font-size:1.2rem;font-weight:800;color:var(--color-dark);transition:background var(--t-fast)}
.qty-btn:hover{background:var(--color-primary-light);color:var(--color-primary)}
.qty-input{width:60px;height:52px;text-align:center;border:none;outline:none;font-family:var(--font-body);font-weight:800;font-size:1.1rem}
.product-add-btn{flex:1}
.product-trust{display:flex;gap:var(--sp-lg);padding:var(--sp-md) var(--sp-lg);background:var(--color-light);border-radius:var(--r-md);flex-wrap:wrap;margin-bottom:var(--sp-md)}
.product-trust span{font-size:.85rem;font-weight:700;color:var(--color-dark)}
.product-meta{font-size:.85rem;color:var(--color-mid)}
.product-tabs{background:#fff;border-radius:var(--r-lg);box-shadow:var(--shadow-sm);border:1px solid rgba(26,26,46,.05);overflow:hidden;margin-bottom:var(--sp-xxl)}
.tabs-nav{display:flex;background:var(--color-light)}
.tab-btn{padding:16px 28px;font-family:var(--font-body);font-weight:800;font-size:.95rem;color:var(--color-mid);background:none;border:none;border-bottom:3px solid transparent;cursor:pointer;transition:color var(--t-fast),border-color var(--t-fast),background var(--t-fast)}
.tab-btn.is-active,.tab-btn:hover{color:var(--color-primary);background:#fff;border-bottom-color:var(--color-primary)}
.tab-panel{display:none;padding:var(--sp-xl)}
.tab-panel.is-active{display:block}
.product-description{line-height:1.8;color:var(--color-mid)}
.review{background:var(--color-light);border-radius:var(--r-md);padding:var(--sp-lg);margin-bottom:var(--sp-md)}
.review__header{display:flex;align-items:center;gap:var(--sp-md);margin-bottom:var(--sp-sm);flex-wrap:wrap}
.review__date{font-size:.8rem;color:var(--color-mid);margin-left:auto}
.related-products{margin-bottom:var(--sp-xxl)}
.related-products h2{font-size:1.8rem;margin-bottom:var(--sp-xl);text-align:center}

/* 17. Cart */
.cart-page{padding:var(--sp-xl) 0 var(--sp-xxl)}
.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-xl);flex-wrap:wrap;gap:var(--sp-md)}
.page-header h1{margin:0}
.cart-layout{display:grid;grid-template-columns:1fr 360px;gap:var(--sp-xl);align-items:start}
.cart-items{background:#fff;border-radius:var(--r-lg);box-shadow:var(--shadow-sm);border:1px solid rgba(26,26,46,.05);overflow:hidden}
.cart-items__head{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 40px;gap:var(--sp-md);padding:var(--sp-md) var(--sp-lg);background:var(--color-light);font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--color-mid)}
.cart-item{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 40px;gap:var(--sp-md);padding:var(--sp-lg);border-bottom:1px solid rgba(26,26,46,.06);align-items:center;transition:background var(--t-fast)}
.cart-item:last-of-type{border-bottom:none}
.cart-item:hover{background:var(--color-light)}
.cart-item__product{display:flex;align-items:center;gap:var(--sp-md)}
.cart-item__img{width:70px;height:70px;flex-shrink:0;border-radius:var(--r-sm);overflow:hidden;background:var(--color-light);object-fit:cover}
.cart-item__name{font-weight:700;font-size:.95rem;color:var(--color-dark);display:block;margin-bottom:4px}
.cart-item__variant{font-size:.8rem;color:var(--color-mid);display:block}
.cart-item__price,.cart-item__total{font-weight:700;font-size:1rem;color:var(--color-dark)}
.cart-item__total{color:var(--color-primary);font-family:var(--font-head);font-size:1.1rem}
.qty-mini{display:flex;align-items:center;border:2px solid rgba(26,26,46,.12);border-radius:var(--r-md);overflow:hidden;width:fit-content}
.qty-mini__btn{width:30px;height:34px;background:var(--color-light);border:none;cursor:pointer;font-weight:800;color:var(--color-dark);transition:background var(--t-fast);font-size:.9rem}
.qty-mini__btn:hover{background:var(--color-primary-light);color:var(--color-primary)}
.qty-mini__val{width:40px;text-align:center;font-weight:800;font-size:.9rem}
.cart-remove-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--r-full);background:var(--color-light);border:none;cursor:pointer;color:var(--color-mid);font-weight:800;transition:background var(--t-fast),color var(--t-fast)}
.cart-remove-btn:hover{background:#ffebee;color:var(--color-error)}
.cart-summary{position:sticky;top:calc(var(--header-h) + var(--sp-lg));background:#fff;border-radius:var(--r-lg);box-shadow:var(--shadow-md);border:1px solid rgba(26,26,46,.05);overflow:hidden}
.cart-summary h3{background:var(--color-dark);color:#fff;font-family:var(--font-head);font-size:1.2rem;padding:var(--sp-md) var(--sp-lg);margin:0}
.cart-totals{padding:0}
.cart-totals__row{display:flex;justify-content:space-between;padding:14px var(--sp-lg);border-bottom:1px solid rgba(26,26,46,.06);font-size:.95rem;font-weight:700}
.cart-totals__row--tax{font-size:.85rem;font-weight:600;color:var(--color-mid)}
.cart-totals__row--total{background:var(--color-primary-light);border-bottom:none;font-family:var(--font-head);font-size:1.1rem;color:var(--color-primary)}
.cart-summary .btn{margin:var(--sp-md) var(--sp-lg)}
.cart-summary .btn--full{width:calc(100% - var(--sp-lg)*2)}
.cart-trust{display:flex;justify-content:center;gap:var(--sp-lg);padding:var(--sp-md);border-top:1px solid rgba(26,26,46,.06);font-size:.8rem;font-weight:700;color:var(--color-mid)}
.free-delivery-hint{text-align:center;font-size:.8rem;color:var(--color-primary);font-weight:700;padding:var(--sp-sm) var(--sp-lg);background:var(--color-primary-light)}
.cart-empty{text-align:center;padding:var(--sp-xxl) 0;display:flex;flex-direction:column;align-items:center;gap:var(--sp-md)}
.cart-empty>span{font-size:4rem}

/* 18. Checkout */
.checkout-page{padding:var(--sp-xl) 0 var(--sp-xxl)}
.checkout-steps-indicator{display:flex;align-items:center;gap:var(--sp-md);margin-bottom:var(--sp-xl);flex-wrap:wrap}
.checkout-steps-indicator .step{font-weight:700;font-size:.9rem;color:var(--color-mid);padding:6px 14px;border-radius:var(--r-full);background:var(--color-light)}
.checkout-steps-indicator .step.is-active{background:var(--color-primary);color:#fff}
.checkout-steps-indicator .step.is-done{background:#e8f5e9;color:#2e7d32}
.checkout-steps-indicator .step-line{color:var(--color-mid);font-size:.9rem}
.checkout-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:var(--sp-xl);align-items:start}
.checkout-form .checkout-section{background:#fff;border-radius:var(--r-lg);padding:var(--sp-xl);box-shadow:var(--shadow-sm);border:1px solid rgba(26,26,46,.05);margin-bottom:var(--sp-md)}
.checkout-section h2{font-size:1.3rem;margin-bottom:var(--sp-lg);padding-bottom:var(--sp-md);border-bottom:2px solid var(--color-primary-light)}
.checkout-aside{position:sticky;top:calc(var(--header-h) + var(--sp-lg))}
.order-summary{background:#fff;border-radius:var(--r-lg);box-shadow:var(--shadow-md);overflow:hidden;margin-bottom:var(--sp-md)}
.order-summary h3{background:var(--color-dark);color:#fff;font-family:var(--font-head);font-size:1.2rem;padding:var(--sp-md) var(--sp-lg);margin:0}
.summary-item{display:flex;justify-content:space-between;align-items:center;padding:12px var(--sp-lg);border-bottom:1px solid rgba(26,26,46,.06);font-size:.9rem;gap:var(--sp-md)}
.summary-item span:first-child{flex:1;font-weight:600;color:var(--color-dark)}
.summary-item__img-wrap{position:relative;flex-shrink:0}
.summary-item__img-wrap img{width:44px;height:44px;border-radius:var(--r-sm);object-fit:cover}
.summary-item__qty{position:absolute;top:-6px;right:-6px;width:20px;height:20px;background:var(--color-primary);color:#fff;border-radius:var(--r-full);font-size:.7rem;font-weight:800;display:flex;align-items:center;justify-content:center}
.summary-totals{padding:0 var(--sp-lg) var(--sp-md)}
.summary-totals div{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid rgba(26,26,46,.06);font-size:.9rem;font-weight:700}
.summary-totals div:last-child{border-bottom:none}
.total-row{font-family:var(--font-head);font-size:1.2rem;color:var(--color-primary)!important}

/* Gift wrapping — a soft highlight so it reads as a nice add-on, not a form field */
.gift-wrap-block{
    background:var(--color-primary-light);border-radius:var(--r-md);
    padding:var(--sp-md) var(--sp-lg);margin:var(--sp-md) var(--sp-lg);
}
.gift-wrap-block__toggle{display:flex;align-items:center;justify-content:space-between;gap:.75rem;cursor:pointer;font-weight:700;font-size:.9rem;color:var(--color-dark)}
.gift-wrap-block__message{margin-top:var(--sp-sm)}
.gift-wrap-block__message label{font-size:.8rem;color:var(--color-mid);display:block;margin-bottom:.35rem}
.gift-wrap-block__message textarea{width:100%;font-family:inherit;font-size:.875rem;padding:.6rem;border:1px solid rgba(233,30,140,.25);border-radius:var(--r-sm);background:#fff}
.gift-wrap-block__error{color:var(--color-error);font-size:.8rem;margin-top:.5rem;display:none}
.checkout-trust{display:flex;justify-content:center;gap:var(--sp-lg);background:#fff;border-radius:var(--r-md);padding:var(--sp-md);font-size:.8rem;font-weight:700;color:var(--color-mid)}
.delivery-summary{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-md)}
.delivery-summary h3{margin-bottom:var(--sp-sm);font-size:1rem}
.delivery-summary p{font-size:.9rem;color:var(--color-mid);margin:0}
.edit-link{font-size:.85rem;font-weight:700;color:var(--color-primary);white-space:nowrap}
.payment-options{display:flex;flex-direction:column;gap:var(--sp-md);margin-bottom:var(--sp-lg)}
.payment-option{width:100%}
.payment-btn{width:100%;padding:var(--sp-lg);border:2px solid rgba(26,26,46,.12);border-radius:var(--r-md);background:#fff;cursor:pointer;font-family:var(--font-body);font-size:1rem;font-weight:700;display:flex;flex-direction:column;align-items:center;gap:var(--sp-sm);transition:border-color var(--t-fast),background var(--t-fast)}
.payment-btn:hover{border-color:var(--color-primary);background:var(--color-primary-light)}
.payment-btn--stripe:hover{border-color:#635bff;background:#f0f0ff}
.payment-btn--paypal:hover{border-color:#003087;background:#f0f8ff}
.payment-logos{font-size:.8rem;color:var(--color-mid)}
.payment-secure{text-align:center;font-size:.8rem;color:var(--color-mid);font-weight:600}

/* 19. Order Success */
.success-page{padding:var(--sp-xl) 0 var(--sp-xxl)}
.success-hero{text-align:center;margin-bottom:var(--sp-xxl)}
.success-hero__icon{font-size:4rem;margin-bottom:var(--sp-md);animation:bounce 1s ease-in-out}
@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-15px)}}
.success-hero__sub{font-size:1.1rem;color:var(--color-mid);margin-bottom:var(--sp-md)}
.success-hero__number{display:inline-block;background:var(--color-light);padding:var(--sp-sm) var(--sp-lg);border-radius:var(--r-full);font-weight:700}
.success-layout{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-xl);margin-bottom:var(--sp-xl)}
.success-order,.success-delivery{background:#fff;border-radius:var(--r-lg);padding:var(--sp-xl);box-shadow:var(--shadow-sm);border:1px solid rgba(26,26,46,.05)}
.success-order h2,.success-delivery h2{font-size:1.3rem;margin-bottom:var(--sp-lg)}
.order-line{display:flex;justify-content:space-between;align-items:baseline;gap:var(--sp-md);padding:12px 0;border-bottom:1px solid rgba(26,26,46,.06);font-size:.9rem}
.order-line:first-child{padding-top:0}
.order-line:last-child{border-bottom:none;padding-bottom:0}
.order-line__name{flex:1;font-weight:600;color:var(--color-dark)}
.order-line__total{font-weight:700;color:var(--color-dark);white-space:nowrap}
.order-totals{margin-top:var(--sp-md);padding-top:var(--sp-md);border-top:2px solid rgba(26,26,46,.08)}
.order-totals .summary-totals{padding:0}
.order-totals div{justify-content:space-between;padding:8px 0;font-size:.9rem;font-weight:700}
.success-delivery address{font-style:normal;line-height:1.8;color:var(--color-mid);margin-bottom:var(--sp-lg)}
.success-delivery address strong{color:var(--color-dark)}
.success-next-steps h3{font-size:1rem;margin-bottom:var(--sp-md)}
.success-next-steps ol{list-style:decimal;padding-left:var(--sp-xl);display:flex;flex-direction:column;gap:var(--sp-sm)}
.success-next-steps li{font-size:.9rem;color:var(--color-mid)}
.success-actions{display:flex;justify-content:center;gap:var(--sp-md);flex-wrap:wrap}

/* 20. Accounts */
.account-page{padding:var(--sp-xl) 0 var(--sp-xxl)}
.auth-card{max-width:480px;margin:var(--sp-xxl) auto;background:#fff;border-radius:var(--r-lg);padding:var(--sp-xxl);box-shadow:var(--shadow-md);border:1px solid rgba(26,26,46,.05)}
.auth-card h1{margin-bottom:var(--sp-xl);text-align:center}

/* 21. Forms */
.form-group{margin-bottom:var(--sp-md)}
label{display:block;font-size:.875rem;font-weight:800;color:var(--color-dark);margin-bottom:var(--sp-xs)}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=tel],input[type=search],select,textarea{width:100%;padding:12px 16px;border:2px solid rgba(26,26,46,.12);border-radius:var(--r-md);font-family:var(--font-body);font-size:1rem;color:var(--color-dark);background:#fff;transition:border-color var(--t-fast),box-shadow var(--t-fast)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(233,30,140,.1)}
textarea{resize:vertical;min-height:100px}
.form-label{display:block;font-size:.875rem;font-weight:800;color:var(--color-dark);margin-bottom:var(--sp-xs)}

/* 22. Toast */
.cart-toast{position:fixed;bottom:var(--sp-lg);right:var(--sp-lg);z-index:9999;display:flex;align-items:center;gap:var(--sp-md);padding:var(--sp-md) var(--sp-lg);background:var(--color-dark);color:#fff;border-radius:var(--r-md);box-shadow:var(--shadow-lg);font-size:.9rem;font-weight:700;transform:translateY(120px);transition:transform var(--t-norm);max-width:320px}
.cart-toast.is-visible{transform:translateY(0)}

/* 23. Footer */
.site-footer{background:var(--color-dark)}
.footer-top{padding:var(--sp-xxl) 0 var(--sp-xl)}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:var(--sp-xl)}
.footer-col--brand p{font-size:.9rem;color:rgba(255,255,255,.6);line-height:1.7}
.footer-logo{font-family:var(--font-head);font-size:1.6rem;color:#fff;margin-bottom:var(--sp-md)}
.footer-tagline{font-size:.9rem;color:rgba(255,255,255,.6);font-style:italic;margin-bottom:var(--sp-md)}
.footer-col h4{font-family:var(--font-head);font-size:1rem;color:#fff;margin-bottom:var(--sp-md)}
.footer-col ul{display:flex;flex-direction:column;gap:var(--sp-sm)}
.footer-col ul li a{color:rgba(255,255,255,.65);font-size:.9rem;font-weight:600;transition:color var(--t-fast)}
.footer-col ul li a:hover{color:var(--color-secondary)}
.footer-trust li{font-size:.9rem;font-weight:600;color:rgba(255,255,255,.65)}
.footer-contact{font-size:.9rem;color:rgba(255,255,255,.65)}
.footer-contact a{color:rgba(255,255,255,.65)}
.footer-contact a:hover{color:var(--color-secondary)}
.social-link{display:inline-block;color:rgba(255,255,255,.65);margin-right:var(--sp-md);font-size:.9rem;font-weight:700;transition:color var(--t-fast)}
.social-link:hover{color:var(--color-secondary)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding:var(--sp-lg) 0}
.footer-bottom__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-md);flex-wrap:wrap}
.footer-bottom__inner p{font-size:.85rem;color:rgba(255,255,255,.45);margin:0}
.footer-legal{display:flex;gap:var(--sp-lg);flex-wrap:wrap}
.footer-legal a{font-size:.85rem;color:rgba(255,255,255,.45);font-weight:600;transition:color var(--t-fast)}
.footer-legal a:hover{color:var(--color-secondary)}

/* 24. Responsive */
@media(max-width:1024px){
    :root{--header-h:108px}
    .hero__inner,.product-main,.success-layout{grid-template-columns:1fr}
    .hero__visual{display:none}
    .hero__subtitle,.hero__actions,.hero__trust{max-width:100%}
    .hero__actions{justify-content:center}
    .hero__trust,.hero__subtitle{text-align:center}
    .steps-grid,.testimonials-grid{grid-template-columns:repeat(2,1fr)}
    .shop-layout{grid-template-columns:1fr}
    .shop-sidebar{display:none}
    .cart-layout,.checkout-layout{grid-template-columns:1fr}
    .cart-summary,.checkout-aside{position:static}
    .footer-grid{grid-template-columns:1fr 1fr}
    .product-grid--4{grid-template-columns:repeat(2,1fr)}
    .product-gallery{position:static}
}
@media(max-width:768px){
    :root{--sp-xxl:56px;--sp-xl:36px;--header-h:120px}
    .header-btn--menu{display:flex; z-index:10000;}
    .site-nav{display:none}
    .hero__title{font-size:2.2rem}
    .hero__actions{flex-direction:column;align-items:center}
    .features-strip__list{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-md)}
    .product-grid{grid-template-columns:repeat(2,1fr);gap:var(--sp-md)}
    .steps-grid,.testimonials-grid{grid-template-columns:1fr}
    .cart-items__head{display:none}
    .cart-item{grid-template-columns:1fr;gap:var(--sp-sm);position:relative;padding-right:50px}
    .cart-item__remove{position:absolute;top:var(--sp-lg);right:var(--sp-md)}
    .category-grid{grid-template-columns:repeat(2,1fr)}
    .footer-grid{grid-template-columns:1fr}
    .footer-bottom__inner{flex-direction:column;text-align:center}
    .footer-legal{justify-content:center}
    .demo-hide-mobile{display:none}
    .checkout-steps-indicator .step-line{display:none}
}

@media(max-width:668px){
.header-search{display:none;}

}

@media(max-width:440px){
    /* Below this width, prefer shrinking the store name over ever
       clipping it — the logo stays fully readable, just smaller. */
    .logo-text{font-size:1.1rem}
    .site-header__inner{padding: 0px var(--sp-sm);}
}



/* 25. Account Pages */
.auth-page{padding:var(--sp-xxl) 0}
.auth-card{max-width:500px;margin:0 auto;background:#fff;border-radius:var(--r-lg);padding:var(--sp-xxl);box-shadow:var(--shadow-md);border:1px solid rgba(26,26,46,.05)}
.auth-card__header{text-align:center;margin-bottom:var(--sp-xl)}
.auth-card__icon{font-size:3rem;display:block;margin-bottom:var(--sp-md)}
.auth-card__header h1{margin-bottom:var(--sp-sm)}
.auth-card__header p{color:var(--color-mid);margin:0}
.auth-card__footer{text-align:center;margin-top:var(--sp-lg);padding-top:var(--sp-lg);border-top:1px solid rgba(26,26,46,.08)}
.auth-card__footer p{margin:0;font-size:.9rem}
.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-md)}
.form-input{width:100%;padding:12px 16px;border:2px solid rgba(26,26,46,.12);border-radius:var(--r-md);font-family:var(--font-body);font-size:1rem;color:var(--color-dark);background:#fff;transition:border-color var(--t-fast)}
.form-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(233,30,140,.1)}
.form-input--error{border-color:var(--color-error)}
.form-error{display:block;font-size:.8rem;color:var(--color-error);margin-top:4px;font-weight:700}
.form-errors-general{background:#ffebee;border-radius:var(--r-sm);padding:var(--sp-md);margin-bottom:var(--sp-md)}
.account-page{padding:var(--sp-xl) 0 var(--sp-xxl)}
.account-header{display:flex;align-items:center;gap:var(--sp-lg);margin-bottom:var(--sp-xl)}
.account-header__avatar{width:64px;height:64px;border-radius:var(--r-full);background:var(--color-primary);color:#fff;font-family:var(--font-head);font-size:1.8rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.account-header h1{margin-bottom:4px}
.account-header p{margin:0;color:var(--color-mid);font-size:.9rem}
.account-nav{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:var(--sp-xl);padding-bottom:var(--sp-lg);border-bottom:2px solid rgba(26,26,46,.06)}
.account-nav__link{padding:8px 18px;border-radius:var(--r-full);font-weight:700;font-size:.9rem;color:var(--color-mid);background:var(--color-light);transition:background var(--t-fast),color var(--t-fast)}
.account-nav__link:hover,.account-nav__link.is-active{background:var(--color-primary);color:#fff}
.account-nav__link--logout{background:transparent;color:var(--color-mid)}
.account-nav__link--logout:hover{background:#ffebee;color:var(--color-error)}
.account-grid{display:grid;grid-template-columns:1fr 320px;gap:var(--sp-xl);align-items:start}
.account-section{background:#fff;border-radius:var(--r-lg);padding:var(--sp-xl);box-shadow:var(--shadow-sm);border:1px solid rgba(26,26,46,.05);margin-bottom:var(--sp-md)}
.account-section__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-lg)}
.account-section__header h2{margin:0}
.account-empty{text-align:center;padding:var(--sp-xl) 0;display:flex;flex-direction:column;align-items:center;gap:var(--sp-md)}
.account-empty>span{font-size:3rem}
.account-empty h2{font-size:1.3rem}
.account-quick-links{display:flex;flex-direction:column;gap:var(--sp-sm)}
.account-quick-link{display:flex;align-items:center;gap:var(--sp-md);padding:var(--sp-md) var(--sp-lg);border-radius:var(--r-md);background:var(--color-light);transition:background var(--t-fast),transform var(--t-bounce)}
.account-quick-link:hover{background:var(--color-primary-light);transform:translateX(4px)}
.account-quick-link>span:first-child{font-size:1.5rem;flex-shrink:0}
.account-quick-link strong{display:block;color:var(--color-dark);font-size:.9rem}
.account-quick-link span:last-child{font-size:.8rem;color:var(--color-mid)}

/* 26. Orders list */
.orders-list{display:flex;flex-direction:column;gap:var(--sp-sm)}
.order-card{display:grid;grid-template-columns:1fr 1fr auto;gap:var(--sp-md);padding:var(--sp-md) var(--sp-lg);background:#fff;border-radius:var(--r-md);box-shadow:var(--shadow-sm);border:1px solid rgba(26,26,46,.05);transition:transform var(--t-bounce),box-shadow var(--t-norm);align-items:center}
.order-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.order-card__info strong{display:block;color:var(--color-dark);font-size:.95rem}
.order-card__info span{font-size:.8rem;color:var(--color-mid)}
.order-card__middle{font-size:.85rem;color:var(--color-mid)}
.order-card__right{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.order-total{font-family:var(--font-head);font-size:1.1rem;color:var(--color-primary)}
.order-status{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--r-full);font-size:.75rem;font-weight:800;text-transform:uppercase}
.order-status--pending{background:#fff8e1;color:#e65100}
.order-status--paid{background:#e8f5e9;color:#2e7d32}
.order-status--processing{background:#e3f2fd;color:#1565c0}
.order-status--shipped{background:#f3e5f5;color:#6a1b9a}
.order-status--delivered{background:#e8f5e9;color:#1b5e20}
.order-status--cancelled{background:#ffebee;color:#c62828}
.order-status--lg{font-size:.85rem;padding:6px 16px}
.tracking-badge{font-size:.75rem;color:var(--color-mid);background:var(--color-light);padding:2px 8px;border-radius:var(--r-full)}

/* My Orders — one order, one card */
.order-history-list{display:flex;flex-direction:column;gap:var(--sp-md)}
.order-history-card{
    background:#fff;border-radius:var(--r-lg);box-shadow:var(--shadow-sm);
    border:1px solid rgba(26,26,46,.05);padding:var(--sp-lg);
}
.order-history-card__top{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-md);margin-bottom:6px}
.order-history-card__fulfilment{font-family:var(--font-head);font-size:1.3rem;color:var(--color-dark)}
.order-history-card__number{font-size:.9rem;color:var(--color-mid);margin-bottom:10px}
.order-history-card__payment{font-size:.85rem;color:var(--color-mid);margin-bottom:10px}
.order-history-card__meta{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:.85rem;color:var(--color-mid);margin-bottom:8px}
.order-history-card__total{font-weight:800;color:var(--color-dark)}

.order-progress{display:flex;align-items:flex-start;margin:14px 0}
.order-progress__step{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1;min-width:70px;position:relative}
.order-progress__step::before{
    content:'';position:absolute;top:5px;left:-50%;width:100%;height:2px;
    background:rgba(26,26,46,.1);z-index:0;
}
.order-progress__step:first-child::before{display:none}
.order-progress__step.is-done::before{background:var(--color-primary)}
.order-progress__dot{width:12px;height:12px;border-radius:var(--r-full);background:rgba(26,26,46,.15);z-index:1;flex-shrink:0}
.order-progress__step.is-done .order-progress__dot{background:var(--color-primary)}
.order-progress__label{font-size:.7rem;color:var(--color-mid);text-align:center;white-space:nowrap}
.order-progress__step.is-done .order-progress__label{color:var(--color-dark);font-weight:700}

.order-history-card__actions{display:flex;flex-wrap:wrap;gap:8px;padding-top:14px;border-top:1px solid rgba(26,26,46,.06)}

@media (max-width:640px){
    .order-history-card__actions{flex-direction:column}
    .order-history-card__actions .btn{width:100%;text-align:center}

    /* Progress tracker stacks vertically on mobile — the horizontal
       connecting line only makes sense when steps sit side by side */
    .order-progress{flex-direction:column;align-items:flex-start;gap:10px}
    .order-progress__step{flex-direction:row;justify-content:flex-start;min-width:0;width:100%}
    .order-progress__step::before{
        top:-10px;left:5px;width:2px;height:10px;
    }
    .order-progress__label{text-align:left}
}

/* 27. Order Detail (customer) */
.order-detail-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--sp-xl);flex-wrap:wrap;gap:var(--sp-md)}
.order-detail-header h1{margin-bottom:4px}
.order-detail-header p{margin:0;color:var(--color-mid);font-size:.9rem}
.order-detail-layout{display:grid;grid-template-columns:1fr 280px;gap:var(--sp-xl);align-items:start;margin-bottom:var(--sp-xl)}
.order-detail-main{display:flex;flex-direction:column;gap:var(--sp-md)}
.order-detail-aside{position:sticky;top:calc(var(--header-h) + var(--sp-lg));display:flex;flex-direction:column;gap:var(--sp-md)}
.order-line-detail{display:flex;align-items:center;gap:var(--sp-md);padding:12px 0;border-bottom:1px solid rgba(26,26,46,.06)}
.order-line-detail:last-child{border-bottom:none}
.order-line-detail__info{flex:1}
.order-line-detail__info strong{display:block;color:var(--color-dark);font-size:.95rem}
.order-line-detail__variant{font-size:.8rem;color:var(--color-mid)}
.order-line-detail__qty{color:var(--color-mid);font-size:.9rem;white-space:nowrap}
.order-line-detail__price{font-weight:700;color:var(--color-dark);white-space:nowrap}
.order-totals-summary{margin-top:var(--sp-md);padding-top:var(--sp-md);border-top:2px solid rgba(26,26,46,.08)}
.order-totals-row{display:flex;justify-content:space-between;padding:8px 0;font-size:.9rem;font-weight:700;border-bottom:1px solid rgba(26,26,46,.06)}
.order-totals-row:last-child{border-bottom:none}
.order-totals-row--tax{font-weight:600;color:var(--color-mid)}
.order-totals-row--total{font-size:1.1rem;color:var(--color-primary)}
.order-address{font-style:normal;line-height:1.8;color:var(--color-mid)}
.order-address strong{color:var(--color-dark)}
.tracking-section{background:var(--color-light)!important}
.order-detail-actions{display:flex;gap:var(--sp-md);flex-wrap:wrap}

/* 28. Addresses */
.address-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--sp-lg)}
.address-card{background:#fff;border-radius:var(--r-lg);padding:var(--sp-lg) var(--sp-xl);box-shadow:var(--shadow-sm);border:1px solid rgba(26,26,46,.05);position:relative;transition:transform var(--t-bounce),box-shadow var(--t-norm)}
.address-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.address-card--default{border-color:var(--color-primary);border-width:2px}
.address-badge{position:absolute;top:var(--sp-md);right:var(--sp-md);font-size:.75rem;font-weight:800;background:var(--color-primary-light);color:var(--color-primary);padding:3px 10px;border-radius:var(--r-full)}
.address-card__label{font-size:1rem;margin-bottom:var(--sp-sm)}
.address-card__details{font-style:normal;font-size:.9rem;line-height:1.8;color:var(--color-mid);margin-bottom:var(--sp-md)}
.address-card__details strong{color:var(--color-dark)}
.address-card__actions{display:flex;gap:var(--sp-sm)}
.btn--danger{background:#ffebee;color:var(--color-error);border:none}
.btn--danger:hover{background:var(--color-error);color:#fff}

/* 29. Search form */
.search-form-large{display:flex;gap:var(--sp-md);margin-bottom:var(--sp-xl);flex-wrap:wrap}
.search-form-large__input{flex:1;min-width:200px;padding:14px 20px;border:2px solid rgba(26,26,46,.12);border-radius:var(--r-full);font-family:var(--font-body);font-size:1rem;transition:border-color var(--t-fast)}
.search-form-large__input:focus{outline:none;border-color:var(--color-primary)}

/* 30. Dashboard extra: order notes */
.order-note{background:var(--color-light);border-radius:var(--r-sm);padding:var(--sp-md);margin-bottom:var(--sp-sm)}
.order-note__meta{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;font-size:.8rem}
.order-note__meta strong{color:var(--color-dark)}
.order-note__meta span{color:var(--color-mid)}
.order-note p{font-size:.875rem;color:var(--color-mid);margin:0}
.dash-filters{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.dash-filter__search{flex:1;min-width:200px}
.dash-filter__select{min-width:150px}
.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-md)}

/* 31. Responsive additions */
@media(max-width:1024px){
    .account-grid,.order-detail-layout{grid-template-columns:1fr}
    .order-detail-aside{position:static}
}
@media(max-width:768px){
    .auth-card{padding:var(--sp-xl) var(--sp-lg)}
    .form-row-2{grid-template-columns:1fr}
    .order-card{grid-template-columns:1fr;gap:var(--sp-sm)}
    .order-card__right{flex-direction:row;align-items:center}
    .address-grid{grid-template-columns:1fr}
    .account-nav{gap:var(--sp-sm)}
    .account-nav__link{font-size:.8rem;padding:6px 12px}
}

/* 32. Flat Pages */
.page-hero{background:linear-gradient(135deg,var(--color-dark) 0%,var(--color-dark-mid) 100%);padding:var(--sp-xl) 0;border-bottom:3px solid var(--color-primary)}
.page-hero h1{color:#fff;margin:var(--sp-sm) 0}
.flat-page{padding:var(--sp-xl) 0 var(--sp-xxl)}
.flat-page__content{max-width:800px;background:#fff;border-radius:var(--r-lg);padding:var(--sp-xxl);box-shadow:var(--shadow-sm);border:1px solid rgba(26,26,46,.05);line-height:1.8}
.flat-page__content h1,.flat-page__content h2,.flat-page__content h3{margin-top:var(--sp-xl);margin-bottom:var(--sp-md)}
.flat-page__content p{color:var(--color-mid);margin-bottom:var(--sp-md)}
.flat-page__content ul,.flat-page__content ol{padding-left:var(--sp-xl);margin-bottom:var(--sp-md);color:var(--color-mid)}
.flat-page__content li{margin-bottom:var(--sp-sm)}
.flat-page__content a{color:var(--color-primary);font-weight:700}
.flat-page__content strong{color:var(--color-dark)}
.flat-page__content table{width:100%;border-collapse:collapse;margin-bottom:var(--sp-lg)}
.flat-page__content th,.flat-page__content td{padding:10px 14px;border:1px solid rgba(26,26,46,.1);text-align:left;font-size:.9rem}
.flat-page__content th{background:var(--color-light);font-weight:800;color:var(--color-dark)}

/* 33. Coupon box on cart page */
.cart-coupon-box{background:#fff;border-radius:var(--r-lg);padding:var(--sp-lg) var(--sp-xl);box-shadow:var(--shadow-sm);border:1px solid rgba(26,26,46,.05);margin-top:var(--sp-md)}
.cart-coupon-box h3{font-size:1rem;margin-bottom:var(--sp-md)}
.coupon-form{display:flex;gap:var(--sp-sm)}
.coupon-input{flex:1;padding:10px 16px;border:2px solid rgba(26,26,46,.12);border-radius:var(--r-full);font-family:var(--font-body);font-size:.9rem;transition:border-color var(--t-fast)}
.coupon-input:focus{outline:none;border-color:var(--color-primary)}
.coupon-msg{font-size:.85rem;font-weight:700;margin-top:var(--sp-sm)}
.coupon-applied{display:flex;align-items:center;gap:var(--sp-md);flex-wrap:wrap;background:var(--color-primary-light);border-radius:var(--r-md);padding:var(--sp-md) var(--sp-lg)}
.coupon-applied__code{font-family:monospace;font-weight:800;font-size:1rem;color:var(--color-primary);letter-spacing:.05em;background:#fff;padding:4px 12px;border-radius:var(--r-full)}
.coupon-applied__saving{font-weight:700;color:var(--color-primary);flex:1}
.coupon-remove-btn{background:none;border:1px solid var(--color-primary);color:var(--color-primary);padding:4px 12px;border-radius:var(--r-full);cursor:pointer;font-size:.8rem;font-weight:700;transition:all var(--t-fast)}
.coupon-remove-btn:hover{background:var(--color-primary);color:#fff}
.cart-totals__row--discount{color:var(--color-success)}
.cart-items-col{display:flex;flex-direction:column;gap:var(--sp-md)}

/* 34. Shipping profiles on checkout */
.shipping-profiles-wrap{margin-top:var(--sp-xl);padding-top:var(--sp-xl);border-top:1px solid rgba(26,26,46,.08)}
.shipping-profiles-wrap h3{font-size:1rem;margin-bottom:var(--sp-md)}
.shipping-loading{color:var(--color-mid);font-size:.9rem;padding:var(--sp-md) 0}
.shipping-profiles{display:flex;flex-direction:column;gap:var(--sp-sm)}
.shipping-option{display:flex;align-items:center;gap:var(--sp-md);padding:var(--sp-md) var(--sp-lg);border:2px solid rgba(26,26,46,.1);border-radius:var(--r-md);cursor:pointer;transition:border-color var(--t-fast),background var(--t-fast)}
.shipping-option:hover{border-color:var(--color-primary);background:var(--color-primary-light)}
.shipping-option.is-selected{border-color:var(--color-primary);background:var(--color-primary-light)}
.shipping-option input[type=radio]{accent-color:var(--color-primary);width:18px;height:18px;flex-shrink:0}
.shipping-option__info{flex:1}
.shipping-option__info strong{display:block;font-size:.95rem;color:var(--color-dark)}
.shipping-option__info span{font-size:.8rem;color:var(--color-mid)}
.shipping-option__cost{font-weight:800;font-size:1rem;color:var(--color-dark);white-space:nowrap}

/* 35. Export buttons on reports page */
.export-btns{display:flex;flex-direction:column;gap:var(--sp-sm)}
.export-btn-group{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-md);padding:var(--sp-md) var(--sp-lg);background:var(--dash-light,var(--color-light));border-radius:var(--r-md);flex-wrap:wrap}
.export-btn-info{flex:1}
.export-btn-info strong{display:block;font-size:.9rem;color:var(--color-dark);margin-bottom:2px}
.export-btn-info span{font-size:.8rem;color:var(--color-mid)}

/* 36. Language Switcher */
.lang-switcher{display:flex;align-items:center;gap:4px;border:1px solid rgba(26,26,46,.12);border-radius:var(--r-full);padding:3px 10px;background:var(--color-light)}
.lang-form{display:inline}
.lang-btn{background:none;border:none;cursor:pointer;font-family:var(--font-body);font-size:.75rem;font-weight:800;color:var(--color-mid);padding:3px 6px;border-radius:var(--r-full);transition:background var(--t-fast),color var(--t-fast)}
.lang-btn:hover{color:var(--color-primary);background:var(--color-primary-light)}
.lang-btn.is-active{color:var(--color-primary);background:var(--color-primary-light)}
.lang-sep{color:var(--color-light-mid);font-size:.75rem;line-height:1;user-select:none}
.mobile-lang-switcher{padding:var(--sp-md) var(--sp-xl);border-top:1px solid rgba(26,26,46,.06)}
.mobile-lang-btn{display:block;width:100%;text-align:left;background:none;border:none;cursor:pointer;font-family:var(--font-body);font-size:.9rem;font-weight:700;color:var(--color-mid);padding:8px 0;transition:color var(--t-fast)}
.mobile-lang-btn:hover,.mobile-lang-btn.is-active{color:var(--color-primary)}

/* 37. Currency price classes */
.price-free{color:var(--color-success);font-weight:800}
.price-old{color:var(--color-light-mid);text-decoration:line-through;font-size:.9em}
.price-sale{color:var(--color-primary);font-family:var(--font-head);font-size:1.3rem}

/* 38. Dashboard settings extras */.logo-text
.currency-preview{background:var(--color-light);border-radius:var(--r-md);padding:var(--sp-md) var(--sp-lg);margin-top:var(--sp-md);font-size:.9rem;color:var(--color-mid)}
.currency-preview strong{color:var(--color-primary);font-family:var(--font-head);font-size:1.2rem;margin-left:6px}
.dash-help-text{font-size:.8rem;color:var(--dash-mid,var(--color-mid));line-height:1.5}
.dash-help-text code{background:var(--color-light);padding:1px 5px;border-radius:3px;font-size:.78rem}
.dash-help-text a{color:var(--color-primary);font-weight:700}

/* ═══════════════════════════════════════════════════════════════════════
   SOCIAL ICONS — footer SVG icon links
   ═══════════════════════════════════════════════════════════════════════ */

.footer-social {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 12px;
}

.footer-social .social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    color: #fff;
    transition: transform .18s ease, opacity .18s ease;
    text-decoration: none;
}

.footer-social .social-link:hover {
    transform: translateY(-2px);
    opacity: .9;
}

.social-link--facebook  { background: #1877f2; }
.social-link--instagram { background: linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888); }
.social-link--tiktok    { background: #000; }
.social-link--youtube   { background: #ff0000; }
.social-link--pinterest { background: #e60023; }
.social-link--linkedin  { background: #0a66c2; }
.social-link--x         { background: #000; }
/* ============================================================
 * SellForge Ready-Made Design — URBAN FASHION
 * static/css/urban-fashion.css
 * Loaded AFTER main.css. Dark, red-accented streetwear theme
 * (matches the iCap reference: near-black surfaces throughout,
 * bold condensed uppercase headings, a single red accent, sharp
 * square edges, minimal chrome). CSS/JS only — no backend touched.
 * ============================================================ */

:root{
    --color-primary:       #e0212f;
    --color-primary-dark:  #b81826;
    --color-primary-light: #2a1416;
    --color-secondary:     #e0212f;
    --color-dark:           #0e0e0e;
    --color-dark-mid:       #161616;
    --color-mid:            #9a9a9a;
    --color-light:          #161616;
    --color-white:          #ffffff;
    --color-sale:           #e0212f;
    --color-sale-dark:      #b81826;

    --font-head: 'Oswald', 'Arial Narrow', sans-serif;
    --font-body: 'Inter', sans-serif;

    --r-sm: 0; --r-md: 0; --r-lg: 0; --r-full: 0;

    --shadow-sm: none;
    --shadow-md: none;
    --shadow-lg: 0 20px 60px rgba(0,0,0,.5);
    --shadow-pink: none;

    --uf-serif: 'Oswald', sans-serif;
    --uf-card: #161616;
    --uf-border: rgba(255,255,255,.1);
    --uf-text: #b0b0b0;
}

html{scroll-behavior:smooth}
body{ font-family:var(--font-body); background:var(--color-dark); color:var(--uf-text); }
h1,h2,h3,h4,h5,h6{ font-family:var(--font-head); text-transform:uppercase; letter-spacing:.01em; color:#fff; font-weight:700; }
p{color:var(--uf-text);}
a{color:var(--uf-text);}
a:hover{color:var(--color-primary);}
.section-subtitle{color:var(--uf-text); font-weight:400; text-transform:none;}
.section-heading--center h2::after{background:var(--color-primary); height:2px; width:40px;}
.section--light-bg{background:var(--color-dark);}
.section--dark-bg{background:#0a0a0a;}

.btn{border-radius:0; text-transform:uppercase; letter-spacing:.08em; font-weight:700; font-family:var(--font-body); font-size:.85rem;}
.btn--primary{background:transparent; color:var(--color-primary); border:2px solid var(--color-primary); box-shadow:none;}
.btn--primary:hover{background:var(--color-primary); color:#fff; box-shadow:none;}
.btn--secondary{background:var(--color-primary); color:#fff; border-color:var(--color-primary);}
.btn--secondary:hover{background:var(--color-primary-dark);}
.btn--outline{border-width:2px; color:#fff; border-color:rgba(255,255,255,.35);}
.btn--outline:hover{background:#fff; color:var(--color-dark); border-color:#fff;}
.btn--outline-white:hover{background:#fff; color:var(--color-dark);}

.uf-utility-bar{background:#000; color:rgba(255,255,255,.55); border-bottom:1px solid var(--uf-border);}
.uf-utility-bar__inner{display:flex; align-items:center; justify-content:center; gap:var(--sp-lg); padding:6px var(--sp-lg); font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; font-weight:500;}
.uf-utility-bar__center{color:rgba(255,255,255,.75);}
@media (max-width:700px){ .uf-utility-bar__inner > span:not(.uf-utility-bar__center){display:none;} }

.site-header{background:var(--color-dark); border-bottom:1px solid var(--uf-border);}
.site-header__inner{ display:grid; grid-template-columns:1fr auto 1fr; align-items:center; height:84px; gap:var(--sp-lg); }
.header-search{ order:1; max-width:320px; border-color:var(--uf-border); background:transparent;}
.header-search__input{color:#fff; background:transparent;}
.header-search__input::placeholder{color:var(--uf-text); text-transform:uppercase; font-size:.72rem; letter-spacing:.05em;}
.header-search__btn{background:transparent; color:#fff;}
.header-search__btn:hover{color:var(--color-primary); background:transparent;}
.site-header__logo{ order:2; justify-self:center; text-align:center;}
.header-actions{ order:3; justify-self:end;}
.logo-text{font-family:var(--uf-serif); letter-spacing:.5em; text-transform:uppercase; font-size:1.3rem; font-weight:400; color:#fff; padding-left:.5em;}
.header-btn{color:#fff;}
.header-btn:hover{background:rgba(255,255,255,.06); color:var(--color-primary);}
.header-btn--cart .header-btn__label{color:#fff;}
.header-dropdown{background:var(--uf-card); border:1px solid var(--uf-border); border-radius:0; box-shadow:var(--shadow-lg);}
.header-dropdown a{color:var(--uf-text);}
.header-dropdown a:hover{color:var(--color-primary); background:rgba(255,255,255,.04);}
.header-dropdown__heading{color:var(--uf-text)!important; border-bottom-color:var(--uf-border);}
.dropdown-divider{background:var(--uf-border);}
.cart-badge{background:var(--color-primary); border-radius:50%;}
.hamburger{background:#fff;}
@media (max-width:860px){
    .site-header__inner{grid-template-columns:auto 1fr auto;}
    .header-search{display:none;}
}

.site-nav{background:var(--color-dark); border-top:1px solid var(--uf-border); border-bottom:1px solid var(--uf-border);}
.site-nav__list{justify-content:center;}
.site-nav__link{color:#fff; padding:14px 18px; text-transform:uppercase; letter-spacing:.06em; font-size:.78rem; font-weight:600;}
.site-nav__link:hover{color:var(--color-primary); background:transparent;}
.site-nav__dropdown{background:var(--uf-card); border-top:2px solid var(--color-primary); border-radius:0; box-shadow:var(--shadow-lg);}
.site-nav__dropdown a{color:var(--uf-text);}
.site-nav__dropdown a:hover{color:var(--color-primary); background:rgba(255,255,255,.04);}
.mobile-nav{background:var(--uf-card); border-left:1px solid var(--uf-border);}
.mobile-nav a{color:#fff; border-bottom-color:var(--uf-border);}
.mobile-nav a:hover{color:var(--color-primary); background:rgba(255,255,255,.04);}
.mobile-nav__group-label{color:var(--uf-text);}
.mobile-nav__divider{background:var(--uf-border);}

.hero{
    min-height:560px; padding:var(--sp-xxl) 0;
    background:linear-gradient(100deg,rgba(0,0,0,.85) 0%,rgba(0,0,0,.35) 55%,rgba(0,0,0,.05) 100%),
               radial-gradient(circle at 75% 30%,#2a2a2a,#0e0e0e 65%);
    display:flex; align-items:center;
}
.hero__inner{grid-template-columns:1fr; gap:0;}
.hero__content{max-width:560px;}
.hero__eyebrow{border-radius:0; border:none; background:none; color:var(--color-primary); padding:0; letter-spacing:.15em; font-size:.78rem; font-weight:700;}
.hero__title{ font-family:var(--uf-serif); text-transform:uppercase; color:var(--color-primary); font-size:clamp(2.8rem,7vw,5rem); line-height:1.0; font-weight:700; }
.hero__highlight{color:#fff;}
.hero__subtitle{color:rgba(255,255,255,.7); font-weight:400; max-width:440px;}
.hero__visual,.hero__blob,.hero__wave{display:none;}
.hero--banner{background-size:cover; background-position:center;}
@media (max-width:900px){ .hero{min-height:420px;} }

.uf-marquee{background:#000; color:#fff; overflow:hidden; white-space:nowrap; padding:10px 0; border-top:1px solid var(--uf-border); border-bottom:1px solid var(--uf-border);}
.uf-marquee__track{display:inline-block; padding-left:100%; animation:uf-marquee 26s linear infinite;}
.uf-marquee__track span{display:inline-block; padding:0 2.5rem; font-family:var(--uf-serif); text-transform:uppercase; letter-spacing:.1em; font-size:.8rem; color:rgba(255,255,255,.6);}
@keyframes uf-marquee{ from{transform:translateX(0);} to{transform:translateX(-100%);} }

.features-strip{background:#000; border-bottom:1px solid var(--uf-border); box-shadow:none;}
.features-strip__item strong{color:#fff; text-transform:uppercase; font-size:.8rem; letter-spacing:.04em;}
.features-strip__item span:last-child{color:var(--uf-text);}

.product-card{background:var(--uf-card); border-radius:0; border:1px solid var(--uf-border); box-shadow:none;}
.product-card:hover{box-shadow:none; transform:none; border-color:rgba(255,255,255,.22);}
.product-card__img{background:#000; aspect-ratio:1/1;}
.product-card__overlay{background:rgba(0,0,0,.82);}
.product-card__quick-add{background:transparent; border:1px solid #fff; border-radius:0; color:#fff; text-transform:uppercase; font-size:.75rem; letter-spacing:.08em;}
.product-card__quick-add:hover{background:var(--color-primary); border-color:var(--color-primary); color:#fff;}
.product-card__name{text-transform:uppercase; font-family:var(--uf-serif); font-weight:600; font-size:.92rem; letter-spacing:.02em;}
.product-card__name a{color:#fff;}
.product-card__name a:hover{color:var(--color-primary);}
.product-card__brand{color:var(--uf-text); letter-spacing:.1em;}
.product-card__desc{color:var(--uf-text);}
.price,.price-sale{font-family:var(--font-body); font-weight:700; color:#fff;}
.price-sale{color:var(--color-primary);}
.price-old{color:#666;}
.badge{background:var(--color-primary)!important; color:#fff; border-radius:0; text-transform:uppercase; letter-spacing:.04em;}
.badge--sale{background:var(--color-primary); color:#fff;}
.badge--oos{background:#333; color:#fff;}

.category-card{border-radius:0;}
.category-card__placeholder{background:#000;}
.category-card__label{font-family:var(--uf-serif); text-transform:uppercase; letter-spacing:.04em; font-size:1rem; font-weight:600;}
.category-card::after{background:linear-gradient(transparent,rgba(0,0,0,.92));}

.uf-editorial__eyebrow{color:var(--color-primary); font-weight:700; letter-spacing:.15em; text-transform:uppercase; font-size:.78rem;}
.uf-editorial__media{background:#000; border-radius:0;}

.step-card{background:var(--uf-card); border:1px solid var(--uf-border); border-radius:0;}
.step-num{background:var(--color-primary); border-radius:0; color:#fff;}
.step-card h3{color:#fff;}
.step-card p{color:var(--uf-text);}

.testimonial-card{background:var(--uf-card); border:1px solid var(--uf-border); border-radius:0; box-shadow:none;}
.testimonial-card p{color:var(--uf-text);}
.testimonial-card span{color:#777;}
.stars,.reviews-rating-summary__stars{color:var(--color-primary);}

.site-footer{background:#000; color:var(--uf-text);}
.footer-top{border-bottom:1px solid var(--uf-border);}
.footer-logo{font-family:var(--uf-serif); text-transform:uppercase; letter-spacing:.4em; color:#fff; font-weight:400; padding-left:.4em;}
.footer-col h4{text-transform:uppercase; letter-spacing:.08em; font-size:.8rem; color:#fff;}
.footer-col ul a{color:var(--uf-text);}
.footer-col ul a:hover{color:var(--color-primary);}
.social-link{color:var(--uf-text);}
.social-link:hover{color:var(--color-primary);}
.footer-bottom{color:#555; border-top-color:var(--uf-border);}
.footer-legal a{color:#666;}
.footer-tagline,.footer-col--brand p{color:var(--uf-text);}
.footer-trust li{color:var(--uf-text);}

/* Footer — slate-blue top block over a black bottom bar, matching
   the iCap reference footer. */
.footer-top{
    background:#5e7f9c; border-bottom:none;
    padding:var(--sp-xxl) 0 var(--sp-xl);
}
.footer-logo{color:#fff;}
.footer-col h4{color:#fff;}
.footer-col ul a,.footer-col ul li a{color:rgba(255,255,255,.82);}
.footer-col ul a:hover,.footer-col ul li a:hover{color:#fff; text-decoration:underline;}
.footer-tagline,.footer-col--brand p{color:rgba(255,255,255,.75);}
.footer-trust li{color:rgba(255,255,255,.85);}
.social-link{background:rgba(255,255,255,.12); color:#fff;}
.social-link:hover{background:rgba(255,255,255,.22); color:#fff;}

.footer-bottom{background:#000; border-top:none;}
.footer-bottom__inner p{color:rgba(255,255,255,.45);}
.footer-legal a{color:rgba(255,255,255,.5);}


#ufLoader{
    position:fixed; inset:0; z-index:100000; background:#0e0e0e;
    display:flex; align-items:center; justify-content:center;
    transition:opacity .5s ease, visibility .5s ease;
}
#ufLoader.is-hidden{opacity:0; visibility:hidden; pointer-events:none;}
#ufLoader .uf-loader__mark{ font-family:var(--uf-serif); color:#fff; text-transform:uppercase; letter-spacing:.4em; font-size:1rem; display:flex; gap:.8rem; align-items:center; padding-left:.4em; }
#ufLoader .uf-loader__bar{ width:110px; height:2px; background:rgba(255,255,255,.15); overflow:hidden; position:relative; }
#ufLoader .uf-loader__bar::after{ content:''; position:absolute; left:-40%; top:0; bottom:0; width:40%; background:var(--color-primary); animation:uf-loading 1.1s ease-in-out infinite; }
@keyframes uf-loading{ 0%{left:-40%;} 100%{left:100%;} }

[data-reveal]{opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease;}
[data-reveal].is-visible{opacity:1; transform:translateY(0);}
[data-reveal="fade"]{transform:none;}
[data-reveal-group] > *{transition-delay:calc(var(--uf-i,0) * 70ms);}

html{ scrollbar-width:thin; scrollbar-color:var(--color-primary) #000; }
::-webkit-scrollbar{ width:9px; height:9px; }
::-webkit-scrollbar-track{ background:#000; }
::-webkit-scrollbar-thumb{ background:var(--color-primary); border:2px solid #000; }
::-webkit-scrollbar-thumb:hover{ background:#fff; }

@media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *,*::before,*::after{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
    [data-reveal]{opacity:1 !important; transform:none !important;}
    #ufLoader{display:none !important;}
    .uf-marquee__track{animation:none;}
}

/* Checkout, Cart & Customer Account — dark theme parity */
.cart-items,.cart-summary,.order-summary,.checkout-form .checkout-section,
.account-section,.auth-card,.order-history-card,.order-card,
.sidebar-widget,.shop-toolbar,.product-tabs,.address-card,
.flat-page__content,.cart-coupon-box,.success-order,.success-delivery{
    background:var(--uf-card)!important; border:1px solid var(--uf-border)!important;
    border-radius:0!important; box-shadow:none!important; color:var(--uf-text);
}
.cart-items__head{background:#000; color:var(--uf-text); text-transform:uppercase; letter-spacing:.06em; border-color:var(--uf-border);}
.cart-item{border-color:var(--uf-border)!important;}
.cart-item:hover{background:#000;}
.cart-item__name{color:#fff;}
.cart-item__price,.cart-item__total{color:#fff;}
.cart-item__total{color:var(--color-primary);}
.cart-remove-btn{background:#000; color:var(--uf-text);}
.cart-summary h3,.order-summary h3{background:#000; color:#fff; font-family:var(--uf-serif); text-transform:uppercase; letter-spacing:.08em; font-size:1rem;}
.cart-totals__row{border-color:var(--uf-border)!important; color:var(--uf-text);}
.cart-totals__row--total{background:#000; color:var(--color-primary); font-family:var(--uf-serif);}
.cart-trust,.checkout-trust{background:transparent!important; color:var(--uf-text); border-color:var(--uf-border)!important;}

.checkout-section h2{color:#fff; text-transform:uppercase; letter-spacing:.04em; font-size:1rem; border-bottom-color:var(--uf-border)!important;}
.checkout-steps-indicator .step{border-radius:0; background:#000; color:var(--uf-text); text-transform:uppercase; font-size:.75rem; letter-spacing:.05em;}
.checkout-steps-indicator .step.is-active{background:var(--color-primary); color:#fff;}
.checkout-steps-indicator .step.is-done{background:#222; color:#fff;}
.checkout-steps-indicator .step-line{color:var(--uf-text);}

.shipping-option{border-color:var(--uf-border)!important; background:#000;}
.shipping-option:hover,.shipping-option.is-selected{border-color:var(--color-primary)!important; background:#000;}
.shipping-option__info strong{color:#fff;}
.shipping-option__info span{color:var(--uf-text);}
.shipping-option__cost{color:#fff;}
.shipping-option input[type=radio]{accent-color:var(--color-primary);}

.gift-wrap-block__toggle{color:#fff;}
.gift-wrap-block__message textarea{background:#000!important; border-color:var(--uf-border)!important; color:var(--uf-text);}

.order-status{border-radius:0; letter-spacing:.04em;}
.order-status--pending{background:#3a2a10; color:#e0a020;}
.order-status--paid{background:#12321a; color:#4caf50;}
.order-status--processing{background:#122238; color:#5599ff;}
.order-status--shipped{background:#2a1a38; color:#b088e0;}
.order-status--delivered{background:#12321a; color:#4caf50;}
.order-status--cancelled{background:#3a1414; color:var(--color-primary);}
.order-history-card__fulfilment{color:#fff; font-family:var(--uf-serif); text-transform:uppercase;}
.order-history-card__number,.order-history-card__payment,.order-history-card__meta{color:var(--uf-text);}
.order-history-card__total{color:#fff;}
.order-history-card__actions{border-top-color:var(--uf-border)!important;}
.order-progress__dot{background:#333;}
.order-progress__step.is-done::before,.order-progress__step.is-done .order-progress__dot{background:var(--color-primary);}
.order-progress__label{color:var(--uf-text);}
.order-progress__step.is-done .order-progress__label{color:#fff;}
.order-progress__step::before{background:#333;}

.account-header__avatar{background:var(--color-primary); border-radius:0; font-family:var(--uf-serif); color:#fff;}
.account-header h1{color:#fff;}
.account-header p{color:var(--uf-text);}
.account-nav{border-bottom-color:var(--uf-border)!important;}
.account-nav__link{border-radius:0; background:#000; color:var(--uf-text); text-transform:uppercase; font-size:.78rem; letter-spacing:.04em;}
.account-nav__link:hover,.account-nav__link.is-active{background:var(--color-primary); color:#fff;}
.account-nav__link--logout{background:transparent;}
.account-nav__link--logout:hover{background:#3a1414; color:var(--color-primary);}
.account-section__header h2{color:#fff;}
.account-quick-link{border-radius:0; background:#000;}
.account-quick-link:hover{background:#1a1010;}
.account-quick-link strong{color:#fff;}
.account-quick-link span:last-child{color:var(--uf-text);}
.account-empty>span{filter:none;}

.auth-card h1{color:#fff;}
.auth-card p{color:var(--uf-text);}
.auth-card__icon{filter:none;}

input[type=text],input[type=email],input[type=password],input[type=number],
input[type=tel],input[type=search],select,textarea,.form-input{
    border-radius:0!important; border-color:var(--uf-border)!important;
    background:#000!important; color:#fff!important;
}
input:focus,select:focus,textarea:focus{
    border-color:var(--color-primary)!important; box-shadow:0 0 0 3px rgba(224,33,47,.15)!important;
}
.form-label,label{text-transform:uppercase; font-size:.75rem; letter-spacing:.05em; color:var(--uf-text);}

.toggle-switch input:checked + .toggle-track{background:var(--color-primary);}
.toggle-track{background:#333;}

.order-status--lg{font-size:.85rem;}
.order-totals div{color:var(--uf-text);}
.coupon-applied__code{background:#000!important; color:var(--color-primary);}

.alert{background:var(--uf-card); border:1px solid var(--uf-border); color:var(--uf-text);}
.cart-toast{background:var(--uf-card); border:1px solid var(--uf-border);}

html,body{max-width:100%; overflow-x:hidden;}
@media (max-width:600px){ .hero__title{font-size:clamp(2.1rem,9vw,3rem);} }

/* ============================================================
 * Shop page — filter sidebar, view toggle, pagination
 * (added directly to main.css, consistent with the single-file
 * per-install approach for this niche)
 * ============================================================ */
.sidebar-widget--collapsible{padding:0; overflow:hidden;}
.sidebar-widget--collapsible summary{
    cursor:pointer; list-style:none; padding:var(--sp-lg); margin:0;
    display:flex; align-items:center; justify-content:space-between;
    border-bottom:2px solid var(--color-primary-light); font-family:var(--font-head);
    font-size:1.1rem; color:#fff;
}
.sidebar-widget--collapsible summary::-webkit-details-marker{display:none;}
.sidebar-widget--collapsible summary::after{
    content:'−'; font-size:1.2rem; color:var(--uf-text); font-family:var(--font-body);
}
.sidebar-widget--collapsible:not([open]) summary::after{content:'+';}
.sidebar-widget--collapsible:not([open]) summary{border-bottom:none;}
.sidebar-widget--collapsible ul,.sidebar-widget--collapsible .price-filter{padding:var(--sp-md) var(--sp-lg) var(--sp-lg);}
.sidebar-widget__plain a{text-transform:none;}
.sidebar-widget ul li a.is-disabled{opacity:.4; pointer-events:none;}
.sidebar-widget__clear{color:var(--color-primary)!important; font-size:.8rem; text-decoration:underline;}

.price-filter__hint{font-size:.82rem; color:var(--uf-text); margin-bottom:var(--sp-sm);}
.price-filter__row{display:flex; align-items:center; gap:6px; margin-bottom:var(--sp-sm);}
.price-filter__row span{color:var(--uf-text); font-size:.85rem;}
.price-filter input[type=number]{width:100%; padding:8px 10px; font-size:.85rem;}
.price-filter__submit{width:100%; justify-content:center;}

.shop-toolbar__view{display:flex; gap:4px;}
.shop-view-btn{
    width:36px; height:36px; display:flex; align-items:center; justify-content:center;
    background:transparent; border:1px solid var(--uf-border, rgba(26,26,46,.12)); cursor:pointer; color:var(--color-mid);
}
.shop-view-btn.is-active{background:var(--color-primary); border-color:var(--color-primary); color:#fff;}
.shop-view-btn__icon{width:14px; height:14px; display:block; position:relative;}
.shop-view-btn__icon--grid{background-image:linear-gradient(currentColor,currentColor),linear-gradient(currentColor,currentColor),linear-gradient(currentColor,currentColor),linear-gradient(currentColor,currentColor); background-size:6px 6px; background-repeat:no-repeat; background-position:0 0,8px 0,0 8px,8px 8px;}
.shop-view-btn__icon--list{background-image:linear-gradient(currentColor,currentColor),linear-gradient(currentColor,currentColor),linear-gradient(currentColor,currentColor); background-size:14px 3px; background-repeat:no-repeat; background-position:0 0,0 5.5px,0 11px;}

.product-grid.is-list-view{grid-template-columns:1fr; gap:var(--sp-md);}
.product-grid.is-list-view .product-card{flex-direction:row; align-items:stretch;}
.product-grid.is-list-view .product-card__img{width:180px; flex-shrink:0; aspect-ratio:1/1;}
.product-grid.is-list-view .product-card__body{flex:1; display:flex; flex-direction:column; justify-content:center;}
@media (max-width:700px){
    .product-grid.is-list-view .product-card{flex-direction:column;}
    .product-grid.is-list-view .product-card__img{width:100%;}
}

.shop-pagination{display:flex; justify-content:center; align-items:center; gap:6px; margin:var(--sp-xl) 0 0;}
.shop-pagination__btn{
    min-width:38px; height:38px; display:flex; align-items:center; justify-content:center;
    border:1px solid var(--uf-border, rgba(26,26,46,.12)); color:var(--color-mid); font-weight:700; font-size:.9rem;
}
.shop-pagination__btn:hover{border-color:var(--color-primary); color:var(--color-primary);}
.shop-pagination__btn.is-current{background:var(--color-primary); border-color:var(--color-primary); color:#fff;}
.shop-pagination__btn.is-disabled{opacity:.3; pointer-events:none;}

.shop-sidebar__mobile-toggle{display:none;}
@media (max-width:989px){
    .shop-layout{grid-template-columns:1fr;}
    .shop-sidebar{display:block; position:static;}
    .shop-sidebar__mobile-toggle{
        display:block; width:100%; padding:var(--sp-md); margin-bottom:var(--sp-md);
        background:var(--uf-card,#fff); border:1px solid var(--uf-border, rgba(26,26,46,.12)); color:#fff;
        font-family:var(--font-head); text-transform:uppercase; letter-spacing:.04em; cursor:pointer;
    }
    .shop-sidebar__panel{display:none;}
    .shop-sidebar.is-open .shop-sidebar__panel{display:block;}
}

/* ============================================================
 * Cart Drawer — slide-out bag (dark/red Urban Fashion theme)
 * ============================================================ */
.cart-drawer-overlay{
    position:fixed; inset:0; background:rgba(0,0,0,.6); z-index:3000;
    opacity:0; visibility:hidden; transition:opacity .35s ease,visibility .35s ease;
}
.cart-drawer-overlay.is-open{opacity:1; visibility:visible;}

.cart-drawer{
    position:fixed; top:0; right:0; bottom:0; width:min(420px,100vw);
    background:var(--uf-card,#161616); z-index:3001; display:flex; flex-direction:column;
    transform:translateX(100%); transition:transform .35s cubic-bezier(.4,0,.2,1);
    box-shadow:-10px 0 40px rgba(0,0,0,.5);
    will-change:transform;
}
.cart-drawer.is-open{transform:translateX(0);}

.cart-drawer__header{
    display:flex; align-items:center; justify-content:space-between;
    padding:var(--sp-lg); border-bottom:1px solid var(--uf-border,rgba(255,255,255,.1));
}
.cart-drawer__header h2{margin:0; font-size:1.1rem; color:#fff;}
.cart-drawer__close{
    background:transparent; border:none; color:#fff; font-size:1.2rem; cursor:pointer;
    width:32px; height:32px; display:flex; align-items:center; justify-content:center;
}
.cart-drawer__close:hover{color:var(--color-primary,#e0212f);}

.cart-drawer__body{flex:1; overflow-y:auto; padding:var(--sp-md) var(--sp-lg);}
.cart-drawer__loading,.cart-drawer__empty{
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    height:100%; gap:var(--sp-md); color:var(--uf-text,var(--color-mid)); text-align:center; padding:var(--sp-xxl) var(--sp-lg);
}
.cart-drawer__empty-title{margin:0; color:#fff; font-size:1.2rem;}
.cart-drawer__empty-sub{margin:0; font-size:.85rem;}

.cart-drawer-item{
    display:flex; gap:var(--sp-md); padding:var(--sp-md) 0;
    border-bottom:1px solid var(--uf-border,rgba(255,255,255,.08));
    position:relative;
}
.cart-drawer-item:last-child{border-bottom:none;}
.cart-drawer-item__img{width:72px; height:72px; flex-shrink:0; background:#000; overflow:hidden;}
.cart-drawer-item__img img{width:100%; height:100%; object-fit:cover;}
.cart-drawer-item__noimg{width:100%; height:100%; display:flex; align-items:center; justify-content:center; font-size:1.6rem;}
.cart-drawer-item__info{flex:1; min-width:0;}
.cart-drawer-item__name{margin:0 0 2px; font-size:.9rem; font-weight:700; color:#fff; font-family:var(--uf-serif,var(--font-head));}
.cart-drawer-item__variant{margin:0 0 6px; font-size:.78rem; color:var(--uf-text,var(--color-mid));}
.cart-drawer-item__row{display:flex; align-items:center; justify-content:space-between; margin-top:6px;}
.cart-drawer-item__qty{
    display:flex; align-items:center; gap:8px; border:1px solid var(--uf-border,rgba(255,255,255,.15));
}
.cart-drawer-qty-btn{
    background:transparent; border:none; color:#fff; width:26px; height:26px; cursor:pointer; font-size:.9rem;
}
.cart-drawer-qty-btn:hover{color:var(--color-primary,#e0212f);}
.cart-drawer-item__qty span{min-width:16px; text-align:center; font-size:.85rem; color:#fff;}
.cart-drawer-item__price{font-weight:700; color:#fff; font-size:.88rem;}
.cart-drawer-item__remove{
    position:absolute; top:var(--sp-md); right:0; background:transparent; border:none;
    color:var(--uf-text,var(--color-mid)); cursor:pointer; font-size:.85rem; width:24px; height:24px;
}
.cart-drawer-item__remove:hover{color:var(--color-primary,#e0212f);}

.cart-drawer__footer{
    padding:var(--sp-lg); border-top:1px solid var(--uf-border,rgba(255,255,255,.1));
    display:flex; flex-direction:column; gap:var(--sp-sm);
}
.cart-drawer__subtotal{display:flex; justify-content:space-between; font-size:1rem; color:#fff; margin-bottom:4px;}
.cart-drawer__subtotal strong{font-family:var(--uf-serif,var(--font-head));}
.cart-drawer__note{margin:0 0 8px; font-size:.75rem; color:var(--uf-text,var(--color-mid)); text-align:center;}

@media (max-width:480px){
    .cart-drawer{width:100vw;}
}

/* ============================================================
 * Shop toolbar v2 — result count, sort disclosure, column/list
 * view switcher (matches the reference collection-page toolbar)
 * ============================================================ */
.shop-toolbar{flex-wrap:wrap; gap:var(--sp-md);}
.shop-toolbar__count{white-space:nowrap;}

.shop-sort{position:relative;}
.shop-sort__summary{
    cursor:pointer; list-style:none; display:flex; align-items:center; gap:6px;
    font-size:.85rem; font-weight:700; color:#fff; text-transform:uppercase; letter-spacing:.04em;
    padding:8px 14px; border:1px solid var(--uf-border, rgba(26,26,46,.12));
}
.shop-sort__summary::-webkit-details-marker{display:none;}
.shop-sort__current{color:var(--color-primary,var(--color-mid)); text-transform:none; font-weight:600;}
.shop-sort__caret{font-size:.7rem; transition:transform var(--t-fast);}
.shop-sort[open] .shop-sort__caret{transform:rotate(180deg);}
.shop-sort__list{
    position:absolute; top:calc(100% + 6px); right:0; z-index:20; min-width:220px;
    background:var(--uf-card,#fff); border:1px solid var(--uf-border, rgba(26,26,46,.12));
    padding:8px 0; list-style:none;
}
.shop-sort__list a{
    display:block; padding:9px 16px; font-size:.85rem; color:var(--uf-text,var(--color-dark));
    text-transform:none;
}
.shop-sort__list a:hover{color:var(--color-primary); background:rgba(255,255,255,.04);}
.shop-sort__list a.is-active{color:var(--color-primary); font-weight:700;}

.shop-toolbar__view{display:flex; gap:2px;}
.shop-toolbar__view .shop-view-btn{border:none; background:transparent; opacity:.5;}
.shop-toolbar__view .shop-view-btn.is-active{opacity:1; color:var(--color-primary);}
.shop-toolbar__view .shop-view-btn:hover{opacity:1;}
@media (max-width:700px){
    .shop-toolbar__view{display:none;}
}

/* Column-count grid — overrides the default auto-fill product-grid
   with an explicit column count set by the toolbar's grid icons. */
#shopProductGrid.cols-2{grid-template-columns:repeat(2,1fr);}
#shopProductGrid.cols-3{grid-template-columns:repeat(3,1fr);}
#shopProductGrid.cols-4{grid-template-columns:repeat(4,1fr);}
#shopProductGrid.cols-5{grid-template-columns:repeat(5,1fr);}
@media (max-width:989px){
    #shopProductGrid.cols-3,#shopProductGrid.cols-4,#shopProductGrid.cols-5{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:560px){
    #shopProductGrid.cols-2,#shopProductGrid.cols-3,#shopProductGrid.cols-4,#shopProductGrid.cols-5{grid-template-columns:1fr;}
}

/* ============================================================
 * Nav link hover flip (iCap-style "funky fast" nav animation)
 * ============================================================ */
.nav-item{position:relative; overflow:hidden;}
.site-nav__link{position:relative;}
.nav-text{
    display:inline-block;
    position:relative;
    overflow:hidden;
}
.nav-text-inner{
    display:block;
    transition:transform .25s ease;
}
.nav-text-clone{
    position:absolute;
    top:100%;
    left:0;
    transition:transform .25s ease;
}
.nav-item:hover .nav-text-inner,
.nav-item:hover .nav-text-clone{
    transform:translateY(-100%);
}

/* ============================================================
 * Placeholder imagery — refined typographic/line-art treatment
 * instead of large emoji (was reading as a novelty/candy-shop
 * aesthetic rather than a fashion storefront).
 * ============================================================ */
.category-card__placeholder{display:flex; align-items:center; justify-content:center;}
.category-card__initial{
    font-family:var(--uf-serif,var(--font-head));
    font-size:5rem;
    line-height:1;
    color:rgba(255,255,255,.08);
    -webkit-text-stroke:1px rgba(255,255,255,.18);
}

.product-card__no-img{color:rgba(255,255,255,.2);}
.product-card__no-img svg{opacity:.9;}
