/** Shopify CDN: Minification failed

Line 555:13 Expected identifier but found whitespace
Line 555:23 Unexpected "{"
Line 555:33 Expected ":"
Line 556:15 Expected identifier but found whitespace
Line 556:23 Unexpected "{"
Line 556:33 Expected ":"
Line 557:17 Expected identifier but found whitespace
Line 557:23 Unexpected "{"
Line 557:33 Expected ":"
Line 558:17 Expected identifier but found whitespace
... and 5 more hidden warnings

**/
/* ============================================================
   IRONCLAD INDUSTRIAL THEME — v3.0
   ============================================================ */

/* ── Utilities ── */
.container{max-width:var(--page-width);margin:0 auto;padding:0 2.5rem}
.section-padding{padding:5rem 0}
@media(max-width:768px){.container{padding:0 1.25rem}.section-padding{padding:3rem 0}}

/* ── Typography ── */
h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:600;line-height:1.1;letter-spacing:.03em}
p{margin-bottom:1rem}p:last-child{margin-bottom:0}
.eyebrow{font-family:var(--font-mono);font-size:.68rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--color-accent);display:flex;align-items:center;gap:.75rem;margin-bottom:.9rem}
.eyebrow::before{content:'';display:block;width:24px;height:1px;background:var(--color-accent);flex-shrink:0}
.section-heading{font-family:var(--font-heading);font-size:clamp(1.8rem,3.5vw,3rem);font-weight:700;letter-spacing:.03em;text-transform:uppercase;line-height:1.05;margin-bottom:1rem}
.section-subheading{font-size:1rem;color:var(--color-text-muted);line-height:1.8;max-width:600px}
.section-header{margin-bottom:3rem}

/* ── Buttons ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;font-family:var(--font-heading);font-size:.82rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:.85rem 2rem;border:1px solid transparent;cursor:pointer;transition:all 150ms ease;white-space:nowrap;background:transparent;text-decoration:none;line-height:1}
.btn-primary{background:var(--color-accent);color:var(--color-btn-text);border-color:var(--color-accent)}
.btn-primary:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}
.btn-primary:disabled{opacity:.45;cursor:not-allowed}
.btn-outline{background:transparent;color:var(--color-text);border-color:var(--color-border)}
.btn-outline:hover{border-color:var(--color-accent);color:var(--color-accent)}
.btn-outline--light{color:#fff;border-color:rgba(255,255,255,.4)}
.btn-outline--light:hover{border-color:#fff;color:#fff}
.btn-sm{padding:.5rem 1.15rem;font-size:.72rem}

/* ── Badges ── */
.badge{font-family:var(--font-mono);font-size:.58rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;padding:.22rem .55rem;display:inline-block}
.badge--sale{background:var(--color-danger);color:#fff}
.badge--new{background:var(--color-accent);color:#fff}
.badge--sold-out{background:var(--color-badge-sold);color:#fff}

/* ── Breadcrumbs ── */
.breadcrumbs{display:flex;align-items:center;flex-wrap:wrap;gap:.3rem;padding:1.25rem 0}
.bc-link{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);transition:color 150ms ease}
.bc-link:hover{color:var(--color-accent)}
.bc-sep{font-family:var(--font-mono);font-size:.55rem;color:var(--color-text-muted)}
.bc-current{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted)}

/* ── Announcement Bar ── */
.announcement-bar{padding:.6rem 0}
.announcement-inner{display:flex;align-items:center;justify-content:center;gap:1rem;position:relative}
.announcement-text{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;text-align:center}
.announcement-text a{color:inherit}
.announcement-close{background:none;border:none;color:inherit;opacity:.7;cursor:pointer;font-size:.9rem;position:absolute;right:0}
.announcement-close:hover{opacity:1}

/* ── Header ── */
.site-header{position:relative;z-index:500;background:var(--color-bg);border-bottom:1px solid var(--color-border)}
.header-sticky{position:sticky;top:0;backdrop-filter:blur(20px);background:var(--color-sticky-bg)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:2rem;height:var(--header-height)}
.header-logo{flex-shrink:0}
.logo-lockup{display:flex;align-items:center;gap:.65rem}
.logo-icon{width:32px;height:32px;background:var(--color-accent);display:flex;align-items:center;justify-content:center;clip-path:polygon(0 0,85% 0,100% 15%,100% 100%,15% 100%,0 85%);flex-shrink:0}
.logo-icon svg{width:16px;height:16px}
.logo-name{font-family:var(--font-heading);font-weight:700;font-size:1.3rem;letter-spacing:.1em;text-transform:uppercase;line-height:1}
.logo-tagline{font-family:var(--font-mono);font-size:.52rem;letter-spacing:.18em;text-transform:uppercase;color:var(--color-text-muted);margin-top:.1rem}
.header-nav{display:flex;align-items:center;flex:1;justify-content:center}
.nav-item{position:relative}
.nav-link{font-family:var(--font-heading);font-size:.76rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);padding:0 1rem;height:var(--header-height);display:flex;align-items:center;gap:.3rem;transition:color 150ms ease;border-bottom:2px solid transparent;white-space:nowrap}
.nav-link:hover,.nav-link.active{color:var(--color-text);border-bottom-color:var(--color-accent)}
.nav-has-dropdown:hover .nav-dropdown{opacity:1;pointer-events:all;transform:translateY(0)}
.nav-dropdown{position:absolute;top:100%;left:0;min-width:200px;background:var(--color-surface);border:1px solid var(--color-border);padding:.5rem 0;opacity:0;pointer-events:none;transform:translateY(-8px);transition:all 150ms ease;z-index:100}
.nav-dropdown-item{display:block;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);padding:.6rem 1.25rem;transition:all 150ms ease}
.nav-dropdown-item:hover{color:var(--color-accent);background:var(--color-surface-2);padding-left:1.5rem}
.header-actions{display:flex;align-items:center;gap:.25rem;flex-shrink:0}
.header-phone{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.1em;color:var(--color-text-muted);transition:color 150ms ease;margin-right:.75rem}
.header-phone:hover{color:var(--color-accent)}
.icon-btn{background:none;border:none;color:var(--color-text-muted);width:38px;height:38px;display:flex;align-items:center;justify-content:center;transition:color 150ms ease;position:relative;flex-shrink:0;cursor:pointer}
.icon-btn:hover{color:var(--color-text)}
.cart-count{position:absolute;top:4px;right:4px;background:var(--color-accent);color:#fff;font-family:var(--font-mono);font-size:.5rem;min-width:14px;height:14px;border-radius:7px;display:flex;align-items:center;justify-content:center;padding:0 3px}
.mobile-menu-btn{display:none;flex-direction:column;gap:5px;background:none;border:none;padding:4px;cursor:pointer;width:38px;height:38px;align-items:center;justify-content:center}
.mobile-menu-btn span{display:block;width:22px;height:1.5px;background:var(--color-text-muted);transition:all 150ms ease}
.mobile-menu{display:none;position:fixed;inset:0;background:var(--color-bg);z-index:9999;overflow-y:auto;transform:translateX(-100%);transition:transform 300ms ease}
.mobile-menu.open{transform:translateX(0)}
.mobile-menu-inner{padding:5rem 1.5rem 2rem}
.mobile-nav-item{position:relative;border-bottom:1px solid var(--color-border)}
.mobile-nav-link{display:block;font-family:var(--font-heading);font-size:1.2rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:1rem 0;color:var(--color-text)}
.mobile-sub-toggle{position:absolute;right:0;top:.75rem;background:none;border:none;color:var(--color-text-muted);padding:.25rem;cursor:pointer}
.mobile-sub{display:none;padding-bottom:.75rem}
.mobile-nav-item.open .mobile-sub{display:block}
.mobile-sub-link{display:block;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted);padding:.45rem 0 .45rem 1rem;border-left:2px solid var(--color-border);transition:all 150ms ease}
.mobile-sub-link:hover{color:var(--color-accent);border-left-color:var(--color-accent)}
.mobile-menu-footer{padding-top:2rem;display:flex;flex-direction:column;gap:.5rem}
@media(max-width:1024px){.header-nav,.header-phone{display:none}.mobile-menu-btn{display:flex}.mobile-menu{display:block}}
.search-overlay{position:fixed;inset:0;z-index:2000;pointer-events:none;opacity:0;transition:opacity 150ms ease}
.search-overlay.open{pointer-events:all;opacity:1}
.search-overlay-bg{position:absolute;inset:0;background:rgba(0,0,0,.75);backdrop-filter:blur(4px)}
.search-overlay-inner{position:relative;z-index:1;padding:5rem 2rem 2rem;max-width:640px;margin:0 auto}
.search-form{display:flex;align-items:center;border-bottom:2px solid var(--color-accent)}
.search-input{flex:1;background:none;border:none;color:var(--color-text);font-family:var(--font-heading);font-size:1.8rem;padding:.5rem 0;outline:none}
.search-input::placeholder{color:var(--color-text-muted)}
.search-submit,.search-close{background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:.5rem;transition:color 150ms ease}
.search-submit:hover,.search-close:hover{color:var(--color-accent)}
.search-results{margin-top:1.5rem}

/* ── Hero Banner ── */
.hero-banner{position:relative;display:flex;align-items:center;overflow:hidden}
.hero-overlay{position:absolute;inset:0;pointer-events:none}
.hero-content{position:relative;z-index:1;padding:5rem 0}
.hero-kicker{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;margin-bottom:1.25rem}
.hero-heading{font-family:var(--font-heading);font-weight:700;line-height:1.0;text-transform:uppercase;letter-spacing:.04em;margin-bottom:1.5rem}
.hero-subheading{font-size:1.05rem;line-height:1.8;margin-bottom:2.5rem;max-width:560px}
.hero-btns{display:flex;gap:1rem;flex-wrap:wrap}
.hero-stats{display:flex;gap:3rem;margin-top:4rem;flex-wrap:wrap}
.hero-stat-num{font-family:var(--font-heading);font-size:2rem;font-weight:700;line-height:1}
.hero-stat-label{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;margin-top:.25rem}
.hero-scroll-indicator{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;opacity:.4}
.scroll-line{width:1px;height:40px;background:currentColor;animation:scrollPulse 2s ease infinite}
.scroll-text{font-family:var(--font-mono);font-size:.55rem;letter-spacing:.15em;text-transform:uppercase}
@keyframes scrollPulse{0%,100%{transform:scaleY(1)}50%{transform:scaleY(.6)}}

/* ── Trust Bar ── */
.trust-bar{padding:1.1rem 0}
.trust-bar-grid{display:grid;gap:0}
.trust-bar-item{display:flex;align-items:center;gap:.85rem;padding:1rem 1.5rem;border-right:1px solid var(--color-border)}
.trust-bar-item:first-child{padding-left:0}
.trust-bar-item:last-child{border-right:none;padding-right:0}
.trust-bar-icon,.trust-bar-icon-svg{width:28px;height:28px;flex-shrink:0}
.trust-bar-icon svg,.trust-bar-icon-svg svg,.trust-icon svg{width:28px!important;height:28px!important;max-width:28px;max-height:28px;display:block;flex-shrink:0}
.trust-bar-label{font-family:var(--font-heading);font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.trust-bar-sublabel{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.08em;margin-top:.15rem}
@media(max-width:900px){.trust-bar-grid{grid-template-columns:1fr 1fr!important}.trust-bar-item{border-right:none;border-bottom:1px solid var(--color-border)}.trust-bar-item:nth-child(odd){border-right:1px solid var(--color-border)}}

/* ── Product Grid ── */
.product-grid{display:grid;gap:1px;background:var(--color-border)}
.product-grid--2{grid-template-columns:repeat(2,1fr)}
.product-grid--3{grid-template-columns:repeat(3,1fr)}
.product-grid--4{grid-template-columns:repeat(4,1fr)}
.product-grid--5{grid-template-columns:repeat(5,1fr)}
@media(max-width:1024px){.product-grid--4,.product-grid--5{grid-template-columns:repeat(3,1fr)}}
@media(max-width:768px){.product-grid--3,.product-grid--4,.product-grid--5{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.product-grid--2,.product-grid--3,.product-grid--4,.product-grid--5{grid-template-columns:1fr}}
.product-card{background:var(--color-bg);display:flex;flex-direction:column;transition:transform 150ms ease}
.product-card:hover{transform:translateY(-2px)}
.pc-media{position:relative;overflow:hidden;aspect-ratio:1;background:var(--color-surface)}
.pc-img-link{display:block;width:100%;height:100%}
.pc-img{width:100%;height:100%;object-fit:cover;transition:transform 600ms ease,opacity 300ms ease}
.pc-img--primary{position:absolute;inset:0}
.pc-img--secondary{position:absolute;inset:0;opacity:0}
.product-card:hover .pc-img--primary{opacity:0}
.product-card:hover .pc-img--secondary{opacity:1}
.product-card:hover .pc-img--primary:only-child{transform:scale(1.05)}
.pc-img--placeholder{opacity:.3}
.pc-badges{position:absolute;top:.75rem;left:.75rem;display:flex;flex-direction:column;gap:.3rem;z-index:1}
.pc-quick-buy{position:absolute;bottom:0;left:0;right:0;padding:.75rem;background:linear-gradient(transparent,rgba(0,0,0,.7));opacity:0;transition:opacity 150ms ease}
.product-card:hover .pc-quick-buy{opacity:1}
.pc-body{padding:1.1rem;flex:1;display:flex;flex-direction:column;background:var(--color-surface)}
.pc-vendor{font-family:var(--font-mono);font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;color:var(--color-accent);margin-bottom:.25rem}
.pc-title{font-family:var(--font-heading);font-size:.88rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;line-height:1.35;margin-bottom:.4rem;flex:1}
.pc-title a{transition:color 150ms ease}
.pc-title a:hover{color:var(--color-accent)}
.pc-stars{display:flex;gap:2px;margin-bottom:.5rem}
.pc-stars .star{color:var(--color-accent);font-size:.65rem}
.pc-price-row{display:flex;align-items:center;gap:.6rem;margin-top:auto}
.pc-price{font-family:var(--font-heading);font-size:1rem;font-weight:600}
.pc-price--compare{font-size:.78rem;font-weight:400;color:var(--color-text-muted);text-decoration:line-through}
.pc-price--sale{color:var(--color-accent)}
.product-grid.list-view{grid-template-columns:1fr!important;background:none;gap:1px}
.product-grid.list-view .product-card{flex-direction:row;height:160px;background:var(--color-surface);border:1px solid var(--color-border)}
.product-grid.list-view .pc-media{width:160px;flex-shrink:0;aspect-ratio:auto}

/* ── Image with Text ── */
.iwt-layout{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center}
.iwt-layout--reverse{direction:rtl}.iwt-layout--reverse>*{direction:ltr}
.iwt-img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.iwt-img--clipped{clip-path:polygon(0 0,100% 0,100% 85%,85% 100%,0 100%)}
.iwt-img--placeholder{opacity:.3;aspect-ratio:4/3}
.iwt-rte{color:var(--color-text-muted);line-height:1.9}
@media(max-width:768px){.iwt-layout,.iwt-layout--reverse{grid-template-columns:1fr;direction:ltr}}

/* ── Testimonials ── */
.testimonials-grid{display:grid;gap:1px;background:var(--color-border)}
.testimonial-card{background:var(--color-surface);padding:2.5rem}
.testimonial-stars{display:flex;gap:3px;margin-bottom:1rem}
.testimonial-stars .star{color:var(--color-accent);font-size:.8rem}
.testimonial-quote{font-size:1rem;color:var(--color-text-muted);line-height:1.85;margin-bottom:1.5rem;font-style:italic}
.testimonial-name{font-family:var(--font-heading);font-size:.82rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.testimonial-company{font-family:var(--font-mono);font-size:.62rem;color:var(--color-text-muted);letter-spacing:.08em}
@media(max-width:768px){.testimonials-grid{grid-template-columns:1fr!important}}

/* ── Multicolumn ── */
.mc-grid{display:grid;gap:2px;background:var(--color-border)}
.mc-col{background:var(--color-surface);padding:2.5rem}
.mc-icon{width:40px;height:40px;margin:0 auto 1.5rem}
.mc-icon svg{width:100%;height:100%}
.mc-heading{font-family:var(--font-heading);font-size:.95rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.75rem}
.mc-content{color:var(--color-text-muted);font-size:.88rem;line-height:1.8}
.mc-link{font-family:var(--font-heading);font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent);display:inline-block;margin-top:1rem}
@media(max-width:768px){.mc-grid{grid-template-columns:1fr!important}}

/* ── Accordion ── */
.accordion{display:flex;flex-direction:column;gap:1px;background:var(--color-border)}
.accordion-item{background:var(--color-surface)}
.accordion-btn{width:100%;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem 1.5rem;background:none;border:none;text-align:left;cursor:pointer;font-family:var(--font-heading);font-size:1.3rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text);transition:color 150ms ease;line-height:1.3}
.accordion-btn:hover{color:var(--color-accent)}
.accordion-chevron{width:16px!important;height:16px!important;max-width:16px;max-height:16px;flex-shrink:0;transition:transform 200ms ease}
.accordion-icon{width:16px;height:16px;flex-shrink:0;transition:transform 150ms ease}
.accordion-item.is-open .accordion-icon,.accordion-item.is-open .accordion-chevron{transform:rotate(180deg)}
.accordion-body{display:none;padding:0 1.5rem 1.25rem}
.accordion-item.is-open .accordion-body{display:block}
.accordion-body .rte{color:var(--color-text-muted);font-size:1.3rem;line-height:1.75}

/* ── Newsletter ── */
.newsletter-inner{max-width:560px}
.newsletter-form{display:flex;margin:1.75rem 0 .75rem}
.newsletter-input{flex:1;background:var(--color-surface);border:1px solid var(--color-border);border-right:none;color:var(--color-text);font-family:var(--font-mono);font-size:.8rem;padding:.85rem 1rem;outline:none;transition:border-color 150ms ease}
.newsletter-input:focus{border-color:var(--color-accent)}
.newsletter-input::placeholder{color:var(--color-text-muted)}
.newsletter-form .btn{border-radius:0}
.newsletter-success{color:var(--color-success);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em}
.newsletter-disclaimer{font-family:var(--font-mono);font-size:.6rem;color:var(--color-text-muted);letter-spacing:.08em}

/* ── Video ── */
.video-wrapper{position:relative;border:1px solid var(--color-border)}
.video-poster{position:relative}
.video-play-btn{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.video-play-btn svg{width:60px;height:60px;background:var(--color-accent);border-radius:50%;padding:14px;transition:transform 150ms ease}
.video-poster:hover .video-play-btn svg{transform:scale(1.1)}

/* ── Image Banner ── */
.image-banner-inner{display:flex;align-items:center;justify-content:center}
.image-banner-content{padding:4rem 2rem}

/* ── RTE ── */
.rte h1,.rte h2,.rte h3{font-family:var(--font-heading);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.75rem;margin-top:1.5rem}
.rte p{color:inherit;margin-bottom:1rem}
.rte ul,.rte ol{padding-left:1.5rem;margin-bottom:1rem}
.rte ul{list-style:disc}.rte ol{list-style:decimal}
.rte li{margin-bottom:.35rem}
.rte strong{font-weight:600}
.rte a{color:var(--color-accent);transition:opacity 150ms ease}
.rte a:hover{opacity:.7}
.rte table{width:100%;border-collapse:collapse;margin-bottom:1rem}
.rte th,.rte td{padding:.65rem 1rem;border:1px solid var(--color-border);font-size:.85rem}
.rte th{background:var(--color-surface);font-family:var(--font-heading);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase}
.stars{display:flex;gap:2px}
.star{color:var(--color-accent)}

/* ── Product Page ── */
.product-layout{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:start;margin-bottom:5rem}
.product-gallery{position:sticky;top:calc(var(--header-height) + 1.5rem)}
.product-gallery__main{position:relative;overflow:hidden;background:var(--color-surface);aspect-ratio:1;border:1px solid var(--color-border)}
.gallery-main-img{width:100%;height:100%;object-fit:cover;transition:transform 600ms ease}
.has-zoom:hover .gallery-main-img{transform:scale(1.05)}
.gallery-badges{position:absolute;top:.75rem;left:.75rem;display:flex;flex-direction:column;gap:.3rem;z-index:1}
.product-gallery__thumbs{display:flex;gap:3px;margin-top:3px;overflow-x:auto;scrollbar-width:thin}
.gallery-thumb{width:80px;height:80px;flex-shrink:0;background:var(--color-surface);border:2px solid transparent;cursor:pointer;overflow:hidden;transition:border-color 150ms ease}
.gallery-thumb img{width:100%;height:100%;object-fit:cover}
.gallery-thumb.active,.gallery-thumb:hover{border-color:var(--color-accent)}
.product-vendor-row{display:flex;align-items:center;gap:.75rem;margin-bottom:.6rem}
.product-vendor{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--color-accent)}
.product-type{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-muted)}
.product-title{font-family:var(--font-heading);font-size:clamp(1.5rem,3vw,2.4rem);font-weight:700;letter-spacing:.03em;text-transform:uppercase;line-height:1.05;margin-bottom:.85rem}
.product-rating-row{display:flex;align-items:center;gap:.6rem;margin-bottom:1rem}
.product-review-count{font-family:var(--font-mono);font-size:.62rem;color:var(--color-accent);letter-spacing:.06em}
.product-price-block{display:flex;align-items:baseline;gap:.85rem;margin-bottom:.2rem}
.price-current{font-family:var(--font-heading);font-size:2rem;font-weight:700}
.price-compare{font-family:var(--font-heading);font-size:1.15rem;font-weight:400;color:var(--color-text-muted);text-decoration:line-through}
.product-financing{font-family:var(--font-mono);font-size:.65rem;color:var(--color-accent);letter-spacing:.1em;text-transform:uppercase;margin-bottom:1rem}
.product-stock{margin-bottom:1.25rem}
.stock{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--font-mono);font-size:.65rem;letter-spacing:.1em;text-transform:uppercase}
.stock-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.stock--in{color:var(--color-success)}.stock--in .stock-dot{background:var(--color-success);box-shadow:0 0 6px var(--color-success)}
.stock--low{color:var(--color-accent)}.stock--low .stock-dot{background:var(--color-accent);animation:pulse 1.4s ease infinite}
.stock--out{color:var(--color-text-muted)}.stock--out .stock-dot{background:var(--color-text-muted)}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.25}}
.product-description-short{color:var(--color-text-muted);font-size:.9rem;line-height:1.85;margin-bottom:1.5rem;padding-left:1rem;border-left:2px solid var(--color-accent)}
.variant-group{margin-bottom:1.1rem}
.variant-label{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-muted);display:block;margin-bottom:.5rem}
.variant-label strong{color:var(--color-text)}
.variant-buttons{display:flex;flex-wrap:wrap;gap:.4rem}
.variant-btn{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);border:1px solid var(--color-border);padding:.4rem .9rem;cursor:pointer;background:none;transition:all 150ms ease}
.variant-btn:hover{border-color:var(--color-text-muted);color:var(--color-text)}
.variant-btn.active{border-color:var(--color-accent);color:var(--color-accent);background:rgba(196,122,43,.07)}
.qty-row{display:flex;align-items:center;gap:.65rem;margin:1.5rem 0 .7rem}
.qty-ctrl{display:inline-flex;align-items:center;border:1px solid var(--color-border)}
.qty-btn{background:none;border:none;width:40px;height:48px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text-muted);font-size:1.1rem;transition:all 150ms ease}
.qty-btn:hover{background:var(--color-surface);color:var(--color-text)}
.qty-display{width:42px;text-align:center;font-family:var(--font-mono);font-size:.85rem;border-left:1px solid var(--color-border);border-right:1px solid var(--color-border);line-height:48px;user-select:none}
.btn-atc-anchor{flex:1;justify-content:center}
.trust-badges{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-top:1.75rem;padding-top:1.5rem;border-top:1px solid var(--color-border)}
.trust-badge{display:flex;align-items:center;gap:.5rem;font-family:var(--font-mono);font-size:.62rem;color:var(--color-text-muted);letter-spacing:.07em}
.trust-badge svg{color:var(--color-accent);flex-shrink:0}
.product-sku{font-family:var(--font-mono);font-size:.6rem;color:var(--color-text-muted);letter-spacing:.1em;margin-top:1rem}
.product-share{display:flex;align-items:center;gap:.65rem;margin-top:.6rem;flex-wrap:wrap}
.product-share-label{font-family:var(--font-mono);font-size:.6rem;color:var(--color-text-muted);letter-spacing:.1em;text-transform:uppercase}
.share-link{font-family:var(--font-mono);font-size:.6rem;color:var(--color-text-muted);letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--color-border);padding:.18rem .5rem;transition:all 150ms ease}
.share-link:hover{border-color:var(--color-accent);color:var(--color-accent)}
.product-tabs{margin-top:5rem;border-top:1px solid var(--color-border)}
.product-tabs-nav{display:flex;border-bottom:1px solid var(--color-border);overflow-x:auto;scrollbar-width:none}
.product-tabs-nav::-webkit-scrollbar{display:none}
.product-tab-btn{font-family:var(--font-heading);font-size:.76rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);padding:1rem 1.75rem;background:none;border:none;cursor:pointer;white-space:nowrap;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all 150ms ease;flex-shrink:0}
.product-tab-btn:hover{color:var(--color-text)}
.product-tab-btn.active{color:var(--color-accent);border-bottom-color:var(--color-accent)}
.product-tab-panel{display:none;padding:2.5rem 0}
.product-tab-panel.active{display:block}
.product-full-desc{color:var(--color-text-muted);line-height:1.9}
.tab-empty{color:var(--color-text-muted);font-size:.9rem}
.tab-empty a{color:var(--color-accent)}
.sticky-atc{position:fixed;bottom:0;left:0;right:0;background:var(--color-surface);border-top:1px solid var(--color-border);z-index:400;transform:translateY(100%);transition:transform 300ms ease;box-shadow:0 -8px 32px rgba(0,0,0,.5)}
.sticky-atc.visible{transform:translateY(0)}
.sticky-atc-inner{display:flex;align-items:center;gap:2rem;padding:.85rem 0}
.sticky-atc-product{display:flex;align-items:center;gap:.85rem;flex:1;min-width:0}
.sticky-atc-img{width:44px;height:44px;object-fit:cover;flex-shrink:0}
.sticky-atc-title{font-family:var(--font-heading);font-size:.8rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sticky-atc-price{font-family:var(--font-heading);font-size:1.1rem;font-weight:700;color:var(--color-accent);white-space:nowrap}
.sticky-atc-actions{display:flex;gap:.5rem;flex-shrink:0}
@media(max-width:768px){.product-layout{grid-template-columns:1fr;gap:2rem}.product-gallery{position:relative;top:0}}

/* ── Collection ── */
.collection-header{margin-bottom:2.5rem}
.collection-desc{color:var(--color-text-muted);max-width:640px;margin-top:.75rem;line-height:1.8}
.collection-layout{display:grid;grid-template-columns:260px 1fr;gap:3rem;align-items:start}
.collection-layout--no-sidebar{grid-template-columns:1fr}
@media(max-width:1024px){.collection-layout{grid-template-columns:1fr}}
.collection-sidebar{background:var(--color-surface);border:1px solid var(--color-border);padding:1.5rem}
@media(max-width:1024px){.collection-sidebar{position:fixed;top:0;left:0;bottom:0;z-index:2000;width:300px;overflow-y:auto;transform:translateX(-100%);transition:transform 300ms ease;padding:5rem 1.5rem 2rem}.collection-sidebar.open{transform:translateX(0)}}
.filter-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:1px solid var(--color-border)}
.filter-title{font-family:var(--font-heading);font-size:.78rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}
.filter-clear{font-family:var(--font-mono);font-size:.6rem;color:var(--color-accent);letter-spacing:.1em;text-transform:uppercase}
.filter-active-pills{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem}
.filter-pill{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.08em;color:var(--color-text-muted);background:var(--color-surface-2);border:1px solid var(--color-border);padding:.25rem .55rem;display:inline-flex;align-items:center;gap:.3rem;transition:all 150ms ease}
.filter-pill span{color:var(--color-danger)}
.filter-group{border-bottom:1px solid var(--color-border)}
.filter-group summary{list-style:none}
.filter-group summary::-webkit-details-marker{display:none}
.filter-group-header{display:flex;justify-content:space-between;align-items:center;padding:.85rem 0;cursor:pointer;font-family:var(--font-heading);font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text);user-select:none}
.filter-group-icon{width:14px;height:14px;transition:transform 150ms ease;flex-shrink:0}
details[open] .filter-group-icon{transform:rotate(180deg)}
.filter-group-body{padding-bottom:1rem}
.filter-options{display:flex;flex-direction:column;gap:.1rem}
.filter-option{display:flex;align-items:center;gap:.65rem;cursor:pointer;padding:.3rem 0}
.filter-option input{display:none}
.filter-checkbox{width:14px;height:14px;border:1px solid var(--color-border);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all 150ms ease}
.filter-option input:checked + .filter-checkbox{background:var(--color-accent);border-color:var(--color-accent)}
.filter-option input:checked + .filter-checkbox::after{content:'✓';font-size:.55rem;color:#fff}
.filter-option-label{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.06em;color:var(--color-text-muted);flex:1;transition:color 150ms ease}
.filter-option:hover .filter-option-label{color:var(--color-text)}
.filter-option-count{font-family:var(--font-mono);font-size:.58rem;color:var(--color-text-muted)}
.price-range-inputs{display:flex;align-items:center;gap:.5rem}
.price-input{width:80px;background:var(--color-surface-2);border:1px solid var(--color-border);color:var(--color-text);font-family:var(--font-mono);font-size:.75rem;padding:.4rem .6rem;outline:none;transition:border-color 150ms ease}
.price-input:focus{border-color:var(--color-accent)}
.price-range-sep{color:var(--color-text-muted);font-size:.75rem}
.collection-toolbar{display:flex;align-items:center;justify-content:space-between;padding:.85rem 0;margin-bottom:1px;border-bottom:1px solid var(--color-border)}
.toolbar-count{font-family:var(--font-mono);font-size:.65rem;color:var(--color-text-muted);letter-spacing:.1em;text-transform:uppercase}
.toolbar-right{display:flex;align-items:center;gap:.75rem}
.sort-select{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-muted);font-family:var(--font-mono);font-size:.68rem;letter-spacing:.06em;padding:.4rem .65rem;cursor:pointer;outline:none;transition:border-color 150ms ease}
.sort-select:hover,.sort-select:focus{border-color:var(--color-accent)}
.view-toggle{display:flex;border:1px solid var(--color-border)}
.view-btn{background:none;border:none;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text-muted);transition:all 150ms ease;border-right:1px solid var(--color-border)}
.view-btn:last-child{border-right:none}
.view-btn svg{width:14px;height:14px}
.view-btn.active,.view-btn:hover{background:var(--color-surface-2);color:var(--color-accent)}
.filter-mobile-btn{display:none;align-items:center;gap:.5rem;background:none;border:1px solid var(--color-border);color:var(--color-text-muted);font-family:var(--font-mono);font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;padding:.4rem .75rem;cursor:pointer;transition:all 150ms ease}
.filter-mobile-btn svg{width:12px;height:12px}
.filter-mobile-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}
@media(max-width:1024px){.filter-mobile-btn{display:flex}}
.pagination{display:flex;align-items:center;justify-content:center;gap:.3rem;padding:3rem 0}
.page-btn{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--color-border);padding:.45rem .85rem;transition:all 150ms ease;color:var(--color-text-muted)}
.page-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}
.page-btn--current{background:var(--color-accent);border-color:var(--color-accent);color:#fff}
.page-btn--ellipsis{border:none;color:var(--color-text-muted)}
.collection-empty{padding:5rem 2rem;text-align:center;border:1px dashed var(--color-border);color:var(--color-text-muted)}

/* ── Cart Drawer ── */
.cart-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);backdrop-filter:blur(3px);z-index:799;opacity:0;pointer-events:none;transition:opacity 300ms ease}
.cart-overlay.open{opacity:1;pointer-events:all}
.cart-drawer{position:fixed;top:0;right:0;bottom:0;width:380px;max-width:100vw;background:var(--color-surface);border-left:1px solid var(--color-border);z-index:800;transform:translateX(100%);transition:transform 300ms ease;display:flex;flex-direction:column;box-shadow:-16px 0 64px rgba(0,0,0,.5)}
.cart-drawer.open{transform:translateX(0)}
.cart-drawer-header{padding:1.25rem 1.5rem;border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.cart-drawer-title{font-family:var(--font-heading);font-size:.9rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}
.cart-drawer-close{background:none;border:none;color:var(--color-text-muted);cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center}
.cart-drawer-close:hover{color:var(--color-text)}
.cart-shipping-bar{padding:.85rem 1.5rem;border-bottom:1px solid var(--color-border);flex-shrink:0}
.cart-ship-track{height:2px;background:var(--color-border);border-radius:1px;overflow:hidden;margin-bottom:.4rem}
.cart-ship-fill{height:100%;background:var(--color-accent);border-radius:1px;transition:width 300ms ease}
.cart-ship-msg{font-family:var(--font-mono);font-size:.6rem;color:var(--color-text-muted);letter-spacing:.08em;text-transform:uppercase}
.cart-ship-msg span{color:var(--color-accent)}
.cart-drawer-body{flex:1;overflow-y:auto;padding:1.25rem 1.5rem}
.cart-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:4rem 2rem;text-align:center;color:var(--color-text-muted)}
.cart-empty svg{opacity:.25}
.cart-empty p{font-family:var(--font-heading);font-size:.85rem;letter-spacing:.08em;text-transform:uppercase}
.cart-item{display:grid;grid-template-columns:68px 1fr auto;gap:.85rem;padding:.9rem 0;border-bottom:1px solid var(--color-border);align-items:start}
.cart-item-img{width:68px;height:68px;object-fit:cover;background:var(--color-surface-2)}
.cart-item-title{font-family:var(--font-heading);font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;line-height:1.3;margin-bottom:.25rem}
.cart-item-var{font-family:var(--font-mono);font-size:.58rem;color:var(--color-text-muted);letter-spacing:.06em;margin-bottom:.4rem}
.cart-item-qty-ctrl{display:inline-flex;align-items:center;border:1px solid var(--color-border)}
.cq-btn{background:none;border:none;width:26px;height:26px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text-muted);font-size:.85rem;transition:all 150ms ease}
.cq-btn:hover{background:var(--color-surface-2);color:var(--color-text)}
.cq-val{width:28px;text-align:center;font-family:var(--font-mono);font-size:.72rem;border-left:1px solid var(--color-border);border-right:1px solid var(--color-border);line-height:26px}
.cart-item-remove{display:block;background:none;border:none;font-family:var(--font-mono);font-size:.58rem;color:var(--color-text-muted);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;padding:0;margin-top:.35rem;transition:color 150ms ease}
.cart-item-remove:hover{color:var(--color-danger)}
.cart-item-price{font-family:var(--font-heading);font-size:.95rem;font-weight:600;white-space:nowrap}
.cart-drawer-footer{padding:1.25rem 1.5rem;border-top:1px solid var(--color-border);flex-shrink:0}
.cart-subtotal-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.25rem}
.cart-subtotal-label{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted)}
.cart-subtotal-value{font-family:var(--font-heading);font-size:1.35rem;font-weight:700}
.cart-subtotal-note{font-family:var(--font-mono);font-size:.58rem;color:var(--color-text-muted);letter-spacing:.08em;margin-bottom:1rem}

/* ── Footer ── */
.site-footer{background:var(--color-surface);border-top:1px solid var(--color-border)}
.footer-main{padding:4rem 0 3rem}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3rem}
.footer-about{color:var(--color-text-muted);font-size:.85rem;line-height:1.8;max-width:280px}
.footer-col-title{font-family:var(--font-heading);font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--color-text);margin-bottom:.85rem;padding-bottom:.5rem;border-bottom:1px solid var(--color-border)}
.footer-links{display:flex;flex-direction:column;gap:.45rem}
.footer-links a{font-size:.8rem;color:var(--color-text-muted);transition:color 150ms ease}
.footer-links a:hover{color:var(--color-accent)}
.footer-social{display:flex;gap:.6rem;margin-top:1.25rem}
.footer-social a{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--color-border);color:var(--color-text-muted);transition:all 150ms ease}
.footer-social a:hover{border-color:var(--color-accent);color:var(--color-accent)}
.footer-social svg{width:14px;height:14px}
.footer-bottom{border-top:1px solid var(--color-border);padding:1.25rem 0;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.footer-copy{font-family:var(--font-mono);font-size:.6rem;color:var(--color-text-muted);letter-spacing:.08em}
.footer-payment{display:flex;gap:.4rem;flex-wrap:wrap}
.payment-icon{width:38px;height:24px;object-fit:contain;opacity:.5}
@media(max-width:900px){.footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.footer-grid{grid-template-columns:1fr}}

/* ── Sticky CTA ── */
.sticky-cta-group{position:fixed;bottom:2rem;right:2rem;z-index:300;display:flex;flex-direction:column;gap:.5rem;align-items:flex-end}
.sticky-cta-btn{display:flex;align-items:center;gap:.6rem;background:var(--color-surface);border:1px solid var(--color-border);padding:.6rem 1rem;font-family:var(--font-heading);font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text);box-shadow:0 4px 20px rgba(0,0,0,.5);transition:all 150ms ease;cursor:pointer;white-space:nowrap}
.sticky-cta-btn:hover{border-color:var(--color-accent)}
.sticky-cta-primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-btn-text)}
.sticky-cta-primary:hover{background:var(--color-accent-hover)}

/* ── Forms ── */
input[type="text"],input[type="email"],input[type="number"],input[type="tel"],input[type="search"],input[type="password"],textarea,select{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);font-family:var(--font-body);font-size:1rem;padding:.75rem 1rem;width:100%;outline:none;transition:border-color 150ms ease}
input:focus,textarea:focus,select:focus{border-color:var(--color-accent)}
label{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted);display:block;margin-bottom:.4rem}
@media(max-width:768px){.sticky-cta-group{bottom:1rem;right:1rem}.sticky-cta-btn{font-size:.65rem;padding:.5rem .85rem}}

/* ============================================================
   THEME STORE COMPLIANCE ADDITIONS — v3.1
   ============================================================ */

/* ── Focus ring (always visible, not just :focus-visible) ── */
*:focus-visible {
  outline: 2px solid var(--color-accent) !important;
  outline-offset: 3px !important;
}
*:focus:not(:focus-visible) { outline: none; }

/* ── Slideshow ── */
.slideshow { position: relative; overflow: hidden; display: flex; }
.slideshow-track { position: relative; width: 100%; display: flex; flex-direction: column; }
.slide { position: absolute; inset: 0; opacity: 0; transition: opacity 600ms ease; display: flex; align-items: center; pointer-events: none; }
.slide.active { opacity: 1; position: relative; pointer-events: all; }
.slide-overlay { position: absolute; inset: 0; pointer-events: none; }
.slide-content { position: relative; z-index: 1; padding: 5rem 0; }
.slideshow-controls { position: absolute; bottom: 2rem; left: 0; right: 0; display: flex; align-items: center; justify-content: center; gap: 1rem; z-index: 10; }
.slideshow-btn { background: rgba(0,0,0,.5); border: 1px solid rgba(255,255,255,.2); color: #fff; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; transition: all 150ms ease; flex-shrink: 0; }
.slideshow-btn svg { width: 18px; height: 18px; }
.slideshow-btn:hover { background: var(--color-accent); border-color: var(--color-accent); }
.slideshow-dots { display: flex; gap: .5rem; }
.slideshow-dot { width: 8px; height: 8px; background: rgba(255,255,255,.4); border: none; border-radius: 0; transition: all 150ms ease; }
.slideshow-dot.active, .slideshow-dot:hover { background: var(--color-accent); width: 24px; }
.slideshow-dot:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.slideshow-pause { position: absolute; bottom: 2rem; right: 2rem; z-index: 10; background: rgba(0,0,0,.5); border: 1px solid rgba(255,255,255,.2); color: #fff; width: 36px; height: 36px; }
.slideshow-pause svg { width: 14px; height: 14px; }

/* ── Modal (Quick View + Zoom) ── */
.modal { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 1.5rem; }
.modal[hidden] { display: none; }
.modal-overlay { position: absolute; inset: 0; background: rgba(0,0,0,.7); backdrop-filter: blur(4px); }
.modal-box { position: relative; z-index: 1; background: var(--color-surface); width: 100%; max-width: 960px; max-height: 90vh; overflow-y: auto; display: flex; flex-direction: column; }
.modal-close { position: absolute; top: 1rem; right: 1rem; z-index: 2; background: var(--color-surface-2); border: 1px solid var(--color-border); color: var(--color-text-muted); width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; }
.modal-close:hover { color: var(--color-text); }
.modal-content { padding: 2.5rem; }

/* Zoom modal */
.zoom-modal { padding: 0; }
.zoom-modal .modal-overlay { background: rgba(0,0,0,.92); }
.zoom-close { position: fixed; top: 1.25rem; right: 1.25rem; z-index: 1001; background: rgba(0,0,0,.6); border: 1px solid rgba(255,255,255,.2); color: #fff; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; }
.zoom-inner { position: relative; z-index: 1; display: flex; align-items: center; justify-content: center; min-height: 100vh; padding: 3rem; }
.zoom-img { max-width: 90vw; max-height: 90vh; object-fit: contain; cursor: zoom-out; }

/* ── Before / After ── */
.ba-container { position: relative; overflow: hidden; user-select: none; aspect-ratio: 16/9; }
.ba-before, .ba-after { position: absolute; inset: 0; }
.ba-before img, .ba-after img { width: 100%; height: 100%; object-fit: cover; }
.ba-after { clip-path: inset(0 0 0 50%); }
.ba-badge { position: absolute; bottom: 1rem; padding: .35rem .85rem; background: rgba(0,0,0,.7); color: #fff; font-family: var(--font-mono); font-size: 1.1rem; letter-spacing: .1em; text-transform: uppercase; }
.ba-before .ba-badge { left: 1rem; }
.ba-badge--after { right: 1rem; background: var(--color-accent); }
.ba-divider { position: absolute; top: 0; bottom: 0; left: 50%; width: 3px; background: #fff; transform: translateX(-50%); cursor: ew-resize; z-index: 10; }
.ba-handle { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 44px; height: 44px; background: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 16px rgba(0,0,0,.4); }
.ba-handle svg { width: 20px; height: 20px; color: #000; }
.ba-divider:focus-visible { outline: 3px solid var(--color-accent); outline-offset: 2px; }

/* ── Countdown ── */
.countdown-timer { display: flex; align-items: center; gap: 1rem; justify-content: center; margin: 2rem 0; flex-wrap: wrap; }
.countdown-unit { text-align: center; min-width: 70px; }
.countdown-num { display: block; font-family: var(--font-heading); font-size: clamp(2.5rem, 6vw, 5rem); font-weight: 700; line-height: 1; color: var(--color-accent); }
.countdown-label { font-family: var(--font-mono); font-size: 1rem; letter-spacing: .14em; text-transform: uppercase; color: var(--color-text-muted); margin-top: .3rem; }
.countdown-sep { font-family: var(--font-heading); font-size: clamp(2rem, 5vw, 4rem); font-weight: 700; color: var(--color-border); line-height: 1; }
.countdown-expired { font-family: var(--font-mono); font-size: 1.2rem; color: var(--color-accent); letter-spacing: .1em; }

/* ── Popup ── */
.popup-overlay { position: fixed; inset: 0; z-index: 2000; display: flex; align-items: center; justify-content: center; padding: 1.5rem; background: rgba(0,0,0,.7); backdrop-filter: blur(4px); }
.popup-overlay[hidden] { display: none; }
.popup-box { position: relative; background: var(--color-surface); border: 1px solid var(--color-border); max-width: 560px; width: 100%; display: grid; }
.popup-box:has(.popup-media) { grid-template-columns: 1fr 1fr; }
.popup-media { overflow: hidden; }
.popup-media img { width: 100%; height: 100%; object-fit: cover; }
.popup-content { padding: 3rem 2.5rem; text-align: center; }
.popup-close { position: absolute; top: 1rem; right: 1rem; z-index: 1; background: var(--color-surface-2); border: 1px solid var(--color-border); color: var(--color-text-muted); width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; }
.popup-dismiss { display: block; font-family: var(--font-mono); font-size: 1rem; color: var(--color-text-muted); letter-spacing: .1em; text-transform: uppercase; background: none; border: none; margin: 1.25rem auto 0; cursor: pointer; transition: color 150ms ease; }
.popup-dismiss:hover { color: var(--color-text); }
@media(max-width:600px) { .popup-box, .popup-box:has(.popup-media) { grid-template-columns: 1fr; } .popup-media { display: none; } }

/* ── Contact Form ── */
.contact-layout { display: grid; gap: 4rem; }
.contact-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
.form-field { display: flex; flex-direction: column; }
.form-field--full { grid-column: 1 / -1; }
.form-success { display: flex; align-items: center; gap: .75rem; background: rgba(76,175,136,.12); border: 1px solid var(--color-success); color: var(--color-success); padding: 1rem 1.25rem; font-family: var(--font-mono); font-size: 1.2rem; letter-spacing: .08em; margin-bottom: 1.5rem; }
.form-success svg { width: 18px; height: 18px; flex-shrink: 0; }
.form-errors { background: rgba(197,48,48,.12); border: 1px solid var(--color-danger); color: var(--color-danger); padding: 1rem 1.25rem; font-size: 1.3rem; margin-bottom: 1.5rem; }
.radio-group { display: flex; flex-wrap: wrap; gap: .5rem; }
.radio-label { display: flex; align-items: center; gap: .5rem; cursor: pointer; font-family: var(--font-mono); font-size: 1.1rem; letter-spacing: .06em; }
.radio-label input { accent-color: var(--color-accent); width: 14px; height: 14px; }
.contact-info-col { display: flex; flex-direction: column; gap: 2rem; }
.contact-info-item { display: flex; align-items: flex-start; gap: 1rem; }
.contact-info-icon { width: 24px; height: 24px; flex-shrink: 0; margin-top: .2rem; }
.contact-info-icon svg { width: 100%; height: 100%; }
.contact-info-heading { font-family: var(--font-heading); font-size: 1.2rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; margin-bottom: .35rem; }
.contact-info-content { color: var(--color-text-muted); font-size: 1.3rem; line-height: 1.7; }
@media(max-width:768px) { .contact-form-grid { grid-template-columns: 1fr; } .contact-layout { grid-template-columns: 1fr !important; gap: 3rem; } }

/* ── Product Recommendations ── */
.product-recommendations .section-header { margin-bottom: 2.5rem; }

/* ── Color Scheme Blocks ── */
.color-scheme--1 {
  --color-bg:         {{ settings.color_schemes.scheme_1.settings.background | default: '#0a0a0a' }};
  --color-text:       {{ settings.color_schemes.scheme_1.settings.on_background | default: '#f0ede8' }};
  --color-accent:     {{ settings.color_schemes.scheme_1.settings.primary | default: '#c47a2b' }};
  --color-border:     {{ settings.color_schemes.scheme_1.settings.border | default: '#2a2a2a' }};
  --color-text-muted: {{ settings.color_schemes.scheme_1.settings.on_background_2 | default: '#888880' }};
}

/* ── Visually hidden interactive elements ── */
.sr-only-focusable:focus,
.sr-only-focusable:active {
  position: static;
  width: auto; height: auto;
  margin: 0; padding: .5rem 1rem;
  overflow: visible;
  clip: auto;
  white-space: normal;
}

/* ── Reduced motion ── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
  .slide { transition: none; }
}

/* ── High contrast mode support ── */
@media (forced-colors: active) {
  .btn-primary { forced-color-adjust: none; }
  .badge { forced-color-adjust: none; }
}

/* ── Print ── */
@media print {
  .site-header, .site-footer, .sticky-cta-group, .cart-drawer, .sticky-atc { display: none !important; }
  body { background: #fff; color: #000; }
}

/* ── Quick View Modal Layout ── */
.qv-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 0; min-height: 400px; }
.qv-media { background: var(--color-surface-2); overflow: hidden; }
.qv-media img { width: 100%; height: 100%; object-fit: cover; }
.qv-body { padding: 2.5rem; display: flex; flex-direction: column; gap: .75rem; overflow-y: auto; max-height: 80vh; }
.qv-spinner { width: 36px; height: 36px; border: 3px solid var(--color-border); border-top-color: var(--color-accent); border-radius: 50%; animation: spin 0.8s linear infinite; margin: 0 auto; }
@keyframes spin { to { transform: rotate(360deg); } }
@media (max-width: 640px) { .qv-layout { grid-template-columns: 1fr; } .qv-media { height: 240px; } }

/* ── Search results ── */
.search-result-item { display: flex; align-items: center; gap: 1rem; padding: .85rem; background: var(--color-surface); transition: background 150ms ease; text-decoration: none; color: var(--color-text); }
.search-result-item:hover, .search-result-item:focus { background: var(--color-surface-2); outline: none; }
.search-result-item:focus-visible { outline: 2px solid var(--color-accent); outline-offset: -2px; }
.search-result-item + .search-result-item { border-top: 1px solid var(--color-border); }
.search-result-item img { width: 48px; height: 48px; object-fit: cover; flex-shrink: 0; background: var(--color-surface-2); }
.search-result-placeholder { width: 48px; height: 48px; background: var(--color-surface-2); flex-shrink: 0; }
.search-result-info { display: flex; flex-direction: column; gap: .2rem; min-width: 0; }
.search-result-title { font-family: var(--font-heading); font-size: 1.2rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.search-result-price { font-family: var(--font-mono); font-size: 1rem; color: var(--color-accent); }
.search-no-results { font-family: var(--font-mono); font-size: 1.2rem; color: var(--color-text-muted); padding: 1.25rem; text-align: center; letter-spacing: .08em; }
#header-search-results { border: 1px solid var(--color-border); margin-top: .5rem; max-height: 400px; overflow-y: auto; }

/* ── body overflow-hidden ── */
body.overflow-hidden { overflow: hidden; }

/* ── Accessible skip link ── */
.skip-to-content:focus { outline: 2px solid #fff; }

/* ── Page template backgrounds ── */
.template-index main, .template-collection main, .template-product main,
.template-blog main, .template-article main, .template-page main,
.template-search main, .template-404 main, .template-cart main {
  background: var(--color-bg);
}

/* ── Announcement bar hidden ── */
.announcement-bar[hidden] { display: none; }

/* ── 3D Model Viewer ── */
.gallery-model-wrap { width: 100%; height: 100%; min-height: 400px; display: flex; align-items: center; justify-content: center; background: var(--color-surface); }
.product-model-viewer { width: 100%; height: 400px; }
model-viewer { --poster-color: var(--color-surface); }
model-viewer::part(default-ar-button) { bottom: 1rem; right: 1rem; border-radius: 0; background: var(--color-accent); color: var(--color-accent-text); border: none; }

/* Gallery video */
.gallery-video-wrap { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background: #000; }
.gallery-video { width: 100%; max-height: 600px; object-fit: contain; }
.gallery-zoom-btn { opacity: 0; transition: opacity 150ms ease; }
.product-gallery__main:hover .gallery-zoom-btn { opacity: 1; }

/* ── Back in stock form ── */
.back-in-stock-form { margin-top: 1.25rem; }
.back-in-stock-form input[type="email"] { flex: 1; margin-bottom: 0; }

/* ── Thumb model/video icons ── */
.thumb-model-icon svg, .thumb-video-icon svg { width: 20px; height: 20px; color: var(--color-text-muted); }
.thumb-video-icon { position: relative; }
.thumb-video-icon > div { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(0,0,0,.4); }
.thumb-video-icon > div svg { width: 18px; height: 18px; color: #fff; }

/* ── Variant buttons — unavailable state ── */
.variant-btn[data-available="false"] {
  opacity: 0.4;
  text-decoration: line-through;
  cursor: not-allowed;
}
.variant-btn[data-available="false"]:hover {
  border-color: var(--color-border);
  color: var(--color-text-muted);
}

/* ── Filter sidebar mobile overlay ── */
@media (max-width: 1024px) {
  .collection-sidebar::before {
    content: '';
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.6);
    z-index: -1;
    opacity: 0;
    pointer-events: none;
    transition: opacity 300ms ease;
  }
  .collection-sidebar.open::before {
    opacity: 1;
    pointer-events: all;
  }
  .filter-sidebar-close {
    display: flex;
    position: absolute;
    top: 1rem;
    right: 1rem;
  }
}
@media (min-width: 1025px) {
  .filter-sidebar-close { display: none; }
}

/* ── Qty input number arrows removal ── */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button { -webkit-appearance: none; }
input[type="number"] { -moz-appearance: textfield; }

/* ── Product form error ── */
.product-form-error { color: var(--color-danger); font-family: var(--font-mono); font-size: 1.1rem; letter-spacing: .06em; margin-top: .5rem; }

/* ============================================================
   PASS 1 — COLOR / VARIANT SWATCHES
   ============================================================ */

/* ── Swatch grid ── */
.swatch-group { display: flex; flex-wrap: wrap; gap: .45rem; align-items: center; }
.swatch-label { font-family: var(--font-mono); font-size: 1.05rem; letter-spacing: .1em; text-transform: uppercase; color: var(--color-text-muted); margin-bottom: .5rem; display: flex; align-items: baseline; gap: .5rem; }
.swatch-label strong { color: var(--color-text); font-weight: 600; }

/* ── Color swatch circle ── */
.swatch-color {
  position: relative;
  width: 28px; height: 28px;
  border-radius: 50%;
  border: 2px solid transparent;
  outline: 2px solid transparent;
  outline-offset: 2px;
  cursor: pointer;
  flex-shrink: 0;
  transition: outline-color 150ms ease, transform 150ms ease;
  background-color: var(--swatch-bg, #888);
  display: inline-flex; align-items: center; justify-content: center;
}
.swatch-color:hover { transform: scale(1.12); }
.swatch-color.active {
  outline-color: var(--color-accent);
  border-color: var(--color-bg);
}
.swatch-color:focus-visible { outline-color: var(--color-accent); }

/* ── Unavailable diagonal slash ── */
.swatch--unavailable { opacity: 0.45; cursor: not-allowed; }
.swatch--unavailable::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom right,
    transparent calc(50% - 1px),
    var(--color-text-muted) calc(50% - 1px),
    var(--color-text-muted) calc(50% + 1px),
    transparent calc(50% + 1px)
  );
  border-radius: 50%;
}

/* ── Check mark on active swatch ── */
.swatch-check {
  position: relative; z-index: 1;
  width: 12px; height: 12px;
  display: flex; align-items: center; justify-content: center;
}
.swatch-check svg { width: 100%; height: 100%; }
/* auto white/dark check based on bg luminance — CSS only approximation */
.swatch-color { color: white; }
.swatch-color[style*="white"],
.swatch-color[style*="#fff"],
.swatch-color[style*="#ffffff"],
.swatch-color[style*="ivory"],
.swatch-color[style*="cream"],
.swatch-color[style*="#f0"],
.swatch-color[style*="#e0"],
.swatch-color[style*="#d0"],
.swatch-color[style*="#c0"],
.swatch-color[style*="beige"],
.swatch-color[style*="silver"],
.swatch-color[style*="#b0"],
.swatch-color[style*="#a0"] { color: #1a1a1a; }

/* ── Named CSS color mappings (common finish/material names) ── */
[style*="--swatch-bg: gunmetal"]      { --swatch-bg: #2a2d31 !important; }
[style*="--swatch-bg: matte-black"]   { --swatch-bg: #1c1c1c !important; }
[style*="--swatch-bg: gloss-black"]   { --swatch-bg: #0a0a0a !important; }
[style*="--swatch-bg: raw-steel"]     { --swatch-bg: #8b96a0 !important; }
[style*="--swatch-bg: stainless"]     { --swatch-bg: #b8bec5 !important; }
[style*="--swatch-bg: brushed-steel"] { --swatch-bg: #9ea8b3 !important; }
[style*="--swatch-bg: zinc"]          { --swatch-bg: #8a9099 !important; }
[style*="--swatch-bg: chrome"]        { --swatch-bg: linear-gradient(135deg,#e8e8e8,#a0a0a0,#e8e8e8) !important; }
[style*="--swatch-bg: copper"]        { --swatch-bg: #b87333 !important; }
[style*="--swatch-bg: bronze"]        { --swatch-bg: #8c6239 !important; }
[style*="--swatch-bg: gold"]          { --swatch-bg: #c9a84c !important; }
[style*="--swatch-bg: safety-yellow"] { --swatch-bg: #ffd700 !important; }
[style*="--swatch-bg: osha-orange"]   { --swatch-bg: #ff6600 !important; }
[style*="--swatch-bg: industrial-red"]{ --swatch-bg: #b22222 !important; }
[style*="--swatch-bg: olive-drab"]    { --swatch-bg: #6b6b3b !important; }
[style*="--swatch-bg: primer-grey"]   { --swatch-bg: #6e7b87 !important; }

/* ── Filter swatches in sidebar ── */
.filter-swatch-row { display: flex; flex-wrap: wrap; gap: .35rem; padding-top: .25rem; }
.filter-swatch {
  width: 22px; height: 22px;
  border-radius: 50%;
  border: 2px solid transparent;
  outline: 2px solid transparent;
  outline-offset: 2px;
  cursor: pointer;
  position: relative;
  transition: outline-color 120ms ease;
  display: inline-block;
}
.filter-swatch.active, .filter-swatch:hover { outline-color: var(--color-accent); }
.filter-swatch.filter-swatch--unavailable { opacity: 0.4; }
.filter-swatch input[type="checkbox"] {
  position: absolute; inset: 0; width: 100%; height: 100%;
  opacity: 0; cursor: pointer; border-radius: 50%; margin: 0;
}

/* ── Variant swatches on product CARDS (mini size) ── */
.pc-swatches { display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .5rem; padding: 0 1rem 0; }
.pc-swatches .swatch-color { width: 18px; height: 18px; border-width: 1.5px; }
.pc-swatch-overflow { font-family: var(--font-mono); font-size: .95rem; color: var(--color-text-muted); margin-left: .2rem; align-self: center; }

/* ── Product page swatch group ── */
.variant-group--swatch .variant-buttons { gap: .5rem; }
.product-info .swatch-color { width: 32px; height: 32px; }

/* ============================================================
   PASS 2 — MEGA MENU + DRAWER NAV
   ============================================================ */

/* ── Mega menu panel ── */
.nav-has-mega { position: static !important; }

.mega-menu {
  position: fixed;
  top: var(--header-height);
  left: 0; right: 0;
  background: var(--color-surface);
  border-top: 2px solid var(--color-accent);
  border-bottom: 1px solid var(--color-border);
  z-index: 900;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  transition: opacity 220ms ease, visibility 220ms ease, transform 220ms ease;
  pointer-events: none;
  box-shadow: 0 16px 48px rgba(0,0,0,.5);
}
.mega-menu.open, .nav-has-mega:hover .mega-menu, .nav-has-mega:focus-within .mega-menu {
  opacity: 1; visibility: visible; transform: translateY(0); pointer-events: all;
}

.mega-inner {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 3rem;
  padding: 2.5rem 0;
  align-items: start;
}

/* ── Mega columns ── */
.mega-columns {
  display: grid;
  grid-template-columns: repeat(var(--mega-cols, 4), 1fr);
  gap: 2rem;
}
.mega-col-title {
  font-family: var(--font-heading);
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--color-accent);
  display: block;
  padding-bottom: .75rem;
  border-bottom: 1px solid var(--color-border);
  margin-bottom: .75rem;
  text-decoration: none;
  transition: color 150ms ease;
}
.mega-col-title:hover { color: var(--color-accent-hover); }

.mega-col-links { display: flex; flex-direction: column; gap: .25rem; }
.mega-sub-link {
  font-size: 1.25rem;
  color: var(--color-text-muted);
  text-decoration: none;
  padding: .3rem 0;
  display: flex;
  align-items: center;
  gap: .4rem;
  transition: color 150ms ease, gap 150ms ease;
}
.mega-sub-link::before { content: '–'; opacity: 0; transition: opacity 150ms ease; flex-shrink: 0; }
.mega-sub-link:hover { color: var(--color-text); gap: .6rem; }
.mega-sub-link:hover::before { opacity: 1; }
.mega-sub-link.active { color: var(--color-accent); }
.mega-sub-link:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }

/* ── Mega promo tile ── */
.mega-promo { width: 240px; flex-shrink: 0; }
.mega-promo-link { display: block; text-decoration: none; color: var(--color-text); }
.mega-promo-media { overflow: hidden; aspect-ratio: 3/4; }
.mega-promo-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 400ms ease; }
.mega-promo-link:hover .mega-promo-media img { transform: scale(1.04); }
.mega-promo-body { padding: .9rem 0 0; }
.mega-promo-eyebrow { font-family: var(--font-mono); font-size: 1rem; letter-spacing: .14em; text-transform: uppercase; color: var(--color-accent); display: block; margin-bottom: .3rem; }
.mega-promo-title { display: block; font-family: var(--font-heading); font-size: 1.3rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.mega-promo-cta { display: block; font-family: var(--font-mono); font-size: 1rem; letter-spacing: .1em; color: var(--color-text-muted); margin-top: .3rem; transition: color 150ms ease; }
.mega-promo-link:hover .mega-promo-cta { color: var(--color-accent); }

/* hide mega on mobile */
@media (max-width: 1024px) { .mega-menu { display: none; } }

/* ── Standard dropdown (unchanged, no mega) ── */
.nav-has-dropdown { position: relative; }
.nav-dropdown {
  position: absolute; top: 100%; left: 0;
  min-width: 200px;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-top: 2px solid var(--color-accent);
  z-index: 800;
  opacity: 0; visibility: hidden; transform: translateY(-4px);
  transition: opacity 180ms ease, visibility 180ms ease, transform 180ms ease;
  pointer-events: none;
  box-shadow: 0 8px 24px rgba(0,0,0,.4);
}
.nav-has-dropdown:hover .nav-dropdown,
.nav-has-dropdown:focus-within .nav-dropdown { opacity: 1; visibility: visible; transform: translateY(0); pointer-events: all; }
.nav-dropdown-item {
  display: block; padding: .8rem 1.25rem;
  color: var(--color-text-muted); font-size: 1.25rem;
  text-decoration: none;
  transition: background 120ms ease, color 120ms ease;
  border-bottom: 1px solid var(--color-border);
}
.nav-dropdown-item:last-child { border-bottom: none; }
.nav-dropdown-item:hover { background: var(--color-surface-2); color: var(--color-text); }
.nav-dropdown-item.active { color: var(--color-accent); }

/* ── Mobile menu drawer improvements ── */
.mobile-sub-toggle {
  position: absolute; right: 0; top: 50%; transform: translateY(-50%);
  background: none; border: none;
  width: 44px; height: 44px;
  display: flex; align-items: center; justify-content: center;
  color: var(--color-text-muted);
  transition: transform 250ms ease, color 150ms ease;
}
.mobile-nav-item.open .mobile-sub-toggle { transform: translateY(-50%) rotate(180deg); color: var(--color-accent); }
.mobile-sub-toggle svg { width: 16px; height: 16px; }
.mobile-sub { padding-left: 1.5rem; margin-top: .25rem; }
.mobile-sub-link {
  display: block; padding: .65rem 0;
  color: var(--color-text-muted); font-size: 1.25rem;
  text-decoration: none; border-bottom: 1px solid var(--color-border);
}
.mobile-sub-link:hover { color: var(--color-accent); }

/* ============================================================
   PASS 3 — RICH PREDICTIVE SEARCH
   ============================================================ */

#header-search-results, #search-results {
  position: absolute;
  left: 0; right: 0; top: calc(100% + 4px);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  z-index: 999;
  max-height: 520px;
  overflow-y: auto;
  box-shadow: 0 16px 40px rgba(0,0,0,.5);
}

/* Layout: main results + sidebar */
.psr-layout { display: grid; grid-template-columns: 1fr 200px; }
@media (max-width: 600px) { .psr-layout { grid-template-columns: 1fr; } }

.psr-main { border-right: 1px solid var(--color-border); }
.psr-sidebar { padding: .75rem 0; display: flex; flex-direction: column; }

/* Section header */
.psr-section { padding: .5rem 0; }
.psr-section-title {
  font-family: var(--font-mono);
  font-size: 1rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  padding: .5rem 1.25rem .3rem;
}
.psr-section + .psr-section { border-top: 1px solid var(--color-border); }

/* Product result */
.psr-product { align-items: flex-start; padding: .75rem 1.25rem; gap: 1rem; }
.psr-img { width: 56px; height: 56px; flex-shrink: 0; overflow: hidden; background: var(--color-surface-2); }
.psr-img img { width: 100%; height: 100%; object-fit: cover; }
.psr-vendor { font-family: var(--font-mono); font-size: .95rem; color: var(--color-text-muted); letter-spacing: .08em; display: block; margin-bottom: .15rem; }
.psr-price-row { display: flex; align-items: center; gap: .5rem; margin-top: .25rem; }
.psr-compare { font-size: 1.1rem; color: var(--color-text-muted); }
.psr-oos { font-family: var(--font-mono); font-size: .9rem; color: var(--color-danger); letter-spacing: .08em; }

/* Collection result */
.psr-collection { padding: .6rem 1.25rem; gap: .85rem; }
.psr-arrow { margin-left: auto; color: var(--color-text-muted); font-family: var(--font-mono); font-size: 1.2rem; }
.psr-collection:hover .psr-arrow { color: var(--color-accent); }

/* Page result */
.psr-page { padding: .6rem 1.25rem; gap: .85rem; }
.psr-page-icon { width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; color: var(--color-text-muted); }

/* Sidebar queries */
.psr-queries { padding: .75rem 0; }
.psr-query-item {
  display: flex; align-items: center; gap: .6rem;
  padding: .5rem 1.25rem;
  color: var(--color-text-muted);
  font-size: 1.2rem;
  text-decoration: none;
  transition: color 120ms ease, background 120ms ease;
}
.psr-query-item:hover, .psr-query-item:focus { color: var(--color-text); background: var(--color-surface-2); outline: none; }
.psr-query-item svg { flex-shrink: 0; color: var(--color-text-muted); }

/* View all link */
.psr-view-all { margin-top: auto; padding: .75rem 1.25rem; border-top: 1px solid var(--color-border); }
.psr-view-all-link {
  font-family: var(--font-mono); font-size: 1rem; letter-spacing: .1em; text-transform: uppercase;
  color: var(--color-accent); text-decoration: none;
  transition: color 150ms ease;
}
.psr-view-all-link:hover { color: var(--color-accent-hover); }

/* Search overlay positioning fix */
.search-overlay-inner { position: relative; }

/* Loading spinner in search */
.psr-loading {
  display: flex; align-items: center; justify-content: center;
  padding: 2rem; color: var(--color-text-muted);
  font-family: var(--font-mono); font-size: 1.1rem; letter-spacing: .1em;
  gap: .75rem;
}
.psr-spinner {
  width: 16px; height: 16px;
  border: 2px solid var(--color-border);
  border-top-color: var(--color-accent);
  border-radius: 50%;
  animation: spin 0.6s linear infinite;
}

/* ============================================================
   PASS 4 — MERCHANDISING: HOTSPOTS, LOOKBOOK, COLLAGE, PRESS BAR
   ============================================================ */

/* ── Image Hotspots ── */
.hotspots-scene {
  position: relative;
  width: 100%;
  overflow: hidden;
  user-select: none;
}
.hotspots-img { width: 100%; height: auto; display: block; }
.hotspots-img--placeholder { width: 100%; min-height: 500px; }

.hotspot {
  position: absolute;
  transform: translate(-50%, -50%);
  z-index: 10;
}
.hotspot-dot {
  position: relative;
  width: 36px; height: 36px;
  background: var(--color-accent);
  border: 2px solid rgba(255,255,255,.8);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  transition: transform 200ms ease, background 150ms ease;
  z-index: 1;
  box-shadow: 0 2px 12px rgba(0,0,0,.4);
}
.hotspot-dot:hover, .hotspot-dot[aria-expanded="true"] { transform: scale(1.15); background: var(--color-accent-hover); }
.hotspot-dot svg { width: 16px; height: 16px; color: #fff; transition: transform 200ms ease; }
.hotspot-dot[aria-expanded="true"] svg { transform: rotate(45deg); }

.hotspot-pulse {
  position: absolute; inset: -6px;
  border-radius: 50%;
  background: var(--color-accent);
  opacity: .3;
  animation: hotspot-pulse 2.2s ease infinite;
}
@keyframes hotspot-pulse { 0%,100%{ transform:scale(1); opacity:.3; } 50%{ transform:scale(1.5); opacity:0; } }

.hotspot-panel {
  position: absolute;
  top: calc(100% + 10px); left: 50%;
  transform: translateX(-50%);
  width: 240px;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  box-shadow: 0 8px 32px rgba(0,0,0,.5);
  z-index: 20;
  display: flex; gap: .75rem; align-items: flex-start;
  padding: 1rem;
}
.hotspot-panel[hidden] { display: none; }
.hotspot-panel.panel--flip-x { left: auto; right: 50%; transform: translateX(50%); }
.hotspot-panel.panel--flip-y { top: auto; bottom: calc(100% + 10px); }
.hotspot-product-img { width: 64px; height: 64px; object-fit: cover; flex-shrink: 0; }
.hotspot-product-img-link { flex-shrink: 0; display: block; }
.hotspot-product-info { display: flex; flex-direction: column; gap: .3rem; flex: 1; min-width: 0; }
.hotspot-product-title { font-family: var(--font-heading); font-size: 1.1rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--color-text); text-decoration: none; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.hotspot-product-price { font-family: var(--font-mono); font-size: 1.1rem; color: var(--color-accent); }
.hotspot-label { font-family: var(--font-heading); font-size: 1.2rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.hotspot-desc { font-size: 1.2rem; color: var(--color-text-muted); margin-top: .25rem; }
.hotspot-close { position: absolute; top: .5rem; right: .5rem; background: none; border: none; color: var(--color-text-muted); cursor: pointer; width: 20px; height: 20px; display: flex; align-items: center; justify-content: center; }
.hotspot-close svg { width: 14px; height: 14px; }
.hotspot-close:hover { color: var(--color-text); }

/* ── Lookbook ── */
.lookbook-grid { display: grid; gap: 3rem; }
.lookbook-grid--1col  { grid-template-columns: 1fr; max-width: 800px; margin: 0 auto; }
.lookbook-grid--2col  { grid-template-columns: 1fr 1fr; }
.lookbook-grid--masonry { columns: 2; column-gap: 2rem; }
.lookbook-item { display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem; align-items: start; }
.lookbook-grid--1col .lookbook-item { grid-template-columns: 1fr 1.2fr; }
.lookbook-grid--2col .lookbook-item, .lookbook-grid--masonry .lookbook-item { grid-template-columns: 1fr; }
.lookbook-media { overflow: hidden; }
.lookbook-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 600ms ease; }
.lookbook-item:hover .lookbook-media img { transform: scale(1.03); }
.lookbook-placeholder { width: 100%; }
.lookbook-content { padding-top: .5rem; }
.lookbook-look-num { font-family: var(--font-mono); font-size: 1rem; letter-spacing: .18em; text-transform: uppercase; color: var(--color-accent); display: block; margin-bottom: .5rem; }
.lookbook-heading { font-family: var(--font-heading); font-size: 1.8rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; margin-bottom: .75rem; }
.lookbook-desc { color: var(--color-text-muted); font-size: 1.3rem; line-height: 1.7; margin-bottom: 1.25rem; }
.lookbook-products { display: flex; flex-direction: column; gap: .75rem; margin-bottom: 1.25rem; }
.lookbook-product-item { display: flex; align-items: center; gap: .85rem; padding: .75rem; border: 1px solid var(--color-border); background: var(--color-surface); }
.lookbook-product-item img { width: 48px; height: 48px; object-fit: cover; flex-shrink: 0; }
.lookbook-product-info { flex: 1; display: flex; flex-direction: column; gap: .1rem; min-width: 0; }
.lookbook-product-title { font-family: var(--font-heading); font-size: 1.1rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--color-text); text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lookbook-product-title:hover { color: var(--color-accent); }
.lookbook-product-price { font-family: var(--font-mono); font-size: 1.05rem; color: var(--color-accent); }
@media (max-width: 768px) { .lookbook-grid--2col { grid-template-columns: 1fr; } .lookbook-item { grid-template-columns: 1fr !important; } }

/* ── Collection Collage ── */
.collage-grid {
  display: grid;
  gap: .75rem;
  aspect-ratio: 2/1;
}
.collage-grid--2 { grid-template-columns: 1fr 1fr; }
.collage-grid--3 { grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 1fr 1fr; }
.collage-grid--3 .collage-tile--1 { grid-row: 1 / 3; }
.collage-grid--4 { grid-template-columns: 1.5fr 1fr 1fr; grid-template-rows: 1fr 1fr; }
.collage-grid--4 .collage-tile--1 { grid-row: 1 / 3; }
.collage-grid--5 { grid-template-columns: 1fr 1fr 1fr; grid-template-rows: 1fr 1fr; }
.collage-grid--5 .collage-tile--1 { grid-column: 1 / 3; }

.collage-tile-link { display: block; height: 100%; text-decoration: none; }
.collage-tile-media { position: relative; height: 100%; overflow: hidden; }
.collage-tile-media img, .collage-placeholder { width: 100%; height: 100%; object-fit: cover; transition: transform 500ms ease; display: block; }
.collage-tile-link:hover .collage-tile-media img { transform: scale(1.04); }
.collage-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.7) 0%, transparent 60%); display: flex; align-items: flex-end; }
.collage-content { padding: 1.25rem; }
.collage-eyebrow { font-family: var(--font-mono); font-size: .9rem; letter-spacing: .14em; text-transform: uppercase; color: var(--color-accent); display: block; margin-bottom: .2rem; }
.collage-title { font-family: var(--font-heading); font-size: 1.4rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #fff; display: block; }
.collage-price, .collage-cta { font-family: var(--font-mono); font-size: 1.1rem; color: rgba(255,255,255,.75); display: block; margin-top: .2rem; }
.collage-tile-link:hover .collage-cta { color: var(--color-accent); }
@media (max-width: 768px) { .collage-grid { aspect-ratio: auto; } .collage-grid--3,.collage-grid--4,.collage-grid--5 { grid-template-columns: 1fr 1fr; grid-template-rows: auto; } .collage-tile--1 { grid-column: 1 / -1 !important; grid-row: auto !important; } }

/* ── Press Bar ── */
.section-padding--sm { padding: 2rem 0; }
.press-bar-label { font-family: var(--font-mono); font-size: 1rem; letter-spacing: .18em; text-transform: uppercase; color: var(--color-text-muted); text-align: center; margin-bottom: 1.5rem; }
.press-bar-logos { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 2.5rem 3.5rem; }
.press-logo-item { display: flex; align-items: center; opacity: .65; transition: opacity 200ms ease; }
.press-logo-item:hover { opacity: 1; }
.press-logo-text { display: block; }

/* ============================================================
   PASS 5 — PRODUCT PAGE: SIZE CHART, COMPLEMENTARY, QTY BREAKS
   ============================================================ */

/* ── Size chart trigger ── */
.size-chart-trigger {
  display: inline-flex; align-items: center; gap: .4rem;
  font-family: var(--font-mono); font-size: 1rem; letter-spacing: .1em; text-transform: uppercase;
  color: var(--color-text-muted);
  background: none; border: none; cursor: pointer; padding: 0;
  text-decoration: underline; text-underline-offset: 3px; margin: .5rem 0 1rem;
  transition: color 150ms ease;
}
.size-chart-trigger:hover { color: var(--color-accent); }

.size-chart-modal .modal-box { max-width: 680px; }
.size-chart-heading {
  font-family: var(--font-heading); font-size: 1.6rem; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase; margin-bottom: 1.5rem;
}
.size-chart-content table { width: 100%; border-collapse: collapse; font-size: 1.3rem; }
.size-chart-content th, .size-chart-content td { padding: .6rem .85rem; text-align: left; border: 1px solid var(--color-border); }
.size-chart-content th { background: var(--color-surface-2); font-family: var(--font-mono); font-size: 1rem; letter-spacing: .1em; text-transform: uppercase; color: var(--color-text-muted); }
.size-chart-content tr:hover td { background: var(--color-surface-2); }

/* ── Complementary products ── */
.complementary-products { margin: 1.5rem 0; }
.cp-inner { border: 1px solid var(--color-border); padding: 1.25rem; }
.cp-eyebrow { margin-bottom: .75rem !important; }
.cp-list { display: flex; flex-direction: column; gap: .5rem; }
.cp-item { display: flex; align-items: center; gap: .75rem; background: var(--color-surface); padding: .6rem; }
.cp-item-link { display: flex; align-items: center; gap: .75rem; text-decoration: none; flex: 1; min-width: 0; }
.cp-img { width: 52px; height: 52px; object-fit: cover; flex-shrink: 0; }
.cp-info { display: flex; flex-direction: column; gap: .1rem; min-width: 0; }
.cp-title { font-family: var(--font-heading); font-size: 1.1rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--color-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cp-item-link:hover .cp-title { color: var(--color-accent); }
.cp-price { font-family: var(--font-mono); font-size: 1rem; color: var(--color-accent); }
.cp-add { flex-shrink: 0; }

/* ── Shop Pay Installments (Shopify-rendered component styling) ── */
.shop-pay-installments { margin: .75rem 0; font-size: 1.2rem; color: var(--color-text-muted); }
.shop-pay-installments a { color: #5a31f4; }
shopify-payment-terms { display: block; }

/* ── Quantity price breaks ── */
.qty-breaks { margin: 1rem 0; }
.qty-breaks-heading { margin-bottom: .5rem; }
.qty-breaks-table { width: 100%; border-collapse: collapse; font-size: 1.2rem; }
.qty-breaks-table th { font-family: var(--font-mono); font-size: .95rem; letter-spacing: .1em; text-transform: uppercase; color: var(--color-text-muted); padding: .4rem .85rem; text-align: left; border-bottom: 1px solid var(--color-border); }
.qty-breaks-table td { padding: .45rem .85rem; border-bottom: 1px solid var(--color-border); }
.qty-breaks-table tr:last-child td { border-bottom: none; }
.qty-breaks-table tr:hover td { background: var(--color-surface-2); }

/* ============================================================
   PASS 6 — CONVERSION: AGE VERIFIER, COOKIE BANNER,
   CART UPSELL, STOCK URGENCY
   ============================================================ */

/* ── Age Verifier ── */
.age-verifier-overlay {
  position: fixed; inset: 0;
  background: var(--color-overlay);
  z-index: 9999;
  display: flex; align-items: center; justify-content: center;
  padding: 1.5rem;
}
.age-verifier-overlay[hidden] { display: none; }
.age-verifier-box {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  max-width: 440px; width: 100%;
  padding: 3rem 2.5rem;
  text-align: center;
  position: relative;
}
.age-verifier-box::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: var(--color-accent);
}
.age-verifier-logo { max-height: 56px; width: auto; margin: 0 auto 2rem; display: block; }
.age-verifier-logo-text { font-family: var(--font-heading); font-size: 2rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 2rem; }
.age-verifier-heading {
  font-family: var(--font-heading); font-size: 1.8rem; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase; margin-bottom: .75rem;
}
.age-verifier-desc { color: var(--color-text-muted); font-size: 1.3rem; line-height: 1.7; margin-bottom: 2rem; }
.age-verifier-actions { display: flex; flex-direction: column; gap: .75rem; }
.age-verify-yes, .age-verify-no { width: 100%; justify-content: center; }
.age-verifier-note { font-size: 1.1rem; color: var(--color-text-muted); margin-top: 1.25rem; line-height: 1.6; }
.age-verifier-blocked {
  position: fixed; inset: 0;
  background: var(--color-bg);
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  text-align: center; padding: 2rem;
  z-index: 9999;
}
.age-verifier-blocked[hidden] { display: none; }

/* ── Cookie Banner ── */
.cookie-banner {
  position: fixed; bottom: 0; left: 0; right: 0;
  background: var(--color-surface);
  border-top: 2px solid var(--color-accent);
  z-index: 8000;
  transform: translateY(100%);
  transition: transform 400ms cubic-bezier(.22,1,.36,1);
  box-shadow: 0 -8px 32px rgba(0,0,0,.4);
}
.cookie-banner.visible { transform: translateY(0); }
.cookie-banner-inner {
  max-width: var(--page-width); margin: 0 auto;
  padding: 1.25rem var(--page-padding);
  display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap;
}
.cookie-banner-text { flex: 1; min-width: 240px; }
.cookie-banner-message { font-size: 1.3rem; color: var(--color-text-muted); line-height: 1.6; margin-bottom: .25rem; }
.cookie-policy-link {
  font-family: var(--font-mono); font-size: 1rem; letter-spacing: .08em;
  color: var(--color-accent); text-decoration: none;
  display: inline-flex; align-items: center; gap: .3rem;
}
.cookie-policy-link:hover { text-decoration: underline; }
.cookie-policy-link svg { width: 11px; height: 11px; }
.cookie-banner-actions { display: flex; gap: .75rem; align-items: center; flex-shrink: 0; }

/* ── Cart Upsell ── */
.cart-upsell { border-top: 1px solid var(--color-border); padding-bottom: .5rem; }
.cart-upsell-heading { font-size: 1rem !important; }
.cart-upsell-list { display: flex; flex-direction: column; gap: .5rem; padding: 0 1.5rem; }
.cart-upsell-item {
  display: flex; align-items: center; gap: .75rem;
  background: var(--color-surface-2);
  padding: .6rem;
}
.cart-upsell-item img { width: 52px; height: 52px; object-fit: cover; flex-shrink: 0; }
.cart-upsell-info { flex: 1; display: flex; flex-direction: column; gap: .1rem; min-width: 0; }
.cart-upsell-title {
  font-family: var(--font-heading); font-size: 1.05rem;
  font-weight: 600; letter-spacing: .04em; text-transform: uppercase;
  color: var(--color-text); text-decoration: none;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.cart-upsell-title:hover { color: var(--color-accent); }
.cart-upsell-price { font-family: var(--font-mono); font-size: 1rem; color: var(--color-accent); }

/* ── Stock Urgency ── */
.stock-urgency {
  display: flex; align-items: center; gap: .5rem;
  font-family: var(--font-mono); font-size: 1.1rem;
  letter-spacing: .08em; text-transform: uppercase;
  color: var(--color-danger);
  margin: .5rem 0 1rem;
}
.stock-urgency-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--color-danger);
  animation: blink 1.4s ease-in-out infinite;
  flex-shrink: 0;
}
@keyframes blink { 0%,100%{ opacity:1; } 50%{ opacity:.2; } }
.sold-counter {
  font-size: 1.2rem; color: var(--color-text-muted);
  margin: 0 0 .75rem;
}

/* ============================================================
   PASS 7–8 CSS: INFINITE SCROLL, CART EXTRAS, PICKUP,
   PARALLAX, TESTIMONIALS SLIDER, SHOPPABLE VIDEO, COMPARISON
   ============================================================ */

/* ── Infinite scroll ── */
.infinite-sentinel { display: flex; justify-content: center; padding: 3rem 0; min-height: 80px; }
.infinite-loader { display: flex; align-items: center; gap: .75rem; color: var(--color-text-muted); font-family: var(--font-mono); font-size: 1.1rem; letter-spacing: .08em; }
.infinite-end { font-family: var(--font-mono); font-size: 1.1rem; letter-spacing: .1em; text-transform: uppercase; color: var(--color-text-muted); text-align: center; }

/* ── Cart extras ── */
.cart-extras { border-top: 1px solid var(--color-border); padding: 1.5rem; display: flex; flex-direction: column; gap: 1.25rem; }
.cart-notes-label { font-family: var(--font-mono); font-size: 1rem; letter-spacing: .12em; text-transform: uppercase; color: var(--color-text-muted); display: block; margin-bottom: .5rem; }
.cart-notes-input { width: 100%; background: var(--color-surface-2); border: 1px solid var(--color-border); color: var(--color-text); padding: .75rem; font-family: inherit; font-size: 1.3rem; resize: vertical; min-height: 80px; }
.cart-notes-input:focus { outline: 2px solid var(--color-accent); outline-offset: 2px; border-color: transparent; }
.gift-wrap-label { display: flex; align-items: flex-start; gap: .75rem; cursor: pointer; }
.gift-wrap-check { position: absolute; opacity: 0; width: 0; height: 0; }
.gift-wrap-box { width: 18px; height: 18px; border: 2px solid var(--color-border); background: transparent; flex-shrink: 0; margin-top: .1rem; transition: background 150ms, border-color 150ms; position: relative; display: flex; align-items: center; justify-content: center; }
.gift-wrap-check:checked + .gift-wrap-box { background: var(--color-accent); border-color: var(--color-accent); }
.gift-wrap-check:checked + .gift-wrap-box::after { content: ''; display: block; width: 5px; height: 9px; border: 2px solid var(--color-accent-text); border-top: none; border-left: none; transform: rotate(45deg) translateY(-1px); }
.gift-wrap-check:focus-visible + .gift-wrap-box { outline: 2px solid var(--color-accent); outline-offset: 3px; }
.gift-wrap-text { font-size: 1.3rem; line-height: 1.5; }
.gift-wrap-price { color: var(--color-text-muted); font-family: var(--font-mono); font-size: 1.1rem; }
.gift-wrap-note { color: var(--color-text-muted); font-size: 1.15rem; margin-top: .3rem; line-height: 1.6; padding-left: 1.7rem; }

/* ── Pickup availability ── */
.pickup-availability { margin: 1rem 0; font-size: 1.25rem; }
.pickup-checking { display: flex; align-items: center; gap: .5rem; color: var(--color-text-muted); font-family: var(--font-mono); font-size: 1rem; letter-spacing: .08em; }
.pickup-available { border: 1px solid var(--color-border); padding: 1rem; }
.pickup-header { display: flex; align-items: center; gap: .4rem; font-family: var(--font-mono); font-size: 1.05rem; letter-spacing: .08em; text-transform: uppercase; color: var(--color-success); margin-bottom: .35rem; }
.pickup-header strong { color: var(--color-text); font-weight: 600; }
.pickup-detail { color: var(--color-text-muted); font-size: 1.2rem; margin-bottom: .5rem; }
.pickup-more-btn { font-family: var(--font-mono); font-size: 1rem; letter-spacing: .08em; text-transform: uppercase; color: var(--color-accent); background: none; border: none; cursor: pointer; padding: 0; text-decoration: underline; text-underline-offset: 3px; }
.pickup-locations { list-style: none; margin-top: .5rem; display: flex; flex-direction: column; gap: .35rem; }
.pickup-locations li { font-size: 1.2rem; color: var(--color-text-muted); padding-left: .75rem; border-left: 2px solid var(--color-border); }
.pickup-unavailable { display: flex; align-items: center; gap: .4rem; color: var(--color-text-muted); font-size: 1.2rem; }

/* ── Testimonials Slider ── */
.ts-track-wrap { position: relative; overflow: hidden; }
.ts-track {
  display: flex;
  transition: transform 500ms cubic-bezier(.4,0,.2,1);
  will-change: transform;
}
.ts-slide {
  min-width: 100%;
  padding: .5rem;
  box-sizing: border-box;
}
.ts-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  padding: 2.5rem;
  position: relative;
  max-width: 780px;
  margin: 0 auto;
}
.ts-card::before { content: '\201C'; position: absolute; top: 1rem; left: 1.75rem; font-size: 8rem; line-height: 1; color: var(--color-accent); opacity: .15; font-family: Georgia, serif; pointer-events: none; }
.ts-stars { margin-bottom: 1.25rem; }
.ts-star--filled { color: var(--color-accent); }
.ts-star { color: var(--color-border); font-size: 1.6rem; }
.ts-quote { font-size: 1.5rem; line-height: 1.8; color: var(--color-text); margin-bottom: 1.75rem; position: relative; z-index: 1; }
.ts-author { display: flex; align-items: center; gap: 1rem; }
.ts-avatar { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.ts-avatar--initials { background: var(--color-accent); display: flex; align-items: center; justify-content: center; font-family: var(--font-heading); font-size: 1.6rem; font-weight: 700; color: var(--color-accent-text); }
.ts-name { font-family: var(--font-heading); font-size: 1.2rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; display: block; }
.ts-title { font-size: 1.1rem; color: var(--color-text-muted); display: block; margin-top: .15rem; }
.ts-verified { display: flex; align-items: center; gap: .3rem; font-family: var(--font-mono); font-size: .9rem; letter-spacing: .1em; text-transform: uppercase; color: var(--color-success); margin-top: .3rem; }
.ts-verified svg { width: 12px; height: 12px; }
.ts-product-link { display: flex; align-items: center; gap: .6rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--color-border); text-decoration: none; color: var(--color-text-muted); font-size: 1.15rem; transition: color 150ms ease; }
.ts-product-link:hover { color: var(--color-accent); }
.ts-product-link img { width: 36px; height: 36px; object-fit: cover; }
.ts-controls { display: flex; align-items: center; justify-content: center; gap: 1rem; margin-top: 1.5rem; }
.ts-dots { display: flex; gap: .4rem; }
.ts-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--color-border); border: none; cursor: pointer; padding: 0;
  transition: background 200ms ease, transform 200ms ease;
}
.ts-dot.active { background: var(--color-accent); transform: scale(1.3); }
.ts-dot:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 3px; }
.ts-prev, .ts-next { flex-shrink: 0; }

/* ── Shoppable Video ── */
.sv-layout { display: grid; gap: 3rem; align-items: start; }
.sv-layout--video-left  { grid-template-columns: 3fr 2fr; }
.sv-layout--video-right { grid-template-columns: 2fr 3fr; }
.sv-layout--video-left .sv-products  { order: 2; }
.sv-layout--video-right .sv-video-wrap { order: 2; }
.sv-layout--video-top   { grid-template-columns: 1fr; }
@media (max-width: 900px) { .sv-layout { grid-template-columns: 1fr !important; } .sv-layout--video-right .sv-video-wrap { order: 0; } }

.sv-video-wrap { position: relative; }
.sv-poster {
  position: relative;
  aspect-ratio: 16/9;
  background-size: cover;
  background-position: center;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
}
.sv-poster::before { content: ''; position: absolute; inset: 0; background: rgba(0,0,0,.35); }
.sv-play-btn {
  position: relative; z-index: 1;
  width: 72px; height: 72px; border-radius: 50%;
  background: var(--color-accent); border: 3px solid rgba(255,255,255,.3);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  transition: transform 200ms ease, background 150ms ease;
  box-shadow: 0 4px 24px rgba(0,0,0,.4);
}
.sv-play-btn:hover { transform: scale(1.1); background: var(--color-accent-hover); }
.sv-play-btn svg { width: 28px; height: 28px; color: var(--color-accent-text); margin-left: 4px; }
.sv-iframe-wrap { aspect-ratio: 16/9; }
.sv-iframe-wrap--auto { display: block; }
.sv-iframe { width: 100%; height: 100%; border: none; display: block; }
.sv-html5 { width: 100%; aspect-ratio: 16/9; }
.sv-placeholder { aspect-ratio: 16/9; display: flex; align-items: center; justify-content: center; background: var(--color-surface); }
.sv-placeholder-svg { width: 100%; height: 100%; }
.sv-products-eyebrow { margin-bottom: 1rem !important; }
.sv-product-list { display: flex; flex-direction: column; gap: .6rem; }
.sv-product-item { display: flex; align-items: center; gap: .85rem; background: var(--color-surface); padding: .75rem; }
.sv-product-item img { width: 56px; height: 56px; object-fit: cover; flex-shrink: 0; }
.sv-product-img-link { display: block; flex-shrink: 0; }
.sv-product-info { flex: 1; display: flex; flex-direction: column; gap: .1rem; min-width: 0; }
.sv-product-title { font-family: var(--font-heading); font-size: 1.15rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--color-text); text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sv-product-title:hover { color: var(--color-accent); }
.sv-product-price { font-family: var(--font-mono); font-size: 1.05rem; color: var(--color-accent); }

/* ── Comparison Table ── */
.cmp-scroll-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.cmp-table { width: 100%; min-width: 640px; border-collapse: collapse; }
.cmp-th {
  padding: 1.5rem 1.25rem 1.25rem;
  text-align: center; vertical-align: top;
  border-bottom: 2px solid var(--color-border);
  position: relative;
}
.cmp-th--feature { text-align: left; font-family: var(--font-mono); font-size: 1rem; letter-spacing: .12em; text-transform: uppercase; color: var(--color-text-muted); min-width: 180px; }
.cmp-th--featured { background: var(--color-surface); border-left: 2px solid var(--color-accent); border-right: 2px solid var(--color-accent); border-top: 3px solid var(--color-accent); }
.cmp-badge { display: block; font-family: var(--font-mono); font-size: .85rem; letter-spacing: .12em; text-transform: uppercase; background: var(--color-accent); color: var(--color-accent-text); padding: .2rem .6rem; margin-bottom: .75rem; }
.cmp-col-product { display: flex; flex-direction: column; align-items: center; gap: .5rem; }
.cmp-col-img { width: 80px; height: 80px; object-fit: cover; }
.cmp-col-name { font-family: var(--font-heading); font-size: 1.3rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--color-text); text-decoration: none; display: block; text-align: center; }
.cmp-col-name:hover { color: var(--color-accent); }
.cmp-col-price { font-family: var(--font-mono); font-size: 1.3rem; color: var(--color-accent); }
.cmp-oos { font-family: var(--font-mono); font-size: 1rem; color: var(--color-text-muted); text-transform: uppercase; letter-spacing: .1em; }
.cmp-row { border-bottom: 1px solid var(--color-border); }
.cmp-row--highlight { background: var(--color-surface); }
.cmp-row--highlight .cmp-td--label { font-weight: 700; color: var(--color-text); }
.cmp-td { padding: .9rem 1.25rem; text-align: center; vertical-align: middle; font-size: 1.3rem; }
.cmp-td--label { text-align: left; }
.cmp-td--featured { background: var(--color-surface); border-left: 2px solid var(--color-accent); border-right: 2px solid var(--color-accent); }
.cmp-feature-label { display: block; font-weight: 500; color: var(--color-text); }
.cmp-feature-desc { display: block; font-size: 1.1rem; color: var(--color-text-muted); margin-top: .15rem; }
.cmp-check { display: flex; align-items: center; justify-content: center; color: var(--color-success); }
.cmp-check svg { width: 18px; height: 18px; }
.cmp-dash { color: var(--color-text-muted); font-size: 1.4rem; }
.cmp-value { color: var(--color-text); }

/* ============================================================
   PASS 9 CSS: STEPS/TIMELINE, SUBCOLLECTION NAV, PROMO TILES,
   MARKETS SELECTORS
   ============================================================ */

/* ── Steps / Timeline ── */
.steps-layout--horizontal {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 0;
  position: relative;
}
.steps-layout--horizontal .step-item { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; padding: 0 1rem 2rem; }
.steps-layout--vertical .step-item { display: grid; grid-template-columns: 60px 1fr; gap: 1.5rem; padding-bottom: 2.5rem; position: relative; }
.steps-layout--alternating .step-item { display: grid; grid-template-columns: 1fr 60px 1fr; gap: 1.5rem; padding-bottom: 3rem; }
.steps-layout--alternating .step-item:nth-child(even) .step-body { grid-column: 1; grid-row: 1; text-align: right; }
.steps-layout--alternating .step-item:nth-child(even) .step-marker { grid-column: 2; grid-row: 1; }
.steps-layout--alternating .step-item:nth-child(odd) .step-body { grid-column: 3; }

.step-marker {
  width: 56px; height: 56px;
  background: var(--color-surface);
  border: 2px solid var(--color-accent);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  color: var(--color-accent);
  position: relative; z-index: 1;
}
.step-marker svg { width: 22px; height: 22px; }
.step-number { font-family: var(--font-mono); font-size: 1.4rem; font-weight: 700; letter-spacing: .06em; }

/* Connector line */
.step-connector {
  position: absolute;
  background: var(--color-border);
}
.steps-layout--horizontal .step-connector {
  top: 28px; left: calc(50% + 28px); right: calc(-50% + 28px);
  height: 1px;
}
.steps-layout--vertical .step-connector {
  left: 27px; top: 56px; bottom: -2.5rem;
  width: 2px;
}

.step-label { font-family: var(--font-mono); font-size: .9rem; letter-spacing: .16em; text-transform: uppercase; color: var(--color-accent); display: block; margin: 1rem 0 .4rem; }
.step-title { font-family: var(--font-heading); font-size: 1.5rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; margin-bottom: .6rem; }
.step-desc { color: var(--color-text-muted); font-size: 1.3rem; line-height: 1.7; }
.step-image { margin-top: 1rem; overflow: hidden; }
.step-image img { width: 100%; border: 1px solid var(--color-border); }
@media (max-width: 768px) { .steps-layout--horizontal { grid-template-columns: 1fr; } .steps-layout--alternating { grid-template-columns: 1fr; } .steps-layout--alternating .step-item { grid-template-columns: 60px 1fr; } .steps-layout--alternating .step-item:nth-child(even) .step-body { grid-column: 2; grid-row: 1; text-align: left; } }

/* ── Subcollection nav ── */
.subcollection-nav {
  display: flex; flex-wrap: wrap; gap: .5rem;
  margin-bottom: 2rem;
  border-bottom: 1px solid var(--color-border);
  padding-bottom: 0;
}
.sub-nav-link {
  font-family: var(--font-mono); font-size: 1.05rem;
  letter-spacing: .1em; text-transform: uppercase;
  color: var(--color-text-muted); text-decoration: none;
  padding: .65rem 1.25rem;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  transition: color 150ms ease, border-color 150ms ease;
  white-space: nowrap;
}
.sub-nav-link:hover { color: var(--color-text); }
.sub-nav-link.active { color: var(--color-accent); border-bottom-color: var(--color-accent); }
.sub-nav-link:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }

/* ── Collection promo tiles ── */
.collection-promo-tile {
  position: relative; overflow: hidden;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  display: flex; flex-direction: column;
}
.cpt-media { aspect-ratio: 1/1; overflow: hidden; }
.cpt-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 500ms ease; }
.collection-promo-tile:hover .cpt-media img { transform: scale(1.04); }
.cpt-body {
  padding: 1.25rem;
  display: flex; flex-direction: column; gap: .6rem;
  flex: 1; justify-content: center;
  background: linear-gradient(to top, var(--color-surface) 60%, transparent);
}
.cpt-eyebrow { font-family: var(--font-mono); font-size: .9rem; letter-spacing: .16em; text-transform: uppercase; color: var(--color-accent); }
.cpt-heading { font-family: var(--font-heading); font-size: 1.6rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }

/* ── Markets: currency / language select ── */
.currency-select {
  background: transparent;
  border: 1px solid var(--color-border);
  color: var(--color-text);
  font-family: var(--font-mono);
  font-size: 1rem;
  letter-spacing: .08em;
  padding: .35rem .5rem;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  padding-right: 1.5rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none' stroke='%23888' stroke-width='2'%3E%3Cpolyline points='1 1 5 5 9 1'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right .4rem center;
  transition: border-color 150ms ease;
}
.currency-select:hover, .currency-select:focus { border-color: var(--color-accent); outline: none; }
.currency-selector, .language-selector { display: flex; align-items: center; }

/* Also wire into footer */
.footer-markets { display: flex; align-items: center; gap: 1rem; margin-top: 1.5rem; flex-wrap: wrap; }

/* ============================================================
   PASS 10 — PRODUCT COMPARISON
   ============================================================ */

/* ── Compare button on cards / product page ── */
.compare-btn {
  display: inline-flex; align-items: center; gap: .35rem;
  font-family: var(--font-mono); font-size: .95rem;
  letter-spacing: .1em; text-transform: uppercase;
  color: var(--color-text-muted);
  background: none; border: none; cursor: pointer; padding: .25rem 0;
  transition: color 150ms ease;
}
.compare-btn:hover { color: var(--color-text); }
.compare-btn--active { color: var(--color-accent); }
.compare-btn--active:hover { color: var(--color-danger); }
.compare-btn svg { flex-shrink: 0; transition: stroke 150ms ease; }
.pc-compare { padding: .4rem 1rem .8rem; border-top: 1px solid var(--color-border); margin-top: auto; }

/* ── Compare bar (floating) ── */
.compare-bar {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  background: var(--color-surface);
  border-top: 2px solid var(--color-accent);
  z-index: 8500;
  box-shadow: 0 -8px 32px rgba(0,0,0,.5);
  transform: translateY(100%);
  transition: transform 350ms cubic-bezier(.22,1,.36,1);
}
.compare-bar:not([hidden]) { transform: translateY(0); }
.compare-bar[hidden] { display: block !important; transform: translateY(100%); pointer-events: none; }
.compare-bar-inner {
  display: flex; align-items: center; gap: 1.5rem;
  padding: 1rem var(--page-padding);
  flex-wrap: wrap;
}
.compare-bar-slots { display: flex; gap: .75rem; flex: 1; flex-wrap: wrap; min-width: 0; }
.cmp-slot {
  display: flex; align-items: center; gap: .5rem;
  background: var(--color-surface-2);
  border: 1px solid var(--color-border);
  padding: .4rem .6rem;
  max-width: 160px;
}
.cmp-slot img { width: 36px; height: 36px; object-fit: cover; flex-shrink: 0; }
.cmp-slot-title { font-size: 1.1rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 1; color: var(--color-text); }
.cmp-slot-remove {
  background: none; border: none; cursor: pointer;
  color: var(--color-text-muted); font-size: 1.3rem; line-height: 1;
  padding: 0 .15rem; flex-shrink: 0;
  transition: color 120ms ease;
}
.cmp-slot-remove:hover { color: var(--color-danger); }
.compare-bar-actions { display: flex; align-items: center; gap: .75rem; flex-shrink: 0; flex-wrap: wrap; }
.compare-count-label { font-family: var(--font-mono); font-size: 1rem; letter-spacing: .1em; text-transform: uppercase; color: var(--color-text-muted); }
.compare-clear-btn { padding: .6rem 1rem; }
.compare-remove-btn {
  font-family: var(--font-mono); font-size: .9rem; letter-spacing: .1em;
  color: var(--color-text-muted); background: none; border: none; cursor: pointer;
  padding: .2rem 0; text-decoration: underline; text-underline-offset: 2px;
  transition: color 120ms ease;
}
.compare-remove-btn:hover { color: var(--color-danger); }

/* Shake animation when max exceeded */
@keyframes cmp-shake { 0%,100%{transform:translateX(0)} 20%,60%{transform:translateX(-6px)} 40%,80%{transform:translateX(6px)} }
.compare-bar--shake { animation: cmp-shake 450ms ease; }

/* ── Compare page specific ── */
.compare-loading {
  display: flex; flex-direction: column; align-items: center;
  gap: 1.5rem; padding: 5rem 0;
  color: var(--color-text-muted);
  font-family: var(--font-mono); font-size: 1.2rem; letter-spacing: .1em;
}
.compare-empty {
  display: flex; flex-direction: column; align-items: center;
  gap: 1rem; padding: 5rem 0; text-align: center;
  color: var(--color-text-muted);
}
.compare-empty svg { color: var(--color-border); margin-bottom: .5rem; }
.compare-empty h2 { font-family: var(--font-heading); font-size: 2rem; letter-spacing: .06em; text-transform: uppercase; color: var(--color-text); }
.compare-empty p { font-size: 1.4rem; max-width: 400px; }
.compare-table-wrap { overflow-x: auto; padding-bottom: 2rem; }
.compare-page-table { min-width: 560px; }
.compare-page-table .cmp-th { min-width: 200px; }
.compare-page-actions { text-align: center; margin-top: 2rem; }

/* ============================================================
   PASS 11 — ANNOUNCEMENT BAR
   ============================================================ */
:root { --ann-height: 0px; }

.announcement-bar {
  position: relative;
  display: flex; align-items: center; justify-content: center;
  min-height: 40px; padding: .55rem 3rem;
  font-family: var(--font-mono); font-size: 1.05rem;
  letter-spacing: .1em; text-transform: uppercase;
  text-align: center;
  z-index: 1000;
}
.announcement-bar-text { display: flex; align-items: center; gap: .5rem; justify-content: center; }
.ann-icon { display: flex; align-items: center; flex-shrink: 0; }
.ann-icon svg { width: 14px; height: 14px; }
.ann-link { color: inherit; text-decoration: underline; text-underline-offset: 3px; transition: opacity 150ms ease; }
.ann-link:hover { opacity: .75; }
.ann-dismiss { color: inherit; opacity: .7; }
.ann-dismiss:hover { opacity: 1; }

/* Multi-slide */
.ann-slider { position: relative; overflow: hidden; flex: 1; }
.ann-slide { display: none; align-items: center; justify-content: center; gap: .5rem; }
.ann-slide.active { display: flex; }
.ann-controls { display: flex; align-items: center; gap: .25rem; position: absolute; left: .75rem; top: 50%; transform: translateY(-50%); }
.ann-prev, .ann-next {
  background: none; border: none; cursor: pointer;
  font-size: 1.4rem; line-height: 1; padding: .2rem .4rem;
  color: inherit; opacity: .7; transition: opacity 150ms ease;
}
.ann-prev:hover, .ann-next:hover { opacity: 1; }

/* Push header down by ann-bar height */
.site-header { top: var(--ann-height, 0px) !important; }

/* ============================================================
   PASS 12 — PRICING TABLE
   ============================================================ */
.pricing-toggle {
  display: flex; align-items: center; justify-content: center; gap: 1rem;
  margin-bottom: 3rem;
}
.pt-toggle-label { font-family: var(--font-mono); font-size: 1rem; letter-spacing: .1em; text-transform: uppercase; color: var(--color-text-muted); transition: color 200ms ease; }
.pt-toggle-label.active { color: var(--color-text); }
.pt-save-badge { display: inline-block; background: var(--color-accent); color: var(--color-accent-text); font-size: .8rem; padding: .15rem .4rem; letter-spacing: .08em; margin-left: .4rem; }
.pt-switch { position: relative; display: inline-block; width: 44px; height: 24px; }
.pt-switch input { opacity: 0; width: 0; height: 0; }
.pt-slider { position: absolute; inset: 0; background: var(--color-border); cursor: pointer; transition: background 200ms ease; border-radius: 24px; }
.pt-slider::before { content: ''; position: absolute; height: 18px; width: 18px; left: 3px; bottom: 3px; background: var(--color-text); border-radius: 50%; transition: transform 200ms ease; }
.pt-switch input:checked + .pt-slider { background: var(--color-accent); }
.pt-switch input:checked + .pt-slider::before { transform: translateX(20px); }
.pt-switch input:focus-visible + .pt-slider { outline: 2px solid var(--color-accent); outline-offset: 3px; }

.pt-grid { display: grid; gap: 1.5rem; align-items: start; }
.pt-grid--2 { grid-template-columns: repeat(2, 1fr); }
.pt-grid--3 { grid-template-columns: repeat(3, 1fr); }
.pt-grid--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 900px) { .pt-grid { grid-template-columns: 1fr 1fr !important; } }
@media (max-width: 600px) { .pt-grid { grid-template-columns: 1fr !important; } }

.pt-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  padding: 2.5rem 2rem;
  position: relative;
  display: flex; flex-direction: column; gap: 1.5rem;
  transition: transform 250ms ease, box-shadow 250ms ease;
}
.pt-card:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(0,0,0,.4); }
.pt-card--featured {
  border-color: var(--color-accent);
  border-top-width: 3px;
  background: var(--color-surface-2);
}
.pt-featured-badge {
  position: absolute; top: -1px; right: 1.5rem;
  background: var(--color-accent); color: var(--color-accent-text);
  font-family: var(--font-mono); font-size: .8rem;
  letter-spacing: .12em; text-transform: uppercase;
  padding: .25rem .7rem;
}
.pt-icon { color: var(--color-accent); margin-bottom: -.5rem; }
.pt-icon svg { width: 28px; height: 28px; }
.pt-plan-name { font-family: var(--font-heading); font-size: 1.8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.pt-plan-desc { color: var(--color-text-muted); font-size: 1.25rem; line-height: 1.6; }
.pt-price { display: flex; align-items: baseline; gap: .15rem; }
.pt-currency { font-family: var(--font-mono); font-size: 1.6rem; color: var(--color-text-muted); align-self: flex-start; margin-top: .6rem; }
.pt-amount { font-family: var(--font-heading); font-size: 4rem; font-weight: 800; letter-spacing: -.02em; color: var(--color-text); line-height: 1; }
.pt-period { font-family: var(--font-mono); font-size: 1.1rem; color: var(--color-text-muted); letter-spacing: .08em; }
.pt-price-note { font-size: 1.1rem; color: var(--color-text-muted); margin-top: -.75rem; }
.pt-features { display: flex; flex-direction: column; gap: .6rem; }
.pt-feature { display: flex; align-items: flex-start; gap: .6rem; font-size: 1.25rem; line-height: 1.5; }
.pt-feature-icon { flex-shrink: 0; margin-top: .15rem; }
.pt-feature-icon svg { width: 14px; height: 14px; color: var(--color-success); }
.pt-feature--unavailable { color: var(--color-text-muted); }
.pt-feature--unavailable .pt-feature-icon { color: var(--color-border); }

/* ============================================================
   PASS 13 — QUICK VIEW, SEARCH PAGE, QV LAYOUT
   ============================================================ */

/* ── Quick View layout ── */
.qv-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
@media (max-width: 600px) { .qv-layout { grid-template-columns: 1fr; } }
.qv-main-img { width: 100%; height: auto; display: block; }
.qv-thumbs { display: flex; gap: .4rem; margin-top: .5rem; flex-wrap: wrap; }
.qv-thumb { background: none; border: 2px solid transparent; padding: 0; cursor: pointer; transition: border-color 150ms ease; }
.qv-thumb.active { border-color: var(--color-accent); }
.qv-thumb img { width: 56px; height: 56px; object-fit: cover; display: block; }
.qv-title { font-family: var(--font-heading); font-size: 1.8rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.qv-desc { font-size: 1.25rem; color: var(--color-text-muted); line-height: 1.7; }

/* ── Search page ── */
.search-page-bar { max-width: 640px; margin: 1.5rem 0 2rem; }
.search-page-input-wrap { position: relative; display: flex; align-items: center; gap: .5rem; }
.search-page-input-wrap input[type="search"] {
  flex: 1;
  padding-right: 2.5rem;
}
.search-clear-btn {
  position: absolute; right: 4.5rem; top: 50%; transform: translateY(-50%);
  color: var(--color-text-muted); display: flex; align-items: center;
  transition: color 150ms ease; text-decoration: none;
}
.search-clear-btn svg { width: 16px; height: 16px; }
.search-clear-btn:hover { color: var(--color-text); }
.search-page-submit { flex-shrink: 0; padding: 0 1.25rem; height: 48px; display: flex; align-items: center; justify-content: center; }
.search-page-submit svg { width: 18px; height: 18px; }
.search-results-header { margin-bottom: 1.5rem; }
.search-results-count { font-family: var(--font-mono); font-size: 1.1rem; letter-spacing: .1em; text-transform: uppercase; color: var(--color-text-muted); margin-bottom: .75rem; }
.search-type-tabs { display: flex; gap: .25rem; flex-wrap: wrap; border-bottom: 1px solid var(--color-border); }
.search-type-tab { font-family: var(--font-mono); font-size: 1rem; letter-spacing: .1em; text-transform: uppercase; color: var(--color-text-muted); text-decoration: none; padding: .65rem 1.25rem; border-bottom: 2px solid transparent; margin-bottom: -1px; transition: color 150ms ease, border-color 150ms ease; }
.search-type-tab.active { color: var(--color-accent); border-bottom-color: var(--color-accent); }
.search-type-tab:hover { color: var(--color-text); }
.search-article-card, .search-page-card { background: var(--color-surface); border: 1px solid var(--color-border); overflow: hidden; }
.search-article-card img { width: 100%; height: 160px; object-fit: cover; display: block; }
.search-article-body, .search-page-card { padding: 1.25rem; display: flex; flex-direction: column; gap: .4rem; }
.search-article-type { font-family: var(--font-mono); font-size: .9rem; letter-spacing: .14em; text-transform: uppercase; color: var(--color-accent); }
.search-article-title { font-family: var(--font-heading); font-size: 1.3rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--color-text); text-decoration: none; }
.search-article-title:hover { color: var(--color-accent); }
.search-article-excerpt { font-size: 1.2rem; color: var(--color-text-muted); line-height: 1.6; }
.search-no-results-page { padding: 3rem 0; }
.search-no-results-page > p { font-size: 1.5rem; color: var(--color-text-muted); }

/* ============================================================
   EMPIRE/WAREHOUSE PARITY — BADGES + BACK TO TOP
   ============================================================ */

/* ── Product badges ── */
.product-badge {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  padding: .25rem .55rem;
  line-height: 1;
  pointer-events: none;
  white-space: nowrap;
}
.badge--card {
  position: absolute;
  top: .75rem;
  left: .75rem;
  z-index: 2;
}
.badge--page {
  margin-bottom: .75rem;
}
.badge--sale        { background: var(--color-danger);  color: #fff; }
.badge--new         { background: var(--color-accent);  color: #000; }
.badge--best-seller { background: var(--color-success); color: #000; }
.badge--hot         { background: #e84393;              color: #fff; }
.badge--sold-out    { background: var(--color-border);  color: var(--color-text-muted); }
.badge--custom      { background: var(--color-surface-2); color: var(--color-accent); border: 1px solid var(--color-accent); }

/* Ensure .pc-media is position:relative for absolute badge */
.pc-media { position: relative; overflow: hidden; }

/* ── Back to top ── */
.back-to-top {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  width: 44px;
  height: 44px;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  color: var(--color-text);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 4000;
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 250ms ease, transform 250ms ease, background 150ms ease, border-color 150ms ease;
  pointer-events: none;
}
.back-to-top:not([hidden]) {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.back-to-top:hover {
  background: var(--color-accent);
  border-color: var(--color-accent);
  color: #000;
}
@media (max-width: 768px) {
  .back-to-top { bottom: 5rem; right: 1rem; width: 40px; height: 40px; }
}

/* ============================================================
   EMPIRE/WAREHOUSE PARITY — PROMO POPUP + QUICK ORDER LIST
   ============================================================ */

/* ── Promo Popup ── */
.promo-popup { position: fixed; inset: 0; z-index: 9000; display: flex; align-items: center; justify-content: center; padding: 1.5rem; }
.promo-popup[hidden] { display: none; }
.promo-popup-overlay { position: absolute; inset: 0; background: rgba(0,0,0,.75); backdrop-filter: blur(4px); }
.promo-popup-box {
  position: relative; z-index: 1;
  background: var(--color-surface);
  border: 1px solid var(--color-accent);
  max-width: 520px; width: 100%;
  display: grid;
  grid-template-columns: 1fr;
  overflow: hidden;
  transform: translateY(24px); opacity: 0;
  transition: transform 300ms cubic-bezier(.22,1,.36,1), opacity 300ms ease;
}
.promo-popup.is-open .promo-popup-box { transform: translateY(0); opacity: 1; }
.promo-popup-box:has(.promo-popup-img) { grid-template-columns: 1fr 1.2fr; }
@media(max-width:600px) { .promo-popup-box { grid-template-columns: 1fr !important; } .promo-popup-img { display: none; } }
.promo-popup-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.promo-popup-close { position: absolute; top: .75rem; right: .75rem; z-index: 2; background: var(--color-surface); }
.promo-popup-content { padding: 2.5rem 2rem; display: flex; flex-direction: column; gap: .75rem; }
.promo-popup-heading { font-size: clamp(1.5rem,3vw,2.2rem) !important; margin-bottom: 0 !important; }
.promo-popup-sub { color: var(--color-text-muted); font-size: 1.3rem; line-height: 1.6; }
.promo-popup-code-wrap { margin: .5rem 0; }
.promo-popup-code-label { font-family: var(--font-mono); font-size: .85rem; letter-spacing: .1em; text-transform: uppercase; color: var(--color-text-muted); margin-bottom: .35rem; }
.promo-popup-code {
  display: inline-flex; align-items: center; gap: .5rem;
  font-family: var(--font-mono); font-size: 1.4rem; letter-spacing: .22em;
  background: var(--color-bg); border: 2px dashed var(--color-accent);
  color: var(--color-accent); padding: .6rem 1rem;
  cursor: pointer; transition: all 150ms ease;
}
.promo-popup-code:hover { background: var(--color-accent); color: #000; }
.promo-popup-form { display: flex; gap: .5rem; margin-top: .25rem; }
.promo-popup-email-input { flex: 1; min-width: 0; }
.promo-popup-submit { flex-shrink: 0; white-space: nowrap; }
.promo-popup-success { color: var(--color-success); font-family: var(--font-mono); font-size: .9rem; letter-spacing: .08em; }
.promo-popup-error   { color: var(--color-danger); font-size: 1.1rem; }
.promo-popup-dismiss { background: none; border: none; cursor: pointer; color: var(--color-text-muted); font-size: 1.1rem; text-decoration: underline; text-underline-offset: 3px; padding: .25rem 0; margin-top: .25rem; transition: color 150ms ease; }
.promo-popup-dismiss:hover { color: var(--color-text); }

/* ── Quick Order List ── */
.qol-table-wrap { overflow-x: auto; }
.qol-table { width: 100%; border-collapse: collapse; min-width: 540px; }
.qol-th {
  font-family: var(--font-mono); font-size: .8rem; letter-spacing: .12em; text-transform: uppercase;
  color: var(--color-text-muted); padding: .65rem 1rem;
  border-bottom: 2px solid var(--color-border); text-align: left;
}
.qol-th--qty, .qol-th--price { text-align: right; }
.qol-td { padding: .65rem 1rem; border-bottom: 1px solid var(--color-border); vertical-align: middle; font-size: 1.25rem; }
.qol-row--oos { opacity: .5; }
.qol-row:hover { background: var(--color-surface-2); }
.qol-product-cell { display: flex; align-items: center; gap: .65rem; }
.qol-img { width: 48px; height: 48px; object-fit: cover; flex-shrink: 0; }
.qol-product-name { color: var(--color-text); text-decoration: none; font-weight: 500; }
.qol-product-name:hover { color: var(--color-accent); }
.qol-product-indent { width: 48px; flex-shrink: 0; }
.qol-variant-name { color: var(--color-text-muted); font-size: 1.1rem; }
.qol-sku { font-family: var(--font-mono); font-size: 1rem; letter-spacing: .1em; color: var(--color-text-muted); }
.qol-price, .qol-td--price { text-align: right; font-family: var(--font-mono); }
.qol-stock-in  { color: var(--color-success); font-size: 1.05rem; }
.qol-stock-low { color: #e8943a; font-size: 1.05rem; }
.qol-stock-out { color: var(--color-text-muted); font-size: 1.05rem; }
.qol-td--stock { display: flex; align-items: center; gap: .4rem; }
.stock-dot { width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; }
.stock-dot--in  { background: var(--color-success); }
.stock-dot--out { background: var(--color-text-muted); }
.qol-qty-input { width: 72px; text-align: center; padding: .4rem .5rem; font-size: 1.2rem; }
.qol-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--color-border); }
.qol-summary { font-family: var(--font-mono); font-size: 1rem; letter-spacing: .08em; color: var(--color-text-muted); }
.qol-add-btn { display: flex; align-items: center; gap: .5rem; }
.qol-add-btn svg { width: 16px; height: 16px; }

/* ── Shipping info block on product page ── */
.shipping-info-block { display: flex; align-items: flex-start; gap: .85rem; padding: 1rem 1.25rem; background: var(--color-surface-2); border-left: 3px solid var(--color-accent); margin: .5rem 0; }
.sib-icon { flex-shrink: 0; color: var(--color-accent); margin-top: .15rem; }
.sib-icon svg { width: 18px; height: 18px; }
.sib-heading { font-family: var(--font-mono); font-size: .85rem; letter-spacing: .12em; text-transform: uppercase; color: var(--color-text); margin-bottom: .25rem; }
.sib-content { font-size: 1.2rem; color: var(--color-text-muted); line-height: 1.6; }
.sib-content p { margin-bottom: .4rem; }
.sib-content p:last-child { margin-bottom: 0; }

/* ── Recently Viewed ── */
.recently-viewed .section-header { margin-bottom: 2rem; }

/* ============================================================
   DARK / LIGHT COLOR MODE
   ============================================================ */

/* ── Light mode CSS variables ── */
:root {
  /* ── Dark palette (default) ── */
  --color-bg:           #0a0a0a;
  --color-surface:      #111111;
  --color-surface-2:    #1a1a1a;
  --color-text:         #f0ede8;
  --color-text-muted:   #888880;
  --color-accent:       #c47a2b;
  --color-accent-hover: #e8943a;
  --color-accent-text:  #ffffff;
  --color-border:       #2a2a2a;
  --color-success:      #4caf88;
  --color-danger:       #c53030;
  /* ── Derived semantic vars ── */
  --color-btn-text:     #ffffff;
  --color-overlay:      rgba(0, 0, 0, 0.92);
  --color-overlay-mid:  rgba(0, 0, 0, 0.65);
  --color-overlay-soft: rgba(0, 0, 0, 0.40);
  --color-input-bg:     #111111;
  --color-input-border: #2a2a2a;
  --color-sticky-bg:    rgba(10, 10, 10, 0.97);
  --color-shadow:       rgba(0, 0, 0, 0.60);
  --color-shadow-soft:  rgba(0, 0, 0, 0.25);
  --color-badge-sold:   #333333;
  --color-badge-text:   #888880;
}

/* ============================================================
   LIGHT THEME — Full variable override
   All components inherit these automatically via CSS custom property cascade
   ============================================================ */
html.theme-light {
  /* ── Core palette ── */
  --color-bg:           #f5f3ef;
  --color-surface:      #ffffff;
  --color-surface-2:    #eeebe5;
  --color-text:         #1a1a1a;
  --color-text-muted:   #5a5a55;
  --color-accent:       #b8601a;
  --color-accent-hover: #944e14;
  --color-accent-text:  #ffffff;
  --color-border:       #ddd9d0;
  --color-success:      #2d7a56;
  --color-danger:       #b91c1c;
  /* ── Derived semantic vars ── */
  --color-btn-text:     #ffffff;
  --color-overlay:      rgba(30, 28, 26, 0.88);
  --color-overlay-mid:  rgba(30, 28, 26, 0.55);
  --color-overlay-soft: rgba(30, 28, 26, 0.25);
  --color-input-bg:     #ffffff;
  --color-input-border: #c8c4bb;
  --color-sticky-bg:    rgba(245, 243, 239, 0.97);
  --color-shadow:       rgba(26, 24, 22, 0.18);
  --color-shadow-soft:  rgba(26, 24, 22, 0.08);
  --color-badge-sold:   #e8e4de;
  --color-badge-text:   #5a5a55;
}

/* ============================================================
   LIGHT THEME — Component-level overrides
   These handle elements that use hardcoded values or need
   explicit light-mode treatment beyond variable inheritance.
   ============================================================ */

/* ── Layout & body ── */
html.theme-light body {
  background: var(--color-bg);
  color: var(--color-text);
}

/* ── Header ── */
html.theme-light .site-header {
  background: var(--color-bg);
  border-bottom: 1px solid var(--color-border);
  box-shadow: 0 2px 16px var(--color-shadow-soft);
}
html.theme-light .header-sticky {
  background: var(--color-sticky-bg) !important;
  backdrop-filter: blur(12px);
}
html.theme-light .nav-link { color: var(--color-text-muted); }
html.theme-light .nav-link:hover,
html.theme-light .nav-link.active { color: var(--color-text); }
html.theme-light .nav-dropdown {
  background: var(--color-surface);
  border-color: var(--color-border);
  box-shadow: 0 8px 32px var(--color-shadow-soft);
}
html.theme-light .nav-dropdown-item { color: var(--color-text-muted); }
html.theme-light .nav-dropdown-item:hover {
  color: var(--color-accent);
  background: var(--color-surface-2);
}
html.theme-light .mega-menu {
  background: var(--color-surface);
  border-color: var(--color-border);
  box-shadow: 0 16px 48px var(--color-shadow);
}
html.theme-light .mega-col-heading { color: var(--color-text-muted); }
html.theme-light .mega-link { color: var(--color-text-muted); }
html.theme-light .mega-link:hover { color: var(--color-accent); }

/* ── Mobile menu ── */
html.theme-light .mobile-menu {
  background: var(--color-surface);
  border-right: 1px solid var(--color-border);
}
html.theme-light .mobile-nav-link { color: var(--color-text); }
html.theme-light .mobile-sub-link { color: var(--color-text-muted); }
html.theme-light .mobile-menu-footer { border-top-color: var(--color-border); }

/* ── Search overlay ── */
html.theme-light .search-overlay-inner {
  background: var(--color-surface);
  border-bottom: 1px solid var(--color-border);
}
html.theme-light .search-input { color: var(--color-text); }
html.theme-light .search-input::placeholder { color: var(--color-text-muted); }
html.theme-light .search-close,
html.theme-light .search-submit { color: var(--color-text-muted); }

/* ── Buttons ── */
html.theme-light .btn-primary {
  background: var(--color-accent);
  color: var(--color-btn-text);
}
html.theme-light .btn-outline {
  border-color: var(--color-border);
  color: var(--color-text);
}
html.theme-light .btn-outline:hover {
  border-color: var(--color-accent);
  color: var(--color-accent);
  background: transparent;
}

/* ── Forms & inputs ── */
html.theme-light input,
html.theme-light select,
html.theme-light textarea {
  background: var(--color-input-bg);
  border-color: var(--color-input-border);
  color: var(--color-text);
}
html.theme-light input::placeholder,
html.theme-light textarea::placeholder { color: var(--color-text-muted); }
html.theme-light .newsletter-input {
  background: var(--color-input-bg);
  border-color: var(--color-input-border);
  color: var(--color-text);
}

/* ── Product cards ── */
html.theme-light .product-card { background: var(--color-bg); }
html.theme-light .pc-media { background: var(--color-surface); }
html.theme-light .pc-body {
  background: var(--color-surface);
  border-top: 1px solid var(--color-border);
}
html.theme-light .pc-title { color: var(--color-text); }
html.theme-light .pc-price { color: var(--color-text); }
html.theme-light .pc-price--compare { color: var(--color-text-muted); }
html.theme-light .pc-vendor { color: var(--color-text-muted); }
html.theme-light .quick-add-btn {
  background: var(--color-surface);
  color: var(--color-text);
  border-color: var(--color-border);
}
html.theme-light .quick-add-btn:hover {
  background: var(--color-accent);
  color: var(--color-btn-text);
  border-color: var(--color-accent);
}

/* ── Product badges ── */
html.theme-light .badge--sale { background: var(--color-danger); color: #fff; }
html.theme-light .badge--new  { background: var(--color-success); color: #fff; }
html.theme-light .badge--hot  { background: #e84393; color: #fff; }
html.theme-light .badge--sold-out {
  background: var(--color-badge-sold);
  color: var(--color-badge-text);
}

/* ── Product page ── */
html.theme-light .product-gallery__main {
  background: var(--color-surface);
  border-color: var(--color-border);
}
html.theme-light .gallery-thumb {
  background: var(--color-surface);
  border-color: var(--color-border);
}
html.theme-light .gallery-thumb.active { border-color: var(--color-accent); }
html.theme-light .product-type { color: var(--color-text-muted); }
html.theme-light .price-main   { color: var(--color-text); }
html.theme-light .price-compare { color: var(--color-text-muted); }
html.theme-light .variant-label { color: var(--color-text-muted); }
html.theme-light .variant-label strong { color: var(--color-text); }
html.theme-light .variant-btn {
  color: var(--color-text-muted);
  border-color: var(--color-border);
  background: transparent;
}
html.theme-light .variant-btn:hover {
  border-color: var(--color-text-muted);
  color: var(--color-text);
}
html.theme-light .variant-btn.active {
  background: var(--color-text);
  color: var(--color-bg);
  border-color: var(--color-text);
}
html.theme-light .variant-btn.unavailable {
  opacity: .45;
  text-decoration: line-through;
}
html.theme-light .qty-wrap {
  background: var(--color-surface);
  border-color: var(--color-border);
}
html.theme-light .qty-btn { color: var(--color-text-muted); }
html.theme-light .qty-btn:hover {
  background: var(--color-surface-2);
  color: var(--color-text);
}
html.theme-light .qty-input { color: var(--color-text); background: transparent; }
html.theme-light .product-description-short {
  color: var(--color-text-muted);
  border-left-color: var(--color-accent);
}
html.theme-light .product-tab-btn { color: var(--color-text-muted); }
html.theme-light .product-tab-btn:hover { color: var(--color-text); }
html.theme-light .product-tab-btn.active {
  color: var(--color-text);
  border-bottom-color: var(--color-accent);
}
html.theme-light .product-tabs-panels {
  border-top-color: var(--color-border);
}
html.theme-light .product-full-desc { color: var(--color-text-muted); }
html.theme-light .trust-badge { color: var(--color-text-muted); }
html.theme-light .product-sku { color: var(--color-text-muted); }
html.theme-light .share-link {
  color: var(--color-text-muted);
  border-color: var(--color-border);
}

/* ── Cart drawer ── */
html.theme-light .cart-drawer {
  background: var(--color-surface);
  border-left: 1px solid var(--color-border);
  box-shadow: -8px 0 40px var(--color-shadow);
}
html.theme-light .cart-drawer-header {
  border-bottom-color: var(--color-border);
}
html.theme-light .cart-item { border-bottom-color: var(--color-border); }
html.theme-light .cart-item-title { color: var(--color-text); }
html.theme-light .cart-item-variant { color: var(--color-text-muted); }
html.theme-light .cart-item-price { color: var(--color-text); }
html.theme-light .cart-drawer-footer {
  background: var(--color-surface);
  border-top-color: var(--color-border);
}
html.theme-light .cart-subtotal { color: var(--color-text); }
html.theme-light .free-shipping-bar { background: var(--color-surface-2); }
html.theme-light .free-shipping-track { background: var(--color-border); }

/* ── Accordion / collapsible ── */
html.theme-light .accordion-item { background: var(--color-surface); }
html.theme-light .accordion-btn  { color: var(--color-text); }
html.theme-light .accordion-btn:hover { color: var(--color-accent); }
html.theme-light .accordion-body   { border-top-color: var(--color-border); }
html.theme-light .accordion-body .rte { color: var(--color-text-muted); }

/* ── Modals ── */
html.theme-light .modal-box {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  box-shadow: 0 24px 80px var(--color-shadow);
}
html.theme-light .modal-overlay { background: var(--color-overlay); }
html.theme-light .modal-close   { color: var(--color-text-muted); }
html.theme-light .zoom-modal .modal-overlay { background: var(--color-overlay); }

/* ── Swatches ── */
html.theme-light .swatch-btn {
  border-color: var(--color-border);
}
html.theme-light .swatch-btn.active { border-color: var(--color-text); }
html.theme-light .swatch-btn.unavailable { opacity: .4; }

/* ── Announcement bar ── */
html.theme-light .ann-btn { color: inherit; }

/* ── Mega menu featured tile ── */
html.theme-light .mega-featured { background: var(--color-surface-2); }
html.theme-light .mega-featured-title { color: var(--color-text); }

/* ── Section headings ── */
html.theme-light .section-heading { color: var(--color-text); }
html.theme-light .section-subheading { color: var(--color-text-muted); }
html.theme-light .section-eyebrow { color: var(--color-accent); }

/* ── Testimonials ── */
html.theme-light .testimonial-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  box-shadow: 0 4px 20px var(--color-shadow-soft);
}
html.theme-light .testimonial-quote { color: var(--color-text-muted); }
html.theme-light .testimonial-name  { color: var(--color-text); }
html.theme-light .testimonial-company { color: var(--color-text-muted); }

/* ── Multicolumn / feature cards ── */
html.theme-light .mc-col {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
}
html.theme-light .mc-heading { color: var(--color-text); }
html.theme-light .mc-content { color: var(--color-text-muted); }

/* ── Steps / timeline ── */
html.theme-light .step-number {
  background: var(--color-surface);
  border-color: var(--color-border);
  color: var(--color-accent);
}
html.theme-light .step-title   { color: var(--color-text); }
html.theme-light .step-content { color: var(--color-text-muted); }
html.theme-light .step-connector { border-color: var(--color-border); }

/* ── Countdown ── */
html.theme-light .countdown-digit {
  background: var(--color-surface);
  color: var(--color-text);
  border-color: var(--color-border);
}
html.theme-light .countdown-label { color: var(--color-text-muted); }

/* ── Lookbook / hotspot ── */
html.theme-light .lookbook-item { background: var(--color-surface); }
html.theme-light .hotspot-btn {
  background: var(--color-accent);
  box-shadow: 0 2px 12px var(--color-shadow-soft);
}
html.theme-light .hotspot-popup {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  box-shadow: 0 8px 32px var(--color-shadow);
  color: var(--color-text);
}

/* ── Quick order list ── */
html.theme-light .qol-table { border-color: var(--color-border); }
html.theme-light .qol-row   { border-bottom-color: var(--color-border); }
html.theme-light .qol-row:hover { background: var(--color-surface-2); }
html.theme-light .qol-title { color: var(--color-text); }
html.theme-light .qol-sku   { color: var(--color-text-muted); }
html.theme-light .qol-price { color: var(--color-text); }
html.theme-light .qol-stock-ok  { color: var(--color-success); }
html.theme-light .qol-stock-low { color: #d97706; }
html.theme-light .qol-stock-out { color: var(--color-text-muted); }
html.theme-light .qol-total-row { background: var(--color-surface-2); }

/* ── Pricing table ── */
html.theme-light .pricing-card {
  background: var(--color-surface);
  border-color: var(--color-border);
}
html.theme-light .pricing-card--featured {
  background: var(--color-text);
  color: var(--color-bg);
  border-color: var(--color-text);
}
html.theme-light .pricing-card--featured .pricing-amount,
html.theme-light .pricing-card--featured .pricing-name,
html.theme-light .pricing-card--featured .pricing-feature { color: var(--color-bg); }

/* ── Compare bar ── */
html.theme-light .compare-bar {
  background: var(--color-surface);
  border-top-color: var(--color-accent);
  box-shadow: 0 -4px 24px var(--color-shadow-soft);
}
html.theme-light .compare-bar-item { color: var(--color-text); }

/* ── Compare page ── */
html.theme-light .compare-table { border-color: var(--color-border); }
html.theme-light .compare-table th {
  background: var(--color-surface-2);
  color: var(--color-text);
  border-color: var(--color-border);
}
html.theme-light .compare-table td {
  background: var(--color-surface);
  color: var(--color-text-muted);
  border-color: var(--color-border);
}

/* ── Before/after slider ── */
html.theme-light .ba-label {
  background: var(--color-surface);
  color: var(--color-text-muted);
  border-color: var(--color-border);
}
html.theme-light .ba-handle { background: var(--color-accent); }

/* ── Sticky CTA ── */
html.theme-light .sticky-cta-group { }
html.theme-light .sticky-cta-btn {
  background: var(--color-surface);
  color: var(--color-text);
  border: 1px solid var(--color-border);
  box-shadow: 0 4px 16px var(--color-shadow-soft);
}
html.theme-light .sticky-cta-primary {
  background: var(--color-accent);
  color: var(--color-btn-text);
  border-color: var(--color-accent);
}

/* ── Stock urgency ── */
html.theme-light .stock-urgency {
  background: var(--color-surface-2);
  border-color: var(--color-border);
}
html.theme-light .su-label { color: var(--color-text); }
html.theme-light .su-track { background: var(--color-border); }

/* ── Cookie banner ── */
html.theme-light .cookie-banner {
  background: var(--color-surface);
  border-top: 1px solid var(--color-border);
  box-shadow: 0 -4px 24px var(--color-shadow-soft);
  color: var(--color-text);
}
html.theme-light .cookie-text { color: var(--color-text-muted); }

/* ── Age verifier ── */
html.theme-light .age-verifier-overlay { background: var(--color-overlay); }
html.theme-light .age-verifier-box {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  box-shadow: 0 24px 80px var(--color-shadow);
}
html.theme-light .age-verifier-title   { color: var(--color-text); }
html.theme-light .age-verifier-text    { color: var(--color-text-muted); }

/* ── Promo popup ── */
html.theme-light .promo-popup {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  box-shadow: 0 24px 80px var(--color-shadow);
}
html.theme-light .promo-popup-overlay { background: var(--color-overlay); }
html.theme-light .promo-title  { color: var(--color-text); }
html.theme-light .promo-subtitle { color: var(--color-text-muted); }
html.theme-light .promo-code {
  background: var(--color-surface-2);
  border-color: var(--color-border);
  color: var(--color-text);
}

/* ── Newsletter ── */
html.theme-light .newsletter-input {
  background: var(--color-input-bg);
  border-color: var(--color-input-border);
  color: var(--color-text);
}
html.theme-light .newsletter-disclaimer { color: var(--color-text-muted); }

/* ── Rich text ── */
html.theme-light .rte       { color: var(--color-text-muted); }
html.theme-light .rte th    { background: var(--color-surface); }
html.theme-light .rte td    { border-color: var(--color-border); }
html.theme-light .rte blockquote { border-left-color: var(--color-accent); }

/* ── Breadcrumbs ── */
html.theme-light .bc-link    { color: var(--color-text-muted); }
html.theme-light .bc-current { color: var(--color-text-muted); }
html.theme-light .bc-sep     { color: var(--color-text-muted); }

/* ── Collection page ── */
html.theme-light .filter-panel {
  background: var(--color-surface);
  border-color: var(--color-border);
}
html.theme-light .filter-heading { color: var(--color-text); }
html.theme-light .filter-option  { color: var(--color-text-muted); }
html.theme-light .filter-option:hover { color: var(--color-accent); }
html.theme-light .active-filter {
  background: var(--color-surface-2);
  border-color: var(--color-border);
  color: var(--color-text);
}
html.theme-light .sort-select {
  background: var(--color-surface);
  border-color: var(--color-border);
  color: var(--color-text);
}
html.theme-light .pagination-btn {
  background: var(--color-surface);
  border-color: var(--color-border);
  color: var(--color-text-muted);
}
html.theme-light .pagination-btn:hover {
  border-color: var(--color-accent);
  color: var(--color-accent);
}
html.theme-light .pagination-btn.active {
  background: var(--color-accent);
  border-color: var(--color-accent);
  color: var(--color-btn-text);
}

/* ── Recently viewed ── */
html.theme-light .recently-viewed { background: var(--color-surface-2); }

/* ── Press / logos bar ── */
html.theme-light .press-logo { filter: invert(1) opacity(0.4); }
html.theme-light .press-quote { color: var(--color-text-muted); }

/* ── Footer ── */
html.theme-light .footer-main {
  background: #1e1c1a;
  color: #f0ede8;
}
html.theme-light .footer-col-title { color: #f0ede8; }
html.theme-light .footer-nav-link  { color: rgba(240,237,232,.65); }
html.theme-light .footer-nav-link:hover { color: var(--color-accent); }
html.theme-light .footer-bottom    { border-top-color: rgba(240,237,232,.12); color: rgba(240,237,232,.5); }
html.theme-light .footer-social    { color: rgba(240,237,232,.65); }
html.theme-light .footer-social:hover { color: var(--color-accent); }

/* ── Icon buttons ── */
html.theme-light .icon-btn { color: var(--color-text-muted); }
html.theme-light .icon-btn:hover { color: var(--color-text); }

/* ── Shoppable video ── */
html.theme-light .sv-product-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
}

/* ── Back-to-top ── */
html.theme-light .back-to-top {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  color: var(--color-text);
  box-shadow: 0 4px 16px var(--color-shadow-soft);
}
html.theme-light .back-to-top:hover {
  background: var(--color-accent);
  color: var(--color-btn-text);
  border-color: var(--color-accent);
}

/* ── Progress / loading bars ── */
html.theme-light .progress-bar-track { background: var(--color-border); }
html.theme-light .progress-bar-fill  { background: var(--color-accent); }

/* ── Collage ── */
html.theme-light .collage-title { color: var(--color-text); }
html.theme-light .collage-price { color: rgba(26,26,26,.75); }
html.theme-light .footer-main {
  background: #1e1c1a;
  color: #f0ede8;
}
html.theme-light .footer-main,
html.theme-light .footer-main a,
html.theme-light .footer-main p,
html.theme-light .footer-main span,
html.theme-light .footer-main h3,
html.theme-light .footer-main h4 {
  /* Footer intentionally stays dark even in light mode for contrast */
  /* Override this if you want a fully light footer */
}
/* If you want light footer in light mode, uncomment below: */
/*
html.theme-light .footer-main {
  background: var(--color-surface);
  color: var(--color-text);
  border-top: 1px solid var(--color-border);
}
html.theme-light .footer-col-title,
html.theme-light .footer-nav-link,
html.theme-light .footer-social,
html.theme-light .footer-bottom {
  color: var(--color-text);
  border-color: var(--color-border);
}
*/

/* Auto mode — follow system preference */
@media (prefers-color-scheme: light) {
  html[data-color-mode="auto"] {
    --color-bg:           #f5f3ef;
    --color-surface:      #ffffff;
    --color-surface-2:    #eeebe5;
    --color-text:         #1a1a1a;
    --color-text-muted:   #666660;
    --color-accent:       #c47a2b;
    --color-accent-hover: #a8611a;
    --color-accent-text:  #ffffff;
    --color-border:       #ddd9d0;
    --color-success:      #2d7a56;
    --color-danger:       #b91c1c;
  }
}
@media (prefers-color-scheme: dark) {
  html[data-color-mode="auto"] {
    --color-bg:           #0a0a0a;
    --color-surface:      #111111;
    --color-surface-2:    #1a1a1a;
    --color-text:         #f0ede8;
    --color-text-muted:   #888880;
    --color-border:       #2a2a2a;
  }
}
/* ============================================================
   DARK THEME — Explicit html.theme-dark rules
   These complement the :root defaults for dark, ensuring
   that JavaScript-toggled state has explicit coverage.
   ============================================================ */
html.theme-dark {
  --color-bg:           #0a0a0a;
  --color-surface:      #111111;
  --color-surface-2:    #1a1a1a;
  --color-text:         #f0ede8;
  --color-text-muted:   #888880;
  --color-accent:       #c47a2b;
  --color-accent-hover: #e8943a;
  --color-accent-text:  #ffffff;
  --color-btn-text:     #ffffff;
  --color-border:       #2a2a2a;
  --color-success:      #4caf88;
  --color-danger:       #c53030;
  --color-overlay:      rgba(0, 0, 0, 0.92);
  --color-overlay-mid:  rgba(0, 0, 0, 0.65);
  --color-overlay-soft: rgba(0, 0, 0, 0.40);
  --color-input-bg:     #111111;
  --color-input-border: #2a2a2a;
  --color-sticky-bg:    rgba(10, 10, 10, 0.97);
  --color-shadow:       rgba(0, 0, 0, 0.60);
  --color-shadow-soft:  rgba(0, 0, 0, 0.25);
  --color-badge-sold:   #333333;
  --color-badge-text:   #888880;
}

/* Dark mode — press logos should NOT be inverted (they're dark-optimized) */
html.theme-dark .press-logo { filter: none; }

/* ── Toggle button icon states ── */
html.theme-light  .color-mode-btn .icon-sun  { display: none   !important; }
html.theme-light  .color-mode-btn .icon-moon { display: block  !important; }
html.theme-dark   .color-mode-btn .icon-sun  { display: block  !important; }
html.theme-dark   .color-mode-btn .icon-moon { display: none   !important; }

/* Smooth transition on mode switch */
html.color-mode-transitioning *,
html.color-mode-transitioning *::before,
html.color-mode-transitioning *::after {
  transition: background-color 250ms ease, border-color 250ms ease, color 200ms ease !important;
}

/* ============================================================
   SECTION PADDING UTILITY — controlled by schema settings
   ============================================================ */
.section-padding-custom {
  padding-top: var(--section-pt, var(--section-spacing));
  padding-bottom: var(--section-pb, var(--section-spacing));
}

/* Header phone in nav */
.header-phone {
  display: flex;
  align-items: center;
  gap: .4rem;
  font-family: var(--font-mono);
  font-size: .85rem;
  letter-spacing: .08em;
  color: var(--color-text-muted);
  text-decoration: none;
  white-space: nowrap;
  transition: color 150ms ease;
}
.header-phone:hover { color: var(--color-accent); }
.header-phone svg { width: 14px; height: 14px; flex-shrink: 0; }
.header-phone-text { display: none; }
@media (min-width: 1024px) { .header-phone-text { display: inline; } }

/* ============================================================
   RESPONSIVE SCHEMA SETTINGS — device visibility utilities
   All controlled by section schema settings via inline style vars
   ============================================================ */

/* ── Visibility utilities ── */
.hide-desktop  { display: none !important; }
.hide-tablet   { display: block; }
.hide-mobile   { display: block; }

@media (min-width: 1024px) {
  .hide-desktop  { display: none !important; }
  .hide-tablet   { display: block; }
  .hide-mobile   { display: block; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .hide-tablet   { display: none !important; }
  .hide-desktop  { display: block; }
}
@media (max-width: 767px) {
  .hide-mobile   { display: none !important; }
  .hide-desktop  { display: block; }
}

/* ── Responsive grid via CSS custom properties ── */
.responsive-grid {
  display: grid;
  grid-template-columns: repeat(var(--cols-d, 4), 1fr);
  gap: var(--grid-gap, 1.5rem);
}
@media (min-width: 768px) and (max-width: 1023px) {
  .responsive-grid { grid-template-columns: repeat(var(--cols-t, 2), 1fr); }
}
@media (max-width: 767px) {
  .responsive-grid { grid-template-columns: repeat(var(--cols-m, 1), 1fr); }
}

/* ── Responsive section padding ── */
.section-responsive-padding {
  padding-top:    var(--pt-d, var(--section-spacing));
  padding-bottom: var(--pb-d, var(--section-spacing));
}
@media (max-width: 767px) {
  .section-responsive-padding {
    padding-top:    var(--pt-m, calc(var(--section-spacing) * 0.6));
    padding-bottom: var(--pb-m, calc(var(--section-spacing) * 0.6));
  }
}

/* ── Responsive hero height ── */
.responsive-hero {
  min-height: var(--hero-h-d, 80vh);
}
@media (min-width: 768px) and (max-width: 1023px) {
  .responsive-hero { min-height: var(--hero-h-t, 65vh); }
}
@media (max-width: 767px) {
  .responsive-hero { min-height: var(--hero-h-m, 55vh); }
}

/* ── Responsive heading size ── */
.responsive-heading {
  font-size: clamp(1.8rem, var(--h-size-d, 4vw), 7rem);
}
@media (max-width: 767px) {
  .responsive-heading { font-size: clamp(1.6rem, var(--h-size-m, 10vw), 3.5rem); }
}

/* ── Mobile image swap ── */
.mobile-image { display: none; }
.desktop-image { display: block; }
@media (max-width: 767px) {
  .mobile-image  { display: block; }
  .desktop-image { display: none; }
}

/* ── Mobile text alignment ── */
@media (max-width: 767px) {
  .mobile-align-left   { text-align: left !important; }
  .mobile-align-center { text-align: center !important; }
  .mobile-align-right  { text-align: right !important; }
  
  .mobile-align-center .eyebrow { justify-content: center; }
  .mobile-align-center .hero-btns { justify-content: center; }
  .mobile-align-right  .eyebrow { justify-content: flex-end; }
}

/* ── Mobile image stack order ── */
.mobile-image-first  { order: -1; }
.mobile-image-last   { order: 1; }
@media (min-width: 768px) {
  .mobile-image-first, .mobile-image-last { order: unset; }
}

/* ── Mobile fullscreen menu ── */
.mobile-menu--fullscreen {
  position: fixed;
  inset: 0;
  width: 100% !important;
  max-width: 100% !important;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: var(--color-bg);
}
.mobile-menu--fullscreen .mobile-nav-list {
  text-align: center;
}
.mobile-menu--fullscreen .mobile-nav-link {
  font-size: clamp(1.8rem, 5vw, 3rem);
}

/* ── Slideshow mobile height ── */
@media (max-width: 767px) {
  .slideshow .slide,
  .slideshow { min-height: var(--hero-h-m, 55vh) !important; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .slideshow .slide,
  .slideshow { min-height: var(--hero-h-t, 65vh) !important; }
}

/* ── Mobile gallery ── */
@media (max-width: 767px) {
  .gallery-scroll-mobile .gallery-thumbnails {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
  }
  .gallery-scroll-mobile .gallery-thumb {
    scroll-snap-align: start;
    flex-shrink: 0;
  }
  .gallery-dots-mobile .gallery-main-wrap::after {
    content: '';
    display: block;
  }
}

/* ── Tablet menu toggle ── */
@media (min-width: 768px) and (max-width: 1023px) {
  .header-nav--hide-tablet .nav-list { display: none; }
  .header-nav--hide-tablet .mobile-menu-toggle { display: flex !important; }
}
