/*
Theme Name: CHINA HYPE MARKET Zero
Theme URI: https://maoh.sg-host.com/
Author: CHINA HYPE MARKET
Description: Clean, data-driven WooCommerce theme built from zero.
Version: 2.15.75
Text Domain: chm-zero
*/

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

:root {
    --font-body: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --font-display: Poppins, var(--font-body);
    --ink: #1f1f1f;
    --muted: #737373;
    --paper: #ffffff;
    --canvas: #fafafa;
    --wash: #f4f4f5;
    --line: #e4e4e7;
    --dark: #1f1f1f;
    --accent: #0d73bc;
    --focus: #1d4ed8;
    --max: 1280px;
    --ease: 180ms ease;
    --space-1: 4px;
    --space-2: 8px;
    --space-3: 12px;
    --space-4: 16px;
    --space-5: 20px;
    --space-6: 24px;
    --space-8: 32px;
    --space-10: 40px;
    --space-12: 48px;
    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 18px;
    --radius-xl: 26px;
    --icon-sm: 16px;
    --icon-md: 18px;
    --icon-control: 24px;
    --icon-stroke: 1.8;
}

/* Brand directory refinement: complete catalog stays searchable, presented as a quiet brand wall. */
.brands-directory { max-width: 1180px; padding-top: 56px; }
.brands-directory-header { align-items: end; padding-bottom: 0; border: 0; }
.brands-directory-header h1 { font-size: clamp(36px,5vw,64px); letter-spacing: -.04em; }
.brands-directory-header p { max-width: 420px; margin-top: 12px; font-size: 15px; }
.brands-directory-search input { height: 52px; border-radius: 999px; padding-left: 20px; }
.brands-directory-index { gap: 8px; padding: 34px 0 28px; }
.brands-directory-index a { width: 36px; height: 36px; border: 0; border-radius: 50%; background: var(--wash); color: var(--ink); }
.brands-directory-index a:hover, .brands-directory-index a:focus-visible { border: 0; background: var(--dark); color: #fff; }
.brands-directory-groups { border: 0; }
.brands-directory-group { grid-template-columns: 72px minmax(0,1fr); gap: 28px; padding: 28px 0 36px; border: 0; }
.brands-directory-group h2 { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 50%; color: #fff; background: var(--dark); font: 600 18px/1 var(--font-display); }
.brands-directory-group ul { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; }
.brands-directory-group li a { display: flex; min-height: 86px; flex-direction: column; align-items: flex-start; justify-content: flex-end; gap: 8px; padding: 16px; border: 1px solid #ececee; border-radius: 12px; background: var(--paper); transition: border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease; }
.brands-directory-group li a::before { content: attr(data-brand-initial); display: grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; color: var(--muted); background: var(--wash); font-size: 11px; font-weight: 700; }
.brands-directory-group li a:hover, .brands-directory-group li a:focus-visible { border-color: #bdbdbd; transform: translateY(-2px); box-shadow: 0 8px 20px rgba(20,20,20,.06); }
.brands-directory-group li span { width: 100%; font-size: 14px; white-space: normal; }
.brands-directory-group li small { font-size: 11px; }
@media (max-width: 800px) {
    .brands-directory { padding-top: 28px; }
    .brands-directory-header { gap: 18px; }
    .brands-directory-header h1 { font-size: 40px; }
    .brands-directory-group { grid-template-columns: 40px minmax(0,1fr); gap: 14px; padding: 22px 0 28px; }
    .brands-directory-group h2 { width: 34px; height: 34px; font-size: 14px; }
    .brands-directory-group ul { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
    .brands-directory-group li a { min-height: 94px; padding: 12px; }
}

/* Mobile viewport guard: keep page scrolling vertical while preserving
 * intentional horizontal rails inside their own containers. */
@media (max-width: 800px) {
    html,
    body {
        width: 100%;
        max-width: 100%;
        overflow-x: hidden;
        overscroll-behavior-x: none;
    }

    @supports (overflow: clip) {
        html,
        body { overflow-x: clip; }
    }

    .site-header,
    .site-content,
    .site-footer,
    .woocommerce-page-shell,
    .catalog-page,
    .catalog-search-page,
    .catalog-shell,
    .catalog-search-shell,
    .chm-product-detail,
    .product-layout,
    .product-gallery,
    .product-heading,
    .product-purchase,
    .product-about,
    .product-reviews-section,
    .product-recommendations {
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }

    .site-header > .shell,
    .site-header > nav,
    .site-content > .shell,
    .site-footer .footer-inner,
    .woocommerce-page-shell > *,
    .catalog-shell > *,
    .catalog-search-shell > * {
        min-width: 0;
        max-width: 100%;
    }

    .header-main > *,
    .footer-main > *,
    .catalog-layout > *,
    .product-layout > * {
        min-width: 0;
    }

    .catalog-search-recent-grid {
        width: 100%;
        max-width: 100%;
        margin-right: 0;
        padding-right: 0;
        overscroll-behavior-inline: contain;
    }

    /* Keep page-level width fixed while allowing explicit rails to scroll in
     * their own boxes. */
    #content,
    .home-modules,
    .home-module,
    .home-products-module,
    .home-product-switcher,
    .home-product-panel,
    .home-brand-rail,
    .home-brand-promos,
    .home-popular-category-groups,
    .home-reviews-module,
    .woocommerce,
    .woocommerce-page-shell {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        overflow-x: clip;
    }

    @supports not (overflow: clip) {
        #content,
        .home-modules,
        .home-module,
        .home-products-module,
        .home-product-switcher,
        .home-product-panel,
        .home-brand-rail,
        .home-brand-promos,
        .home-popular-category-groups,
        .home-reviews-module,
        .woocommerce,
        .woocommerce-page-shell { overflow-x: hidden; }
    }
}

/* SiteGround AI Studio renders inside a shadow root. Hide its unusable host,
 * and keep every theme overlay free of third-party floating controls. */
#wp-ai-studio-container.no-api-key,
body.no-scroll #wp-ai-studio-container { display: none !important; }

/* Functional brand directory. Visual redesign remains a separate approval. */
.brands-directory { padding-top: 34px; padding-bottom: 72px; }
.brands-directory-breadcrumb { display: flex; align-items: center; gap: 8px; margin-bottom: 28px; color: var(--muted); font-size: 13px; }
.brands-directory-header { display: flex; align-items: end; justify-content: space-between; gap: 28px; padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.brands-directory-header h1 { margin: 0; font: 600 42px/1.15 var(--font-display); letter-spacing: 0; }
.brands-directory-header p { margin: 8px 0 0; color: var(--muted); }
.brands-directory-search { position: relative; width: min(360px, 100%); }
.brands-directory-search input { width: 100%; height: 46px; padding: 0 48px 0 14px; border: 1px solid var(--line); border-radius: 8px; background: var(--paper); color: var(--ink); font: inherit; }
.brands-directory-search button { position: absolute; top: 0; right: 0; display: grid; width: 46px; height: 46px; place-items: center; padding: 0; border: 0; background: transparent; color: var(--ink); }
.brands-directory-search button svg { width: 19px; height: 19px; }
.brands-directory-index { display: flex; flex-wrap: wrap; gap: 6px; padding: 22px 0; }
.brands-directory-index a { display: grid; width: 34px; height: 34px; place-items: center; border-bottom: 1px solid transparent; color: var(--muted); font-size: 13px; font-weight: 600; }
.brands-directory-index a:hover, .brands-directory-index a:focus-visible { border-color: var(--ink); color: var(--ink); }
.brands-directory-groups { border-top: 1px solid var(--line); }
.brands-directory-group { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 24px; padding: 28px 0; border-bottom: 1px solid var(--line); scroll-margin-top: 96px; }
.brands-directory-group h2 { margin: 0; font: 600 28px/1 var(--font-display); }
.brands-directory-group ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 24px; margin: 0; padding: 0; list-style: none; }
.brands-directory-group li a { display: flex; min-height: 44px; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid #f1f1f1; }
.brands-directory-group li span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.brands-directory-group li small { color: var(--muted); font-size: 12px; }
.brands-directory-empty { padding: 72px 0; text-align: center; }
.brands-directory-empty h2 { margin: 0 0 8px; }
.brands-directory-empty p { margin: 0 0 20px; color: var(--muted); }
.brands-directory-empty a { display: inline-flex; min-height: 44px; align-items: center; padding: 0 18px; border-radius: 8px; background: var(--dark); color: #fff; }
@media (max-width: 800px) {
    .brands-directory { padding-top: 20px; padding-bottom: 48px; }
    .brands-directory-breadcrumb { margin-bottom: 20px; }
    .brands-directory-header { align-items: stretch; flex-direction: column; gap: 20px; }
    .brands-directory-header h1 { font-size: 32px; line-height: 38px; }
    .brands-directory-search { width: 100%; }
    .brands-directory-index { gap: 2px; padding: 16px 0; }
    .brands-directory-index a { width: 32px; height: 38px; }
    .brands-directory-group { grid-template-columns: 38px minmax(0, 1fr); gap: 12px; padding: 22px 0; }
    .brands-directory-group h2 { padding-top: 9px; font-size: 21px; }
    .brands-directory-group ul { grid-template-columns: 1fr; gap: 0; }
    .brands-directory-group li a { min-height: 48px; }
}

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

html {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    scroll-behavior: smooth;
}

body {
    width: 100%;
    max-width: 100%;
    margin: 0;
    color: var(--ink);
    background: var(--canvas);
    font: 400 16px/24px var(--font-body);
    overflow-x: hidden;
}
@supports (overflow: clip) {
    html,
    body { overflow-x: clip; }
}

body.no-scroll {
    overflow: hidden;
}
body.woocommerce .stock,
body.woocommerce .woocommerce-variation-availability {
    display: none !important;
}

img {
    max-width: 100%;
    height: auto;
}

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

button,
input,
select,
textarea {
    font: inherit;
}

button,
.button,
a {
    cursor: pointer;
    touch-action: manipulation;
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 2px solid var(--focus);
    outline-offset: 3px;
}

.shell {
    width: min(calc(100% - 32px), var(--max));
    margin-inline: auto;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Newsletter confirmation is a focused, distraction-free landing state. */
.chm-newsletter-confirmation { display: grid; min-height: min(620px, calc(100vh - 132px)); place-items: center; padding: 64px 16px 88px; background: var(--canvas); }
.chm-newsletter-confirmation-card { display: grid; width: min(100%, 560px); justify-items: center; padding: 56px 48px 52px; border: 1px solid var(--line); border-radius: 16px; background: var(--paper); box-shadow: 0 16px 42px rgba(20,20,20,.07); text-align: center; }
.chm-newsletter-confirmation-icon { display: grid; width: 64px; height: 64px; place-items: center; margin-bottom: 22px; border-radius: 50%; color: #08783e; background: #ecfdf3; }
.chm-newsletter-confirmation-card.is-error .chm-newsletter-confirmation-icon { color: #b42318; background: #fff1f0; }
.chm-newsletter-confirmation-icon svg { width: 30px; height: 30px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.chm-newsletter-confirmation-kicker { margin: 0 0 10px; color: var(--muted); font-size: 12px; line-height: 18px; font-weight: 650; letter-spacing: .12em; text-transform: uppercase; }
.chm-newsletter-confirmation-card h1 { max-width: 420px; margin: 0; color: var(--ink); font-family: var(--font-body); font-size: 32px; line-height: 40px; font-weight: 700; letter-spacing: -.01em; }
.chm-newsletter-confirmation-message { max-width: 430px; margin: 14px 0 0; color: var(--muted); font-size: 15px; line-height: 24px; }
.chm-newsletter-confirmation-actions { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
.chm-newsletter-confirmation-actions a { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; padding: 0 20px; border-radius: 8px; font-size: 13px; line-height: 20px; font-weight: 650; }
.chm-newsletter-confirmation-primary { color: #fff; background: var(--dark); }
.chm-newsletter-confirmation-primary:hover, .chm-newsletter-confirmation-primary:focus-visible { color: #fff; background: #3a3a3a; text-decoration: none; }
.chm-newsletter-confirmation-secondary { border: 1px solid var(--line); color: var(--ink); background: var(--paper); }
.chm-newsletter-confirmation-secondary:hover, .chm-newsletter-confirmation-secondary:focus-visible { border-color: #bdbdbd; background: var(--wash); text-decoration: none; }

.skip-link {
    position: fixed;
    top: 12px;
    left: 12px;
    z-index: 100;
    padding: 10px 14px;
    color: #ffffff;
    background: var(--dark);
    transform: translateY(-80px);
}

.skip-link:focus {
    transform: translateY(0);
}

.button {
    display: inline-flex;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    padding: 0 22px;
    border: 1px solid var(--ink);
    background: var(--paper);
    transition: color var(--ease), background-color var(--ease), border-color var(--ease);
}

.button:hover,
.button:focus-visible {
    color: var(--paper);
    background: var(--ink);
}

.button-dark {
    color: var(--paper);
    background: var(--dark);
}

.button-dark:hover,
.button-dark:focus-visible {
    background: #333333;
}

.eyebrow {
    margin: 0 0 14px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: uppercase;
}

.site-header {
    position: relative;
    z-index: 30;
    background: var(--paper);
}

/* Reference UI type scale: system sans for utility text, Poppins for editorial headings. */
h1,
h2,
h3,
.module-title,
.section-title,
.page-heading h1 {
    font-family: var(--font-display);
}

.topbar {
    color: var(--muted);
    border-bottom: 1px solid var(--line);
    font-size: 12px;
}

@media (min-width: 801px) {
    .topbar { display: none; }
}

.topbar .shell {
    display: flex;
    min-height: 36px;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.market-button {
    min-height: 36px;
    padding: 0 14px;
    color: inherit;
    border: 0;
    border-left: 1px solid var(--line);
    background: transparent;
}

.header-main {
    display: flex;
    min-height: 64px;
    align-items: center;
    gap: 0;
    white-space: nowrap;
}

.wordmark {
    flex: 0 1 225px;
    width: min(225px, 25vw);
    max-width: 225px;
    min-width: 0;
    margin-right: clamp(16px, 5.7vw, 63px);
    font-size: 19px;
    font-weight: 700;
    line-height: 1.05;
    letter-spacing: 0;
}

.wordmark a {
    display: flex;
    align-items: center;
    gap: 10px;
}

.wordmark img {
    display: block;
    width: auto;
    max-width: 225px;
    max-height: 40px;
}

.header-search {
    flex: 1 1 572px;
    width: 100%;
    max-width: 572px;
    min-width: 0;
    margin: 0;
}

.search-form {
    display: flex;
    width: 100%;
    box-sizing: border-box;
    height: 44px;
    min-height: 44px;
    max-height: 44px;
    align-items: center;
    gap: 0;
    padding: 0 0 0 16px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 999px;
}

.search-form label {
    display: flex;
    flex: 1 1 auto;
    min-width: 0;
    height: 42px;
    align-items: center;
}

.search-field {
    display: block;
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    height: 42px;
    min-height: 42px;
    max-height: 42px;
    box-sizing: border-box;
    color: var(--ink);
    font-size: 14px;
    line-height: 20px;
    padding: 0;
    border: 0;
    background: transparent;
    appearance: none;
}

.search-field::placeholder {
    color: #737373;
    opacity: 1;
}

.search-field:focus {
    outline: 0;
}

.search-submit {
    display: grid;
    flex: 0 0 40px;
    width: 40px;
    min-width: 40px;
    height: 40px;
    min-height: 40px;
    max-height: 40px;
    place-items: center;
    padding: 0;
    border: 0;
    background: transparent;
}

.search-submit svg {
    display: block;
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.header-actions {
    flex: 0 0 72px;
    display: flex;
    justify-content: flex-end;
    gap: 24px;
    margin-left: auto;
    transform: translateY(-1px);
}

.site-header .header-main > .mobile-search-toggle {
    display: none !important;
}

.site-header .header-main > .all-menu-toggle,
.site-header .header-main > .wordmark,
.site-header .header-main > .header-search,
.site-header .header-main > .header-actions {
    min-width: 0;
}

.icon-button {
    position: relative;
    display: grid;
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    place-items: center;
    padding: 0;
    border: 0;
    background: transparent;
    transition: background-color var(--ease);
}

.header-actions .icon-button {
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
}

.header-actions .icon-button svg {
    width: 24px;
    height: 24px;
    stroke-width: 1.8;
}

.icon-button:hover,
.icon-button:focus-visible {
    background: var(--wash);
}

.icon-button svg,
.wishlist-button svg {
    width: var(--icon-control);
    height: var(--icon-control);
    fill: none;
    stroke: currentColor;
    stroke-width: var(--icon-stroke);
    stroke-linecap: round;
    stroke-linejoin: round;
    shape-rendering: geometricPrecision;
    vector-effect: non-scaling-stroke;
}

.cart-count {
    position: absolute;
    top: -8px;
    right: -8px;
    display: grid;
    min-width: 20px;
    height: 20px;
    place-items: center;
    padding: 0 5px;
    color: #ffffff;
    border-radius: 50%;
    background: var(--dark);
    font-size: 12px;
    font-weight: 700;
    line-height: 20px;
}

.desktop-nav {
    position: relative;
    z-index: 31;
    border-top: 1px solid #f1f1f1;
    border-bottom: 1px solid var(--line);
    background: var(--paper);
}

.all-menu-toggle { display:flex; align-items:center; gap:7px; min-height:44px; padding:0 10px 0 0; border:0; background:transparent; font-size:16px; font-weight:600; }
.all-menu-toggle svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; }
.site-icon { display:block; width:32px; height:32px; flex:0 0 32px; border:0; border-radius:0; object-fit:contain; }
.search-image-input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.search-image { display:grid; flex:0 0 36px; width:36px; min-width:36px; height:36px; min-height:36px; max-height:36px; align-self:center; place-items:center; padding:0; border:0; background:transparent; color:var(--muted); line-height:0; }
.search-image { aspect-ratio:1 / 1; }
.search-image svg { display:block; width:var(--icon-md); height:var(--icon-md); flex:0 0 var(--icon-md); fill:none; stroke:currentColor; stroke-width:var(--icon-stroke); stroke-linecap:round; stroke-linejoin:round; shape-rendering:geometricPrecision; vector-effect:non-scaling-stroke; }
.search-submit { display:grid; flex:0 0 40px; width:40px; min-width:40px; height:40px; min-height:40px; max-height:40px; margin-right:-1px; place-items:center; border-radius:50%; color:#fff; background:#111; line-height:0; }
.search-submit svg { display:block; width:var(--icon-md); height:var(--icon-md); flex:0 0 var(--icon-md); fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; shape-rendering:geometricPrecision; vector-effect:non-scaling-stroke; }
#mobile-panel .all-drawer { right:auto; left:0; width:min(384px,78vw); max-width:calc(100vw - 56px); padding:0 18px max(28px,env(safe-area-inset-bottom)); transform:translateX(-100%); }
#mobile-panel.is-open .all-drawer { transform:translateX(0); }
.all-drawer .overlay-head { min-height:68px; padding:0; margin:0; border-bottom:1px solid var(--line); }
.all-drawer-tabs { display:flex; border-bottom:1px solid var(--line); }
.all-drawer-tabs span { flex:1; padding:13px; text-align:center; border-bottom:2px solid var(--dark); font-size:13px; font-weight:650; }
.all-drawer-sale { display:flex; min-height:76px; align-items:center; gap:12px; margin:16px 0 14px; padding:16px 18px; color:#fff; border-radius:8px; background:#181818; }
.all-drawer-sale strong { font-size:19px; line-height:26px; font-weight:650; }
.all-drawer-sale span { padding:3px 7px; border:1px solid rgba(255,255,255,.5); border-radius:4px; font-size:10px; line-height:16px; font-weight:700; }
.all-drawer-sale b { display:grid; width:34px; height:34px; place-items:center; margin-left:auto; border:1px solid rgba(255,255,255,.28); border-radius:50%; }
.all-drawer-sale b svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.7; }
.all-drawer-chips { display:flex; gap:8px; overflow-x:auto; padding:0 0 14px; scrollbar-width:none; }
.all-drawer-chips::-webkit-scrollbar { display:none; }
.all-drawer-chips a { flex:0 0 auto; min-height:36px; padding:8px 12px; border:1px solid var(--line); border-radius:6px; color:#444; font-size:12px; line-height:18px; font-weight:550; white-space:nowrap; }
.all-drawer-categories { display:grid; gap:0; border-top:1px solid var(--line); }
.all-drawer-category { display:flex; width:100%; min-height:64px; align-items:center; gap:12px; padding:8px 2px; border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; text-align:left; font-size:15px; font-weight:550; }
.all-drawer-category:hover { background:var(--wash); }
.all-drawer-category img { width:46px; height:46px; border-radius:6px; object-fit:cover; }
.all-drawer-category span { flex:1; }
.all-drawer-category b,.all-brand-link b { display:grid; width:28px; height:28px; place-items:center; color:var(--muted); }
.all-drawer-category b svg,.all-brand-link b svg { width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:1.7; transform:rotate(-90deg); }
.all-category-panel { position:absolute; inset:68px 0 0; z-index:2; overflow:auto; padding:0 20px 28px; background:var(--paper); }
.all-category-back { display:inline-flex; min-height:44px; align-items:center; gap:8px; padding:0; border:0; background:transparent; color:var(--muted); font-size:13px; font-weight:550; }
.all-category-back svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.7; }
.all-category-panel h2 { margin:8px 0 14px; font-size:24px; }
.all-category-view,.all-brand-link { display:flex; align-items:center; justify-content:space-between; padding:13px 8px; border-bottom:1px solid var(--line); font-weight:600; }
.all-category-brands { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px 12px; padding:18px 0 8px; }
.all-category-brand { display:flex; min-width:0; flex-direction:column; align-items:center; gap:8px; text-align:center; font-size:13px; color:var(--muted); }
.all-category-brand img,.all-category-brand-placeholder { display:grid; width:74px; height:74px; place-items:center; border-radius:50%; object-fit:cover; background:var(--wash); }
.all-category-brand-placeholder svg { width:26px; height:26px; color:var(--muted); }
.all-category-brand span { max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.all-drawer-empty { color:var(--muted); }

.nav-list {
    display: flex;
    justify-content: center;
    gap: 4px;
    padding: 0;
    margin: 0;
    list-style: none;
}

.nav-item {
    position: relative;
}

.nav-item > a {
    display: flex;
    min-height: 36px;
    align-items: center;
    gap: 6px;
    padding: 0 16px;
    font-size: 12px;
    font-weight: 650;
    letter-spacing: 0;
    text-transform: uppercase;
}

.nav-item > a svg {
    width: 13px;
    height: 13px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.nav-item.has-dropdown > a { padding-right:32px; }
.nav-toggle { position: absolute; top: 50%; right: 5px; display: grid; width: 26px; height: 26px; place-items: center; padding: 0; border: 0; border-radius:50%; background: transparent; transform: translateY(-50%); }
.nav-toggle svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 1.6; transition: transform var(--ease); }
.nav-item.is-expanded > .nav-toggle svg { transform: rotate(180deg); }

.nav-dropdown {
    position: absolute;
    top: calc(100% + 8px);
    left: 50%;
    z-index: 20;
    width: 356px;
    padding: 22px 24px 20px;
    visibility: hidden;
    border: 1px solid #dedede;
    border-radius: 8px;
    background: var(--paper);
    box-shadow: 0 18px 44px rgba(0,0,0,.12);
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, -6px);
    transition: opacity var(--ease), transform var(--ease), visibility var(--ease);
}
.nav-dropdown::before { position:absolute; right:0; bottom:100%; left:0; height:9px; content:""; }

.nav-item:hover .nav-dropdown,
.nav-item:focus-within .nav-dropdown,
.nav-item.is-expanded .nav-dropdown {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transform: translate(-50%, 0);
}

.dropdown-heading {
    margin-bottom: 14px;
    color: var(--muted);
    font-size: 10px;
    line-height: 16px;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: uppercase;
}

.dropdown-brands {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 2px 22px;
}

.dropdown-brands a {
    display:flex;
    min-width:0;
    min-height:38px;
    align-items:center;
    overflow:hidden;
    padding:0;
    border-bottom:1px solid #f1f1f1;
    color:#2a2a2a;
    font-size:14px;
    line-height:20px;
    font-weight:450;
    text-overflow:ellipsis;
    white-space:nowrap;
    transition:color var(--ease),padding-left var(--ease),border-color var(--ease);
}
.dropdown-brands a:hover,
.dropdown-brands a:focus-visible { color:#000; padding-left:4px; border-color:#bdbdbd; }

.footer-list a {
    padding-block: 3px;
}

.dropdown-all {
    display: flex;
    min-height:42px;
    align-items:flex-end;
    justify-content:space-between;
    padding-top: 13px;
    margin-top: 16px;
    border-top: 1px solid var(--line);
    font-size:13px;
    line-height:20px;
    font-weight:650;
}
.dropdown-all::after { content:"\2192"; font-size:17px; line-height:20px; font-weight:400; }

@media (max-width: 1080px) and (min-width: 801px) {
    .nav-list { gap:0; }
    .nav-item > a { padding-left:12px; padding-right:12px; }
    .nav-item.has-dropdown > a { padding-right:28px; }
    .nav-toggle { right:3px; }
    .nav-dropdown { width:320px; }
}

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

/* All is a permanent header control on desktop and mobile. */
.all-menu-toggle.mobile-menu-toggle {
    display: flex;
}

@media (min-width: 801px) {
    .all-menu-toggle.mobile-menu-toggle {
        margin-right: 14px;
    }
}

.site-content {
    min-height: 0;
}

.hero {
    position: relative;
    display: grid;
    min-height: min(720px, 68vh);
    min-height: min(720px, 68dvh);
    align-items: end;
    overflow: hidden;
    background-color: var(--wash);
    background-position: center;
    background-size: cover;
}

.hero.has-image::before {
    position: absolute;
    inset: 0;
    content: "";
    background: rgba(255, 255, 255, 0.28);
}

.hero-copy {
    position: relative;
    z-index: 1;
    padding: 84px 0;
}

.hero h1 {
    max-width: 680px;
    margin: 0 0 18px;
    font: 600 56px/1.1 var(--font-display);
}

.hero p:not(.eyebrow) {
    max-width: 490px;
    margin: 0 0 26px;
    font-size: 17px;
}

.section {
    padding: 80px 0;
}

.home-modules { display: flex; flex-direction: column; background: #fff; }
.home-brands-module { order: 1; }
.home-products-module { order: 2; }
.home-popular-categories-module { order: 3; }
.home-reviews-module { order: 4; }
.home-module { padding: 32px 0; }
.home-module + .home-module { border-top: 0; }
.home-products-module { padding-top: 32px; padding-bottom: 32px; }
.home-products-module .module-header,
.home-popular-categories-module .module-header,
.home-brands-module .module-header,
.home-reviews-module .module-header { position: relative; display: block; text-align: center; }
.home-products-module .module-link,
.home-popular-categories-module .module-link { position: absolute; right: 0; bottom: 4px; }
.home-products-module .module-link { display: none; }
.home-products-module .eyebrow,
.home-popular-categories-module .eyebrow,
.home-brands-module .eyebrow,
.home-reviews-module .eyebrow { display: none; }
.module-header { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 24px; }
.module-title { margin: 0; font: 600 36px/40px var(--font-display); letter-spacing: -0.9px; }
.module-link { display: inline-flex; align-items: center; gap: 10px; font-size: 13px; font-weight: 600; }
.module-link span, .module-arrow { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 50%; background: var(--wash); font-size: 20px; }
.home-product-switcher { max-width: 100%; }
.home-product-tabs { display: flex; width: max-content; max-width: 100%; align-items: center; gap: 2px; margin: 0 auto 24px; padding: 3px; border-radius: 12px; background: var(--wash); }
.home-product-tab { display: inline-flex; min-height: 36px; align-items: center; gap: 5px; padding: 0 12px; color: var(--ink); border: 0; border-radius: 9px; background: transparent; font: 500 14px/20px var(--font-body); }
.home-product-tab.is-active { background: var(--paper); box-shadow: 0 1px 3px rgba(0,0,0,.10); }
.home-product-tab svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.home-product-panel { min-width: 0; }
.home-product-panel[hidden] { display: none; }
.home-product-rail { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.home-product-rail::-webkit-scrollbar { display: none; }
.home-product-card { min-width: 0; overflow: hidden; }
.home-product-card-media { position: relative; display: grid; aspect-ratio: 3 / 4; place-items: center; overflow: hidden; border-radius: 12px; background: var(--wash); }
.home-product-card-media img { display: block; width: 100%; height: auto; max-height: 100%; object-fit: contain; transition: transform 220ms ease; }
.home-product-card:hover .home-product-card-media img,
.home-product-card:focus-within .home-product-card-media img { transform: scale(1.025); }
.home-product-card-badge { position: absolute; top: 10px; left: 10px; display: inline-flex; min-height: 24px; align-items: center; gap: 4px; padding: 3px 9px; color: var(--paper); border-radius: 999px; background: var(--dark); font-size: 11px; font-weight: 700; line-height: 18px; }
.home-product-card-badge.is-hot { background: #f97316; }
.home-product-card-badge.is-new { background: var(--dark); }
.home-product-card-badge svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.home-product-card-body { padding-top: 9px; }
.home-product-card-title { display: block; overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; font-size: 14px; line-height: 20px; }
.home-product-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 7px; }
.home-product-card-price { color: var(--ink); font-size: 14px; line-height: 20px; font-weight: 700; }
.home-product-card-actions { display: inline-flex; align-items: center; gap: 4px; }
.home-product-card-actions .wishlist-button,
.home-product-card-cart { display: grid; width: 28px; height: 28px; place-items: center; padding: 0; color: var(--muted); border: 0; border-radius: 50%; background: transparent; }
.home-product-card-actions .wishlist-button:hover,
.home-product-card-actions .wishlist-button:focus-visible,
.home-product-card-cart:hover,
.home-product-card-cart:focus-visible { color: var(--ink); background: var(--wash); }
.home-product-card-actions svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.home-product-empty { display: grid; min-height: 140px; place-items: center; padding: 24px; border: 1px dashed var(--line); border-radius: 12px; color: var(--muted); text-align: center; }
.home-product-panel-footer { display: flex; justify-content: center; margin-top: 24px; }
.home-product-view-all { display: inline-flex; min-height: 36px; align-items: center; gap: 8px; padding: 0 18px; color: var(--ink); border: 1px solid var(--line); border-radius: 999px; font-size: 12px; font-weight: 600; text-transform: uppercase; }
.home-product-view-all:hover, .home-product-view-all:focus-visible { color: var(--paper); border-color: var(--ink); background: var(--ink); }
.home-popular-category-groups { display: grid; gap: 28px; }
.home-popular-category-group { min-width: 0; }
.home-popular-category-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.home-popular-category-header h3 { margin: 0; font-size: 22px; line-height: 28px; }
.home-popular-category-link { color: inherit; text-decoration: none; }
.home-popular-category-link:hover,
.home-popular-category-link:focus-visible { text-decoration: underline; text-underline-offset: 4px; }
.home-popular-category-header a { display: inline-flex; min-height: 44px; align-items: center; gap: 8px; color: var(--muted); font-size: 13px; font-weight: 600; }
.home-popular-category-header a:hover,
.home-popular-category-header a:focus-visible { color: var(--ink); }
.home-popular-brand-list { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.home-brands-title-link { position: relative; display: inline-flex; align-items: center; justify-content: center; min-height: 44px; color: inherit; text-decoration: none; }
.home-brands-title-link > span { position: absolute; left: calc(100% + 10px); top: 0; bottom: 0; display: inline-flex; align-items: center; opacity: .65; transition: transform 180ms ease; }
.home-brands-title-link svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.5; transform: rotate(-90deg); }
.home-brands-module .module-header { justify-content: center; text-align: center; }
.home-brands-module .module-header > div { width: 100%; }
.home-brands-title-link:hover > span { transform: translateX(3px); }
.home-brands-title-link:active { opacity: .7; }
.home-brands-title-link:focus-visible { outline: 2px solid currentColor; outline-offset: 6px; border-radius: 2px; }
@media (prefers-reduced-motion: reduce) { .home-brands-title-link > span { transition: none; } .home-brands-title-link:hover > span { transform: none; } }
.home-popular-brand-card { display: block; min-width: 0; overflow: hidden; color: var(--ink); border: 1px solid var(--line); border-radius: 12px; background: var(--paper); }
.home-popular-brand-media { aspect-ratio: 4 / 3; overflow: hidden; background: var(--wash); }
.home-popular-brand-media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 220ms ease; }
.home-popular-brand-card:hover .home-popular-brand-media img,
.home-popular-brand-card:focus-visible .home-popular-brand-media img { transform: scale(1.025); }
.home-popular-brand-footer { display: flex; min-height: 58px; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 14px; }
.home-popular-brand-footer strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 15px; }
.home-popular-brand-footer .module-arrow { flex: 0 0 30px; width: 30px; height: 30px; font-size: 18px; }
.home-brands-module { overflow: hidden; }
.home-brand-rail,
.home-brand-promos { overflow-x: auto; overflow-y: hidden; scrollbar-width: none; cursor: grab; overscroll-behavior-inline: contain; touch-action: auto; -webkit-overflow-scrolling: touch; }
.home-brand-rail::-webkit-scrollbar,
.home-brand-promos::-webkit-scrollbar { display: none; }
.home-brand-rail.is-dragging,
.home-brand-promos.is-dragging { cursor: grabbing; scroll-snap-type: none; user-select: none; }
.home-brand-item,
.home-brand-promo-card { transform: translateZ(0) scale(calc(.975 + var(--rail-focus, .5) * .025)); opacity: calc(.86 + var(--rail-focus, .5) * .14); will-change: transform, opacity; }
.home-brand-rail.is-dragging .home-brand-item,
.home-brand-promos.is-dragging .home-brand-promo-card { transition: none; }
@media (prefers-reduced-motion: reduce) {
    .home-brand-item,
    .home-brand-promo-card { transform: none; opacity: 1; will-change: auto; }
}
.home-brand-item,
.home-brand-promo-card { scroll-snap-align: start; }
.home-brand-track,
.home-brand-promo-track { display: flex; width: max-content; gap: 16px; position: relative; }
.home-brand-rail { width: 100%; margin: 0; padding: 4px 0 10px; }
.home-brand-item { flex: 0 0 290px; min-width: 0; }
.home-brand-card { display: block; overflow: hidden; color: var(--ink); background: var(--paper); border-radius: 26px; box-shadow: 0 4px 6px -1px rgba(0,0,0,.10), 0 2px 4px -2px rgba(0,0,0,.10); }
.home-brand-feature-media { aspect-ratio: 4 / 5; overflow: hidden; background: var(--wash); }
.home-brand-feature-media img { width: 100%; height: 100%; object-fit: contain; background: #fff; transition: transform 240ms ease; }
.home-brand-card:hover .home-brand-feature-media img,
.home-brand-card:focus-visible .home-brand-feature-media img { transform: scale(1.025); }
.home-brand-thumbs { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: -40px; padding: 0 12px; }
.home-brand-thumbs span { display: block; aspect-ratio: 1 / 1; overflow: hidden; border-radius: 18px; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.12), 0 0 0 1px rgba(0,0,0,.05); }
.home-brand-thumbs img { width: 100%; height: 100%; object-fit: contain; }
.home-brand-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px 12px; }
.home-brand-card-footer strong { font-size: 15px; font-weight: 600; }
.home-brand-card-footer .module-arrow { width: 30px; height: 30px; font-size: 18px; }
.home-brand-promos { width: 100%; margin: 24px 0 0; padding: 4px 0 8px; }
.home-brands-module .home-brand-rail { display: block; }
.home-brands-module .home-brand-promos { margin-top: 48px; }
.home-brand-promo-card { display: block; flex: 0 0 240px; color: var(--ink); }
.home-brand-promo-media { aspect-ratio: 3 / 4; overflow: hidden; border-radius: 14px; background: var(--wash); }
.home-brand-promo-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 240ms ease; }
.home-brand-promo-card:hover .home-brand-promo-media img,
.home-brand-promo-card:focus-visible .home-brand-promo-media img { transform: scale(1.025); }
.home-brand-promo-card > span { display: block; width: 100%; max-width: 100%; margin-top: 8px; padding: 8px 12px; border-radius: 14px; color: #fff; background: var(--dark); font-size: 12px; font-weight: 600; text-align: center; }
.home-review-modules { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.home-review-module-card { padding: 20px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); }

.section-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 24px;
}

.section-title {
    margin: 0;
    font: 600 30px/36px var(--font-display);
    letter-spacing: -0.75px;
}

.text-link,
.quick-view-link,
.woocommerce-page .woocommerce .woocommerce-MyAccount-content a {
    text-decoration: underline;
    text-underline-offset: 4px;
}

.category-grid,
.brand-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.category-showcase {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.category-card {
    position: relative;
    overflow: hidden;
    display: flex;
    min-height: 180px;
    flex-direction: column;
    justify-content: end;
    padding: 24px;
    background: var(--wash);
    transition: background-color var(--ease);
}

.category-card-image {
    position: absolute;
    inset: 0;
    opacity: .22;
}

.category-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.category-card h3,
.category-card span {
    position: relative;
    z-index: 1;
}

.category-card:hover,
.category-card:focus-visible {
    background: #ebe9e4;
}

.category-card h3 {
    margin: 0 0 8px;
    font-size: 21px;
}

.category-card-arrow {
    position: absolute;
    z-index: 1;
    top: 18px;
    right: 18px;
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    border-radius: 50%;
    background: rgba(255, 255, 255, .86);
    font-size: 20px;
}

.home-products {
    max-width: none;
    background: var(--wash);
}

.product-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.product-rail {
    grid-auto-flow: column;
    grid-auto-columns: minmax(220px, 1fr);
}

.home-popular {
    background: var(--paper);
}

.home-brands {
    background: var(--wash);
}

.brand-card {
    display: flex;
    min-height: 86px;
    flex-direction: column;
    justify-content: center;
    padding: 18px;
    border: 1px solid var(--line);
    background: var(--paper);
    font-weight: 600;
}

.brand-card span {
    margin-top: 6px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 400;
}

.brand-card-image {
    display: grid;
    min-height: 56px;
    margin-bottom: 12px;
    place-items: center;
}

.brand-card-image img {
    max-width: 100%;
    height: 56px;
    object-fit: contain;
}

.review-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.review-card {
    min-width: 0;
    padding: 20px;
    border: 1px solid var(--line);
    background: var(--paper);
}

.review-card-head {
    display: flex;
    align-items: center;
    gap: 12px;
}

.review-avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
}

.review-card-head strong,
.review-card-head span {
    display: block;
}

.review-card-head span {
    margin-top: 3px;
    color: var(--muted);
    font-size: 12px;
}

.review-rating {
    margin-top: 18px;
    color: #e7a900;
    letter-spacing: 2px;
}

.review-rating span {
    color: var(--line);
}

.review-card p {
    min-height: 72px;
    margin: 14px 0 16px;
    color: var(--muted);
    line-height: 1.55;
}

.review-product {
    display: flex;
    align-items: center;
    gap: 10px;
    padding-top: 12px;
    border-top: 1px solid var(--line);
    font-size: 12px;
}

.review-product img {
    width: 42px;
    height: 42px;
    object-fit: cover;
}

.product-grid > .empty-state {
    grid-column: 1 / -1;
}

.wishlist-button {
    display: grid;
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    place-items: center;
    padding: 0;
    border: 1px solid var(--line);
    background: var(--paper);
}

.wishlist-button.is-active svg {
    fill: currentColor;
}

.empty-state {
    padding: 72px 20px;
    text-align: center;
    background: var(--wash);
}

.empty-state h1,
.empty-state h2 {
    overflow-wrap: anywhere;
}

.empty-state p {
    max-width: 480px;
    margin: 10px auto 24px;
    color: var(--muted);
}

.page-heading {
    padding: 70px 0 32px;
    border-bottom: 1px solid var(--line);
}

.page-heading h1 {
    margin: 0;
    overflow-wrap: anywhere;
    font: 600 36px/40px var(--font-display);
    letter-spacing: -0.9px;
}

.entry-content {
    max-width: 760px;
    padding-top: 32px;
}

.site-footer {
    width: min(calc(100% - 32px), var(--max));
    margin: 0 auto 16px;
    color: var(--muted);
    background: var(--canvas);
    border-top: 1px solid var(--line);
    font-size: 14px;
    line-height: 20px;
}

.footer-inner {
    padding: 32px 24px;
}

.footer-main {
    display: grid;
    grid-template-columns: minmax(200px, 1fr) minmax(320px, 1.55fr) minmax(280px, 1.35fr);
    gap: 48px;
    align-items: start;
}

.footer-brand,
.footer-newsletter,
.footer-column {
    min-width: 0;
}

.footer-brand-link {
    display: inline-flex;
    min-height: 30px;
    align-items: center;
    gap: 8px;
    color: var(--ink);
    font-weight: 700;
}

.footer-brand-link img {
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
    object-fit: contain;
    border-radius: 4px;
}

.footer-review-link {
    display: flex;
    width: max-content;
    max-width: 100%;
    flex-direction: column;
    gap: 6px;
    margin-top: 16px;
    color: var(--muted);
    font-size: 13px;
    transition: color var(--ease);
}

.footer-review-link:hover,
.footer-review-link:focus-visible,
.footer-link-list a:hover,
.footer-link-list a:focus-visible,
.footer-legal a:hover,
.footer-legal a:focus-visible {
    color: var(--ink);
}

.footer-review-stars {
    display: flex;
    gap: 0;
    color: #facc15;
}

.footer-review-stars span,
.footer-review-stars svg {
    display: block;
    width: 16px;
    height: 16px;
}

.footer-review-stars svg {
    fill: none;
    stroke: currentColor;
    stroke-width: var(--icon-stroke);
    stroke-linecap: round;
    stroke-linejoin: round;
}

.footer-review-stars .is-filled svg {
    fill: currentColor;
}

.footer-socials {
    display: flex;
    gap: 12px;
    margin-top: 16px;
}

.footer-socials a {
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    color: var(--muted);
    border-radius: 50%;
    transition: color var(--ease), background-color var(--ease);
}

.footer-socials a:hover,
.footer-socials a:focus-visible {
    color: var(--ink);
    background: var(--wash);
}

.footer-socials svg,
.footer-contact-list svg,
.footer-newsletter-form svg,
.footer-secure-payment svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: var(--icon-stroke);
    stroke-linecap: round;
    stroke-linejoin: round;
    vector-effect: non-scaling-stroke;
}

.footer-links {
    display: grid;
    grid-template-columns: minmax(190px, 1.3fr) minmax(120px, 0.7fr);
    gap: 32px;
}

.footer-column h2,
.footer-newsletter h2 {
    margin: 0 0 12px;
    color: var(--ink);
    font: 700 14px/20px var(--font-body);
}

.footer-link-list {
    display: grid;
    gap: 8px;
    padding: 0;
    margin: 0;
    list-style: none;
}

.footer-link-list a {
    display: flex;
    min-height: 20px;
    align-items: center;
    color: var(--muted);
    transition: color var(--ease);
}

.footer-contact-list a {
    gap: 8px;
}

.footer-contact-list svg {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
}

.footer-newsletter p {
    margin: 0 0 12px;
    color: var(--muted);
    font-size: 12px;
    line-height: 16px;
}

.footer-newsletter-form {
    display: flex;
    gap: 8px;
}
.footer-newsletter-form { width: 348px; max-width: 100%; }
.footer-newsletter-form input[type="email"] { flex: 1 1 211px; height: 42px; border-radius: 10px; }
.footer-newsletter-form button[type="submit"] { width: 129px; min-width: 129px; height: 42px; border-radius: 10px; }
.footer-newsletter .footer-newsletter-status { margin: 8px 0 0; font-size: 12px; line-height: 16px; }
.footer-newsletter .footer-newsletter-status.is-success { color: #08783e; }
.footer-newsletter .footer-newsletter-status.is-error { color: #c62828; }

.footer-newsletter-form input {
    width: 100%;
    min-width: 0;
    height: 38px;
    padding: 8px 12px;
    color: var(--ink);
    border: 1px solid var(--line);
    border-radius: 8px;
    outline: 0;
    background: var(--paper);
}

/* Honeypot input also carries WordPress' screen-reader class. Restore its
 * hidden geometry after the newsletter field rule so it cannot create a
 * document-wide horizontal scrollbar on mobile browsers. */
.footer-newsletter-form input.screen-reader-text {
    position: absolute !important;
    width: 1px !important;
    min-width: 1px !important;
    max-width: 1px !important;
    height: 1px !important;
    min-height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.footer-newsletter-form input::placeholder {
    color: var(--muted);
}

.footer-newsletter-form input:focus {
    border-color: var(--ink);
}

.footer-newsletter-form button {
    display: inline-flex;
    min-width: 118px;
    height: 38px;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 8px 16px;
    color: #ffffff;
    border: 0;
    border-radius: 8px;
    background: var(--ink);
    font-size: 14px;
    font-weight: 600;
    transition: background-color var(--ease);
}

.footer-newsletter-form button:hover,
.footer-newsletter-form button:focus-visible {
    background: #3f3f46;
}

.footer-newsletter-form svg {
    width: 14px;
    height: 14px;
}

.footer-preferences {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
    padding-top: 24px;
    margin-top: 24px;
    border-top: 1px solid var(--line);
}

.footer-preference {
    display: flex;
    align-items: center;
    gap: 12px;
}

.footer-preference-label {
    color: var(--muted);
    font-size: 10px;
    font-weight: 600;
    line-height: 16px;
    text-transform: uppercase;
}

.footer-select {
    position: relative;
}

.footer-select summary {
    display: inline-flex;
    min-height: 32px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 12px;
    color: var(--muted);
    border-radius: 18px;
    cursor: pointer;
    list-style: none;
    transition: color var(--ease), background-color var(--ease);
}

.footer-select summary::-webkit-details-marker {
    display: none;
}

.footer-select summary:hover,
.footer-select summary:focus-visible,
.footer-select[open] summary {
    color: var(--ink);
    background: var(--wash);
}

.footer-select summary svg {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: currentColor;
    stroke-width: var(--icon-stroke);
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform var(--ease);
}

.footer-select[open] summary svg {
    transform: rotate(180deg);
}

.footer-select small {
    color: var(--muted);
    font-size: inherit;
}

.footer-locale-code {
    display: inline-grid;
    min-width: 24px;
    height: 20px;
    place-items: center;
    padding: 0 4px;
    color: var(--ink);
    border: 1px solid var(--line);
    border-radius: 4px;
    font-size: 10px;
    font-weight: 700;
    line-height: 18px;
}

.footer-select-menu {
    position: absolute;
    bottom: calc(100% + 8px);
    left: 50%;
    z-index: 5;
    display: grid;
    width: max-content;
    min-width: 180px;
    max-height: 264px;
    overflow-y: auto;
    padding: 6px;
    color: var(--ink);
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--paper);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.22);
    transform: translateX(-50%);
}

.footer-select-menu button {
    display: flex;
    min-height: 36px;
    align-items: center;
    gap: 8px;
    padding: 7px 10px;
    color: var(--ink);
    border: 0;
    border-radius: 6px;
    background: transparent;
    text-align: left;
}

.footer-select-menu button:hover,
.footer-select-menu button:focus-visible {
    background: var(--wash);
}

.footer-select-menu .footer-locale-code {
    color: var(--ink);
    border-color: var(--line);
}

.footer-appearance-select summary {
    width: 36px;
    height: 36px;
    padding: 0;
    border-radius: 50%;
}

.footer-appearance-select summary svg {
    width: 18px;
    height: 18px;
}

.footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding-top: 24px;
    margin-top: 24px;
    color: var(--muted);
    border-top: 1px solid var(--line);
    font-size: 12px;
    line-height: 20px;
}

.footer-legal {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 24px;
}

.footer-legal p {
    margin: 0;
}

.footer-legal a {
    text-decoration: underline;
    text-underline-offset: 2px;
    transition: color var(--ease);
}

.footer-payments {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}

.footer-payments > span {
    display: inline-flex;
    min-height: 28px;
    align-items: center;
    justify-content: center;
    padding: 3px 8px;
    color: var(--ink);
    border: 1px solid var(--line);
    border-radius: 4px;
    background: var(--paper);
    font-size: 10px;
    font-weight: 700;
    line-height: 16px;
}

.footer-payments .footer-secure-payment {
    gap: 6px;
    color: var(--muted);
    border: 0;
    background: transparent;
    font-size: 12px;
    font-weight: 500;
}

.footer-secure-payment svg {
    width: 16px;
    height: 16px;
}

.overlay {
    position: fixed;
    inset: 0;
    z-index: 50;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--ease), visibility var(--ease);
}

/* Closed fixed panels must not contribute their off-canvas width to the
 * document. This is especially important on iOS, where body overflow rules
 * alone do not always prevent a viewport-wide horizontal drag. */
.overlay:not(.is-open) {
    display: none;
}

.overlay.is-open {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
}

.overlay-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.46);
}

.overlay-surface {
    position: absolute;
    top: 0;
    right: 0;
    width: min(420px, 100%);
    height: 100%;
    height: 100dvh;
    padding: max(24px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) 24px;
    overflow: auto;
    background: var(--paper);
    transform: translateX(100%);
    transition: transform 240ms ease;
}

.overlay.is-open .overlay-surface {
    transform: translateX(0);
}

.account-drawer { display: flex; width: 384px; max-width: 100%; flex-direction: column; padding: 0; overflow: hidden; }
.account-drawer .overlay-head { position: relative; flex: 0 0 48px; min-height: 48px; margin: 0; padding: 12px 24px; border: 0; }
.account-drawer .overlay-head strong { font-family: var(--font-display); font-size: 16px; line-height: 24px; font-weight: 500; }
.account-drawer .overlay-head .icon-button { position: absolute; top: 16px; right: 16px; width: 32px; height: 32px; border-radius: 50%; background: var(--wash); }
.account-drawer-profile { display: flex; min-height: 64px; flex: 0 0 64px; align-items: center; gap: 12px; padding: 10px 28px; }
.account-drawer-avatar { display: grid; width: 40px; height: 40px; flex: 0 0 40px; place-items: center; border-radius: 50%; object-fit: cover; background: #f5f5f5; color: #404040; font-size: 14px; font-weight: 500; }
.account-drawer-profile-copy { min-width: 0; }
.account-drawer-profile h2 { overflow: hidden; margin: 0; text-overflow: ellipsis; white-space: nowrap; font-size: 16px; line-height: 24px; font-weight: 600; }
.account-drawer-profile p { overflow: hidden; margin: 0; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; font-size: 14px; line-height: 20px; }
.account-drawer-credit { display: flex; min-height: 44px; flex: 0 0 44px; align-items: center; justify-content: space-between; padding: 10px 28px; border: 0; border-radius: 0; color: var(--ink); background: transparent; }
.account-drawer-credit:hover, .account-drawer-credit:focus-visible { color: var(--ink); background: var(--wash); }
.account-drawer-credit-label { display: inline-flex; min-width: 0; align-items: center; gap: 12px; font-size: 16px; line-height: 24px; font-weight: 500; }
.account-drawer-credit-icon, .account-drawer-link-icon, .account-drawer-dark-icon { display: grid; width: 20px; height: 20px; flex: 0 0 20px; place-items: center; color: var(--muted); }
.account-drawer-credit-icon svg, .account-drawer-link-icon svg, .account-drawer-dark-icon svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.account-drawer-credit strong { font-size: 16px; line-height: 24px; font-weight: 600; }
.account-drawer-credit .woocommerce-Price-amount { font: inherit; }
.account-drawer-separator { flex: 0 0 1px; height: 1px; margin: 4px 0; background: var(--line); }
.account-drawer-links { min-height: 0; flex: 1 1 auto; overflow-y: auto; padding: 0 16px; scrollbar-width: thin; }
.account-drawer-links a { display: flex; min-height: 44px; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 6px; color: var(--ink); font-size: 16px; line-height: 24px; transition: background-color 180ms ease; }
.account-drawer-links a:hover, .account-drawer-links a:focus-visible { color: var(--ink); background: var(--wash); }
.account-drawer-locale { display: grid; min-height: 75px; flex: 0 0 75px; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; padding: 10px 28px; border-top: 1px solid var(--line); }
.account-drawer-locale > div { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: 4px; }
.account-drawer-locale small { color: var(--muted); font-size: 12px; line-height: 16px; font-weight: 500; }
.account-drawer-locale button { display: inline-flex; min-height: 34px; align-items: center; gap: 6px; padding: 6px 12px; border: 1px solid var(--line); border-radius: 999px; color: var(--ink); background: var(--paper); white-space: nowrap; font-size: 14px; line-height: 20px; font-weight: 500; }
.account-drawer-locale button:hover, .account-drawer-locale button:focus-visible { background: var(--wash); }
.account-drawer-locale button span { font-size: 16px; line-height: 1; }
.account-drawer-theme { display: flex; min-height: 45px; flex: 0 0 45px; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 28px; border-top: 1px solid var(--line); }
.account-drawer-theme > span { display: inline-flex; align-items: center; gap: 12px; font-size: 16px; line-height: 24px; font-weight: 500; }
.account-drawer-theme label { display: flex; min-width: 44px; min-height: 44px; align-items: center; justify-content: flex-end; cursor: pointer; }
.account-drawer-theme input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.account-drawer-switch { display: inline-flex; width: 36px; height: 20px; align-items: center; padding: 2px; border-radius: 999px; background: #d4d4d4; transition: background-color 180ms ease; }
.account-drawer-switch i { display: block; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.18); transition: transform 180ms ease; }
.account-drawer-theme input:focus-visible + .account-drawer-switch { outline: 2px solid var(--focus); outline-offset: 2px; }
.account-drawer-theme input:checked + .account-drawer-switch { background: var(--dark); }
.account-drawer-theme input:checked + .account-drawer-switch i { transform: translateX(16px); }
.account-drawer-footer { min-height: 73px; flex: 0 0 73px; padding: 12px 24px 16px; border-top: 1px solid var(--line); background: var(--wash); }
.account-drawer-auth { display: flex; width: 100%; min-height: 44px; align-items: center; justify-content: center; border: 1px solid #d4d4d4; border-radius: 999px; color: var(--ink); background: var(--paper); font-size: 14px; line-height: 20px; font-weight: 500; }
.account-drawer-auth:hover, .account-drawer-auth:focus-visible { color: var(--ink); background: #f0f0f0; }
body.chm-dark-mode { --ink: #f5f5f5; --muted: #a3a3a3; --paper: #181818; --canvas: #101010; --wash: #252525; --line: #383838; --dark: #f5f5f5; }
body.chm-dark-mode .account-drawer-auth { color: #171717; background: #f5f5f5; }

.cart-drawer {
    display: flex;
    flex-direction: column;
    width: min(435px, 100%);
    padding: 0;
}

.cart-drawer .overlay-head {
    flex: 0 0 auto;
    padding: 22px 24px 18px;
    margin: 0;
}

.cart-drawer .overlay-head > div {
    display: grid;
    gap: 4px;
}

.cart-drawer .overlay-head h2 {
    margin: 0;
    font-size: 18px;
}

.cart-drawer .overlay-head p {
    margin: 0;
}

.cart-drawer-description {
    color: var(--muted);
    font-size: 12px;
}

.chm-cart-form-notice {
    margin: 0 0 14px;
    padding: 10px 12px;
    border: 1px solid #c33;
    color: #8b1e1e;
    background: #fff7f7;
    font-size: 13px;
}

.cart-drawer-content {
    display: flex;
    min-height: 0;
    flex: 1;
    flex-direction: column;
    overflow: auto;
    padding: 0 24px 24px;
}

.cart-shipping-progress {
    padding: 14px 0 18px;
    border-bottom: 1px solid var(--line);
}

.cart-shipping-progress p {
    margin: 0 0 10px;
    color: var(--muted);
    font-size: 13px;
}

.cart-progress-track {
    position: relative;
    height: 8px;
    overflow: hidden;
    border-radius: 999px;
    background: var(--line);
}

.cart-progress-track span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--dark);
    transition: width 240ms ease;
}

.cart-progress-meta,
.cart-drawer-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.cart-progress-meta {
    margin-top: 7px;
    color: var(--muted);
    font-size: 11px;
}

.cart-drawer-items {
    display: grid;
    gap: 18px;
    padding: 20px 0;
    margin: 0;
    list-style: none;
}

.cart-drawer-item {
    display: grid;
    grid-template-columns: 80px minmax(0, 1fr);
    gap: 14px;
}

.cart-drawer-thumb {
    display: block;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    border-radius: 10px;
    background: var(--wash);
}

.cart-drawer-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cart-drawer-item-main {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.cart-drawer-item-title {
    margin: 0;
    overflow-wrap: anywhere;
    font-size: 13px;
    font-weight: 600;
}

.cart-drawer-item-meta {
    display: grid;
    gap: 2px;
    margin-top: 4px;
    color: var(--muted);
    font-size: 12px;
}

.cart-drawer-item-bottom {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: auto;
    padding-top: 12px;
}

.cart-drawer-item-bottom > strong {
    margin-left: auto;
    font-size: 13px;
    white-space: nowrap;
}

.cart-quantity {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--line);
    border-radius: 999px;
}

.cart-quantity button,
.cart-quantity span {
    display: grid;
    width: 28px;
    height: 28px;
    place-items: center;
}

.cart-quantity button {
    padding: 0;
    border: 0;
    background: transparent;
    font-size: 16px;
}

.cart-quantity button:hover,
.cart-quantity button:focus-visible {
    background: var(--wash);
}

.cart-quantity span {
    font-size: 12px;
}

.cart-item-remove {
    min-height: 30px;
    padding: 0 4px;
    border: 0;
    color: var(--muted);
    background: transparent;
    font-size: 12px;
}

.cart-item-remove:hover,
.cart-item-remove:focus-visible {
    color: var(--ink);
    background: var(--wash);
}

.cart-drawer-empty {
    padding: 36px 0;
    margin: 0;
    color: var(--muted);
    text-align: center;
}

.cart-drawer-summary {
    padding: 16px 0;
    margin-top: auto;
    border-top: 1px solid var(--line);
    font-size: 14px;
}

.cart-drawer-link {
    display: flex;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    margin-top: 4px;
    color: #fff;
    background: var(--dark);
    font-size: 13px;
    font-weight: 600;
}

.cart-drawer-link:hover,
.cart-drawer-link:focus-visible {
    color: #fff;
    background: #333;
}

.overlay-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding-bottom: 18px;
    margin-bottom: 24px;
    border-bottom: 1px solid var(--line);
}

.woocommerce-page-shell .woocommerce-content {
    padding-top: 26px;
}

.woocommerce-page .woocommerce {
    font-size: 15px;
}

.woocommerce-page .woocommerce h2,
.woocommerce-page .woocommerce h3 {
    font-family: var(--font-body);
    font-weight: 500;
}

.woocommerce-page .woocommerce a.button,
.woocommerce-page .woocommerce button.button,
.woocommerce-page .woocommerce input.button {
    display: inline-flex;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    padding: 0 20px;
    color: #ffffff;
    border: 1px solid var(--ink);
    border-radius: 0;
    background: var(--dark);
    font-weight: 600;
    transition: background-color var(--ease);
}

.woocommerce-page .woocommerce a.button:hover,
.woocommerce-page .woocommerce button.button:hover,
.woocommerce-page .woocommerce input.button:hover {
    color: #ffffff;
    background: #333333;
}

.woocommerce-page .woocommerce a.button.disabled,
.woocommerce-page .woocommerce button.button.disabled,
.woocommerce-page .woocommerce button.button:disabled,
.woocommerce-page .woocommerce input.button:disabled {
    cursor: not-allowed;
    opacity: 0.5;
}

.woocommerce-page .woocommerce input.input-text,
.woocommerce-page .woocommerce select,
.woocommerce-page .woocommerce textarea {
    min-height: 46px;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 0;
    background: var(--paper);
}

.woocommerce-page .woocommerce textarea {
    min-height: 120px;
}

.woocommerce-page .woocommerce .woocommerce-checkout-review-order {
    padding-top: 18px;
    border-top: 1px solid var(--line);
}

.woocommerce-page .woocommerce .woocommerce-info,
.woocommerce-page .woocommerce .woocommerce-message,
.woocommerce-page .woocommerce .woocommerce-error {
    border-top-color: var(--ink);
    border-radius: 0;
    background: var(--wash);
}

body.chm-toast-page .woocommerce-notices-wrapper.chm-toast-notices {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 1000;
    width: min(440px, calc(100vw - 32px));
    margin: 0;
    pointer-events: none;
}

body.chm-toast-page .chm-toast-notices > * {
    margin: 0 0 10px !important;
    pointer-events: auto;
    box-shadow: 0 12px 30px rgba(17, 17, 17, 0.16);
    animation: chm-toast-in 180ms ease-out;
    transition: opacity 180ms ease, transform 180ms ease;
}

body.chm-toast-page .chm-toast-notices > *.chm-toast-leaving {
    opacity: 0;
    transform: translateY(8px);
}

@keyframes chm-toast-in {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

.woocommerce-page .woocommerce form.checkout_coupon {
    padding: 22px;
    border: 1px solid var(--line);
    border-radius: 0;
}

.woocommerce-page .woocommerce .quantity .qty {
    min-height: 42px;
    border: 1px solid var(--line);
    border-radius: 0;
}

.woocommerce-page .woocommerce .woocommerce-MyAccount-navigation {
    width: 100%;
    float: none;
    margin-bottom: 28px;
    border-bottom: 1px solid var(--line);
}

.woocommerce-page .woocommerce .woocommerce-MyAccount-navigation ul {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 0;
    margin: 0;
    list-style: none;
}

.woocommerce-page .woocommerce .woocommerce-MyAccount-navigation li {
    margin: 0;
}

.woocommerce-page .woocommerce .woocommerce-MyAccount-navigation a {
    display: flex;
    min-height: 44px;
    align-items: center;
    padding: 0 12px;
    border: 1px solid var(--line);
}

.woocommerce-page .woocommerce .woocommerce-MyAccount-navigation .is-active a {
    color: #ffffff;
    border-color: var(--dark);
    background: var(--dark);
}

.woocommerce-page .woocommerce .woocommerce-MyAccount-content {
    width: 100%;
    float: none;
}

.woocommerce-page .woocommerce .woocommerce-form__label-for-checkbox {
    display: flex;
    align-items: center;
    gap: 8px;
}

.woocommerce-page .woocommerce .woocommerce-form__label-for-checkbox input {
    width: 18px;
    height: 18px;
}

@media (max-width: 1000px) {
    .wordmark { flex-basis: 165px; width: min(165px, 22vw); margin-right: 20px; }
    .header-search { flex-basis: 0; }
    .header-actions { margin-left: auto; gap: 16px; }

    .hero h1 {
        font-size: 58px;
    }

    .product-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .footer-main {
        gap: 32px;
    }
}

@media (max-width: 800px) {
    .site-header,
    .site-content,
    .site-footer,
    .woocommerce-page-shell {
        max-width: 100%;
    }

    .overlay {
        width: 100vw;
        max-width: 100%;
        overflow: hidden;
    }

    .overlay-surface,
    .account-drawer,
    .cart-drawer {
        width: min(384px, 86vw);
        max-width: 100%;
        overflow-x: hidden;
    }

    .overlay-surface {
        overflow-y: auto;
    }

    .account-drawer-profile,
    .account-drawer-credit,
    .account-drawer-locale,
    .account-drawer-theme,
    .account-drawer-credit-label,
    .account-drawer-credit strong,
    .account-drawer-theme > span,
    .account-drawer-locale button {
        min-width: 0;
    }

    .account-drawer-credit-label {
        flex: 1 1 auto;
    }

    .account-drawer-credit strong,
    .account-drawer-theme > span,
    .account-drawer-locale button {
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .shell {
        width: min(calc(100% - 32px), var(--max));
    }

    .topbar .shell > span {
        overflow: hidden;
        white-space: nowrap;
        text-overflow: ellipsis;
    }

    .header-main {
        display: flex;
        min-height: 64px;
        position: relative;
        gap: 0;
        white-space: normal;
    }

    .all-menu-toggle { display:flex; min-width:44px; font-size:0; }
    .site-header .header-main > .all-menu-toggle { min-width:44px; width:44px; flex:0 0 44px; justify-content:center; padding-right:0; }
    .all-menu-toggle span { display:none; }
    .header-main { display:flex; }
    .wordmark { position: absolute; left: 50%; z-index: 1; flex: 0 0 auto !important; width: auto !important; max-width: none; margin-right: 0; transform: translateX(-50%); }
    .wordmark a { justify-content:center; }
    .wordmark a > span { display: none; }
    .wordmark img { flex: 0 0 32px; width: 32px; height: 32px; max-width: 32px; max-height: 32px; }
    .mobile-search-toggle { flex: 0 0 44px; width: 44px; height: 44px; margin-left: auto; margin-right: 6px; }
    .header-actions { flex:0 0 68px; width:68px; gap:16px; margin-left:0; margin-right:8px; }
    .header-actions .icon-button { width:24px; height:24px; flex:0 0 24px; }
    .header-actions .icon-button:first-child { width:28px; flex-basis:28px; }
    .header-actions .icon-button svg { width:22px; height:22px; }

    .header-main > .header-search { display: none; }
    .site-header .header-main > .mobile-search-toggle { display: grid !important; }

    .topbar { display: none; }
    .header-main { min-height: 64px; }
    .search-form { border-radius: 999px; }

    .mobile-menu-toggle,
    .mobile-search-toggle {
        display: grid !important;
    }

    .mobile-search-toggle,
    .mobile-only {
        display: grid;
    }

    .header-search,
    .desktop-nav {
        display: none;
    }

    .wordmark {
        overflow: hidden;
        text-align: center;
        font-size: 17px;
    }

    .wordmark a {
        max-width: 100%;
        overflow: hidden;
    }

    .all-drawer { width:min(384px,100%); }

    .overlay .nav-list {
        display: block;
    }

    .overlay .nav-item > a {
        min-height: 48px;
        justify-content: space-between;
        padding: 0;
        border-bottom: 1px solid var(--line);
    }

    .overlay .nav-item.has-dropdown > a { padding-right: 40px; }
    .overlay .nav-item.has-dropdown > a svg { display: none; }
    .overlay .nav-toggle { top: 24px; right: 0; display: grid; }

    .overlay .nav-dropdown {
        position: static;
        display: none;
        width: auto;
        padding: 14px 0 18px;
        visibility: hidden;
        border: 0;
        border-bottom: 1px solid var(--line);
        opacity: 0;
        pointer-events: none;
        transform: none;
    }

    .overlay .nav-item.is-expanded > .nav-dropdown { display: block; visibility: visible; opacity: 1; pointer-events: auto; }

    .hero {
        min-height: 62vh;
        min-height: 62dvh;
    }

    .hero-copy {
        padding: 48px 0;
    }

    .hero h1 {
        font-size: 44px;
    }

    .section {
        padding: 52px 0;
    }

    .home-module { padding: 32px 0; }
    .module-title { font-size: 30px; line-height: 36px; letter-spacing: -0.75px; }
    .home-product-tabs { margin-bottom: 20px; }
    .home-product-rail { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
    .home-product-card { min-width: 0; }
    .home-product-card-media { aspect-ratio: 3 / 4; }
    .home-product-card-body { padding-top: 8px; }
    .home-product-card-title { font-size: 13px; line-height: 18px; }
    .home-product-card-footer { margin-top: 5px; }
    .home-product-card-actions .wishlist-button,
    .home-product-card-cart { width: 26px; height: 26px; }
    .home-product-panel-footer { margin-top: 20px; }
    .home-popular-category-groups { gap: 24px; }
    .home-popular-category-header { margin-bottom: 10px; }
    .home-popular-category-header h3 { font-size: 19px; line-height: 26px; }
    .home-popular-category-header a { min-height: 44px; }
    .home-popular-brand-list { display: flex; overflow-x: auto; gap: 12px; margin-right: -16px; padding: 0 16px 8px 0; overscroll-behavior-inline: contain; scroll-snap-type: x proximity; scrollbar-width: none; }
    .home-popular-brand-list::-webkit-scrollbar { display: none; }
    .home-popular-brand-card { flex: 0 0 min(76vw,280px); scroll-snap-align: start; }
    .home-review-modules { display: flex; overflow-x: auto; gap: 10px; padding-bottom: 8px; }
    .home-review-module-card { flex: 0 0 84vw; }

    .page-heading {
        padding: 48px 0 28px;
    }

    .page-heading h1 {
        font-size: 40px;
    }

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

    .category-showcase {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px;
    }

    .product-rail {
        display: flex;
        overflow-x: auto;
        margin-right: -16px;
        padding-right: 16px;
        scroll-snap-type: x proximity;
    }

    .review-rail {
        display: flex;
        overflow-x: auto;
        margin-right: -16px;
        padding-right: 16px;
        scroll-snap-type: x proximity;
    }

    .review-rail .review-card {
        flex: 0 0 min(82vw, 340px);
        scroll-snap-align: start;
    }

    .site-footer {
        width: calc(100% - 32px);
    }

    .footer-inner {
        padding: 32px 24px;
    }

    .footer-main {
        display: flex;
        flex-direction: column;
        gap: 0;
    }

    .footer-links {
        order: 1;
        width: 100%;
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .footer-column h2,
    .footer-link-list,
    .footer-link-list a {
        font-size: 16px;
        line-height: 24px;
    }

    .footer-column h2 {
        margin-bottom: 12px;
    }

    .footer-link-list a {
        min-height: 24px;
    }

    .footer-contact-list svg {
        width: 20px;
        height: 20px;
        flex-basis: 20px;
    }

    .footer-newsletter {
        order: 2;
        width: 100%;
        margin-top: 24px;
        text-align: center;
    }

    .footer-brand {
        display: flex;
        order: 3;
        width: 100%;
        flex-direction: column;
        align-items: center;
        padding-top: 24px;
        margin-top: 24px;
        border-top: 1px solid var(--line);
        text-align: center;
    }

    .footer-socials {
        justify-content: center;
    }

    .footer-preferences {
        flex-direction: column;
        gap: 16px;
    }

    .footer-preference {
        flex-direction: column;
        gap: 6px;
    }

    .footer-bottom {
        flex-direction: column;
        text-align: center;
    }

    .footer-legal {
        justify-content: center;
    }

    .footer-payments {
        justify-content: center;
    }

    .woocommerce-page-shell {
        padding-top: 34px;
    }

    .woocommerce-page .woocommerce .woocommerce-MyAccount-navigation ul {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .woocommerce-page .woocommerce .woocommerce-MyAccount-navigation a {
        justify-content: center;
        padding: 0 6px;
        text-align: center;
        font-size: 13px;
    }

    .woocommerce-page .woocommerce .col2-set,
    .woocommerce-page .woocommerce .col2-set .col-1,
    .woocommerce-page .woocommerce .col2-set .col-2,
    .woocommerce-page .woocommerce .form-row {
        width: 100%;
        float: none;
    }

    .woocommerce-page .woocommerce form.checkout_coupon {
        padding: 16px;
    }

    .woocommerce-page .woocommerce a.button,
    .woocommerce-page .woocommerce button.button,
    .woocommerce-page .woocommerce input.button {
        width: 100%;
    }
}

/* Homepage reviews: reference-style summary pill and data-backed review cards. */
.home-reviews-module { background: var(--canvas); }
.home-review-summary { width: fit-content; min-width: 208px; margin: 0 auto 26px; padding: 14px 20px 15px; border-radius: 16px; color: #fff; background: #0b0b0b; text-align: center; }
.home-review-summary .home-review-stars { color: #ffc400; font-size: 19px; line-height: 22px; letter-spacing: 1px; }
.home-review-summary strong { margin-left: 8px; font-size: 14px; }
.home-review-summary span { display: block; margin-top: 4px; font-size: 12px; }
.home-review-grid { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 14px; }
.home-review-card { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: var(--paper); }
.home-review-image { aspect-ratio: 1 / 1.08; overflow: hidden; background: var(--wash); }
.home-review-image { position: relative; }
.home-review-image img { display: none; width: 100%; height: 100%; object-fit: cover; }
.home-review-image img.is-active { display: block; }
.home-review-counter { position: absolute; top: 8px; right: 8px; z-index: 2; padding: 2px 6px; border-radius: 999px; color: #fff; background: rgba(0,0,0,.72); font-size: 11px; }
.home-review-gallery-prev,
.home-review-gallery-next { position: absolute; top: 50%; z-index: 2; display: grid; width: 22px; height: 22px; place-items: center; border: 0; border-radius: 50%; color: #222; background: rgba(255,255,255,.9); font-size: 20px; line-height: 1; transform: translateY(-50%); cursor: pointer; }
.home-review-gallery-prev { left: 6px; }
.home-review-gallery-next { right: 6px; }
.home-review-body { padding: 10px; }
.home-review-body > strong { font-size: 14px; }
.home-review-verified { display: inline-grid; width: 13px; height: 13px; margin-left: 4px; place-items: center; border: 1px solid #4285f4; border-radius: 50%; color: #4285f4; font-size: 9px; }
.home-review-body .home-review-stars { margin: 4px 0; color: #ffc400; font-size: 16px; line-height: 18px; letter-spacing: 1px; }
.home-review-body p { min-height: 54px; margin: 0; color: var(--muted); font-size: 12px; line-height: 18px; }
.home-review-product { display: flex; min-height: 48px; align-items: center; gap: 8px; margin-top: 10px; padding-top: 9px; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; line-height: 16px; }
.home-review-product img { width: 34px; height: 34px; flex: 0 0 34px; object-fit: cover; border-radius: 4px; }
.home-review-card.is-placeholder .home-review-image { background: linear-gradient(135deg,#f5f5f5,#e9e9e9); }
.home-review-card.is-placeholder .home-review-body { color: #c4c4c4; }
.home-review-view-all { display: flex; width: fit-content; align-items: center; gap: 18px; margin: 28px auto 0; padding: 12px 24px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); font-size: 14px; }
.home-review-view-all:hover { color: var(--ink); border-color: var(--ink); }
@media (max-width: 800px) {
    .home-review-summary { margin-bottom: 20px; }
    .home-review-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; overflow: visible; padding-bottom: 0; }
    .home-review-card { min-width: 0; }
    .home-review-card:nth-child(n+7) { display: none; }
}

/* Popular Categories follows the reference card geometry: a rounded group with a 2x2 brand grid. */
.home-popular-category-groups { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.home-popular-category-group { overflow: hidden; padding: 20px; border: 1px solid var(--line); border-radius: 26px; background: var(--paper); }
.home-popular-category-header { margin-bottom: 18px; }
.home-popular-category-header h3 { font-size: 28px; line-height: 32px; }
.home-popular-category-arrow { display: grid; width: 36px; height: 36px; flex: 0 0 36px; place-items: center; border-radius: 50%; background: var(--wash); color: var(--ink); font-size: 20px; }
.home-popular-brand-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.home-popular-brand-card { border: 0; border-radius: 18px; background: var(--wash); }
.home-popular-brand-media { aspect-ratio: 1 / 1; }
.home-popular-brand-footer { position: relative; min-height: 0; margin-top: -46px; padding: 28px 10px 10px; color: #fff; background: linear-gradient(transparent, rgba(0,0,0,.72)); }
.home-popular-brand-footer strong { color: inherit; font-size: 14px; }
@media (max-width: 800px) {
    .home-popular-category-groups { display: flex; gap: 12px; overflow-x: auto; padding-bottom: 6px; scrollbar-width: none; scroll-snap-type: x mandatory; }
    .home-popular-category-groups::-webkit-scrollbar { display: none; }
    .home-popular-category-group { flex: 0 0 min(86vw, 360px); padding: 16px; border-radius: 22px; scroll-snap-align: start; }
    .home-popular-category-header h3 { font-size: 24px; line-height: 28px; }
}

@media (min-width: 801px) and (max-width: 900px) {
    .shell { width: calc(100% - 24px); }
    .wordmark { flex-basis: 130px; width: 130px; margin-right: 12px; font-size: 16px; }
    .header-search { flex-basis: 0; }
    .header-actions { flex-basis: 56px; margin-left: 12px; gap: 8px; }
    .header-actions .icon-button { width: 22px; height: 22px; flex-basis: 22px; }
    .header-actions .icon-button svg { width: 22px; height: 22px; }
}

@media (max-width: 520px) {
    .topbar .shell {
        width: 100%;
        padding-left: 16px;
    }

    .hero h1 {
        font-size: 38px;
    }

    .section-title {
        font-size: 30px;
    }

    .section-head {
        align-items: start;
        flex-direction: column;
        gap: 10px;
    }

    .module-header { align-items: flex-start; flex-direction: column; gap: 12px; }
    .home-products-module .module-link,
    .home-popular-categories-module .module-link { position: static; display: inline-flex; margin-top: 12px; }
    .home-brand-item { flex-basis: 230px; }
    .home-brand-promo-card { flex-basis: 210px; }
    .home-brands-module .home-brand-promos { margin-top: 32px; }

    .page-heading h1 {
        font-size: 34px;
    }

    .footer-inner {
        padding-inline: 20px;
    }

    .footer-newsletter-form input {
        min-width: 0;
    }

    .footer-newsletter-form button {
        min-width: 44px;
        width: 44px;
        padding: 0;
        flex: 0 0 44px;
    }

    .footer-newsletter-form button span {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
    }

    .footer-legal {
        gap: 12px 16px;
    }

    .footer-legal p {
        width: 100%;
    }

    .footer-select-menu {
        max-width: calc(100vw - 64px);
    }

    .woocommerce-page .woocommerce .woocommerce-MyAccount-navigation ul {
        grid-template-columns: 1fr;
    }
}

/* Popular category rail follows the reference card: one horizontal card per top-level category. */
.home-popular-categories-module { overflow: hidden; }
.home-popular-categories-module .module-header { display: flex; flex-direction: column; align-items: center; gap: 10px; margin-bottom: 12px; text-align: center; }
.home-popular-category-controls { display: flex; align-items: center; gap: 6px; }
.home-popular-categories-module .home-popular-category-controls { align-self: flex-end; }
.home-popular-category-controls button { display: grid; width: 36px; height: 36px; place-items: center; padding: 0; border: 0; border-radius: 50%; color: var(--ink); background: var(--wash); font: 400 24px/36px Arial, sans-serif; cursor: pointer; }
.home-popular-category-controls button:hover, .home-popular-category-controls button:focus-visible { background: #e8e8e8; }
.home-popular-category-controls button:disabled { opacity: .36; cursor: default; }
.home-popular-category-groups { display: flex; gap: 16px; overflow-x: auto; margin: 0 -16px; padding: 0 16px 10px; scrollbar-width: none; scroll-snap-type: x mandatory; touch-action: auto; overscroll-behavior-inline: contain; -webkit-overflow-scrolling: touch; cursor: grab; }
.home-popular-category-groups.is-dragging { scroll-snap-type: none; user-select: none; cursor: grabbing; }
.home-popular-category-groups.is-dragging a { pointer-events: none; }
.home-popular-category-groups:has(.home-popular-category-group:only-child) { justify-content: center; }
.home-popular-category-groups::-webkit-scrollbar { display: none; }
.home-popular-category-group { flex: 0 0 min(82vw, 400px); min-width: 0; padding: 16px; overflow: hidden; border: 0; border-radius: 26px; background: var(--paper); box-shadow: 0 4px 6px -1px rgba(0,0,0,.1), 0 2px 4px -2px rgba(0,0,0,.1); scroll-snap-align: start; }
.home-popular-category-header { display: flex; min-height: 32px; align-items: center; justify-content: flex-start; gap: 8px; margin: 0 0 12px; color: var(--ink); text-decoration: none; }
.home-popular-category-header:hover, .home-popular-category-header:focus-visible { color: var(--ink); }
.home-popular-category-title { color: var(--ink); font: 600 24px/32px var(--font-display); letter-spacing: 0; }
.home-popular-category-arrow { display: grid; width: 32px; height: 32px; flex: 0 0 32px; place-items: center; border-radius: 50%; color: var(--ink); background: var(--wash); font: 400 22px/32px Arial, sans-serif; }
.home-popular-category-header:hover .home-popular-category-arrow, .home-popular-category-header:focus-visible .home-popular-category-arrow { background: #e8e8e8; }
.home-popular-brand-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.home-popular-brand-card { position: relative; display: block; min-width: 0; overflow: hidden; aspect-ratio: 1 / 1; border: 0; border-radius: 16px; color: #fff; background: var(--wash); }
.home-popular-brand-media { width: 100%; height: 100%; aspect-ratio: auto; overflow: hidden; background: var(--wash); }
.home-popular-brand-media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 220ms ease; }
.home-popular-brand-card::after { position: absolute; right: 0; bottom: 0; left: 0; height: 44%; content: ''; background: linear-gradient(to top,rgba(0,0,0,.64),transparent); pointer-events: none; }
.home-popular-brand-label { position: absolute; right: 10px; bottom: 10px; left: 10px; z-index: 1; overflow: hidden; color: #fff; font: 500 14px/20px var(--font-body); text-overflow: ellipsis; white-space: nowrap; }
.home-popular-brand-card:hover .home-popular-brand-media img, .home-popular-brand-card:focus-visible .home-popular-brand-media img { transform: scale(1.05); }
@media (prefers-reduced-motion: reduce) { .home-popular-brand-media img { transition: none; } .home-popular-brand-card:hover .home-popular-brand-media img, .home-popular-brand-card:focus-visible .home-popular-brand-media img { transform: none; } }
@media (min-width: 641px) {
    .home-popular-category-group { flex-basis: 360px; padding: 20px; }
    .home-popular-category-groups { margin-right: calc((100vw - 100%) / -2); margin-left: calc((100vw - 100%) / -2); padding-right: max(16px, calc((100vw - 100%) / 2)); padding-left: max(16px, calc((100vw - 100%) / 2)); }
}
@media (min-width: 1024px) {
    .home-popular-category-group { flex-basis: 400px; }
}
@media (max-width: 640px) {
    .home-popular-category-groups { gap: 0; margin: 0; padding-right: 0; padding-left: 0; scroll-padding-inline: 0; }
    .home-popular-category-group { flex-basis: 100%; scroll-snap-align: center; }
    .home-popular-category-controls button { width: 32px; height: 32px; font-size: 22px; line-height: 32px; }
    .home-popular-category-title { font-size: 22px; line-height: 30px; }
    .home-popular-category-arrow { width: 30px; height: 30px; flex-basis: 30px; font-size: 20px; line-height: 30px; }
    .home-popular-brand-label { right: 9px; bottom: 9px; left: 9px; font-size: 13px; line-height: 18px; }
}

/* Category drawer panel matches the reference: compact black heading, soft arrow, image tiles. */
.all-category-panel { padding: 6px 18px 24px; }
/* Category navigation: compact drawer, circular imagery and quiet spacing. */
#mobile-panel .all-drawer.is-category-open { overflow: hidden; }
.all-drawer.is-category-open > .overlay-head,
.all-drawer.is-category-open > .all-drawer-tabs,
.all-drawer.is-category-open > .all-drawer-sale,
.all-drawer.is-category-open > .all-drawer-chips,
.all-drawer.is-category-open .all-drawer-category { visibility: hidden; }
#mobile-panel .all-category-panel { inset: 0; padding: 0 18px max(28px,env(safe-area-inset-bottom)); overscroll-behavior: contain; }
.all-category-toolbar { position: sticky; top: 0; z-index: 3; display: grid; grid-template-columns: 44px minmax(0,1fr) 44px; align-items: center; min-height: 68px; background: var(--paper); }
.all-category-toolbar h2 { margin: 0; font: 600 16px/22px var(--font-body); text-align: center; overflow-wrap: anywhere; }
.all-category-toolbar button { width: 44px; height: 44px; justify-content: center; }
.all-category-view svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.all-category-group-title { margin: 24px 0 18px; font: 600 15px/22px var(--font-body); }
#mobile-panel .all-category-tiles { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px 12px; }
#mobile-panel .all-category-tile { display: flex; flex-direction: column; align-items: center; gap: 9px; aspect-ratio: auto; border-radius: 0; background: transparent; color: var(--ink); overflow: visible; }
#mobile-panel .all-category-tile img,
#mobile-panel .all-category-tile-placeholder { width: 100%; height: auto; aspect-ratio: 1; border-radius: 50%; object-fit: cover; background: var(--wash); }
#mobile-panel .all-category-tile::after { content: none; }
#mobile-panel .all-category-tile-label { position: static; overflow: visible; color: inherit; font: 500 12px/17px var(--font-body); white-space: normal; text-align: center; overflow-wrap: anywhere; }
#mobile-panel .all-drawer-category { min-height: 80px; gap: 14px; }
#mobile-panel .all-drawer-category img { width: 58px; height: 58px; border-radius: 50%; }
.topbar,
.site-footer,
.footer-preferences,
.footer-bottom,
.overlay .nav-item > a,
.overlay .nav-dropdown,
.woocommerce-page .woocommerce .woocommerce-MyAccount-navigation,
.desktop-nav,
.all-drawer .overlay-head,
.all-drawer-tabs,
.all-drawer-tabs span,
.all-drawer-categories,
.all-drawer-category,
.all-category-view,
.all-brand-link,
.dropdown-brands a,
.dropdown-all,
.brands-directory-header,
.brands-directory-groups,
.brands-directory-group,
.brands-directory-group li a,
.account-drawer-locale,
.account-drawer-theme,
.account-drawer-footer { border-top: 0; border-bottom: 0; }
.all-drawer-tabs span { color: var(--muted); text-align: left; padding: 8px 0; }
.account-drawer-separator { height: 12px; flex-basis: 12px; background: transparent; }
.all-category-panel-heading { display: flex; min-height: 44px; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 16px; }
.all-category-panel-heading h2 { min-width: 0; margin: 0; }
.all-category-panel-title { color: #111; font: 700 27px/32px Arial, sans-serif; text-decoration: none; }
.all-category-panel-title:hover, .all-category-panel-title:focus-visible { color: #111; text-decoration: underline; text-underline-offset: 4px; }
.all-category-panel-arrow { display: grid; width: 36px; height: 36px; flex: 0 0 36px; place-items: center; border-radius: 50%; color: #111; background: #f5f5f5; text-decoration: none; }
.all-category-panel-arrow svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.7; }
.all-category-panel-arrow:hover, .all-category-panel-arrow:focus-visible { color: #111; background: #e9e9e9; }
.all-category-tiles { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.all-category-tile { position: relative; display: block; overflow: hidden; min-width: 0; aspect-ratio: 1 / 1; border-radius: 8px; color: #fff; background: #f4f4f4; text-decoration: none; }
.all-category-tile img, .all-category-tile-placeholder { display: block; width: 100%; height: 100%; object-fit: cover; }
.all-category-tile-placeholder { display: grid; place-items: center; color: #a3a3a3; background: #f1f1f1; }
.all-category-tile-placeholder svg { width: 30px; height: 30px; }
.all-category-tile::after { position: absolute; right: 0; bottom: 0; left: 0; height: 45%; content: ''; background: linear-gradient(transparent,rgba(0,0,0,.68)); pointer-events: none; }
.all-category-tile-label { position: absolute; right: 10px; bottom: 10px; left: 10px; z-index: 1; overflow: hidden; color: #fff; font: 600 14px/18px var(--font-body); text-overflow: ellipsis; white-space: nowrap; }
.all-category-tile:hover img, .all-category-tile:focus-visible img { transform: scale(1.025); }
.all-category-tile img { transition: transform 180ms ease; }
@media (max-width: 520px) {
    .all-category-panel-title { font-size: 25px; line-height: 30px; }
    .all-category-tiles { gap: 10px; }
    .all-category-tile { border-radius: 8px; }
    .all-category-tile-label { right: 9px; bottom: 9px; left: 9px; font-size: 13px; line-height: 17px; }
}

@media (orientation: landscape) and (max-height: 520px) {
    .hero {
        min-height: 520px;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

/* Rebuilt cart drawer states */
.cart-drawer { width: min(400px, 100vw); background: #fff; }
.cart-drawer .overlay-head { padding: 24px 26px 22px; margin: 0; border-bottom: 1px solid #e8e8e8; }
.cart-drawer .overlay-head h2 { color: #111; font: 700 21px/1.2 Arial, sans-serif; }
.cart-drawer .overlay-head h2 { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cart-drawer .overlay-head p { display: none; }
.cart-drawer .overlay-head .icon-button { width: 34px; height: 34px; border: 0; border-radius: 50%; background: #f7f7f7; }
.cart-drawer-content { padding: 0 26px 24px; }
.cart-state-empty { display: flex; min-height: 0; align-items: center; justify-content: center; overflow: auto; }
.cart-empty-state { display: grid; justify-items: center; gap: 18px; width: 100%; margin: auto 0; padding: 210px 0 230px; text-align: center; }
.cart-empty-icon { color: #737373; }
.cart-empty-icon svg { width: 70px; height: 70px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.cart-empty-state p { margin: 0; color: #5b5b5b; font-size: 22px; font-weight: 700; }
.cart-empty-link { display: inline-flex; min-width: 148px; min-height: 44px; align-items: center; justify-content: center; border-radius: 999px; color: #fff; background: #171717; font-size: 14px; }
.cart-state-filled { display: flex; flex-direction: column; overflow: auto; }
.cart-shipping-progress { padding: 18px 0 16px; border-bottom: 0; }
.cart-shipping-copy { display: flex; align-items: center; gap: 9px; min-height: 20px; color: #707070; }
.cart-shipping-copy p { margin: 0; font-size: 14px; line-height: 20px; }
.cart-shipping-icon { display: inline-flex; width: 16px; height: 20px; align-items: center; justify-content: center; flex: 0 0 16px; }
.cart-shipping-icon svg { display: block; width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.cart-progress-track { height: 8px; margin-top: 12px; background: #dedede; }
.cart-progress-track span { background: #ff8a00; }
.cart-progress-meta { margin-top: 6px; color: #8a8a8a; font-size: 12px; }
.cart-progress-meta strong { color: #8a8a8a; font-weight: 400; }
.cart-drawer-items { gap: 24px; padding: 10px 0 24px; }
.cart-drawer-item { grid-template-columns: 102px minmax(0, 1fr); gap: 16px; }
.cart-drawer-thumb { border-radius: 0; background: #f6f6f6; }
.cart-drawer-item-title { color: var(--accent); font-size: 15px; line-height: 1.35; }
.cart-drawer-item-title a { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cart-drawer-item-meta { color: var(--muted); font-size: 14px; line-height: 1.45; }
.cart-drawer-item-bottom { gap: 12px; padding-top: 12px; }
.cart-quantity { height: 34px; border-color: #e2e2e2; }
.cart-quantity button, .cart-quantity span { width: 32px; height: 32px; color: #222; }
.cart-item-remove { display: grid; width: 28px; height: 34px; place-items: center; padding: 0; }
.cart-item-remove svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.cart-drawer-item-bottom > strong { color: #111; font-size: 14px; }
.cart-drawer-summary { padding: 18px 0; margin-top: auto; border-top: 1px solid #e5e5e5; color: #222; font-size: 15px; }
.cart-drawer-summary strong { color: #111; font-size: 18px; }
.cart-drawer-link { min-height: 48px; margin-top: 0; border-radius: 999px; background: #171717; font-size: 14px; }
.cart-drawer-link:hover, .cart-drawer-link:focus-visible { background: #333; }
@media (max-width: 520px) {
    .account-drawer { width: min(384px, 86vw); }
    .account-drawer .overlay-head { padding-right: 16px; padding-left: 16px; }
    .account-drawer-profile, .account-drawer-credit, .account-drawer-locale, .account-drawer-theme { padding-right: 20px; padding-left: 20px; }
    .account-drawer-links { padding-right: 8px; padding-left: 8px; }
    .account-drawer-links a { min-height: 52px; padding: 14px 12px; }
    .account-drawer-footer { padding-right: 16px; padding-left: 16px; }
    .cart-drawer { width: min(384px, 86vw); margin-right: 0; }
    .cart-empty-state { padding: 180px 0 200px; }
    .cart-drawer-content { padding-right: 22px; padding-left: 22px; }
    .cart-drawer-items { gap: 20px; padding-top: 8px; }
    .cart-drawer-item { grid-template-columns: 80px minmax(0, 1fr); gap: 12px; }
    .cart-drawer-item-title { font-size: 14px; line-height: 20px; }
    .cart-drawer-item-title a { display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
    .cart-drawer-item-meta { font-size: 13px; line-height: 19px; }
    .cart-drawer-item-bottom { gap: 8px; padding-top: 8px; }
    .cart-quantity button, .cart-quantity span { width: 26px; height: 30px; }
    .cart-drawer-item-bottom > strong { font-size: 13px; }
}
body.admin-bar .overlay { top: 32px; }
body.admin-bar .overlay-surface { height: calc(100dvh - 32px); }
@media (max-width: 782px) {
    body.admin-bar .overlay { top: 46px; }
    body.admin-bar .overlay-surface { height: calc(100dvh - 46px); }
}

/* Cart page rebuild: WooCommerce remains the data source; these selectors
 * style only the dedicated cart template and leave checkout/account tables intact. */
body.woocommerce-cart .woocommerce-page-shell { width: 100%; max-width: none; padding-top: 16px; padding-bottom: 96px; }
body.woocommerce-cart .woocommerce-content { width: 100%; padding-top: 0; }
.chm-cart-page-root { width: 100%; }
.chm-cart-page { width: min(calc(100% - 64px), 1280px); margin-inline: auto; color: #191919; }
.chm-cart-heading { display: block; margin: 0; }
.chm-cart-heading h1 { margin: 0 0 24px; font-family: var(--font-body); font-size: 30px; line-height: 36px; letter-spacing: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.chm-cart-auth-prompt { display: flex; min-height: 64px; align-items: center; justify-content: space-between; gap: 20px; padding: 12px 16px; margin: -8px 0 20px; border: 1px solid #e4e4e4; border-radius: 14px; background: #fff; }
.chm-cart-auth-prompt p { display: grid; gap: 2px; margin: 0; font-size: 14px; line-height: 20px; }
.chm-cart-auth-prompt p span { color: #737373; }
.chm-cart-auth-prompt a { display: inline-flex; min-width: 88px; min-height: 40px; align-items: center; justify-content: center; padding: 0 18px; border: 1px solid #1f1f1f; border-radius: 999px; color: #fff; background: #1f1f1f; font-size: 14px; font-weight: 500; white-space: nowrap; }
.chm-cart-auth-prompt a:hover, .chm-cart-auth-prompt a:focus-visible { color: #fff; background: #333; }
.chm-cart-tabs { display: flex; width: 100%; max-width: 100%; align-items: center; gap: 4px; margin-bottom: 24px; border-bottom: 1px solid #e4e4e4; }
.chm-cart-tabs a, .chm-cart-tabs button { display: inline-flex; min-height: 39px; align-items: center; gap: 8px; padding: 0 16px; border: 0; border-bottom: 2px solid transparent; color: #737373; background: transparent; font: inherit; font-size: 14px; white-space: nowrap; }
.chm-cart-tabs svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.chm-cart-tabs a.is-active { color: #191919; border-bottom-color: #191919; font-weight: 600; }
.chm-cart-tabs button:disabled { cursor: default; opacity: 1; }
.chm-cart-shipping-note { display: flex; min-height: 45px; align-items: center; gap: 6px; padding: 12px 16px; margin-bottom: 16px; border: 1px solid #e4e4e4; border-radius: 14px; color: #d97706; background: #f5f5f5; font-size: 14px; line-height: 20px; font-weight: 500; }
.chm-cart-shipping-note svg { width: 16px; height: 16px; flex: 0 0 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.chm-cart-layout { display: grid; grid-template-columns: minmax(0, 2.1fr) minmax(280px, 1fr); align-items: stretch; gap: 32px; }
.chm-cart-items-panel { min-width: 0; }
.chm-cart-panel-heading { display: none; }
.chm-cart-panel-heading h2, .chm-cart-recommendations h2 { margin: 0; font-family: var(--font-display); font-size: 20px; line-height: 28px; letter-spacing: 0; }
.chm-cart-panel-heading > span { color: #777; font-size: 13px; }
.chm-cart-form { margin: 0; }
.chm-cart-items-card { overflow: hidden; padding: 24px; border-radius: 26px; background: #fff; box-shadow: 0 0 0 1px rgba(20,20,20,.05), 0 4px 6px -1px rgba(0,0,0,.1), 0 2px 4px -2px rgba(0,0,0,.1); }
.chm-cart-items { display: grid; gap: 0; padding: 0; margin: 0; list-style: none; }
.chm-cart-line { display: grid; grid-template-columns: 128px minmax(0, 1fr); gap: 16px; min-height: 216px; padding: 24px 0; border: 0; border-bottom: 1px solid #e4e4e4; border-radius: 0; background: transparent; box-shadow: none; }
.chm-cart-line:last-child { border-bottom: 0; }
.chm-cart-line-media, .chm-cart-line-media a { display: block; width: 128px; height: 128px; overflow: hidden; border-radius: 10px; background: #f5f5f5; }
.chm-cart-line-media img { display: block; width: 100%; height: 100%; object-fit: contain; }
.chm-cart-line-content { display: flex; min-width: 0; flex-direction: column; justify-content: space-between; gap: 16px; }
.chm-cart-line-top { display: flex; min-width: 0; align-items: flex-start; justify-content: space-between; gap: 18px; }
.chm-cart-line-top h3 { max-width: 560px; margin: 0 0 8px; font-size: 18px; line-height: 25px; font-weight: 600; }
.chm-cart-line-top h3 a:hover { text-decoration: underline; text-underline-offset: 3px; }
.chm-cart-line-meta { display: flex; flex-wrap: wrap; gap: 6px 14px; color: #737373; font-size: 13px; line-height: 20px; }
.chm-cart-line-unit-price { flex-basis: 100%; }
.chm-cart-line-price, .chm-cart-line-subtotal { color: #191919; font-size: 16px; line-height: 24px; font-weight: 600; white-space: nowrap; }
.chm-cart-line-subtotal { display: none; }
.chm-cart-line-bottom { display: flex; min-height: 36px; align-items: center; gap: 16px; }
.chm-cart-quantity { display: inline-flex; height: 36px; align-items: center; overflow: hidden; border: 1px solid #e4e4e4; border-radius: 999px; background: #fff; }
.chm-cart-quantity button, .chm-cart-quantity span { display: grid; width: 36px; height: 34px; place-items: center; padding: 0; border: 0; color: #191919; background: transparent; font: inherit; font-size: 16px; line-height: 1; }
.chm-cart-quantity button { cursor: pointer; }
.chm-cart-quantity button:first-child { border-radius: 999px 0 0 999px; }
.chm-cart-quantity button:last-child { border-radius: 0 999px 999px 0; }
.chm-cart-quantity button:hover, .chm-cart-quantity button:focus-visible { background: #f2f2f2; }
.chm-cart-quantity button:disabled { cursor: not-allowed; color: #bdbdbd; }
.chm-cart-line-subtotal { margin-left: auto; font-weight: 600; }
.chm-cart-action { display: inline-flex; min-height: 34px; align-items: center; padding: 0 6px; border: 0; border-radius: 999px; color: #686868; background: transparent; font: inherit; font-size: 13px; line-height: 20px; cursor: pointer; white-space: nowrap; }
.chm-cart-action:hover, .chm-cart-action:focus-visible { color: #111; background: #f4f4f5; text-decoration: none; }
.chm-cart-save-later[aria-pressed="true"] { color: #111; font-weight: 600; }
.chm-cart-mobile-summary, .chm-cart-line-mobile-actions { display: none; }
.chm-cart-line-quantity-subtotal { display: contents; }
.chm-cart-line-actions { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; margin-left: auto; }
.chm-cart-line-actions .chm-cart-action svg, .chm-cart-line-mobile-actions .chm-cart-action svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.chm-cart-summary-total-list { display: block; }
.chm-cart-summary-row { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 12px; color: #737373; font-size: 16px; line-height: 24px; }
.chm-cart-summary-row strong { color: #191919; font-weight: 500; white-space: nowrap; }
.chm-cart-shipping-value.is-free { color: #16a34a; }
.chm-cart-summary-divider { padding-top: 16px; margin-top: 16px; margin-bottom: 0; border-top: 1px solid #e4e4e4; }
.chm-cart-summary-grand { padding-top: 0; margin-top: 0; color: #191919; font-size: 16px; }
.chm-cart-summary-grand strong { font-size: 20px; font-weight: 700; }
.chm-cart-summary-discount { color: #15803d; }
.chm-cart-summary-discount strong { color: #15803d; }
.chm-cart-discount-label, .chm-cart-discount-value { display: inline-flex; min-width: 0; align-items: center; gap: 7px; }
.chm-cart-discount-label > span { flex: 0 0 auto; }
.chm-cart-discount-label code { display: inline-block; max-width: 145px; overflow: hidden; padding: 2px 7px; border: 1px solid #bbf7d0; border-radius: 5px; color: #166534; background: #f0fdf4; font-family: inherit; font-size: 11px; line-height: 16px; text-overflow: ellipsis; white-space: nowrap; }
.chm-cart-discount-value { gap: 5px; }
.chm-cart-discount-remove { display: inline-grid; width: 36px; height: 36px; flex: 0 0 36px; place-items: center; padding: 0; border: 0; border-radius: 999px; color: #4d7c5c; background: transparent; cursor: pointer; }
.chm-cart-discount-remove:hover, .chm-cart-discount-remove:focus-visible { color: #166534; background: #f0fdf4; }
.chm-cart-discount-remove:disabled { cursor: wait; opacity: .55; }
.chm-cart-discount-remove svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.chm-cart-continue { display: flex; width: max-content; min-height: 40px; align-items: center; justify-content: center; padding: 0 16px; margin: 22px auto 0; border: 1px solid #e4e4e4; border-radius: 999px; color: #191919; background: #fff; font-size: 14px; line-height: 20px; font-weight: 500; text-decoration: none; }
.chm-cart-continue:hover, .chm-cart-continue:focus-visible { color: #fff; background: #191919; }
.chm-cart-inline-notice { padding: 11px 14px; margin: 16px 0 0; border: 1px solid #e0b4b4; border-radius: 8px; color: #8a2424; background: #fff5f5; font-size: 13px; }
.chm-cart-inline-notice[hidden] { display: none; }
.chm-cart-summary-panel { position: relative; min-width: 0; align-self: start; }
.chm-cart-summary-details { position: sticky; top: 96px; height: auto; padding: 24px; border: 0; border-radius: 26px; background: #fff; box-shadow: 0 0 0 1px rgba(20,20,20,.05), 0 4px 6px -1px rgba(0,0,0,.1), 0 2px 4px -2px rgba(0,0,0,.1); }
.chm-cart-summary-details > summary { display: flex; min-height: 28px; align-items: center; justify-content: space-between; padding: 0; margin-bottom: 12px; border: 0; list-style: none; cursor: default; font-size: 20px; line-height: 28px; font-weight: 600; }
.chm-cart-summary-details > summary::-webkit-details-marker, .chm-cart-coupon > summary::-webkit-details-marker { display: none; }
.chm-cart-summary-details > summary > span:last-child { display: none; }
.chm-cart-summary-body { padding: 0; }
.chm-cart-wallet { margin: 14px 0 8px; border-top: 1px solid #e4e4e4; border-bottom: 1px solid #e4e4e4; }
.chm-cart-wallet-toggle { display: grid; width: 100%; min-height: 48px; grid-template-columns: minmax(0,1fr) auto 16px; align-items: center; gap: 8px; padding: 0; border: 0; color: #191919; background: transparent; font: inherit; cursor: pointer; text-align: left; }
.chm-cart-wallet-toggle-main { display: inline-flex; min-width: 0; align-items: center; gap: 8px; font-size: 14px; line-height: 20px; font-weight: 600; }
.chm-cart-wallet-toggle-main svg, .chm-cart-wallet-toggle > svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.chm-cart-wallet-toggle-status { color: #737373; font-size: 12px; line-height: 18px; white-space: nowrap; }
.chm-cart-wallet-toggle > svg { transition: transform 180ms ease; }
.chm-cart-wallet-toggle[aria-expanded="true"] > svg { transform: rotate(180deg); }
.chm-cart-wallet-toggle:focus-visible { outline: 2px solid #191919; outline-offset: 3px; border-radius: 4px; }
.chm-cart-wallet-panel { padding: 0 0 12px; }
.chm-cart-wallet-panel[hidden] { display: none; }
.chm-cart-wallet-list { overflow: hidden; border: 1px solid #e4e4e7; border-radius: 8px; background: #fff; }
.chm-cart-wallet-option { display: grid; width: 100%; min-width: 0; min-height: 54px; grid-template-columns: 18px minmax(0,1fr); align-items: center; gap: 10px; padding: 8px 12px; border: 0; border-bottom: 1px solid #ededed; border-radius: 0; color: #191919; background: #fff; font: inherit; cursor: pointer; text-align: left; transition: background-color 160ms ease; }
.chm-cart-wallet-option:last-child { border-bottom: 0; }
.chm-cart-wallet-option:hover { background: #fafafa; }
.chm-cart-wallet-option:focus-visible { position: relative; z-index: 1; outline: 2px solid #191919; outline-offset: -2px; }
.chm-cart-wallet-option.is-selected { background: #f7fcf8; }
.chm-cart-wallet-option:disabled { cursor: wait; opacity: .62; }
.chm-cart-wallet-option.is-selected:disabled { cursor: default; opacity: 1; }
.chm-cart-wallet-option.is-pending { background: #f4f4f5; }
.chm-cart-wallet-radio { display: block; width: 18px; height: 18px; box-sizing: border-box; border: 1.5px solid #a1a1aa; border-radius: 999px; background: #fff; }
.chm-cart-wallet-option.is-selected .chm-cart-wallet-radio { border: 5px solid #15803d; }
.chm-cart-wallet-copy { display: block; min-width: 0; }
.chm-cart-wallet-offer { display: flex; min-width: 0; align-items: center; gap: 8px; font-size: 14px; line-height: 20px; }
.chm-cart-wallet-offer strong { min-width: 0; font-weight: 600; white-space: nowrap; }
.chm-cart-wallet-offer small { flex: 0 0 auto; padding: 1px 6px; border-radius: 999px; color: #525252; background: #f1f1f1; font-size: 10px; line-height: 16px; font-weight: 600; white-space: nowrap; }
.chm-cart-wallet-error { margin: 8px 0 0; color: #ff2838; font-size: 12px; line-height: 18px; }
.chm-cart-wallet-error[hidden] { display: none; }
.chm-cart-total-row { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 13px; color: #5e5e5e; font-size: 14px; }
.chm-cart-total-row strong { color: #191919; font-weight: 500; white-space: nowrap; }
.chm-cart-total-row-grand { padding-top: 16px; margin-top: 16px; border-top: 1px solid #e4e4e4; color: #191919; font-size: 16px; }
.chm-cart-total-row-grand strong { font-size: 20px; font-weight: 700; }
.chm-cart-coupon { padding: 0; margin: 12px 0; border: 0; }
.chm-cart-coupon > summary { display: inline-flex; min-height: 24px; align-items: center; gap: 6px; color: #737373; cursor: pointer; font-size: 14px; line-height: 20px; }
.chm-cart-coupon[open] > summary { display: none; }
.chm-cart-coupon > summary span { text-decoration: none; }
.chm-cart-coupon > summary svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.chm-cart-coupon[open] > summary svg:last-child { transform: rotate(180deg); }
.chm-cart-coupon-form { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; padding-top: 12px; }
.chm-cart-coupon[open] .chm-cart-coupon-form { padding-top: 0; }
.chm-cart-coupon-form input { box-sizing: border-box; min-width: 0; width: 100%; height: 36px; flex: 1 1 auto; padding: 4px 12px; border: 1px solid transparent; border-radius: 999px; outline: none; color: #1f1f1f; background: rgba(0,0,0,.04); font: inherit; font-size: 14px; line-height: 20px; }
.chm-cart-coupon-form input::placeholder { color: #737373; opacity: 1; }
.chm-cart-coupon-form input:focus { border-color: #a1a1aa; box-shadow: 0 0 0 3px rgba(161,161,170,.22); }
.chm-cart-coupon-form input.has-error { border-color: #ff4d58; box-shadow: 0 0 0 3px rgba(255,77,88,.12); }
.chm-cart-coupon-form button { box-sizing: border-box; height: 36px; flex: 0 0 auto; padding: 0 12px; border: 1px solid #e4e4e7; border-radius: 999px; color: #1f1f1f; background: #fafafa; font: inherit; font-size: 14px; line-height: 20px; font-weight: 500; cursor: pointer; }
.chm-cart-coupon-form button:hover:not(:disabled), .chm-cart-coupon-form button:focus-visible:not(:disabled) { background: #f4f4f5; }
.chm-cart-coupon-form button:disabled { cursor: not-allowed; opacity: .5; }
.chm-cart-coupon-error { display: flex; grid-column: 1 / -1; align-items: center; gap: 6px; margin: 0; color: #ff2838; font-size: 13px; line-height: 18px; }
.chm-cart-coupon-error[hidden] { display: none; }
.chm-cart-coupon-error > span:first-child { display: inline-grid; width: 16px; height: 16px; flex: 0 0 16px; place-items: center; border: 1.5px solid currentColor; border-radius: 999px; font-size: 11px; line-height: 1; font-weight: 700; }
.chm-cart-confirm { display: flex; align-items: flex-start; gap: 8px; padding: 12px; margin: 0 0 12px; border: 1px solid #fcd34d; border-radius: 10px; color: #92400e; background: #fffbeb; font-size: 14px; line-height: 20px; }
.chm-cart-confirm input { width: 16px; height: 16px; flex: 0 0 16px; margin: 1px 0 0; }
.chm-cart-checkout, .chm-cart-primary-button { display: flex; min-height: 40px; align-items: center; justify-content: center; border-radius: 999px; color: #fff; background: #191919; font-size: 14px; font-weight: 600; transition: background-color var(--ease), opacity var(--ease); }
.chm-cart-checkout:hover, .chm-cart-primary-button:hover { color: #fff; background: #3a3a3a; }
.chm-cart-checkout.is-disabled { cursor: not-allowed; opacity: .45; }
.chm-cart-tax-note { margin: 12px 0 20px; color: #888; text-align: center; font-size: 12px; }
.chm-cart-payment-logos { display: flex; min-height: 30px; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.chm-cart-payment-mark { display: inline-flex; min-width: 30px; height: 30px; align-items: center; justify-content: center; overflow: hidden; border: 1px solid #e4e4e4; border-radius: 5px; background: #fff; }
.chm-cart-payment-mark img { display: block; width: auto; max-width: 45px; height: 28px; object-fit: contain; }
.chm-cart-payment-logo { display: block; width: 30px; height: 30px; object-fit: contain; }
.chm-cart-payment-logo[alt="Afterpay"] { width: 45px; }
.chm-cart-payment-name { max-width: 92px; padding: 0 8px; color: #525252; font-size: 10px; line-height: 12px; text-align: center; }
.chm-cart-payment-secure { width: auto; gap: 5px; padding: 0 9px; color: #525252; font-size: 11px; }
.chm-cart-payment-secure svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2; }
.chm-cart-benefits { display: grid; gap: 12px; padding: 0; margin: 16px 0 0; list-style: none; }
.chm-cart-benefits li { display: flex; align-items: flex-start; gap: 12px; padding: 16px; border: 1px solid #bbf7d0; border-radius: 14px; color: #166534; background: #f0fdf4; }
.chm-cart-benefits li > svg { width: 20px; height: 20px; flex: 0 0 20px; margin-top: 2px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.chm-cart-benefits li > span { display: grid; gap: 4px; }
.chm-cart-benefits strong { color: #14532d; font-size: 14px; line-height: 20px; font-weight: 600; }
.chm-cart-benefits small { color: #166534; font-size: 12px; line-height: 18px; }
.chm-cart-empty { display: grid; min-height: 380px; justify-items: center; align-content: center; gap: 12px; padding: 52px 20px; border: 1px solid #e4e4e4; border-radius: 16px; background: #fff; text-align: center; }
.chm-cart-empty-icon { color: #707070; }
.chm-cart-empty-icon svg { width: 58px; height: 58px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.chm-cart-empty h2 { margin: 4px 0 0; font-family: var(--font-display); font-size: 24px; line-height: 32px; }
.chm-cart-empty p { margin: 0 0 10px; color: #777; font-size: 14px; }
.chm-cart-primary-button { min-width: 190px; padding: 0 22px; }
.chm-cart-recent { padding-top: 32px; }
.chm-cart-recommendation-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.chm-cart-recommendation-heading h2 { margin: 0; font-family: var(--font-body); font-size: 20px; line-height: 28px; font-weight: 600; }
.chm-cart-recommendation-heading > div { display: flex; align-items: center; gap: 4px; }
.chm-cart-recommendation-heading button { display: grid; width: 30px; height: 30px; place-items: center; padding: 0; border: 1px solid #e4e4e4; border-radius: 999px; color: #737373; background: #fff; cursor: pointer; }
.chm-cart-recommendation-heading button:first-child svg { transform: rotate(90deg); }
.chm-cart-recommendation-heading button:nth-child(2) svg { transform: rotate(-90deg); }
.chm-cart-recommendation-heading button svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.chm-cart-recommendation-heading a { display: inline-flex; min-height: 34px; align-items: center; padding: 0 16px; margin-left: 4px; border: 1px solid #e4e4e4; border-radius: 999px; color: #191919; font-size: 12px; line-height: 16px; font-weight: 500; text-transform: uppercase; }
.chm-cart-recent-rail { display: flex; gap: 16px; overflow-x: auto; padding: 0 4px 8px; margin-inline: -4px; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: none; }
.chm-cart-recent-rail::-webkit-scrollbar { display: none; }
.chm-cart-recent-card { width: 192px; flex: 0 0 192px; min-width: 0; scroll-snap-align: start; }
.chm-cart-recent-image { display: block; position: relative; aspect-ratio: 3 / 4; overflow: hidden; border-radius: 14px; background: #f5f5f5; }
.chm-cart-recent-image img { display: block; width: 100%; height: 100%; object-fit: contain; transition: transform .3s ease; }
.chm-cart-recent-card:hover .chm-cart-recent-image img { transform: scale(1.035); }
.chm-cart-recent-title { display: block; overflow: hidden; margin: 8px 2px 0; color: #737373; font-size: 14px; line-height: 20px; text-overflow: ellipsis; white-space: nowrap; }
.chm-cart-recent-rating { display: flex; align-items: center; gap: 4px; margin: 2px 2px 0; color: #737373; }
.chm-cart-recent-rating > span { display: inline-flex; gap: 1px; }
.chm-cart-recent-rating i { display: inline-flex; color: #e5e7eb; }
.chm-cart-recent-rating i.is-filled { color: #facc15; }
.chm-cart-recent-rating svg { width: 14px; height: 14px; fill: currentColor; stroke: none; }
.chm-cart-recent-rating small { font-size: 12px; line-height: 16px; }
.chm-cart-recent-bottom { display: flex; min-height: 28px; align-items: center; justify-content: space-between; gap: 8px; margin: 4px 2px 0; }
.chm-cart-recent-bottom strong { min-width: 0; overflow: hidden; color: #191919; font-size: 14px; line-height: 20px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.chm-cart-recent-bottom > span { display: flex; align-items: center; gap: 2px; }
.chm-cart-recent-bottom button, .chm-cart-recent-bottom a { display: grid; width: 26px; height: 26px; place-items: center; padding: 0; border: 0; color: #737373; background: transparent; cursor: pointer; }
.chm-cart-recent-bottom svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.chm-cart-recommendations { padding-top: 64px; }
.chm-cart-unavailable { margin-top: 16px; }
.chm-cart-unavailable-card { padding: 14px 16px 18px; border: 1px solid #e4e4e4; border-radius: 18px; background: #fff; box-shadow: 0 4px 12px rgba(20,20,20,.04); }
.chm-cart-unavailable-card h2 { margin: 0 0 4px; color: #595959; font-size: 14px; line-height: 20px; font-weight: 700; }
.chm-cart-unavailable-card > p { max-width: 620px; margin: 0 0 14px; color: #737373; font-size: 14px; line-height: 20px; }
.chm-cart-unavailable-list { display: grid; gap: 0; padding: 0; margin: 0; list-style: none; }
.chm-cart-unavailable-line { display: grid; grid-template-columns: 96px minmax(0,1fr); gap: 12px; padding: 14px 0; border-top: 1px solid #ececec; }
.chm-cart-unavailable-media { display: block; width: 96px; height: 96px; overflow: hidden; border-radius: 10px; background: #f5f5f5; }
.chm-cart-unavailable-media img { display: block; width: 100%; height: 100%; object-fit: contain; filter: grayscale(1); opacity: .55; }
.chm-cart-unavailable-content { display: flex; min-width: 0; flex-direction: column; justify-content: space-between; gap: 3px; }
.chm-cart-unavailable-content h3 { overflow: hidden; margin: 0; color: #999; font-size: 16px; line-height: 22px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.chm-cart-unavailable-reason { color: #ff4d58; font-size: 13px; line-height: 20px; font-weight: 500; }
.chm-cart-unavailable-meta { display: flex; flex-wrap: wrap; gap: 5px 12px; color: #999; font-size: 13px; line-height: 19px; }
.chm-cart-unavailable-bottom { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 5px; }
.chm-cart-unavailable-remove { display: inline-flex; min-height: 32px; align-items: center; gap: 6px; padding: 0 12px; border: 1px solid #ffb8bf; border-radius: 999px; color: #ff5b65; background: #fff; font: inherit; font-size: 13px; cursor: pointer; }
.chm-cart-unavailable-remove:hover, .chm-cart-unavailable-remove:focus-visible { color: #fff; background: #ff5b65; }
.chm-cart-unavailable-remove svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.chm-cart-unavailable-price { color: #999; font-size: 14px; line-height: 20px; font-weight: 600; }
.chm-cart-recommendation-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; padding-top: 18px; }
.chm-cart-recommendation a { display: grid; gap: 8px; color: #242424; }
.chm-cart-recommendation img { display: block; width: 100%; aspect-ratio: 1 / 1.14; object-fit: cover; border-radius: 10px; background: #f5f5f5; }
.chm-cart-recommendation strong { overflow: hidden; font-size: 14px; line-height: 19px; text-overflow: ellipsis; white-space: nowrap; }
.chm-cart-recommendation span { color: #666; font-size: 13px; }
@media (max-width: 800px) {
    body.woocommerce-cart { scrollbar-width: none; }
    body.woocommerce-cart::-webkit-scrollbar { width: 0; height: 0; }
    body.woocommerce-cart .woocommerce-page-shell { width: 100%; max-width: none; padding-top: 8px; padding-bottom: 64px; }
    body.woocommerce-cart .woocommerce-content { padding-top: 0; }
    .chm-cart-page { width: min(calc(100% - 32px), 640px); margin-inline: auto; }
    .chm-cart-heading { display: block; margin-bottom: 24px; }
    .chm-cart-heading h1 { margin: 0 0 16px; font-family: var(--font-body); font-size: 24px; line-height: 32px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .chm-cart-auth-prompt { min-height: 60px; gap: 12px; padding: 10px 12px; margin: 0 0 16px; }
    .chm-cart-auth-prompt p { font-size: 13px; line-height: 18px; }
    .chm-cart-auth-prompt a { min-width: 76px; min-height: 44px; padding: 0 14px; }
    .chm-cart-tabs { width: max-content; max-width: 100%; margin-top: 0; }
    .chm-cart-tabs a, .chm-cart-tabs button { min-height: 38px; font-size: 14px; line-height: 20px; }
    .chm-cart-shipping-note { min-height: 0; padding: 11px 16px; margin-bottom: 16px; border-radius: 12px; font-size: 13px; line-height: 20px; }
    .chm-cart-layout { display: flex; flex-direction: column; gap: 22px; }
    .chm-cart-items-panel { width: 100%; }
    .chm-cart-mobile-summary { display: block; padding: 20px; margin-bottom: 24px; border-radius: 26px; background: #fff; box-shadow: 0 0 0 1px rgba(20,20,20,.05), 0 4px 6px -1px rgba(0,0,0,.1), 0 2px 4px -2px rgba(0,0,0,.1); }
    .chm-cart-mobile-summary .chm-cart-summary-row { height: 20px; align-items: center; margin-bottom: 4px; font-size: 14px; line-height: 20px; }
    .chm-cart-mobile-summary .chm-cart-summary-divider { padding-top: 0; margin-top: 4px; margin-bottom: 4px; }
    .chm-cart-mobile-summary .chm-cart-summary-grand { height: 32px; align-items: center; padding-top: 4px; margin: 0 0 0; font-size: 16px; line-height: 24px; }
    .chm-cart-mobile-summary .chm-cart-summary-grand strong { font-size: 18px; line-height: 28px; }
    .chm-cart-mobile-summary .chm-cart-discount-label code { max-width: min(132px, 40vw); }
    .chm-cart-mobile-summary .chm-cart-discount-remove { width: 44px; height: 44px; flex-basis: 44px; margin-block: -10px; }
    .chm-cart-mobile-summary .chm-cart-wallet { margin-top: 10px; }
    .chm-cart-mobile-summary .chm-cart-wallet-toggle { min-height: 44px; }
    .chm-cart-mobile-summary .chm-cart-wallet-option { min-height: 54px; padding: 8px 12px; }
    .chm-cart-mobile-summary .chm-cart-wallet-offer { gap: 6px; }
    .chm-cart-mobile-summary .chm-cart-coupon { padding: 0; margin: 12px 0; border: 0; }
    .chm-cart-mobile-summary .chm-cart-coupon > summary { display: flex; min-height: 24px; align-items: center; font-size: 12px; line-height: 16px; }
    .chm-cart-mobile-summary .chm-cart-coupon[open] > summary { display: none; }
    .chm-cart-mobile-summary .chm-cart-coupon-form { gap: 8px; padding-top: 12px; }
    .chm-cart-mobile-summary .chm-cart-coupon[open] .chm-cart-coupon-form { padding-top: 0; }
    .chm-cart-mobile-summary .chm-cart-coupon-form input, .chm-cart-mobile-summary .chm-cart-coupon-form button { height: 36px; font-size: 14px; line-height: 20px; }
    .chm-cart-mobile-summary .chm-cart-checkout { min-height: 44px; height: 44px; margin-bottom: 12px; border-radius: 999px; }
    .chm-cart-mobile-summary .chm-cart-tax-note { display: none; }
    .chm-cart-mobile-summary .chm-cart-payment-logos { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 0; margin: 0; border: 0; }
    .chm-cart-panel-heading { display: none; }
    .chm-cart-summary-panel { display: none; }
    .chm-cart-form { padding: 0; border-radius: 0; background: transparent; box-shadow: none; }
    .chm-cart-items-card { padding: 20px; border-radius: 26px; }
    .chm-cart-line { display: flex; width: 100%; min-width: 0; min-height: 196px; box-sizing: border-box; gap: 12px; padding: 16px 0; border: 0; border-bottom: 1px solid #e3e3e3; border-radius: 0; box-shadow: none; }
    .chm-cart-line:last-child { border-bottom: 0; }
    .chm-cart-line-media, .chm-cart-line-media a { width: 96px; height: 96px; flex: 0 0 96px; border-radius: 8px; }
    .chm-cart-line-content { width: 0; min-width: 0; flex: 1 1 0%; justify-content: flex-start; gap: 0; }
    .chm-cart-line-top { display: block; }
    .chm-cart-line-top h3 { display: -webkit-box; max-width: 100%; overflow: hidden; margin-bottom: 2px; font-family: var(--font-body); font-size: 14px; line-height: 20px; font-weight: 600; text-overflow: ellipsis; white-space: normal; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
    .chm-cart-line-meta { display: block; color: #737373; font-size: 13px; line-height: 19px; }
    .chm-cart-line-meta span { display: block; margin-bottom: 2px; }
    .chm-cart-line-meta .chm-cart-line-unit-price { display: block; width: max-content; max-width: 100%; flex-basis: auto; margin-bottom: 2px; white-space: nowrap; }
    .chm-cart-line-meta .chm-cart-line-unit-price span { display: inline; margin: 0; white-space: inherit; }
    .chm-cart-line-price { display: none; }
    .chm-cart-line-bottom { display: flex; min-width: 0; flex-direction: row; align-items: center; justify-content: space-between; gap: 12px; margin-top: 9px; }
    .chm-cart-line-quantity-subtotal { display: flex; min-width: 0; flex: 1; align-items: center; justify-content: space-between; gap: 8px; }
    .chm-cart-line-subtotal { display: inline; width: auto; margin-left: auto; color: #191919; font-size: 14px; line-height: 20px; font-weight: 600; }
    .chm-cart-line-actions { display: none; }
    .chm-cart-line-mobile-actions { display: flex; align-items: center; justify-content: flex-start; gap: 12px; margin-top: 8px; }
    .chm-cart-line-mobile-actions .chm-cart-action { display: inline-flex; min-height: 32px; align-items: center; gap: 4px; padding: 0 8px; font-size: 12px; line-height: 16px; }
    .chm-cart-unavailable { margin-top: 16px; }
    .chm-cart-unavailable-card { padding: 14px 16px 10px; border-radius: 18px; }
    .chm-cart-unavailable-card > p { margin-bottom: 10px; font-size: 13px; line-height: 19px; }
    .chm-cart-unavailable-line { grid-template-columns: 96px minmax(0,1fr); gap: 12px; padding: 14px 0; }
    .chm-cart-unavailable-content h3 { font-size: 16px; line-height: 22px; }
    .chm-cart-mobile-summary .chm-cart-benefits { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px 16px; margin-top: 14px; }
    .chm-cart-mobile-summary .chm-cart-benefits li { display: flex; align-items: center; gap: 6px; padding: 0; border: 0; border-radius: 0; color: #737373; background: transparent; }
    .chm-cart-mobile-summary .chm-cart-benefits li > svg { width: 14px; height: 14px; flex-basis: 14px; margin: 0; color: #16a34a; }
    .chm-cart-mobile-summary .chm-cart-benefits strong { color: #737373; font-size: 12px; line-height: 16px; font-weight: 400; }
    .chm-cart-mobile-summary .chm-cart-benefits small { display: none; }
    .chm-cart-recent { padding-top: 32px; }
    .chm-cart-recommendation-heading h2 { font-size: 18px; line-height: 28px; }
    .chm-cart-recommendation-heading button { display: none; }
    .chm-cart-recommendation-heading a { min-height: 34px; }
    .chm-cart-recent-rail { gap: 12px; }
    .chm-cart-recent-card { width: 144px; flex-basis: 144px; }
    .chm-cart-recommendations { padding-top: 44px; }
    .chm-cart-recommendation-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 12px; }
}

/* Final mobile guard runs after component rules so page-level overflow cannot
 * be reintroduced by a later layout declaration. */
@media (max-width: 800px) {
    html,
    body { overflow-x: hidden; overscroll-behavior-x: none; }
    @supports (overflow: clip) {
        html,
        body { overflow-x: clip; }
    }
    .site-header,
    .site-content,
    .site-footer,
    .woocommerce-page-shell,
    .catalog-page,
    .catalog-search-page,
    .catalog-shell,
    .catalog-search-shell,
    .chm-product-detail,
    .product-layout,
    .product-gallery,
    .product-heading,
    .product-purchase,
    .product-about,
    .product-reviews-section,
    .product-recommendations { min-width: 0; max-width: 100%; }
    .header-main > *,
    .footer-main > *,
    .catalog-layout > *,
    .product-layout > * { min-width: 0; }
}
