:root {
    /* Accent Moly — usage ciblé (CTA, liens actifs, focus) */
    --color-accent: #2fb5d2;
    --color-primary: #2fb5d2;
    --color-primary-light: #2fb5d2;

    /* Base monochrome */
    --color-primary-dark: #111111;
    --color-bg: #fafafa;
    --color-surface: #ffffff;
    --color-text: #111111;
    --color-muted: #737373;
    --color-border: #e5e5e5;
    --color-ink: #000000;
    --color-error: #111111;
    --color-success: #111111;

    --moly-primary: var(--color-accent);
    --moly-dark: var(--color-text);

    --color-surface-muted: #f5f5f5;
    --color-surface-subtle: #fafafa;
    --color-accent-ring: rgba(47, 181, 210, .25);

    --radius: 8px;
    --radius-lg: 12px;
    --shadow: 0 4px 16px rgba(0, 0, 0, .06);
    --shadow-lg: 0 16px 40px rgba(0, 0, 0, .08);
    --shadow-glow: 0 8px 32px rgba(47, 181, 210, .18);
    --ease-out: cubic-bezier(.22, 1, .36, 1);
    --ease-spring: cubic-bezier(.34, 1.56, .64, 1);
    --motion-fast: .18s;
    --motion-base: .32s;
    --motion-slow: .55s;
    --font-sans: 'Montserrat', 'Segoe UI', system-ui, sans-serif;
    --font-display: var(--font-sans);
    --font-body: var(--font-sans);

    --header-topbar-h: 2.5rem;
    --header-main-h: 4.25rem;
}

* { box-sizing: border-box; }
html { overflow-x: clip; }
body {
    margin: 0;
    font-family: var(--font-body);
    background:
        radial-gradient(ellipse 80% 50% at 50% -20%, rgba(47, 181, 210, .07), transparent 55%),
        radial-gradient(ellipse 60% 40% at 100% 50%, rgba(47, 181, 210, .04), transparent 50%),
        var(--color-bg);
    color: var(--color-text);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    overflow-x: clip;
}
.site-body.is-ready .page-content {
    animation: pageFadeIn .6s var(--ease-out) both;
}
img, video, svg { max-width: 100%; height: auto; }
h1, h2, h3, h4, .logo, .section-title h2, .hero-landing h1, .catalog-hero h1 {
    font-family: var(--font-display);
}
a { color: var(--color-text); text-decoration: none; }
a:hover { color: var(--color-accent); text-decoration: underline; }
.container { width: min(1360px, 92%); margin: 0 auto; max-width: 100%; }
.container-wide { width: min(1480px, 94%); margin: 0 auto; max-width: 100%; }

/* Esquinas rectas — headers, menus, banners */
.topbar,
.topbar-badge,
.header,
.header-main,
.header-search,
.header-search-btn,
.nav-toggle,
.nav .nav-link,
.nav a:not(.btn),
.nav .btn-header-cta,
.category-nav-shell,
.category-nav-inner,
.client-nav,
.client-nav-shell,
.client-nav-bar,
.client-nav-group,
.product-header,
.product-subnav,
.product-subnav-link,
.product-header .product-hero,
.product-header .product-subnav,
.product-hero-media-frame,
.product-hero-media-frame img,
.product-hero-ref,
.product-hero-chip,
.product-hero-ean,
.product-hero-guest-pill,
.hero-banner,
.hero-landing,
.hero-badge,
.hero-pill,
.cta-banner,
.service-banner,
.service-banner img,
.catalog-hero,
.catalog-hero-public,
.category-hero-banner,
.category-hero-stat-value,
.home-hero-grid,
.home-hero-stack,
.home-hero-search input,
.home-trust-item,
.hero-banner-slider,
.home-hero-media .hero-banner-slider,
.hero-banner-arrow,
.hero-banner-dots,
.hero-banner-dot,
.hero-banner-dot.is-active,
.auth-layout,
.auth-layout-register,
.auth-layout-login,
.auth-layout-forgot,
.auth-layout-reset,
.auth-page-forgot,
.auth-page-reset,
.auth-visual-trust span,
.home-stat-card,
.home-dashboard,
.home-shortcut,
.hero-dashboard,
.about-banner,
.nav-search input,
.product-overview-shell,
.product-hero-guest-pill,
.page-header-contact,
.page-header-gradient,
.home-seo,
.contact-form-card,
.info-card,
.empty-state,
.home-cta,
.catalog-sidebar-inner.panel-card,
.catalog-sidebar-mark,
.cookie-banner,
.footer-trust .trust-pill,
.client-nav-cta {
    border-radius: 0;
}

.main { padding: 2rem 0 3rem; min-width: 0; max-width: 100%; }

.header {
    background: rgba(255, 255, 255, .98);
    border-bottom: 1px solid rgba(0, 0, 0, .06);
    position: sticky;
    top: 0;
    z-index: 200;
    overflow: visible;
    transition: box-shadow .3s var(--ease-out), border-color .3s ease, background .3s ease;
}
.header-main {
    position: relative;
    background: #fff;
}
.header-main::before {
    content: '';
    display: block;
    height: 3px;
    background: linear-gradient(90deg, var(--color-ink) 0%, var(--color-accent) 52%, rgba(47, 181, 210, .28) 100%);
}
.header-inner {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    padding: 1rem 0;
    gap: 1.5rem;
    min-width: 0;
    min-height: 4.75rem;
    transition: padding .3s var(--ease-out), min-height .3s var(--ease-out);
}
.header-brand {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    grid-column: 1;
}
.header-center {
    display: flex;
    justify-content: center;
    min-width: 0;
    grid-column: 2;
}
.header-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .35rem;
    flex-shrink: 0;
    grid-column: 3;
}
.logo {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    text-decoration: none;
    line-height: 0;
}
.logo img {
    width: 148px;
    height: auto;
    display: block;
    transition: width .3s var(--ease-out), transform .3s var(--ease-out);
}
.logo:hover {
    text-decoration: none;
    opacity: 1;
}
.logo:hover img {
    transform: scale(1.03);
}

.nav-toggle {
    display: none;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 0;
    padding: .55rem;
    cursor: pointer;
    line-height: 0;
    color: var(--color-text);
    transition: border-color var(--motion-fast) ease, box-shadow var(--motion-fast) ease;
}
.nav-toggle:hover {
    border-color: rgba(47, 181, 210, .45);
    box-shadow: var(--shadow);
}
.nav {
    display: flex;
    gap: .2rem;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
}
.nav-link {
    color: var(--color-muted);
    font-family: var(--font-display);
    font-size: .8125rem;
    font-weight: 600;
    letter-spacing: .02em;
    padding: .5rem .85rem;
    border-radius: 0;
    text-decoration: none;
    border-bottom: 0;
    transition:
        color var(--motion-fast) ease,
        background var(--motion-fast) ease,
        box-shadow var(--motion-fast) ease;
}
.nav a:not(.btn):not(.nav-link) {
    color: var(--color-muted);
    font-size: .8125rem;
    font-weight: 600;
    padding: .5rem .85rem;
    text-decoration: none;
    border-radius: 0;
}
.nav a:not(.btn):hover,
.nav-link:hover {
    color: var(--color-ink);
    background: var(--color-surface-subtle);
    text-decoration: none;
    border-bottom-color: transparent;
}
.nav .nav-link.is-active,
.nav a:not(.btn).is-active {
    color: var(--color-ink);
    font-weight: 700;
    background: rgba(47, 181, 210, .12);
    box-shadow: inset 0 0 0 1px rgba(47, 181, 210, .22);
    border-bottom-color: transparent;
}
.nav .btn-header-cta {
    margin-left: .45rem;
    padding: .55rem 1rem;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .03em;
    border-radius: 0;
    background: var(--color-ink);
    color: #fff;
    border: 1px solid var(--color-ink);
    box-shadow: 0 4px 14px rgba(0, 0, 0, .12);
}
.nav .btn-header-cta:hover {
    background: #1a1a1a;
    border-color: #1a1a1a;
    color: #fff;
    text-decoration: none;
    box-shadow: 0 6px 18px rgba(0, 0, 0, .16);
    transform: translateY(-1px);
}
.nav .btn { font-size: .8125rem; }

.topbar {
    position: relative;
    width: 100%;
    background: linear-gradient(135deg, #0a0a0a 0%, #141414 48%, #0c0c0c 100%);
    color: rgba(255, 255, 255, .88);
    font-size: .72rem;
    font-weight: 500;
    letter-spacing: .02em;
    border-bottom: 1px solid rgba(255, 255, 255, .08);
    overflow: hidden;
}
.topbar::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(47, 181, 210, .12) 0%, transparent 42%),
        linear-gradient(180deg, rgba(255, 255, 255, .04) 0%, transparent 55%);
    pointer-events: none;
}
.topbar::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--color-accent), transparent);
    opacity: .65;
}
.topbar-inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 1rem 1.25rem;
    padding: .55rem 0;
}
.topbar-start {
    display: inline-flex;
    align-items: center;
    gap: .65rem;
    flex-shrink: 0;
}
.topbar-divider {
    width: 1px;
    height: .95rem;
    background: rgba(255, 255, 255, .16);
    flex-shrink: 0;
}
.topbar-kicker {
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .42);
    white-space: nowrap;
}
.topbar-badge {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .24rem .68rem;
    border: 1px solid rgba(47, 181, 210, .38);
    border-radius: 0;
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #fff;
    flex-shrink: 0;
    background: rgba(47, 181, 210, .14);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06);
}
.topbar-badge::before {
    content: '';
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--color-accent);
    box-shadow: 0 0 8px rgba(47, 181, 210, .55);
}
.topbar-text {
    margin: 0;
    min-width: 0;
    text-align: center;
    color: rgba(255, 255, 255, .76);
    font-size: .72rem;
    line-height: 1.35;
}
.topbar-inner:has(.topbar-vitrine-back) {
    grid-template-columns: auto minmax(0, 1fr) auto;
}
.topbar-vitrine-back {
    justify-self: end;
    color: #fff;
    font-size: .72rem;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
}
.topbar-vitrine-back:hover {
    color: var(--color-accent);
}

.footer {
    background: #212529;
    color: #adb5bd;
    padding: 3rem 0 1.5rem;
    margin-top: 2rem;
    border-top: 3px solid var(--color-accent);
}
.footer-grid {
    display: grid;
    grid-template-columns: 1.35fr repeat(4, minmax(0, 1fr));
    gap: 2rem;
    margin-bottom: 2rem;
}
.footer-brand p { margin: .75rem 0 0; max-width: 320px; line-height: 1.6; }
.footer-logo { opacity: .95; }
.footer h4 {
    color: #fff;
    margin: 0 0 .85rem;
    font-size: .95rem;
    font-weight: 600;
}
.footer ul { list-style: none; padding: 0; margin: 0; }
.footer li { margin-bottom: .45rem; }
.footer a { color: #b8c9c2; text-decoration: none; font-size: .88rem; }
.footer a:hover { color: var(--color-accent); text-decoration: none; }
.footer-bottom {
    border-top: 1px solid rgba(255,255,255,.1);
    padding-top: 1.25rem;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: .75rem;
    font-size: .82rem;
}
.footer-trust {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-top: 1rem;
}
.trust-pill {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 0;
    padding: .3rem .7rem;
    font-size: .75rem;
    color: rgba(255,255,255,.85);
}
.contact-trust-row .trust-pill {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    color: var(--color-text);
    font-size: .8rem;
}

.hero { text-align: center; padding: 2rem 0 1rem; }
.hero h1 { font-size: clamp(1.8rem, 4vw, 2.4rem); margin-bottom: .5rem; }
.lead { font-size: 1.1rem; color: var(--color-muted); }
.muted { color: var(--color-muted); }

/* Landing hero */
.hero-banner {
    margin: 0 0 1.5rem;
    border-radius: 0;
    overflow: hidden;
    box-shadow: var(--shadow-lg);
}
.hero-banner img {
    width: 100%;
    height: auto;
    display: block;
}
.hero-banner-link { display: block; }
.hero-landing {
    position: relative;
    overflow: hidden;
    border-radius: 0;
    background: var(--color-ink);
    color: #fff;
    padding: clamp(2rem, 5vw, 3.5rem) clamp(1.5rem, 4vw, 2.5rem);
    margin-bottom: 0;
    text-align: left;
    border: 1px solid var(--color-ink);
}
.hero-landing::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 85% 20%, rgba(255,255,255,.06) 0%, transparent 45%),
        radial-gradient(circle at 10% 80%, rgba(255,255,255,.04) 0%, transparent 40%);
    pointer-events: none;
}
.hero-landing::after {
    content: "";
    position: absolute;
    right: -5%;
    bottom: -20%;
    width: min(420px, 50vw);
    height: min(420px, 50vw);
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200' fill='none'%3E%3Ccircle cx='100' cy='100' r='80' stroke='rgba(255,255,255,0.08)' stroke-width='2'/%3E%3Ccircle cx='100' cy='100' r='55' stroke='rgba(255,255,255,0.06)' stroke-width='2'/%3E%3C/svg%3E") center/contain no-repeat;
    opacity: .8;
    pointer-events: none;
}
.hero-inner { position: relative; z-index: 1; max-width: 640px; }
.hero-badge {
    display: inline-block;
    background: rgba(255,255,255,.15);
    border: 1px solid rgba(255,255,255,.25);
    border-radius: 0;
    padding: .35rem .85rem;
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .03em;
    text-transform: uppercase;
    margin-bottom: 1rem;
}
.hero-landing h1 {
    font-size: clamp(1.85rem, 4.5vw, 3rem);
    line-height: 1.15;
    margin: 0 0 1rem;
    color: #fff;
}
.hero-landing .lead {
    color: rgba(255,255,255,.88);
    font-size: clamp(1rem, 2vw, 1.2rem);
    max-width: 540px;
    margin: 0 0 1.75rem;
}
.hero-landing .actions-inline { justify-content: flex-start; flex-wrap: wrap; }
.hero-landing .btn { border-color: transparent; }
.hero-landing .btn:not(.btn-primary) {
    background: rgba(255,255,255,.12);
    color: #fff;
    border-color: rgba(255,255,255,.3);
}
.hero-landing .btn:not(.btn-primary):hover { background: rgba(255,255,255,.2); }
.hero-landing .muted { color: rgba(255,255,255,.7); margin-top: 1rem; font-size: .9rem; }
.hero-pills {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-top: 1.5rem;
}
.hero-pill {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    background: rgba(255,255,255,.1);
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 0;
    padding: .4rem .75rem;
    font-size: .8rem;
    color: #fff;
}

.stats-band {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    margin: -2rem auto 2.5rem;
    position: relative;
    z-index: 2;
    max-width: 960px;
}
.stat-band-item {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 1.25rem 1rem;
    text-align: center;
    box-shadow: var(--shadow-lg);
}
.stat-band-value {
    display: block;
    font-size: clamp(1.4rem, 3vw, 1.85rem);
    font-weight: 800;
    color: var(--color-primary);
    line-height: 1.2;
}
.stat-band-label {
    display: block;
    font-size: .78rem;
    color: var(--color-muted);
    margin-top: .25rem;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.section-title {
    text-align: center;
    margin-bottom: 2rem;
}
.section-title h2 {
    font-size: clamp(1.4rem, 3vw, 1.85rem);
    margin: 0 0 .5rem;
}
.section-title p { color: var(--color-muted); max-width: 560px; margin: 0 auto; }

.features-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; margin-bottom: 2rem; }
.feature-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 0;
    padding: 1.5rem;
    transition: border-color .2s ease;
}
.feature-card:hover {
    transform: none;
    box-shadow: none;
    border-color: rgba(47, 181, 210, .4);
}
.feature-icon {
    width: 48px;
    height: 48px;
    border-radius: 0;
    background: var(--color-ink);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    margin-bottom: 1rem;
    font-weight: 700;
    border: 0;
}
.feature-card h3 { margin: 0 0 .5rem; font-size: 1.05rem; }

.steps-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    counter-reset: step;
}
.step-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 0;
    padding: 1.25rem;
    position: relative;
}
.step-card::before {
    counter-increment: step;
    content: counter(step);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    background: var(--color-ink);
    color: #fff;
    border-radius: 50%;
    font-weight: 700;
    font-size: .85rem;
    margin-bottom: .75rem;
    box-shadow: inset 0 0 0 2px var(--color-accent);
}
.step-card h3 { margin: 0 0 .4rem; font-size: .95rem; }
.step-card p { margin: 0; font-size: .88rem; }

.cta-banner {
    background: var(--color-ink);
    color: #fff;
    border-radius: 0;
    padding: clamp(2rem, 4vw, 3rem);
    text-align: center;
    margin-top: 3rem;
    border-top: 3px solid var(--color-accent);
}
.service-banner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    align-items: center;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 0;
    padding: 2rem;
    margin-top: 2.5rem;
    box-shadow: var(--shadow);
}
.service-banner img {
    width: 100%;
    height: auto;
    border-radius: 0;
}
.service-banner h2 { margin-top: 0; color: var(--color-primary-dark); }
.trust-icons {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    margin: 2.5rem 0;
}
.trust-icon-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: 1.5rem 1rem;
    text-align: center;
    box-shadow: var(--shadow);
}
.trust-icon-card .icon {
    width: 56px;
    height: 56px;
    margin: 0 auto .75rem;
    border-radius: 50%;
    background: var(--color-surface-muted);
    color: var(--color-primary-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
}
.trust-icon-card h3 {
    margin: 0 0 .35rem;
    font-size: .95rem;
    font-family: var(--font-display);
    color: var(--color-primary-dark);
}
.trust-icon-card p { margin: 0; font-size: .85rem; color: var(--color-muted); }
.category-card-image {
    height: 180px;
    background: #f0f0f0;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.cta-banner h2 { margin: 0 0 .75rem; font-size: clamp(1.3rem, 3vw, 1.75rem); }
.cta-banner p { color: rgba(255,255,255,.85); max-width: 520px; margin: 0 auto 1.5rem; }
.cta-banner .actions-inline { justify-content: center; }

.seo-content {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: 2rem;
    margin-top: 3rem;
}
.seo-content h2 { margin-top: 0; font-size: 1.25rem; }
.seo-content p { color: var(--color-muted); line-height: 1.75; }

.dashboard-welcome {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-left: 3px solid var(--color-accent);
    border-radius: var(--radius-lg);
    padding: 1.5rem 2rem;
    margin-bottom: 1.5rem;
}
.dashboard-welcome .lead { color: var(--color-text); margin: 0; }

.btn {
    display: inline-block;
    padding: .55rem 1rem;
    border-radius: var(--radius);
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    color: var(--color-text);
    cursor: pointer;
    text-decoration: none;
    font: inherit;
    transition:
        transform var(--motion-fast) var(--ease-out),
        box-shadow var(--motion-fast) var(--ease-out),
        background var(--motion-fast) ease,
        border-color var(--motion-fast) ease,
        color var(--motion-fast) ease,
        filter var(--motion-fast) ease;
}
.btn:hover {
    transform: translateY(-1px);
    box-shadow: var(--shadow);
    text-decoration: none;
}
.btn:active { transform: translateY(0) scale(.98); }
.btn-primary:hover {
    box-shadow: var(--shadow-glow);
}
.btn-primary {
    background: var(--color-accent);
    color: var(--color-ink);
    border-color: var(--color-accent);
    font-weight: 600;
}
.btn-primary:hover {
    background: var(--color-ink);
    border-color: var(--color-ink);
    color: #fff;
}
.btn-danger {
    background: #c0392b;
    color: #fff;
    border-color: #c0392b;
}
.btn-danger:hover {
    background: #922b21;
    border-color: #922b21;
    color: #fff;
}
.btn-lg { padding: .75rem 1.25rem; font-size: 1rem; }
.btn-sm { padding: .35rem .65rem; font-size: .85rem; }

.section { margin-top: 2rem; }
.hero .lead { font-size: 1.15rem; color: var(--color-muted); max-width: 560px; margin: 0 auto 1.5rem; }

.product-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 1rem;
    text-align: left;
}

.features-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; margin-bottom: 2rem; }
.nav-search {
    display: inline-flex;
    margin: 0 .5rem;
    position: relative;
    flex: 1;
    min-width: 140px;
    max-width: 220px;
}
.nav-search input {
    padding: .45rem .65rem;
    border: 1px solid #d4d4d4;
    border-radius: 0;
    font-size: .8125rem;
    width: 180px;
    background: #fafafa;
}
.nav-search input:focus {
    outline: none;
    border-color: #999;
    background: #fff;
}
.search-suggest {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    z-index: 120;
    max-height: 320px;
    overflow: auto;
    padding: .35rem;
}
.search-suggest-item {
    display: block;
    padding: .65rem .75rem;
    color: inherit;
    text-decoration: none;
    border-radius: var(--radius);
    font-size: .85rem;
    margin-bottom: .15rem;
    transition: background .12s;
}
.search-suggest-item:hover {
    background: var(--color-surface-muted);
    text-decoration: none;
}
.search-suggest-item strong { color: var(--color-primary-dark); }
.search-bar { margin-bottom: 1rem; }
.search-bar input[type=search] { min-width: 240px; padding: .4rem .6rem; }

.category-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 1rem;
}
.category-card {
    padding: 0;
    display: block;
    color: inherit;
    overflow: hidden;
    transition: border-color .2s ease;
    text-decoration: none;
}
.category-card:hover {
    transform: none;
    box-shadow: none;
    border-color: rgba(47, 181, 210, .45);
    text-decoration: none;
}
.category-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.category-card-placeholder {
    font-size: 2.5rem;
    opacity: .6;
}
.category-card-body {
    padding: 1rem 1.1rem 1.15rem;
    font-weight: 600;
    font-size: .95rem;
}
.category-card, .product-card, .form-card, .summary-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 0;
    box-shadow: none;
}
.product-card img { width: 100%; height: 180px; object-fit: cover; }
.product-card-media .product-placeholder { height: 180px; width: 100%; }
.product-card-body { padding: .9rem; }
.product-card h3 { margin: 0 0 .35rem; font-size: 1rem; }
.product-card-link { color: inherit; text-decoration: none; display: block; }
.product-placeholder { height: 180px; background: #e8ecea; }
.product-placeholder.large { height: 360px; border-radius: var(--radius); }
.price { font-weight: 700; color: var(--color-text); }
.price-lg { font-size: 1.6rem; font-weight: 700; color: var(--color-text); }
.price-accent { color: var(--color-accent); }

.catalog-layout { display: grid; grid-template-columns: 272px 1fr; gap: 1.75rem; min-width: 0; align-items: start; }
.catalog-layout > aside,
.catalog-layout > section { min-width: 0; }
.catalog-layout > .category-hero-banner,
.catalog-layout > .catalog-hero { grid-column: 1 / -1; }
.catalog-main { display: flex; flex-direction: column; gap: 1rem; }
.catalog-hero {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-left: 3px solid var(--color-accent);
    border-radius: 0;
    padding: 1.75rem 2rem;
    margin-bottom: .5rem;
    grid-column: 1 / -1;
}
.catalog-hero-public {
    display: flex;
    align-items: center;
    background: var(--color-surface);
    box-shadow: none;
}
.catalog-hero-content .section-label { margin-bottom: .5rem; }
.catalog-hero h1 { margin: 0 0 .5rem; font-size: clamp(1.3rem, 3vw, 1.75rem); }
.catalog-page-header {
    margin-bottom: 1rem;
    padding-bottom: .85rem;
    border-bottom: 1px solid var(--color-border);
}
.catalog-page-header h1 {
    margin: 0 0 .35rem;
    font-size: clamp(1.35rem, 2.5vw, 1.85rem);
    color: var(--color-primary-dark);
    line-height: 1.25;
}
.catalog-page-meta {
    margin: 0;
    font-size: .92rem;
}
.category-hero-banner {
    position: relative;
    overflow: hidden;
    padding: 0;
    min-height: 168px;
    border: 0;
    border-bottom: 1px solid var(--color-border);
    background: linear-gradient(135deg, #fff 0%, var(--color-surface-subtle) 100%);
}
.category-hero-banner.has-image { min-height: 220px; }
.category-hero-banner-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    transform: scale(1.02);
}
.category-hero-banner-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(105deg, rgba(17, 17, 17, .82) 0%, rgba(17, 17, 17, .55) 45%, rgba(17, 17, 17, .25) 100%);
}
.category-hero-banner.has-image .category-hero-banner-overlay {
    background: linear-gradient(105deg, rgba(17, 17, 17, .88) 0%, rgba(17, 17, 17, .62) 50%, rgba(47, 181, 210, .25) 100%);
}
.category-hero-search {
    min-height: auto;
    background: linear-gradient(135deg, rgba(47, 181, 210, .08) 0%, #fff 100%);
}
.category-hero-search .category-hero-banner-overlay { display: none; }
.category-hero-banner-content {
    position: relative;
    z-index: 1;
    padding: 1.35rem 1.6rem 1.5rem;
}
.category-hero-banner-main {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .65rem 1.25rem;
    margin-top: .65rem;
}
.category-hero-banner h1 {
    margin: 0;
    font-size: clamp(1.45rem, 3vw, 2rem);
    line-height: 1.15;
    color: var(--color-primary-dark);
}
.category-hero-banner.has-image h1,
.category-hero-banner.has-image .breadcrumbs-light a,
.category-hero-banner.has-image .breadcrumbs-light span,
.category-hero-banner.has-image .category-hero-stat {
    color: #fff;
}
.category-hero-banner.has-image .breadcrumbs-light .crumb-sep { color: rgba(255, 255, 255, .55); }
.category-hero-banner.has-image .breadcrumbs-light a:hover { color: var(--color-accent); }
.category-hero-stat {
    margin: 0;
    font-size: .88rem;
    color: var(--color-muted);
}
.category-hero-stat-value {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    height: 2rem;
    padding: 0 .55rem;
    margin-right: .35rem;
    border-radius: 0;
    background: rgba(47, 181, 210, .15);
    color: var(--color-primary-dark);
    font-weight: 800;
    font-family: var(--font-display);
}
.category-hero-banner.has-image .category-hero-stat-value {
    background: rgba(255, 255, 255, .16);
    color: #fff;
}
.category-hero-intro {
    margin: .85rem 0 0;
    max-width: 720px;
    font-size: .92rem;
    line-height: 1.55;
    color: var(--color-muted);
}
.category-hero-banner.has-image .category-hero-intro {
    color: rgba(255, 255, 255, .88);
}
.catalog-breadcrumbs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .2rem .35rem;
    margin: 0;
    font-size: .82rem;
}
.breadcrumbs-light a { color: rgba(255, 255, 255, .82); text-decoration: none; }
.breadcrumbs-light a:hover { color: #fff; text-decoration: none; }
.breadcrumbs-light span[aria-current="page"] { color: #fff; font-weight: 600; }
.category-subgrid-wrap {
    padding: 1rem 1.1rem;
    margin: 0;
}
.category-subgrid-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: .75rem;
}
.category-subgrid-title {
    margin: 0;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--color-muted);
}
.category-subgrid-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.5rem;
    height: 1.5rem;
    padding: 0 .4rem;
    border-radius: 999px;
    background: rgba(47, 181, 210, .12);
    color: var(--color-accent);
    font-size: .72rem;
    font-weight: 800;
}
.category-subgrid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
    gap: .55rem;
}
.category-subcard {
    display: flex;
    align-items: center;
    gap: .55rem;
    padding: .65rem .75rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-surface-subtle);
    color: inherit;
    text-decoration: none;
    transition: border-color .18s, background .18s, transform .18s, box-shadow .18s;
}
.category-subcard:hover {
    border-color: rgba(47, 181, 210, .45);
    background: #fff;
    transform: translateY(-1px);
    box-shadow: var(--shadow);
    text-decoration: none;
    color: inherit;
}
.category-subcard.is-active {
    border-color: var(--color-accent);
    background: rgba(47, 181, 210, .1);
    box-shadow: inset 3px 0 0 var(--color-accent);
}
.category-subcard-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.65rem;
    height: 1.65rem;
    border-radius: 50%;
    background: #fff;
    color: var(--color-accent);
    flex-shrink: 0;
    border: 1px solid rgba(47, 181, 210, .25);
}
.category-subcard-name {
    font-size: .86rem;
    font-weight: 600;
    line-height: 1.35;
}
.catalog-public-notice { margin: 0; }
.catalog-toolbar-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .85rem 1.25rem;
    width: 100%;
}
.catalog-toolbar-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .55rem .75rem;
    justify-content: flex-end;
}
.catalog-sort-select {
    margin: 0;
    width: auto;
    min-width: 10rem;
    padding: .45rem .65rem;
    font-size: .85rem;
    border-radius: 999px;
    background: var(--color-surface-subtle);
}
.catalog-stock-filter { margin: 0; font-size: .84rem; white-space: nowrap; }
.catalog-toolbar-pro {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    padding-left: .5rem;
    border-left: 1px solid var(--color-border);
}
.view-toggle-btn.active {
    background: var(--color-ink);
    color: #fff;
    border-color: var(--color-ink);
}
.product-grid-catalog {
    gap: 1.15rem;
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
}
.catalog-empty {
    text-align: center;
    padding: 2.5rem 1.5rem;
}
.catalog-empty-icon {
    font-size: 2rem;
    margin-bottom: .65rem;
    opacity: .7;
}
.catalog-empty h2 {
    margin: 0 0 .35rem;
    font-size: 1.1rem;
    color: var(--color-primary-dark);
}
.catalog-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: .65rem 1rem;
    padding: .85rem 1rem;
}
.pagination-pages {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    justify-content: center;
}
.pagination-nav {
    font-size: .84rem;
    font-weight: 600;
    white-space: nowrap;
}
.catalog-hero p { margin: 0; color: var(--color-muted); max-width: 640px; }
.catalog-hero-actions { margin-top: 1rem; }
.view-toggle-tabs {
    background: var(--color-bg);
    padding: .25rem;
    border-radius: var(--radius);
    border: 1px solid var(--color-border);
}
.pagination-bar {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    justify-content: center;
    padding: .85rem 1rem;
    margin-top: 1.25rem;
}
.section-products {
    background: transparent;
    padding: 2rem 0 2.5rem;
    border-radius: var(--radius-lg);
}
.back-to-top {
    position: fixed;
    right: 1.25rem;
    bottom: 1.25rem;
    z-index: 90;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 50%;
    border: 0;
    background: var(--color-primary);
    color: #000;
    font-size: 1.15rem;
    font-weight: 700;
    cursor: pointer;
    box-shadow: var(--shadow-lg);
    transition: transform .2s, opacity .2s, background .2s;
}
.back-to-top:hover {
    transform: translateY(-2px);
    background: var(--color-primary-dark);
    color: #fff;
}
.back-to-top[hidden] { display: none; }
.sidebar { height: fit-content; }
.category-list { list-style: none; padding: 0; margin: 1rem 0 0; }
.category-list-tree .category-list-item { margin: 0; }
.category-list-tree .category-list-item a {
    display: block;
    padding: .45rem .65rem .45rem calc(.65rem + (var(--cat-depth, 0) * 1rem));
    color: inherit;
    border-radius: var(--radius);
    transition: background .15s;
    font-size: .92rem;
}
.category-list-tree .category-list-item.has-children > a { font-weight: 600; }
.category-list a { display: block; padding: .4rem 0; color: inherit; }
.category-list a.active { color: var(--color-primary); font-weight: 600; }
.search-form { display: flex; gap: .5rem; }
.search-form input { flex: 1; }

.form-card, .summary-card { padding: 1.25rem; max-width: 520px; }
label { display: block; margin-bottom: 1rem; }
input, textarea, select {
    width: 100%;
    max-width: 100%;
    margin-top: .35rem;
    padding: .6rem .75rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    font: inherit;
}
input[type="checkbox"],
input[type="radio"] {
    width: auto;
    min-width: 1rem;
    max-width: none;
    margin-top: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    flex-shrink: 0;
    accent-color: var(--color-accent);
    box-shadow: none;
}
.inline-form { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; }
.inline-form input { width: 80px; margin: 0; }
.translation-category-form { flex-direction: column; align-items: stretch; max-width: 28rem; }
.translation-category-form input[name="name_fr"] { width: 100%; }
.translation-category-form .meta-inline { width: 100%; font-size: .85rem; }
.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; }
#manual-preview-status { font-size: .85rem; }
#quick-preview-status { font-size: .85rem; }
.preview-section.is-loading { opacity: .7; }
.min-order-progress {
    height: 6px;
    background: var(--color-border);
    border-radius: 999px;
    overflow: hidden;
    margin: .5rem 0;
}
.min-order-progress-bar {
    height: 100%;
    background: var(--color-accent);
    border-radius: 999px;
    transition: width .3s ease;
}

.table { width: 100%; border-collapse: collapse; background: var(--color-surface); border-radius: var(--radius); overflow: hidden; }
.table th, .table td { padding: .75rem; border-bottom: 1px solid var(--color-border); text-align: left; }
.text-right { text-align: right; }
.actions { display: flex; gap: .75rem; margin-top: 1rem; }

.checkout-grid { display: grid; grid-template-columns: 1fr 320px; gap: 1.5rem; align-items: start; }
.summary-list { list-style: none; padding: 0; margin: 0 0 1rem; }
.summary-list li { display: flex; justify-content: space-between; gap: 1rem; padding: .35rem 0; border-bottom: 1px dashed var(--color-border); }
.summary-breakdown {
    margin: 0 0 .75rem;
    padding: 0;
}
.summary-breakdown-row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: .35rem 0;
    border-bottom: 1px dashed var(--color-border);
}
.summary-breakdown-row dt,
.summary-breakdown-row dd {
    margin: 0;
    font-weight: 500;
}
.summary-breakdown-row.is-free dd {
    color: var(--color-success, #15803d);
    font-weight: 600;
}
.shipping-threshold-note {
    margin: 0 0 .75rem;
    font-size: .875rem;
}
.summary-total { display: flex; justify-content: space-between; font-size: 1.1rem; margin-top: .35rem; }

.alert { padding: .85rem 1rem; border-radius: var(--radius); margin-bottom: 1rem; }
.alert-error { background: #fff; color: var(--color-text); border: 1px solid var(--color-ink); }
.alert-success { background: #fff; color: var(--color-text); border: 1px solid var(--color-accent); border-left-width: 3px; }

.badge { display: inline-block; padding: .2rem .55rem; border-radius: 999px; font-size: .8rem; background: #f5f5f5; color: var(--color-text); border: 1px solid var(--color-border); }
.badge-synced { background: #fff; color: var(--color-text); border-color: var(--color-accent); box-shadow: inset 0 0 0 1px var(--color-accent); }
.badge-pending { background: #f5f5f5; color: var(--color-text); }
.badge-error { background: var(--color-ink); color: #fff; border-color: var(--color-ink); }
.badge-cancelled { background: #e5e5e5; color: var(--color-muted); }

.pagination a.active { background: var(--color-ink); color: #fff; font-weight: 700; border-color: var(--color-ink); }

.pagination { display: flex; gap: .5rem; margin-top: 1.5rem; }
.pagination a { padding: .4rem .7rem; border: 1px solid var(--color-border); border-radius: var(--radius); background: #fff; }

.product-image { width: 100%; border-radius: var(--radius); }
.add-cart-form { display: flex; gap: .75rem; align-items: end; margin-top: 1rem; }
.add-cart-form input { width: 100px; }

@media (max-width: 768px) {
    .catalog-layout, .checkout-grid, .product-detail-grid { grid-template-columns: 1fr; }
    .catalog-layout > aside { position: static; }
    .catalog-sidebar-menu-wrap,
    .catalog-sidebar-menu { max-height: 320px; }
    .category-hero-banner-content { padding: 1rem 1.1rem 1.15rem; }
    .category-hero-banner-main { flex-direction: column; align-items: flex-start; gap: .35rem; }
    .category-subgrid { grid-template-columns: 1fr; }
    .catalog-toolbar-row { flex-direction: column; align-items: stretch; }
    .catalog-toolbar-actions { justify-content: stretch; }
    .catalog-toolbar-pro { border-left: 0; padding-left: 0; padding-top: .35rem; border-top: 1px dashed var(--color-border); }
    .pagination-nav { width: 100%; text-align: center; }
}

/* Admin (legacy base — overridden below in Admin enhancements) */
.narrow { max-width: 420px; margin: 0 auto; }
.wide { max-width: 760px; }
.stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 1rem; margin: 1.5rem 0; }
.stat-card { background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius); padding: 1rem; text-align: center; }
.stat-value { display: block; font-size: 1.8rem; font-weight: 700; color: var(--color-text); }
.stat-label { color: var(--color-muted); font-size: .85rem; }
.toolbar { display: flex; gap: .75rem; flex-wrap: wrap; margin-bottom: 1rem; align-items: center; }
.checkbox-inline { display: inline-flex; align-items: center; gap: .35rem; }
.table.compact td, .table.compact th { padding: .5rem; }
.actions-inline { display: flex; gap: .5rem; flex-wrap: wrap; }
.source-box { background: #f9fafb; border: 1px solid var(--color-border); padding: 1rem; border-radius: var(--radius); max-height: 200px; overflow: auto; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.hidden { display: none !important; }

.account-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: 1.5rem; align-items: start; }
.section-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; }
.address-list { list-style: none; padding: 0; margin: 0; }
.address-item { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--color-border); }
.address-select-list { display: grid; gap: .75rem; margin-bottom: 1rem; }
.address-option { display: flex; gap: .75rem; align-items: flex-start; padding: .75rem; border: 1px solid var(--color-border); border-radius: var(--radius); cursor: pointer; }
.address-option:has(input:checked) { border-color: var(--color-primary); background: var(--color-surface-subtle); }

@media (max-width: 768px) {
    .account-grid { grid-template-columns: 1fr; }
}

.breadcrumbs { font-size: .9rem; color: var(--color-muted); margin-bottom: 1rem; }
.breadcrumbs a { color: var(--color-muted); text-decoration: none; }
.breadcrumbs a:hover { color: var(--color-accent); text-decoration: none; }
.breadcrumbs span[aria-current="page"] { color: var(--color-text); font-weight: 600; }
.catalog-toolbar { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1rem; margin-bottom: 1rem; }
.catalog-toolbar h1 { margin: 0; }
.view-toggle { display: flex; gap: .25rem; }
.view-toggle .btn.active { background: var(--color-primary); color: #fff; border-color: var(--color-primary); }
.quick-order-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; align-items: start; }
.search-results { list-style: none; padding: 0; margin: .5rem 0 0; max-height: 240px; overflow: auto; }
.search-results li { padding: .5rem .75rem; border: 1px solid var(--color-border); border-radius: var(--radius); margin-bottom: .35rem; cursor: pointer; }
.search-results li:hover { background: var(--color-surface-muted); }
.account-stats { margin-bottom: 1.5rem; }

.payment-methods { display: grid; gap: .75rem; margin-bottom: 1rem; }
.payment-option { display: flex; gap: .75rem; align-items: flex-start; padding: .75rem; border: 1px solid var(--color-border); border-radius: var(--radius); cursor: pointer; }
.payment-option:has(input:checked) { border-color: var(--color-primary); background: var(--color-surface-subtle); }
.address-option,
.payment-option { margin-bottom: 0; }
.address-option input[type="radio"],
.payment-option input[type="radio"] {
    width: auto;
    min-width: 1rem;
    max-width: none;
    margin: .2rem 0 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    flex-shrink: 0;
    align-self: flex-start;
    accent-color: var(--color-accent);
    box-shadow: none;
}
.credit-info { font-size: .9rem; margin-bottom: 1rem; }

.product-card { position: relative; }
.favorite-form { position: absolute; top: .5rem; right: .5rem; z-index: 2; margin: 0; }
.favorite-btn { background: #fff; border: 1px solid var(--color-border); border-radius: 50%; width: 2rem; height: 2rem; cursor: pointer; font-size: 1.1rem; line-height: 1; padding: 0; }
.favorite-btn.is-favorite { color: #d97706; border-color: #fbbf24; background: #fffbeb; }
.favorite-inline { margin: .5rem 0 1rem; }

.row-warning { background: #fffbeb; }
.btn.disabled, .btn:disabled { opacity: .5; pointer-events: none; cursor: not-allowed; }
.toolbar .btn.active { background: var(--color-primary); color: #fff; border-color: var(--color-primary); }

.ps-guide { margin-top: 1rem; border: 1px solid var(--color-border); border-radius: var(--radius); padding: .75rem 1rem; background: #f9fafb; }
.ps-guide summary { cursor: pointer; font-weight: 600; color: var(--color-primary); }
.ps-guide[open] summary { margin-bottom: .75rem; }
.guide-list { margin: 0; padding-left: 1.25rem; }
.guide-list li { margin-bottom: .4rem; }
.guide-list code { font-size: .85em; }

.reply-form textarea { width: 100%; min-height: 120px; padding: .6rem; border: 1px solid var(--color-border); border-radius: var(--radius); font: inherit; }
.message-preview { white-space: pre-wrap; line-height: 1.6; }
.reply-history { list-style: none; padding: 0; margin: 0; }
.reply-item { border-left: 3px solid var(--color-primary); padding: .75rem 1rem; margin-bottom: 1rem; background: #f9fafb; border-radius: 0 var(--radius) var(--radius) 0; }
.credit-warning { display: none; }
.credit-warning.visible { display: block; }
.error-page { text-align: center; padding: 3rem 1rem; max-width: 560px; margin: 2rem auto; }
.error-page.panel-card { box-shadow: none; }
.error-page .lead { max-width: 480px; margin: 0 auto 1.5rem; color: var(--color-muted); }
.public-notice { background: var(--color-surface-subtle); border: 1px solid var(--color-border); border-radius: 0; padding: 1.25rem 1.5rem; margin-bottom: 1.5rem; }
.public-notice strong { color: var(--color-primary-dark); }
.price-locked, .price-locked-lg { color: var(--color-muted); font-style: italic; }
.price-locked-lg { font-size: 1.25rem; margin: 1rem 0 .5rem; }
.price-locked-box { margin: 1rem 0; background: #f9fafb; }

/* ── Header professionnel ── */
.header.is-scrolled {
    box-shadow: none;
    backdrop-filter: blur(14px);
    background: rgba(255, 255, 255, .94);
    border-bottom-color: rgba(0, 0, 0, .1);
}
.header.is-scrolled .header-inner {
    padding: .7rem 0;
    min-height: 4rem;
}
.header.is-scrolled .logo img { width: 124px; }
.header-search {
    flex: 1;
    width: 100%;
    max-width: 520px;
    display: flex;
    align-items: center;
    height: 2.85rem;
    padding: .2rem .2rem .2rem .15rem;
    border: 1px solid var(--color-border);
    border-radius: 0;
    overflow: visible;
    background: var(--color-surface-subtle);
    position: relative;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, .03);
    transition:
        border-color var(--motion-fast) ease,
        box-shadow var(--motion-fast) ease,
        background var(--motion-fast) ease;
}
.header-search:focus-within {
    border-color: rgba(47, 181, 210, .55);
    background: #fff;
    box-shadow: var(--shadow-glow);
}
.header-search input {
    flex: 1;
    border: 0;
    background: transparent;
    padding: 0 1rem 0 1.1rem;
    font: inherit;
    font-size: .875rem;
    min-width: 0;
    color: var(--color-text);
}
.header-search input::placeholder { color: #999; }
.header-search input:focus { outline: none; }
.header-search-btn {
    border: 0;
    border-radius: 0;
    background: var(--color-accent);
    color: var(--color-ink);
    padding: 0 1.05rem;
    height: calc(100% - 2px);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background var(--motion-fast) ease, transform var(--motion-fast) ease;
}
.header-search-btn:hover {
    background: var(--color-ink);
    color: #fff;
}
.category-nav {
    position: relative;
    background: transparent;
    border: 0;
    overflow: visible;
    max-width: 100%;
    z-index: 190;
    padding: 0 0 .85rem;
}
.category-nav-shell {
    position: relative;
    background: linear-gradient(180deg, #171717 0%, #0d0d0d 100%);
    border: 1px solid rgba(255, 255, 255, .07);
    border-radius: 0;
    box-shadow: 0 12px 32px rgba(0, 0, 0, .12);
    overflow: visible;
}
.category-nav-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 0;
    padding: 0;
    min-height: 2.75rem;
    border-radius: 0;
    overflow: hidden;
    scrollbar-width: none;
}
.category-nav-inner::-webkit-scrollbar { display: none; }
.category-nav-link,
.category-nav-trigger {
    color: rgba(255, 255, 255, .78);
    font-family: var(--font-display);
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .02em;
    padding: .78rem 1rem;
    text-decoration: none;
    white-space: nowrap;
    border: 0;
    background: transparent;
    border-radius: 0;
    transition: background .18s ease, color .18s ease;
    cursor: pointer;
}
.category-nav-trigger {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
}
.category-nav-link:hover,
.category-nav-trigger:hover,
.category-nav-item.is-active > .category-nav-trigger,
.category-nav-link.is-current,
.category-nav-trigger.is-current {
    background: rgba(255, 255, 255, .08);
    color: #fff;
    text-decoration: none;
}
.category-nav-link-accent {
    color: rgba(255, 255, 255, .92);
    background: transparent;
    align-self: stretch;
    margin-left: auto;
    border-left: 1px solid rgba(255, 255, 255, .12);
    font-weight: 600;
}
.category-nav-link-accent:hover {
    background: rgba(47, 181, 210, .15);
    color: #fff;
}
.category-nav-item {
    position: static;
    display: flex;
    align-items: stretch;
    flex-direction: column;
    border-right: 1px solid rgba(255, 255, 255, .08);
}
.category-nav-split {
    display: flex;
    align-items: stretch;
}
.category-nav-go {
    color: rgba(255, 255, 255, .82);
    font-family: var(--font-display);
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .015em;
    padding: .72rem .75rem .72rem 1rem;
    text-decoration: none;
    white-space: nowrap;
    transition: background .15s, color .15s;
}
.category-nav-go:hover,
.category-nav-go.is-current,
.category-nav-item.is-active .category-nav-go {
    background: rgba(255, 255, 255, .08);
    color: #fff;
    text-decoration: none;
}
.category-nav-split .category-nav-trigger {
    padding-left: .2rem;
    padding-right: 0;
    border-left: 0;
}
.category-nav-caret {
    opacity: .75;
    transition: transform .2s ease, opacity .2s;
}
.category-nav-item.is-open .category-nav-caret,
.category-nav-item.has-mega:hover .category-nav-caret {
    transform: rotate(180deg);
    opacity: 1;
}
.category-mega-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.35);
    z-index: 180;
    display: none;
}
.category-nav.has-mega-open .category-mega-backdrop {
    display: block;
}
body.category-mega-open { overflow: hidden; }
.category-mega-panel {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    background: #fff;
    color: var(--color-text);
    border-top: 2px solid var(--color-ink);
    box-shadow: 0 16px 40px rgba(0, 0, 0, .12);
    z-index: 210;
    max-height: min(72vh, 560px);
    overflow: auto;
    animation: megaPanelIn .18s ease-out;
}
@keyframes megaPanelIn {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: translateY(0); }
}
.category-nav-item.has-mega.is-open .category-mega-panel,
.category-nav-item.has-mega:hover .category-mega-panel {
    display: block;
}
.category-mega-panel-inner {
    padding: 1.25rem 0 1.35rem;
}
.category-mega-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
    padding-bottom: .85rem;
    border-bottom: 1px solid var(--color-border);
}
.category-mega-kicker {
    margin: 0 0 .15rem;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--color-muted);
}
.category-mega-title {
    margin: 0;
    font-family: var(--font-display);
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--color-primary-dark);
}
.category-mega-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem 1.5rem;
}
.category-mega-col-title {
    display: block;
    font-family: var(--font-display);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .03em;
    text-transform: uppercase;
    color: var(--color-text);
    margin-bottom: .45rem;
    text-decoration: none;
}
.category-mega-col-title:hover,
.category-mega-col-title.is-current {
    color: var(--color-accent);
}
.category-mega-links {
    list-style: none;
    margin: 0;
    padding: 0;
}
.category-mega-links a {
    display: block;
    padding: .22rem 0;
    font-size: .84rem;
    color: #555;
    text-decoration: none;
    line-height: 1.35;
}
.category-mega-links a:hover,
.category-mega-links a.is-current {
    color: var(--color-accent);
}
.category-mega-col-link {
    font-size: .8rem;
    color: var(--color-accent);
    text-decoration: none;
}
.category-mega-col-link:hover { text-decoration: underline; }
.catalog-category-tools {
    display: grid;
    gap: .5rem;
    padding: .75rem 1.1rem;
    border-bottom: 1px solid var(--color-border);
    background: rgba(255, 255, 255, .7);
}
.catalog-category-tools-actions {
    display: flex;
    gap: .35rem;
    flex-wrap: wrap;
}
.sidebar-tool-btn {
    flex: 1;
    min-width: 0;
    padding: .35rem .55rem;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    background: var(--color-surface);
    color: var(--color-muted);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .03em;
    text-transform: uppercase;
    cursor: pointer;
    transition: border-color .15s, color .15s, background .15s;
}
.sidebar-tool-btn:hover {
    border-color: rgba(47, 181, 210, .45);
    color: var(--color-accent);
    background: rgba(47, 181, 210, .06);
}
#catalog-category-menu .category-menu-item.is-filter-hidden { display: none; }
#catalog-category-menu .category-menu-item.is-filter-match > .category-menu-row .category-menu-link {
    background: rgba(47, 181, 210, .1);
    color: var(--color-primary-dark);
}
.category-chips {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem;
    padding: .75rem 1rem;
    margin-bottom: 1rem;
}
.category-chips-label {
    font-size: .78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--color-muted);
    margin-right: .25rem;
}
.category-chip {
    display: inline-block;
    padding: .35rem .75rem;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    font-size: .82rem;
    color: inherit;
    text-decoration: none;
    background: #fff;
    transition: border-color .15s, background .15s, color .15s;
}
.category-chip:hover {
    border-color: var(--color-accent);
    color: var(--color-accent);
    text-decoration: none;
}
.category-chip.is-active {
    background: var(--color-accent);
    border-color: var(--color-accent);
    color: #fff;
    font-weight: 600;
}
.category-menu {
    list-style: none;
    margin: 0;
    padding: 0;
}
.category-menu-item { margin: 0; }
.category-menu-row {
    display: flex;
    align-items: center;
    gap: .2rem;
}
.category-menu-link {
    flex: 1;
    display: flex;
    align-items: center;
    gap: .45rem;
    min-width: 0;
    padding: .42rem .55rem;
    border-radius: var(--radius);
    color: var(--color-text);
    text-decoration: none;
    font-size: .88rem;
    line-height: 1.35;
    border: 1px solid transparent;
    transition: background .18s, color .18s, border-color .18s, box-shadow .18s;
}
.category-menu-dot {
    width: .4rem;
    height: .4rem;
    border-radius: 50%;
    background: var(--color-border);
    flex-shrink: 0;
    transition: background .18s, transform .18s, box-shadow .18s;
}
.category-menu-link:hover {
    background: var(--color-surface-muted);
    text-decoration: none;
    color: var(--color-text);
}
.category-menu-link:hover .category-menu-dot {
    background: rgba(47, 181, 210, .55);
}
.category-menu-link.active,
.category-menu-item.is-active > .category-menu-row .category-menu-link {
    background: rgba(47, 181, 210, .1);
    color: var(--color-primary-dark);
    font-weight: 700;
    border-color: rgba(47, 181, 210, .22);
    box-shadow: inset 3px 0 0 var(--color-accent);
}
.category-menu-link.active .category-menu-dot,
.category-menu-item.is-active > .category-menu-row .category-menu-link .category-menu-dot {
    background: var(--color-accent);
    box-shadow: 0 0 0 3px rgba(47, 181, 210, .18);
}
.category-menu-item.is-active-branch > .category-menu-row .category-menu-link {
    font-weight: 600;
    color: var(--color-primary-dark);
}
.category-menu-item.is-active-branch > .category-menu-row .category-menu-link .category-menu-dot {
    background: rgba(47, 181, 210, .65);
}
.category-menu-expand {
    flex: 0 0 1.65rem;
    width: 1.65rem;
    height: 1.65rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid transparent;
    background: transparent;
    color: var(--color-muted);
    cursor: pointer;
    border-radius: 50%;
    transition: background .18s, transform .22s ease, border-color .18s, color .18s;
}
.category-menu-expand:hover {
    background: var(--color-surface-muted);
    border-color: var(--color-border);
    color: var(--color-text);
}
.category-menu-item.is-open > .category-menu-row .category-menu-expand {
    transform: rotate(90deg);
    color: var(--color-accent);
    background: rgba(47, 181, 210, .1);
    border-color: rgba(47, 181, 210, .25);
}
.category-menu-children {
    margin: .1rem 0 .2rem;
    padding: .15rem 0 .15rem .55rem;
    border-left: 1px solid rgba(47, 181, 210, .18);
    margin-left: 1.05rem;
}
.category-menu-children .category-menu-link {
    font-size: .84rem;
    padding-top: .32rem;
    padding-bottom: .32rem;
}
.category-menu-children .category-menu-children {
    margin-left: .75rem;
    border-left-color: rgba(0, 0, 0, .08);
}
.category-menu-children .category-menu-children .category-menu-link {
    font-size: .8rem;
    font-weight: 400;
}
.category-menu-item:not(.is-open) > .category-menu-children { display: none; }
.category-menu-sidebar { margin-top: .15rem; }
.category-menu-compact .category-menu-link {
    padding: .32rem .45rem;
    font-size: .82rem;
}
.client-sidebar-categories { margin-top: 0; }
.client-category-menu {
    padding: .15rem .25rem 0;
    margin-top: 0;
}
.client-category-all {
    display: flex;
    align-items: center;
    gap: .45rem;
    padding: .45rem .55rem;
    margin-bottom: .35rem;
    border-radius: var(--radius-lg);
    font-size: .84rem;
    font-weight: 600;
    color: inherit;
    text-decoration: none;
    border: 1px solid transparent;
    transition: background .18s, border-color .18s, color .18s;
}
.client-category-all::before {
    content: '';
    width: .4rem;
    height: .4rem;
    border-radius: 50%;
    background: var(--color-border);
    flex-shrink: 0;
}
.client-category-all:hover {
    background: var(--color-surface-muted);
    text-decoration: none;
}
.client-category-all.is-active {
    background: rgba(47, 181, 210, .1);
    color: var(--color-primary-dark);
    border-color: rgba(47, 181, 210, .22);
    box-shadow: inset 3px 0 0 var(--color-accent);
}
.client-category-all.is-active::before {
    background: var(--color-accent);
}
.cart-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.35rem;
    height: 1.35rem;
    padding: 0 .35rem;
    background: var(--color-primary);
    color: #000;
    border-radius: 999px;
    font-size: .75rem;
    font-weight: 700;
}

/* ── Home (landing B2B) ── */
.home-hero {
    margin-bottom: 2rem;
    background: transparent;
}
.home-hero-grid,
.home-hero-stack {
    display: flex;
    flex-direction: column;
    gap: 0;
    border-radius: 0;
    overflow: hidden;
    box-shadow: var(--shadow);
}
.home-hero-media {
    position: relative;
    width: 100%;
    aspect-ratio: 2900 / 928;
    max-height: min(420px, 52vw);
    min-height: 200px;
    background: var(--color-ink);
    margin-top: 0;
}
.home-hero-media .hero-banner-slider {
    height: 100%;
    min-height: inherit;
    border-radius: 0;
    box-shadow: none;
    border: 1px solid var(--color-border);
}
.home-hero-media .hero-banner-slides,
.home-hero-media .hero-banner-slide,
.home-hero-media .hero-banner-slide a {
    height: 100%;
    min-height: inherit;
}
.home-hero-media .hero-banner-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}
.home-hero-aside,
.home-hero-content {
    margin: 0;
    border-radius: 0;
    border: 0;
    border-top: 1px solid rgba(255, 255, 255, .12);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(1.5rem, 3vw, 2.5rem);
    text-align: center;
}
.home-hero-aside .hero-inner,
.home-hero-content .hero-inner {
    max-width: 42rem;
    width: 100%;
    margin: 0 auto;
}
.home-hero-aside h1,
.home-hero-content h1 {
    font-size: clamp(1.55rem, 3vw, 2.15rem);
}
.home-hero-aside .lead,
.home-hero-content .lead {
    font-size: clamp(.92rem, 1.5vw, 1.05rem);
    margin-bottom: 1.15rem;
}
.home-hero-aside .actions-inline,
.home-hero-content .actions-inline,
.home-hero-aside .hero-pills,
.home-hero-content .hero-pills {
    justify-content: center;
}
.home-hero-search {
    display: flex;
    gap: .5rem;
    margin-bottom: 1.15rem;
    max-width: 36rem;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    position: relative;
}
.home-hero-search input {
    flex: 1;
    min-width: 0;
    padding: .65rem .85rem;
    border: 1px solid rgba(255, 255, 255, .25);
    border-radius: 0;
    background: rgba(255, 255, 255, .1);
    color: #fff;
    font: inherit;
}
.home-hero-search input::placeholder { color: rgba(255, 255, 255, .55); }
.home-hero-search input:focus {
    outline: none;
    border-color: rgba(255, 255, 255, .65);
    box-shadow: none;
    background: rgba(255, 255, 255, .14);
}
.page-home .home-hero-aside .btn-primary,
.page-home .home-hero-content .btn-primary,
.page-home .home-cta .btn-primary,
.page-home .home-service .btn-primary {
    background: #fff;
    border-color: #fff;
    color: var(--color-ink);
    box-shadow: none;
    transform: none;
}
.page-home .home-hero-aside .btn-primary:hover,
.page-home .home-hero-content .btn-primary:hover,
.page-home .home-cta .btn-primary:hover,
.page-home .home-service .btn-primary:hover {
    background: var(--color-surface-subtle);
    border-color: var(--color-surface-subtle);
    color: var(--color-ink);
    box-shadow: none;
    transform: none;
}
.page-home .home-band-categories .section-cta .btn-primary,
.page-home .home-band-featured .section-cta .btn-primary,
.page-home .home-band-muted .section-cta .btn-primary {
    background: var(--color-ink);
    border-color: var(--color-ink);
    color: #fff;
    box-shadow: none;
}
.page-home .home-band-categories .section-cta .btn-primary:hover,
.page-home .home-band-featured .section-cta .btn-primary:hover,
.page-home .home-band-muted .section-cta .btn-primary:hover {
    background: #1a1a1a;
    border-color: #1a1a1a;
    color: #fff;
}
.page-home .home-hero-search .btn-primary {
    background: #fff;
    border-color: #fff;
    color: var(--color-ink);
}
.page-home .home-hero-search .btn-primary:hover {
    background: var(--color-surface-subtle);
    border-color: var(--color-surface-subtle);
    color: var(--color-ink);
}
.home-hero-search .btn {
    flex-shrink: 0;
    white-space: nowrap;
}
.home-trust-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    margin-top: 0;
    position: relative;
    z-index: 3;
    padding: 0;
    border-top: 1px solid rgba(255, 255, 255, .12);
    background: var(--color-ink);
}
.home-trust-item {
    display: flex;
    align-items: center;
    gap: .85rem;
    padding: 1rem 1.15rem;
    background: transparent;
    border: 0;
    border-right: 1px solid rgba(255, 255, 255, .1);
    border-radius: 0;
    box-shadow: none;
    transition: background .2s ease;
}
.home-trust-item:last-child {
    border-right: 0;
}
.home-trust-item:hover {
    transform: none;
    box-shadow: none;
    background: rgba(255, 255, 255, .06);
    border-color: rgba(255, 255, 255, .1);
}
.home-trust-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 0;
    background: rgba(255, 255, 255, .12);
    border: 1px solid rgba(255, 255, 255, .2);
    color: #fff;
    font-size: .82rem;
    font-weight: 800;
    flex-shrink: 0;
}
.home-trust-item strong {
    display: block;
    font-family: var(--font-display);
    font-size: .88rem;
    color: #fff;
    line-height: 1.25;
}
.home-trust-item span {
    display: block;
    font-size: .82rem;
    color: rgba(255, 255, 255, .72);
    line-height: 1.3;
}

.home-stats {
    margin: 2.5rem 0 3rem;
}
.home-stats-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}
.home-stats-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.home-stat-card {
    position: relative;
    padding: 1.35rem 1rem 1.2rem;
    text-align: center;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 0;
    box-shadow: none;
    overflow: hidden;
}
.home-stat-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: var(--color-ink);
}
.home-stat-card-accent::before {
    background: var(--color-ink);
}
.home-stat-card-warn::before {
    background: linear-gradient(90deg, #b45309, #f59e0b);
}
.home-stat-value {
    display: block;
    font-family: var(--font-display);
    font-size: clamp(1.35rem, 2.8vw, 1.75rem);
    font-weight: 800;
    color: var(--color-primary-dark);
    line-height: 1.15;
}
.home-stat-label {
    display: block;
    margin-top: .35rem;
    font-size: .76rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--color-muted);
}

.home-band {
    margin: 0 calc(50% - 50vw);
    padding: clamp(2rem, 4vw, 3rem) calc(50vw - 50%);
}
.home-band-muted {
    background: linear-gradient(180deg, var(--color-surface-subtle) 0%, var(--color-bg) 100%);
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
}
.home-band-categories {
    padding-top: .5rem;
}
.home-band-featured {
    background: var(--color-surface);
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
}
.home-section {
    margin-bottom: 0;
    padding: 0;
}
.home-features .feature-card {
    border-top: 3px solid var(--color-ink);
    background: var(--color-surface);
}
.home-steps {
    position: relative;
}
.home-steps::before {
    content: '';
    position: absolute;
    top: 1.75rem;
    left: 12.5%;
    right: 12.5%;
    height: 1px;
    background: var(--color-border);
    pointer-events: none;
}
.home-steps .step-card {
    position: relative;
    z-index: 1;
    border-top: 3px solid var(--color-ink);
    box-shadow: none;
    border-radius: 0;
}

.home-about {
    margin-top: 2.5rem;
    border-radius: 0;
    overflow: hidden;
    box-shadow: none;
    border: 0;
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
}
.home-about img {
    width: 100%;
    height: auto;
    display: block;
    vertical-align: top;
}

.home-service {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(1.5rem, 3vw, 2.5rem);
    align-items: center;
    margin-top: 2.5rem;
    padding: clamp(1.75rem, 3vw, 2.5rem);
    background: var(--color-surface);
    border: 0;
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
    border-radius: 0;
    box-shadow: none;
}
.home-service-copy h2 {
    margin: .35rem 0 .75rem;
    font-size: clamp(1.25rem, 2.5vw, 1.65rem);
    color: var(--color-primary-dark);
}
.home-service-visual img {
    width: 100%;
    height: auto;
    border-radius: 0;
    display: block;
}

.home-cta {
    margin-top: 2.5rem;
    border-radius: 0;
    overflow: hidden;
    background: var(--color-ink);
    color: #fff;
    position: relative;
    border: 1px solid var(--color-ink);
}
.home-cta::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 90% 10%, rgba(255, 255, 255, .08) 0%, transparent 42%),
        radial-gradient(circle at 5% 95%, rgba(255, 255, 255, .05) 0%, transparent 38%);
    pointer-events: none;
}
.home-cta-inner {
    position: relative;
    z-index: 1;
    text-align: center;
    padding: clamp(2rem, 4vw, 3rem) 1.5rem;
}
.home-cta h2 {
    margin: 0 0 .75rem;
    font-size: clamp(1.3rem, 3vw, 1.85rem);
    color: #fff;
}
.home-cta p {
    color: rgba(255, 255, 255, .85);
    max-width: 560px;
    margin: 0 auto 1.5rem;
}
.home-cta .actions-inline { justify-content: center; }
.home-cta-secondary {
    background: rgba(255, 255, 255, .12);
    color: #fff;
    border-color: rgba(255, 255, 255, .3);
}
.home-cta-secondary:hover {
    background: rgba(255, 255, 255, .2);
    color: #fff;
}

.home-seo {
    margin-top: 2.5rem;
    padding: 2rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 0;
    border-left: 3px solid var(--color-ink);
}
.home-seo h2 {
    margin: 0 0 .75rem;
    font-size: 1.2rem;
}
.home-seo p {
    margin: 0;
    color: var(--color-muted);
    line-height: 1.75;
}

/* ── Home page layout ── */
.page-home .main {
    padding-top: 0;
}
.page-home .home-hero {
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
    margin-bottom: 2rem;
}
.page-home .section-label {
    border-radius: 0;
    background: transparent;
    padding: 0;
    color: var(--color-muted);
    letter-spacing: .08em;
}
.page-home .section-title h2::after {
    content: '';
    display: block;
    width: 2.5rem;
    height: 3px;
    margin: .55rem auto 0;
    background: var(--color-ink);
}
.page-home .section-cta {
    margin-top: 1.75rem;
}
.btn-outline {
    background: transparent;
    border: 1px solid var(--color-ink);
    color: var(--color-ink);
    border-radius: 0;
    box-shadow: none;
    transform: none;
}
.btn-outline:hover {
    background: var(--color-ink);
    border-color: var(--color-ink);
    color: #fff;
    box-shadow: none;
    transform: none;
    text-decoration: none;
}
.page-home .hero-pill {
    background: rgba(255, 255, 255, .1);
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 0;
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .03em;
}
.page-home .hero-pill:hover {
    background: rgba(255, 255, 255, .16);
    transform: none;
}
.page-home .home-hero-aside .btn:not(.btn-primary),
.page-home .home-hero-content .btn:not(.btn-primary) {
    background: transparent;
    border-color: rgba(255, 255, 255, .45);
    color: #fff;
}
.page-home .home-hero-aside .btn:not(.btn-primary):hover,
.page-home .home-hero-content .btn:not(.btn-primary):hover {
    background: rgba(255, 255, 255, .1);
    border-color: rgba(255, 255, 255, .65);
    color: #fff;
}
.page-home .feature-card:hover {
    border-color: var(--color-ink);
}
.page-home .home-features .feature-icon {
    background: var(--color-ink);
    font-family: var(--font-display);
    letter-spacing: -.02em;
}
.page-home .home-steps .step-card::before {
    box-shadow: none;
    border: 1px solid var(--color-border);
}
.page-home .category-card-home:hover .category-card-circle {
    border-color: var(--color-ink);
}
.page-home .category-card-home:hover .category-card-circle img {
    transform: none;
}
.page-home .home-band-featured .product-card:hover {
    border-color: var(--color-ink);
}
.page-home .home-band-featured .product-card:hover .product-card-media img,
.page-home .home-band-featured .product-card:hover .product-card-media .product-placeholder {
    transform: none;
}
.page-home .section-title h2::after {
    border-radius: 0;
    background: var(--color-ink);
}
.page-home .home-service,
.page-home .home-cta,
.page-home .home-seo {
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    width: 100vw;
    max-width: 100vw;
    padding-left: calc(50vw - 50%);
    padding-right: calc(50vw - 50%);
}
.page-home .home-service-copy {
    max-width: 34rem;
}
.page-home .home-dashboard::before {
    background: var(--color-ink);
}
.page-home .home-dashboard-badge {
    background: var(--color-surface-subtle);
    border-color: var(--color-border);
    color: var(--color-primary-dark);
}
.page-home .home-shortcut:hover {
    border-color: var(--color-ink);
}
.page-home .home-shortcut-active {
    border-color: var(--color-ink);
    background: var(--color-surface-subtle);
}
.page-home .home-stats {
    margin-top: 0;
    padding-top: 2.5rem;
    background: var(--color-bg);
}
.page-home .home-shortcut-label em {
    color: var(--color-ink);
}

.home-dashboard {
    margin-bottom: 1.5rem;
    padding: clamp(1.5rem, 3vw, 2rem);
    border-radius: 0;
    border: 0;
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
    background: var(--color-surface);
    box-shadow: none;
    overflow: hidden;
    position: relative;
}
.home-dashboard::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--color-accent), rgba(47, 181, 210, .25));
}
.home-dashboard-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 1.5rem;
    align-items: center;
}
.home-dashboard-badge {
    background: rgba(47, 181, 210, .12);
    border-color: rgba(47, 181, 210, .35);
    color: var(--color-primary-dark);
}
.home-dashboard-main h1 {
    margin: .5rem 0 .65rem;
    font-size: clamp(1.35rem, 3vw, 1.85rem);
}
.home-dashboard-main .lead {
    margin-bottom: .5rem;
    color: var(--color-text);
}
.home-dashboard-group {
    margin: 0 0 1.15rem;
    font-size: .9rem;
    color: var(--color-muted);
}
.home-dashboard-shortcuts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}
.home-shortcut {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    min-height: 5.5rem;
    padding: .85rem .65rem;
    text-align: center;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 0;
    text-decoration: none;
    color: inherit;
    transition: transform .2s, box-shadow .2s, border-color .2s;
}
.home-shortcut:hover {
    transform: none;
    box-shadow: none;
    border-color: rgba(47, 181, 210, .45);
    text-decoration: none;
}
.home-shortcut-active {
    border-color: var(--color-accent);
    background: rgba(47, 181, 210, .06);
}
.home-shortcut-warn {
    border-color: #f59e0b;
    background: rgba(245, 158, 11, .06);
}
.home-shortcut-icon { font-size: 1.35rem; line-height: 1; }
.home-shortcut-label {
    font-family: var(--font-display);
    font-size: .82rem;
    font-weight: 700;
    color: var(--color-primary-dark);
}
.home-shortcut-label em {
    font-style: normal;
    color: var(--color-accent);
}
.home-recent-orders { margin-top: 1.5rem; }
.home-stats-logged { margin: 1.5rem 0 2rem; }

/* ── Hero stack (legacy slider + heading) ── */
.hero-stack {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-bottom: 1.5rem;
}
.hero-banner-slider {
    position: relative;
    border-radius: 0;
    overflow: hidden;
    box-shadow: none;
    background: var(--color-ink);
}
.hero-banner-slides {
    display: grid;
    width: 100%;
}
.hero-banner-slide {
    grid-area: 1 / 1;
    opacity: 0;
    transform: scale(1.04);
    transition: opacity .65s var(--ease-out), transform .75s var(--ease-out);
    pointer-events: none;
}
.hero-banner-slide.is-active {
    opacity: 1;
    transform: scale(1);
    pointer-events: auto;
    z-index: 1;
}
.home-hero-media .hero-banner-slide.is-active img {
    animation: heroKenBurns 7s var(--ease-out) forwards;
}
@keyframes heroKenBurns {
    from { transform: scale(1); }
    to { transform: scale(1.07); }
}
.hero-banner-slide a {
    display: block;
    line-height: 0;
}
.hero-banner-slide img {
    width: 100%;
    height: auto;
    display: block;
    vertical-align: top;
}
.hero-banner-arrow {
    position: absolute;
    top: 50%;
    z-index: 2;
    transform: translateY(-50%);
    width: 2.5rem;
    height: 2.5rem;
    border: 0;
    border-radius: 0;
    background: rgba(0, 0, 0, .45);
    color: #fff;
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background .15s, opacity .15s;
    opacity: 0;
}
.hero-banner-slider:hover .hero-banner-arrow,
.hero-banner-slider:focus-within .hero-banner-arrow {
    opacity: 1;
}
.hero-banner-arrow:hover {
    background: rgba(0, 0, 0, .65);
}
.hero-banner-prev { left: .75rem; }
.hero-banner-next { right: .75rem; }
.hero-banner-dots {
    position: absolute;
    left: 50%;
    bottom: .75rem;
    z-index: 2;
    transform: translateX(-50%);
    display: flex;
    gap: .45rem;
    padding: .35rem .55rem;
    border-radius: 0;
    background: rgba(0, 0, 0, .35);
    backdrop-filter: blur(6px);
}
.hero-banner-dot {
    width: .55rem;
    height: .55rem;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: rgba(255, 255, 255, .45);
    cursor: pointer;
    transition: background .15s, transform .15s;
}
.hero-banner-dot.is-active {
    background: #fff;
    transform: none;
    width: 1rem;
}
.hero-stack-content {
    margin-bottom: 0;
    text-align: center;
    padding: clamp(1.75rem, 4vw, 2.75rem) clamp(1.25rem, 4vw, 2rem);
}
.hero-stack-content .hero-inner {
    max-width: 760px;
    margin: 0 auto;
}
.hero-stack-content .lead {
    margin-left: auto;
    margin-right: auto;
    max-width: 620px;
}
.hero-stack-content .actions-inline,
.hero-stack-content .hero-pills {
    justify-content: center;
}
.section-label {
    display: inline-block;
    font-family: var(--font-display);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--color-primary-dark);
    background: var(--color-surface-muted);
    padding: .3rem .75rem;
    border-radius: 999px;
    margin-bottom: .75rem;
}
.section-cta { text-align: center; margin-top: 1.75rem; }
.about-banner {
    margin-top: 2.5rem;
    border-radius: 0;
    overflow: hidden;
    box-shadow: none;
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
}
.about-banner img { width: 100%; height: auto; display: block; }
.hero-dashboard {
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
    border-radius: 0;
    padding: 2rem;
    text-align: left;
    margin-bottom: 1.5rem;
    box-shadow: none;
}
.hero-dashboard-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 1.5rem;
    align-items: center;
}
.hero-dashboard-content h1 { margin: .5rem 0 .75rem; font-size: clamp(1.4rem, 3vw, 1.85rem); }
.hero-dashboard-content .lead { margin-bottom: 1.25rem; }
.hero-quick-actions {
    margin-bottom: 0;
    grid-template-columns: repeat(2, 1fr);
}

/* ── Catégories home (cercles pleine largeur) ── */
.category-grid-home {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: clamp(.65rem, 1.8vw, 1.35rem);
    width: 100%;
}
.category-card-home {
    background: transparent;
    border: 0;
    box-shadow: none;
    border-radius: 0;
    overflow: visible;
}
.category-card-home:hover {
    transform: none;
    box-shadow: none;
    text-decoration: none;
}
.category-card-home .category-card-circle {
    position: relative;
    aspect-ratio: 1;
    border-radius: 50%;
    overflow: hidden;
    background: transparent;
    transition: border-color .25s ease;
    box-shadow: none;
    border: 3px solid var(--color-border);
}
.category-card-home:hover .category-card-circle {
    transform: none;
    box-shadow: none;
    border-color: rgba(47, 181, 210, .55);
}
.category-card-home .category-card-circle img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .35s ease;
}
.category-card-home:hover .category-card-circle img {
    transform: scale(1.05);
}
.category-card-home .category-card-title {
    position: absolute;
    inset: auto 0 0;
    padding: 2.75rem .45rem .7rem;
    background: linear-gradient(transparent, rgba(0, 0, 0, .72));
    color: #fff;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(.72rem, 1.35vw, .92rem);
    line-height: 1.2;
    text-align: center;
}

/* ── Product cards ── */
.product-card { overflow: hidden; transition: border-color .2s ease; }
.product-card:hover {
    transform: none;
    box-shadow: none;
    border-color: rgba(47, 181, 210, .45);
}
.product-card-media { position: relative; overflow: hidden; background: #f0f0f0; }
.product-card-media img,
.product-card-media .product-placeholder { transition: transform .35s ease; border-radius: 0; }
.product-card:hover .product-card-media img,
.product-card:hover .product-card-media .product-placeholder { transform: scale(1.05); }
.product-card-action {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(10, 85, 121, .55);
    color: #fff;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: .9rem;
    letter-spacing: .04em;
    text-transform: uppercase;
    opacity: 0;
    transition: opacity .25s;
}
.product-card:hover .product-card-action { opacity: 1; }
.product-card-body h3 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 2.6em;
}
.product-card-price { margin: .35rem 0 .5rem; }
.price-tag {
    display: inline-block;
    font-weight: 700;
    font-size: 1.05rem;
    color: var(--color-primary-dark);
    background: var(--color-surface-subtle);
    padding: .2rem .55rem;
    border-radius: 4px;
}
.product-ref { font-size: .82rem; margin: 0 0 .5rem; }

/* ── Auth layout ── */
.auth-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    margin: 0;
    width: 100%;
    max-width: 100%;
    min-height: 520px;
    border-radius: 0;
    overflow: hidden;
    box-shadow: none;
    background: var(--color-surface);
}
.auth-visual { position: relative; min-height: 360px; }
.auth-visual > img { width: 100%; height: 100%; object-fit: cover; display: block; }
.auth-visual-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .72);
    color: #fff;
    padding: 2rem;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    border-left: 0;
}
.auth-visual-logo { width: 140px; margin-bottom: 1rem; }
.auth-visual-overlay p { margin: 0; opacity: .92; line-height: 1.6; }
.auth-benefits { list-style: none; padding: 0; margin: 1rem 0 0; font-size: .9rem; }
.auth-benefits li { margin-bottom: .35rem; }
.auth-form-panel { padding: 2.5rem 2rem; display: flex; flex-direction: column; justify-content: center; }
.auth-form-panel h1 { margin-top: 0; font-size: 1.5rem; }
.form-card-wide { max-width: none; box-shadow: none; border: 0; padding: 0; }
.btn-block { display: block; width: 100%; text-align: center; }

/* ── Catalog sidebar ── */
.sidebar {
    position: sticky;
    top: calc(var(--header-offset, 120px) + .75rem);
    height: fit-content;
    background: transparent;
    border: 0;
    padding: 0;
    box-shadow: none;
}
.catalog-sidebar-inner.panel-card {
    padding: 0;
    margin: 0;
    overflow: hidden;
    border: 1px solid var(--color-border);
    box-shadow: none;
    background: var(--color-surface);
}
.catalog-sidebar-inner.panel-card::before {
    content: '';
    display: block;
    height: 3px;
    background: linear-gradient(90deg, var(--color-accent), rgba(47, 181, 210, .35));
}
.catalog-sidebar-head {
    display: flex;
    align-items: center;
    gap: .65rem;
    padding: 1rem 1.1rem .85rem;
    border-bottom: 1px solid var(--color-border);
    background: rgba(255, 255, 255, .85);
}
.catalog-sidebar-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0;
    background: rgba(47, 181, 210, .12);
    color: var(--color-accent);
    flex-shrink: 0;
}
.sidebar-title {
    font-family: var(--font-display);
    font-size: .82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--color-primary-dark);
    margin: 0;
    padding: 0;
    border: 0;
}
.catalog-sidebar-search {
    display: flex;
    align-items: stretch;
    gap: .4rem;
    padding: .85rem 1.1rem;
    border-bottom: 1px solid var(--color-border);
    background: #fff;
}
.sidebar-field {
    position: relative;
    flex: 1;
    min-width: 0;
    display: block;
    margin-bottom: 0;
}
.sidebar-field .sidebar-field-input { margin-top: 0; }
.sidebar-field-sm .sidebar-field-input {
    font-size: .82rem;
    padding-top: .42rem;
    padding-bottom: .42rem;
}
.sidebar-field-icon {
    position: absolute;
    left: .65rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--color-muted);
    pointer-events: none;
    display: inline-flex;
}
.sidebar-field-input {
    width: 100%;
    margin: 0;
    padding: .52rem .75rem .52rem 2.15rem;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    background: var(--color-surface-subtle);
    font: inherit;
    font-size: .86rem;
    color: var(--color-text);
    transition: border-color .18s, background .18s, box-shadow .18s;
}
.sidebar-field-input:focus {
    outline: none;
    border-color: rgba(47, 181, 210, .55);
    background: #fff;
    box-shadow: 0 0 0 3px var(--color-accent-ring);
}
.sidebar-search-submit {
    flex-shrink: 0;
    width: 2.35rem;
    height: 2.35rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(47, 181, 210, .35);
    border-radius: 50%;
    background: var(--color-accent);
    color: #fff;
    cursor: pointer;
    transition: transform .15s, background .15s, box-shadow .15s;
}
.sidebar-search-submit:hover {
    background: var(--color-primary-dark);
    border-color: var(--color-primary-dark);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(47, 181, 210, .35);
}
.catalog-sidebar-menu-wrap {
    position: relative;
    max-height: min(62vh, 640px);
    overflow: hidden;
}
.catalog-sidebar-menu-wrap::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 2.5rem;
    background: linear-gradient(180deg, rgba(250, 250, 250, 0) 0%, var(--color-surface-subtle) 100%);
    pointer-events: none;
}
.catalog-sidebar-menu {
    max-height: min(62vh, 640px);
    overflow-y: auto;
    padding: .65rem .55rem 1.5rem;
    scrollbar-width: thin;
    scrollbar-color: rgba(47, 181, 210, .45) transparent;
}
.catalog-sidebar-menu::-webkit-scrollbar { width: 5px; }
.catalog-sidebar-menu::-webkit-scrollbar-thumb {
    background: rgba(47, 181, 210, .35);
    border-radius: 999px;
}
.catalog-sidebar-menu::-webkit-scrollbar-track { background: transparent; }
.category-list a { padding: .5rem .65rem; border-radius: var(--radius); transition: background .15s; }
.category-list a:hover { background: #f5f5f5; text-decoration: none; }
.category-list a.active { background: #f5f5f5; color: var(--color-text); box-shadow: inset 3px 0 0 var(--color-accent); }

/* ── Forms & tables ── */
input:focus, textarea:focus, select:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px var(--color-accent-ring);
}
.table thead th {
    background: #f5f5f5;
    font-family: var(--font-display);
    font-size: .82rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--color-text);
}
.stat-card, .stat-band-item { transition: border-color .2s ease; }
.stat-card:hover, .stat-band-item:hover { transform: none; box-shadow: none; border-color: rgba(47, 181, 210, .4); }

/* ── Page headers ── */
.page-header {
    margin-bottom: 1.75rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid var(--color-border);
}
.page-header h1 {
    margin: 0;
    font-size: clamp(1.5rem, 3vw, 2rem);
    color: var(--color-primary-dark);
}
.page-header-sub { margin: .5rem 0 0; color: var(--color-muted); max-width: 560px; }
.page-header-crumb { margin-bottom: .65rem; }
.page-header-contact,
.page-header-gradient {
    border-bottom: 0;
    padding-bottom: 0;
    background: var(--color-surface-subtle);
    padding: 1.5rem 1.75rem;
    border-radius: 0;
    margin-bottom: 1rem;
}
.contact-trust-row {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-bottom: 1.5rem;
}
.contact-form .btn-block { margin-top: .5rem; }
.crumb-sep { margin: 0 .35rem; opacity: .5; }
.back-link { margin-top: 2rem; }
.link-arrow { font-weight: 600; text-decoration: none; }
.link-arrow:hover { text-decoration: underline; }
.link-muted { font-size: .88rem; color: var(--color-muted); display: inline-block; margin-top: 1rem; }

/* ── Product detail ── */
.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.product-page { margin-bottom: 2.5rem; --product-sticky-top: 7.25rem; --site-header-h: 10rem; }

.product-header {
    margin-bottom: 1.35rem;
    border: 0;
    border-bottom: 1px solid var(--color-border);
    border-radius: 0;
    overflow: hidden;
    box-shadow: none;
    background: var(--color-surface);
}
.product-header .product-hero {
    margin-bottom: 0;
    border: 0;
    border-radius: 0;
    min-height: clamp(160px, 22vw, 240px);
}
.product-header .product-hero.category-hero-banner.has-image {
    min-height: clamp(200px, 28vw, 280px);
}
.product-header .product-subnav {
    margin-bottom: 0;
    border: 0;
    border-radius: 0;
    border-top: 1px solid var(--color-border);
    box-shadow: none;
    background: var(--color-surface);
}
.product-header .category-hero-banner.has-image .category-hero-banner-overlay {
    background:
        linear-gradient(105deg, rgba(0, 0, 0, .9) 0%, rgba(0, 0, 0, .68) 42%, rgba(0, 0, 0, .35) 100%);
}
.product-header .category-hero-banner-bg {
    transition: transform 8s var(--ease-out);
}
.product-header:hover .category-hero-banner-bg {
    transform: scale(1.06);
}
.product-hero-content {
    padding: clamp(1.15rem, 2.5vw, 1.65rem) clamp(1.15rem, 2.5vw, 1.75rem) clamp(1.25rem, 2.5vw, 1.5rem);
}
.product-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: clamp(1rem, 2.5vw, 1.75rem);
    align-items: center;
    margin-top: .85rem;
}
.product-hero-main {
    min-width: 0;
}
.product-hero-kicker {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem .75rem;
    margin-bottom: .55rem;
}
.product-hero .product-breadcrumbs {
    margin-bottom: 0;
    font-size: .82rem;
}
.product-hero-title {
    margin: 0;
    font-size: clamp(1.25rem, 2.8vw, 1.85rem);
    line-height: 1.18;
    font-family: var(--font-display);
    color: var(--color-primary-dark);
    max-width: 920px;
    letter-spacing: -.01em;
}
.product-hero.has-image .product-hero-title { color: #fff; }
.product-hero-lead {
    margin: .65rem 0 0;
    max-width: 680px;
    font-size: clamp(.88rem, 1.6vw, .96rem);
    line-height: 1.55;
    color: var(--color-muted);
}
.product-hero.has-image .product-hero-lead {
    color: rgba(255, 255, 255, .82);
}
.product-hero-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem .65rem;
    margin-top: .85rem;
}
.product-hero-media {
    flex-shrink: 0;
}
.product-hero-media-frame {
    width: clamp(88px, 14vw, 132px);
    aspect-ratio: 1;
    padding: .45rem;
    border-radius: 0;
    background: rgba(255, 255, 255, .95);
    border: 0;
    box-shadow: none;
}
.product-hero:not(.has-image) .product-hero-media-frame {
    background: var(--color-surface-subtle);
    border: 0;
    box-shadow: none;
}
.product-hero-media-frame img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
    border-radius: 0;
}
.product-hero-ean {
    display: inline-flex;
    align-items: center;
    padding: .28rem .6rem;
    border-radius: 0;
    font-size: .72rem;
    font-weight: 600;
    font-family: ui-monospace, monospace;
    background: rgba(255, 255, 255, .12);
    border: 1px solid rgba(255, 255, 255, .22);
    color: rgba(255, 255, 255, .88);
}
.product-hero:not(.has-image) .product-hero-ean {
    background: var(--color-surface-subtle);
    border-color: var(--color-border);
    color: var(--color-muted);
}
.product-hero {
    margin-bottom: 1.25rem;
    min-height: 120px;
}
.product-overview-shell {
    padding: 0;
    border-radius: 0;
    background: transparent;
    border: 0;
    margin-bottom: 1.5rem;
}
.product-overview-shell .product-detail-grid { margin-bottom: 0; }
.product-hero-ref {
    display: inline-flex;
    align-items: center;
    padding: .25rem .55rem;
    border-radius: 0;
    font-size: .74rem;
    font-weight: 700;
    font-family: ui-monospace, monospace;
    letter-spacing: .02em;
    color: var(--color-muted);
    background: rgba(0, 0, 0, .04);
    border: 1px solid var(--color-border);
}
.product-hero.has-image .product-hero-ref {
    color: rgba(255, 255, 255, .88);
    background: rgba(255, 255, 255, .1);
    border-color: rgba(255, 255, 255, .22);
}
.product-hero-foot {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem .85rem;
    margin-top: .5rem;
}
.product-hero-chip {
    display: inline-flex;
    align-items: center;
    padding: .28rem .65rem;
    border-radius: 0;
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
    font-size: .78rem;
    font-weight: 600;
    color: var(--color-text);
    text-decoration: none;
}
.product-hero.has-image .product-hero-chip {
    background: rgba(255, 255, 255, .14);
    border-color: rgba(255, 255, 255, .28);
    color: #fff;
}
.product-hero-chip:hover { text-decoration: none; opacity: .9; }
.product-hero-stock {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-size: .82rem;
    font-weight: 600;
    color: var(--color-muted);
}
.product-hero.has-image .product-hero-stock { color: rgba(255, 255, 255, .85); }
.product-hero-stock-out { color: #fca5a5 !important; }
.product-hero-guest-pill {
    display: inline-flex;
    align-items: center;
    padding: .28rem .65rem;
    border-radius: 0;
    background: rgba(255, 255, 255, .16);
    border: 1px solid rgba(255, 255, 255, .28);
    font-size: .78rem;
    font-weight: 700;
    color: #fff;
}
.product-hero:not(.has-image) .product-hero-guest-pill {
    background: var(--color-surface-subtle);
    border-color: var(--color-border);
    color: var(--color-muted);
}
.product-category-band { margin-bottom: 1.25rem; padding: 0; overflow: hidden; }
.product-category-band-link {
    position: relative;
    display: flex;
    align-items: center;
    gap: 1rem;
    min-height: 88px;
    padding: 1rem 1.25rem;
    text-decoration: none;
    color: inherit;
}
.product-category-band-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
}
.product-category-band-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(17, 17, 17, .82) 0%, rgba(17, 17, 17, .45) 100%);
}
.product-category-band-content {
    position: relative;
    z-index: 1;
    color: #fff;
}
.product-category-band-content strong {
    display: block;
    margin-top: .35rem;
    font-size: 1.05rem;
}
.section-label-light {
    background: rgba(255, 255, 255, .14);
    color: rgba(255, 255, 255, .92);
}
.product-category-band-arrow {
    position: relative;
    z-index: 1;
    margin-left: auto;
    font-size: 1.35rem;
    color: #fff;
    opacity: .85;
}
.product-category-band-link:hover { text-decoration: none; opacity: .95; }
.product-help-card {
    display: flex;
    gap: .75rem;
    align-items: flex-start;
    margin-top: 1.15rem;
    padding: 1rem 0 0;
    border: 0;
    border-top: 1px solid var(--color-border);
    border-radius: 0;
    background: transparent;
}
.product-help-card-icon {
    flex-shrink: 0;
    width: 2.25rem;
    height: 2.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0;
    background: transparent;
    color: var(--color-ink);
}
.product-help-card-body p {
    margin: 0 0 .25rem;
    font-size: .82rem;
    font-weight: 600;
    color: var(--color-ink);
}
.product-help-card-link {
    font-size: .82rem;
    font-weight: 700;
}
.product-reveal {
    opacity: 0;
    transform: translateY(14px);
    transition: opacity .5s ease, transform .5s ease;
}
.product-reveal.is-visible {
    opacity: 1;
    transform: none;
}
.product-page-footer-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
}
.product-footer-btn {
    padding: .32rem .65rem;
    border: 1px solid var(--color-border);
    border-radius: 0;
    background: transparent;
    font-size: .72rem;
    font-weight: 600;
    color: var(--color-text);
    cursor: pointer;
}
.product-footer-btn:hover { border-color: var(--color-accent); }
.product-buybox-head:empty { display: none; }
.product-gallery.panel-card {
    padding: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    overflow: visible;
}
.product-gallery-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: 0 0 .65rem;
    border-bottom: 0;
    background: transparent;
}
.product-gallery-title {
    margin: 0;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--color-muted);
}
.product-gallery-count {
    font-size: .72rem;
    font-weight: 600;
    color: var(--color-muted);
}
.product-gallery-body {
    padding: 0;
}
.product-gallery.has-thumbs-side .product-gallery-body {
    display: grid;
    grid-template-columns: 76px 1fr;
    gap: .75rem;
    align-items: start;
}
.product-gallery.has-thumbs-side .product-gallery-thumbs {
    flex-direction: column;
    margin: 0;
    padding: 0;
    border: 0;
    max-height: 420px;
    overflow-y: auto;
    scrollbar-width: thin;
}
.product-gallery.has-thumbs-side .product-gallery-frame { min-width: 0; }
.product-breadcrumbs span[aria-current="page"] {
    max-width: min(42vw, 320px);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.product-subnav {
    margin-bottom: 1.35rem;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: var(--color-surface);
    box-shadow: none;
    overflow: hidden;
}
.product-subnav-track { display: flex; flex-direction: column; }
.product-subnav-links {
    display: flex;
    flex-wrap: nowrap;
    gap: .25rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding: .35rem;
    scrollbar-width: none;
}
.product-subnav-links::-webkit-scrollbar { display: none; }
.product-subnav-progress {
    height: 3px;
    background: var(--color-surface-subtle);
}
.product-subnav-progress span {
    display: block;
    height: 100%;
    width: 25%;
    background: var(--color-ink);
    transition: width .25s ease;
}
.product-subnav-link {
    flex: 0 0 auto;
    padding: .5rem .95rem;
    border-radius: 0;
    font-size: .82rem;
    font-weight: 600;
    color: var(--color-muted);
    text-decoration: none;
    transition: background .15s, color .15s;
}
.product-subnav-link:hover {
    color: var(--color-ink);
    background: var(--color-surface-subtle);
    text-decoration: none;
}
.product-subnav-link.is-active {
    background: var(--color-ink);
    color: #fff;
}
.product-header .product-subnav-links {
    padding: 0;
    gap: 0;
    border-bottom: 1px solid var(--color-border);
}
.product-header .product-subnav-link {
    padding: .75rem 1.15rem;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
}
.product-header .product-subnav-link.is-active {
    background: transparent;
    color: var(--color-ink);
    border-bottom-color: var(--color-ink);
    font-weight: 700;
}
.product-header .product-subnav-progress {
    display: none;
}
.product-detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    gap: 1.75rem;
    align-items: start;
    margin-bottom: 2rem;
}
.product-gallery-col,
.product-buybox-col { min-width: 0; }
.product-gallery-frame {
    position: relative;
    background: var(--color-surface-subtle);
    border: 0;
    border-radius: 0;
    padding: 1rem;
    text-align: center;
    overflow: hidden;
}
.product-gallery-zoom {
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: zoom-in;
    position: relative;
}
.product-gallery-zoom-icon {
    position: absolute;
    right: .5rem;
    top: .5rem;
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: rgba(17, 17, 17, .55);
    color: #fff;
    opacity: 0;
    transition: opacity .2s ease;
}
.product-gallery-frame:hover .product-gallery-zoom-icon { opacity: 1; }
.product-gallery-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 2.1rem;
    height: 2.1rem;
    border: 0;
    border-radius: 0;
    background: rgba(255, 255, 255, .92);
    color: var(--color-ink);
    box-shadow: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background .15s, transform .15s;
}
.product-gallery-nav:hover { background: #fff; transform: translateY(-50%) scale(1.05); }
.product-gallery-nav-prev { left: .65rem; }
.product-gallery-nav-next { right: .65rem; }
.product-gallery-frame .product-image {
    transition: transform .35s ease;
}
.product-gallery-zoom:hover .product-image {
    transform: scale(1.02);
}
.product-gallery-counter {
    position: absolute;
    right: .85rem;
    bottom: .85rem;
    padding: .25rem .55rem;
    border-radius: 999px;
    background: rgba(17, 17, 17, .72);
    color: #fff;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .04em;
}
.product-gallery-frame .product-image,
.product-gallery-frame .product-placeholder {
    border-radius: 0;
    max-height: 420px;
    width: 100%;
    object-fit: contain;
}
.product-gallery-frame .product-placeholder.large { height: 320px; }
.product-gallery-thumbs {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-top: .85rem;
    padding-top: .85rem;
    border-top: 1px solid var(--color-border);
}
.product-gallery-thumb {
    width: 68px;
    height: 68px;
    padding: 0;
    border: 1px solid var(--color-border);
    border-radius: 0;
    background: var(--color-surface);
    cursor: pointer;
    transition: border-color .15s ease;
}
.product-gallery-thumb:hover { border-color: var(--color-ink); }
.product-gallery-thumb.is-active {
    border-color: var(--color-ink);
    box-shadow: none;
}
.product-gallery-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 0;
    display: block;
}
.product-buybox {
    background: transparent;
    border: 0;
    border-radius: 0;
    padding: 0;
    box-shadow: none;
}
.product-buybox.panel-card { max-width: none; }
@media (min-width: 992px) {
    .product-subnav {
        position: sticky;
        top: var(--product-sticky-top);
        z-index: 40;
    }
}
@media (min-width: 992px) {
    .product-buybox-col { position: sticky; top: calc(var(--product-sticky-top) + 3.25rem); }
}
.product-buybox-card {
    position: relative;
    overflow: hidden;
}
.product-buybox-card::before {
    display: none;
}
    .product-buybox-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .75rem;
    margin-bottom: .65rem;
    min-height: 0;
}
.product-buybox-kicker {
    display: inline-flex;
    align-items: center;
    padding: .28rem .65rem;
    border-radius: 999px;
    background: var(--color-ink);
    color: #fff;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
}
.product-buybox-fav { margin-left: auto; }
.product-buybox-guest-tag {
    display: inline-flex;
    align-items: center;
    padding: .28rem .65rem;
    border-radius: 999px;
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--color-muted);
}
.product-meta-badges {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}
.product-meta-badge {
    display: inline-flex;
    align-items: center;
    padding: .28rem .6rem;
    border-radius: 999px;
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .03em;
    color: var(--color-muted);
}
.product-favorite-btn {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}
.product-favorite-btn.is-favorite { color: var(--color-accent); }
.product-title {
    margin: .85rem 0 .75rem;
    font-size: clamp(1.35rem, 2.8vw, 1.85rem);
    line-height: 1.2;
    font-family: var(--font-display);
    color: var(--color-ink);
}
.product-lead {
    margin: 0 0 1.25rem;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    font-size: .95rem;
    line-height: 1.65;
    color: var(--color-text);
    font-style: normal;
}
.product-lead p { margin: 0; }
.product-page .product-buybox-card > .product-lead + .product-guest-panel {
    margin-top: 0;
    padding-top: 1.25rem;
    border-top: 1px solid var(--color-border);
}
.product-guest-panel {
    margin-top: .5rem;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
}
.product-guest-panel-head {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    margin-bottom: .75rem;
}
.product-guest-panel-head svg {
    flex-shrink: 0;
    color: var(--color-muted);
    margin-top: .1rem;
    width: 20px;
    height: 20px;
}
.product-guest-label {
    display: block;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--color-muted);
    margin-bottom: .35rem;
}
.product-guest-price {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(1.15rem, 2.2vw, 1.4rem);
    font-weight: 700;
    line-height: 1.25;
    color: var(--color-ink);
}
.product-guest-text {
    margin: 0 0 1.15rem;
    font-size: .9rem;
    line-height: 1.6;
    color: var(--color-muted);
}
.product-guest-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .6rem;
}
.product-guest-actions:not(:has(.product-guest-cta-secondary)) {
    grid-template-columns: 1fr;
}
.product-guest-cta {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 2.75rem;
    padding: .65rem 1rem;
    border-radius: 0;
    font-size: .88rem;
    font-weight: 600;
    text-align: center;
    box-shadow: none;
    transform: none;
}
.product-guest-cta:hover {
    transform: none;
    box-shadow: none;
    text-decoration: none;
}
.product-guest-cta.btn-primary {
    background: var(--color-ink);
    border: 1px solid var(--color-ink);
    color: #fff;
}
.product-guest-cta.btn-primary:hover {
    background: #2a2a2a;
    border-color: #2a2a2a;
    color: #fff;
}
.product-guest-cta-secondary {
    background: #fff;
    border: 1px solid var(--color-border);
    color: var(--color-ink);
}
.product-guest-cta-secondary:hover {
    background: var(--color-surface-subtle);
    border-color: var(--color-ink);
    color: var(--color-ink);
}
.product-guest-trust {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1rem;
    margin-top: 1.1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--color-border);
    font-size: .74rem;
    color: var(--color-muted);
}
.product-guest-trust span {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
}
.product-guest-trust span::before {
    content: "✓";
    color: var(--color-ink);
    font-weight: 700;
}
.product-page .product-help-card {
    margin-top: 1.35rem;
    padding: 1rem 0 0;
    gap: .65rem;
    align-items: center;
}
.product-page .product-help-card-icon {
    width: 2rem;
    height: 2rem;
    color: var(--color-muted);
}
.product-page .product-help-card-body p {
    margin: 0 0 .15rem;
    font-size: .78rem;
    font-weight: 600;
    color: var(--color-muted);
    text-transform: uppercase;
    letter-spacing: .04em;
}
.product-page .product-help-card-link {
    font-size: .88rem;
    font-weight: 600;
    color: var(--color-ink);
    text-decoration: underline;
    text-underline-offset: .15em;
}
.product-page .product-help-card-link:hover {
    color: var(--color-ink);
    text-decoration: none;
}
@media (max-width: 540px) {
    .product-guest-actions {
        grid-template-columns: 1fr;
    }
}
.product-price-box {
    background: transparent;
    border: 0;
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
    border-radius: 0;
    padding: 1rem 0;
    margin: 0 0 1.25rem;
    box-shadow: none;
}
.product-price-main {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    flex-wrap: wrap;
    margin-bottom: .65rem;
}
.product-price-main .price-lg { margin: 0; }
.product-stock-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1rem;
    padding-top: .65rem;
    border-top: 1px solid var(--color-border);
    font-size: .85rem;
    color: var(--color-text);
}
.product-stock-meta-item {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}
.product-stock-meta-item svg { color: var(--color-accent); flex-shrink: 0; }
.product-price-box-out { border-color: rgba(220, 38, 38, .25); }
.product-price-box-low { border-color: rgba(217, 119, 6, .28); }
.product-link-value {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: .78rem !important;
}
.product-description-wrap.is-guest-locked {
    position: relative;
    max-height: 220px;
    overflow: hidden;
}
.product-description-wrap.is-guest-locked .product-description {
    max-height: 220px;
    overflow: hidden;
    filter: blur(2px);
    user-select: none;
    pointer-events: none;
}
.product-desc-guest-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .75rem;
    padding: 1.25rem;
    text-align: center;
    background: linear-gradient(180deg, rgba(255, 255, 255, .35) 0%, rgba(255, 255, 255, .94) 45%, rgba(255, 255, 255, .98) 100%);
}
.product-desc-guest-overlay p {
    margin: 0;
    max-width: 420px;
    font-size: .92rem;
    font-weight: 600;
    color: var(--color-ink);
}
.product-desc-guest-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    justify-content: center;
}
.product-scroll-bar {
    position: fixed;
    top: var(--site-header-h);
    left: 0;
    right: 0;
    z-index: 185;
    background: rgba(255, 255, 255, .96);
    border-bottom: 1px solid var(--color-border);
    box-shadow: none;
    backdrop-filter: blur(8px);
}
.product-scroll-bar[hidden] { display: none !important; }
.product-scroll-bar-inner {
    display: flex;
    align-items: center;
    gap: .85rem;
    max-width: var(--container-max, 1200px);
    margin: 0 auto;
    padding: .55rem 1rem;
}
.product-scroll-bar-thumb {
    width: 48px;
    height: 48px;
    object-fit: contain;
    border-radius: var(--radius-sm);
    border: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
    flex-shrink: 0;
}
.product-scroll-bar-info {
    min-width: 0;
    flex: 1;
}
.product-scroll-bar-title {
    display: block;
    font-size: .88rem;
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.product-scroll-bar-ref {
    display: block;
    font-size: .72rem;
    color: var(--color-muted);
    margin-top: .1rem;
}
.product-scroll-bar-actions {
    display: flex;
    align-items: center;
    gap: .65rem;
    flex-shrink: 0;
}
.product-scroll-bar-price {
    font-size: .95rem;
    font-weight: 800;
    color: var(--color-ink);
    white-space: nowrap;
}
.product-lightbox-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 2.75rem;
    height: 2.75rem;
    border: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, .14);
    color: #fff;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background .15s;
}
.product-lightbox-nav:hover { background: rgba(255, 255, 255, .28); }
.product-lightbox-prev { left: 1rem; }
.product-lightbox-next { right: 1rem; }
.product-lightbox-counter {
    position: absolute;
    bottom: 1.25rem;
    left: 50%;
    transform: translateX(-50%);
    padding: .35rem .7rem;
    border-radius: 999px;
    background: rgba(0, 0, 0, .55);
    color: #fff;
    font-size: .78rem;
    font-weight: 700;
}
.product-price-label {
    display: block;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--color-muted);
    margin-bottom: .35rem;
}
.product-price-box .price-lg {
    margin: 0;
    font-size: clamp(1.5rem, 3vw, 1.85rem);
    font-weight: 800;
    color: var(--color-ink);
}
.price-ht { font-size: .85rem; font-weight: 600; color: var(--color-muted); }
.product-stock-line { margin: .55rem 0 0; font-size: .9rem; }
.product-field {
    display: block;
    margin-bottom: .85rem;
}
.product-field-label {
    display: block;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--color-muted);
    margin-bottom: .4rem;
}
.product-field-control {
    width: 100%;
    padding: .6rem .75rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: var(--color-surface);
    font-size: .95rem;
}
.product-field-control:focus {
    outline: none;
    border-color: var(--color-accent);
    box-shadow: 0 0 0 3px rgba(47, 181, 210, .15);
}
.product-qty-row {
    display: flex;
    gap: .75rem;
    align-items: flex-end;
    flex-wrap: wrap;
}
.qty-field { flex: 0 0 auto; margin: 0; }
.qty-stepper {
    display: inline-flex;
    align-items: stretch;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    overflow: hidden;
    background: var(--color-surface);
}
.qty-step {
    width: 2.35rem;
    border: 0;
    background: var(--color-surface-subtle);
    color: var(--color-ink);
    font-size: 1.1rem;
    font-weight: 700;
    cursor: pointer;
    transition: background .15s;
}
.qty-step:hover { background: var(--color-surface-muted); }
.qty-stepper-input {
    width: 4.2rem !important;
    border: 0 !important;
    border-left: 1px solid var(--color-border) !important;
    border-right: 1px solid var(--color-border) !important;
    border-radius: 0 !important;
    text-align: center;
    padding-left: .35rem !important;
    padding-right: .35rem !important;
    -moz-appearance: textfield;
}
.qty-stepper-input::-webkit-outer-spin-button,
.qty-stepper-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
.product-add-btn {
    flex: 1;
    min-width: 180px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
}
.product-stock-alert { margin-top: .75rem; }
.product-trust-pills {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-top: 1.15rem;
    padding-top: .95rem;
    border-top: 1px solid var(--color-border);
}
.product-trust-pill {
    display: inline-flex;
    align-items: center;
    padding: .32rem .65rem;
    border-radius: 0;
    background: transparent;
    border: 0;
    font-size: .75rem;
    font-weight: 600;
    color: var(--color-muted);
}
.product-trust-pill::before {
    content: "✓ ";
    color: var(--color-accent);
}
.product-quick-links {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--color-border);
}
.product-quick-links-label {
    display: block;
    margin-bottom: .55rem;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--color-muted);
}
.product-action-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .5rem;
}
.product-action-btn,
.product-action-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    width: 100%;
    min-height: 2.65rem;
    padding: .55rem .7rem;
    border: 1px solid var(--color-border);
    border-radius: 0;
    background: transparent;
    font-size: .78rem;
    font-weight: 600;
    color: var(--color-ink);
    text-decoration: none;
    cursor: pointer;
    transition: border-color .15s, background .15s;
}
.product-action-btn:hover,
.product-action-link:hover {
    border-color: var(--color-accent);
    background: var(--color-surface-subtle);
    text-decoration: none;
    transform: none;
}
.product-action-item { margin: 0; width: 100%; }
.product-spec-strip {
    margin-bottom: 1.25rem;
    padding: 1.15rem 1.25rem 1.25rem;
    scroll-margin-top: 5.5rem;
}
.product-spec-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
    padding-bottom: .75rem;
    border-bottom: 1px solid var(--color-border);
}
.product-spec-head h2 {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
    color: var(--color-ink);
}
.product-copy-all-btn,
.product-print-btn {
    padding: .32rem .65rem;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    background: var(--color-surface);
    font-size: .72rem;
    font-weight: 600;
    color: var(--color-text);
    cursor: pointer;
    transition: background .15s, border-color .15s;
}
.product-copy-all-btn:hover,
.product-print-btn:hover { border-color: var(--color-accent); }
.product-copy-all-btn.is-copied {
    background: rgba(47, 181, 210, .12);
    border-color: var(--color-accent);
}
.product-spec-head-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
}
.product-spec-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 0;
    margin: 0;
}
.product-spec-card {
    display: flex;
    gap: .85rem;
    align-items: flex-start;
    padding: .95rem 0;
    border: 0;
    border-bottom: 1px solid var(--color-border);
    border-radius: 0;
    background: transparent;
    min-width: 0;
}
.product-spec-list .product-spec-card:last-child { border-bottom: 0; }
.product-spec-icon {
    flex-shrink: 0;
    width: 2.35rem;
    height: 2.35rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0;
    background: transparent;
    color: var(--color-accent);
}
.product-spec-body { min-width: 0; flex: 1; }
.product-spec-body dt {
    margin: 0 0 .35rem;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--color-muted);
}
.product-spec-body dd { margin: 0; }
.product-spec-value-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
}
.product-spec-body code,
.product-spec-item code {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: .88rem;
    background: var(--color-surface);
    padding: .2rem .45rem;
    border-radius: 4px;
}
.product-spec-link { font-weight: 600; }
.product-copy-btn {
    padding: .28rem .55rem;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    background: var(--color-surface);
    font-size: .72rem;
    font-weight: 600;
    color: var(--color-text);
    cursor: pointer;
    transition: background .15s, border-color .15s, color .15s;
}
.product-copy-btn:hover { border-color: var(--color-accent); }
.product-copy-btn.is-copied {
    background: rgba(47, 181, 210, .12);
    border-color: var(--color-accent);
    color: var(--color-primary-dark);
}
.product-detail-body {
    padding: 0;
    overflow: hidden;
    scroll-margin-top: var(--product-sticky-top);
}
.product-content-notice {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    margin: 0;
    padding: .85rem 0 1rem;
    background: transparent;
    border-bottom: 1px solid var(--color-border);
    font-size: .82rem;
    line-height: 1.5;
    color: var(--color-text);
}
.product-content-notice svg {
    flex-shrink: 0;
    margin-top: .1rem;
    color: var(--color-accent);
}
#product-overview { scroll-margin-top: var(--product-sticky-top); }
#product-specs { scroll-margin-top: var(--product-sticky-top); }
#product-content { scroll-margin-top: var(--product-sticky-top); }

/* Ficha producto — paneles sin sombras ni cajas anidadas */
.product-page .panel-card {
    border: 0;
    box-shadow: none;
    border-radius: 0;
    padding: 0;
    margin-bottom: 1.5rem;
    background: transparent;
}
.product-page .product-spec-strip.panel-card,
.product-page .product-detail-body.panel-card,
.product-page .product-page-footer.panel-card {
    padding-top: 1.25rem;
    border-top: 1px solid var(--color-border);
}
@media (min-width: 992px) {
    .product-page .product-buybox-col {
        padding-left: clamp(1rem, 2.5vw, 2rem);
        border-left: 0;
    }
}
@media (max-width: 991px) {
    .product-page .product-buybox-col {
        margin-top: 1.25rem;
        padding-top: 0;
        border-top: 0;
    }
}
.product-page .product-scroll-bar {
    box-shadow: none;
}

.product-tabs {
    display: flex;
    gap: 0;
    border-bottom: 1px solid var(--color-border);
    background: transparent;
}
.product-tab {
    flex: 1;
    padding: .85rem 1rem;
    border: 0;
    border-bottom: 2px solid transparent;
    background: transparent;
    font-size: .88rem;
    font-weight: 600;
    color: var(--color-muted);
    cursor: pointer;
    transition: color .15s, border-color .15s;
}
.product-tab:hover { color: var(--color-ink); background: transparent; }
.product-tab.is-active {
    color: var(--color-ink);
    border-bottom-color: var(--color-ink);
    background: transparent;
}
.product-tab-panel {
    padding: 1.35rem 0 0;
}
.product-tab-panel[hidden] { display: none; }
.product-description-wrap { position: relative; }
.product-description.prose.is-collapsed {
    max-height: 280px;
    overflow: hidden;
    position: relative;
}
.product-description.prose.is-collapsed::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 4rem;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, var(--color-surface) 100%);
    pointer-events: none;
}
.product-description.prose.is-expanded {
    max-height: none;
}
.product-description.prose.is-expanded::after { display: none; }
.product-desc-toggle {
    margin-top: .85rem;
    padding: .45rem .85rem;
    border: 1px solid var(--color-border);
    border-radius: 0;
    background: transparent;
    font-size: .85rem;
    font-weight: 600;
    color: var(--color-ink);
    cursor: pointer;
    transition: border-color .15s;
}
.product-desc-toggle:hover {
    background: transparent;
    border-color: var(--color-accent);
}
.product-section-head {
    padding-bottom: .85rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid var(--color-border);
}
.product-section-head h2 {
    margin: 0;
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--color-ink);
}
.product-features-section .product-features-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: .55rem;
}
.product-features-list li {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--color-border);
    border-radius: 0;
    padding: .65rem 0;
    font-size: .88rem;
    line-height: 1.45;
}
.product-features-list li:last-child { border-bottom: 0; }
.product-features-list li svg {
    flex-shrink: 0;
    margin-top: .15rem;
    color: var(--color-accent);
}
.product-desc-section .prose {
    background: transparent;
    border: 0;
    padding: 0;
    line-height: 1.75;
    color: var(--color-text);
}
.product-desc-section .prose h2,
.product-desc-section .prose h3 {
    margin-top: 1.5rem;
    margin-bottom: .65rem;
    font-size: 1.05rem;
    color: var(--color-ink);
}
.product-desc-section .prose ul,
.product-desc-section .prose ol {
    padding-left: 1.25rem;
    margin: .75rem 0 1rem;
}
.product-desc-section .prose li { margin-bottom: .35rem; }
.product-desc-section .prose p { margin: 0 0 .85rem; }
.product-desc-section .prose strong { color: var(--color-ink); }
.product-related { margin-top: 0; }
.product-related-band {
    background: transparent;
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
    padding: 2rem 0;
    margin-top: 2rem;
    scroll-margin-top: var(--product-sticky-top);
}
.product-related-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 0 -.25rem;
    padding: .25rem .25rem .5rem;
    scrollbar-width: thin;
}
.product-grid-related {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    align-items: stretch;
    gap: 1.15rem;
    min-width: 0;
}
.product-grid-related .product-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    border-radius: 0;
    overflow: hidden;
    box-shadow: none;
}
.product-grid-related .product-card:hover {
    transform: none;
    box-shadow: none;
}
.product-grid-related .product-card-link {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    height: 100%;
    min-height: 100%;
}
.product-grid-related .product-card-media {
    aspect-ratio: 1;
    height: auto;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border-bottom: 0;
}
.product-grid-related .product-card-media img,
.product-grid-related .product-card-media .product-placeholder {
    width: 100%;
    height: 100%;
    max-height: none;
    object-fit: contain;
    transform: none;
}
.product-grid-related .product-card:hover .product-card-media img,
.product-grid-related .product-card:hover .product-card-media .product-placeholder {
    transform: scale(1.03);
}
.product-grid-related .product-card-body {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    padding: .95rem 1rem 1rem;
    min-height: 0;
}
.product-grid-related .product-card-body h3 {
    -webkit-line-clamp: 3;
    line-clamp: 3;
    min-height: calc(1.35em * 3);
    line-height: 1.35;
    font-size: .9rem;
    margin: 0 0 .45rem;
}
.product-grid-related .product-ref {
    margin: 0 0 .4rem;
    font-size: .8rem;
    min-height: 1.2em;
}
.product-grid-related .product-card-price {
    margin: 0 0 .35rem;
    min-height: 1.35em;
}
.product-grid-related .product-card-body .stock,
.product-grid-related .product-card-body .product-card-price + .stock {
    margin-top: auto;
    padding-top: .55rem;
    margin-bottom: 0;
    font-size: .78rem;
    border-top: 1px solid var(--color-border);
}
.product-related-inner {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}
.product-related-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1.25rem;
}
.product-related-head h2 {
    margin: .35rem 0 0;
    font-size: clamp(1.2rem, 2.5vw, 1.5rem);
    color: var(--color-ink);
}
.product-related-cta { white-space: nowrap; }
@media (max-width: 1100px) {
    .product-grid-related {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
.product-desc-section .prose a {
    color: var(--color-primary-dark);
    font-weight: 600;
}
.product-desc-section .prose a:hover { color: var(--color-accent); }
@media print {
    .header, .topbar, .category-nav, .product-subnav, .product-scroll-bar,
    .product-mobile-cta, .product-lightbox, .footer, .cookie-banner,
    .product-quick-links, .product-trust-pills, .product-copy-btn,
    .product-copy-all-btn, .product-print-btn, .product-action-row,
    .product-desc-guest-overlay, .product-desc-toggle, .favorite-inline {
        display: none !important;
    }
    .product-page { margin: 0; }
    .product-hero { break-after: avoid; }
    .product-overview-shell,
    .panel-card { box-shadow: none; border: 1px solid #ccc; }
    .product-description.is-collapsed { max-height: none !important; }
    .product-description.is-collapsed::after { display: none; }
    .product-description-wrap.is-guest-locked { max-height: none; }
    .product-description-wrap.is-guest-locked .product-description {
        filter: none;
        max-height: none;
    }
}
.product-mobile-cta {
    display: none;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 200;
    padding: .75rem 1rem calc(.75rem + env(safe-area-inset-bottom, 0));
    background: rgba(255, 255, 255, .98);
    border-top: 1px solid var(--color-border);
    box-shadow: none;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
}
.product-mobile-cta-pro .product-mobile-cta-price {
    display: flex;
    flex-direction: column;
    gap: .1rem;
    min-width: 0;
}
.product-mobile-cta-label {
    font-size: .65rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--color-muted);
}
.product-mobile-cta-price strong {
    font-size: 1.05rem;
    color: var(--color-ink);
}
.product-mobile-cta-text {
    margin: 0;
    font-size: .82rem;
    font-weight: 600;
    color: var(--color-text);
    flex: 1;
    min-width: 0;
}
.product-mobile-cta-oos { justify-content: center; }
.product-page-footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem 1.5rem;
    margin-top: 2rem;
    padding: 1rem 0 0;
}
.product-page-footer-main {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem 1.25rem;
}
.product-page-footer .link-muted { margin-top: 0; }
.product-footer-category {
    position: relative;
    display: inline-flex;
    align-items: center;
    min-height: 3.25rem;
    min-width: 160px;
    padding: .65rem 1rem .65rem 4.5rem;
    border-radius: 0;
    overflow: hidden;
    text-decoration: none;
    border: 1px solid var(--color-border);
}
.product-footer-category-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    opacity: .22;
}
.product-footer-category-label {
    position: relative;
    font-size: .88rem;
    font-weight: 700;
    color: var(--color-ink);
}
.product-lightbox {
    position: fixed;
    inset: 0;
    z-index: 500;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    background: rgba(17, 17, 17, .88);
}
.product-lightbox[hidden] { display: none !important; }
.product-lightbox img {
    max-width: min(960px, 100%);
    max-height: calc(100vh - 4rem);
    object-fit: contain;
    border-radius: var(--radius);
    box-shadow: 0 24px 64px rgba(0, 0, 0, .35);
}
.product-lightbox-close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    width: 2.5rem;
    height: 2.5rem;
    border: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, .12);
    color: #fff;
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
}
.product-lightbox-open { overflow: hidden; }
@media (max-width: 991px) {
    .product-gallery.has-thumbs-side .product-gallery-body {
        display: flex;
        flex-direction: column;
        gap: .75rem;
    }
    .product-gallery.has-thumbs-side .product-gallery-thumbs {
        flex-direction: row;
        flex-wrap: nowrap;
        overflow-x: auto;
        max-height: none;
        padding-bottom: .25rem;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
    }
    .product-gallery.has-thumbs-side .product-gallery-thumb {
        flex: 0 0 64px;
        scroll-snap-align: start;
    }
}
@media (max-width: 768px) {
    .product-detail-grid { grid-template-columns: 1fr; gap: 1.25rem; }
    .product-buybox-col { position: static; }
    .product-overview-shell { padding: .85rem; }
    .product-hero-grid { grid-template-columns: 1fr; }
    .product-hero-media { order: -1; justify-self: start; }
    .product-hero-media-frame { width: 72px; }
    .product-hero-title { font-size: clamp(1.15rem, 5vw, 1.45rem); }
    .product-hero-lead {
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
    .product-gallery-frame .product-image,
    .product-gallery-frame .product-placeholder { max-height: 280px; }
    .product-qty-row { flex-direction: column; align-items: stretch; }
    .product-add-btn { width: 100%; min-width: 0; }
    .product-action-row { grid-template-columns: 1fr; }
    .product-page-footer { flex-direction: column; align-items: flex-start; padding-bottom: 5rem; }
    .product-mobile-cta { display: flex; }
    .product-scroll-bar { display: none !important; }
    .product-hero-content { padding: .95rem 1rem 1.05rem; }
    .product-spec-list { grid-template-columns: 1fr; }
    .product-tab { font-size: .82rem; padding: .75rem .65rem; }
    .product-grid-related {
        display: flex;
        gap: .75rem;
        min-width: 0;
        align-items: stretch;
    }
    .product-grid-related .product-card {
        flex: 0 0 min(78vw, 260px);
        scroll-snap-align: start;
        height: auto;
        min-height: 100%;
    }
    .product-related-scroll { scroll-snap-type: x mandatory; }
}
@media (max-width: 991px) {
    .product-scroll-bar { display: none !important; }
}
.section-title-left { text-align: left; }
.section-title-left h2 { margin: 0; }

/* ── Cart ── */
.cart-layout {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 1.5rem;
    align-items: start;
}
.cart-table-wrap {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    max-width: 100%;
    box-shadow: var(--shadow);
}
.table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    max-width: 100%;
    width: 100%;
}
.table-wrap > .table,
.cart-table-wrap > .table {
    min-width: 560px;
}
.panel-card:has(> .table),
.panel-card:has(> form > .table) {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.has-client-app.page-orders .client-orders-table-wrap.panel-card:has(> .table) {
    overflow: visible;
}
.panel-card > .table,
.panel-card > form > .table {
    min-width: 560px;
}
.cart-product-info { display: flex; gap: .85rem; align-items: center; }
.cart-thumb {
    width: 64px;
    height: 64px;
    object-fit: cover;
    border-radius: var(--radius);
    border: 1px solid var(--color-border);
    flex-shrink: 0;
}
.cart-thumb-empty { background: #f0f0f0; display: inline-block; }
.cart-qty-form input[type=number] { width: 70px; }
.cart-summary { position: sticky; top: 7rem; }
.cart-summary.summary-card { max-width: none; }
.cart-summary-trust {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    font-size: .82rem;
    color: var(--color-muted);
    margin: 1rem 0;
    padding: .75rem 0;
    border-top: 1px dashed var(--color-border);
    border-bottom: 1px dashed var(--color-border);
}
.summary-total-value { color: var(--color-primary-dark); font-size: 1.15rem; }
.summary-note { font-size: .85rem; margin: .75rem 0; }
.cart-actions { margin-top: 1rem; }
.btn-ghost { background: transparent; border-color: transparent; color: var(--color-muted); }
.btn-ghost:hover { background: rgba(0,0,0,.04); color: var(--color-error); }

/* ── Checkout ── */
.checkout-steps {
    display: flex;
    list-style: none;
    padding: 0;
    margin: 0 0 2rem;
    gap: 0;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    overflow: hidden;
}
.checkout-step {
    flex: 1;
    display: flex;
    align-items: center;
    gap: .65rem;
    padding: .85rem 1rem;
    font-size: .85rem;
    color: var(--color-muted);
    border-right: 1px solid var(--color-border);
    position: relative;
    min-width: 0;
}
.checkout-step:last-child { border-right: 0; }
.checkout-step .step-num {
    width: 1.65rem;
    height: 1.65rem;
    border-radius: 50%;
    background: var(--color-bg);
    border: 2px solid var(--color-border);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: .75rem;
    flex-shrink: 0;
}
.checkout-step.is-active {
    background: var(--color-surface-subtle);
    color: var(--color-primary-dark);
    font-weight: 600;
}
.checkout-step.is-active .step-num {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: #000;
}
.checkout-step.is-done .step-num {
    background: var(--color-success);
    border-color: var(--color-success);
    color: #fff;
}
.checkout-form { max-width: none; }
.checkout-block { margin-bottom: 1.75rem; padding-bottom: 1.75rem; border-bottom: 1px solid var(--color-border); }
.checkout-block:last-of-type { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.checkout-block-title {
    font-size: 1rem;
    margin: 0 0 1rem;
    color: var(--color-primary-dark);
    font-family: var(--font-display);
}
.payment-methods-grid {
    display: grid;
    gap: .65rem;
}
.payment-option {
    transition: border-color .15s, background .15s, box-shadow .15s;
}
.payment-option:hover {
    border-color: var(--color-accent);
    box-shadow: var(--shadow);
}
.checkout-summary,
.cart-summary.summary-card {
    position: sticky;
    top: 7rem;
    max-width: none;
}
.summary-highlight {
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: .85rem 1rem;
    margin-bottom: 1rem;
}
.summary-list { margin: 0 0 .75rem; }
.summary-card h2 {
    margin: 0 0 1rem;
    font-size: 1.1rem;
    color: var(--color-primary-dark);
}

/* ── Contact ── */
.contact-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 1.5rem;
    align-items: start;
}
.contact-form-card { box-shadow: none; border-radius: 0; max-width: none; }
.contact-info-stack { display: flex; flex-direction: column; gap: 1rem; }
.info-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 0;
    padding: 1.25rem 1.5rem;
    box-shadow: none;
}
.info-card-icon {
    display: inline-flex;
    width: 2.5rem;
    height: 2.5rem;
    align-items: center;
    justify-content: center;
    background: var(--color-surface-muted);
    border-radius: 0;
    font-size: 1.1rem;
    margin-bottom: .5rem;
}
.info-card h3 { margin: 0 0 .35rem; font-size: .95rem; color: var(--color-primary-dark); }
.info-card p { margin: 0 0 .35rem; }
.info-card-accent {
    background: var(--color-ink);
    color: #fff;
    border: 0;
}
.info-card-accent h3 { color: #fff; }
.info-card-accent p { opacity: .92; }
.info-card-accent .btn { margin-top: .75rem; }

/* ── Empty & error states ── */
.empty-state {
    text-align: center;
    padding: 3rem 1.5rem;
    background: var(--color-surface);
    border: 1px dashed var(--color-border);
    border-radius: 0;
}
.empty-state-sm { padding: 2rem 1.5rem; }
.empty-state-icon { font-size: 3rem; margin-bottom: .75rem; opacity: .85; }
.empty-state h2 { margin: 0 0 .5rem; font-size: 1.25rem; }
.error-page-visual {
    width: 120px;
    height: 120px;
    margin: 0 auto 1.5rem;
    border-radius: 50%;
    background: var(--color-surface-muted);
    border: 3px solid var(--color-accent);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 800;
    color: var(--color-primary-dark);
}
.error-page-visual-500 { font-size: 3rem; border-color: var(--color-error); color: var(--color-error); background: #fef2f2; }

/* ── Client nav (logged in) ── */
.client-nav {
    background: transparent;
    border: 0;
    padding: 0 0 .85rem;
}
.client-nav-shell {
    border: 1px solid var(--color-border);
    background: #fff;
    box-shadow: var(--shadow);
    overflow: hidden;
}
.client-nav-inner {
    display: flex;
    flex-wrap: wrap;
    gap: .15rem 1.5rem;
    padding: .55rem 1rem;
    background: #f7f7f7;
}
.client-nav-link {
    color: #444;
    font-family: var(--font-display);
    font-size: .78rem;
    font-weight: 600;
    text-decoration: none;
    padding: .4rem 0;
    border-bottom: 2px solid transparent;
    transition: color .15s, border-color .15s;
}
.client-nav-link:hover {
    color: var(--color-text);
    text-decoration: none;
    border-bottom-color: rgba(47, 181, 210, .45);
}
.client-nav-link.is-active {
    color: var(--color-text);
    border-bottom-color: var(--color-accent);
}
.client-nav-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .55rem 1rem;
    border-bottom: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
}
.client-nav-company {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem .75rem;
    min-width: 0;
}
.client-nav-label {
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--color-muted);
    flex-basis: 100%;
}
.client-nav-company strong {
    font-size: .9rem;
    color: var(--color-primary-dark);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: min(420px, 55vw);
}
.client-nav-group {
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .02em;
    padding: .18rem .5rem;
    border-radius: 0;
    background: var(--color-surface-muted);
    color: var(--color-text);
    border: 1px solid var(--color-border);
    text-transform: none;
}
.client-nav-cta {
    font-size: .78rem;
    font-weight: 600;
    color: var(--color-text);
    text-decoration: none;
    white-space: nowrap;
    padding: .4rem .75rem;
    border: 1px solid var(--color-border);
    border-radius: 0;
    background: #fff;
    transition: border-color .15s, color .15s;
}
.client-nav-cta:hover {
    color: var(--color-text);
    border-color: #999;
    text-decoration: none;
}
.client-nav-inner--hidden { display: none; }

/* ── Client panel (sidebar layout) ── */
.has-client-panel .main.container {
    width: min(1360px, 96%);
}
.client-panel {
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    gap: 1.75rem;
    align-items: start;
    padding-top: .5rem;
}
.client-panel-main {
    min-width: 0;
    max-width: 100%;
    overflow-x: auto;
}
.client-sidebar {
    position: sticky;
    top: calc(var(--header-offset, 120px) + .75rem);
    display: flex;
    flex-direction: column;
    gap: .75rem;
}
.client-sidebar-profile {
    padding: 1.15rem 1.2rem;
    margin: 0;
    background: linear-gradient(180deg, #fff 0%, var(--color-surface-subtle) 100%);
    border: 1px solid var(--color-border);
    position: relative;
    overflow: hidden;
}
.client-sidebar-profile.panel-card { box-shadow: var(--shadow); }
.client-sidebar-profile.panel-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--color-accent), rgba(47, 181, 210, .25));
}
.client-sidebar-avatar-wrap {
    display: inline-flex;
    padding: 3px;
    border-radius: calc(var(--radius-lg) + 3px);
    background: linear-gradient(135deg, var(--color-accent), rgba(47, 181, 210, .25));
    margin-bottom: .85rem;
}
.client-sidebar-avatar {
    width: 2.85rem;
    height: 2.85rem;
    border-radius: var(--radius-lg);
    background: var(--color-ink);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: .95rem;
    letter-spacing: .04em;
}
.client-sidebar-identity {
    display: flex;
    flex-direction: column;
    gap: .2rem;
    min-width: 0;
}
.client-sidebar-identity strong {
    font-size: .92rem;
    color: var(--color-text);
    line-height: 1.3;
    word-break: break-word;
}
.client-sidebar-identity .muted { font-size: .78rem; }
.client-sidebar-group { align-self: flex-start; margin-top: .25rem; }
.client-credit-meter {
    margin-top: 1rem;
    padding-top: .85rem;
    border-top: 1px dashed var(--color-border);
}
.client-credit-head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: .5rem;
    font-size: .78rem;
    margin-bottom: .45rem;
}
.client-credit-head strong {
    font-size: .95rem;
    color: var(--color-text);
}
.client-credit-bar {
    height: 6px;
    border-radius: 999px;
    background: #e5e5e5;
    overflow: hidden;
}
.client-credit-bar span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--color-accent);
    transition: width .3s ease;
}
.client-credit-meta { margin: .35rem 0 0; font-size: .72rem; }
.client-sidebar-section { margin: 0; }
.client-sidebar-nav.panel-card {
    padding: .85rem .75rem;
    margin: 0;
    box-shadow: var(--shadow);
    border: 1px solid var(--color-border);
    background: #fff;
}
.client-sidebar-section-label {
    margin: 0 0 .45rem;
    padding: 0 .45rem;
    font-size: .66rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--color-muted);
}
.client-sidebar-links {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .2rem;
}
.client-sidebar-link {
    display: flex;
    align-items: center;
    gap: .6rem;
    padding: .58rem .65rem;
    border-radius: var(--radius-lg);
    color: var(--color-text);
    text-decoration: none;
    font-size: .86rem;
    font-weight: 600;
    border: 1px solid transparent;
    transition: background .18s, border-color .18s, color .18s, transform .15s;
}
.client-sidebar-link:hover {
    background: var(--color-surface-muted);
    border-color: var(--color-border);
    color: var(--color-text);
    text-decoration: none;
    transform: translateX(2px);
}
.client-sidebar-link.is-active {
    background: rgba(47, 181, 210, .1);
    border-color: rgba(47, 181, 210, .22);
    color: var(--color-primary-dark);
    box-shadow: inset 3px 0 0 var(--color-accent);
}
.client-sidebar-icon {
    width: 1.75rem;
    height: 1.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius);
    background: var(--color-surface-muted);
    flex-shrink: 0;
    font-size: .88rem;
    line-height: 1;
}
.client-sidebar-link.is-active .client-sidebar-icon {
    background: rgba(47, 181, 210, .18);
}
.client-sidebar-text { flex: 1; min-width: 0; }
.client-sidebar-badge {
    min-width: 1.25rem;
    height: 1.25rem;
    padding: 0 .35rem;
    border-radius: 999px;
    background: var(--color-accent);
    color: var(--color-ink);
    font-size: .68rem;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.client-panel-welcome {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem 1.5rem;
    margin-bottom: 1.25rem;
    background: var(--color-surface-subtle);
    border-color: var(--color-border);
}
.client-panel-welcome h2 {
    margin: 0 0 .25rem;
    font-size: 1.35rem;
    color: var(--color-primary-dark);
}
.client-panel-welcome-text .muted { margin: 0; font-size: .9rem; }
.client-panel-welcome-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}
.client-panel-alert {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: 1rem;
}
.client-home-cta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem 1.5rem;
    padding: 1.5rem 1.75rem;
    background: var(--color-surface-subtle);
    border-color: var(--color-border);
}
.client-home-cta h2 {
    margin: 0 0 .35rem;
    font-size: 1.2rem;
    color: var(--color-primary-dark);
}
.client-home-cta p { margin: 0; }

.empty-state-sm p { margin-bottom: .75rem; }

/* ── Client panel extras ── */
.client-panel-mobile-bar {
    display: none;
}
.client-shortcuts {
    margin-bottom: 1.25rem;
}
.client-shortcuts .quick-action-card-active {
    border-color: var(--color-accent);
    background: var(--color-surface-subtle);
}
.client-shortcuts .quick-action-card-warn {
    border-color: rgba(245,158,11,.4);
    background: rgba(245,158,11,.08);
}
.orders-summary-grid {
    margin-bottom: 1rem;
}
.stat-card-link {
    text-decoration: none;
    color: inherit;
    transition: transform .15s, box-shadow .15s, border-color .15s;
}
.stat-card-link:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-lg);
    text-decoration: none;
    color: inherit;
}
.client-sidebar-support {
    padding: .9rem 1rem;
    margin-top: 0;
    background: linear-gradient(180deg, #fff, var(--color-surface-subtle));
}
.client-sidebar-support.panel-card { box-shadow: var(--shadow); }
.client-support-link {
    display: block;
    font-size: .82rem;
    font-weight: 600;
    color: var(--color-primary-dark);
    text-decoration: none;
    margin-bottom: .35rem;
    word-break: break-all;
}
.client-support-link:hover { color: var(--color-primary); text-decoration: none; }
.client-support-hours {
    display: block;
    font-size: .72rem;
    margin-top: .25rem;
}
.has-client-panel .catalog-layout {
    grid-template-columns: minmax(220px, 248px) minmax(0, 1fr);
    gap: 1.25rem;
}
.has-client-panel .catalog-sidebar-inner.panel-card {
    font-size: .92rem;
}
.has-client-panel .catalog-sidebar .sidebar-title {
    font-size: .74rem;
}
.has-client-panel .catalog-sidebar-menu-wrap,
.has-client-panel .catalog-sidebar-menu {
    max-height: min(48vh, 420px);
}
.has-client-panel .catalog-sidebar-search,
.has-client-panel .catalog-category-tools {
    padding-inline: .85rem;
}
.has-client-panel .catalog-sidebar-head {
    padding-inline: .85rem;
}
.nav-search-compact input {
    max-width: 220px;
}
body.client-panel-nav-open {
    overflow: hidden;
}

.order-meta-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 1rem;
    margin-bottom: 1.5rem;
}
.meta-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: 1rem 1.15rem;
    box-shadow: var(--shadow);
}
.meta-card-highlight {
    background: var(--color-surface);
    border-color: var(--color-border);
    border-left: 3px solid var(--color-accent);
}
.meta-label {
    display: block;
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--color-muted);
    margin-bottom: .35rem;
}
.meta-value { font-size: 1.25rem; color: var(--color-text); }
.badge-lg { font-size: .85rem; padding: .35rem .75rem; }
.order-info-box {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
}
.order-info-box h3 { margin: 0 0 .35rem; font-size: .9rem; color: var(--color-text); }
.order-info-box p { margin: 0; }
.order-actions-bar {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.5rem;
    padding: 1.25rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
}
.order-actions-primary, .order-actions-secondary {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    align-items: center;
}

/* ── Toolbar card ── */
.toolbar-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: .85rem 1.15rem;
    margin-bottom: .5rem;
    box-shadow: var(--shadow);
}
.toolbar-hint { margin: 0 0 1.25rem; font-size: .85rem; }

/* ── Quick order panels ── */
.feature-panel { max-width: none; box-shadow: var(--shadow-lg); border-radius: var(--radius-lg); }
.feature-panel-head {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin-bottom: .75rem;
}
.feature-panel-head h2 { margin: 0; font-size: 1.1rem; }
.feature-panel-icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    background: var(--color-surface-muted);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.15rem;
}
.code-input {
    font-family: ui-monospace, monospace;
    font-size: .88rem;
    line-height: 1.5;
}
.file-upload input[type=file] {
    margin-top: .5rem;
    font-size: .88rem;
}
.preview-section { margin-top: 2rem; }
.preview-actions {
    display: flex;
    gap: .75rem;
    flex-wrap: wrap;
    margin-top: 1.25rem;
}

/* ── Legal page ── */
.legal-layout {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 2rem;
    align-items: start;
}
.legal-nav {
    position: sticky;
    top: 7rem;
    display: flex;
    flex-direction: column;
    gap: .25rem;
}
.legal-nav-link {
    padding: .5rem .75rem;
    border-radius: 0;
    color: var(--color-text);
    text-decoration: none;
    font-size: .88rem;
    font-weight: 500;
    border-left: 3px solid transparent;
}
.legal-nav-link:hover {
    background: var(--color-surface-subtle);
    border-left-color: var(--color-primary);
    text-decoration: none;
}
.legal-nav-link.is-active {
    background: var(--color-surface-subtle);
    border-left-color: var(--color-accent);
    font-weight: 600;
}
.legal-section { max-width: none; margin-bottom: 1.25rem; box-shadow: none; border-radius: 0; }
.legal-section h2 { margin-top: 0; color: var(--color-primary-dark); }
.auth-layout-narrow { max-width: 900px; margin: 0 auto; width: 100%; }
.auth-page-shell {
    margin: 0;
    width: 100%;
    max-width: 100%;
    padding: 1.5rem 0 2rem;
    background: var(--color-surface-subtle);
}
.auth-page-register,
.auth-page-login,
.auth-page-forgot,
.auth-page-reset {
    margin-left: 0;
    margin-right: 0;
    padding: 0;
    background: transparent;
}
.auth-page-inner {
    width: 100%;
    max-width: none;
    margin: 0;
}
.auth-layout-register,
.auth-layout-login,
.auth-layout-forgot,
.auth-layout-reset {
    min-height: auto;
    border: 0;
    box-shadow: none;
}
@media (min-width: 901px) {
    .auth-layout-register,
    .auth-layout-login {
        grid-template-columns: minmax(320px, 1fr) minmax(380px, 1fr);
        min-height: calc(100dvh - var(--header-offset, 140px));
    }
    .auth-layout-register {
        min-height: calc(100dvh - var(--header-offset, 140px));
    }
    .auth-form-panel-register,
    .auth-form-panel-login {
        max-height: none;
        overflow: visible;
        padding: clamp(2rem, 4vw, 3rem);
    }
    .auth-form-panel-login {
        justify-content: center;
    }
    .auth-visual-register,
    .auth-visual-login {
        min-height: calc(100dvh - var(--header-offset, 140px));
    }
}
.auth-layout-login {
    min-height: 0;
}
.auth-visual-register > img,
.auth-visual-login > img,
.auth-visual-forgot > img,
.auth-visual-reset > img {
    transform: none;
    transition: none;
}
.auth-layout-register:hover .auth-visual-register > img,
.auth-layout-login:hover .auth-visual-login > img,
.auth-layout-forgot:hover .auth-visual-forgot > img,
.auth-layout-reset:hover .auth-visual-reset > img {
    transform: none;
}
.auth-visual-register .auth-visual-overlay,
.auth-visual-login .auth-visual-overlay,
.auth-visual-forgot .auth-visual-overlay,
.auth-visual-reset .auth-visual-overlay {
    background:
        linear-gradient(180deg, rgba(0, 0, 0, .72) 0%, rgba(0, 0, 0, .88) 100%);
    justify-content: flex-end;
    padding: clamp(1.5rem, 3vw, 2.25rem);
    border-left: 0;
    border-top: 0;
}
.auth-visual-register > img,
.auth-visual-login > img {
    object-position: center 30%;
}
.auth-visual-lead {
    margin: 0 0 1rem;
    max-width: 26rem;
    font-size: .9rem;
    line-height: 1.55;
    opacity: .9;
}
.auth-visual-logo {
    width: 120px;
    margin-bottom: .85rem;
}
.auth-visual-badge {
    display: inline-block;
    align-self: flex-start;
    margin-bottom: 1rem;
    padding: .35rem .8rem;
    border-radius: 0;
    font-family: var(--font-display);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    background: rgba(255, 255, 255, .12);
    border: 1px solid rgba(255, 255, 255, .22);
    color: #fff;
}
.auth-visual-title {
    margin: 0 0 .65rem;
    font-family: var(--font-display);
    font-size: clamp(1.25rem, 2.2vw, 1.65rem);
    line-height: 1.2;
    color: #fff;
}
.auth-benefits li {
    display: flex;
    align-items: center;
    gap: .65rem;
    margin-bottom: .55rem;
    padding: .45rem 0;
}
.auth-benefit-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 0;
    background: rgba(255, 255, 255, .12);
    border: 1px solid rgba(255, 255, 255, .22);
    font-size: .82rem;
    flex-shrink: 0;
}
.auth-visual-trust {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(255, 255, 255, .15);
}
.auth-visual-trust span {
    padding: .35rem .65rem;
    border-radius: 0;
    font-size: .75rem;
    background: rgba(255, 255, 255, .1);
    border: 1px solid rgba(255, 255, 255, .18);
}

.auth-form-panel-register,
.auth-form-panel-login {
    padding: clamp(1.5rem, 4vw, 3rem);
    overflow: visible;
    justify-content: flex-start;
    max-width: 560px;
    margin: 0 auto;
    width: 100%;
}
@media (min-width: 901px) {
    .auth-form-panel-register,
    .auth-form-panel-login {
        margin: 0;
        max-width: none;
    }
}
.auth-form-head-register {
    margin-bottom: 1.5rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid var(--color-border);
}
.auth-form-head-register .section-label {
    display: block;
    margin-bottom: .5rem;
    padding: 0;
    background: transparent;
    color: var(--color-muted);
    font-size: .72rem;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.auth-form-head-register h1 {
    font-size: clamp(1.35rem, 2.5vw, 1.65rem);
    margin: 0;
}
.auth-form-head-register h1::after {
    display: none;
}
.auth-form-head-register .auth-form-lead {
    margin-top: .35rem;
}
.auth-form-register .auth-form-section {
    margin-bottom: 1.5rem;
    padding-bottom: 1.5rem;
}
.auth-form-register .auth-form-actions {
    margin-top: .5rem;
    padding-top: 0;
    border-top: 0;
}
.auth-section-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.35rem;
    height: 1.35rem;
    margin-right: .45rem;
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
    font-size: .68rem;
    font-weight: 800;
    vertical-align: middle;
}
.auth-form-section.is-current .auth-section-num {
    background: var(--color-ink);
    border-color: var(--color-ink);
    color: #fff;
}
.auth-form-section.is-done .auth-section-num {
    background: var(--color-ink);
    border-color: var(--color-ink);
    color: #fff;
}
.auth-form-section legend {
    display: flex;
    align-items: center;
    width: 100%;
    margin-bottom: 1rem;
    padding: 0;
    border: 0;
    font-family: var(--font-display);
    font-size: .88rem;
    font-weight: 700;
    color: var(--color-primary-dark);
    letter-spacing: .01em;
}
.auth-form-section.is-current {
    border-bottom-color: var(--color-border);
}
.auth-form-section.is-current legend {
    color: var(--color-ink);
}
.auth-form-footer-register {
    display: flex;
    margin-top: 1.25rem;
    padding: 1.25rem 0 0;
    border: 0;
    border-top: 1px solid var(--color-border);
    background: transparent;
    flex-direction: column;
    align-items: flex-start;
    gap: .35rem;
    text-align: left;
}
.auth-form-footer-register p {
    margin: 0;
    font-size: .88rem;
    color: var(--color-muted);
}
.auth-form-footer-register .auth-register-hint {
    font-size: .78rem;
    line-height: 1.45;
}
.auth-login-link {
    font-weight: 700;
    color: var(--color-ink);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.auth-login-link:hover {
    color: var(--color-ink);
    text-decoration: none;
}
.auth-form-panel-login {
    justify-content: center;
}
.auth-form-head {
    margin-bottom: 1.35rem;
}
.auth-form-head h1 {
    margin: .35rem 0 .5rem;
    font-size: clamp(1.35rem, 2.5vw, 1.75rem);
    color: var(--color-primary-dark);
}
.auth-form-head h1::after {
    content: '';
    display: block;
    width: 2.5rem;
    height: 3px;
    margin-top: .55rem;
    border-radius: 0;
    background: var(--color-ink);
}
.auth-form-lead {
    margin: 0;
    color: var(--color-muted);
    font-size: .92rem;
    line-height: 1.6;
    max-width: 520px;
}
.auth-alert {
    animation: alertIn .45s var(--ease-out) both;
}

.auth-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .5rem;
    list-style: none;
    margin: 0 0 1.5rem;
    padding: 0;
}
.auth-step {
    display: flex;
    align-items: center;
    gap: .45rem;
    padding: .55rem .65rem;
    border-radius: 0;
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    font-size: .72rem;
    font-weight: 600;
    color: var(--color-muted);
    line-height: 1.2;
    cursor: pointer;
    transition: border-color .15s ease, color .15s ease, background .15s ease;
}
.auth-step:hover {
    border-color: var(--color-ink);
    color: var(--color-ink);
}
.auth-step span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.35rem;
    height: 1.35rem;
    border-radius: 0;
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
    color: var(--color-text);
    font-size: .68rem;
    font-weight: 800;
    flex-shrink: 0;
}
.auth-step.is-active {
    border-color: var(--color-ink);
    background: var(--color-surface);
    color: var(--color-ink);
}
.auth-step.is-active span {
    background: var(--color-ink);
    border-color: var(--color-ink);
    color: #fff;
}
.auth-step.is-done {
    color: var(--color-text);
}
.auth-step.is-done span {
    background: var(--color-ink);
    border-color: var(--color-ink);
    color: #fff;
}

.auth-form-section {
    border: 0;
    margin: 0 0 1.35rem;
    padding: 0 0 1.25rem;
    border-bottom: 1px solid var(--color-border);
}
.auth-form-section:last-of-type {
    border-bottom: 0;
    padding-bottom: 0;
}
.auth-form-row {
    margin-bottom: 0;
}
.auth-field {
    margin-bottom: .85rem;
}
.auth-field:last-child {
    margin-bottom: 0;
}
.auth-field label {
    display: block;
    margin-bottom: .4rem;
    font-size: .82rem;
    font-weight: 600;
    color: var(--color-primary-dark);
}
.auth-field label abbr {
    color: var(--color-ink);
    text-decoration: none;
    font-weight: 800;
}
.auth-field input {
    width: 100%;
    margin-top: 0;
    padding: .72rem .85rem;
    border: 1px solid var(--color-border);
    border-radius: 0;
    background: var(--color-surface);
    transition:
        border-color var(--motion-fast) ease,
        background var(--motion-fast) ease;
}
.auth-field input:hover {
    border-color: #bbb;
}
.auth-field input:focus {
    outline: none;
    border-color: var(--color-ink);
    box-shadow: none;
    background: #fff;
}
.auth-field-hint {
    display: block;
    margin-top: .35rem;
    font-size: .78rem;
    color: var(--color-muted);
    line-height: 1.4;
}

.auth-form-actions {
    margin-top: 1.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--color-border);
}
.auth-form-note {
    margin: .85rem 0 0;
    font-size: .78rem;
    line-height: 1.5;
    text-align: center;
}
.auth-form-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.5rem;
    padding: 1rem 1.15rem;
    border-radius: 0;
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
}
.auth-login-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.5rem;
    padding: .55rem 1.15rem;
    border-radius: 0;
    border: 1px solid var(--color-ink);
    background: #fff;
    color: var(--color-ink);
    font-weight: 600;
    font-size: .88rem;
    text-decoration: none;
    box-shadow: none;
    transform: none;
    white-space: nowrap;
}
.auth-login-btn:hover {
    background: var(--color-ink);
    border-color: var(--color-ink);
    color: #fff;
    text-decoration: none;
    transform: none;
    box-shadow: none;
}

.auth-perks {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .5rem;
    list-style: none;
    margin: 0 0 1.35rem;
    padding: 0;
}
.auth-perks li {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .35rem;
    padding: .65rem .45rem;
    text-align: center;
    border-radius: 0;
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    font-size: .68rem;
    font-weight: 600;
    color: var(--color-primary-dark);
    line-height: 1.25;
}
.auth-perks li span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.35rem;
    height: 1.35rem;
    border-radius: 0;
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
    color: var(--color-ink);
    font-size: .72rem;
    font-weight: 800;
}
.auth-perks-register {
    margin-bottom: 1.15rem;
}
.page-auth .auth-form-panel .btn-primary,
.page-auth .auth-submit-btn {
    border-radius: 0;
    background: var(--color-ink);
    border-color: var(--color-ink);
    color: #fff;
    font-weight: 600;
    box-shadow: none;
    transform: none;
}
.page-auth .auth-form-panel .btn-primary:hover,
.page-auth .auth-submit-btn:hover {
    background: #2a2a2a;
    border-color: #2a2a2a;
    color: #fff;
    box-shadow: none;
    transform: none;
}
.page-auth .auth-form-section {
    scroll-margin-top: 1rem;
}
.auth-form-footer p {
    margin: 0;
    font-size: .88rem;
    color: var(--color-muted);
}
.auth-form-actions-compact {
    margin-top: .5rem;
    padding-top: 0;
    border-top: 0;
}
.auth-forgot-wrap {
    margin: .85rem 0 0;
    text-align: center;
}
.auth-forgot-link {
    font-size: .84rem;
    font-weight: 600;
    color: var(--color-muted);
    text-decoration: none;
    transition: color var(--motion-fast) ease;
}
.auth-forgot-link:hover {
    color: var(--color-ink);
    text-decoration: underline;
}
.auth-register-cta {
    align-items: center;
    background: var(--color-surface-subtle);
    border-color: var(--color-border);
}
.auth-register-cta p {
    font-weight: 600;
    color: var(--color-primary-dark);
}
.auth-register-hint {
    display: block;
    margin-top: .2rem;
    font-size: .78rem;
}
.auth-register-cta .btn-header-cta {
    white-space: nowrap;
}

@media (max-width: 900px) {
    .auth-layout-register,
    .auth-layout-login,
    .auth-layout-forgot,
    .auth-layout-reset {
        min-height: 0;
    }
    .auth-visual-register,
    .auth-visual-login,
    .auth-visual-forgot,
    .auth-visual-reset {
        min-height: 200px;
        max-height: 240px;
    }
    .auth-visual-register > img,
    .auth-visual-login > img,
    .auth-visual-forgot > img,
    .auth-visual-reset > img {
        object-position: center 35%;
    }
    .auth-visual-register .auth-visual-overlay,
    .auth-visual-login .auth-visual-overlay,
    .auth-visual-forgot .auth-visual-overlay,
    .auth-visual-reset .auth-visual-overlay {
        padding: 1.25rem;
        background: linear-gradient(180deg, rgba(0, 0, 0, .78) 0%, rgba(0, 0, 0, .92) 100%);
    }
    .auth-visual-title {
        font-size: 1.1rem;
        margin-bottom: .35rem;
    }
    .auth-visual-badge {
        margin-bottom: .5rem;
        font-size: .65rem;
    }
    .auth-visual-logo {
        width: 88px;
        margin-bottom: .45rem;
    }
    .auth-visual-lead,
    .auth-visual-overlay p,
    .auth-visual-trust,
    .auth-benefits {
        display: none;
    }
}
@media (max-width: 640px) {
    .auth-steps {
        grid-template-columns: 1fr;
    }
    .auth-perks {
        grid-template-columns: 1fr;
    }
    .auth-form-footer,
    .auth-form-footer-register,
    .auth-register-cta {
        flex-direction: column;
        align-items: stretch;
        text-align: center;
    }
    .auth-form-footer-register .auth-login-btn,
    .auth-register-cta .btn-header-cta {
        width: 100%;
        text-align: center;
    }
    .auth-form-row {
        grid-template-columns: 1fr;
    }
}

.page-auth .main {
    padding-top: 0;
    padding-bottom: 0;
}
.page-auth .main.container {
    max-width: 100%;
    width: 100%;
    padding-left: 0;
    padding-right: 0;
}
.page-auth .category-nav,
.page-auth .category-nav-shell {
    display: none;
}
.page-auth .auth-page-shell {
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    width: 100vw;
    max-width: 100vw;
    padding: 0;
    background: var(--color-surface);
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
}
.page-auth .auth-page-inner {
    width: 100%;
    max-width: 100%;
    margin: 0;
}

/* ── Page content animation ── */
.page-content {
    animation: pageFadeIn .35s ease-out;
    min-width: 0;
    max-width: 100%;
}
@keyframes pageFadeIn {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

/* ── Reusable panels ── */
.panel-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 0;
    padding: 1.5rem 1.75rem;
    box-shadow: none;
    margin-bottom: 1.5rem;
}
.panel-card h2 {
    margin: 0 0 1rem;
    font-size: 1.15rem;
    color: var(--color-primary-dark);
}
.panel-card > h2:first-child { margin-top: 0; }
.section.panel-card { margin-top: 0; }

.info-dl {
    display: grid;
    grid-template-columns: minmax(120px, 38%) 1fr;
    gap: .65rem 1rem;
    margin: 0;
}
.info-dl dt {
    margin: 0;
    font-size: .82rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--color-muted);
}
.info-dl dd { margin: 0; }

.info-banner {
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: .85rem 1.15rem;
    margin-bottom: 1.25rem;
    font-size: .92rem;
}
.info-banner a { font-weight: 600; }

.stat-card-accent {
    border-color: var(--color-border);
    background: var(--color-surface);
    border-left: 3px solid var(--color-accent);
}
.stat-card-accent .stat-value { color: var(--color-text); }
.stat-card-warn {
    border-color: var(--color-ink);
    background: #f5f5f5;
}
.stat-card-warn .stat-value { color: var(--color-ink); }
.account-stats { margin-top: 0; }

/* ── Account area ── */
.account-nav {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin-bottom: 1.5rem;
    padding: .35rem;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
}
.account-nav-link {
    padding: .55rem 1rem;
    border-radius: var(--radius);
    text-decoration: none;
    font-size: .88rem;
    font-weight: 600;
    color: var(--color-text);
    transition: background .15s, color .15s;
}
.account-nav-link:hover {
    background: var(--color-surface-muted);
    text-decoration: none;
    color: var(--color-primary-dark);
}
.account-nav-link.is-active {
    background: var(--color-ink);
    color: #fff;
    box-shadow: inset 0 -2px 0 var(--color-accent);
}

.quick-actions {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
    gap: .75rem;
    margin-bottom: 1.5rem;
}
.quick-action-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    padding: 1rem .75rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    text-decoration: none;
    color: var(--color-text);
    box-shadow: var(--shadow);
    transition: transform .2s, border-color .2s, box-shadow .2s;
    text-align: center;
}
.quick-action-card:hover {
    transform: translateY(-2px);
    border-color: var(--color-accent);
    box-shadow: var(--shadow-lg);
    text-decoration: none;
    color: var(--color-text);
}
.quick-action-icon {
    font-size: 1.35rem;
    line-height: 1;
}
.quick-action-label {
    font-size: .82rem;
    font-weight: 600;
}

.address-cards {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: .75rem;
}
.address-card {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    padding: 1rem 1.15rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: var(--color-bg);
}
.address-card.is-default {
    border-color: var(--color-accent);
    background: var(--color-surface-subtle);
}
.address-card-body p { margin: .25rem 0 0; }
.address-card-actions {
    display: flex;
    gap: .35rem;
    flex-shrink: 0;
}

.form-page {
    max-width: 640px;
}
.form-card label { display: block; margin-bottom: 1rem; }
.form-card .form-actions {
    display: flex;
    gap: .75rem;
    flex-wrap: wrap;
    margin-top: 1.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--color-border);
}

.catalog-toolbar.panel-card {
    margin-bottom: 1.25rem;
    padding: 1rem 1.25rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    max-width: 100%;
    box-shadow: none;
    border-left: 3px solid var(--color-accent);
}
.catalog-toolbar.panel-card .toolbar {
    flex: 1 1 280px;
    min-width: 0;
}
.catalog-toolbar.panel-card h1,
.catalog-toolbar.panel-card .catalog-toolbar-meta {
    min-width: 0;
}
.catalog-toolbar-meta {
    margin: 0;
    font-size: .95rem;
    color: var(--color-muted);
}

/* ── Admin enhancements ── */
.admin-body {
    background:
        linear-gradient(180deg, #eef1f4 0%, var(--color-bg) 14rem),
        radial-gradient(ellipse 80% 50% at 100% 0%, rgba(47, 181, 210, .05) 0%, transparent 55%);
}
.admin-main { padding-top: 0; padding-bottom: 0; }
.admin-page-header {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: 1.35rem 1.5rem;
    margin-bottom: 1.25rem;
    box-shadow: var(--shadow);
    border-left: 4px solid var(--color-accent);
}
.admin-page-header h1 {
    margin: 0;
    font-size: clamp(1.35rem, 2.5vw, 1.75rem);
}
.admin-page-header .page-header-sub {
    margin: .45rem 0 0;
}
.admin-logo {
    display: inline-flex;
    align-items: center;
    gap: .65rem;
    text-decoration: none;
}
.admin-logo img {
    width: auto;
    height: 28px;
    max-width: 120px;
    opacity: .98;
}
.admin-logo-badge {
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    background: rgba(255,255,255,.18);
    padding: .2rem .5rem;
    border-radius: 4px;
    color: #fff;
}
.admin-nav .badge { margin-left: .25rem; }
.admin-status-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}
.admin-status-card { margin: 0; flex: 1; min-width: 240px; }
.admin-sync-meta { margin: 0; font-size: .88rem; }
.admin-stats { margin-top: 0; }
.admin-actions-panel .section-header { margin-bottom: 1rem; }
.admin-actions-panel .section-header h2 { margin: 0; }
.admin-actions-form { margin-bottom: 1.25rem; }
.admin-quick-actions { margin-bottom: 0; }

/* ── Filter tabs ── */
.filter-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin-bottom: 1.25rem;
    padding: .35rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
}
.filter-tab {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .5rem .9rem;
    border-radius: var(--radius);
    text-decoration: none;
    font-size: .85rem;
    font-weight: 600;
    color: var(--color-text);
    border: 1px solid transparent;
    transition: background .15s, color .15s, border-color .15s;
}
.filter-tab:hover {
    background: #f5f5f5;
    text-decoration: none;
    color: var(--color-text);
}
.filter-tab.is-active {
    background: var(--color-ink);
    color: #fff;
    border-color: var(--color-ink);
    box-shadow: inset 0 -2px 0 var(--color-accent);
}
.filter-tab-action {
    margin-left: auto;
    background: var(--color-bg);
    border-color: var(--color-border);
}
.filter-tab-action:hover { background: #f5f5f5; }

/* ── Admin filters & forms ── */
.admin-quick-actions { margin-bottom: 0; }

/* ── Admin panel sidebar ── */
/* Admin main width — full-width shell in v12 block at EOF */
.has-admin-panel .admin-main.container { width: 100%; max-width: none; margin: 0; }
.admin-panel {
    display: grid;
    grid-template-columns: var(--admin-sidebar-width, 268px) minmax(0, 1fr);
    gap: 0;
    align-items: stretch;
}
.admin-panel-main {
    min-width: 0;
    max-width: 100%;
    overflow-x: auto;
}
.admin-sidebar {
    position: sticky;
    top: var(--admin-header-height, var(--header-offset, 72px));
    display: flex;
    flex-direction: column;
    gap: .75rem;
}
.admin-sidebar-section.panel-card,
.admin-sidebar-profile.panel-card,
.admin-sidebar-exports.panel-card {
    margin: 0;
    padding: .85rem .95rem;
    box-shadow: var(--shadow);
}
.admin-sidebar-profile {
    background: linear-gradient(135deg, var(--color-ink) 0%, #1a1a1a 100%);
    border: 0;
    color: #fff;
    position: relative;
    overflow: hidden;
}
.admin-sidebar-profile::before {
    content: "";
    position: absolute;
    top: -30%;
    right: -20%;
    width: 120px;
    height: 120px;
    background: radial-gradient(circle, rgba(47, 181, 210, .25) 0%, transparent 70%);
    pointer-events: none;
}
.admin-sidebar-profile .admin-sidebar-avatar {
    position: relative;
    z-index: 1;
}
.admin-sidebar-profile .muted { color: rgba(255, 255, 255, .65); }
.admin-sidebar-profile .admin-sidebar-identity strong { color: #fff; }
.admin-sidebar-avatar {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 50%;
    background: var(--color-accent);
    color: var(--color-ink);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    margin-bottom: .65rem;
}
.admin-sidebar-identity strong { color: var(--color-text); font-size: .92rem; }
.admin-sidebar-meta { font-size: .72rem; margin: .5rem 0 0; }
.admin-sidebar-section-label {
    margin: 0 0 .45rem;
    padding: 0 .15rem;
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--color-muted);
}
.admin-sidebar-links {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .1rem;
}
.admin-sidebar-link {
    display: flex;
    align-items: center;
    gap: .55rem;
    padding: .55rem .65rem;
    border-radius: var(--radius);
    color: var(--color-text);
    text-decoration: none;
    font-size: .84rem;
    font-weight: 600;
    border: 1px solid transparent;
    transition: background .15s, border-color .15s, transform .12s;
}
.admin-sidebar-link:hover {
    background: var(--color-surface-subtle);
    border-color: var(--color-border);
    text-decoration: none;
    color: var(--color-text);
    transform: translateX(2px);
}
.admin-sidebar-link.is-active {
    background: rgba(47, 181, 210, .1);
    border-color: rgba(47, 181, 210, .35);
    color: var(--color-text);
    box-shadow: inset 3px 0 0 var(--color-accent);
}
.admin-sidebar-icon { width: 1.3rem; text-align: center; flex-shrink: 0; font-size: .95rem; }
.admin-sidebar-text { flex: 1; }
.admin-sidebar-badge {
    min-width: 1.2rem;
    height: 1.2rem;
    padding: 0 .35rem;
    border-radius: 999px;
    background: var(--color-accent);
    color: var(--color-ink);
    font-size: .65rem;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.admin-sidebar-exports { padding: .85rem 1rem; }
.admin-export-links { display: flex; flex-wrap: wrap; gap: .35rem; }
.admin-export-links .btn-sm {
    font-size: .75rem;
    padding: .3rem .55rem;
}
.has-admin-panel .panel-card {
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
}
.has-admin-panel .stat-card {
    border-radius: var(--radius-lg);
    border-top: 3px solid var(--color-border);
    transition: transform .15s, box-shadow .15s, border-color .15s;
}
.has-admin-panel .stat-card-link:hover {
    border-top-color: var(--color-accent);
}
.has-admin-panel .stat-card-accent {
    border-top-color: var(--color-accent);
    background: linear-gradient(180deg, rgba(47, 181, 210, .06) 0%, #fff 100%);
}
.has-admin-panel .stat-card-warn {
    border-top-color: #f59e0b;
    background: linear-gradient(180deg, rgba(245, 158, 11, .06) 0%, #fff 100%);
}
.has-admin-panel .admin-table thead th {
    background: var(--color-surface-subtle);
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--color-muted);
    font-weight: 700;
}
.has-admin-panel .quick-action-card {
    border-radius: var(--radius-lg);
    transition: transform .15s, box-shadow .15s, border-color .15s;
}
.has-admin-panel .quick-action-card:hover {
    border-color: rgba(47, 181, 210, .45);
    transform: translateY(-3px);
}
.admin-tag-list { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .35rem; }
.admin-cart-card { margin-bottom: 1rem; }
.admin-product-preview { grid-template-columns: auto 1fr; gap: 1.25rem; align-items: start; }
body.admin-panel-nav-open { overflow: hidden; }

.admin-module-grid { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); }
.has-admin-panel .stat-card-link { text-decoration: none; color: inherit; transition: transform .15s, box-shadow .15s; }
.has-admin-panel .stat-card-link:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); text-decoration: none; color: inherit; }

.admin-status-form { display: flex; flex-wrap: wrap; gap: .75rem; align-items: flex-end; margin-top: .5rem; }
.admin-modules-overview { margin-bottom: 1.25rem; }
.admin-alerts-bar {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-bottom: 1.25rem;
}
.admin-alert {
    display: inline-flex;
    align-items: center;
    padding: .45rem .85rem;
    border-radius: var(--radius);
    font-size: .82rem;
    font-weight: 600;
    text-decoration: none;
    border: 1px solid transparent;
}
.admin-alert:hover { text-decoration: none; }
.admin-alert-warn { background: rgba(245,158,11,.12); border-color: rgba(245,158,11,.35); color: #92400e; }
.admin-alert-error { background: rgba(239,68,68,.1); border-color: rgba(239,68,68,.35); color: #b91c1c; }
.admin-alert-info { background: var(--color-surface-subtle); border-color: var(--color-border); border-left: 3px solid var(--color-accent); color: var(--color-text); }

/* ── Admin UI polish ── */
.has-admin-panel .admin-panel-main {
    display: flex;
    flex-direction: column;
    gap: .85rem;
}
.has-admin-panel .admin-panel-main > .section.panel-card,
.has-admin-panel .admin-panel-main > section.panel-card {
    margin-bottom: 0;
}
.has-admin-panel .admin-stats {
    grid-template-columns: repeat(auto-fill, minmax(148px, 1fr));
    gap: .85rem;
    margin: 0;
}
.has-admin-panel .admin-stats .stat-card {
    padding: 1.1rem .95rem;
    text-align: left;
}
.has-admin-panel .admin-stats .stat-value {
    font-family: var(--font-display);
    font-size: clamp(1.45rem, 2.5vw, 1.75rem);
    line-height: 1.1;
    margin-bottom: .2rem;
}
.has-admin-panel .admin-stats .stat-label {
    font-size: .78rem;
    line-height: 1.35;
}
.has-admin-panel .admin-status-row {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: 1rem 1.25rem;
    box-shadow: var(--shadow);
    margin-bottom: 0;
}
.has-admin-panel .admin-alerts-bar {
    padding: .65rem .85rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
    margin-bottom: 0;
}
.has-admin-panel .admin-alert {
    border-radius: 999px;
    padding: .4rem .9rem;
}
.admin-page-header .breadcrumbs,
.admin-page-header .page-header-crumb {
    font-size: .82rem;
    margin-bottom: .55rem;
}
.admin-page-header .crumb-sep {
    margin: 0 .4rem;
    opacity: .4;
}
.admin-page-header .breadcrumbs a {
    color: var(--color-muted);
    font-weight: 500;
}
.admin-page-header .breadcrumbs span:last-child,
.admin-page-header .breadcrumbs span:not(.crumb-sep) {
    color: var(--color-text);
    font-weight: 600;
}
.has-admin-panel .section.panel-card {
    padding: 0;
    overflow: hidden;
}
.has-admin-panel .section.panel-card > .section-header,
.has-admin-panel .section.panel-card > .cart-table-wrap,
.has-admin-panel .section.panel-card > .table-wrap,
.has-admin-panel .section.panel-card > .admin-filter-bar,
.has-admin-panel .section.panel-card > form,
.has-admin-panel .section.panel-card > .admin-activity-list,
.has-admin-panel .section.panel-card > .quick-actions,
.has-admin-panel .section.panel-card > p,
.has-admin-panel .section.panel-card > .info-dl,
.has-admin-panel .section.panel-card > .alert {
    padding-left: 1.35rem;
    padding-right: 1.35rem;
}
.has-admin-panel .section.panel-card > .section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin: 0;
    padding: 1rem 1.35rem;
    background: linear-gradient(180deg, var(--color-surface-subtle) 0%, var(--color-surface) 100%);
    border-bottom: 1px solid var(--color-border);
}
.has-admin-panel .section.panel-card > .section-header h2 {
    margin: 0;
    font-family: var(--font-display);
    font-size: 1.02rem;
    font-weight: 700;
    color: var(--color-text);
}
.has-admin-panel .section.panel-card > .cart-table-wrap,
.has-admin-panel .section.panel-card > .table-wrap {
    padding: 0 1.35rem 1.25rem;
    border: 0;
    box-shadow: none;
    margin-top: 0;
}
.has-admin-panel .section.panel-card > .cart-table-wrap:first-child,
.has-admin-panel .section.panel-card > .table-wrap:first-child {
    padding-top: 1.25rem;
}
.has-admin-panel .cart-table-wrap,
.has-admin-panel .table-wrap {
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    overflow: auto;
    background: var(--color-surface);
}
.has-admin-panel .section.panel-card .cart-table-wrap,
.has-admin-panel .section.panel-card .table-wrap {
    margin: 0 1.35rem 1.25rem;
    padding: 0;
    width: auto;
}
.has-admin-panel .table {
    border-radius: 0;
    margin: 0;
}
.has-admin-panel .table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--color-surface-subtle);
    border-bottom: 2px solid var(--color-border);
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--color-muted);
    font-weight: 700;
    white-space: nowrap;
}
.has-admin-panel .table tbody tr {
    transition: background .12s ease;
}
.has-admin-panel .table tbody tr:hover td {
    background: rgba(47, 181, 210, .05);
}
.has-admin-panel .table tbody tr:last-child td {
    border-bottom: 0;
}
.has-admin-panel .table td .btn-sm {
    padding: .3rem .6rem;
    font-size: .8rem;
}
.has-admin-panel .filter-tabs {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
    padding: .4rem;
    margin-bottom: 0;
}
.has-admin-panel .filter-tab.is-active {
    box-shadow: inset 0 -3px 0 var(--color-accent);
}
.has-admin-panel .filter-tab-action {
    background: rgba(47, 181, 210, .08);
    border-color: rgba(47, 181, 210, .25);
    color: var(--color-text);
}
.has-admin-panel .filter-tab-action:hover {
    background: rgba(47, 181, 210, .15);
}
.has-admin-panel .admin-filter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    align-items: center;
    padding: 1rem 1.15rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
    margin-bottom: 0;
}
.has-admin-panel .admin-filter-bar input[type="search"],
.has-admin-panel .admin-filter-bar input[type="text"],
.has-admin-panel .admin-filter-bar input[type="email"],
.has-admin-panel .admin-filter-bar input[type="number"],
.has-admin-panel .admin-filter-bar select {
    flex: 1;
    min-width: 160px;
    padding: .55rem .8rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    font: inherit;
    font-size: .88rem;
    background: var(--color-bg);
    transition: border-color .15s, box-shadow .15s;
}
.has-admin-panel .admin-filter-bar input:focus,
.has-admin-panel .admin-filter-bar select:focus {
    outline: none;
    border-color: var(--color-accent);
    box-shadow: 0 0 0 3px var(--color-accent-ring);
    background: #fff;
}
.has-admin-panel .section.panel-card > .admin-filter-bar {
    margin: 0 1.35rem 1.25rem;
    width: auto;
}
.has-admin-panel .form-card {
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
}
.has-admin-panel .form-card label {
    display: block;
    font-size: .88rem;
    font-weight: 600;
    color: var(--color-text);
    margin-bottom: .85rem;
}
.has-admin-panel .form-card input:not([type="checkbox"]):not([type="radio"]),
.has-admin-panel .form-card select,
.has-admin-panel .form-card textarea {
    display: block;
    width: 100%;
    margin-top: .35rem;
    padding: .55rem .75rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    font: inherit;
    background: var(--color-bg);
    transition: border-color .15s, box-shadow .15s;
}
.has-admin-panel .form-card input:focus,
.has-admin-panel .form-card select:focus,
.has-admin-panel .form-card textarea:focus {
    outline: none;
    border-color: var(--color-accent);
    box-shadow: 0 0 0 3px var(--color-accent-ring);
    background: #fff;
}
.has-admin-panel .quick-action-card {
    padding: 1.1rem .65rem;
    text-align: center;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    min-height: 100px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .45rem;
}
.has-admin-panel .quick-action-icon {
    width: 2.6rem;
    height: 2.6rem;
    border-radius: 50%;
    background: rgba(47, 181, 210, .12);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    line-height: 1;
    flex-shrink: 0;
}
.has-admin-panel .quick-action-label {
    font-size: .78rem;
    font-weight: 700;
    line-height: 1.25;
    color: var(--color-text);
}
.has-admin-panel .admin-module-grid {
    grid-template-columns: repeat(auto-fill, minmax(128px, 1fr));
    gap: .65rem;
    padding: 1.25rem 1.35rem 1.35rem;
}
.has-admin-panel .section.panel-card > .quick-actions.admin-module-grid {
    padding: 1.25rem 1.35rem 1.35rem;
}
.has-admin-panel .badge-synced {
    background: rgba(47, 181, 210, .14);
    color: #0e7490;
    border: 1px solid rgba(47, 181, 210, .25);
}
.has-admin-panel .badge-pending {
    background: rgba(245, 158, 11, .14);
    color: #92400e;
    border: 1px solid rgba(245, 158, 11, .28);
}
.has-admin-panel .badge-error {
    background: rgba(239, 68, 68, .1);
    color: #b91c1c;
    border: 1px solid rgba(239, 68, 68, .25);
}
.has-admin-panel .alert {
    border-radius: var(--radius-lg);
    border-left-width: 4px;
    margin-bottom: 0;
}
.has-admin-panel .alert-success { border-left-color: var(--color-accent); }
.has-admin-panel .alert-error { border-left-color: #ef4444; }
.admin-sidebar {
    max-height: calc(100vh - var(--header-offset, 80px) - 1.5rem);
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: rgba(0, 0, 0, .15) transparent;
}
body.admin-sidebar-collapsed .admin-sidebar {
    overflow: hidden;
    max-height: none;
}
.admin-sidebar::-webkit-scrollbar { width: 5px; }
.admin-sidebar::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 0, .12);
    border-radius: 999px;
}
.admin-nav-toggle {
    border-color: rgba(255, 255, 255, .25) !important;
    color: #fff !important;
    background: rgba(255, 255, 255, .08) !important;
}
.admin-nav-toggle:hover {
    background: rgba(255, 255, 255, .15) !important;
}
.has-admin-panel .admin-panel-main > .cart-table-wrap,
.has-admin-panel .admin-panel-main > .table-wrap {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
    overflow: auto;
    background: var(--color-surface);
}
.has-admin-panel .admin-actions-panel {
    padding: 1.35rem;
}
.has-admin-panel .admin-actions-panel > h2 {
    margin: 0 0 .75rem;
    font-family: var(--font-display);
    font-size: 1.05rem;
}
.has-admin-panel .empty-state,
.has-admin-panel .empty-state-sm {
    padding: 2rem 1.25rem;
    text-align: center;
    background: var(--color-surface);
    border: 1px dashed var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
}
.has-admin-panel .row-thumb {
    border-radius: var(--radius);
    box-shadow: 0 1px 4px rgba(0, 0, 0, .08);
}
.has-admin-panel code {
    font-size: .82rem;
    background: var(--color-surface-subtle);
    padding: .15rem .4rem;
    border-radius: 4px;
    border: 1px solid var(--color-border);
}

/* ── Admin UI polish v3 ── */
.admin-page-header {
    position: sticky;
    top: calc(var(--header-offset, 72px) + .5rem);
    z-index: 60;
    background: linear-gradient(135deg, #fff 0%, var(--color-surface-subtle) 100%);
    border-top: 3px solid var(--color-accent);
    border-left: 1px solid var(--color-border);
}
.admin-page-header h1 {
    font-family: var(--font-display);
    letter-spacing: -.02em;
}
.admin-page-header .page-header-sub {
    color: var(--color-muted);
    font-size: .92rem;
    max-width: 640px;
}
.has-admin-panel .admin-sidebar-section.panel-card,
.has-admin-panel .admin-sidebar-exports.panel-card {
    background: linear-gradient(180deg, #1e1e1e 0%, #141414 100%);
    border: 1px solid rgba(255, 255, 255, .08);
    box-shadow: 0 8px 24px rgba(0, 0, 0, .18);
}
.has-admin-panel .admin-sidebar-section-label {
    color: rgba(255, 255, 255, .42);
}
.has-admin-panel .admin-sidebar-link {
    color: rgba(255, 255, 255, .82);
}
.has-admin-panel .admin-sidebar-link:hover {
    background: rgba(255, 255, 255, .07);
    border-color: rgba(255, 255, 255, .1);
    color: #fff;
}
.has-admin-panel .admin-sidebar-link.is-active {
    background: rgba(47, 181, 210, .16);
    border-color: rgba(47, 181, 210, .35);
    color: #fff;
}
.has-admin-panel .admin-export-links .btn-sm {
    background: rgba(255, 255, 255, .07);
    border-color: rgba(255, 255, 255, .14);
    color: rgba(255, 255, 255, .88);
    font-size: .72rem;
}
.has-admin-panel .admin-export-links .btn-sm:hover {
    background: rgba(47, 181, 210, .2);
    border-color: rgba(47, 181, 210, .4);
    color: #fff;
}
.has-admin-panel .admin-detail-links,
.has-admin-panel .actions-inline.admin-detail-links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    padding: .85rem 1.1rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
    margin: 0;
}
.has-admin-panel .order-meta-grid {
    gap: .85rem;
    margin: 0;
}
.has-admin-panel .meta-card {
    border-radius: var(--radius-lg);
    padding: 1rem 1.1rem;
    transition: transform .15s, box-shadow .15s;
}
.has-admin-panel .meta-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-lg);
}
.has-admin-panel .meta-card-highlight {
    background: linear-gradient(135deg, rgba(47, 181, 210, .08) 0%, #fff 100%);
    border-color: rgba(47, 181, 210, .35);
}
.has-admin-panel .meta-label {
    font-weight: 700;
    letter-spacing: .06em;
}
.has-admin-panel .pagination {
    margin: 0;
    padding: .85rem 1rem;
    background: var(--color-surface-subtle);
    border-top: 1px solid var(--color-border);
    border-radius: 0 0 var(--radius) var(--radius);
    justify-content: center;
    flex-wrap: wrap;
}
.has-admin-panel .pagination a {
    min-width: 2.25rem;
    text-align: center;
    font-weight: 600;
    font-size: .85rem;
    transition: background .15s, border-color .15s, color .15s;
}
.has-admin-panel .pagination a:hover {
    border-color: var(--color-accent);
    text-decoration: none;
    color: var(--color-text);
}
.has-admin-panel .pagination a.active {
    background: var(--color-ink);
    border-color: var(--color-ink);
    box-shadow: inset 0 -2px 0 var(--color-accent);
}
.has-admin-panel .btn {
    font-weight: 600;
    transition: transform .12s, box-shadow .12s, background .15s, border-color .15s, color .15s;
}
.has-admin-panel .btn:active:not(:disabled) {
    transform: scale(.98);
}
.has-admin-panel .btn-primary {
    box-shadow: 0 2px 8px rgba(47, 181, 210, .35);
}
.has-admin-panel .btn-primary:hover {
    box-shadow: 0 4px 14px rgba(47, 181, 210, .4);
}
.has-admin-panel .btn-sm {
    border-radius: var(--radius);
}
.has-admin-panel .admin-readonly-banner {
    border-left: 4px solid #ef4444;
    background: linear-gradient(90deg, rgba(239, 68, 68, .08) 0%, rgba(239, 68, 68, .02) 100%);
    font-weight: 600;
}
.has-admin-panel .section.panel-card > .info-dl {
    padding: 1.25rem 1.35rem 1.35rem;
    margin: 0;
}
.has-admin-panel .section.panel-card > .info-dl dt {
    color: var(--color-muted);
}
.has-admin-panel .section.panel-card > .info-dl dd {
    font-weight: 500;
}
.has-admin-panel .section.panel-card > p,
.has-admin-panel .section.panel-card > .muted {
    padding-top: 1rem;
    padding-bottom: 0;
    margin: 0;
}
.has-admin-panel .section.panel-card > p:last-child,
.has-admin-panel .section.panel-card > .muted:last-child {
    padding-bottom: 1.25rem;
}
.has-admin-panel .admin-activity-item {
    padding: 1rem 0;
    transition: background .12s;
}
.has-admin-panel .admin-activity-item:hover {
    background: rgba(47, 181, 210, .04);
    margin: 0 -1rem;
    padding-left: 1rem;
    padding-right: 1rem;
    border-radius: var(--radius);
}
.has-admin-panel .admin-product-preview {
    display: grid;
    gap: 1.25rem;
    padding: 1.25rem 1.35rem;
}
.has-admin-panel .admin-product-preview img {
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow);
}
.has-admin-panel .order-info-box {
    border-radius: var(--radius-lg);
    border-left: 3px solid var(--color-accent);
}
.has-admin-panel .order-actions-bar {
    background: var(--color-surface-subtle);
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
}
.admin-footer {
    margin-top: auto;
    padding: 1rem 0 1.35rem;
    border-top: 1px solid var(--color-border);
    background: rgba(255, 255, 255, .7);
    backdrop-filter: blur(8px);
}
.admin-body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}
.admin-body .admin-main {
    flex: 1;
}
.admin-footer-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .65rem 1.25rem;
    font-size: .8rem;
    color: var(--color-muted);
}
.admin-footer-brand {
    font-weight: 700;
    color: var(--color-text);
    font-family: var(--font-display);
    font-size: .82rem;
}
.admin-footer-meta { opacity: .85; }
.admin-footer-link {
    color: var(--color-accent);
    font-weight: 600;
    text-decoration: none;
}
.admin-footer-link:hover {
    color: var(--color-text);
    text-decoration: none;
}
.has-admin-panel .stat-card-link::after {
    content: "→";
    position: absolute;
    top: .85rem;
    right: .85rem;
    font-size: .85rem;
    opacity: 0;
    transform: translateX(-4px);
    transition: opacity .15s, transform .15s;
    color: var(--color-accent);
}
.has-admin-panel .stat-card-link {
    position: relative;
}
.has-admin-panel .stat-card-link:hover::after {
    opacity: 1;
    transform: translateX(0);
}
.has-admin-panel .toolbar {
    padding: .75rem 1rem;
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    margin-bottom: 0;
}
.has-admin-panel .translation-layout .panel-card {
    padding: 1.25rem;
}
@media (max-width: 768px) {
    .admin-page-header {
        position: static;
    }
    .admin-footer-inner {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* ── Admin UI polish v4 ── */
.has-admin-panel .admin-panel-main {
    animation: adminContentIn .4s ease;
}
@keyframes adminContentIn {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: none; }
}
.has-admin-panel .panel-card > h2:first-child {
    margin: 0;
    padding: 1rem 1.35rem;
    font-family: var(--font-display);
    font-size: 1.02rem;
    font-weight: 700;
    background: linear-gradient(180deg, var(--color-surface-subtle) 0%, var(--color-surface) 100%);
    border-bottom: 1px solid var(--color-border);
}
.has-admin-panel .panel-card.admin-actions-panel,
.has-admin-panel .panel-card.admin-modules-overview {
    padding: 0;
    overflow: hidden;
}
.has-admin-panel .admin-actions-panel > p,
.has-admin-panel .admin-modules-overview > p {
    padding: 1rem 1.35rem 0;
    margin: 0;
}
.has-admin-panel .admin-actions-panel > p:last-of-type,
.has-admin-panel .admin-actions-panel > .muted {
    padding: 0 1.35rem 1.25rem;
}
.has-admin-panel .admin-actions-form {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: .85rem;
    padding: 1rem 1.35rem 1.25rem;
    margin: 0;
}
.has-admin-panel .admin-actions-form form {
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 1.15rem;
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    transition: border-color .15s, box-shadow .15s, transform .15s;
}
.has-admin-panel .admin-actions-form form:hover {
    border-color: rgba(47, 181, 210, .45);
    box-shadow: var(--shadow);
    transform: translateY(-2px);
}
.has-admin-panel .admin-actions-form .btn-lg {
    width: 100%;
    justify-content: center;
    text-align: center;
}
.has-admin-panel .panel-card.admin-modules-overview > .quick-actions {
    padding: 1.15rem 1.35rem 1.35rem;
    margin: 0;
}
.has-admin-panel .admin-help-grid {
    gap: 1rem;
    margin: 0;
}
.has-admin-panel .admin-help-grid .panel-card {
    padding: 0;
    overflow: hidden;
    height: 100%;
    margin: 0;
    transition: transform .15s, box-shadow .15s;
}
.has-admin-panel .admin-help-grid .panel-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-lg);
}
.has-admin-panel .admin-help-grid .panel-card > h2 {
    margin: 0;
    padding: .9rem 1.15rem;
    font-size: .92rem;
    font-family: var(--font-display);
    background: linear-gradient(180deg, var(--color-surface-subtle) 0%, var(--color-surface) 100%);
    border-bottom: 1px solid var(--color-border);
}
.has-admin-panel .admin-help-grid .info-dl {
    padding: 1rem 1.15rem 1.15rem;
    margin: 0;
}
.has-admin-panel .admin-help-grid .info-dl dt {
    margin-top: .65rem;
}
.has-admin-panel .admin-help-grid .info-dl dt:first-child {
    margin-top: 0;
}
.has-admin-panel .admin-help-grid .info-dl dt a {
    color: var(--color-text);
    font-weight: 700;
    text-decoration: none;
    transition: color .15s;
}
.has-admin-panel .admin-help-grid .info-dl dt a:hover {
    color: var(--color-accent);
}
.has-admin-panel .admin-help-grid .info-dl dd {
    color: var(--color-muted);
    font-size: .88rem;
    line-height: 1.45;
}
.has-admin-panel .admin-help-note {
    padding: 1.15rem 1.35rem;
    background: rgba(47, 181, 210, .06);
    border: 1px solid rgba(47, 181, 210, .2);
    border-radius: var(--radius-lg);
}
.has-admin-panel .badge {
    font-weight: 700;
    letter-spacing: .02em;
    border-radius: 999px;
    padding: .25rem .6rem;
    font-size: .72rem;
    text-transform: uppercase;
}
.has-admin-panel .badge-synced,
.has-admin-panel .badge-success {
    background: rgba(47, 181, 210, .14);
    color: #0e7490;
    border: 1px solid rgba(47, 181, 210, .28);
}
.has-admin-panel .badge-pending {
    background: rgba(245, 158, 11, .14);
    color: #92400e;
    border: 1px solid rgba(245, 158, 11, .28);
}
.has-admin-panel .badge-error {
    background: rgba(239, 68, 68, .12);
    color: #b91c1c;
    border: 1px solid rgba(239, 68, 68, .25);
}
.has-admin-panel .badge-cancelled {
    background: rgba(0, 0, 0, .06);
    color: var(--color-muted);
    border: 1px solid var(--color-border);
}
.has-admin-panel .badge-lg {
    font-size: .78rem;
    padding: .35rem .75rem;
}
.has-admin-panel .message-bubble {
    border-radius: var(--radius-lg);
    border-left-width: 4px;
    box-shadow: var(--shadow);
    margin-bottom: 1rem;
}
.has-admin-panel .message-bubble-inbound {
    background: #fff;
    border-left-color: var(--color-accent);
}
.has-admin-panel .message-bubble-outbound {
    background: var(--color-surface-subtle);
    border-left-color: var(--color-ink);
}
.has-admin-panel .admin-search-results {
    gap: .85rem;
}
.has-admin-panel .admin-search-results .panel-card {
    padding: 1rem 1.15rem;
    margin: 0;
    transition: border-color .15s, box-shadow .15s;
}
.has-admin-panel .admin-search-results .panel-card:hover {
    border-color: rgba(47, 181, 210, .35);
    box-shadow: var(--shadow-lg);
}
.has-admin-panel .admin-search-list a {
    display: block;
    padding: .55rem .65rem;
    border-radius: var(--radius);
    font-weight: 600;
    transition: background .12s, color .12s;
}
.has-admin-panel .admin-search-list a:hover {
    background: rgba(47, 181, 210, .08);
    color: var(--color-accent);
    text-decoration: none;
}
.has-admin-panel .admin-search-form {
    padding: 1rem 1.15rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
    margin: 0;
}
.has-admin-panel .inline-form {
    gap: .45rem;
}
.has-admin-panel .inline-form .btn-sm {
    white-space: nowrap;
}
.has-admin-panel .form-actions-inline,
.has-admin-panel .admin-bulk-form {
    padding: 1rem 1.35rem;
    background: var(--color-surface-subtle);
    border-top: 1px solid var(--color-border);
    margin: 0;
}
.has-admin-panel .section.panel-card > form:not(.inline-form) {
    padding: 1.25rem 1.35rem 1.35rem;
}
.has-admin-panel .table input[type="checkbox"] {
    width: 1rem;
    height: 1rem;
    accent-color: var(--color-accent);
    cursor: pointer;
}
.has-admin-panel .admin-status-card {
    border-radius: var(--radius-lg);
    font-size: .92rem;
}
.has-admin-panel .admin-status-card strong {
    font-family: var(--font-display);
}
.has-admin-panel .admin-role-badge {
    background: rgba(47, 181, 210, .2);
    color: #fff;
    border: 1px solid rgba(47, 181, 210, .35);
}
.has-admin-panel .cart-table-wrap + .pagination,
.has-admin-panel .table-wrap + .pagination {
    margin-top: 0;
    border: 1px solid var(--color-border);
    border-top: 0;
    border-radius: 0 0 var(--radius-lg) var(--radius-lg);
    overflow: hidden;
}
.has-admin-panel .admin-panel-main > .cart-table-wrap:last-child,
.has-admin-panel .admin-panel-main > .table-wrap:last-child {
    border-radius: var(--radius-lg);
}
@media (prefers-reduced-motion: reduce) {
    .has-admin-panel .admin-panel-main {
        animation: none;
    }
}

/* ── Admin UI polish v5 ── */
.admin-sidebar-profile {
    position: relative;
}
.admin-sidebar-collapse {
    position: static;
    top: auto;
    right: auto;
    flex-shrink: 0;
}
.admin-sidebar-top-actions .admin-sidebar-collapse {
    position: static;
    margin: 0;
    order: 0;
}
.admin-sidebar-collapse:hover {
    background: rgba(47, 181, 210, .35);
    border-color: var(--color-accent);
}
body.admin-sidebar-collapsed .admin-panel {
    grid-template-columns: var(--admin-sidebar-collapsed-width, 60px) minmax(0, 1fr);
    gap: 0;
}
body.admin-sidebar-collapsed .admin-sidebar-text,
body.admin-sidebar-collapsed .admin-sidebar-section-label,
body.admin-sidebar-collapsed .admin-sidebar-identity,
body.admin-sidebar-collapsed .admin-sidebar-meta,
body.admin-sidebar-collapsed .admin-sidebar-exports,
body.admin-sidebar-collapsed .admin-sidebar-badge,
body.admin-sidebar-collapsed .admin-role-badge {
    display: none !important;
}
body.admin-sidebar-collapsed .admin-sidebar-link {
    justify-content: center;
    padding: 0;
    border: none;
    box-shadow: none;
}
body.admin-sidebar-collapsed .admin-sidebar-link:hover {
    transform: none;
}
body.admin-sidebar-collapsed .admin-sidebar-link.is-active {
    box-shadow: none;
}
body.admin-sidebar-collapsed .admin-sidebar-icon {
    width: 1.85rem;
    height: 1.85rem;
}
body.admin-sidebar-collapsed .admin-sidebar-section.panel-card {
    padding: .45rem .35rem;
}
body.admin-sidebar-collapsed .admin-sidebar-profile {
    padding: .75rem .45rem;
    display: flex;
    justify-content: center;
}
body.admin-sidebar-collapsed .admin-sidebar-avatar {
    margin: 0;
}
body.admin-sidebar-collapsed .admin-sidebar-collapse {
    position: static;
    margin: 0;
    order: 0;
}
.has-admin-panel .account-grid {
    gap: 1rem;
    align-items: stretch;
    margin: 0;
}
.has-admin-panel .account-grid .panel-card {
    padding: 0;
    overflow: hidden;
    height: 100%;
    margin: 0;
}
.has-admin-panel .account-grid .panel-card > h2 {
    margin: 0;
}
.has-admin-panel .account-grid .panel-card > p.muted {
    padding: 1rem 1.35rem 1.25rem;
    margin: 0;
}
.has-admin-panel .account-grid .cart-table-wrap {
    margin: 0 1.35rem 1.25rem;
    border-radius: var(--radius);
}
.has-admin-panel .row-unread td {
    background: rgba(47, 181, 210, .07);
}
.has-admin-panel .row-unread td:first-child {
    box-shadow: inset 3px 0 0 var(--color-accent);
}
.has-admin-panel .row-unread strong {
    color: var(--color-text);
}
.has-admin-panel .row-rank td:first-child {
    position: relative;
}
.has-admin-panel .row-rank-1 td:first-child::before,
.has-admin-panel .row-rank-2 td:first-child::before,
.has-admin-panel .row-rank-3 td:first-child::before {
    content: "";
    display: inline-block;
    width: .45rem;
    height: .45rem;
    border-radius: 50%;
    margin-right: .45rem;
    vertical-align: middle;
}
.has-admin-panel .row-rank-1 td:first-child::before { background: #f59e0b; box-shadow: 0 0 0 2px rgba(245, 158, 11, .25); }
.has-admin-panel .row-rank-2 td:first-child::before { background: #94a3b8; }
.has-admin-panel .row-rank-3 td:first-child::before { background: #cd7f32; }
.has-admin-panel .row-rank td {
    background: rgba(245, 158, 11, .04);
}
.has-admin-panel .filter-tab .badge {
    margin-left: .25rem;
    font-size: .65rem;
    padding: .1rem .4rem;
}
.has-admin-panel .admin-filter-bar label {
    display: flex;
    flex-direction: column;
    gap: .3rem;
    font-size: .78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--color-muted);
    min-width: 140px;
}
.has-admin-panel .admin-filter-bar label input[type="date"] {
    font: inherit;
    font-size: .88rem;
    font-weight: 500;
    text-transform: none;
    letter-spacing: normal;
    color: var(--color-text);
    padding: .55rem .75rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: var(--color-bg);
}
.has-admin-panel .admin-filter-bar label input[type="date"]:focus {
    outline: none;
    border-color: var(--color-accent);
    box-shadow: 0 0 0 3px var(--color-accent-ring);
}
.has-admin-panel .btn-ghost {
    color: var(--color-muted);
    border-color: transparent;
    background: transparent;
}
.has-admin-panel .btn-ghost:hover {
    background: rgba(47, 181, 210, .1);
    color: var(--color-accent);
    border-color: rgba(47, 181, 210, .25);
}
.has-admin-panel .section.panel-card > h2 + .cart-table-wrap,
.has-admin-panel .section.panel-card > h2 + p + .cart-table-wrap {
    margin-top: 0;
}
.has-admin-panel .section.panel-card > h2:first-child + .cart-table-wrap {
    margin: 0 1.35rem 1.25rem;
}
.has-admin-panel .panel-card.section > h2:first-child {
    padding: 1rem 1.35rem;
    margin: 0;
    background: linear-gradient(180deg, var(--color-surface-subtle) 0%, var(--color-surface) 100%);
    border-bottom: 1px solid var(--color-border);
}
@media (max-width: 768px) {
    body.admin-sidebar-collapsed .admin-panel {
        grid-template-columns: 1fr;
    }
    .admin-sidebar-collapse {
        display: none;
    }
}

/* ── Admin UI polish v6 ── */
.admin-scroll-top {
    position: fixed;
    right: 1.25rem;
    bottom: 1.25rem;
    z-index: 300;
    width: 2.75rem;
    height: 2.75rem;
    border: 0;
    border-radius: 999px;
    background: var(--color-ink);
    color: #fff;
    font-size: 1.15rem;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .2);
    transition: transform .15s, background .15s, opacity .15s;
    opacity: .92;
}
.admin-scroll-top:hover {
    background: var(--color-accent);
    color: var(--color-ink);
    transform: translateY(-3px);
    opacity: 1;
}
.admin-scroll-top[hidden] {
    display: none !important;
}
.has-admin-panel .admin-filter-chips {
    padding: .45rem;
    gap: .35rem;
    margin: 0;
}
.has-admin-panel .admin-filter-chips .btn-sm {
    border-radius: 999px;
    font-size: .8rem;
    padding: .45rem .85rem;
    border-color: transparent;
    background: transparent;
    color: var(--color-text);
}
.has-admin-panel .admin-filter-chips .btn-sm:hover {
    background: var(--color-surface-subtle);
    border-color: var(--color-border);
}
.has-admin-panel .admin-filter-chips .btn-sm.btn-primary {
    background: var(--color-ink);
    color: #fff;
    border-color: var(--color-ink);
    box-shadow: inset 0 -2px 0 var(--color-accent);
}
.has-admin-panel .admin-activity-list {
    padding: .5rem 1.35rem 1.25rem;
    margin: 0;
    list-style: none;
}
.has-admin-panel .admin-activity-item {
    position: relative;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 0 1rem 1.85rem;
    border-bottom: 1px solid var(--color-border);
}
.has-admin-panel .admin-activity-item:hover {
    background: rgba(47, 181, 210, .04);
    margin: 0;
    padding-left: 1.85rem;
    border-radius: var(--radius);
}
.has-admin-panel .admin-activity-item::before {
    content: "";
    position: absolute;
    left: .2rem;
    top: 1.25rem;
    width: .6rem;
    height: .6rem;
    border-radius: 50%;
    background: var(--color-accent);
    box-shadow: 0 0 0 3px rgba(47, 181, 210, .18);
    z-index: 1;
}
.has-admin-panel .admin-activity-item::after {
    content: "";
    position: absolute;
    left: .47rem;
    top: 1.95rem;
    bottom: -.25rem;
    width: 2px;
    background: var(--color-border);
}
.has-admin-panel .admin-activity-item:last-child {
    border-bottom: 0;
}
.has-admin-panel .admin-activity-item:last-child::after {
    display: none;
}
.has-admin-panel .admin-activity-error::before {
    background: #ef4444;
    box-shadow: 0 0 0 3px rgba(239, 68, 68, .18);
}
.has-admin-panel .admin-activity-pending::before {
    background: #f59e0b;
    box-shadow: 0 0 0 3px rgba(245, 158, 11, .18);
}
.has-admin-panel .admin-activity-sync::before {
    background: #6366f1;
    box-shadow: 0 0 0 3px rgba(99, 102, 241, .18);
}
.has-admin-panel .admin-activity-customer::before {
    background: #10b981;
    box-shadow: 0 0 0 3px rgba(16, 185, 129, .18);
}
.has-admin-panel .admin-activity-label {
    color: var(--color-text);
    font-weight: 700;
    text-decoration: none;
}
.has-admin-panel .admin-activity-label:hover {
    color: var(--color-accent);
}
.has-admin-panel .admin-activity-time {
    font-size: .78rem;
    padding-top: .15rem;
}
.has-admin-panel .admin-bar-cell {
    min-width: 160px;
    font-weight: 600;
}
.has-admin-panel .admin-bar-track {
    height: 7px;
    background: var(--color-surface-subtle);
    border-radius: 999px;
    overflow: hidden;
    margin-bottom: .4rem;
    border: 1px solid var(--color-border);
}
.has-admin-panel .admin-bar-fill {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, var(--color-accent) 0%, #1a9fb8 100%);
    border-radius: 999px;
    transition: width .4s ease;
}
.has-admin-panel .admin-search-results {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: .85rem;
    align-items: start;
}
.has-admin-panel .admin-search-results .section.panel-card {
    height: 100%;
}
.has-admin-panel .admin-search-form {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    align-items: stretch;
}
.has-admin-panel .admin-search-form input[type="search"] {
    flex: 1;
    min-width: 220px;
    padding: .65rem .85rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    font: inherit;
    background: var(--color-bg);
}
.has-admin-panel .admin-search-form input[type="search"]:focus {
    outline: none;
    border-color: var(--color-accent);
    box-shadow: 0 0 0 3px var(--color-accent-ring);
    background: #fff;
}
.has-admin-panel .product-detail-grid {
    gap: 1.25rem;
    padding: 1.25rem 1.35rem;
}
.has-admin-panel .product-detail-grid img.product-image,
.has-admin-panel .admin-product-preview img.product-image {
    max-width: 100%;
    width: min(240px, 100%);
    height: auto;
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow-lg);
    background: #fff;
}
.has-admin-panel .product-placeholder {
    border-radius: var(--radius-lg);
    border: 1px dashed var(--color-border);
}
.has-admin-panel .admin-stock-form {
    margin-top: .5rem;
}
.has-admin-panel .section.panel-card > .admin-activity-list {
    padding-left: 0;
    padding-right: 0;
}
.has-admin-panel .section.panel-card > p.muted:first-child {
    padding: 1.25rem 1.35rem;
    margin: 0;
}

.admin-filter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    align-items: center;
    margin-bottom: 1rem;
    max-width: 100%;
}
.admin-filter-bar input[type="search"],
.admin-filter-bar select {
    flex: 1;
    min-width: 160px;
}
.admin-bulk-form { margin: 0; padding-top: .75rem; border-top: 1px dashed var(--color-border); }
.admin-form-spaced { margin-top: 1rem; }
.admin-detail-links { margin-bottom: 1.25rem; }
.form-actions-inline { margin: .75rem 0 0; }
.input-narrow { width: 90px; }
.meta-sub { margin: .25rem 0 0; font-size: .85rem; font-weight: 400; }

/* ── Product detail enhancements (legacy aliases) ── */

/* ── Admin login ── */
.admin-login-body {
    margin: 0;
    padding: 0;
    min-height: 100vh;
    min-height: 100dvh;
    background: #0a0a0a;
    overflow-x: hidden;
}
.admin-login-shell {
    width: 100%;
    max-width: none;
    min-height: 100vh;
    min-height: 100dvh;
    padding: 0;
    margin: 0;
}
.admin-login-layout,
.admin-auth-layout.admin-auth-layout-login {
    width: 100%;
    max-width: none;
    margin: 0;
    min-height: 100vh;
    min-height: 100dvh;
    border-radius: 0;
    box-shadow: none;
    overflow: hidden;
    background: var(--color-surface);
}
.admin-login-visual {
    min-height: clamp(240px, 34vh, 360px);
}
.admin-login-visual > img {
    object-fit: cover;
    object-position: center 25%;
}
.admin-login-visual-overlay {
    background:
        linear-gradient(135deg, rgba(10, 10, 10, .78) 0%, rgba(13, 37, 48, .92) 55%, rgba(10, 10, 10, .88) 100%);
    justify-content: flex-end;
    padding: clamp(1.5rem, 4vw, 3rem);
}
.admin-login-benefits {
    margin-top: 1.25rem;
    font-size: .95rem;
}
.admin-login-benefits li {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    margin-bottom: .55rem;
}
.admin-login-trust {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem .85rem;
    margin-top: 1.35rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(255, 255, 255, .16);
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    opacity: .82;
}
.admin-login-panel {
    position: relative;
    padding: clamp(1.75rem, 4vw, 3rem);
    background: var(--color-surface);
    justify-content: center;
    align-items: stretch;
}
.admin-login-panel::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--color-accent) 0%, #1a6274 100%);
}
.admin-login-panel-inner {
    width: 100%;
    max-width: 420px;
    margin: 0 auto;
}
.admin-login-head h1 {
    margin: 0 0 .45rem;
    font-size: clamp(1.55rem, 2.5vw, 2rem);
    font-family: var(--font-display);
    line-height: 1.15;
}
.admin-login-head .auth-form-lead {
    margin: 0 0 1.35rem;
    font-size: .95rem;
    line-height: 1.5;
}
.admin-login-form {
    box-shadow: none;
    border: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
    border-radius: var(--radius-lg);
    padding: 1.35rem;
}
.admin-login-badge { margin-bottom: .85rem; }
.admin-login-footer {
    margin-top: 1.35rem;
    text-align: center;
}
.admin-login-footer a {
    font-weight: 600;
    text-decoration: none;
}
.admin-login-footer a:hover {
    text-decoration: underline;
}
.admin-login-security {
    margin: .85rem 0 0;
    font-size: .78rem;
    line-height: 1.45;
}
@media (min-width: 901px) {
    .admin-login-layout,
    .admin-auth-layout.admin-auth-layout-login {
        grid-template-columns: minmax(0, 1.12fr) minmax(420px, 0.88fr);
    }
    .admin-login-visual {
        min-height: 100dvh;
    }
    .admin-login-panel {
        min-height: 100dvh;
        padding: clamp(2.5rem, 5vw, 4rem);
    }
    .admin-login-panel-inner {
        max-width: 440px;
    }
}
@media (max-width: 900px) {
    .admin-login-layout,
    .admin-auth-layout.admin-auth-layout-login {
        grid-template-columns: 1fr;
    }
    .admin-login-visual {
        order: -1;
    }
}

/* ── Translation editor ── */
.translation-layout {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 1.25rem;
    align-items: start;
}
.translation-col-head {
    display: flex;
    align-items: center;
    gap: .65rem;
    margin-bottom: 1.25rem;
    padding-bottom: .85rem;
    border-bottom: 1px solid var(--color-border);
}
.translation-col-head h2 { margin: 0; font-size: 1rem; }
.translation-lang-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    padding: .2rem .45rem;
    border-radius: 4px;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .06em;
}
.translation-lang-es { background: #fef3c7; color: #92400e; }
.translation-lang-fr { background: var(--color-surface-muted); color: var(--color-text); border: 1px solid var(--color-border); }
.translation-field { display: block; margin-bottom: 1.15rem; }
.translation-label {
    display: block;
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--color-muted);
    margin-bottom: .4rem;
}
.translation-source-text { margin: 0; line-height: 1.5; }
.translation-source-html { max-height: 280px; }
.translation-input-row {
    display: flex;
    gap: .5rem;
    align-items: center;
}
.translation-input-row input { flex: 1; }
.translation-input-row-top { align-items: flex-start; }
.translation-input-row-top textarea { flex: 1; }
.translation-copy-btn { flex-shrink: 0; white-space: nowrap; }
.translation-variant-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: .35rem;
}
.translation-variant-list li {
    padding: .45rem .65rem;
    background: var(--color-bg);
    border-radius: var(--radius);
    font-size: .88rem;
}
.translation-variant-row {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: .65rem;
    align-items: center;
    margin-bottom: .5rem;
}
.translation-variant-es { font-size: .82rem; }

/* ── Admin message thread ── */
.message-thread { display: grid; gap: 1rem; }
.message-bubble {
    border-radius: var(--radius-lg);
    padding: 1rem 1.15rem;
    border: 1px solid var(--color-border);
}
.message-bubble-inbound {
    background: var(--color-bg);
    border-left: 4px solid var(--color-primary);
}
.message-bubble-outbound {
    background: var(--color-surface-subtle);
    border-left: 4px solid var(--color-primary-dark);
    margin-left: 1.5rem;
}
.message-bubble-head {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: .35rem;
    margin-bottom: .65rem;
    font-size: .88rem;
}
.admin-message-meta { margin-bottom: 1.25rem; }

/* ── Catalog sidebar (legacy list helpers) ── */
.category-list a {
    transition: background .15s, color .15s, padding-left .15s;
}
.category-list a.active {
    font-weight: 700;
    color: var(--color-primary-dark);
}

/* ── Favorites toolbar ── */
.favorites-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: .75rem;
    margin-bottom: 1.25rem;
}
.favorites-toolbar-main {
    display: flex;
    align-items: center;
    gap: .65rem;
    flex-wrap: wrap;
}
.favorites-count { font-weight: 600; color: var(--color-primary-dark); }

/* ── Scroll reveal ── */
.reveal-on-scroll {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity .55s ease, transform .55s ease;
}
.reveal-on-scroll.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* ── Order success ── */
.order-success-banner {
    display: flex;
    gap: 1.25rem;
    align-items: flex-start;
    margin-bottom: 1.5rem;
    background: var(--color-surface-subtle);
    border-color: var(--color-border);
}
.order-success-icon {
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    background: var(--color-success, #22c55e);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.35rem;
    font-weight: 700;
    flex-shrink: 0;
}
.order-success-body h2 { margin: 0 0 .35rem; font-size: 1.2rem; color: var(--color-primary-dark); }
.order-success-body p { margin: 0 0 .35rem; }

/* ── Catalog list view ── */
.product-list-ref-inner {
    display: flex;
    align-items: center;
    gap: .65rem;
}
.row-thumb {
    width: 48px;
    height: 48px;
    object-fit: cover;
    border-radius: var(--radius);
    border: 1px solid var(--color-border);
    flex-shrink: 0;
}
.row-thumb-empty {
    display: inline-block;
    background: #f0f0f0;
}
.price-tag-sm {
    font-size: .92rem;
    padding: .15rem .45rem;
}
.product-list-row:hover td { background: rgba(0, 0, 0, .02); }
.catalog-range {
    margin: 0;
    font-size: .84rem;
    color: var(--color-muted);
    white-space: nowrap;
}

@media (max-width: 1024px) {
    .auth-layout { grid-template-columns: 1fr; }
    .checkout-step { font-size: .78rem; padding: .75rem .65rem; }
    .catalog-layout { grid-template-columns: 228px 1fr; gap: 1.25rem; }
    .category-mega-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .category-grid-home { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 768px) {
    .quick-order-grid { grid-template-columns: 1fr; }
    .catalog-toolbar { flex-direction: column; align-items: stretch; }
    .nav-toggle { display: inline-flex; align-items: center; justify-content: center; }
    .header-actions { width: auto; }
    .nav {
        display: none;
        position: absolute;
        top: calc(100% + 1px);
        left: 0;
        right: 0;
        background: #fff;
        border-bottom: 1px solid var(--color-border);
        flex-direction: column;
        align-items: stretch;
        padding: .75rem;
        box-shadow: 0 12px 32px rgba(0, 0, 0, .08);
        z-index: 220;
        gap: 0;
    }
    .nav .nav-link,
    .nav a:not(.btn) {
        padding: .65rem .5rem;
        border-bottom: 1px solid var(--color-border);
        border-radius: 0;
    }
    .nav .nav-link.is-active,
    .nav a:not(.btn).is-active {
        border-bottom-color: var(--color-border);
        border-left: 3px solid var(--color-accent);
        padding-left: calc(.5rem - 3px);
    }
    .nav .btn-header-cta { margin: .65rem 0 0; width: 100%; text-align: center; }
    .nav.is-open { display: flex; }
    .topbar-inner {
        grid-template-columns: 1fr;
        gap: .4rem;
        padding: .5rem 0;
        text-align: center;
    }
    .topbar-start { justify-content: center; }
    .topbar-text {
        text-align: center;
        font-size: .68rem;
    }
    .topbar-kicker,
    .topbar-divider { display: none; }
    .header-inner {
        position: relative;
        flex-wrap: nowrap;
        padding: .85rem 0;
        grid-template-columns: 1fr auto;
        min-height: 3.75rem;
        gap: .75rem;
    }
    .header-brand { grid-column: 1; }
    .header-actions { grid-column: 2; }
    .header-center { display: none; }
    .logo img { width: 112px; }
    .header.is-scrolled .logo img { width: 100px; }
    .nav-search { width: 100%; margin: .5rem 0; }
    .nav-search input { width: 100%; }
    .stats-band { grid-template-columns: repeat(2, 1fr); margin-top: 1rem; }
    .home-hero-grid,
    .home-hero-stack { flex-direction: column; }
    .home-hero-media {
        aspect-ratio: 16 / 9;
        max-height: none;
        min-height: 180px;
    }
    .home-hero-aside,
    .home-hero-content { text-align: center; }
    .home-hero-aside .actions-inline,
    .home-hero-content .actions-inline,
    .home-hero-aside .hero-pills,
    .home-hero-content .hero-pills { justify-content: center; }
    .home-hero-search { flex-direction: column; }
    .home-hero-search .btn { width: 100%; }
    .home-trust-strip {
        grid-template-columns: 1fr;
        margin-top: 0;
        padding: 0;
        border-top: 1px solid rgba(255, 255, 255, .12);
    }
    .home-trust-item {
        border-right: 0;
        border-bottom: 1px solid rgba(255, 255, 255, .1);
    }
    .home-trust-item:last-child {
        border-bottom: 0;
    }
    .home-stats-grid,
    .home-stats-grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .home-band { padding-left: 4%; padding-right: 4%; }
    .home-steps::before { display: none; }
    .home-service { grid-template-columns: 1fr; }
    .home-dashboard-grid { grid-template-columns: 1fr; }
    .features-grid, .steps-grid { grid-template-columns: 1fr; }
    .footer-grid { grid-template-columns: 1fr 1fr; }
    .service-banner, .trust-icons { grid-template-columns: 1fr; }
    .category-grid-home { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; }
    .hero-landing { text-align: center; }
    .hero-inner { max-width: none; }
    .hero-landing .actions-inline, .hero-pills { justify-content: center; }
    .hero-dashboard-grid { grid-template-columns: 1fr; }
    .hero-quick-actions { grid-template-columns: repeat(2, 1fr); }
    .payment-methods-grid { grid-template-columns: 1fr; }
    .hero-banner-arrow { opacity: 1; width: 2.15rem; height: 2.15rem; font-size: 1.25rem; }
    .hero-banner-prev { left: .5rem; }
    .hero-banner-next { right: .5rem; }
    .auth-visual { min-height: 200px; }
    .header-search { display: none; }
    .category-nav { padding: 0 0 .65rem; }
    .category-nav-shell { border-radius: 0; }
    .category-nav-inner {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        padding-bottom: 0;
        mask-image: linear-gradient(90deg, transparent, #000 10px, #000 calc(100% - 10px), transparent);
    }
    .category-mega-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .category-nav-item.has-mega:hover .category-mega-panel { display: none; }
    .category-nav-item.has-mega.is-open .category-mega-panel { display: block; }
    .cart-layout, .contact-grid { grid-template-columns: 1fr; }
    .cart-summary, .checkout-summary { position: static; }
    .checkout-steps { flex-direction: column; }
    .checkout-step { border-right: 0; border-bottom: 1px solid var(--color-border); }
    .checkout-step:last-child { border-bottom: 0; }
    .product-qty-row { flex-direction: column; align-items: stretch; }
    .product-qty-row .btn-lg { width: 100%; }
    .legal-layout { grid-template-columns: 1fr; }
    .legal-nav { position: static; flex-direction: row; flex-wrap: wrap; }
    .client-nav-inner { overflow-x: auto; flex-wrap: nowrap; padding: .55rem 1rem .75rem; }
    .client-panel-mobile-bar {
        display: flex;
        align-items: center;
        gap: .5rem;
        margin-bottom: .75rem;
        padding: .35rem 0;
    }
    .client-panel-toggle {
        flex-shrink: 0;
        border: 1px solid var(--color-border);
        background: var(--color-surface);
        border-radius: var(--radius);
        padding: .5rem .75rem;
        font-size: .82rem;
        font-weight: 700;
        color: var(--color-primary-dark);
        cursor: pointer;
    }
    .client-panel-search {
        flex: 1;
        min-width: 0;
        position: relative;
    }
    .client-panel-search input {
        width: 100%;
        padding: .5rem .75rem;
        border: 1px solid var(--color-border);
        border-radius: var(--radius);
        font-size: .88rem;
    }
    .client-panel-cart-pill {
        flex-shrink: 0;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 2.5rem;
        height: 2.5rem;
        border-radius: var(--radius);
        background: var(--color-surface);
        border: 1px solid var(--color-border);
        text-decoration: none;
        font-size: 1.1rem;
        position: relative;
    }
    .client-panel-cart-pill.has-items {
        background: var(--color-surface-muted);
        border-color: var(--color-accent);
    }
    .client-panel-cart-pill span {
        position: absolute;
        top: -4px;
        right: -4px;
        min-width: 1.1rem;
        height: 1.1rem;
        border-radius: 999px;
        background: var(--color-primary);
        color: #fff;
        font-size: .65rem;
        font-weight: 700;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .client-panel {
        grid-template-columns: 1fr;
        gap: 1rem;
        position: relative;
    }
    .client-panel-overlay {
        position: fixed;
        inset: 0;
        background: rgba(0, 0, 0, .45);
        z-index: 200;
        backdrop-filter: blur(2px);
    }
    .client-panel-overlay:not([hidden]) { display: block; }
    .client-sidebar {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        width: min(300px, 88vw);
        z-index: 210;
        background: var(--color-bg);
        padding: 1rem;
        overflow-y: auto;
        transform: translateX(-105%);
        transition: transform .25s ease;
        box-shadow: var(--shadow-lg);
    }
    .client-sidebar.is-open {
        transform: translateX(0);
    }
    .has-client-panel .catalog-layout {
        grid-template-columns: 1fr;
    }
    .client-panel-welcome { flex-direction: column; align-items: stretch; }
    .client-panel-welcome-actions .btn { flex: 1; text-align: center; }
    .client-home-cta { flex-direction: column; align-items: stretch; text-align: center; }
    .client-home-cta .btn { width: 100%; }
    .order-actions-bar { flex-direction: column; }
    .account-nav { overflow-x: auto; flex-wrap: nowrap; }
    .quick-actions { grid-template-columns: repeat(2, 1fr); }
    .info-dl { grid-template-columns: 1fr; }
    .address-card { flex-direction: column; }
    .admin-status-row { flex-direction: column; align-items: stretch; }
    .filter-tab-action { margin-left: 0; width: 100%; justify-content: center; }
    .admin-auth-layout { grid-template-columns: 1fr; }
    .admin-panel {
        grid-template-columns: 1fr;
        position: relative;
    }
    .admin-panel-overlay {
        position: fixed;
        inset: 0;
        background: rgba(0, 0, 0, .5);
        z-index: 200;
        backdrop-filter: blur(2px);
    }
    .admin-panel-overlay:not([hidden]) { display: block; }
    .admin-sidebar {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        width: min(300px, 88vw);
        z-index: 210;
        background: #141414;
        padding: 1rem;
        overflow-y: auto;
        transform: translateX(-105%);
        transition: transform .25s ease;
        box-shadow: var(--shadow-lg);
    }
    .admin-sidebar.is-open { transform: translateX(0); }
    .has-admin-panel .admin-sidebar-section.panel-card,
    .has-admin-panel .admin-sidebar-exports.panel-card {
        box-shadow: none;
    }
    .translation-layout { grid-template-columns: 1fr; }
    .translation-variant-row { grid-template-columns: 1fr; }
    .message-bubble-outbound { margin-left: 0; }
    .order-success-banner { flex-direction: column; text-align: center; align-items: center; }
}
@media (max-width: 480px) {
    .stats-band, .footer-grid { grid-template-columns: 1fr; }
    .home-stats-grid,
    .home-stats-grid-3 { grid-template-columns: 1fr; }
    .home-dashboard-shortcuts { grid-template-columns: 1fr; }
    .category-grid-home { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; }
}

/* Admin activity & help */
.admin-filter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-bottom: 1.25rem;
}
.admin-activity-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.admin-activity-item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: .85rem 0;
    border-bottom: 1px solid var(--color-border);
}
.admin-activity-item:last-child { border-bottom: 0; }
.admin-activity-label {
    font-weight: 600;
    color: var(--moly-dark);
    text-decoration: none;
}
.admin-activity-label:hover { color: var(--moly-primary); }
.admin-activity-detail { margin: .25rem 0 0; font-size: .875rem; }
.admin-activity-time { white-space: nowrap; font-size: .8125rem; }
.admin-activity-error .admin-activity-label { color: #b91c1c; }
.admin-activity-pending .admin-activity-label { color: #b45309; }
.admin-help-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 1.25rem;
}
.admin-help-list {
    margin: 0;
    padding-left: 1.15rem;
    color: var(--color-muted);
}
.admin-help-list li + li { margin-top: .5rem; }
.admin-help-note { grid-column: 1 / -1; }
.admin-search-form {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    align-items: center;
    margin-bottom: 1.25rem;
}
.admin-search-form input[type="search"] {
    flex: 1;
    min-width: 220px;
}
.admin-search-results {
    display: grid;
    gap: 1rem;
}
.admin-search-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.admin-search-list li + li { margin-top: .5rem; }
.admin-search-list a {
    text-decoration: none;
    color: var(--moly-dark);
}
.admin-search-list a:hover { color: var(--moly-primary); }
.category-tree-indent {
    display: inline-block;
    width: calc(var(--cat-depth, 0) * 1.1rem);
    min-width: calc(var(--cat-depth, 0) * 1.1rem);
}
.admin-inline-translate {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    align-items: center;
}
.admin-inline-translate .input-sm {
    min-width: 140px;
    max-width: 220px;
    padding: .25rem .5rem;
    font-size: .8125rem;
}
.admin-readonly-banner { margin-bottom: 1rem; }
.admin-export-readonly-hint { font-size: .78rem; color: var(--color-muted); }
.admin-role-badge { margin-top: .35rem; display: inline-block; font-size: .7rem; }

/* ── Thème monochrome + accent ── */
.section-label { color: var(--color-muted); background: var(--color-surface-muted); }
.section-label-accent { color: var(--color-accent); background: transparent; }
.trust-icon-card .icon { background: var(--color-surface-muted); color: var(--color-text); }
.search-suggest { border-color: var(--color-border); }
.search-suggest-item:hover,
.search-results li:hover { background: var(--color-surface-muted); }
.header.is-scrolled { border-bottom-color: var(--color-border); }
.service-banner h2,
.trust-icon-card h3,
.search-suggest-item strong { color: var(--color-text); }
.category-list a.active { color: var(--color-accent); font-weight: 700; }
.client-nav-link:hover,
.client-nav-link.is-active { color: var(--color-text); border-bottom-color: var(--color-accent); }
.client-nav-group { background: var(--color-surface-muted); border-color: var(--color-border); }
.client-nav-cta:hover { color: var(--color-text); border-color: var(--color-accent); }
.client-shortcuts .quick-action-card-active { border-color: var(--color-accent); background: var(--color-surface-subtle); }
.checkout-step.is-active { background: var(--color-surface-subtle); }
.checkout-step.is-active .step-num { background: var(--color-accent); border-color: var(--color-accent); color: var(--color-ink); }
.summary-highlight { background: var(--color-surface-subtle); border: 1px solid var(--color-border); border-left: 3px solid var(--color-accent); }
.info-card-icon { background: var(--color-surface-muted); }
.product-category-chip { background: var(--color-surface-muted); border-color: var(--color-border); }
.product-category-chip:hover { background: var(--color-accent); color: var(--color-ink); border-color: var(--color-accent); }
.message-bubble-inbound { border-left-color: var(--color-accent); }
.message-bubble-outbound { background: var(--color-surface-subtle); border-left-color: var(--color-ink); }
.order-success-banner { border-left: 3px solid var(--color-accent); }
.order-success-icon { background: var(--color-ink); color: #fff; }
.ps-guide summary { color: var(--color-text); }
.ps-guide summary:hover { color: var(--color-accent); }
.view-toggle .btn.active,
.toolbar .btn.active { background: var(--color-ink); color: #fff; border-color: var(--color-ink); }
.address-option:has(input:checked),
.payment-option:has(input:checked) { border-color: var(--color-accent); background: var(--color-surface-subtle); }
.reply-item { border-left-color: var(--color-accent); background: var(--color-surface-subtle); }
.public-notice { background: var(--color-surface-subtle); border: 1px solid var(--color-border); border-left: 3px solid var(--color-accent); }
.public-notice strong { color: var(--color-text); }
.feature-panel-icon { background: var(--color-surface-muted); }
.info-banner { background: var(--color-surface-subtle); border: 1px solid var(--color-border); border-left: 3px solid var(--color-accent); }
.admin-page-header { border-bottom-color: var(--color-border); }
.admin-alerts-bar .admin-alert-accent { border-left-color: var(--color-accent); }
.admin-activity-label:hover,
.admin-search-list a:hover { color: var(--color-accent); }
.btn-ghost:hover { border-color: var(--color-accent); color: var(--color-accent); }
input:focus, textarea:focus, select:focus {
    outline: none;
    border-color: var(--color-accent);
    box-shadow: 0 0 0 2px var(--color-accent-ring);
}
.hero-landing .btn-primary { color: var(--color-ink); }
.hero-landing .btn-primary:hover { background: var(--color-ink); color: #fff; border-color: var(--color-ink); }
.error-page-visual-500 { background: var(--color-surface-muted); border-color: var(--color-ink); color: var(--color-ink); }
.product-list-row:hover td { background: rgba(0, 0, 0, .02); }

/* ── Admin dashboard pro ── */
.admin-dashboard-hero {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
    padding: 1.35rem 1.5rem;
    margin-bottom: 1.25rem;
    background: linear-gradient(135deg, #0f1419 0%, #1a2332 55%, #0d2530 100%);
    color: #fff;
    border: 0;
}
.admin-dashboard-hero .muted { color: rgba(255, 255, 255, .72); }
.admin-dashboard-eyebrow {
    margin: 0 0 .35rem;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--color-accent);
}
.admin-dashboard-welcome {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(1.35rem, 2.5vw, 1.75rem);
    color: #fff;
}
.admin-dashboard-welcome-sub { margin: .35rem 0 0; }
.admin-dashboard-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}
.admin-dashboard-hero-actions .btn-primary {
    background: var(--color-accent);
    color: var(--color-ink);
    border-color: var(--color-accent);
}
.admin-dashboard-hero-actions .btn:not(.btn-primary) {
    background: rgba(255, 255, 255, .08);
    color: #fff;
    border-color: rgba(255, 255, 255, .22);
}
.admin-dashboard-hero-actions .btn:not(.btn-primary):hover {
    background: rgba(255, 255, 255, .14);
    border-color: var(--color-accent);
    color: #fff;
}
.admin-dashboard-kpis { margin-bottom: 1.25rem; }
.admin-dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 320px);
    gap: 1.25rem;
    align-items: start;
}
.admin-dashboard-main { display: grid; gap: 1.25rem; min-width: 0; }
.admin-dashboard-aside { display: grid; gap: 1rem; align-content: start; }
.admin-dashboard-aside .panel-card { padding: 1.1rem 1.25rem; }
.admin-dashboard-aside h2 {
    margin: 0 0 .85rem;
    font-size: .95rem;
}
.admin-dashboard-aside .section-header { margin-bottom: .65rem; }
.admin-dashboard-aside .section-header h2 { margin: 0; }
.admin-dashboard-empty { padding: .5rem 0 1rem; margin: 0; }
.admin-priorities-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: .45rem;
}
.admin-priority-item a {
    display: block;
    padding: .55rem .75rem;
    border-radius: var(--radius);
    text-decoration: none;
    font-size: .86rem;
    font-weight: 600;
    border: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
    color: var(--color-text);
    transition: border-color .15s, background .15s;
}
.admin-priority-item a:hover {
    border-color: var(--color-accent);
    background: rgba(47, 181, 210, .06);
}
.admin-priority-error a { border-left: 3px solid #ef4444; }
.admin-priority-warn a { border-left: 3px solid #f59e0b; }
.admin-priorities-none { margin: 0; font-size: .88rem; }
.admin-health-dl {
    margin: 0;
    display: grid;
    gap: .65rem;
}
.admin-health-dl > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding-bottom: .55rem;
    border-bottom: 1px solid var(--color-border);
}
.admin-health-dl > div:last-child { border-bottom: 0; padding-bottom: 0; }
.admin-health-dl dt {
    margin: 0;
    font-size: .82rem;
    color: var(--color-muted);
    font-weight: 600;
}
.admin-health-dl dd { margin: 0; font-size: .86rem; font-weight: 600; }
.admin-dashboard-catalog-alerts {
    margin-top: .85rem;
    padding-top: .75rem;
    border-top: 1px solid var(--color-border);
}
.admin-dashboard-catalog-alerts-title {
    margin: 0 0 .45rem;
    font-size: .78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--color-muted);
}
.admin-dashboard-catalog-alerts-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: .35rem;
}
.admin-dashboard-catalog-alerts-list a {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .4rem .55rem;
    border-radius: var(--radius);
    border: 1px solid var(--color-border);
    background: var(--color-bg);
    text-decoration: none;
    font-size: .82rem;
    font-weight: 600;
    color: var(--color-text);
    transition: border-color .15s, background .15s;
}
.admin-dashboard-catalog-alerts-list a:hover {
    border-color: rgba(245, 158, 11, .45);
    background: rgba(245, 158, 11, .06);
}
.admin-dashboard-catalog-alert-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.5rem;
    padding: .1rem .35rem;
    border-radius: 999px;
    background: rgba(245, 158, 11, .15);
    color: #b45309;
    font-size: .76rem;
    font-weight: 800;
}
.admin-quick-links {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .45rem;
}
.admin-quick-link {
    display: block;
    padding: .55rem .65rem;
    border-radius: var(--radius);
    border: 1px solid var(--color-border);
    background: var(--color-bg);
    text-decoration: none;
    font-size: .82rem;
    font-weight: 600;
    color: var(--color-text);
    transition: border-color .15s, color .15s;
}
.admin-quick-link:hover {
    border-color: var(--color-accent);
    color: var(--color-accent);
}
.admin-mini-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: .65rem;
}
.admin-mini-list a {
    display: grid;
    gap: .15rem;
    text-decoration: none;
    color: var(--color-text);
    font-size: .86rem;
}
.admin-mini-list a:hover strong { color: var(--color-accent); }
.admin-mini-list strong {
    font-weight: 700;
    line-height: 1.35;
}
.admin-sidebar-exports summary {
    cursor: pointer;
    list-style: none;
    user-select: none;
}
.admin-sidebar-exports summary::-webkit-details-marker { display: none; }
.admin-sidebar-exports-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 0;
}
.admin-sidebar-exports-summary::after {
    content: "▾";
    font-size: .75rem;
    opacity: .65;
    transition: transform .15s;
}
.admin-sidebar-exports[open] .admin-sidebar-exports-summary::after {
    transform: rotate(180deg);
}
.admin-sidebar-exports .admin-export-links { margin-top: .65rem; }
@media (max-width: 1100px) {
    .admin-dashboard-grid { grid-template-columns: 1fr; }
    .admin-dashboard-aside { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
}
@media (max-width: 768px) {
    .admin-dashboard-hero-actions { width: 100%; }
    .admin-dashboard-hero-actions .btn { flex: 1; text-align: center; }
    .admin-quick-links { grid-template-columns: 1fr; }
}

/* ── Admin UI polish v7 ── */
.admin-nav-sprite {
    position: absolute;
    width: 0;
    height: 0;
    overflow: hidden;
}
.admin-nav-icon {
    width: 1.05rem;
    height: 1.05rem;
    display: block;
    stroke: currentColor;
    opacity: .82;
    transition: opacity .15s, transform .15s;
}
.admin-sidebar-link:hover .admin-nav-icon,
.admin-sidebar-link.is-active .admin-nav-icon {
    opacity: 1;
}
.admin-sidebar-link.is-active .admin-nav-icon {
    color: var(--color-accent);
}
.admin-sidebar-icon {
    width: 1.35rem;
    height: 1.35rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.admin-page-header-row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
}
.admin-page-header-text { min-width: 0; flex: 1; }
.admin-page-header-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    flex-shrink: 0;
}
.admin-page-header .crumb-current {
    color: var(--color-text);
    font-weight: 700;
}
.has-admin-panel .admin-page-header {
    padding: 1.1rem 1.35rem 1.25rem;
    margin-bottom: 0;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
    border-left: 4px solid var(--color-accent);
    position: static;
    top: auto;
}
.has-admin-panel .admin-page-header h1 {
    margin: .15rem 0 0;
    font-size: clamp(1.35rem, 2.5vw, 1.65rem);
    letter-spacing: -.02em;
}
.has-admin-panel .admin-alerts-bar {
    padding: .65rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
    gap: .45rem;
}
.has-admin-panel .admin-alert {
    gap: .5rem;
    padding: .5rem .85rem;
    border-radius: 999px;
    transition: transform .12s, box-shadow .12s;
}
.has-admin-panel .admin-alert:hover {
    transform: translateY(-1px);
    box-shadow: var(--shadow-sm);
}
.admin-alert-dot {
    width: .45rem;
    height: .45rem;
    border-radius: 50%;
    flex-shrink: 0;
}
.admin-alert-warn .admin-alert-dot { background: #f59e0b; box-shadow: 0 0 0 3px rgba(245, 158, 11, .2); }
.admin-alert-error .admin-alert-dot { background: #ef4444; box-shadow: 0 0 0 3px rgba(239, 68, 68, .18); }
.admin-alert-info .admin-alert-dot { background: var(--color-accent); box-shadow: 0 0 0 3px rgba(47, 181, 210, .2); }
.admin-alert-text { flex: 1; min-width: 0; }
.admin-alert-arrow { opacity: .55; font-size: .9em; }
.admin-filter-tabs-scroll {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: .15rem;
    margin-bottom: .85rem;
    gap: .35rem;
}
.admin-filter-tabs-scroll::-webkit-scrollbar { display: none; }
.admin-filter-tabs-scroll .filter-tab {
    flex-shrink: 0;
    white-space: nowrap;
}
.admin-filter-bar-dates label.admin-filter-date {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    font-size: .85rem;
    font-weight: 600;
    color: var(--color-muted);
}
.admin-empty-state {
    padding: 2.5rem 1.5rem;
    text-align: center;
    background: var(--color-surface);
    border: 1px dashed var(--color-border);
    border-radius: var(--radius-lg);
}
.has-admin-panel .section.panel-card .admin-empty-state {
    margin: 0 1.35rem 1.35rem;
    box-shadow: none;
}
.admin-empty-state-icon {
    width: 3.25rem;
    height: 3.25rem;
    margin: 0 auto 1rem;
    border-radius: 50%;
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
    position: relative;
}
.admin-empty-state-icon::after {
    content: "";
    position: absolute;
    inset: .85rem;
    border: 2px solid var(--color-muted);
    border-radius: 4px;
    opacity: .45;
}
.admin-empty-state-icon--search::after {
    inset: auto;
    width: 1rem;
    height: 1rem;
    top: 1rem;
    left: 1rem;
    border-radius: 50%;
    border-width: 2px;
    box-shadow: 1.1rem 1.1rem 0 -1.05rem var(--color-muted);
}
.admin-empty-state-icon--inbox::after {
    border-radius: 2px 2px 4px 4px;
    inset: .9rem 1rem 1rem;
    border-top: 0;
}
.admin-empty-state-icon--chart::after {
    border: 0;
    inset: .95rem 1rem 1.1rem;
    background: linear-gradient(to right, var(--color-accent) 33%, transparent 33% 66%, var(--color-muted) 66%);
    opacity: .35;
    mask: linear-gradient(to top, #000 60%, transparent);
}
.admin-empty-state-message {
    margin: 0;
    font-weight: 700;
    color: var(--color-text);
}
.admin-empty-state-hint { margin: .35rem 0 0; font-size: .88rem; }
.admin-empty-state-action { margin: 1rem 0 0; }
.has-admin-panel .row-unread td {
    background: rgba(47, 181, 210, .06);
    font-weight: 600;
}
.has-admin-panel .row-unread td:first-child {
    box-shadow: inset 3px 0 0 var(--color-accent);
}
.has-admin-panel .row-rank-1 td:first-child { box-shadow: inset 3px 0 0 #f59e0b; }
.has-admin-panel .row-rank-2 td:first-child { box-shadow: inset 3px 0 0 #94a3b8; }
.has-admin-panel .row-rank-3 td:first-child { box-shadow: inset 3px 0 0 #cd7f32; }
.admin-table-card {
    padding: 0;
    overflow: hidden;
}
.admin-table-card.cart-table-wrap,
.admin-table-card.table-wrap {
    overflow-x: auto;
}
.admin-table-card .table { margin: 0; }
.admin-reports-grid .panel-card.section { padding: 0; overflow: hidden; }
.admin-login-body {
    background: #0a0a0a;
}
.admin-login-panel {
    backdrop-filter: none;
}
.admin-login-form {
    border-radius: var(--radius-lg);
}

/* ── Admin UI polish v8 ── */
.admin-sync-health-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: .75rem;
    margin-bottom: .85rem;
}
.admin-health-pill {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    padding: 1rem 1.15rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
}
.admin-health-pill--ok { border-left: 4px solid var(--color-accent); }
.admin-health-pill--error { border-left: 4px solid #ef4444; }
.admin-health-pill-dot {
    width: .55rem;
    height: .55rem;
    border-radius: 50%;
    margin-top: .35rem;
    flex-shrink: 0;
}
.admin-health-pill--ok .admin-health-pill-dot {
    background: var(--color-accent);
    box-shadow: 0 0 0 3px rgba(47, 181, 210, .22);
}
.admin-health-pill--error .admin-health-pill-dot {
    background: #ef4444;
    box-shadow: 0 0 0 3px rgba(239, 68, 68, .18);
}
.admin-health-pill-body {
    display: grid;
    gap: .2rem;
    min-width: 0;
}
.admin-health-pill-body strong { font-size: .88rem; }
.admin-health-pill-msg {
    font-size: .82rem;
    color: var(--color-muted);
    line-height: 1.4;
}
.admin-sync-meta-card {
    padding: .85rem 1.15rem;
    margin-bottom: 1rem;
    font-size: .84rem;
}
.admin-sync-actions-section {
    padding: 1.25rem 1.35rem;
    margin-bottom: 1rem;
}
.admin-sync-actions-desc { margin: 0 0 1rem; max-width: 62rem; }
.admin-sync-actions {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: .85rem;
}
.admin-sync-action-card {
    display: flex;
    flex-direction: column;
    gap: .65rem;
    padding: 1.15rem;
    margin: 0;
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    transition: border-color .15s, box-shadow .15s, transform .15s;
}
.admin-sync-action-card:hover {
    border-color: rgba(47, 181, 210, .4);
    box-shadow: var(--shadow);
}
.admin-sync-action-card--primary {
    background: linear-gradient(135deg, rgba(47, 181, 210, .08) 0%, #fff 100%);
    border-color: rgba(47, 181, 210, .35);
}
.admin-sync-action-card h3 {
    margin: 0;
    font-size: .95rem;
    font-family: var(--font-display);
}
.admin-sync-action-card p { margin: 0; font-size: .82rem; flex: 1; }
.admin-sync-action-card .btn { align-self: flex-start; margin-top: auto; }
.admin-sync-cli {
    margin: 1rem 0 0;
    padding-top: 1rem;
    border-top: 1px dashed var(--color-border);
    font-size: .82rem;
}
.admin-stats-compact { margin-bottom: 1rem; }
.admin-carts-list {
    display: grid;
    gap: 1rem;
}
.admin-cart-card {
    padding: 0;
    overflow: hidden;
    transition: box-shadow .15s, border-color .15s;
}
.admin-cart-card--stale {
    border-color: rgba(245, 158, 11, .35);
    box-shadow: inset 3px 0 0 #f59e0b;
}
.admin-cart-card-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.15rem 1.35rem;
    background: var(--color-surface-subtle);
    border-bottom: 1px solid var(--color-border);
}
.admin-cart-card-title {
    margin: 0;
    font-size: 1.05rem;
    font-family: var(--font-display);
}
.admin-cart-card-meta { margin: .35rem 0 0; font-size: .82rem; }
.admin-cart-card-total {
    font-size: 1.25rem;
    font-weight: 800;
    font-family: var(--font-display);
    white-space: nowrap;
}
.admin-cart-card-total .muted {
    font-size: .72rem;
    font-weight: 600;
    text-transform: uppercase;
}
.admin-cart-card .cart-table-wrap {
    border: 0;
    border-radius: 0;
    box-shadow: none;
}
.admin-cart-card-actions {
    padding: .85rem 1.35rem 1.15rem;
    border-top: 1px solid var(--color-border);
    background: var(--color-surface);
}
.admin-search-hero {
    padding: 1.25rem 1.35rem;
    margin-bottom: 1.25rem;
}
.admin-search-hero-inner {
    display: flex;
    align-items: stretch;
    gap: .65rem;
}
.admin-search-hero-icon {
    width: 1.35rem;
    height: 1.35rem;
    flex-shrink: 0;
    align-self: center;
    opacity: .55;
}
.admin-search-hero input[type="search"] {
    flex: 1;
    min-width: 0;
    padding: .75rem 1rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    font: inherit;
    font-size: 1rem;
    background: var(--color-bg);
}
.admin-search-hero input[type="search"]:focus {
    outline: none;
    border-color: var(--color-accent);
    box-shadow: 0 0 0 3px var(--color-accent-ring);
}
.admin-search-hint {
    text-align: center;
    padding: 2rem 1rem;
    font-size: .92rem;
}
.admin-search-card .admin-search-empty {
    padding: 0 1.35rem 1.25rem;
    margin: 0;
}
.admin-search-card .admin-search-list {
    padding: 0 1.35rem 1.25rem;
}
.admin-activity-panel .admin-empty-state {
    margin: 1.25rem 1.35rem;
}
.admin-activity-hint {
    padding: 1.25rem 1.35rem;
    margin: 0;
}
.admin-filter-chips-scroll {
    overflow-x: auto;
    flex-wrap: nowrap;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}
.admin-filter-chips-scroll::-webkit-scrollbar { display: none; }
.admin-settings-modules {
    padding: 1.25rem 1.35rem;
}
.admin-settings-modules h2 {
    margin: 0 0 .85rem;
    font-size: 1rem;
}
.admin-quick-links-wide {
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
}
.admin-settings-form-card {
    padding: 1.25rem 1.35rem;
}
.admin-settings-form label {
    display: block;
    margin-bottom: 1rem;
}
.admin-settings-form .btn-primary { margin-top: .25rem; }
.has-admin-panel .account-grid .panel-card {
    padding: 1.25rem 1.35rem;
}
@media (max-width: 768px) {
    .admin-cart-card-head { flex-direction: column; }
    .admin-cart-card-total { align-self: flex-start; }
    .admin-search-hero-inner { flex-wrap: wrap; }
    .admin-search-hero .btn { width: 100%; }
    .admin-sync-actions { grid-template-columns: 1fr; }
}

/* ── Admin UI polish v9 — detail pages ── */
.admin-detail-meta {
    margin-bottom: .85rem;
}
.admin-detail-meta .meta-card {
    transition: transform .15s, box-shadow .15s;
}
.admin-detail-meta .meta-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-lg);
}
.admin-detail-toolbar {
    padding: .75rem 1.15rem;
    margin-bottom: .85rem;
}
.admin-detail-toolbar-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
}
.admin-detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 320px);
    gap: 1.25rem;
    align-items: start;
    margin-bottom: 1rem;
}
.admin-detail-main { min-width: 0; }
.admin-detail-aside {
    display: grid;
    gap: 1rem;
    align-content: start;
}
.admin-detail-side-card {
    padding: 1.15rem 1.25rem;
}
.admin-detail-side-card h2 {
    margin: 0 0 .65rem;
    font-size: .95rem;
    font-family: var(--font-display);
}
.admin-detail-hint {
    margin: 0 0 .85rem;
    font-size: .82rem;
    line-height: 1.45;
}
.admin-detail-side-card textarea,
.admin-detail-side-card select {
    width: 100%;
    margin-top: .35rem;
}
.admin-detail-danger {
    border-color: rgba(239, 68, 68, .25);
    background: rgba(239, 68, 68, .03);
}
.admin-info-box {
    padding: 1.15rem 1.35rem;
    margin-top: 1rem;
}
.admin-info-box h3 {
    margin: 0 0 .5rem;
    font-size: .92rem;
    font-family: var(--font-display);
}
.admin-info-box p { margin: 0; }
.admin-message-thread {
    padding: 1.25rem 1.35rem;
    margin-bottom: 1rem;
}
.admin-detail-back {
    margin: 1rem 0 0;
}
.has-admin-panel .order-actions-bar {
    position: sticky;
    bottom: .75rem;
    z-index: 50;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: 1rem 1.25rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: 0 8px 32px rgba(0, 0, 0, .12);
}
.admin-help-card {
    padding: 1.25rem 1.35rem;
    transition: border-color .15s, box-shadow .15s;
}
.admin-help-card:hover {
    border-color: rgba(47, 181, 210, .35);
    box-shadow: var(--shadow-lg);
}
.admin-help-card h2 {
    margin: 0 0 .85rem;
    font-size: 1rem;
    font-family: var(--font-display);
    padding-bottom: .65rem;
    border-bottom: 1px solid var(--color-border);
}
.admin-help-dl dt a {
    font-weight: 700;
    color: var(--color-text);
    text-decoration: none;
}
.admin-help-dl dt a:hover { color: var(--color-accent); }
.admin-help-dl dd {
    margin: 0 0 .75rem;
    font-size: .86rem;
    line-height: 1.45;
}
.admin-client-cart-preview {
    margin-bottom: 1rem;
}
@media (max-width: 1024px) {
    .admin-detail-grid { grid-template-columns: 1fr; }
    .admin-detail-aside { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
}

/* ── Admin UI polish v10 — pricing, users, settings, stock ── */
.admin-code-input,
.admin-settings-form textarea.admin-code-input {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: .82rem;
    line-height: 1.45;
    width: 100%;
    padding: .65rem .75rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-surface-subtle);
    resize: vertical;
}
.admin-code-input:focus {
    outline: none;
    border-color: var(--color-accent);
    box-shadow: 0 0 0 3px var(--color-accent-ring);
}
.admin-code-tag {
    font-size: .78rem;
    padding: .15rem .4rem;
    border-radius: var(--radius-sm);
    background: var(--color-surface-subtle);
}
.admin-pricing-tools {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 1rem;
    margin-bottom: 1rem;
}
.admin-pricing-tool-card {
    padding: 1.25rem 1.35rem;
}
.admin-pricing-tool-card h2 {
    margin: 0 0 .5rem;
    font-size: 1rem;
    font-family: var(--font-display);
}
.admin-pricing-hint {
    margin: 0 0 .85rem;
    font-size: .84rem;
    line-height: 1.45;
}
.admin-pricing-audit .section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: 1.15rem 1.35rem 0;
}
.admin-pricing-audit .section-header h2 {
    margin: 0;
    font-size: 1rem;
    font-family: var(--font-display);
}
.admin-pricing-bulk-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .65rem;
    padding: .75rem 1.15rem;
    margin-bottom: .85rem;
}
.admin-table .col-check { width: 2.25rem; }
.row-stock-critical {
    background: rgba(239, 68, 68, .04);
}
.row-stock-critical td:nth-child(5) .badge-error {
    animation: admin-pulse-warn 2s ease-in-out infinite;
}
@keyframes admin-pulse-warn {
    0%, 100% { opacity: 1; }
    50% { opacity: .65; }
}
.admin-category-row .category-tree-indent {
    display: inline-block;
    width: calc(var(--cat-depth, 0) * 1.1rem);
    min-width: 0;
}
.admin-category-depth-1 td:nth-child(2) { font-weight: 600; }
.admin-category-depth-2 td:nth-child(2),
.admin-category-depth-3 td:nth-child(2),
.admin-category-depth-4 td:nth-child(2),
.admin-category-depth-5 td:nth-child(2) {
    color: var(--color-text-muted);
}
.admin-manual-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
    gap: 1.25rem;
    align-items: start;
}
.admin-manual-preview-card {
    position: sticky;
    top: 5.5rem;
}
.admin-users-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(240px, 300px);
    gap: 1.25rem;
    align-items: start;
}
.admin-users-roles-card {
    padding: 1.25rem 1.35rem;
}
.admin-users-roles-card h2 {
    margin: 0 0 .75rem;
    font-size: 1rem;
    font-family: var(--font-display);
}
.admin-users-roles-dl dt {
    font-weight: 700;
    font-size: .88rem;
    margin-top: .65rem;
}
.admin-users-roles-dl dt:first-child { margin-top: 0; }
.admin-users-roles-dl dd {
    margin: .2rem 0 0;
    font-size: .84rem;
    line-height: 1.45;
    color: var(--color-text-muted);
}
.admin-users-form-card {
    max-width: 42rem;
    padding: 1.35rem 1.5rem;
}
.admin-users-delete-form {
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--color-border);
}
.btn-danger-text { color: var(--color-error, #dc2626); }
.admin-settings-side-card {
    padding: 1.25rem 1.35rem;
}
.admin-settings-side-card h2,
.admin-settings-side-card h3 {
    margin: 0 0 .65rem;
    font-size: 1rem;
    font-family: var(--font-display);
}
.admin-settings-side-card h3 {
    margin-top: 1rem;
    font-size: .92rem;
}
.admin-settings-mail-form {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-top: .75rem;
}
.admin-settings-mail-form input[type="email"] {
    flex: 1 1 12rem;
    min-width: 0;
}
.admin-ps-guide summary {
    cursor: pointer;
    font-weight: 600;
    font-size: .88rem;
    margin: .75rem 0;
}
.admin-ps-guide .guide-list {
    margin: .5rem 0 0;
    padding-left: 1.25rem;
    font-size: .84rem;
    line-height: 1.55;
}
.admin-empty-state-icon--pricing::after {
    border: 0;
    inset: .95rem 1.1rem;
    background:
        linear-gradient(var(--color-accent), var(--color-accent)) 0 100% / 100% 2px no-repeat,
        linear-gradient(var(--color-muted), var(--color-muted)) 0 70% / 70% 2px no-repeat,
        linear-gradient(var(--color-muted), var(--color-muted)) 0 40% / 45% 2px no-repeat;
    opacity: .4;
}
.admin-empty-state-icon--users::after {
    border-radius: 50% 50% 2px 2px;
    inset: .75rem 1.15rem 1.15rem;
    border-top-width: 3px;
}
.has-admin-panel .account-grid {
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}
@media (max-width: 900px) {
    .admin-pricing-tools,
    .admin-users-layout,
    .admin-manual-grid { grid-template-columns: 1fr; }
    .admin-manual-preview-card { position: static; }
}

/* ── Admin UI polish v11 — translations, client detail, groups ── */
.admin-translations-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.15rem 1.35rem;
    margin-bottom: 1rem;
}
.admin-translations-toolbar .admin-filter-bar {
    flex: 1 1 20rem;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}
.admin-translations-bulk { flex-shrink: 0; }
.admin-translations-bulk-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    flex-shrink: 0;
}
.admin-ai-translate-panel {
    margin-bottom: 1rem;
    padding: 1rem 1.25rem;
    border: 1px solid var(--border-soft, #e5e7eb);
    border-radius: var(--radius-md, .5rem);
    background: var(--surface-elevated, #fff);
}
.admin-ai-translate-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: .65rem;
}
.admin-ai-translate-bar {
    height: .45rem;
    border-radius: 999px;
    background: var(--surface-muted, #eef1f4);
    overflow: hidden;
}
.admin-ai-translate-bar span {
    display: block;
    height: 100%;
    width: 0;
    background: linear-gradient(90deg, var(--brand-primary, #1a6b4a), #2d9b6a);
    transition: width .25s ease;
}
.admin-ai-translate-item {
    margin: .55rem 0 0;
    font-size: .875rem;
}
.admin-ai-translate-errors {
    margin: .65rem 0 0;
    padding-left: 1.1rem;
    color: var(--danger, #b42318);
    font-size: .875rem;
}
.admin-translations-section {
    margin-bottom: 1rem;
}
.admin-translations-section .section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: 1.15rem 1.35rem 0;
}
.admin-translations-section .section-header h2 {
    margin: 0;
    font-size: 1rem;
    font-family: var(--font-display);
}
.admin-section-count {
    font-size: .82rem;
    padding: .15rem .5rem;
    border-radius: var(--radius-full);
    background: var(--color-surface-subtle);
}
.admin-translations-es-cell { max-width: 16rem; }
.admin-inline-translation-form {
    display: grid;
    gap: .45rem;
    max-width: 32rem;
}
.admin-inline-translation-form input[type="text"] {
    width: 100%;
    font-size: .88rem;
}
.row-untranslated {
    background: rgba(245, 158, 11, .05);
}
.row-untranslated td:nth-child(3) {
    color: var(--color-warning, #d97706);
    font-style: italic;
}
.admin-translation-issue {
    margin: .1rem .15rem .1rem 0;
    font-size: .72rem;
}
.admin-translations-hint {
    margin-bottom: 1rem;
}
.admin-translation-workspace .translation-col-head h2 {
    font-size: .95rem;
}
.admin-error404-card {
    padding: 1.5rem 1.35rem 1.25rem;
    text-align: center;
}
.admin-error404-actions {
    justify-content: center;
    margin-top: .5rem;
}
.admin-groups-footer {
    margin: .85rem 0 0;
    font-size: .84rem;
    line-height: 1.5;
}
.admin-group-import-form,
.admin-group-copy-form {
    margin-bottom: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--color-border);
}
.admin-section-empty {
    padding: 0 1.35rem 1.15rem;
    margin: 0;
}
.has-admin-panel .admin-address-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: .85rem;
    list-style: none;
    padding: 0;
    margin: 0;
}
.has-admin-panel .admin-address-cards .address-card {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: 1rem 1.1rem;
    background: var(--color-surface);
    transition: border-color .15s, box-shadow .15s;
}
.has-admin-panel .admin-address-cards .address-card.is-default {
    border-color: rgba(47, 181, 210, .4);
    background: rgba(47, 181, 210, .03);
}
.has-admin-panel .admin-address-cards .address-card:hover {
    box-shadow: var(--shadow-md);
}
.has-admin-panel .address-card-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin-top: .75rem;
    padding-top: .65rem;
    border-top: 1px solid var(--color-border);
}
.admin-client-password-card,
.admin-client-addresses {
    margin-bottom: 1rem;
}
.admin-cart-meta {
    padding: 0 1.35rem;
    margin: 0 0 .75rem;
    font-size: .84rem;
}
.admin-address-form-card {
    max-width: 40rem;
    padding: 1.35rem 1.5rem;
}
@media (max-width: 768px) {
    .admin-translations-toolbar { flex-direction: column; align-items: stretch; }
    .admin-translations-bulk .btn { width: 100%; }
}

/* Admin v16 — sync stats order, pricing filters, translation progress */
.stat-card-progress {
    position: relative;
    overflow: hidden;
}
.stat-card-progress .stat-value { margin-bottom: .15rem; }
.admin-stat-progress {
    display: block;
    height: 4px;
    margin-top: .45rem;
    border-radius: 999px;
    background: rgba(0, 0, 0, .08);
    overflow: hidden;
}
.admin-stat-progress-fill {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--color-accent), #2fb5d2);
    transition: width .35s ease;
}
.stat-card-warn .admin-stat-progress-fill {
    background: linear-gradient(90deg, #e6a817, #f0c040);
}
.admin-stat-filter-label {
    font-size: 1rem;
    line-height: 1.2;
    word-break: break-word;
}
.admin-filter-inline select:disabled {
    opacity: .55;
    cursor: not-allowed;
}

/* Admin v17 — orders period, category detail, exports search, messages preview */
.admin-orders-presets { margin-bottom: .35rem; }
.admin-category-status-card .admin-category-status-ok { margin: 0; }
.admin-category-issues {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}
.admin-category-products .section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: 1rem 1.35rem 0;
}
.admin-category-products .section-header h2 { margin: 0; font-size: 1rem; }
.admin-message-preview {
    max-width: 18rem;
    font-size: .82rem;
    line-height: 1.4;
}
.admin-exports-search {
    align-items: center;
    gap: .75rem;
}
.admin-exports-search-count {
    font-size: .84rem;
    white-space: nowrap;
}
.admin-settings-jump {
    margin-bottom: .85rem;
}
.admin-settings-jump .filter-tab { scroll-margin-top: 5rem; }
[id^="settings-"] { scroll-margin-top: 5.5rem; }

.admin-settings-redsys-card {
    margin-bottom: 1rem;
    padding: 0;
    overflow: hidden;
}
.admin-settings-redsys-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.35rem;
    border-bottom: 1px solid var(--color-border);
    background: linear-gradient(180deg, var(--color-surface-subtle) 0%, var(--color-surface) 100%);
}
.admin-settings-redsys-intro h2 {
    margin: 0;
    font-family: var(--font-display);
    font-size: 1.02rem;
    font-weight: 700;
}
.admin-settings-redsys-intro .muted {
    margin: .35rem 0 0;
    max-width: 42rem;
    font-size: .86rem;
    line-height: 1.5;
}
.admin-settings-redsys-status {
    flex-shrink: 0;
    align-self: center;
}
.admin-settings-redsys-readonly {
    margin: 0;
    padding: .85rem 1.35rem 0;
    font-size: .84rem;
}
.admin-settings-redsys-form {
    padding: 1.25rem 1.35rem 1.35rem;
}
.admin-settings-redsys-fieldset {
    margin: 0;
}
.admin-settings-redsys-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(280px, .85fr);
    gap: 1.25rem;
    align-items: start;
}
.admin-settings-redsys-main label {
    margin-bottom: 1rem;
}
.admin-settings-redsys-toggle {
    padding: .85rem 1rem;
    margin-bottom: 1rem !important;
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
}
.admin-settings-redsys-aside {
    padding: 1rem 1.1rem;
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
}
.admin-settings-redsys-aside h3 {
    margin: 0 0 .45rem;
    font-size: .92rem;
    font-family: var(--font-display);
}
.admin-settings-redsys-aside-lead {
    margin: 0 0 .85rem;
    font-size: .84rem;
    line-height: 1.45;
}
.admin-settings-url-list {
    list-style: none;
    margin: 0 0 .85rem;
    padding: 0;
    display: grid;
    gap: .75rem;
}
.admin-settings-url-item {
    margin: 0;
}
.admin-settings-url-label {
    display: block;
    margin-bottom: .35rem;
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--color-text-muted);
}
.admin-settings-url-value {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
}
.admin-settings-url-value code {
    flex: 1 1 auto;
    min-width: 0;
    display: block;
    padding: .5rem .6rem;
    font-size: .74rem;
    line-height: 1.45;
    word-break: break-all;
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
}
.admin-settings-url-value .btn {
    flex-shrink: 0;
    white-space: nowrap;
}
.admin-settings-redsys-vat-row .admin-settings-redsys-vat-toggle {
    align-self: end;
    margin-bottom: 1rem !important;
}
.admin-settings-redsys-actions {
    margin-top: 1.15rem;
    padding-top: 1rem;
    border-top: 1px solid var(--color-border);
}
@media (max-width: 960px) {
    .admin-settings-redsys-layout {
        grid-template-columns: 1fr;
    }
    .admin-settings-redsys-aside {
        order: -1;
    }
}

/* Admin v18 — order nav, manual order UX, 404 links */
.admin-order-nav {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: .75rem;
    padding: .75rem 1.1rem;
    margin-bottom: .85rem;
}
.admin-order-nav-link {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    text-decoration: none;
    color: inherit;
    padding: .35rem .5rem;
    border-radius: var(--radius-md);
    transition: background .15s;
}
.admin-order-nav-link:hover { background: rgba(0, 0, 0, .04); }
.admin-order-nav-prev { justify-self: start; }
.admin-order-nav-next { justify-self: end; text-align: right; }
.admin-order-nav-back {
    font-size: .84rem;
    text-decoration: none;
}
.admin-order-nav-back:hover { text-decoration: underline; }
.admin-manual-format-box { margin: .65rem 0 1rem; }
.admin-manual-side-sticky {
    position: sticky;
    top: 5rem;
    align-self: start;
}
.admin-manual-preview-sticky {
    margin-top: 1rem;
}
@media (min-width: 1024px) {
    .admin-manual-preview-sticky {
        position: sticky;
        top: 5rem;
    }
}
.admin-error404-links-v2 {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr));
    gap: .5rem;
    margin-top: 1rem;
    justify-content: center;
}
.admin-error404-links-v2 .admin-quick-link {
    justify-content: center;
    text-align: center;
    padding: .55rem .65rem;
    font-size: .84rem;
}
@media (max-width: 768px) {
    .admin-order-nav { grid-template-columns: 1fr; }
    .admin-order-nav-back { order: -1; text-align: center; }
    .admin-order-nav-next { text-align: left; justify-self: start; }
    .admin-manual-side-sticky { position: static; }
    .admin-message-nav { grid-template-columns: 1fr; }
    .admin-message-nav-back { order: -1; text-align: center; }
    .admin-message-nav-next { text-align: left; justify-self: start; }
    .admin-customer-nav,
    .admin-cart-nav,
    .admin-group-nav,
    .admin-category-nav { grid-template-columns: 1fr; }
    .admin-customer-nav-back,
    .admin-cart-nav-back,
    .admin-group-nav-back,
    .admin-category-nav-back { order: -1; text-align: center; }
    .admin-customer-nav-next,
    .admin-cart-nav-next,
    .admin-group-nav-next,
    .admin-category-nav-next { text-align: left; justify-self: start; }
    .admin-manual-nav { grid-template-columns: 1fr; }
    .admin-manual-nav-back { order: -1; text-align: center; }
    .admin-manual-nav-next { text-align: left; justify-self: start; }
}

/* Admin v18b — message nav, help jump, activity type badges */
.admin-message-nav {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: .75rem;
    padding: .75rem 1.1rem;
    margin-bottom: .85rem;
}
.admin-message-nav-link {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    text-decoration: none;
    color: inherit;
    padding: .35rem .5rem;
    border-radius: var(--radius-md);
    transition: background .15s;
}
.admin-message-nav-link:hover { background: rgba(0, 0, 0, .04); }
.admin-message-nav-prev { justify-self: start; }
.admin-message-nav-next { justify-self: end; text-align: right; }
.admin-message-nav-back {
    font-size: .84rem;
    text-decoration: none;
}
.admin-message-nav-back:hover { text-decoration: underline; }
.admin-help-jump {
    margin-bottom: .85rem;
}
.admin-help-jump .filter-tab { scroll-margin-top: 5rem; }
[id^="help-"] { scroll-margin-top: 5.5rem; }
.admin-activity-timeline .admin-activity-item {
    display: grid;
    grid-template-columns: auto 1fr auto auto;
    gap: .65rem 1rem;
    align-items: start;
}
.admin-activity-timeline .admin-activity-main {
    min-width: 0;
}
.admin-activity-timeline .admin-activity-type-badge {
    margin-top: .1rem;
    font-size: .68rem;
    letter-spacing: .02em;
    text-transform: uppercase;
    white-space: nowrap;
}
.admin-activity-timeline .admin-activity-time {
    padding-top: .15rem;
}
.admin-customer-nav,
.admin-cart-nav {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: .75rem;
    padding: .75rem 1.1rem;
    margin-bottom: .85rem;
}
.admin-customer-nav-link,
.admin-cart-nav-link {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    text-decoration: none;
    color: inherit;
    padding: .35rem .5rem;
    border-radius: var(--radius-md);
    transition: background .15s;
}
.admin-customer-nav-link:hover,
.admin-cart-nav-link:hover { background: rgba(0, 0, 0, .04); }
.admin-customer-nav-prev,
.admin-cart-nav-prev { justify-self: start; }
.admin-customer-nav-next,
.admin-cart-nav-next { justify-self: end; text-align: right; }
.admin-customer-nav-back,
.admin-cart-nav-back {
    font-size: .84rem;
    text-decoration: none;
}
.admin-customer-nav-back:hover,
.admin-cart-nav-back:hover { text-decoration: underline; }
.admin-group-nav,
.admin-category-nav {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: .75rem;
    padding: .75rem 1.1rem;
    margin-bottom: .85rem;
}
.admin-group-nav-link,
.admin-category-nav-link {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    text-decoration: none;
    color: inherit;
    padding: .35rem .5rem;
    border-radius: var(--radius-md);
    transition: background .15s;
}
.admin-group-nav-link:hover,
.admin-category-nav-link:hover { background: rgba(0, 0, 0, .04); }
.admin-group-nav-prev,
.admin-category-nav-prev { justify-self: start; }
.admin-group-nav-next,
.admin-category-nav-next { justify-self: end; text-align: right; }
.admin-group-nav-back,
.admin-category-nav-back {
    font-size: .84rem;
    text-decoration: none;
}
.admin-group-nav-back:hover,
.admin-category-nav-back:hover { text-decoration: underline; }
.admin-status-track--customer .admin-status-step {
    flex: 1;
    min-width: 0;
}
.admin-status-track--customer .admin-status-step-label {
    font-size: .72rem;
}
.admin-manual-nav {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: .75rem;
    padding: .75rem 1.1rem;
    margin-bottom: .85rem;
}
.admin-manual-nav-link {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    text-decoration: none;
    color: inherit;
    padding: .35rem .5rem;
    border-radius: var(--radius-md);
    transition: background .15s;
}
.admin-manual-nav-link:hover { background: rgba(0, 0, 0, .04); }
.admin-manual-nav-prev { justify-self: start; }
.admin-manual-nav-next { justify-self: end; text-align: right; }
.admin-manual-nav-back {
    font-size: .84rem;
    text-decoration: none;
}
.admin-manual-nav-back:hover { text-decoration: underline; }
.admin-sync-jump {
    margin-bottom: .85rem;
}
.admin-sync-jump .filter-tab,
[id^="sync-"] { scroll-margin-top: 5.5rem; }
.admin-dashboard-recent-time {
    font-size: .78rem;
    white-space: nowrap;
}
.admin-cart-card.admin-row-link {
    cursor: pointer;
    transition: border-color .15s, box-shadow .15s;
}
.admin-cart-card.admin-row-link:hover {
    border-color: rgba(47, 181, 210, .35);
}
.admin-cart-card-title a {
    color: inherit;
    text-decoration: none;
}
.admin-cart-card-title a:hover {
    color: var(--color-accent);
}
.admin-orders-period-hint,
.admin-reports-period-hint {
    margin: 0 0 .85rem;
    font-size: .84rem;
}
.admin-exports-jump {
    margin-bottom: .85rem;
}
.admin-exports-jump .filter-tab,
[id^="export-"] { scroll-margin-top: 5.5rem; }
.admin-pricing-jump {
    margin-bottom: .85rem;
}
.admin-pricing-jump .filter-tab,
[id^="pricing-"] { scroll-margin-top: 5.5rem; }
.admin-pricing-group-tabs {
    margin-bottom: .5rem;
}
.admin-reports-jump,
.admin-search-jump,
.admin-orders-jump,
.admin-products-jump,
.admin-users-jump {
    margin-bottom: .85rem;
}
.admin-reports-jump .filter-tab,
.admin-search-jump .filter-tab,
.admin-orders-jump .filter-tab,
.admin-products-jump .filter-tab,
.admin-users-jump .filter-tab,
[id^="reports-"],
[id^="search-"],
#orders-list,
#admin-products-list,
#users-list { scroll-margin-top: 5.5rem; }
.admin-search-stats {
    margin-bottom: .85rem;
}
.admin-search-stats .stat-card {
    min-height: 0;
}
.admin-carts-jump,
.admin-messages-jump,
.admin-stock-jump {
    margin-bottom: .85rem;
}
.admin-carts-jump .filter-tab,
.admin-messages-jump .filter-tab,
.admin-stock-jump .filter-tab,
#admin-carts-list,
#messages-list,
#order-summary { scroll-margin-top: 5.5rem; }
.admin-alert-action {
    display: inline-block;
    margin-left: .65rem;
    font-size: .88em;
    font-weight: 600;
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.admin-alert-action:hover {
    opacity: .85;
}
.admin-translation-product-stats {
    margin-bottom: .85rem;
}
.admin-translation-product-stats code {
    font-size: .78rem;
}
.admin-product-page-jump {
    margin-bottom: .65rem;
}
.admin-product-page-jump .filter-tab { scroll-margin-top: 5rem; }
#product-info,
#pricing,
#product-combinations,
#product-activity { scroll-margin-top: calc(var(--header-offset, 72px) + 6rem); }
.admin-product-section-count--warn {
    background: var(--color-warn-bg, #fef3c7);
    color: var(--color-warn-text, #92400e);
}
.admin-export-card.admin-row-link {
    cursor: pointer;
    transition: box-shadow .15s, border-color .15s;
}
.admin-export-card.admin-row-link:hover {
    border-color: var(--color-accent);
    box-shadow: 0 2px 12px rgba(0, 0, 0, .06);
}
.admin-export-card.admin-row-link:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 2px;
}
.admin-users-form-stats {
    margin-bottom: .85rem;
}
.admin-health-action {
    color: var(--color-accent);
    font-size: .85em;
}
.admin-detail-meta .meta-card a {
    color: inherit;
    text-decoration: none;
}
.admin-detail-meta .meta-card a:hover {
    color: var(--color-accent);
    text-decoration: underline;
}

/* Cookie consent banner */
.cookie-banner {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1200;
    background: var(--color-ink);
    color: #fff;
    padding: 1rem 0;
    box-shadow: none;
    border-top: 1px solid rgba(255, 255, 255, .12);
}
.cookie-banner[hidden] { display: none !important; }
.cookie-banner-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}
.cookie-banner p {
    margin: 0;
    font-size: .9rem;
    max-width: 52rem;
    line-height: 1.5;
}
.cookie-banner a { color: var(--color-accent); }
.cookie-banner-actions {
    display: flex;
    gap: .5rem;
    flex-shrink: 0;
}
.cookie-banner .btn { white-space: nowrap; }
.checkbox-inline {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin: .5rem 0;
    font-size: .9rem;
}

/* ── Motion, micro-interactions & polish ── */
.reveal-stagger > * {
    opacity: 0;
    transform: translateY(18px);
    transition:
        opacity var(--motion-slow) var(--ease-out),
        transform var(--motion-slow) var(--ease-out);
}
.reveal-stagger.is-visible > * {
    opacity: 1;
    transform: translateY(0);
}
.reveal-stagger.is-visible > *:nth-child(1) { transition-delay: .04s; }
.reveal-stagger.is-visible > *:nth-child(2) { transition-delay: .1s; }
.reveal-stagger.is-visible > *:nth-child(3) { transition-delay: .16s; }
.reveal-stagger.is-visible > *:nth-child(4) { transition-delay: .22s; }
.reveal-stagger.is-visible > *:nth-child(5) { transition-delay: .28s; }
.reveal-stagger.is-visible > *:nth-child(6) { transition-delay: .34s; }
.reveal-stagger.is-visible > *:nth-child(7) { transition-delay: .4s; }
.reveal-stagger.is-visible > *:nth-child(8) { transition-delay: .46s; }

.reveal-on-scroll {
    transition:
        opacity var(--motion-slow) var(--ease-out),
        transform var(--motion-slow) var(--ease-out);
}

.home-hero-grid,
.home-hero-stack {
    transition: border-color var(--motion-base) ease;
}
.home-hero.is-ready .home-hero-media {
    animation: heroSlideIn .8s var(--ease-out) both;
}
.home-hero.is-ready .home-hero-panel,
.home-hero.is-ready .home-hero-content,
.home-hero.is-ready .home-hero-aside {
    animation: heroContentIn .75s var(--ease-out) .1s both;
}
.home-hero.is-ready .home-trust-strip > * {
    animation: trustPop .55s var(--ease-spring) both;
}
.home-hero.is-ready .home-trust-strip > *:nth-child(1) { animation-delay: .35s; }
.home-hero.is-ready .home-trust-strip > *:nth-child(2) { animation-delay: .45s; }
.home-hero.is-ready .home-trust-strip > *:nth-child(3) { animation-delay: .55s; }
.home-hero.is-ready .hero-inner > *,
.home-hero.is-ready .home-hero-panel-inner > * {
    animation: heroContentIn .6s var(--ease-out) both;
}
.home-hero.is-ready .home-hero-panel-inner > *:nth-child(1),
.home-hero.is-ready .hero-inner > *:nth-child(1) { animation-delay: .18s; }
.home-hero.is-ready .home-hero-panel-inner > *:nth-child(2),
.home-hero.is-ready .hero-inner > *:nth-child(2) { animation-delay: .26s; }
.home-hero.is-ready .home-hero-panel-inner > *:nth-child(3),
.home-hero.is-ready .hero-inner > *:nth-child(3) { animation-delay: .34s; }
.home-hero.is-ready .home-hero-panel-inner > *:nth-child(4),
.home-hero.is-ready .hero-inner > *:nth-child(4) { animation-delay: .42s; }
.home-hero.is-ready .home-hero-panel-inner > *:nth-child(5),
.home-hero.is-ready .hero-inner > *:nth-child(5) { animation-delay: .5s; }
.home-hero.is-ready .home-hero-panel-inner > *:nth-child(6),
.home-hero.is-ready .hero-inner > *:nth-child(6) { animation-delay: .58s; }
.home-hero.is-ready .home-hero-panel-inner > *:nth-child(7),
.home-hero.is-ready .hero-inner > *:nth-child(7) { animation-delay: .66s; }

@keyframes heroSlideIn {
    from { opacity: 0; transform: translateY(-16px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes heroSlideInRight {
    from { opacity: 0; transform: translateX(20px); }
    to { opacity: 1; transform: translateX(0); }
}
@keyframes heroContentIn {
    from { opacity: 0; transform: translateY(14px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes trustPop {
    from { opacity: 0; transform: translateY(20px) scale(.96); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

.home-hero-grid:hover,
.home-hero-stack:hover {
    box-shadow: none;
}
.home-trust-item {
    position: relative;
    overflow: hidden;
}
.home-trust-item::after {
    display: none;
}
.home-stat-card:hover {
    transform: none;
    box-shadow: none;
    border-color: var(--color-ink);
}
.home-stat-card:hover .home-stat-value {
    color: var(--color-ink);
}

.home-cta::after {
    display: none;
}

.home-band-featured .product-grid {
    perspective: 1200px;
}
.home-band-featured .product-card {
    transition: border-color var(--motion-base) ease;
}
.home-band-featured .product-card:hover {
    transform: none;
    box-shadow: none;
    border-color: var(--color-ink);
}
.page-home .home-band-featured .product-card:hover {
    border-color: var(--color-ink);
}

.section-title h2 {
    position: relative;
    display: inline-block;
}
.section-title h2::after {
    content: '';
    display: block;
    width: 2.5rem;
    height: 3px;
    margin: .55rem auto 0;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--color-accent), rgba(47, 181, 210, .25));
    transform: scaleX(0);
    transform-origin: center;
    transition: transform var(--motion-slow) var(--ease-out);
}
.reveal-on-scroll.is-visible .section-title h2::after,
.home-section .section-title h2::after {
    transform: scaleX(1);
}
.page-home .section-title h2::after {
    background: var(--color-ink);
    border-radius: 0;
}

.footer a {
    position: relative;
    transition: color var(--motion-fast) ease, padding-left var(--motion-fast) var(--ease-out);
}
.footer a:hover {
    padding-left: .25rem;
}

.feature-card,
.step-card,
.panel-card,
.home-service,
.home-shortcut {
    transition: border-color var(--motion-fast) ease;
}

.nav-link {
    position: relative;
    transition:
        color var(--motion-fast) ease,
        background var(--motion-fast) ease,
        box-shadow var(--motion-fast) ease;
}
.nav-link::after {
    display: none;
}

.header-search,
.home-hero-search {
    transition: box-shadow var(--motion-fast) var(--ease-out), border-color var(--motion-fast) ease;
}
.header-search:focus-within {
    border-color: var(--color-accent);
    box-shadow: none;
}

.hero-banner-dot {
    transition: background var(--motion-fast) ease, transform var(--motion-base) var(--ease-spring), width var(--motion-fast) ease;
}
.hero-banner-dot.is-active {
    width: 1.35rem;
    border-radius: 0;
}

.hero-pill {
    transition: background var(--motion-fast) ease, transform var(--motion-fast) var(--ease-out), border-color var(--motion-fast) ease;
}
.hero-pill:hover {
    transform: none;
    background: rgba(255, 255, 255, .16);
}

.category-card-home {
    transition: border-color var(--motion-base) ease;
}
.category-card-home:active {
    transform: none;
}

.home-dashboard {
    transition: border-color var(--motion-base) ease;
}
.home-dashboard:hover {
    box-shadow: none;
    border-color: var(--color-border);
}
.page-home .home-dashboard:hover {
    border-color: var(--color-ink);
}

.alert {
    animation: alertIn .45s var(--ease-out) both;
}
@keyframes alertIn {
    from { opacity: 0; transform: translateY(-8px); }
    to { opacity: 1; transform: translateY(0); }
}

.back-to-top {
    transition:
        transform var(--motion-base) var(--ease-spring),
        opacity var(--motion-fast) ease,
        background var(--motion-fast) ease,
        box-shadow var(--motion-fast) ease;
}
.back-to-top:not([hidden]) {
    animation: backToTopIn .4s var(--ease-spring) both;
}
@keyframes backToTopIn {
    from { opacity: 0; transform: translateY(12px) scale(.9); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
    .reveal-on-scroll,
    .reveal-stagger > * {
        opacity: 1;
        transform: none;
    }
    .hero-banner-slide {
        transform: none !important;
    }
}

/* ── Admin full-width shell v12 ── */
body.admin-body.has-admin-panel {
    background: #e9edf2;
}

.has-admin-panel {
    --admin-sidebar-width: 268px;
    --admin-sidebar-collapsed-width: 60px;
    --admin-header-height: 0px;
    --admin-content-padding: clamp(1rem, 2vw, 1.5rem);
}

.has-admin-panel .admin-main {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    flex: 1;
    min-width: 0;
}

.has-admin-panel .admin-panel {
    width: 100%;
    max-width: none;
    margin: 0;
    gap: 0;
    align-items: stretch;
}

.has-admin-panel .admin-panel-main {
    padding: var(--admin-content-padding);
    padding-top: .75rem;
    padding-bottom: 2rem;
    background: var(--color-bg);
}

.has-admin-panel .admin-footer {
    width: 100%;
    margin-top: 0;
    border-top: 1px solid var(--color-border);
}

.has-admin-panel .admin-footer-inner {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: .85rem var(--admin-content-padding) 1.1rem;
}

.has-admin-panel .admin-page-header {
    position: static;
    top: auto;
    z-index: 1;
    margin-left: calc(-1 * var(--admin-content-padding));
    margin-right: calc(-1 * var(--admin-content-padding));
    margin-top: 0;
    margin-bottom: 1rem;
    padding: 1rem var(--admin-content-padding) 1.05rem;
    border-left: 0;
    border-radius: 0;
    border-bottom: 1px solid var(--color-border);
    box-shadow: 0 1px 0 rgba(255, 255, 255, .6);
}

.has-admin-panel .page-header.admin-page-header {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
}

.has-admin-panel .admin-dashboard-kpis.admin-stats {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.has-admin-panel .admin-dashboard-grid {
    grid-template-columns: minmax(0, 1fr) minmax(280px, 340px);
}

.has-admin-panel .admin-alerts-bar {
    margin: calc(-1 * .75rem) calc(-1 * var(--admin-content-padding)) 1rem;
    padding: .65rem var(--admin-content-padding);
    border-bottom: 1px solid var(--color-border);
    background: rgba(255, 255, 255, .72);
    backdrop-filter: blur(6px);
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}

@media (min-width: 769px) {
    .has-admin-panel .admin-panel {
        display: flex;
        min-height: calc(100vh - var(--admin-header-height));
    }

    .has-admin-panel .admin-sidebar {
        position: sticky;
        top: var(--admin-header-height);
        flex: 0 0 var(--admin-sidebar-width);
        width: var(--admin-sidebar-width);
        height: calc(100vh - var(--admin-header-height));
        max-height: none;
        margin: 0;
        padding: .75rem .65rem 1.25rem;
        border-radius: 0;
        border-right: 1px solid rgba(255, 255, 255, .06);
        background: #101010;
        align-self: flex-start;
        overscroll-behavior: contain;
    }

    .has-admin-panel .admin-sidebar-section.panel-card,
    .has-admin-panel .admin-sidebar-profile.panel-card,
    .has-admin-panel .admin-sidebar-exports.panel-card {
        border-radius: var(--radius-lg);
    }

    .has-admin-panel .admin-panel-main {
        flex: 1;
        min-width: 0;
    }

    body.admin-sidebar-collapsed.has-admin-panel .admin-sidebar {
        flex: 0 0 var(--admin-sidebar-collapsed-width);
        width: var(--admin-sidebar-collapsed-width);
        min-width: var(--admin-sidebar-collapsed-width);
        max-width: var(--admin-sidebar-collapsed-width);
        padding-left: .25rem;
        padding-right: .25rem;
    }

    body.admin-sidebar-collapsed.has-admin-panel .admin-panel {
        display: flex;
    }
}

@media (max-width: 1200px) {
    .has-admin-panel .admin-dashboard-kpis.admin-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.admin-panel-mobile-toggle {
    display: none;
}

.admin-mobile-topbar {
    display: none;
}

@media (max-width: 768px) {
    .has-admin-panel {
        --admin-content-padding: 1rem;
        --admin-mobile-topbar-height: calc(3rem + env(safe-area-inset-top, 0px));
    }

    .admin-mobile-topbar {
        display: flex;
        align-items: center;
        gap: .65rem;
        position: sticky;
        top: 0;
        z-index: 180;
        width: 100%;
        min-height: var(--admin-mobile-topbar-height);
        padding: .55rem var(--admin-content-padding);
        padding-top: calc(.55rem + env(safe-area-inset-top, 0px));
        background: var(--color-ink);
        color: #fff;
        border-bottom: 2px solid var(--color-accent);
        box-shadow: 0 4px 20px rgba(0, 0, 0, .18);
    }

    body.admin-panel-nav-open .admin-mobile-topbar {
        z-index: 220;
    }

    .admin-mobile-topbar-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        width: 2.5rem;
        height: 2.5rem;
        padding: 0;
        border: 1px solid rgba(255, 255, 255, .18);
        border-radius: var(--radius);
        background: rgba(255, 255, 255, .08);
        color: #fff;
        font-size: 1.05rem;
        line-height: 1;
        cursor: pointer;
        text-decoration: none;
        transition: background .15s, border-color .15s;
    }

    .admin-mobile-topbar-btn:hover {
        background: rgba(255, 255, 255, .16);
        border-color: rgba(255, 255, 255, .28);
        color: #fff;
        text-decoration: none;
    }

    .admin-mobile-menu-btn {
        font-size: 1.15rem;
    }

    .admin-mobile-brand {
        display: inline-flex;
        align-items: center;
        gap: .5rem;
        min-width: 0;
        flex: 1;
        text-decoration: none;
        color: #fff;
    }

    .admin-mobile-brand:hover {
        color: #fff;
        text-decoration: none;
    }

    .admin-mobile-brand img {
        width: auto;
        height: 22px;
        max-width: 88px;
        flex-shrink: 0;
    }

    .admin-mobile-brand-badge {
        font-size: .62rem;
        font-weight: 700;
        letter-spacing: .08em;
        text-transform: uppercase;
        padding: .18rem .45rem;
        border-radius: 4px;
        background: rgba(255, 255, 255, .14);
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .admin-mobile-topbar-actions {
        display: inline-flex;
        align-items: center;
        gap: .4rem;
        flex-shrink: 0;
    }

    .has-admin-panel .admin-panel {
        display: flex;
        flex-direction: column;
        min-height: 100vh;
        min-height: 100dvh;
    }

    .has-admin-panel .admin-panel-main {
        flex: 1;
        padding: var(--admin-content-padding);
        padding-bottom: calc(1.5rem + env(safe-area-inset-bottom, 0px));
        gap: .75rem;
    }

    .has-admin-panel .admin-page-header,
    .has-admin-panel .admin-alerts-bar,
    .has-admin-panel .admin-dashboard-page .admin-dashboard-hero {
        margin-left: 0;
        margin-right: 0;
        margin-top: 0;
        border-radius: var(--radius-lg);
    }

    .has-admin-panel .admin-page-header {
        position: static;
        margin-bottom: .75rem;
        padding: 1rem;
        border-left: 4px solid var(--color-accent);
        box-shadow: var(--shadow);
    }

    .has-admin-panel .admin-page-header h1 {
        font-size: 1.25rem;
        line-height: 1.25;
    }

    .admin-page-header .breadcrumbs,
    .admin-page-header .page-header-crumb {
        overflow-x: auto;
        white-space: nowrap;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .admin-page-header .breadcrumbs::-webkit-scrollbar,
    .admin-page-header .page-header-crumb::-webkit-scrollbar {
        display: none;
    }

    .admin-page-header-row {
        flex-direction: column;
        align-items: stretch;
        gap: .75rem;
    }

    .admin-page-header-actions {
        width: 100%;
    }

    .admin-page-header-actions .btn {
        flex: 1 1 auto;
        justify-content: center;
        min-width: 0;
    }

    .has-admin-panel .admin-alerts-bar {
        flex-direction: column;
        flex-wrap: nowrap;
        overflow: visible;
        margin: 0 0 .75rem;
        padding: .65rem;
        border: 1px solid var(--color-border);
        border-radius: var(--radius-lg);
        background: var(--color-surface);
        backdrop-filter: none;
    }

    .has-admin-panel .admin-alert {
        width: 100%;
        border-radius: var(--radius);
        justify-content: flex-start;
        white-space: normal;
    }

    .admin-dashboard-hero {
        flex-direction: column;
        align-items: stretch;
        padding: 1.1rem 1rem;
        gap: 1rem;
    }

    .admin-dashboard-welcome {
        font-size: 1.2rem;
        line-height: 1.25;
    }

    .admin-dashboard-hero-actions {
        width: 100%;
        flex-direction: column;
    }

    .admin-dashboard-hero-actions .btn {
        width: 100%;
        justify-content: center;
    }

    .has-admin-panel .admin-dashboard-kpis.admin-stats {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        overflow: visible;
        flex-wrap: unset;
        gap: .65rem;
        padding-bottom: 0;
    }

    .has-admin-panel .admin-dashboard-kpis.admin-stats .stat-card {
        flex: unset;
        min-width: 0;
    }

    .has-admin-panel .admin-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .has-admin-panel .admin-filter-tabs-scroll {
        top: var(--admin-mobile-topbar-height);
    }

    .has-admin-panel .table-wrap,
    .has-admin-panel .cart-table-wrap,
    .has-admin-panel .admin-panel-main > .table-wrap {
        border-radius: var(--radius-lg);
        -webkit-overflow-scrolling: touch;
    }

    .filter-tabs {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .filter-tabs::-webkit-scrollbar {
        display: none;
    }

    .filter-tab {
        flex-shrink: 0;
    }

    .admin-status-row {
        gap: .75rem;
    }

    .admin-status-card {
        min-width: 0;
    }

    .admin-sidebar {
        padding-top: max(1rem, env(safe-area-inset-top));
        padding-bottom: max(1rem, env(safe-area-inset-bottom));
        width: min(320px, 92vw);
    }

    .admin-toast-stack {
        top: calc(var(--admin-mobile-topbar-height) + .75rem);
        right: .75rem;
        width: min(420px, calc(100vw - 1.5rem));
    }

    .admin-scroll-top {
        right: .85rem;
        bottom: calc(.85rem + env(safe-area-inset-bottom, 0px));
    }

    .admin-command-panel {
        width: min(100%, calc(100vw - 1.5rem));
        margin: .75rem;
    }

    .has-admin-panel .panel-card > h2:first-child {
        padding: .85rem 1rem;
        font-size: .95rem;
    }

    .has-admin-panel .form-row,
    .has-admin-panel .admin-form-grid {
        grid-template-columns: 1fr !important;
    }

    .admin-filter-bar {
        gap: .4rem;
    }

    .admin-filter-bar .btn,
    .admin-filter-bar .form-control {
        width: 100%;
    }
}

@media (max-width: 480px) {
    .has-admin-panel .admin-dashboard-kpis.admin-stats,
    .has-admin-panel .admin-stats {
        grid-template-columns: 1fr;
    }

    .admin-sidebar-quick {
        grid-template-columns: 1fr;
    }

    .admin-page-header-actions {
        flex-direction: column;
    }

    .admin-page-header-actions .btn {
        width: 100%;
    }
}

@media (min-width: 1400px) {
    .has-admin-panel .admin-dashboard-kpis.admin-stats {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/* ── Admin UI polish v13 — product/category detail, dashboard ── */
.admin-product-detail-grid .admin-detail-main {
    display: grid;
    gap: 1rem;
}
.admin-product-preview-card,
.admin-product-translation-card,
.admin-category-form-card {
    padding: 1.25rem 1.35rem;
}
.admin-product-preview-card h2,
.admin-product-translation-card h2,
.admin-category-form-card h2 {
    margin: 0 0 .85rem;
    font-size: 1rem;
    font-family: var(--font-display);
}
.admin-product-image-wrap {
    flex-shrink: 0;
}
.admin-product-image {
    width: 100%;
    max-width: 220px;
    height: auto;
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow);
}
.admin-product-image-placeholder {
    width: 220px;
    height: 220px;
    max-width: 100%;
    border-radius: var(--radius-lg);
    background: var(--color-surface-subtle);
    border: 1px dashed var(--color-border);
}
.admin-product-preview {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 1.25rem;
    align-items: start;
}
.admin-section-subtitle,
.admin-form-section-title {
    margin: 1rem 0 .65rem;
    font-size: .92rem;
    font-family: var(--font-display);
    color: var(--color-text);
}
.admin-form-section-title {
    padding-top: .5rem;
    border-top: 1px solid var(--color-border);
}
.admin-seo-preview {
    font-size: .84rem;
    line-height: 1.45;
    margin: .5rem 0 0;
}
.admin-info-dl-compact dt {
    font-size: .78rem;
    color: var(--color-muted);
}
.admin-info-dl-compact dd {
    margin-bottom: .55rem;
    font-size: .9rem;
}
.admin-product-pricing-section {
    margin-top: 1rem;
    padding: 1.25rem 1.35rem;
}
.admin-product-pricing-section > h2 {
    margin: 0 0 .5rem;
    font-size: 1rem;
    font-family: var(--font-display);
}
.admin-product-copy-form,
.admin-product-override-form {
    margin: .85rem 0 1rem;
    padding: .85rem 0;
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
}
.admin-product-base-price-card .admin-settings-form {
    margin-top: .75rem;
}
.admin-input-qty {
    width: 4.5rem !important;
}
.admin-inline-translate {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    align-items: center;
}
.admin-inline-translate .input-sm {
    min-width: 8rem;
    flex: 1;
}
.admin-category-path a {
    color: var(--color-text);
    text-decoration: none;
    font-weight: 600;
}
.admin-category-path a:hover {
    color: var(--color-accent);
}
.admin-dashboard-hero {
    border-radius: var(--radius-lg);
    margin-bottom: 1.15rem;
}
.has-admin-panel .stat-card {
    border-radius: var(--radius-lg);
    transition: transform .15s, box-shadow .15s, border-color .15s;
}
.has-admin-panel .stat-card:hover {
    border-color: rgba(47, 181, 210, .35);
}
.has-admin-panel .admin-sidebar-profile {
    border-radius: var(--radius-lg);
}
.admin-client-create-card {
    max-width: 42rem;
    padding: 1.35rem 1.5rem;
}
@media (max-width: 768px) {
    .admin-product-preview {
        grid-template-columns: 1fr;
    }
    .admin-product-image,
    .admin-product-image-placeholder {
        max-width: 100%;
        width: 100%;
    }
}

/* ── Admin UI polish v14 — product list, cart order ── */
.admin-products-sync-banner {
    padding: .85rem 1.15rem;
    margin-bottom: .85rem;
    border-left: 3px solid var(--color-accent);
}
.admin-products-sync-text {
    margin: 0 0 .35rem;
    font-size: .88rem;
    line-height: 1.45;
}
.admin-products-sync-meta {
    margin: 0;
    font-size: .82rem;
}
.admin-products-table .col-thumb {
    width: 3.5rem;
    min-width: 3.5rem;
}
.admin-products-table .row-thumb,
.admin-products-table .row-thumb-empty {
    display: block;
}
.admin-products-table.cart-table-wrap {
    overflow-x: auto;
}
.admin-products-table .table {
    min-width: 760px;
}
.admin-products-table td strong {
    display: inline;
    margin-right: .35rem;
}
.admin-badge-fr {
    font-size: .65rem;
    vertical-align: middle;
}
.admin-table-pagination {
    padding: .85rem 1.15rem;
    border-top: 1px solid var(--color-border);
    margin: 0;
}
.admin-cart-order-grid {
    margin-bottom: 1rem;
}
.admin-cart-order-form-card,
.admin-cart-order-grid > .panel-card {
    padding: 1.25rem 1.35rem;
}
.admin-cart-order-form-card h2,
.admin-cart-order-grid > .panel-card h2 {
    margin: 0 0 .65rem;
    font-size: 1rem;
    font-family: var(--font-display);
}
.admin-cart-order-meta {
    margin: 0 0 .85rem;
    font-size: .88rem;
}
.has-admin-panel .admin-products-table tbody tr:hover td {
    background: rgba(47, 181, 210, .04);
}
.has-admin-panel .admin-filter-tabs-scroll {
    margin-bottom: .85rem;
}

/* ── Admin UI polish v15 — customers list ── */
.admin-customers-pending {
    margin-bottom: 1rem;
}
.admin-customers-table tbody tr:hover td {
    background: rgba(47, 181, 210, .04);
}
.admin-customers-table .row-pending td {
    background: rgba(255, 193, 7, .06);
}
.admin-cell-inline-form {
    min-width: 9rem;
}
.admin-inline-form-compact {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem;
}
.admin-inline-form-compact .input-compact,
.admin-inline-form-compact select.input-compact {
    max-width: 10rem;
    font-size: .82rem;
    padding: .25rem .45rem;
}
.admin-inline-form-compact .input-narrow {
    width: 5.5rem;
}
.admin-outstanding-hint {
    margin-top: .35rem;
    font-size: .78rem;
    color: var(--color-muted);
}
.admin-outstanding-hint strong {
    color: var(--color-warning, #c77800);
}
@media (max-width: 900px) {
    .admin-customers-table .admin-cell-inline-form {
        min-width: 0;
    }
    .admin-inline-form-compact .input-compact,
    .admin-inline-form-compact select.input-compact {
        max-width: 100%;
        flex: 1 1 100%;
    }
}

/* ── Admin UI polish v16 — login, a11y, header, toasts ── */
.skip-link {
    position: absolute;
    top: -120%;
    left: 1rem;
    z-index: 9999;
    padding: .55rem 1rem;
    border-radius: var(--radius);
    background: var(--color-ink);
    color: #fff;
    font-size: .88rem;
    font-weight: 700;
    text-decoration: none;
    box-shadow: var(--shadow-lg);
    transition: top .15s ease;
}
.skip-link:focus {
    top: .85rem;
    outline: 2px solid var(--color-accent);
    outline-offset: 2px;
}
.password-field {
    position: relative;
}
.password-field input {
    width: 100%;
    padding-right: 2.85rem;
}
.password-toggle {
    position: absolute;
    right: .35rem;
    top: 50%;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
    border: 0;
    border-radius: var(--radius);
    background: transparent;
    color: var(--color-muted);
    cursor: pointer;
    transition: background .15s, color .15s;
}
.password-toggle:hover {
    background: var(--color-surface-subtle);
    color: var(--color-text);
}
.password-toggle-hide { display: none; }
.password-field.is-visible .password-toggle-show { display: none; }
.password-field.is-visible .password-toggle-hide { display: inline; }
.admin-auth-layout-login {
    min-height: 100dvh;
}
.admin-auth-layout-login:hover .admin-login-visual > img {
    transform: scale(1.03);
}
.admin-login-visual > img {
    transition: transform 8s ease;
}
.admin-login-panel .auth-form-head h1::after {
    display: none;
}
.admin-login-form {
    border-radius: var(--radius-lg);
    padding: 1.35rem;
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
    box-shadow: none;
}
.admin-login-form .auth-field input {
    background: var(--color-bg);
}
.admin-login-perks {
    display: none;
}
.admin-login-submit.is-loading {
    opacity: .75;
    pointer-events: none;
}
form.is-submitting {
    pointer-events: none;
}
body.admin-sidebar-collapsed .admin-sidebar-link[data-tooltip] {
    position: relative;
}
body.admin-sidebar-collapsed .admin-sidebar-link[data-tooltip]::after {
    content: attr(data-tooltip);
    position: absolute;
    left: calc(100% + .55rem);
    top: 50%;
    transform: translateY(-50%) translateX(-4px);
    padding: .35rem .65rem;
    border-radius: var(--radius);
    background: var(--color-ink);
    color: #fff;
    font-size: .75rem;
    font-weight: 600;
    white-space: nowrap;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transition: opacity .12s, transform .12s, visibility .12s;
    z-index: 400;
    box-shadow: var(--shadow-lg);
}
body.admin-sidebar-collapsed .admin-sidebar-link[data-tooltip]:hover::after,
body.admin-sidebar-collapsed .admin-sidebar-link[data-tooltip]:focus-visible::after {
    opacity: 1;
    visibility: visible;
    transform: translateY(-50%) translateX(0);
}
.admin-toast-stack {
    position: fixed;
    top: calc(var(--admin-header-height, 72px) + .75rem);
    right: 1rem;
    z-index: 500;
    display: grid;
    gap: .55rem;
    width: min(420px, calc(100vw - 2rem));
    pointer-events: none;
}
.admin-toast {
    position: relative;
    pointer-events: auto;
    margin: 0;
    padding-right: 2.5rem;
    box-shadow: var(--shadow-lg);
    animation: adminToastIn .35s ease;
}
.admin-toast.is-hiding {
    animation: adminToastOut .3s ease forwards;
}
.admin-toast-close {
    position: absolute;
    top: .55rem;
    right: .55rem;
    width: 1.65rem;
    height: 1.65rem;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: rgba(0, 0, 0, .06);
    color: inherit;
    font-size: 1.1rem;
    line-height: 1;
    cursor: pointer;
    opacity: .65;
    transition: opacity .12s, background .12s;
}
.admin-toast-close:hover {
    opacity: 1;
    background: rgba(0, 0, 0, .1);
}
@keyframes adminToastIn {
    from { opacity: 0; transform: translateY(-8px) scale(.98); }
    to { opacity: 1; transform: none; }
}
@keyframes adminToastOut {
    from { opacity: 1; transform: none; }
    to { opacity: 0; transform: translateY(-6px); }
}
.has-admin-panel .admin-sidebar-link:focus-visible,
.admin-login-body .auth-field input:focus-visible,
.admin-login-body .btn:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 2px;
}
@media (max-width: 900px) {
    .admin-login-panel-inner {
        max-width: none;
    }
}
@media (prefers-reduced-motion: reduce) {
    .admin-toast { animation: none; }
    .admin-toast.is-hiding { animation: none; opacity: 0; }
}

/* ── Admin UI polish v17 — dashboard, command palette, tables ── */
.admin-dashboard-page {
    display: grid;
    gap: .85rem;
}
.admin-dashboard-crumb {
    margin: 0 0 .65rem;
    font-size: .78rem;
}
.admin-dashboard-crumb .crumb-current {
    color: rgba(255, 255, 255, .72);
    font-weight: 600;
}
.admin-dashboard-welcome {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(1.35rem, 2.5vw, 1.75rem);
    line-height: 1.2;
}
.has-admin-panel .admin-dashboard-page .admin-dashboard-hero {
    margin-top: calc(-1 * var(--admin-content-padding));
    margin-left: calc(-1 * var(--admin-content-padding));
    margin-right: calc(-1 * var(--admin-content-padding));
    border-radius: 0;
    margin-bottom: .25rem;
}
.has-admin-panel .admin-dashboard-kpis.admin-stats {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    gap: .65rem;
    padding-bottom: .25rem;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}
.has-admin-panel .admin-dashboard-kpis.admin-stats .stat-card {
    flex: 0 0 min(168px, 42vw);
    min-width: 148px;
}
.has-admin-panel .admin-filter-tabs-scroll {
    position: sticky;
    top: 0;
    z-index: 45;
    background: rgba(245, 246, 248, .92);
    backdrop-filter: blur(8px);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: 0 4px 16px rgba(0, 0, 0, .04);
}
.admin-sidebar-filter-input {
    width: 100%;
    padding: .5rem .65rem;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: var(--radius);
    background: rgba(255, 255, 255, .06);
    color: #fff;
    font: inherit;
    font-size: .82rem;
}
.admin-sidebar-filter-input::placeholder {
    color: rgba(255, 255, 255, .45);
}
.admin-sidebar-filter-input:focus {
    outline: none;
    border-color: var(--color-accent);
    box-shadow: 0 0 0 3px rgba(47, 181, 210, .22);
}
.admin-sidebar-filter-empty {
    margin: -.35rem 0 .35rem;
    padding: 0 .65rem;
    font-size: .78rem;
    color: rgba(255, 255, 255, .55);
}
body.admin-sidebar-collapsed .admin-sidebar-filter,
body.admin-sidebar-collapsed .admin-sidebar-filter-empty {
    display: none !important;
}
.admin-sidebar-link-logout {
    color: #fca5a5 !important;
}
.admin-sidebar-link-logout:hover {
    background: rgba(239, 68, 68, .12) !important;
    border-color: rgba(239, 68, 68, .25) !important;
}
.admin-sidebar-link-logout.is-active {
    background: rgba(239, 68, 68, .15) !important;
    border-color: rgba(239, 68, 68, .35) !important;
    box-shadow: inset 3px 0 0 #ef4444 !important;
}
.admin-command-palette[hidden] {
    display: none !important;
}
body.admin-command-open {
    overflow: hidden;
}
.admin-command-backdrop {
    position: fixed;
    inset: 0;
    z-index: 600;
    background: rgba(0, 0, 0, .45);
    backdrop-filter: blur(3px);
}
.admin-command-panel {
    position: fixed;
    top: clamp(4rem, 12vh, 7rem);
    left: 50%;
    z-index: 610;
    transform: translateX(-50%);
    width: min(560px, calc(100vw - 2rem));
    padding: .85rem;
    border-radius: var(--radius-lg);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    box-shadow: 0 24px 64px rgba(0, 0, 0, .22);
}
.admin-command-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .35rem .35rem .65rem;
}
.admin-command-head h2 {
    margin: 0;
    font-size: .92rem;
    font-family: var(--font-display);
}
.admin-command-kbd,
.admin-footer-hint kbd {
    display: inline-flex;
    align-items: center;
    padding: .12rem .4rem;
    border: 1px solid var(--color-border);
    border-radius: 4px;
    background: var(--color-surface-subtle);
    font-family: ui-monospace, monospace;
    font-size: .68rem;
    font-weight: 600;
    color: var(--color-muted);
}
.admin-command-input {
    width: 100%;
    padding: .75rem .9rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    font: inherit;
    font-size: 1rem;
    background: var(--color-bg);
}
.admin-command-input:focus {
    outline: none;
    border-color: var(--color-accent);
    box-shadow: 0 0 0 3px var(--color-accent-ring);
}
.admin-command-list {
    list-style: none;
    margin: .55rem 0 0;
    padding: 0;
    max-height: min(340px, 50vh);
    overflow-y: auto;
}
.admin-command-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    width: 100%;
    padding: .65rem .75rem;
    border: 0;
    border-radius: var(--radius);
    background: transparent;
    text-align: left;
    font: inherit;
    font-size: .9rem;
    font-weight: 600;
    color: var(--color-text);
    cursor: pointer;
    transition: background .12s;
}
.admin-command-item:hover,
.admin-command-item.is-active {
    background: rgba(47, 181, 210, .1);
    color: var(--color-text);
}
.admin-command-item-label {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.admin-command-item-meta {
    opacity: .55;
    font-size: .82rem;
}
.admin-command-empty {
    margin: .65rem .35rem .25rem;
    font-size: .86rem;
    text-align: center;
}
.admin-footer-hint {
    font-size: .74rem;
    color: var(--color-muted);
}
.has-admin-panel tr.admin-row-link {
    cursor: pointer;
}
.has-admin-panel tr.admin-row-link:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: -2px;
}
.has-admin-panel tr.admin-row-link:hover td {
    background: rgba(47, 181, 210, .07);
}
.has-admin-panel .admin-row-action {
    position: relative;
    z-index: 1;
}
.has-admin-panel .section.panel-card .admin-empty-state {
    padding: 2rem 1.35rem 2.25rem;
}
@media (min-width: 901px) {
    .has-admin-panel .admin-dashboard-kpis.admin-stats {
        display: grid;
        overflow: visible;
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
    .has-admin-panel .admin-dashboard-kpis.admin-stats .stat-card {
        flex: initial;
        min-width: 0;
    }
}
@media (max-width: 768px) {
    .admin-footer-hint {
        width: 100%;
    }
}

/* ── Admin UI polish v18 — list pages, tables, results ── */
.admin-results-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .5rem .85rem;
    padding: .55rem .85rem;
    margin-bottom: .85rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-surface);
    box-shadow: var(--shadow);
    font-size: .84rem;
}
.admin-results-count {
    font-weight: 700;
    color: var(--color-text);
}
.admin-results-reset {
    color: var(--color-accent);
    font-weight: 600;
    text-decoration: none;
}
.admin-results-reset:hover {
    color: var(--color-text);
    text-decoration: none;
}
.admin-results-bar-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem .65rem;
}
.has-admin-panel .admin-stats-compact {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    gap: .65rem;
    padding-bottom: .2rem;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}
.has-admin-panel .admin-stats-compact .stat-card,
.has-admin-panel .admin-stats-compact .stat-card-link {
    flex: 0 0 min(160px, 40vw);
    min-width: 138px;
}
@media (min-width: 901px) {
    .has-admin-panel .admin-stats-compact {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
        overflow: visible;
    }
    .has-admin-panel .admin-stats-compact .stat-card,
    .has-admin-panel .admin-stats-compact .stat-card-link {
        flex: initial;
        min-width: 0;
    }
}
.has-admin-panel tr.row-stock-critical td {
    background: rgba(239, 68, 68, .04);
}
.has-admin-panel tr.row-stock-critical td:first-child {
    box-shadow: inset 3px 0 0 #ef4444;
}
.has-admin-panel tr.row-untranslated td {
    background: rgba(245, 158, 11, .04);
}
.has-admin-panel tr.row-untranslated td:first-child {
    box-shadow: inset 3px 0 0 #f59e0b;
}
.has-admin-panel .admin-table .admin-row-actions {
    position: sticky;
    right: 0;
    z-index: 1;
    background: linear-gradient(90deg, transparent 0%, var(--color-surface) 28%);
    white-space: nowrap;
    text-align: right;
}
.has-admin-panel tr.admin-row-link:hover .admin-row-actions {
    background: linear-gradient(90deg, transparent 0%, rgba(47, 181, 210, .07) 28%);
}
.has-admin-panel .admin-dashboard-tops .admin-empty-state {
    padding: 1.35rem 1rem 1.5rem;
}
.has-admin-panel .admin-dashboard-tops .admin-empty-state-icon {
    width: 2.75rem;
    height: 2.75rem;
    margin-bottom: .65rem;
}
.has-admin-panel .admin-dashboard-tops .admin-empty-state-message {
    font-size: .9rem;
}
.has-admin-panel .admin-dashboard-tops .admin-empty-state-hint {
    font-size: .82rem;
}
.has-admin-panel .admin-filter-bar:focus-within {
    border-color: rgba(47, 181, 210, .35);
    box-shadow: 0 0 0 3px rgba(47, 181, 210, .12);
}
.has-admin-panel .pagination {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    align-items: center;
    justify-content: center;
    padding: .85rem 1rem;
    background: var(--color-surface-subtle);
}
.has-admin-panel .pagination a {
    min-width: 2rem;
    text-align: center;
    padding: .35rem .55rem;
    border-radius: var(--radius);
    text-decoration: none;
    font-weight: 600;
    font-size: .84rem;
    color: var(--color-text);
    border: 1px solid transparent;
    transition: background .12s, border-color .12s;
}
.has-admin-panel .pagination a:hover {
    background: var(--color-surface);
    border-color: var(--color-border);
    text-decoration: none;
}
.has-admin-panel .pagination a.active {
    background: var(--color-ink);
    color: #fff;
    border-color: var(--color-ink);
    box-shadow: inset 0 -2px 0 var(--color-accent);
}
.admin-stock-ok {
    text-align: center;
    padding: 1.25rem 1.5rem;
    border-radius: var(--radius-lg);
}

/* ── Admin UI polish v19 — detail pages, status track ── */
.admin-page-back {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin: 0 0 .55rem;
    padding: .35rem .65rem;
    border-radius: 999px;
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
    color: var(--color-text);
    font-size: .82rem;
    font-weight: 600;
    text-decoration: none;
    transition: background .15s, border-color .15s, color .15s;
}
.admin-page-back:hover {
    background: rgba(47, 181, 210, .1);
    border-color: rgba(47, 181, 210, .35);
    color: var(--color-text);
    text-decoration: none;
}
.has-admin-panel .admin-page-header .admin-page-back {
    margin-bottom: .65rem;
}
.admin-status-track {
    margin-bottom: .85rem;
    padding: .85rem 1.15rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
}
.admin-status-track-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: flex-start;
    gap: 0;
}
.admin-status-step {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .45rem;
    text-align: center;
    position: relative;
    min-width: 0;
}
.admin-status-step:not(:last-child)::after {
    content: "";
    position: absolute;
    top: .55rem;
    left: calc(50% + .75rem);
    right: calc(-50% + .75rem);
    height: 2px;
    background: var(--color-border);
    z-index: 0;
}
.admin-status-step.is-done:not(:last-child)::after {
    background: var(--color-accent);
}
.admin-status-step.is-error:not(:last-child)::after {
    background: rgba(239, 68, 68, .45);
}
.admin-status-step-dot {
    position: relative;
    z-index: 1;
    width: 1.1rem;
    height: 1.1rem;
    border-radius: 50%;
    border: 2px solid var(--color-border);
    background: var(--color-surface);
}
.admin-status-step.is-done .admin-status-step-dot {
    border-color: var(--color-accent);
    background: var(--color-accent);
    box-shadow: 0 0 0 3px rgba(47, 181, 210, .22);
}
.admin-status-step.is-current .admin-status-step-dot {
    border-color: var(--color-accent);
    background: #fff;
    box-shadow: 0 0 0 3px rgba(47, 181, 210, .25);
}
.admin-status-step.is-error .admin-status-step-dot {
    border-color: #ef4444;
    background: #ef4444;
    box-shadow: 0 0 0 3px rgba(239, 68, 68, .18);
}
.admin-status-step.is-cancelled .admin-status-step-dot {
    border-color: var(--color-muted);
    background: var(--color-surface-subtle);
}
.admin-status-step-label {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--color-muted);
    line-height: 1.25;
    padding: 0 .25rem;
}
.admin-status-step.is-done .admin-status-step-label,
.admin-status-step.is-current .admin-status-step-label {
    color: var(--color-text);
}
.admin-status-step.is-error .admin-status-step-label {
    color: #b91c1c;
}
.has-admin-panel .admin-detail-meta {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    gap: .65rem;
    padding-bottom: .15rem;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}
.has-admin-panel .admin-detail-meta .meta-card {
    flex: 0 0 min(200px, 42vw);
    min-width: 168px;
    margin: 0;
}
@media (min-width: 901px) {
    .has-admin-panel .admin-detail-meta {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
        overflow: visible;
    }
    .has-admin-panel .admin-detail-meta .meta-card {
        flex: initial;
        min-width: 0;
    }
}
.has-admin-panel .admin-detail-toolbar {
    position: sticky;
    top: calc(var(--admin-header-height, 72px) + .35rem);
    z-index: 40;
    background: rgba(255, 255, 255, .92);
    backdrop-filter: blur(8px);
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow);
}
.has-admin-panel .admin-detail-toolbar-inner {
    gap: .45rem .55rem;
}
.has-admin-panel .admin-detail-toolbar .btn-sm {
    white-space: nowrap;
}
.has-admin-panel .admin-message-thread {
    display: grid;
    gap: 1rem;
}
.has-admin-panel .admin-message-thread .message-bubble {
    max-width: min(720px, 100%);
}
.has-admin-panel .admin-message-thread .message-bubble-outbound {
    margin-left: auto;
}
.has-admin-panel .admin-detail-side-card {
    position: sticky;
    top: calc(var(--admin-header-height, 72px) + 4.5rem);
}
.has-admin-panel form.is-submitting .admin-sync-action-card {
    opacity: .85;
}
.has-admin-panel .admin-sync-action-card .btn.is-loading {
    opacity: .75;
    pointer-events: none;
}
@media (max-width: 768px) {
    .admin-status-track-list {
        flex-direction: column;
        align-items: stretch;
        gap: .65rem;
    }
    .admin-status-step {
        flex-direction: row;
        align-items: center;
        text-align: left;
        gap: .65rem;
    }
    .admin-status-step:not(:last-child)::after {
        display: none;
    }
    .admin-status-step-label {
        text-transform: none;
        font-size: .84rem;
        letter-spacing: normal;
    }
    .has-admin-panel .admin-detail-side-card {
        position: static;
    }
}

/* ── Admin UI polish v20 — translations, manual order, help ── */
.admin-wizard-steps {
    margin-bottom: 1rem;
    padding: .85rem 1.15rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
}
.admin-wizard-steps-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: .75rem;
}
.admin-wizard-step {
    flex: 1;
    display: flex;
    align-items: center;
    gap: .55rem;
    padding: .55rem .75rem;
    border-radius: var(--radius);
    border: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
    min-width: 0;
}
.admin-wizard-step.is-done {
    border-color: rgba(47, 181, 210, .35);
    background: rgba(47, 181, 210, .08);
}
.admin-wizard-step.is-current {
    border-color: var(--color-accent);
    background: rgba(47, 181, 210, .12);
    box-shadow: inset 0 0 0 1px rgba(47, 181, 210, .2);
}
.admin-wizard-step.is-pending {
    opacity: .65;
}
.admin-wizard-step-num {
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .78rem;
    font-weight: 800;
    background: var(--color-ink);
    color: #fff;
    flex-shrink: 0;
}
.admin-wizard-step.is-pending .admin-wizard-step-num {
    background: var(--color-border);
    color: var(--color-muted);
}
.admin-wizard-step.is-done .admin-wizard-step-num {
    background: var(--color-accent);
    color: var(--color-ink);
    font-size: 0;
}
.admin-wizard-step.is-done .admin-wizard-step-num::after {
    content: "✓";
    font-size: .78rem;
    line-height: 1;
}
.admin-wizard-step.is-current .admin-wizard-step-num {
    box-shadow: 0 0 0 2px rgba(47, 181, 210, .35);
}
.admin-wizard-step-label {
    font-size: .84rem;
    font-weight: 700;
    line-height: 1.25;
}
.admin-inline-filter-input,
.admin-help-search-input {
    width: 100%;
    margin: 0 0 .85rem;
    padding: .65rem .85rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    font: inherit;
    font-size: .92rem;
    background: var(--color-bg);
}
.admin-inline-filter-input:focus,
.admin-help-search-input:focus {
    outline: none;
    border-color: var(--color-accent);
    box-shadow: 0 0 0 3px var(--color-accent-ring);
}
.admin-help-search-wrap {
    padding: 1rem 1.15rem;
    margin-bottom: 1rem;
}
.admin-help-search-empty {
    margin: .35rem 0 0;
    font-size: .86rem;
    text-align: center;
}
.admin-settings-save-hint {
    margin: -.35rem 0 .85rem;
    font-size: .84rem;
}
.has-admin-panel .admin-translations-toolbar {
    position: sticky;
    top: calc(var(--admin-header-height, 72px) + .35rem);
    z-index: 35;
    background: rgba(255, 255, 255, .92);
    backdrop-filter: blur(8px);
}
.has-admin-panel .admin-settings-form-card {
    border-left: 3px solid transparent;
    transition: border-color .15s;
}
.has-admin-panel .admin-settings-form-card:focus-within {
    border-left-color: var(--color-accent);
}
@media (max-width: 768px) {
    .admin-wizard-steps-list {
        flex-direction: column;
    }
    .has-admin-panel .admin-translations-toolbar {
        position: static;
    }
}

/* ── Public UX polish — design, accessibilité, mobile ── */
.site-body:not(.has-admin-panel) .btn-primary {
    background: var(--color-ink);
    border-color: var(--color-ink);
    color: #fff;
    box-shadow: none;
}
.site-body:not(.has-admin-panel) .btn-primary:hover {
    background: #1a1a1a;
    border-color: #1a1a1a;
    color: #fff;
    box-shadow: none;
    transform: none;
}
.site-body:not(.has-admin-panel) {
    background: var(--color-bg);
}
.site-body:not(.has-admin-panel) .header-main::before {
    background: var(--color-ink);
}
.site-body:not(.has-admin-panel) .topbar::before,
.site-body:not(.has-admin-panel) .topbar::after {
    display: none;
}
.site-body:not(.has-admin-panel) .topbar-badge {
    border-color: rgba(255, 255, 255, .28);
    background: rgba(255, 255, 255, .08);
}
.site-body:not(.has-admin-panel) .topbar-badge::before {
    background: #fff;
    box-shadow: none;
}
.site-body:not(.has-admin-panel) .nav .nav-link.is-active,
.site-body:not(.has-admin-panel) .nav a:not(.btn).is-active {
    background: transparent;
    color: var(--color-ink);
    box-shadow: inset 0 -2px 0 var(--color-ink);
}
.site-body:not(.has-admin-panel) .nav .btn-header-cta:hover {
    transform: none;
    box-shadow: none;
}
.site-body:not(.has-admin-panel) .header-search:focus-within {
    border-color: var(--color-ink);
    box-shadow: none;
}
.site-body:not(.has-admin-panel) .header-search-btn {
    background: var(--color-ink);
    color: #fff;
}
.site-body:not(.has-admin-panel) .header-search-btn:hover {
    background: #1a1a1a;
    color: #fff;
}
.site-body:not(.has-admin-panel) .nav-toggle:hover {
    border-color: var(--color-ink);
    box-shadow: none;
}
.site-body:not(.has-admin-panel) .category-nav-link-accent:hover {
    background: rgba(255, 255, 255, .12);
}
.site-body:not(.has-admin-panel) .footer {
    border-top-color: var(--color-ink);
}
.site-body:not(.has-admin-panel) .footer a:hover {
    color: #fff;
}
.site-body:not(.has-admin-panel) .back-to-top {
    border-radius: 0;
    background: var(--color-ink);
    color: #fff;
    box-shadow: none;
    border: 1px solid var(--color-ink);
}
.site-body:not(.has-admin-panel) .back-to-top:hover {
    transform: none;
    background: #fff;
    color: var(--color-ink);
}
.site-body:not(.has-admin-panel) .skip-link {
    border-radius: 0;
}
.site-body:not(.has-admin-panel) .skip-link:focus {
    outline: 2px solid #fff;
    outline-offset: 2px;
}
.site-body:not(.has-admin-panel) #main-content:focus {
    outline: none;
}
.site-body:not(.has-admin-panel) .search-suggest {
    border-radius: 0;
    box-shadow: none;
    border-color: var(--color-border);
}
.site-body:not(.has-admin-panel) .search-suggest-item {
    border-radius: 0;
}
.site-body:not(.has-admin-panel) .search-suggest-item.is-active,
.site-body:not(.has-admin-panel) .search-suggest-item:focus-visible {
    background: var(--color-surface-subtle);
    outline: 2px solid var(--color-ink);
    outline-offset: -2px;
}
.site-body:not(.has-admin-panel) a:focus-visible,
.site-body:not(.has-admin-panel) button:focus-visible,
.site-body:not(.has-admin-panel) input:focus-visible,
.site-body:not(.has-admin-panel) select:focus-visible,
.site-body:not(.has-admin-panel) textarea:focus-visible {
    outline: 2px solid var(--color-ink);
    outline-offset: 2px;
}
.site-body:not(.has-admin-panel) .header-search input:focus-visible,
.site-body:not(.has-admin-panel) .home-hero-search input:focus-visible {
    outline: none;
}
.site-body:not(.has-admin-panel) .category-card-home:focus-visible {
    outline: 2px solid var(--color-ink);
    outline-offset: 4px;
}
.site-body:not(.has-admin-panel) .nav-search-mobile {
    display: none;
}
.site-body:not(.has-admin-panel) .home-search-hint {
    margin: -.65rem 0 1.1rem;
    font-size: .78rem;
    color: rgba(255, 255, 255, .58);
    line-height: 1.4;
}
.page-home .home-hero-aside .home-search-hint,
.page-home .home-hero-content .home-search-hint {
    text-align: center;
}
.site-body:not(.has-admin-panel) .cookie-banner {
    border-top: 1px solid var(--color-border);
    box-shadow: none;
}
.site-body:not(.has-admin-panel) .cookie-banner .btn-primary {
    background: var(--color-ink);
    border-color: var(--color-ink);
    color: #fff;
}
@media (max-width: 768px) {
    .site-body:not(.has-admin-panel) .nav-search-mobile {
        display: flex;
        width: 100%;
        gap: .5rem;
        margin: 0 0 .75rem;
        padding-bottom: .75rem;
        border-bottom: 1px solid var(--color-border);
    }
    .site-body:not(.has-admin-panel) .nav-search-mobile input {
        flex: 1;
        min-width: 0;
        padding: .65rem .75rem;
        border: 1px solid var(--color-border);
        border-radius: 0;
        font: inherit;
    }
    .site-body:not(.has-admin-panel) .nav-search-mobile .btn {
        flex-shrink: 0;
        white-space: nowrap;
    }
    .site-body:not(.has-admin-panel) .nav .nav-link,
    .site-body:not(.has-admin-panel) .nav a:not(.btn) {
        min-height: 2.75rem;
        display: flex;
        align-items: center;
    }
    .site-body:not(.has-admin-panel) .nav .nav-link.is-active,
    .site-body:not(.has-admin-panel) .nav a:not(.btn).is-active {
        border-left: 3px solid var(--color-ink);
        padding-left: calc(.5rem - 3px);
        box-shadow: none;
    }
    .site-body.nav-open {
        overflow: hidden;
    }
    .page-home .home-hero-aside .home-search-hint,
    .page-home .home-hero-content .home-search-hint,
    .page-home .home-hero-panel .home-search-hint {
        text-align: center;
    }
}
@media (prefers-reduced-motion: reduce) {
    .site-body:not(.has-admin-panel) .reveal-on-scroll,
    .site-body:not(.has-admin-panel) .reveal-stagger > *,
    .site-body:not(.has-admin-panel) .home-hero.is-ready .home-hero-media,
    .site-body:not(.has-admin-panel) .home-hero.is-ready .home-hero-panel,
    .site-body:not(.has-admin-panel) .home-hero.is-ready .home-hero-aside,
    .site-body:not(.has-admin-panel) .home-hero.is-ready .home-hero-content,
    .site-body:not(.has-admin-panel) .home-hero.is-ready .home-trust-strip > *,
    .site-body:not(.has-admin-panel) .home-hero.is-ready .hero-inner > *,
    .site-body:not(.has-admin-panel) .home-hero.is-ready .home-hero-panel-inner > * {
        animation: none !important;
        transition: none !important;
    }
    .site-body:not(.has-admin-panel) .reveal-on-scroll,
    .site-body:not(.has-admin-panel) .reveal-stagger {
        opacity: 1;
        transform: none;
    }
}

/* ── Catalog, product & contact UX ── */
.site-body.page-catalog .catalog-hero,
.site-body.page-catalog .public-notice {
    border-left-color: var(--color-ink);
}
.site-body.page-catalog .catalog-hero {
    border-left-width: 3px;
}
.site-body.page-catalog .public-notice {
    border-left-width: 3px;
}
.site-body.page-catalog .category-hero-banner.has-image .category-hero-banner-overlay,
.site-body.page-product .category-hero-banner.has-image .category-hero-banner-overlay {
    background: linear-gradient(105deg, rgba(17, 17, 17, .88) 0%, rgba(17, 17, 17, .62) 50%, rgba(17, 17, 17, .35) 100%);
}
.site-body.page-catalog .category-hero-search {
    background: var(--color-surface-subtle);
}
.site-body.page-catalog .category-hero-stat-value,
.site-body.page-product .category-hero-stat-value {
    background: var(--color-surface-subtle);
    color: var(--color-ink);
}
.site-body.page-catalog .category-hero-banner.has-image .category-hero-stat-value {
    background: rgba(255, 255, 255, .16);
    color: #fff;
}
.site-body.page-catalog .category-subgrid-count {
    border-radius: 0;
    background: var(--color-ink);
    color: #fff;
}
.site-body.page-catalog .category-subcard {
    border-radius: 0;
    transition: border-color .18s ease, background .18s ease;
}
.site-body.page-catalog .category-subcard:hover {
    border-color: var(--color-ink);
    background: #fff;
    transform: none;
    box-shadow: none;
}
.site-body.page-catalog .category-subcard.is-active {
    border-color: var(--color-ink);
    background: var(--color-surface-subtle);
    box-shadow: inset 3px 0 0 var(--color-ink);
}
.site-body.page-catalog .category-subcard-icon {
    border-radius: 0;
    background: var(--color-ink);
    color: #fff;
    border-color: var(--color-ink);
}
.site-body.page-catalog .catalog-sidebar-inner.panel-card::before {
    background: var(--color-ink);
}
.site-body.page-catalog .catalog-sidebar-mark {
    background: var(--color-surface-subtle);
    color: var(--color-ink);
    border: 1px solid var(--color-border);
}
.site-body.page-catalog .sidebar-tool-btn {
    border-radius: 0;
}
.site-body.page-catalog .sidebar-tool-btn:hover {
    border-color: var(--color-ink);
    color: var(--color-ink);
}
.site-body.page-catalog .category-menu-link.active,
.site-body.page-catalog .category-menu-item.is-active > .category-menu-row .category-menu-link {
    background: var(--color-surface-subtle);
    box-shadow: inset 3px 0 0 var(--color-ink);
    border-color: var(--color-border);
}
.site-body.page-catalog .category-menu-link.active .category-menu-dot,
.site-body.page-catalog .category-menu-item.is-active > .category-menu-row .category-menu-link .category-menu-dot {
    background: var(--color-ink);
    box-shadow: none;
}
.site-body.page-catalog .category-menu-link:hover .category-menu-dot {
    background: var(--color-ink);
}
.site-body.page-catalog .catalog-sort-select {
    border-radius: 0;
}
.site-body.page-catalog .view-toggle-tabs {
    border-radius: 0;
}
.site-body.page-catalog .view-toggle-btn {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}
.site-body.page-catalog .view-toggle-text {
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .02em;
}
.site-body.page-catalog .product-card:hover {
    border-color: var(--color-ink);
    transform: none;
    box-shadow: none;
}
.site-body.page-catalog .product-card:hover .product-card-media img,
.site-body.page-catalog .product-card:hover .product-card-media .product-placeholder {
    transform: none;
}
.site-body.page-catalog .product-card-action {
    background: rgba(0, 0, 0, .72);
}
.site-body.page-catalog .favorite-btn.is-favorite {
    color: var(--color-ink);
}
.site-body.page-catalog .catalog-sidebar-toggle {
    display: none;
}
.site-body.page-catalog .catalog-sidebar-backdrop {
    display: none;
}
.site-body.page-product .product-header .product-subnav {
    position: sticky;
    top: var(--header-offset, 120px);
    z-index: 40;
    background: #fff;
    border-bottom: 1px solid var(--color-border);
}
.site-body.page-product .product-gallery-thumb.is-active {
    box-shadow: inset 0 0 0 2px var(--color-ink);
}
.site-body.page-contact .info-card-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    font-family: var(--font-display);
    font-size: .82rem;
    font-weight: 800;
    background: var(--color-ink);
    color: #fff;
    border-radius: 0;
}
.site-body.page-contact .info-card-accent {
    border-left: 3px solid var(--color-ink);
}
.site-body.page-contact .contact-trust-row .trust-pill {
    border-radius: 0;
}
@media (max-width: 992px) {
    .site-body.page-catalog .catalog-layout {
        grid-template-columns: 1fr;
    }
    .site-body.page-catalog .catalog-sidebar-toggle {
        display: inline-flex;
        margin-bottom: .75rem;
    }
    .site-body.page-catalog .catalog-sidebar-backdrop {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 210;
        background: rgba(0, 0, 0, .45);
    }
    .site-body.page-catalog .catalog-sidebar-backdrop[hidden] {
        display: none;
    }
    .site-body.page-catalog .catalog-sidebar {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        z-index: 220;
        width: min(320px, 88vw);
        max-width: 100%;
        margin: 0;
        transform: translateX(-105%);
        transition: transform var(--motion-base) var(--ease-out);
        overflow: auto;
        background: var(--color-bg);
        padding: .75rem;
        box-shadow: none;
        border-right: 1px solid var(--color-border);
    }
    .site-body.page-catalog .catalog-sidebar.is-open {
        transform: translateX(0);
    }
    .site-body.page-catalog .catalog-sidebar .catalog-sidebar-inner {
        min-height: 100%;
    }
    .site-body.catalog-sidebar-open {
        overflow: hidden;
    }
}
@media (max-width: 640px) {
    .site-body.page-catalog .view-toggle-text {
        display: none;
    }
    .site-body.page-catalog .catalog-toolbar-row {
        align-items: stretch;
    }
}

/* ── Admin UI polish v21 — sidebar UX ── */
.admin-sidebar-mobile-head {
    display: none;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: .85rem;
    padding-bottom: .75rem;
    border-bottom: 1px solid rgba(255, 255, 255, .1);
}
.admin-sidebar-mobile-head strong {
    font-family: var(--font-display);
    font-size: 1rem;
    color: #fff;
}
.admin-sidebar-close {
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 999px;
    background: rgba(255, 255, 255, .08);
    color: #fff;
    font-size: 1.35rem;
    line-height: 1;
    cursor: pointer;
    transition: background .15s, border-color .15s;
}
.admin-sidebar-close:hover {
    background: rgba(239, 68, 68, .2);
    border-color: rgba(239, 68, 68, .45);
}
.admin-sidebar-profile-row {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    position: relative;
    z-index: 1;
}
.admin-sidebar-profile .admin-sidebar-avatar {
    margin-bottom: 0;
    flex-shrink: 0;
    box-shadow: 0 0 0 2px rgba(47, 181, 210, .35);
}
.admin-sidebar-identity {
    min-width: 0;
    flex: 1;
}
.admin-sidebar-identity strong {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.admin-sidebar-identity .muted {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: .76rem;
}
.admin-sidebar-profile-link {
    display: inline-flex;
    margin-top: .65rem;
    font-size: .76rem;
    font-weight: 700;
    color: rgba(255, 255, 255, .72);
    text-decoration: none;
    position: relative;
    z-index: 1;
}
.admin-sidebar-profile-link:hover {
    color: var(--color-accent);
    text-decoration: none;
}
.admin-sidebar-quick {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .4rem;
}
.admin-sidebar-quick-link {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .25rem;
    min-height: 3.35rem;
    padding: .45rem .35rem;
    border-radius: var(--radius-lg);
    border: 1px solid rgba(255, 255, 255, .1);
    background: rgba(255, 255, 255, .05);
    color: rgba(255, 255, 255, .82);
    text-decoration: none;
    font-size: .68rem;
    font-weight: 700;
    text-align: center;
    line-height: 1.2;
    position: relative;
    transition: background .15s, border-color .15s, transform .12s;
}
.admin-sidebar-quick-link:hover {
    background: rgba(255, 255, 255, .1);
    border-color: rgba(47, 181, 210, .35);
    color: #fff;
    text-decoration: none;
    transform: translateY(-1px);
}
.admin-sidebar-quick-link.is-active {
    background: rgba(47, 181, 210, .18);
    border-color: rgba(47, 181, 210, .45);
    color: #fff;
    box-shadow: inset 0 -2px 0 var(--color-accent);
}
.admin-sidebar-quick-link .admin-nav-icon {
    width: 1.15rem;
    height: 1.15rem;
}
.admin-sidebar-quick-badge {
    position: absolute;
    top: .3rem;
    right: .3rem;
    min-width: 1rem;
    height: 1rem;
    padding: 0 .25rem;
    border-radius: 999px;
    background: #f59e0b;
    color: #1a1a1a;
    font-size: .58rem;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.admin-sidebar-filter-wrap {
    position: sticky;
    top: 0;
    z-index: 4;
    margin: 0;
}
.admin-sidebar-filter.panel-card {
    display: flex;
    align-items: center;
    gap: .45rem;
    padding: .45rem .55rem;
    margin: 0;
    background: rgba(255, 255, 255, .06);
    border: 1px solid rgba(255, 255, 255, .12);
    box-shadow: none;
}
.admin-sidebar-filter-icon {
    flex-shrink: 0;
    color: rgba(255, 255, 255, .45);
    font-size: .95rem;
    line-height: 1;
}
.admin-sidebar .admin-sidebar-filter-input {
    flex: 1;
    min-width: 0;
    padding: .45rem 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    color: #fff;
    font-size: .82rem;
}

.admin-sidebar .admin-sidebar-filter-input::placeholder {
    color: rgba(255, 255, 255, .45);
}
.admin-sidebar-filter-input:focus {
    box-shadow: none;
}
.admin-sidebar-filter-clear {
    flex-shrink: 0;
    width: 1.45rem;
    height: 1.45rem;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, .12);
    color: rgba(255, 255, 255, .75);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    transition: background .15s, color .15s;
}
.admin-sidebar-filter-clear:hover {
    background: rgba(239, 68, 68, .25);
    color: #fff;
}
.admin-sidebar-nav {
    display: flex;
    flex-direction: column;
    gap: .55rem;
    min-height: 0;
}
.admin-sidebar-section.panel-card {
    padding: 0;
    overflow: hidden;
}
.admin-sidebar-section > summary.admin-sidebar-section-label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    margin: 0;
    padding: .65rem .85rem;
    list-style: none;
    cursor: pointer;
    user-select: none;
    transition: background .15s;
}
.admin-sidebar-section > summary.admin-sidebar-section-label::-webkit-details-marker {
    display: none;
}
.admin-sidebar-section > summary.admin-sidebar-section-label::after {
    content: "▾";
    font-size: .72rem;
    color: rgba(255, 255, 255, .35);
    transition: transform .2s;
}
.admin-sidebar-section:not([open]) > summary.admin-sidebar-section-label::after {
    transform: rotate(-90deg);
}
.admin-sidebar-section > summary.admin-sidebar-section-label:hover {
    background: rgba(255, 255, 255, .04);
}
.admin-sidebar-section-title {
    flex: 1;
    min-width: 0;
}
.admin-sidebar-section-badge {
    min-width: 1.15rem;
    height: 1.15rem;
    padding: 0 .3rem;
    border-radius: 999px;
    background: rgba(47, 181, 210, .22);
    color: var(--color-accent);
    font-size: .62rem;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.admin-sidebar-section .admin-sidebar-links {
    padding: 0 .45rem .55rem;
}
.admin-sidebar-section-system {
    margin-top: .15rem;
    padding-top: .15rem;
    border-top: 1px solid rgba(255, 255, 255, .08);
}
.admin-sidebar-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.65rem;
    height: 1.65rem;
    border-radius: var(--radius);
    background: rgba(255, 255, 255, .06);
    transition: background .15s;
}
.admin-sidebar-link:hover .admin-sidebar-icon,
.admin-sidebar-link.is-active .admin-sidebar-icon {
    background: rgba(47, 181, 210, .18);
}
.admin-sidebar-link.is-active .admin-nav-icon {
    color: var(--color-accent);
}
.admin-sidebar-badge-warn {
    background: #f59e0b;
    color: #1a1a1a;
}
.admin-sidebar-icon.has-badge-dot {
    position: relative;
}
body.admin-sidebar-collapsed .admin-sidebar-icon.has-badge-dot::after {
    content: "";
    position: absolute;
    top: -.05rem;
    right: -.05rem;
    width: .45rem;
    height: .45rem;
    border-radius: 50%;
    background: var(--color-accent);
    border: 2px solid #141414;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, .2);
}
body.admin-sidebar-collapsed .admin-sidebar-icon.has-badge-dot[data-badge-tone="warn"]::after {
    background: #f59e0b;
}
body.admin-sidebar-collapsed .admin-sidebar-text,
body.admin-sidebar-collapsed .admin-sidebar-section-label,
body.admin-sidebar-collapsed .admin-sidebar-identity,
body.admin-sidebar-collapsed .admin-sidebar-meta,
body.admin-sidebar-collapsed .admin-sidebar-profile-link,
body.admin-sidebar-collapsed .admin-sidebar-exports,
body.admin-sidebar-collapsed .admin-sidebar-badge,
body.admin-sidebar-collapsed .admin-sidebar-quick,
body.admin-sidebar-collapsed .admin-role-badge,
body.admin-sidebar-collapsed .admin-sidebar-section-badge {
    display: none !important;
}
body.admin-sidebar-collapsed .admin-sidebar-section.panel-card {
    padding: .35rem .25rem;
    background: transparent;
    border: 0;
    box-shadow: none;
}
body.admin-sidebar-collapsed .admin-sidebar-nav {
    gap: .15rem;
}
body.admin-sidebar-collapsed .admin-sidebar-section .admin-sidebar-links {
    padding: 0;
}
@media (max-width: 768px) {
    .admin-sidebar-mobile-head {
        display: flex;
    }
    .admin-sidebar-filter-wrap {
        position: static;
    }
    .admin-sidebar-quick {
        grid-template-columns: repeat(3, 1fr);
    }
}
@media (min-width: 769px) {
    .has-admin-panel .admin-sidebar {
        padding-right: .15rem;
        display: flex;
        flex-direction: column;
        overflow: hidden;
    }
    .admin-sidebar-nav {
        flex: 1;
        min-height: 0;
        overflow-y: auto;
        overscroll-behavior: contain;
        scrollbar-width: thin;
        scrollbar-color: rgba(255, 255, 255, .12) transparent;
        padding-right: .15rem;
    }
    .admin-sidebar-nav::-webkit-scrollbar {
        width: 4px;
    }
    .admin-sidebar-nav::-webkit-scrollbar-thumb {
        background: rgba(255, 255, 255, .12);
        border-radius: 999px;
    }
}

/* ── Admin UI polish v22 — activity, search, favorites, categories ── */
.admin-activity-tabs {
    margin-bottom: .85rem;
}
.admin-activity-timeline .admin-activity-item {
    cursor: pointer;
    padding-right: 2rem;
    position: relative;
}
.admin-activity-timeline .admin-activity-item .admin-row-chevron {
    position: absolute;
    right: .35rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--color-muted);
    opacity: 0;
    transition: opacity .15s, transform .15s;
}
.admin-activity-timeline .admin-activity-item:hover .admin-row-chevron,
.admin-activity-timeline .admin-activity-item:focus-visible .admin-row-chevron {
    opacity: 1;
    transform: translate(2px, -50%);
}
.admin-activity-timeline .admin-activity-label {
    font-weight: 700;
    color: var(--color-text);
}
.admin-audit-action {
    font-size: .78rem;
    white-space: nowrap;
}
.admin-search-hero .admin-search-hint {
    margin: .65rem 0 0;
    padding: 0 .15rem;
    font-size: .82rem;
}
.admin-search-hero .admin-search-hint kbd {
    display: inline-flex;
    padding: .1rem .35rem;
    border: 1px solid var(--color-border);
    border-radius: 4px;
    background: var(--color-surface-subtle);
    font-family: ui-monospace, monospace;
    font-size: .68rem;
}
.admin-search-shortcuts {
    padding: 1rem 1.15rem;
    margin-bottom: 1rem;
}
.admin-search-shortcuts-label {
    margin: 0 0 .65rem;
    font-size: .78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--color-muted);
}
.admin-search-shortcuts-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: .5rem;
}
.admin-search-shortcut {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 2.65rem;
    padding: .55rem .75rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-surface-subtle);
    color: var(--color-text);
    font-size: .84rem;
    font-weight: 700;
    text-decoration: none;
    transition: border-color .15s, background .15s, transform .12s;
}
.admin-search-shortcut:hover {
    border-color: rgba(47, 181, 210, .45);
    background: rgba(47, 181, 210, .06);
    text-decoration: none;
    color: var(--color-text);
    transform: translateY(-1px);
}
.admin-search-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    flex-wrap: wrap;
    padding: .75rem 1rem;
    margin-bottom: 1rem;
    font-size: .88rem;
    font-weight: 600;
}
.admin-search-count {
    font-weight: 600;
    color: var(--color-muted);
}
.admin-search-hit {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .65rem .75rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: var(--color-surface);
    cursor: pointer;
    transition: border-color .15s, background .15s, transform .12s;
}
.admin-search-hit + .admin-search-hit,
.admin-search-list .admin-search-hit {
    margin-top: .45rem;
}
.admin-search-hit-main {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    min-width: 0;
}
.admin-search-hit-main strong {
    font-size: .88rem;
}
.admin-search-hit-main span {
    font-size: .82rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.admin-search-hit:hover,
.admin-search-hit:focus-visible {
    border-color: rgba(47, 181, 210, .45);
    background: rgba(47, 181, 210, .05);
    transform: translateX(2px);
}
.admin-search-hit .admin-row-chevron {
    flex-shrink: 0;
    color: var(--color-muted);
    font-size: 1.1rem;
}
.admin-favorites-table .row-stock-oos td {
    background: rgba(239, 68, 68, .04);
}
.admin-favorites-table .row-stock-low td {
    background: rgba(245, 158, 11, .05);
}
.filter-tab-warn.is-active {
    border-color: #f59e0b;
    color: #92400e;
    background: rgba(245, 158, 11, .12);
}
@media (max-width: 768px) {
    .admin-search-shortcuts-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .admin-search-summary {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* ── Home hero panel — light zone below slider ── */
.home-hero-panel {
    padding: clamp(1.75rem, 3.5vw, 2.75rem) clamp(1.25rem, 4vw, 2.5rem);
    background: linear-gradient(180deg, var(--color-surface) 0%, var(--color-surface-subtle) 100%);
    border-top: 1px solid var(--color-border);
    text-align: center;
}
.home-hero-panel-inner {
    max-width: 44rem;
    margin: 0 auto;
}
.home-hero-badge {
    display: inline-block;
    margin: 0 0 .85rem;
    padding: .35rem .85rem;
    border: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
    color: var(--color-muted);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.home-hero-panel h1 {
    margin: 0 0 .75rem;
    font-family: var(--font-display);
    font-size: clamp(1.55rem, 3.2vw, 2.25rem);
    line-height: 1.15;
    color: var(--color-text);
}
.home-hero-lead {
    margin: 0 auto 1.35rem;
    max-width: 36rem;
    font-size: clamp(.95rem, 1.6vw, 1.08rem);
    line-height: 1.55;
    color: var(--color-muted);
}
.page-home .home-hero-panel .home-hero-search {
    display: flex;
    align-items: stretch;
    gap: .5rem;
    max-width: 38rem;
    margin: 0 auto 1rem;
    padding: .35rem .35rem .35rem .65rem;
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    box-shadow: var(--shadow);
}
.page-home .home-hero-panel .home-hero-search-icon {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    color: var(--color-muted);
}
.page-home .home-hero-panel .home-hero-search input {
    flex: 1;
    min-width: 0;
    padding: .65rem .35rem;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--color-text);
    font: inherit;
}
.page-home .home-hero-panel .home-hero-search input::placeholder {
    color: var(--color-muted);
}
.page-home .home-hero-panel .home-hero-search input:focus {
    outline: none;
    box-shadow: none;
    background: transparent;
}
.page-home .home-hero-panel .home-hero-search .btn-primary {
    background: var(--color-ink);
    border-color: var(--color-ink);
    color: #fff;
    flex-shrink: 0;
}
.page-home .home-hero-panel .home-hero-search .btn-primary:hover {
    background: #1a1a1a;
    border-color: #1a1a1a;
    color: #fff;
}
.page-home .home-hero-panel .home-search-hint {
    margin: 0 0 1.35rem;
    font-size: .82rem;
    color: var(--color-muted);
    text-align: center;
}
.home-hero-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .65rem;
    margin-bottom: 1.35rem;
}
.home-hero-perks {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .55rem;
}
.home-hero-perk {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: .45rem .75rem;
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    color: var(--color-text);
    font-size: .78rem;
    font-weight: 600;
    line-height: 1.3;
}
.home-hero-perk-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.65rem;
    height: 1.65rem;
    flex-shrink: 0;
    background: rgba(47, 181, 210, .12);
    color: var(--color-accent);
    border: 1px solid rgba(47, 181, 210, .25);
}
.home-hero-perk-icon svg {
    display: block;
}
.page-home .home-trust-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    margin: 0;
    padding: 0;
    border-top: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
}
.page-home .home-trust-item {
    display: flex;
    align-items: center;
    gap: .85rem;
    padding: 1.1rem 1.25rem;
    background: transparent;
    border: 0;
    border-right: 1px solid var(--color-border);
    transition: background .15s ease;
}
.page-home .home-trust-item:last-child {
    border-right: 0;
}
.page-home .home-trust-item:hover {
    background: rgba(47, 181, 210, .06);
}
.page-home .home-trust-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    flex-shrink: 0;
    border-radius: 0;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    color: var(--color-ink);
    font-size: inherit;
    font-weight: inherit;
    box-shadow: var(--shadow);
}
.page-home .home-trust-icon svg {
    display: block;
}
.page-home .home-trust-item strong {
    display: block;
    font-family: var(--font-display);
    font-size: .9rem;
    color: var(--color-text);
    line-height: 1.25;
}
.page-home .home-trust-item span {
    display: block;
    font-size: .82rem;
    color: var(--color-muted);
    line-height: 1.35;
}
.home-hero.is-ready .home-hero-panel {
    animation: heroContentIn .75s var(--ease-out) .1s both;
    background: #f5f5f5;
}
@media (max-width: 768px) {
    .page-home .home-hero-panel .home-hero-search {
        flex-wrap: wrap;
        padding: .65rem;
    }
    .page-home .home-hero-panel .home-hero-search-icon {
        display: none;
    }
    .page-home .home-hero-panel .home-hero-search input {
        width: 100%;
        padding: .55rem .15rem;
        border-bottom: 1px solid var(--color-border);
    }
    .page-home .home-hero-panel .home-hero-search .btn-primary {
        width: 100%;
    }
    .page-home .home-trust-strip {
        grid-template-columns: 1fr;
    }
    .page-home .home-trust-item {
        border-right: 0;
        border-bottom: 1px solid var(--color-border);
    }
    .page-home .home-trust-item:last-child {
        border-bottom: 0;
    }
    .home-hero-perks {
        flex-direction: column;
        align-items: stretch;
    }
    .home-hero-perk {
        justify-content: flex-start;
    }
}

/* ── Home thin strip slider (above main banner, like molypets.fr) ── */
.home-hero-strip {
    width: 100%;
    border-bottom: 0;
    background: var(--color-surface);
    margin-bottom: clamp(.65rem, 1.5vw, 1rem);
}
.home-hero-strip-slider {
    position: relative;
    width: 100%;
    aspect-ratio: 1472 / 86;
    max-height: 86px;
    overflow: hidden;
    border-radius: 0;
    box-shadow: none;
    border: 1px solid var(--color-border);
}
.home-hero-strip-slider .hero-banner-slides,
.home-hero-strip-slider .hero-banner-slide,
.home-hero-strip-slider .hero-banner-slide a {
    height: 100%;
}
.home-hero-strip-slider .hero-banner-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}
.home-hero-strip-slider .hero-banner-arrow,
.home-hero-strip-slider .hero-banner-dots {
    display: none;
}
@media (max-width: 768px) {
    .home-hero-strip-slider {
        max-height: none;
        aspect-ratio: 1472 / 86;
        min-height: 48px;
    }
}

/* ── Catalog UX v23 — toolbar + pro pagination ── */
.page-catalog .catalog-toolbar-sticky {
    position: sticky;
    top: calc(var(--header-offset, 72px) + .35rem);
    z-index: 40;
    background: rgba(255, 255, 255, .94);
    backdrop-filter: blur(8px);
}
.page-catalog .catalog-toolbar-meta-block {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    min-width: 0;
}
.page-catalog .catalog-range {
    margin: 0;
    font-size: .88rem;
    font-weight: 600;
    color: var(--color-text);
}
.page-catalog .catalog-range-page {
    margin: 0;
    font-size: .78rem;
}
.page-catalog .catalog-sort-select {
    min-width: 11rem;
    padding: .5rem .65rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: var(--color-surface);
    font: inherit;
    font-size: .84rem;
    cursor: pointer;
}
.page-catalog .catalog-sort-select:focus {
    outline: none;
    border-color: var(--color-accent);
    box-shadow: 0 0 0 3px rgba(47, 181, 210, .18);
}
.page-catalog .view-toggle-btn {
    min-width: 2.5rem;
}
.page-catalog .view-toggle-btn.active {
    background: var(--color-ink);
    border-color: var(--color-ink);
    color: #fff;
}
.page-catalog #catalog-results {
    scroll-margin-top: calc(var(--header-offset, 72px) + 5.5rem);
}
.page-catalog .catalog-results {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.catalog-pagination-pro {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, max-content);
    align-items: center;
    gap: 1rem 1.25rem;
    padding: 1rem 1.25rem;
    margin: 0;
    box-shadow: var(--shadow);
}
.catalog-pagination-top {
    margin-bottom: .15rem;
    padding: .75rem 1rem;
    border-bottom: 1px solid var(--color-border);
}
.catalog-pagination-top .catalog-pagination-summary,
.catalog-pagination-top .catalog-pagination-jump {
    display: none;
}
.catalog-pagination-top .catalog-pagination-controls {
    grid-column: 1 / -1;
    justify-content: center;
}
.catalog-pagination-bottom {
    margin-top: .25rem;
}
.catalog-pagination-summary {
    min-width: 0;
}
.catalog-pagination-range {
    margin: 0 0 .2rem;
    font-size: .86rem;
    font-weight: 600;
    color: var(--color-text);
}
.catalog-pagination-status {
    margin: 0;
    font-size: .8rem;
    color: var(--color-muted);
}
.catalog-pagination-controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .3rem;
    flex-wrap: nowrap;
}
.catalog-pagination-scroll {
    display: flex;
    align-items: center;
    gap: .25rem;
    max-width: min(100%, 28rem);
    overflow-x: auto;
    padding: .1rem .15rem;
    scrollbar-width: thin;
}
.catalog-pagination-scroll::-webkit-scrollbar {
    height: 4px;
}
.catalog-pagination-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.35rem;
    height: 2.35rem;
    padding: 0 .55rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: var(--color-surface);
    color: var(--color-text);
    font-size: .84rem;
    font-weight: 700;
    text-decoration: none;
    flex-shrink: 0;
    transition: background .15s, border-color .15s, color .15s, transform .12s;
}
.catalog-pagination-btn:hover {
    border-color: rgba(47, 181, 210, .45);
    background: rgba(47, 181, 210, .06);
    text-decoration: none;
    color: var(--color-text);
}
.catalog-pagination-btn.is-active {
    background: var(--color-ink);
    border-color: var(--color-ink);
    color: #fff;
    box-shadow: inset 0 -2px 0 var(--color-accent);
}
.catalog-pagination-btn-nav {
    font-size: 1rem;
    line-height: 1;
}
.catalog-pagination-btn.is-disabled {
    opacity: .35;
    pointer-events: none;
}
.catalog-pagination-ellipsis {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.5rem;
    height: 2.35rem;
    color: var(--color-muted);
    font-weight: 700;
    flex-shrink: 0;
}
.catalog-pagination-jump {
    display: flex;
    align-items: center;
    gap: .45rem;
    justify-self: end;
    margin: 0;
}
.catalog-pagination-jump-label {
    margin: 0;
    font-size: .78rem;
    font-weight: 600;
    color: var(--color-muted);
    white-space: nowrap;
}
.catalog-pagination-jump-input {
    width: 4.25rem;
    margin: 0;
    padding: .45rem .5rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    font: inherit;
    font-size: .84rem;
    text-align: center;
}
.catalog-pagination-jump-input:focus {
    outline: none;
    border-color: var(--color-accent);
    box-shadow: 0 0 0 3px rgba(47, 181, 210, .18);
}
.catalog-pagination-jump-btn {
    flex-shrink: 0;
}
@media (max-width: 992px) {
    .catalog-pagination-pro {
        grid-template-columns: 1fr;
        justify-items: stretch;
    }
    .catalog-pagination-jump {
        justify-self: stretch;
        justify-content: center;
        flex-wrap: wrap;
    }
}
@media (max-width: 768px) {
    .page-catalog .catalog-toolbar-sticky {
        position: static;
    }
    .catalog-pagination-controls {
        flex-wrap: wrap;
        justify-content: center;
    }
    .catalog-pagination-btn-nav:first-child,
    .catalog-pagination-btn-nav:nth-child(2) {
        order: -2;
    }
    .catalog-pagination-scroll {
        order: 1;
        flex: 1 1 100%;
        max-width: none;
        justify-content: flex-start;
    }
    .catalog-pagination-top .catalog-pagination-summary {
        display: block;
        text-align: center;
        grid-column: 1 / -1;
    }
    .catalog-pagination-top .catalog-pagination-status {
        margin: 0;
    }
}

/* ── Catalog UX v24 — compact category header ── */
.page-catalog .catalog-main {
    gap: .5rem;
}
.page-catalog .category-hero-compact {
    min-height: auto;
}
.page-catalog .category-hero-compact.has-image {
    min-height: 120px;
}
.page-catalog .category-hero-compact .category-hero-banner-content {
    padding: .75rem 1.1rem .85rem;
}
.page-catalog .category-hero-compact .category-hero-banner-main {
    margin-top: .35rem;
    gap: .4rem .85rem;
}
.page-catalog .category-hero-compact h1 {
    font-size: clamp(1.15rem, 2.5vw, 1.55rem);
}
.page-catalog .category-hero-compact .category-hero-stat {
    font-size: .8rem;
}
.page-catalog .category-hero-compact .category-hero-stat-value {
    min-width: 1.65rem;
    height: 1.65rem;
    padding: 0 .4rem;
    font-size: .82rem;
}
.page-catalog .category-hero-compact .catalog-breadcrumbs {
    font-size: .76rem;
}

.page-catalog .catalog-guest-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .5rem .85rem;
    padding: .55rem .85rem;
    border: 1px solid var(--color-border);
    border-left: 3px solid var(--color-ink);
    background: var(--color-surface-subtle);
}
.page-catalog .catalog-guest-bar-text {
    margin: 0;
    flex: 1 1 12rem;
    min-width: 0;
    font-size: .82rem;
    line-height: 1.4;
    color: var(--color-muted);
}
.page-catalog .catalog-guest-bar-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .4rem;
    flex-shrink: 0;
}

.page-catalog .category-subgrid-compact {
    padding: .45rem 0;
    border-bottom: 1px solid var(--color-border);
}
.page-catalog .category-subgrid-compact .category-subgrid {
    display: flex;
    flex-wrap: nowrap;
    gap: .4rem;
    overflow-x: auto;
    padding-bottom: .15rem;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
}
.page-catalog .category-subgrid-compact .category-subcard {
    flex: 0 0 auto;
    padding: .4rem .65rem;
    white-space: nowrap;
}

.page-catalog .catalog-toolbar {
    margin: 0;
    padding: .55rem 0;
    border-bottom: 1px solid var(--color-border);
    background: transparent;
    box-shadow: none;
}
.page-catalog .catalog-toolbar-sticky {
    position: sticky;
    top: var(--header-offset, 72px);
    z-index: 40;
    padding: .55rem 0;
    background: rgba(255, 255, 255, .96);
    backdrop-filter: blur(6px);
}
.page-catalog .catalog-toolbar-row {
    gap: .5rem .75rem;
}
.page-catalog .catalog-toolbar-summary {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .2rem .55rem;
    margin: 0;
    flex: 1 1 12rem;
    min-width: 0;
    font-size: .82rem;
    line-height: 1.45;
    color: var(--color-muted);
}
.page-catalog .catalog-toolbar-meta-item {
    white-space: nowrap;
}
.page-catalog .catalog-toolbar-meta-item strong {
    color: var(--color-text);
    font-weight: 700;
}
.page-catalog .catalog-toolbar-actions {
    flex: 0 0 auto;
    gap: .45rem .55rem;
}
.page-catalog .catalog-sort-select {
    min-width: 9.5rem;
    padding: .4rem .55rem;
    border-radius: 0;
    background: #fff;
    font-size: .8rem;
}
.page-catalog .catalog-sort-select:focus {
    border-color: var(--color-ink);
    box-shadow: 0 0 0 2px rgba(17, 17, 17, .12);
}
.page-catalog .view-toggle-btn {
    min-width: 2.25rem;
    padding: .35rem .55rem;
}
.page-catalog .view-toggle-text {
    display: none;
}
.page-catalog .catalog-toolbar-pro {
    padding-left: .45rem;
    border-left: 1px solid var(--color-border);
}
.page-catalog #catalog-results {
    scroll-margin-top: calc(var(--header-offset, 72px) + 3.5rem);
}
.page-catalog .catalog-pagination-bottom {
    margin-top: .5rem;
}
.page-catalog .catalog-hero-compact {
    padding: .85rem 1.15rem;
    margin-bottom: 0;
    border-left: 3px solid var(--color-ink);
}
.page-catalog .catalog-hero-compact h1 {
    margin: 0 0 .35rem;
    font-size: clamp(1.2rem, 2.5vw, 1.5rem);
}
.page-catalog .catalog-hero-compact .catalog-hero-lead {
    margin: 0 0 .65rem;
    max-width: 42rem;
    font-size: .84rem;
    line-height: 1.45;
    color: var(--color-muted);
}
.page-catalog .catalog-hero-compact .catalog-hero-actions {
    margin: 0;
}
.page-catalog .catalog-pagination-range {
    margin: 0;
    font-size: .82rem;
    line-height: 1.45;
    color: var(--color-muted);
}
.page-catalog .catalog-pagination-pro {
    border-left: 3px solid var(--color-ink);
    border-radius: 0;
    box-shadow: none;
}

@media (max-width: 768px) {
    .page-catalog .catalog-guest-bar {
        flex-direction: column;
        align-items: stretch;
    }
    .page-catalog .catalog-guest-bar-actions {
        justify-content: flex-start;
    }
    .page-catalog .catalog-toolbar-row {
        flex-direction: column;
        align-items: stretch;
    }
    .page-catalog .catalog-toolbar-summary {
        width: 100%;
    }
    .page-catalog .catalog-toolbar-meta-item {
        white-space: normal;
    }
    .page-catalog .catalog-toolbar-actions {
        justify-content: space-between;
        width: 100%;
    }
    .page-catalog .catalog-toolbar-pro {
        border-left: 0;
        padding-left: 0;
        padding-top: .35rem;
        border-top: 1px dashed var(--color-border);
        width: 100%;
    }
    .page-catalog .category-hero-compact.has-image {
        min-height: 100px;
    }
}

/* ── Home UX v24 — couleur, premium B2B, accessibilité (disposition inchangée) ── */
.page-home {
    --home-accent: var(--color-accent);
    --home-accent-soft: rgba(47, 181, 210, .1);
    --home-accent-mid: rgba(47, 181, 210, .28);
    --home-accent-ring: rgba(47, 181, 210, .22);
    --home-accent-deep: #168a9e;
    --home-accent-glow: 0 8px 28px rgba(47, 181, 210, .22);
    --home-gradient: linear-gradient(135deg, #2fb5d2 0%, #1a9ab3 55%, #14899a 100%);
}
.page-home .main {
    background:
        radial-gradient(ellipse 90% 55% at 50% -8%, rgba(47, 181, 210, .11), transparent 58%),
        radial-gradient(ellipse 45% 35% at 100% 20%, rgba(47, 181, 210, .06), transparent 50%),
        radial-gradient(ellipse 40% 30% at 0% 75%, rgba(47, 181, 210, .05), transparent 45%);
}

/* Hero stack */
.page-home .home-hero-stack {
    border-color: var(--home-accent-mid);
    margin-top: 1rem;
    box-shadow:
        0 1px 0 rgba(47, 181, 210, .12),
        0 12px 40px rgba(0, 0, 0, .07),
        0 0 0 1px rgba(47, 181, 210, .06);
}
.page-home .home-hero-media .hero-banner-slider::after {
    content: '';
    position: absolute;
    inset: auto 0 0;
    height: 4rem;
    background: linear-gradient(to top, rgba(0, 0, 0, .28), transparent);
    pointer-events: none;
    z-index: 1;
}
.page-home .home-hero-media .hero-banner-arrow {
    background: rgba(0, 0, 0, .5);
    border: 1px solid rgba(255, 255, 255, .15);
}
.page-home .home-hero-media .hero-banner-arrow:hover,
.page-home .home-hero-media .hero-banner-arrow:focus-visible {
    background: var(--home-accent-deep);
    border-color: rgba(255, 255, 255, .35);
}
.page-home .home-hero-media .hero-banner-dots {
    background: rgba(0, 0, 0, .42);
    border: 1px solid rgba(255, 255, 255, .12);
}
.page-home .home-hero-media .hero-banner-dot.is-active {
    background: var(--home-accent);
    box-shadow: 0 0 0 2px rgba(255, 255, 255, .35);
}

/* Panel principal */
.page-home .home-hero-panel {
    background:
        radial-gradient(ellipse 85% 70% at 50% 0%, rgba(47, 181, 210, .09), transparent 68%),
        linear-gradient(180deg, #fff 0%, #f4fbfd 100%);
    border-top-color: rgba(47, 181, 210, .18);
}
.page-home .home-hero-badge {
    background: var(--home-accent-soft);
    border-color: var(--home-accent-mid);
    color: var(--home-accent-deep);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .65);
}
.page-home .home-hero-lead {
    color: #4a5568;
}
.page-home .home-hero-panel .home-hero-search {
    border-color: rgba(47, 181, 210, .22);
    transition: border-color .2s ease, box-shadow .2s ease;
}
.page-home .home-hero-panel .home-hero-search:focus-within {
    border-color: var(--home-accent);
    box-shadow: 0 0 0 3px var(--home-accent-ring), var(--home-accent-glow);
}
.page-home .home-hero-panel .home-hero-search-icon {
    color: var(--home-accent);
}
.page-home .home-hero-panel .home-hero-search .btn-primary {
    background: var(--home-gradient);
    border-color: var(--home-accent-deep);
    box-shadow: 0 2px 10px rgba(47, 181, 210, .28);
}
.page-home .home-hero-panel .home-hero-search .btn-primary:hover {
    background: linear-gradient(135deg, #3ec4df 0%, #1f9fb8 100%);
    border-color: #1f9fb8;
    color: #fff;
}
.page-home .home-search-hint {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    padding: .25rem .65rem;
    border-radius: 999px;
    background: var(--home-accent-soft);
    color: var(--home-accent-deep);
    font-size: .78rem;
}
.page-home .home-hero-actions .btn-primary {
    background: var(--home-gradient);
    border-color: var(--home-accent-deep);
    color: #fff;
    box-shadow: var(--home-accent-glow);
}
.page-home .home-hero-actions .btn-primary:hover {
    background: linear-gradient(135deg, #3ec4df 0%, #1f9fb8 100%);
    border-color: #1f9fb8;
    color: #fff;
}
.page-home .home-hero-actions .btn-outline {
    border-color: var(--home-accent);
    color: var(--home-accent-deep);
    background: rgba(255, 255, 255, .85);
}
.page-home .home-hero-actions .btn-outline:hover {
    background: var(--home-accent-soft);
    border-color: var(--home-accent-deep);
    color: var(--home-accent-deep);
}
.page-home .home-hero-perk {
    border-color: rgba(47, 181, 210, .2);
    background: rgba(255, 255, 255, .92);
    transition: border-color .2s ease, background .2s ease, transform .2s ease;
}
.page-home .home-hero-perk:hover {
    border-color: var(--home-accent);
    background: #fff;
    transform: translateY(-1px);
}
.page-home .home-hero-perk-icon {
    background: var(--home-gradient);
    color: #fff;
    border-color: transparent;
}

/* Trust strip */
.page-home .home-trust-strip {
    background: linear-gradient(180deg, #eef9fc 0%, #f7fcfd 100%);
    border-top-color: rgba(47, 181, 210, .2);
}
.page-home .home-trust-item {
    transition: background .2s ease;
}
.page-home .home-trust-item:hover {
    background: rgba(47, 181, 210, .08);
}
.page-home .home-trust-icon {
    background: var(--home-gradient);
    border-color: transparent;
    color: #fff;
    box-shadow: 0 4px 12px rgba(47, 181, 210, .25);
}
.page-home .home-trust-item strong {
    color: var(--color-text);
}
.page-home .home-trust-item span {
    color: #5a6578;
}

/* KPI publics */
.page-home .home-stats {
    position: relative;
}
.page-home .home-stat-card {
    border-color: rgba(47, 181, 210, .14);
    transition: border-color .22s ease, box-shadow .22s ease, transform .22s ease;
}
.page-home .home-stat-card::before {
    height: 4px;
    background: var(--home-gradient);
}
.page-home .home-stat-card:nth-child(2)::before {
    background: linear-gradient(90deg, #111, #444);
}
.page-home .home-stat-card:nth-child(3)::before {
    background: linear-gradient(90deg, #14899a, #2fb5d2);
}
.page-home .home-stat-card:hover {
    border-color: rgba(47, 181, 210, .45);
    box-shadow: var(--home-accent-glow);
    transform: translateY(-2px);
}
.page-home .home-stat-card:hover .home-stat-value {
    color: var(--home-accent-deep);
}
.page-home .home-stat-card-accent {
    background: var(--home-gradient);
    border-color: transparent;
    box-shadow: var(--home-accent-glow);
}
.page-home .home-stat-card-accent::before {
    display: none;
}
.page-home .home-stat-card-accent .home-stat-value,
.page-home .home-stat-card-accent .home-stat-label {
    color: #fff;
}
.page-home .home-stat-card-accent:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 36px rgba(47, 181, 210, .35);
}
.page-home .home-stat-card-accent:hover .home-stat-value {
    color: #fff;
}

/* Sections & titres */
.page-home .section-label {
    display: inline-block;
    padding: .32rem .85rem;
    background: var(--home-accent-soft);
    border: 1px solid var(--home-accent-mid);
    color: var(--home-accent-deep);
    border-radius: 999px;
    font-weight: 700;
}
.page-home .section-title h2::after {
    width: 3.5rem;
    height: 4px;
    border-radius: 999px;
    background: var(--home-gradient);
}
.page-home .home-band-muted {
    background:
        linear-gradient(180deg, rgba(47, 181, 210, .06) 0%, var(--color-bg) 100%);
    border-color: rgba(47, 181, 210, .12);
}
.page-home .home-band-featured {
    background:
        linear-gradient(180deg, #fff 0%, rgba(47, 181, 210, .04) 100%);
    border-color: rgba(47, 181, 210, .12);
}

/* Catégories */
.page-home .category-card-home .category-card-circle {
    border-color: rgba(47, 181, 210, .18);
    box-shadow: 0 4px 16px rgba(0, 0, 0, .06);
    transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}
.page-home .category-card-home:hover .category-card-circle,
.page-home .category-card-home:focus-visible .category-card-circle {
    border-color: var(--home-accent);
    box-shadow: 0 8px 24px rgba(47, 181, 210, .28);
    transform: translateY(-2px);
}
.page-home .category-card-home .category-card-title {
    background: linear-gradient(transparent, rgba(13, 107, 125, .88));
}

/* Features */
.page-home .home-features .feature-card {
    position: relative;
    border-top: 0;
    overflow: hidden;
    transition: border-color .22s ease, box-shadow .22s ease, transform .22s ease;
}
.page-home .home-features .feature-card::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: var(--home-gradient);
}
.page-home .home-features .feature-card:hover {
    border-color: rgba(47, 181, 210, .5);
    box-shadow: var(--home-accent-glow);
    transform: translateY(-3px);
}
.page-home .home-features .feature-icon {
    background: var(--home-gradient);
    color: #fff;
    box-shadow: 0 6px 16px rgba(47, 181, 210, .28);
}
.page-home .home-features .feature-icon svg {
    display: block;
}
.page-home .home-features .feature-card:nth-child(2) .feature-icon {
    background: linear-gradient(135deg, #111 0%, #333 100%);
    box-shadow: 0 6px 16px rgba(0, 0, 0, .15);
}
.page-home .home-features .feature-card:nth-child(3) .feature-icon {
    background: linear-gradient(135deg, #14899a 0%, #2fb5d2 100%);
}

/* Étapes */
.page-home .home-steps::before {
    background: linear-gradient(90deg, transparent, rgba(47, 181, 210, .45), transparent);
    height: 2px;
}
.page-home .home-steps .step-card {
    border-top: 4px solid rgba(47, 181, 210, .25);
    transition: border-color .22s ease, box-shadow .22s ease, transform .22s ease;
}
.page-home .home-steps .step-card:hover {
    border-top-color: var(--home-accent);
    box-shadow: var(--home-accent-glow);
    transform: translateY(-2px);
}
.page-home .home-steps .step-card::before {
    background: var(--home-gradient);
    box-shadow: 0 0 0 3px var(--home-accent-soft);
}

/* CTA & service */
.page-home .home-cta {
    background:
        radial-gradient(ellipse 70% 80% at 100% 0%, rgba(47, 181, 210, .22), transparent 55%),
        linear-gradient(135deg, #0a0a0a 0%, #0d3d47 55%, #111 100%);
    border-color: var(--home-accent-deep);
    border-top: 3px solid var(--home-accent);
}
.page-home .home-cta .btn-primary {
    background: #fff;
    border-color: #fff;
    color: var(--home-accent-deep);
    box-shadow: 0 4px 18px rgba(0, 0, 0, .2);
}
.page-home .home-cta .btn-primary:hover {
    background: var(--home-accent-soft);
    border-color: #fff;
    color: var(--home-accent-deep);
}
.page-home .home-cta-secondary {
    border-color: rgba(255, 255, 255, .45);
    background: rgba(47, 181, 210, .15);
}
.page-home .home-cta-secondary:hover {
    background: rgba(47, 181, 210, .28);
    border-color: rgba(255, 255, 255, .65);
}
.page-home .home-service {
    background:
        linear-gradient(135deg, #fff 0%, rgba(47, 181, 210, .05) 100%);
    border-top: 3px solid var(--home-accent);
}
.page-home .home-service-copy {
    border-left: 4px solid var(--home-accent);
    padding-left: 1.25rem;
}
.page-home .home-service .btn-primary {
    background: var(--home-gradient);
    border-color: var(--home-accent-deep);
    color: #fff;
}
.page-home .home-service .btn-primary:hover {
    background: linear-gradient(135deg, #3ec4df 0%, #1f9fb8 100%);
    color: #fff;
}
.page-home .home-about {
    border-color: rgba(47, 181, 210, .15);
}
.page-home .home-seo {
    border-left: 4px solid var(--home-accent);
    background: linear-gradient(135deg, #fff 0%, rgba(47, 181, 210, .04) 100%);
}

/* Boutons sections */
.page-home .home-band-categories .section-cta .btn-primary,
.page-home .home-band-featured .section-cta .btn-primary,
.page-home .home-band-muted .section-cta .btn-primary {
    background: var(--home-gradient);
    border-color: var(--home-accent-deep);
    color: #fff;
    box-shadow: var(--home-accent-glow);
}
.page-home .home-band-categories .section-cta .btn-primary:hover,
.page-home .home-band-featured .section-cta .btn-primary:hover,
.page-home .home-band-muted .section-cta .btn-primary:hover {
    background: linear-gradient(135deg, #3ec4df 0%, #1f9fb8 100%);
    border-color: #1f9fb8;
    color: #fff;
}
.page-home .section-cta .btn-outline {
    border-color: var(--home-accent);
    color: var(--home-accent-deep);
}
.page-home .section-cta .btn-outline:hover {
    background: var(--home-accent-soft);
    border-color: var(--home-accent-deep);
    color: var(--home-accent-deep);
}

/* Dashboard connecté */
.page-home .home-dashboard::before {
    background: var(--home-gradient);
    height: 4px;
}
.page-home .home-dashboard-badge {
    background: var(--home-accent-soft);
    border-color: var(--home-accent-mid);
    color: var(--home-accent-deep);
}
.page-home .home-dashboard-main .btn-primary {
    background: var(--home-gradient);
    border-color: var(--home-accent-deep);
    box-shadow: var(--home-accent-glow);
}
.page-home .home-shortcut {
    border-color: rgba(47, 181, 210, .16);
    transition: border-color .2s ease, background .2s ease, transform .2s ease, box-shadow .2s ease;
}
.page-home .home-shortcut:hover,
.page-home .home-shortcut:focus-visible {
    border-color: var(--home-accent);
    background: var(--home-accent-soft);
    box-shadow: var(--home-accent-glow);
    transform: translateY(-2px);
}
.page-home .home-shortcut-active {
    border-color: var(--home-accent);
    background: rgba(47, 181, 210, .1);
    box-shadow: inset 0 0 0 1px rgba(47, 181, 210, .2);
}

/* Focus accessibilité */
.page-home a:focus-visible,
.page-home button:focus-visible,
.page-home input:focus-visible {
    outline: 2px solid var(--home-accent);
    outline-offset: 2px;
}
.page-home .home-hero-panel .home-hero-search:focus-within input:focus-visible {
    outline: none;
}

@media (max-width: 768px) {
    .page-home .home-search-hint {
        max-width: 100%;
        text-align: center;
    }
    .page-home .home-hero-actions .btn-lg,
    .page-home .home-hero-panel .home-hero-search .btn-primary {
        min-height: 2.85rem;
    }
    .page-home .home-service-copy {
        border-left: 0;
        border-top: 4px solid var(--home-accent);
        padding-left: 0;
        padding-top: 1rem;
    }
}

/* ── Home UX v25 — header, produits, dashboard, footer (disposition inchangée) ── */

/* Header & topbar cohérents avec la home */
.page-home .topbar::after {
    opacity: 1;
    height: 3px;
    background: linear-gradient(90deg, var(--home-accent), rgba(47, 181, 210, .35), var(--home-accent));
}
.page-home .topbar-badge {
    background: rgba(47, 181, 210, .18);
    border-color: rgba(47, 181, 210, .45);
    color: #fff;
}
.page-home .header-main::before {
    height: 4px;
    background: var(--home-gradient);
}
.page-home .header.is-scrolled .header-main {
    box-shadow: 0 8px 28px rgba(47, 181, 210, .12);
}
.page-home .nav-link.is-active {
    color: var(--home-accent-deep);
    background: var(--home-accent-soft);
    box-shadow: inset 0 -2px 0 var(--home-accent);
}
.page-home .nav .btn-header-cta {
    background: var(--home-gradient);
    border-color: var(--home-accent-deep);
    box-shadow: var(--home-accent-glow);
}
.page-home .nav .btn-header-cta:hover {
    background: linear-gradient(135deg, #3ec4df 0%, #1f9fb8 100%);
    border-color: #1f9fb8;
    color: #fff;
}
.page-home .header-search:focus-within {
    border-color: var(--home-accent);
    box-shadow: 0 0 0 3px var(--home-accent-ring), var(--home-accent-glow);
}
.page-home .header-search-btn:hover {
    background: var(--home-accent);
    color: #fff;
}

/* Bande fine supérieure */
.page-home .home-hero-strip {
    margin-bottom: clamp(.75rem, 1.75vw, 1.1rem);
    border-bottom: 0;
    box-shadow: none;
}
.page-home .home-hero-strip-slider {
    border-color: var(--color-border);
    box-shadow: var(--shadow);
}
.page-home .home-hero-media .hero-banner-slider {
    box-shadow: var(--shadow);
}

/* Produits vedettes */
.page-home .home-band-featured .section-title p {
    display: inline-block;
    margin-top: .35rem;
    padding: .35rem .85rem;
    background: var(--home-accent-soft);
    border: 1px solid var(--home-accent-mid);
    color: var(--home-accent-deep);
    font-size: .82rem;
    border-radius: 999px;
}
.page-home .home-band-featured .product-card {
    position: relative;
    border-color: rgba(47, 181, 210, .14);
    overflow: hidden;
    transition: border-color .22s ease, box-shadow .22s ease, transform .22s ease;
}
.page-home .home-band-featured .product-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: var(--home-gradient);
    opacity: 0;
    transition: opacity .22s ease;
    z-index: 2;
}
.page-home .home-band-featured .product-card:hover {
    border-color: var(--home-accent);
    box-shadow: var(--home-accent-glow);
    transform: translateY(-3px);
}
.page-home .home-band-featured .product-card:hover::before {
    opacity: 1;
}
.page-home .home-band-featured .product-card-action {
    background: linear-gradient(180deg, rgba(47, 181, 210, .15), rgba(13, 107, 125, .72));
}
.page-home .home-band-featured .price-tag {
    color: var(--home-accent-deep);
    font-weight: 800;
}
.page-home .home-band-featured .price-locked {
    display: inline-block;
    padding: .2rem .55rem;
    background: var(--home-accent-soft);
    border: 1px solid var(--home-accent-mid);
    color: var(--home-accent-deep);
    font-size: .78rem;
    font-weight: 700;
}
.page-home .section-cta .btn-outline,
.page-home .home-hero-actions .btn-outline {
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease;
}
.page-home .section-cta a[href*="catalogue"]:hover,
.page-home .section-cta .btn:hover {
    transform: translateY(-1px);
}

/* Bloc about */
.page-home .home-about {
    position: relative;
    overflow: hidden;
}
.page-home .home-about::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(47, 181, 210, .08) 0%, transparent 35%),
        linear-gradient(0deg, rgba(13, 107, 125, .35) 0%, transparent 45%);
    pointer-events: none;
    z-index: 1;
}
.page-home .home-about::after {
    content: '';
    position: absolute;
    inset: 1rem;
    pointer-events: none;
    z-index: 2;
}
.page-home .home-about img {
    position: relative;
    z-index: 0;
    filter: saturate(1.05) contrast(1.02);
}

/* SEO block */
.page-home .home-seo {
    position: relative;
    padding-left: 2.5rem;
}
.page-home .home-seo::before {
    content: 'B2B';
    position: absolute;
    left: 1rem;
    top: 1.65rem;
    font-family: var(--font-display);
    font-size: .65rem;
    font-weight: 800;
    letter-spacing: .12em;
    color: var(--home-accent);
    opacity: .55;
}

/* Dashboard connecté */
.page-home .home-dashboard {
    background:
        radial-gradient(ellipse 60% 80% at 100% 0%, rgba(47, 181, 210, .08), transparent 55%),
        var(--color-surface);
}
.page-home .home-dashboard-group-pill {
    display: inline-block;
    padding: .35rem .85rem;
    background: var(--home-accent-soft);
    border: 1px solid var(--home-accent-mid);
    color: var(--home-accent-deep);
    font-size: .85rem;
    font-weight: 600;
    border-radius: 999px;
}
.page-home .home-dashboard-main .btn:not(.btn-primary) {
    border-color: var(--home-accent);
    color: var(--home-accent-deep);
}
.page-home .home-dashboard-main .btn:not(.btn-primary):hover {
    background: var(--home-accent-soft);
    border-color: var(--home-accent-deep);
    color: var(--home-accent-deep);
}
.page-home .home-shortcut-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.65rem;
    height: 2.65rem;
    border-radius: 50%;
    background: var(--home-gradient);
    color: #fff;
    box-shadow: 0 4px 12px rgba(47, 181, 210, .25);
    transition: transform .2s ease, box-shadow .2s ease;
}
.page-home .home-shortcut-icon svg {
    display: block;
}
.page-home .home-shortcut:hover .home-shortcut-icon,
.page-home .home-shortcut:focus-visible .home-shortcut-icon {
    transform: scale(1.06);
    box-shadow: 0 6px 16px rgba(47, 181, 210, .35);
}
.page-home .home-shortcut-warn .home-shortcut-icon {
    background: linear-gradient(135deg, #d97706, #f59e0b);
    box-shadow: 0 4px 12px rgba(245, 158, 11, .28);
}
.page-home .home-stats-logged .home-stat-card {
    border-color: rgba(47, 181, 210, .14);
}
.page-home .home-stats-logged .home-stat-card::before {
    background: var(--home-gradient);
}
.page-home .home-stats-logged .home-stat-card-warn::before {
    background: linear-gradient(90deg, #d97706, #f59e0b);
}
.page-home .home-stats-logged .home-stat-card:hover {
    border-color: rgba(47, 181, 210, .45);
    box-shadow: var(--home-accent-glow);
    transform: translateY(-2px);
}

/* Alertes & commandes récentes */
.page-home .main > .alert {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .65rem .85rem;
    border-left: 4px solid var(--home-accent);
    background: linear-gradient(135deg, rgba(47, 181, 210, .08) 0%, var(--color-surface) 100%);
    box-shadow: var(--shadow);
}
.page-home .main > .alert-error {
    border-left-color: #f59e0b;
    background: linear-gradient(135deg, rgba(245, 158, 11, .1) 0%, var(--color-surface) 100%);
}
.page-home .home-recent-orders {
    border-top: 3px solid var(--home-accent);
    overflow: hidden;
}
.page-home .home-recent-orders .section-header {
    padding-bottom: .85rem;
    border-bottom: 1px solid rgba(47, 181, 210, .15);
}
.page-home .home-recent-orders .section-header h2 {
    color: var(--home-accent-deep);
}
.page-home .home-recent-orders tbody tr {
    transition: background .15s ease;
}
.page-home .home-recent-orders tbody tr:hover {
    background: var(--home-accent-soft);
}
.page-home .home-recent-orders .btn {
    border-color: var(--home-accent);
    color: var(--home-accent-deep);
}
.page-home .home-recent-orders .btn:hover {
    background: var(--home-accent);
    border-color: var(--home-accent);
    color: #fff;
}

/* Footer */
.page-home .footer {
    border-top: 3px solid var(--home-accent);
    background:
        radial-gradient(ellipse 70% 50% at 50% 0%, rgba(47, 181, 210, .12), transparent 60%),
        var(--color-ink);
}
.page-home .footer-trust .trust-pill {
    border-color: rgba(47, 181, 210, .35);
    background: rgba(47, 181, 210, .1);
}

/* Animations reveal plus fluides sur home */
.page-home .reveal-on-scroll.is-visible .section-title h2::after {
    animation: homeBarGrow .55s var(--ease-out) both;
}
@keyframes homeBarGrow {
    from { width: 0; opacity: 0; }
    to { width: 3.5rem; opacity: 1; }
}
.page-home .reveal-stagger.is-visible > * {
    animation: homeFadeUp .55s var(--ease-out) both;
}
@keyframes homeFadeUp {
    from { opacity: 0; transform: translateY(16px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 768px) {
    .page-home .home-about::after {
        inset: .65rem;
    }
    .page-home .home-seo {
        padding-left: 1.5rem;
    }
    .page-home .home-seo::before {
        left: .5rem;
        top: 1.35rem;
    }
    .page-home .main > .alert {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* ── Home hero panel — accent noir (zone sous slider + trust strip) ── */
.page-home .home-hero-panel {
    background: linear-gradient(180deg, #fff 0%, #fafafa 100%);
    border-top-color: var(--color-border);
}
.page-home .home-hero-panel h1::after {
    background: var(--color-ink);
}
.page-home .home-hero-badge {
    background: var(--color-surface);
    border-color: var(--color-ink);
    color: var(--color-ink);
    box-shadow: none;
}
.page-home .home-hero-panel .home-hero-search {
    border-color: var(--color-border);
}
.page-home .home-hero-panel .home-hero-search:focus-within {
    border-color: var(--color-ink);
    box-shadow: 0 0 0 3px rgba(0, 0, 0, .08);
}
.page-home .home-hero-panel .home-hero-search-icon {
    color: var(--color-muted);
}
.page-home .home-hero-panel .home-hero-search .btn-primary {
    background: var(--color-ink);
    border-color: var(--color-ink);
    color: #fff;
    box-shadow: 0 2px 10px rgba(0, 0, 0, .15);
}
.page-home .home-hero-panel .home-hero-search .btn-primary:hover {
    background: #1a1a1a;
    border-color: #1a1a1a;
    color: #fff;
}
.page-home .home-hero-panel .home-search-hint {
    background: #f5f5f5;
    border: 1px solid var(--color-border);
    color: var(--color-muted);
    border-radius: 999px;
}
.page-home .home-hero-actions .btn-primary {
    background: var(--color-ink);
    border-color: var(--color-ink);
    color: #fff;
    box-shadow: 0 4px 14px rgba(0, 0, 0, .12);
}
.page-home .home-hero-actions .btn-primary:hover {
    background: #1a1a1a;
    border-color: #1a1a1a;
    color: #fff;
}
.page-home .home-hero-actions .btn-outline {
    border-color: var(--color-ink);
    color: var(--color-ink);
    background: #fff;
}
.page-home .home-hero-actions .btn-outline:hover {
    background: var(--color-ink);
    border-color: var(--color-ink);
    color: #fff;
}
.page-home .home-hero-perk {
    border-color: var(--color-border);
    background: #fff;
}
.page-home .home-hero-perk:hover {
    border-color: var(--color-ink);
    background: #fff;
}
.page-home .home-hero-perk-icon {
    background: var(--color-ink);
    border: 0;
    color: #fff;
}
.page-home .home-hero-perk-icon svg {
    display: block;
    stroke: #fff;
}
.page-home .home-trust-strip {
    background: #f5f5f5;
    border-top: 1px solid var(--color-border);
}
.page-home .home-trust-item:hover {
    background: rgba(0, 0, 0, .04);
}
.page-home .home-trust-icon {
    background: var(--color-ink);
    border: 1px solid var(--color-ink);
    color: #fff;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .12);
}
.page-home .home-trust-icon svg {
    display: block;
    stroke: #fff;
    color: #fff;
}
.page-home .home-trust-item strong {
    color: var(--color-text);
}
.page-home .home-trust-item span {
    color: var(--color-muted);
}

/* ── Home section heads (Catégories, Produits récents — estilo hero) ── */
.page-home .home-section-head {
    text-align: center;
    margin-bottom: clamp(1.75rem, 3vw, 2.25rem);
}
.page-home .home-section-head .home-hero-badge {
    display: inline-block;
    margin: 0 0 .85rem;
    padding: .35rem .85rem;
    border: 1px solid var(--color-ink);
    background: var(--color-surface);
    color: var(--color-ink);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    border-radius: 0;
    box-shadow: none;
}
.page-home .home-section-head h2 {
    margin: 0 0 .75rem;
    font-family: var(--font-display);
    font-size: clamp(1.55rem, 3.2vw, 2.25rem);
    line-height: 1.15;
    font-weight: 800;
    color: var(--color-text);
}
.page-home .home-section-head h2::after {
    display: none !important;
    content: none;
}
.page-home .home-section-head p {
    margin: 0 auto;
    max-width: 36rem;
    font-size: clamp(.92rem, 1.5vw, 1.05rem);
    line-height: 1.55;
    color: var(--color-muted);
}
.page-home .home-band-featured .home-section-head p,
.page-home .home-band-categories .home-section-head p {
    display: block;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    font-size: clamp(.92rem, 1.5vw, 1.05rem);
    color: var(--color-muted);
}
.page-home .home-band-categories .home-section-head .home-hero-badge,
.page-home .home-band-featured .home-section-head .home-hero-badge {
    background: var(--color-surface);
    border-color: var(--color-ink);
    color: var(--color-ink);
}

/* Produits récents — 2 filas × 4 columnas (8 productos) */
.page-home .product-grid-home-featured {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(.75rem, 1.5vw, 1.25rem);
    align-items: stretch;
}
.page-home .product-grid-home-featured .product-card {
    height: 100%;
}
@media (max-width: 1024px) {
    .page-home .product-grid-home-featured {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
@media (max-width: 768px) {
    .page-home .product-grid-home-featured {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 420px) {
    .page-home .product-grid-home-featured {
        grid-template-columns: 1fr;
    }
}

/* Bloc SEO home — ancho contenedor, sin borde ni full-bleed */
.page-home .home-seo {
    margin-left: 0;
    margin-right: 0;
    width: 100%;
    max-width: 100%;
    padding: 0;
    margin-top: 2.5rem;
    background: transparent;
    border: 0;
    box-shadow: none;
    position: static;
}
.page-home .home-seo::before {
    display: none;
    content: none;
}
.page-home .home-seo h2 {
    margin: 0 0 .75rem;
    font-size: clamp(1.15rem, 2.2vw, 1.35rem);
    font-weight: 800;
    color: var(--color-text);
}
.page-home .home-seo p {
    margin: 0;
    max-width: 72ch;
    color: var(--color-muted);
    line-height: 1.75;
}

/* Catalog category UX v29 — layout professionnel B2B */
.page-catalog .catalog-main {
    gap: 1.15rem;
}
.page-catalog .category-subgrid-pro {
    padding: 1rem 1.15rem;
    margin: 0;
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    box-shadow: none;
}
.page-catalog .category-subgrid-pro .category-subgrid-head {
    margin-bottom: .75rem;
    padding-bottom: .65rem;
    border-bottom: 1px solid var(--color-border);
}
.page-catalog .category-subgrid-pro .category-subgrid-title {
    font-size: .72rem;
    letter-spacing: .08em;
    color: var(--color-text);
}
.page-catalog .category-subgrid-pro .category-subgrid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .45rem;
}
.page-catalog .category-subgrid-pro .category-subcard {
    display: flex;
    align-items: center;
    min-height: 2.35rem;
    padding: .5rem .7rem;
    border: 1px solid var(--color-border);
    border-radius: 0;
    background: #fff;
    transition: border-color .16s ease, background .16s ease;
}
.page-catalog .category-subgrid-pro .category-subcard::before {
    content: '›';
    flex-shrink: 0;
    width: 1rem;
    margin-right: .35rem;
    font-size: .95rem;
    font-weight: 700;
    line-height: 1;
    color: var(--color-muted);
    transition: color .16s ease, transform .16s ease;
}
.page-catalog .category-subgrid-pro .category-subcard:hover::before,
.page-catalog .category-subgrid-pro .category-subcard.is-active::before {
    color: var(--color-ink);
    transform: translateX(1px);
}
.page-catalog .category-subgrid-pro .category-subcard:hover {
    border-color: var(--color-ink);
    background: var(--color-surface-subtle);
    transform: none;
    box-shadow: none;
}
.page-catalog .category-subgrid-pro .category-subcard.is-active {
    border-color: var(--color-ink);
    background: var(--color-surface-subtle);
    box-shadow: inset 3px 0 0 var(--color-ink);
}
.page-catalog .category-subgrid-pro .category-subcard-name {
    font-size: .84rem;
    font-weight: 600;
    line-height: 1.3;
}

.page-catalog .catalog-controls {
    padding: 0;
    margin: 0;
    overflow: visible;
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    box-shadow: none;
}
.page-catalog .catalog-controls .catalog-sidebar-toggle {
    display: none;
}
.page-catalog .catalog-guest-strip {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .55rem .85rem;
    padding: .65rem 1rem;
    border-bottom: 1px solid var(--color-border);
    border-left: 3px solid var(--color-ink);
    background: var(--color-surface-subtle);
}
.page-catalog .catalog-guest-strip-text {
    margin: 0;
    flex: 1 1 14rem;
    min-width: 0;
    font-size: .82rem;
    line-height: 1.45;
    color: var(--color-muted);
}
.page-catalog .catalog-guest-strip-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .4rem;
    flex-shrink: 0;
}
.page-catalog .catalog-controls .catalog-toolbar {
    margin: 0;
    padding: .65rem 1rem;
    border: 0;
    background: transparent;
    box-shadow: none;
}
.page-catalog .catalog-controls .catalog-toolbar-sticky {
    position: static;
    padding: .65rem 1rem;
    background: transparent;
    backdrop-filter: none;
}
.page-catalog .catalog-controls {
    position: sticky;
    top: var(--header-offset, 72px);
    z-index: 40;
    background: rgba(255, 255, 255, .98);
    backdrop-filter: blur(8px);
}
.page-catalog .catalog-controls .catalog-toolbar-summary {
    font-size: .84rem;
    color: var(--color-text);
}
.page-catalog .catalog-controls .catalog-toolbar-meta-item {
    color: var(--color-muted);
}
.page-catalog .catalog-controls .catalog-toolbar-meta-item + .catalog-toolbar-meta-item::before {
    content: '·';
    margin-right: .5rem;
    color: var(--color-border-strong, #c8cfcc);
}
.page-catalog .catalog-controls .catalog-toolbar-meta-item strong {
    color: var(--color-text);
}
.page-catalog .catalog-controls .view-toggle-text {
    display: inline;
    margin-left: .25rem;
    font-size: .78rem;
    font-weight: 600;
}
.page-catalog .catalog-controls .view-toggle-btn {
    border-radius: 0;
}
.page-catalog .catalog-controls .view-toggle-btn.active {
    background: var(--color-ink);
    border-color: var(--color-ink);
    color: #fff;
}
.page-catalog .catalog-controls .catalog-sort-select {
    min-width: 10rem;
}
.page-catalog .catalog-controls .catalog-toolbar-pro {
    padding-left: .65rem;
    margin-left: .15rem;
    border-left: 1px solid var(--color-border);
}
.page-catalog .catalog-controls .btn-primary {
    background: var(--color-ink);
    border-color: var(--color-ink);
    color: #fff;
}
.page-catalog .catalog-controls .btn-primary:hover {
    background: #000;
    border-color: #000;
    color: #fff;
}
.page-catalog .catalog-controls .btn-outline {
    border-color: var(--color-ink);
    color: var(--color-ink);
}
.page-catalog .catalog-controls .btn-outline:hover {
    background: var(--color-ink);
    border-color: var(--color-ink);
    color: #fff;
}

@media (max-width: 1100px) {
    .page-catalog .category-subgrid-pro .category-subgrid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
@media (max-width: 992px) {
    .page-catalog .catalog-controls .catalog-sidebar-toggle {
        display: inline-flex;
        align-items: center;
        gap: .45rem;
        width: 100%;
        margin: 0;
        padding: .65rem 1rem;
        border: 0;
        border-bottom: 1px solid var(--color-border);
        border-radius: 0;
        background: var(--color-surface-subtle);
        justify-content: flex-start;
        font-size: .82rem;
        font-weight: 700;
        color: var(--color-text);
    }
    .page-catalog .catalog-controls .catalog-sidebar-toggle svg {
        flex-shrink: 0;
        color: var(--color-ink);
    }
}
@media (max-width: 768px) {
    .page-catalog .category-subgrid-pro .category-subgrid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .page-catalog .catalog-guest-strip {
        flex-direction: column;
        align-items: stretch;
    }
    .page-catalog .catalog-guest-strip-actions {
        justify-content: flex-start;
    }
    .page-catalog .catalog-controls .catalog-toolbar-row {
        flex-direction: column;
        align-items: stretch;
    }
    .page-catalog .catalog-controls .catalog-toolbar-summary {
        width: 100%;
    }
    .page-catalog .catalog-controls .catalog-toolbar-meta-item {
        white-space: normal;
    }
    .page-catalog .catalog-controls .catalog-toolbar-actions {
        justify-content: space-between;
        width: 100%;
    }
    .page-catalog .catalog-controls .catalog-toolbar-pro {
        border-left: 0;
        padding-left: 0;
        margin-left: 0;
        padding-top: .35rem;
        border-top: 1px dashed var(--color-border);
        width: 100%;
    }
}
@media (max-width: 480px) {
    .page-catalog .category-subgrid-pro .category-subgrid {
        grid-template-columns: 1fr;
    }
    .page-catalog .catalog-controls .view-toggle-text {
        display: none;
    }
}

/* Catalog toolbar — alineación sort + vue */
.page-catalog .catalog-controls .catalog-toolbar-actions {
    display: flex;
    align-items: center;
    gap: .5rem .65rem;
}
.page-catalog .catalog-controls .catalog-sort-form {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin: 0;
}
.page-catalog .catalog-controls .catalog-sort-label {
    display: flex;
    align-items: center;
    margin: 0;
}
.page-catalog .catalog-controls .catalog-sort-select {
    height: 2.125rem;
    min-height: 2.125rem;
    padding: 0 2rem 0 .65rem;
    border: 1px solid var(--color-border);
    border-radius: 0;
    background: #fff;
    font-size: .8rem;
    box-sizing: border-box;
}
.page-catalog .catalog-controls .view-toggle-tabs {
    display: inline-flex;
    align-items: stretch;
    align-self: center;
    gap: 0;
    height: 2.125rem;
    padding: 0;
    margin: 0;
    border: 1px solid var(--color-border);
    border-radius: 0;
    background: #fff;
    box-sizing: border-box;
}
.page-catalog .catalog-controls .view-toggle-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .3rem;
    height: 100%;
    min-height: 0;
    min-width: 0;
    padding: 0 .65rem;
    margin: 0;
    border: 0;
    border-right: 1px solid var(--color-border);
    border-radius: 0;
    font-size: .8rem;
    line-height: 1;
    box-sizing: border-box;
}
.page-catalog .catalog-controls .view-toggle-btn:last-child {
    border-right: 0;
}
.page-catalog .catalog-controls .view-toggle-btn.active {
    background: var(--color-ink);
    border-color: transparent;
    color: #fff;
}
.page-catalog .catalog-controls .catalog-stock-filter {
    display: inline-flex;
    align-items: center;
    margin: 0;
    min-height: 2.125rem;
}

/* Catalog list view v30 — tabla B2B compacta */
.page-catalog .catalog-list-wrap {
    border: 1px solid var(--color-border);
    border-radius: 0;
    box-shadow: none;
    overflow: hidden;
}
.page-catalog .catalog-list-table {
    margin: 0;
    border-radius: 0;
}
.page-catalog .catalog-list-table thead th {
    padding: .5rem .75rem;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--color-muted);
    background: var(--color-surface-subtle);
    border-bottom: 1px solid var(--color-border);
    white-space: nowrap;
}
.page-catalog .catalog-list-table .product-list-th-media {
    width: 3.75rem;
    padding-left: .75rem;
    padding-right: 0;
}
.page-catalog .catalog-list-table .product-list-th-actions {
    width: 1%;
    padding-right: .75rem;
}
.page-catalog .catalog-list-table tbody td {
    padding: .5rem .75rem;
    vertical-align: middle;
    border-bottom: 1px solid var(--color-border);
}
.page-catalog .catalog-list-table tbody tr:last-child td {
    border-bottom: 0;
}
.page-catalog .product-list-row {
    transition: background .12s ease;
}
.page-catalog .product-list-row:hover td {
    background: rgba(0, 0, 0, .02);
}
.page-catalog .product-list-media {
    width: 3.75rem;
    padding-left: .75rem;
    padding-right: .5rem;
}
.page-catalog .product-list-thumb-link {
    display: block;
    width: 2.75rem;
    height: 2.75rem;
    border: 1px solid var(--color-border);
    background: #fafafa;
    overflow: hidden;
}
.page-catalog .product-list-row:hover .product-list-thumb-link {
    border-color: var(--color-border);
}
.page-catalog .product-list-thumb {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
}
.page-catalog .product-list-thumb-empty {
    background: #eceeed;
}
.page-catalog .product-list-info {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    min-width: 0;
}
.page-catalog .product-list-product {
    min-width: 10rem;
}
.page-catalog .product-list-ref {
    display: block;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--color-muted);
    line-height: 1.2;
}
.page-catalog .product-list-title {
    display: block;
    margin: 0;
    font-size: .84rem;
    font-weight: 600;
    line-height: 1.35;
    color: var(--color-text);
    text-decoration: none;
}
.page-catalog .product-list-title:hover {
    color: var(--color-ink);
    text-decoration: none;
}
.page-catalog .product-list-badge {
    display: inline-block;
    margin-top: .15rem;
    font-size: .68rem;
}
.page-catalog .product-list-price {
    white-space: nowrap;
    font-size: .84rem;
}
.page-catalog .product-list-price .price-tag-sm {
    font-size: .84rem;
    font-weight: 700;
    padding: 0;
    background: transparent;
}
.page-catalog .product-list-price .price-locked {
    font-size: .8rem;
}
.page-catalog .product-list-stock {
    white-space: nowrap;
    font-size: .82rem;
}
.page-catalog .product-list-stock-qty {
    display: inline-block;
    min-width: 1.5rem;
    margin-right: .25rem;
    font-weight: 700;
    font-size: .82rem;
    color: var(--color-text);
}
.page-catalog .product-list-actions {
    text-align: right;
    white-space: nowrap;
}
.page-catalog .product-list-actions .inline-form {
    display: inline-flex;
    vertical-align: middle;
}
.page-catalog .product-list-actions .btn-sm {
    padding: .3rem .5rem;
    font-size: .78rem;
    border-radius: 0;
}
.page-catalog .product-list-actions .btn-primary {
    background: var(--color-ink);
    border-color: var(--color-ink);
}
.page-catalog .product-list-actions .btn:hover {
    transform: none;
    box-shadow: none;
}

@media (max-width: 768px) {
    .page-catalog .catalog-list-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .page-catalog .catalog-list-table {
        min-width: 32rem;
    }
}

/* ── Product UX v25 — body sections (header unchanged) ── */
.page-product .product-overview-shell {
    margin-bottom: 1rem;
}
.page-product .product-gallery-slim {
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    padding: 0;
}
.page-product .product-gallery-slim .product-gallery-head {
    display: none;
}
.page-product .product-gallery-count-inline {
    display: inline-block;
    margin-bottom: .5rem;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--color-muted);
}
.page-product .product-buybox-card {
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    padding: 0;
}
.page-product .product-buybox-kicker {
    border-radius: 0;
}
.page-product .product-guest-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .55rem .75rem;
    padding: .65rem .75rem;
    border: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
}
.page-product .product-guest-bar-text {
    margin: 0;
    flex: 1 1 12rem;
    min-width: 0;
    font-size: .82rem;
    line-height: 1.45;
    color: var(--color-muted);
}
.page-product .product-guest-bar-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    flex-shrink: 0;
}
.page-product .product-guest-trust {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem .55rem;
    margin-top: .65rem;
    padding-top: .65rem;
    border-top: 1px dashed var(--color-border);
    font-size: .72rem;
    color: var(--color-muted);
}
.page-product .product-hero-rating {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .25rem .55rem;
    border: 1px solid rgba(255, 255, 255, .25);
    background: rgba(255, 255, 255, .1);
    color: #fff;
    text-decoration: none;
    font-size: .74rem;
    font-weight: 600;
}
.page-product .product-hero:not(.has-image) .product-hero-rating {
    border-color: var(--color-border);
    background: var(--color-surface-subtle);
    color: var(--color-text);
}
.page-product .product-hero-rating:hover {
    text-decoration: none;
    border-color: var(--color-ink);
}
.page-product .product-stars {
    display: inline-flex;
    gap: .05rem;
    letter-spacing: -.02em;
}
.page-product .product-star {
    color: var(--color-border);
    font-size: .82rem;
    line-height: 1;
}
.page-product .product-star.is-filled {
    color: var(--color-ink);
}
.page-product .product-hero.has-image .product-star.is-filled {
    color: #fff;
}
.page-product .product-spec-strip {
    padding: .85rem 0;
    margin-bottom: .85rem;
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
    background: transparent;
    box-shadow: none;
}
.page-product .product-spec-head {
    margin-bottom: .65rem;
    padding-bottom: .55rem;
}
.page-product .product-spec-head h2 {
    font-size: .92rem;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.page-product .product-copy-all-btn,
.page-product .product-print-btn {
    border-radius: 0;
}
.page-product .product-copy-all-btn:hover,
.page-product .product-print-btn:hover {
    border-color: var(--color-ink);
}
.page-product .product-spec-icon {
    color: var(--color-ink);
}
.page-product .product-content-shell {
    padding: 1rem 0 1.25rem;
    margin-bottom: .85rem;
    border-bottom: 1px solid var(--color-border);
    background: transparent;
    box-shadow: none;
}
.page-product .product-content-notice-short {
    margin: 0 0 .85rem;
    font-size: .74rem;
    color: var(--color-muted);
}
.page-product .product-content-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.25rem;
}
.page-product .product-content-block .product-section-head {
    margin-bottom: .65rem;
    padding-bottom: .45rem;
    border-bottom: 1px solid var(--color-border);
}
.page-product .product-content-block .product-section-head h2 {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
    color: var(--color-ink);
}
.page-product .product-description.prose {
    max-height: none !important;
    overflow: visible;
}
.page-product .product-description.prose::after {
    display: none !important;
}
.page-product .product-features-list-compact {
    margin: 0;
    padding: 0;
    list-style: none;
}
.page-product .product-features-list-compact li {
    display: flex;
    gap: .55rem;
    align-items: flex-start;
    padding: .55rem 0;
    border-bottom: 1px solid var(--color-border);
    font-size: .88rem;
    line-height: 1.45;
}
.page-product .product-features-list-compact li:last-child {
    border-bottom: 0;
}
.page-product .product-feature-mark {
    flex-shrink: 0;
    color: var(--color-ink);
    font-weight: 700;
}
.page-product .product-reviews {
    padding: 1rem 0 1.25rem;
    margin-bottom: .85rem;
    border-bottom: 1px solid var(--color-border);
}
.page-product .product-reviews-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem 1.25rem;
    margin-bottom: 1rem;
}
.page-product .product-reviews-head h2 {
    margin: 0 0 .25rem;
    font-size: 1.05rem;
    color: var(--color-ink);
}
.page-product .product-reviews-sub {
    margin: 0;
    font-size: .82rem;
    color: var(--color-muted);
}
.page-product .product-reviews-summary {
    display: flex;
    align-items: center;
    gap: .65rem;
}
.page-product .product-reviews-score {
    font-family: var(--font-display);
    font-size: 2rem;
    font-weight: 800;
    line-height: 1;
    color: var(--color-ink);
}
.page-product .product-reviews-summary-meta {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    font-size: .78rem;
}
.page-product .product-stars-lg .product-star {
    font-size: 1rem;
}
.page-product .product-stars-sm .product-star {
    font-size: .72rem;
}
.page-product .product-reviews-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: .65rem;
}
.page-product .product-review-card {
    padding: .85rem .9rem;
    border: 1px solid var(--color-border);
    background: #fff;
}
.page-product .product-review-card-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: .45rem .65rem;
    margin-bottom: .45rem;
}
.page-product .product-review-author {
    display: block;
    font-size: .84rem;
    color: var(--color-text);
}
.page-product .product-review-verified {
    display: inline-block;
    margin-top: .15rem;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--color-muted);
}
.page-product .product-review-meta {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .15rem;
    font-size: .72rem;
    color: var(--color-muted);
}
.page-product .product-review-title {
    margin: 0 0 .35rem;
    font-size: .88rem;
    font-weight: 700;
    color: var(--color-ink);
}
.page-product .product-review-body {
    margin: 0;
    font-size: .84rem;
    line-height: 1.55;
    color: var(--color-muted);
}
.page-product .product-reviews-cta {
    margin: .85rem 0 0;
    font-size: .82rem;
}
.page-product .product-page-footer {
    padding: .85rem 0 1rem;
    border-top: 0;
    background: transparent;
    box-shadow: none;
}
.page-product .product-related-band {
    padding-top: .5rem;
}
.page-product .product-help-card {
    margin-top: .85rem;
    padding-top: .85rem;
    border-top: 1px dashed var(--color-border);
}

@media (min-width: 992px) {
    .page-product .product-content-grid {
        grid-template-columns: minmax(0, 1.7fr) minmax(240px, .9fr);
        align-items: start;
    }
    .page-product .product-content-block-aside {
        padding-left: 1rem;
        border-left: 1px solid var(--color-border);
    }
}

@media (max-width: 768px) {
    .page-product .product-guest-bar {
        flex-direction: column;
        align-items: stretch;
    }
    .page-product .product-reviews-head {
        flex-direction: column;
    }
    .page-product .product-reviews-list {
        grid-template-columns: 1fr;
    }
}

/* ── Product UX v26 — sticky buybox, facts bar, TOC, reviews grid ── */
.page-product .product-buybox-col {
    position: sticky;
    top: calc(var(--header-offset, 72px) + 2.75rem);
    align-self: start;
}
.page-product .product-guest-price-line {
    margin: 0 0 .65rem;
    font-family: var(--font-display);
    font-size: clamp(1.1rem, 2vw, 1.35rem);
    font-weight: 700;
    color: var(--color-ink);
}
.page-product .product-help-inline {
    margin: .85rem 0 0;
    padding-top: .75rem;
    border-top: 1px dashed var(--color-border);
    font-size: .82rem;
    color: var(--color-muted);
}
.page-product .product-help-inline-link {
    margin-left: .35rem;
    font-weight: 600;
    color: var(--color-ink);
}
.page-product .product-facts-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .65rem 1rem;
    margin-top: .65rem;
    padding: .65rem .85rem;
    border: 1px solid var(--color-border);
    border-left: 3px solid var(--color-ink);
    background: var(--color-surface-subtle);
}
.page-product .product-facts-list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem 1.1rem;
    margin: 0;
    padding: 0;
    list-style: none;
    min-width: 0;
    flex: 1 1 20rem;
}
.page-product .product-fact {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem .5rem;
    min-width: 0;
}
.page-product .product-fact-label {
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--color-muted);
}
.page-product .product-fact-value {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    min-width: 0;
    font-size: .84rem;
}
.page-product .product-fact-value code {
    font-size: .82rem;
    padding: .12rem .35rem;
    background: #fff;
    border: 1px solid var(--color-border);
}
.page-product .product-fact-link .product-link-value {
    max-width: 14rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: inline-block;
    vertical-align: bottom;
}
.page-product .product-copy-btn-icon {
    min-width: 1.65rem;
    height: 1.65rem;
    padding: 0;
    border-radius: 0;
    font-size: .82rem;
    line-height: 1;
}
.page-product .product-facts-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .4rem .55rem;
    flex-shrink: 0;
}
.page-product .product-facts-quote-link {
    font-size: .78rem;
    font-weight: 600;
    color: var(--color-ink);
    text-decoration: none;
}
.page-product .product-facts-quote-link:hover {
    text-decoration: underline;
}
.page-product #product-specs,
.page-product #product-content,
.page-product #product-reviews,
.page-product #product-related {
    scroll-margin-top: calc(var(--header-offset, 72px) + 3.25rem);
}
.page-product .product-desc-toc {
    margin: 0 0 .85rem;
    padding: .65rem .75rem;
    border: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
}
.page-product .product-desc-toc-label {
    display: block;
    margin-bottom: .4rem;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--color-muted);
}
.page-product .product-desc-toc-list {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem .55rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
.page-product .product-desc-toc-item a {
    display: inline-block;
    padding: .22rem .5rem;
    border: 1px solid var(--color-border);
    background: #fff;
    font-size: .78rem;
    color: var(--color-text);
    text-decoration: none;
}
.page-product .product-desc-toc-item a:hover {
    border-color: var(--color-ink);
    color: var(--color-ink);
}
.page-product .product-desc-toc-h3 a {
    font-weight: 500;
    color: var(--color-muted);
}
.page-product .product-desc-section .prose h2,
.page-product .product-desc-section .prose h3 {
    scroll-margin-top: calc(var(--header-offset, 72px) + 3.5rem);
}
.page-product .product-reviews-layout {
    display: grid;
    grid-template-columns: minmax(180px, 220px) minmax(0, 1fr);
    gap: 1rem 1.25rem;
    align-items: start;
}
.page-product .product-reviews-side {
    padding: .85rem;
    border: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
}
.page-product .product-reviews-summary-side {
    display: flex;
    align-items: center;
    gap: .65rem;
    margin-bottom: .75rem;
}
.page-product .product-reviews-bars {
    margin: 0;
    padding: 0;
    list-style: none;
}
.page-product .product-reviews-bar-row {
    display: grid;
    grid-template-columns: 2rem minmax(0, 1fr) 1.25rem;
    align-items: center;
    gap: .35rem;
    margin-bottom: .3rem;
    font-size: .72rem;
    color: var(--color-muted);
}
.page-product .product-reviews-bar-track {
    height: .35rem;
    background: var(--color-border);
    overflow: hidden;
}
.page-product .product-reviews-bar-fill {
    display: block;
    height: 100%;
    background: var(--color-ink);
}
.page-product .product-reviews-bar-count {
    text-align: right;
    font-variant-numeric: tabular-nums;
}
.page-product .product-related-band {
    padding: 1rem 0 1.25rem;
    border-top: 1px solid var(--color-border);
}
.page-product .product-related-head h2 {
    font-size: 1.05rem;
}
.page-product .product-grid-related {
    gap: .85rem;
}
.page-product .product-grid-related .product-card {
    border-radius: 0;
    box-shadow: none;
}

@media (max-width: 992px) {
    .page-product .product-buybox-col {
        position: static;
    }
    .page-product .product-reviews-layout {
        grid-template-columns: 1fr;
    }
    .page-product .product-facts-bar {
        flex-direction: column;
        align-items: stretch;
    }
}

@media (max-width: 768px) {
    .page-product .product-facts-list {
        flex-direction: column;
        align-items: flex-start;
    }
    .page-product .product-fact-link .product-link-value {
        max-width: 100%;
    }
}

/* ── Product UX v27 — fondo blanco, sin bordes laterales, TOC sidebar ── */
.site-body.page-product {
    background: #fff;
}
.site-body.page-product .main.container.page-content {
    background: #fff;
}
.page-product .product-page {
    background: #fff;
}
.page-product .product-overview-shell,
.page-product .product-content-shell,
.page-product .product-reviews,
.page-product .product-related-band,
.page-product .product-page-footer {
    background: #fff;
}
.page-product .product-gallery-slim,
.page-product .product-buybox-card,
.page-product .product-guest-bar,
.page-product .product-facts-bar,
.page-product .product-review-card,
.page-product .product-reviews-side {
    border: 0;
    border-left: 0;
    border-right: 0;
    background: #fff;
    box-shadow: none;
}
.page-product .product-gallery-slim {
    padding: 0 0 .85rem;
    border-bottom: 1px solid var(--color-border);
}
.page-product .product-buybox-card {
    padding: 0 0 .85rem;
    border-bottom: 1px solid var(--color-border);
}
.page-product .product-guest-bar {
    padding: .65rem 0;
    border-bottom: 1px solid var(--color-border);
}
.page-product .product-facts-bar {
    padding: .75rem 0;
    margin-top: 0;
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
}
.page-product .product-fact-value code {
    background: #fff;
    border: 0;
    border-bottom: 1px solid var(--color-border);
    padding: .12rem 0;
}
.page-product .product-content-shell {
    padding: 1.25rem 0 1.5rem;
    border-bottom: 1px solid var(--color-border);
}
.page-product .product-desc-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0 2rem;
    width: 100%;
    align-items: start;
}
.page-product .product-desc-sidebar {
    display: none;
}
.page-product .product-desc-layout.has-toc {
    grid-template-columns: minmax(200px, 240px) minmax(0, 1fr);
    grid-template-areas: "toc main";
}
.page-product .product-desc-layout.has-toc .product-desc-sidebar {
    display: block;
    grid-area: toc;
    grid-column: 1;
    grid-row: 1;
    position: static;
    align-self: start;
    padding-top: 0;
}
.page-product .product-desc-layout.has-toc .product-desc-main {
    grid-area: main;
    grid-column: 2;
    grid-row: 1;
}
.page-product .product-desc-layout.has-toc .product-desc-toc {
    position: sticky;
    top: calc(var(--header-offset, 72px) + 2.75rem);
    max-height: calc(100vh - var(--header-offset, 72px) - 4rem);
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
}
.page-product .product-desc-toc {
    margin: 0;
    padding: 0;
    border: 0;
    background: #fff;
}
.page-product .product-desc-toc-label {
    display: block;
    margin-bottom: .55rem;
    padding-bottom: .45rem;
    border-bottom: 1px solid var(--color-border);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--color-muted);
}
.page-product .product-desc-toc-list {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}
.page-product .product-desc-toc-item a {
    display: block;
    padding: .45rem 0;
    border: 0;
    border-bottom: 1px solid var(--color-border);
    border-radius: 0;
    background: #fff;
    font-size: .8rem;
    line-height: 1.35;
    color: var(--color-text);
    text-decoration: none;
}
.page-product .product-desc-toc-item a:hover,
.page-product .product-desc-toc-item a.is-active {
    color: var(--color-ink);
    font-weight: 600;
}
.page-product .product-desc-toc-h3 a {
    padding-left: .65rem;
    font-size: .76rem;
    color: var(--color-muted);
}
.page-product .product-desc-main {
    min-width: 0;
}
.page-product .product-features-inline {
    margin-top: 1.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--color-border);
}
.page-product .product-content-block-aside {
    border-left: 0;
    padding-left: 0;
}
.page-product .product-reviews {
    padding: 1.25rem 0 1.5rem;
    border-bottom: 1px solid var(--color-border);
}
.page-product .product-reviews-side {
    padding: 0;
    border: 0;
}
.page-product .product-review-card {
    padding: .85rem 0;
    border: 0;
    border-bottom: 1px solid var(--color-border);
}
.page-product .product-reviews-list {
    gap: 0;
}
.page-product .product-gallery-frame {
    background: #fff;
}
.page-product .product-gallery-col,
.page-product .product-buybox-col {
    background: #fff;
}

@media (max-width: 992px) {
    .page-product .product-desc-layout.has-toc {
        grid-template-columns: 1fr;
        grid-template-areas: "toc" "main";
    }
    .page-product .product-desc-layout.has-toc .product-desc-sidebar,
    .page-product .product-desc-layout.has-toc .product-desc-main {
        grid-column: auto;
        grid-row: auto;
    }
    .page-product .product-desc-layout.has-toc .product-desc-sidebar {
        position: static;
        margin-bottom: 1rem;
        padding-bottom: .85rem;
        border-bottom: 1px solid var(--color-border);
    }
    .page-product .product-desc-layout.has-toc .product-desc-toc {
        position: static;
        max-height: none;
        overflow: visible;
    }
}

/* Catalog display controls v31 — tri + vue alineados */
.page-catalog .catalog-controls .catalog-toolbar-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .55rem .75rem;
}
.page-catalog .catalog-controls .catalog-display-controls {
    display: inline-flex;
    align-items: stretch;
    flex-shrink: 0;
    height: 2.25rem;
    border: 1px solid var(--color-border);
    background: #fff;
    box-sizing: border-box;
}
.page-catalog .catalog-controls .catalog-display-controls .catalog-sort-form {
    display: flex;
    align-items: stretch;
    margin: 0;
    border-right: 1px solid var(--color-border);
}
.page-catalog .catalog-controls .catalog-display-controls .catalog-sort-label {
    display: flex;
    align-items: stretch;
    margin: 0;
    height: 100%;
}
.page-catalog .catalog-controls .catalog-display-controls .catalog-sort-select {
    height: 100%;
    min-height: 0;
    min-width: 9.25rem;
    margin: 0;
    padding: 0 1.85rem 0 .75rem;
    border: 0;
    border-radius: 0;
    background-color: #fff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right .55rem center;
    background-size: .75rem;
    font-size: .8rem;
    font-weight: 600;
    line-height: 1;
    color: var(--color-text);
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    box-sizing: border-box;
}
.page-catalog .catalog-controls .catalog-display-controls .catalog-sort-select:focus {
    outline: none;
    box-shadow: inset 0 0 0 2px rgba(17, 17, 17, .12);
}
.page-catalog .catalog-controls .catalog-display-controls .view-toggle-tabs {
    display: inline-flex;
    align-items: stretch;
    align-self: auto;
    height: 100%;
    margin: 0;
    padding: 0;
    gap: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}
.page-catalog .catalog-controls .catalog-display-controls .view-toggle-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .3rem;
    height: 100%;
    min-height: 0;
    min-width: 0;
    margin: 0;
    padding: 0 .7rem;
    border: 0;
    border-left: 1px solid var(--color-border);
    border-radius: 0;
    font-size: .8rem;
    font-weight: 600;
    line-height: 1;
    background: #fff;
    color: var(--color-text);
    box-shadow: none;
    transform: none;
    box-sizing: border-box;
}
.page-catalog .catalog-controls .catalog-display-controls .view-toggle-btn:hover {
    transform: none;
    box-shadow: none;
    background: var(--color-surface-subtle);
    color: var(--color-text);
    text-decoration: none;
}
.page-catalog .catalog-controls .catalog-display-controls .view-toggle-btn.active,
.page-catalog .catalog-controls .catalog-display-controls .view-toggle-btn.active:hover {
    background: var(--color-ink);
    border-color: var(--color-border);
    color: #fff;
}
.page-catalog .catalog-controls .catalog-display-controls .view-toggle-text {
    display: inline;
    margin-left: .2rem;
    font-size: .78rem;
    font-weight: 600;
}
.page-catalog .catalog-controls .catalog-stock-form {
    display: inline-flex;
    align-items: center;
    margin: 0;
}
.page-catalog .catalog-controls .catalog-stock-form .catalog-stock-filter {
    min-height: 2.25rem;
}

@media (max-width: 480px) {
    .page-catalog .catalog-controls .catalog-display-controls .view-toggle-text {
        display: none;
    }
    .page-catalog .catalog-controls .catalog-display-controls .view-toggle-btn {
        padding: 0 .55rem;
    }
    .page-catalog .catalog-controls .catalog-display-controls .catalog-sort-select {
        min-width: 7.5rem;
        padding-right: 1.65rem;
    }
}

/* ── Home UX v28 — hero banners contained (not full-bleed) ── */
.page-home .home-hero-stack {
    overflow: visible;
    box-shadow: none;
    border: 0;
    background: transparent;
}

.page-home .home-hero-strip,
.page-home .home-hero-media {
    margin-left: auto;
    margin-right: auto;
}

.page-home .home-hero-media .hero-banner-slider,
.page-home .home-hero-strip-slider {
    border: 1px solid var(--color-border);
    box-shadow: none;
}

.page-home .home-hero-media .hero-banner-slider::after {
    display: none;
}

.page-home .home-hero-media .hero-banner-arrow:hover,
.page-home .home-hero-media .hero-banner-arrow:focus-visible {
    background: var(--color-ink);
    border-color: rgba(255, 255, 255, .35);
}

.page-home .home-hero-media .hero-banner-dot.is-active {
    background: var(--color-ink);
    box-shadow: 0 0 0 2px rgba(255, 255, 255, .35);
}

.page-home .home-hero-panel {
    border-top: 1px solid var(--color-border);
}

@media (max-width: 768px) {
    .page-home .home-hero-strip,
    .page-home .home-hero-media {
        width: calc(100% - 1.25rem);
        max-width: calc(100% - 1.25rem);
    }
}

/* ── Product UX v28 — TOC align + sticky, reviews aérées, associés pleine largeur ── */
.page-product .product-reviews-layout {
    grid-template-columns: minmax(200px, 240px) minmax(0, 1fr);
    gap: 1.25rem 2rem;
}
.page-product .product-reviews-side {
    position: sticky;
    top: calc(var(--header-offset, 72px) + 2.75rem);
    align-self: start;
    padding-right: .5rem;
}
.page-product .product-reviews-list {
    display: flex;
    flex-direction: column;
    gap: 0;
    grid-template-columns: none;
}
.page-product .product-review-card {
    padding: 1.15rem 0;
    border: 0;
    border-bottom: 1px solid var(--color-border);
}
.page-product .product-review-card:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}
.page-product .product-review-card-head {
    margin-bottom: .55rem;
    gap: .65rem 1rem;
}
.page-product .product-review-author {
    font-size: .88rem;
}
.page-product .product-review-title {
    margin: 0 0 .5rem;
    font-size: .92rem;
    line-height: 1.35;
}
.page-product .product-review-body {
    font-size: .88rem;
    line-height: 1.65;
    max-width: 42rem;
}
.page-product .product-related-inner {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}
.page-product .product-related-scroll {
    margin: 0;
    padding: 0;
}
.page-product .product-grid-related {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1.15rem;
}

@media (max-width: 992px) {
    .page-product .product-reviews-side {
        position: static;
        padding-right: 0;
        margin-bottom: 1rem;
        padding-bottom: 1rem;
        border-bottom: 1px solid var(--color-border);
    }
}

@media (max-width: 1100px) {
    .page-product .product-grid-related {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* ── Product UX v29 — fiche pro compacte, lisible, navigable ── */
.page-product .product-header .product-hero.category-hero-banner {
    min-height: clamp(110px, 14vw, 168px);
}
.page-product .product-header .product-hero.category-hero-banner.has-image {
    min-height: clamp(128px, 16vw, 188px);
}
.page-product .product-header .product-hero-content {
    padding: clamp(.85rem, 1.8vw, 1.15rem) clamp(1rem, 2vw, 1.35rem);
}
.page-product .product-header .product-hero-grid {
    grid-template-columns: minmax(0, 1fr);
    margin-top: .55rem;
}
.page-product .product-hero-media-skip {
    display: none;
}
.page-product .product-header .product-hero-title {
    font-size: clamp(1.1rem, 2.4vw, 1.55rem);
    line-height: 1.22;
}
.page-product .product-header .product-hero-lead {
    margin-top: .45rem;
    font-size: .84rem;
    line-height: 1.5;
    max-width: 52rem;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.page-product .product-header .product-hero-meta {
    margin-top: .55rem;
    gap: .35rem .55rem;
}
.page-product .product-header .product-hero-chip,
.page-product .product-header .product-hero-ref,
.page-product .product-header .product-hero-guest-pill,
.page-product .product-header .product-hero-ean,
.page-product .product-header .product-hero-rating {
    font-size: .72rem;
}

.page-product .product-detail-grid {
    grid-template-columns: minmax(0, 1.12fr) minmax(280px, .88fr);
    gap: 1.5rem 2rem;
}
.page-product .product-gallery-slim {
    padding: .75rem;
    border: 1px solid var(--color-border);
    border-left: 0;
}
.page-product .product-gallery-frame {
    min-height: clamp(280px, 34vw, 420px);
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
}
.page-product .product-gallery-frame .product-image {
    max-height: min(400px, 52vh);
    width: auto;
    max-width: 100%;
    object-fit: contain;
}
.page-product .product-gallery-thumb {
    width: 56px;
    height: 56px;
}
.page-product .product-buybox-card {
    padding: .85rem 0;
    border-left: 0;
}
.page-product .product-guest-price-line {
    margin: 0 0 .75rem;
    padding-bottom: .75rem;
    border-bottom: 1px solid var(--color-border);
    font-size: clamp(1.15rem, 2.2vw, 1.4rem);
}
.page-product .product-guest-bar {
    padding: .85rem;
    border: 1px solid var(--color-border);
    background: #fff;
}
.page-product .product-guest-bar-actions {
    width: 100%;
}
.page-product .product-guest-bar-actions .btn {
    flex: 1 1 auto;
    justify-content: center;
    text-align: center;
}
.page-product .product-jump-links {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin: .85rem 0 0;
    padding-top: .85rem;
    border-top: 1px solid var(--color-border);
}
.page-product .product-jump-link {
    display: inline-flex;
    align-items: center;
    padding: .35rem .65rem;
    border: 1px solid var(--color-border);
    background: #fff;
    color: var(--color-text);
    font-size: .76rem;
    font-weight: 600;
    text-decoration: none;
}
.page-product .product-jump-link:hover {
    border-color: var(--color-ink);
    color: var(--color-ink);
    text-decoration: none;
}
.page-product .product-help-inline {
    margin-top: .75rem;
    padding-top: .75rem;
    border-top: 1px dashed var(--color-border);
}

.page-product .product-facts-bar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .85rem 1.25rem;
    align-items: start;
    padding: .85rem 0;
}
.page-product .product-facts-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: .55rem 1.15rem;
}
.page-product .product-fact {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .2rem;
    min-width: 0;
}
.page-product .product-fact-label {
    font-size: .68rem;
    letter-spacing: .05em;
    text-transform: uppercase;
}
.page-product .product-fact-value {
    width: 100%;
    font-size: .84rem;
}
.page-product .product-facts-actions {
    flex-direction: column;
    align-items: stretch;
    gap: .4rem;
    min-width: 9.5rem;
}
.page-product .product-copy-all-btn,
.page-product .product-print-btn,
.page-product .product-facts-quote-link {
    width: 100%;
    text-align: center;
}

.page-product .product-desc-section .prose {
    font-size: .94rem;
    line-height: 1.72;
    color: var(--color-text);
}
.page-product .product-desc-section .prose > p:first-of-type {
    font-size: 1rem;
    color: var(--color-muted);
}
.page-product .product-desc-section .prose h2 {
    margin: 2rem 0 .85rem;
    padding-top: 1.15rem;
    border-top: 1px solid var(--color-border);
    font-size: 1.05rem;
    line-height: 1.35;
}
.page-product .product-desc-section .prose h2:first-of-type {
    margin-top: 1.15rem;
    padding-top: 0;
    border-top: 0;
}
.page-product .product-desc-section .prose h3 {
    margin: 1.35rem 0 .65rem;
    font-size: .92rem;
    line-height: 1.4;
    color: var(--color-ink);
}
.page-product .product-desc-section .prose p {
    margin-bottom: .95rem;
}
.page-product .product-desc-toc-item a.is-active {
    color: var(--color-ink);
    font-weight: 700;
    border-left: 2px solid var(--color-ink);
    padding-left: calc(.65rem - 2px);
}
.page-product .product-desc-toc-h3 a.is-active {
    padding-left: calc(.65rem - 2px);
}

.page-product .product-reviews-head {
    padding-bottom: .85rem;
    border-bottom: 1px solid var(--color-border);
}
.page-product .product-reviews-side {
    padding: .85rem;
    border: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
}
.page-product .product-related-head {
    padding-bottom: .85rem;
    border-bottom: 1px solid var(--color-border);
    margin-bottom: 1.15rem;
}

@media (min-width: 992px) {
    .page-product .product-gallery-col {
        position: sticky;
        top: calc(var(--header-offset, 72px) + 3.25rem);
        align-self: start;
    }
    .page-product .product-buybox-col {
        top: calc(var(--header-offset, 72px) + 3.25rem);
    }
}

@media (max-width: 991px) {
    .page-product .product-detail-grid {
        grid-template-columns: 1fr;
    }
    .page-product .product-facts-bar {
        grid-template-columns: 1fr;
    }
    .page-product .product-facts-actions {
        flex-direction: row;
        flex-wrap: wrap;
        min-width: 0;
    }
    .page-product .product-copy-all-btn,
    .page-product .product-print-btn,
    .page-product .product-facts-quote-link {
        width: auto;
        flex: 1 1 auto;
    }
    .page-product .product-header .product-hero-lead {
        -webkit-line-clamp: 3;
        line-clamp: 3;
    }
}

@media (max-width: 768px) {
    .page-product .product-header .product-subnav-link {
        padding: .65rem .85rem;
        font-size: .78rem;
    }
    .page-product .product-guest-bar-actions {
        flex-direction: column;
    }
    .page-product .product-guest-bar-actions .btn {
        width: 100%;
    }
}

/* ── Product UX v30 — en-tête plat, buybox invité, navigation épurée ── */

/* En-tête produit sans bannière catégorie */
.page-product .product-header {
    margin-bottom: 0;
    background: #fff;
}
.page-product .product-header .product-hero.category-hero-banner,
.page-product .product-header .product-hero.category-hero-banner.has-image {
    min-height: 0;
    background: #fff;
}
.page-product .product-header .category-hero-banner-bg,
.page-product .product-header .category-hero-banner-overlay {
    display: none;
}
.page-product .product-header .product-hero-content {
    padding: clamp(.75rem, 1.5vw, 1rem) 0 clamp(.65rem, 1.2vw, .85rem);
}
.page-product .product-header .product-breadcrumbs {
    font-size: .78rem;
    margin-bottom: .45rem;
}
.page-product .product-header .product-hero-kicker {
    margin-bottom: .4rem;
}
.page-product .product-header .product-hero-title {
    font-size: clamp(1.15rem, 2.6vw, 1.65rem);
    line-height: 1.24;
    color: var(--color-ink);
    max-width: none;
}
.page-product .product-header .product-hero-lead {
    margin-top: .5rem;
    font-size: .86rem;
    color: var(--color-muted);
    -webkit-line-clamp: 3;
    line-clamp: 3;
}
.page-product .product-header .product-hero-chip {
    background: var(--color-surface-subtle);
    border-color: var(--color-border);
    color: var(--color-text);
}
.page-product .product-header .product-hero-ref {
    color: var(--color-muted);
    background: var(--color-surface-subtle);
    border-color: var(--color-border);
}
.page-product .product-header .product-hero-guest-pill {
    background: var(--color-surface-subtle);
    border-color: var(--color-border);
    color: var(--color-muted);
}
.page-product .product-header .product-hero-ean {
    background: var(--color-surface-subtle);
    border-color: var(--color-border);
    color: var(--color-muted);
}
.page-product .product-header .product-hero-rating {
    border: 1px solid var(--color-border);
    background: #fff;
    padding: .22rem .5rem;
    text-decoration: none;
    color: var(--color-text);
}
.page-product .product-header .product-hero-rating:hover {
    border-color: var(--color-ink);
    text-decoration: none;
}

/* Sous-navigation sticky plus nette */
.page-product .product-header .product-subnav {
    top: var(--header-offset, 120px);
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding-left: max(4%, calc((100vw - min(1360px, 92%)) / 2));
    padding-right: max(4%, calc((100vw - min(1360px, 92%)) / 2));
}
.page-product .product-header .product-subnav-links {
    gap: 0;
}
.page-product .product-header .product-subnav-link {
    padding: .7rem 1rem;
    font-size: .8rem;
    white-space: nowrap;
}
.page-product .product-header .product-subnav-link.is-active {
    background: var(--color-surface-subtle);
}

/* Zone aperçu */
.page-product .product-overview-shell {
    padding-top: 1.35rem;
}
.page-product .product-detail-grid {
    grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr);
    gap: 2rem 2.5rem;
    align-items: start;
}

/* Galerie */
.page-product .product-gallery-slim {
    padding: 0;
    border: 0;
    background: transparent;
}
.page-product .product-gallery-slim.has-thumbs-side {
    display: block;
}
.page-product .product-gallery-slim.has-thumbs-side .product-gallery-count-inline {
    display: none;
}
.page-product .product-gallery-slim.has-thumbs-side .product-gallery-body {
    display: flex;
    flex-direction: column;
    gap: .65rem;
}
.page-product .product-gallery-slim.has-thumbs-side .product-gallery-thumbs {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    order: 2;
    gap: .4rem;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
}
.page-product .product-gallery-slim.has-thumbs-side .product-gallery-frame {
    min-height: clamp(300px, 36vw, 460px);
}
.page-product .product-gallery-thumb {
    width: 60px;
    height: 60px;
    border-width: 2px;
    padding: 2px;
    background: #fff;
}
.page-product .product-gallery-thumb.is-active {
    border-color: var(--color-ink);
    box-shadow: inset 0 0 0 1px var(--color-ink);
}
.page-product .product-gallery-counter {
    border-radius: 0;
    background: rgba(0, 0, 0, .78);
    font-size: .7rem;
}
.page-product .product-gallery-zoom-icon {
    border-radius: 0;
    background: rgba(0, 0, 0, .72);
}

/* Buybox invité */
.page-product .product-buybox-guest {
    border: 1px solid var(--color-border);
    border-top: 3px solid var(--color-ink);
    padding: 1rem;
    background: #fff;
}
.page-product .product-buybox-rating {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem .55rem;
    margin-bottom: .75rem;
    padding-bottom: .75rem;
    border-bottom: 1px solid var(--color-border);
}
.page-product .product-buybox-rating-text {
    font-size: .82rem;
    font-weight: 600;
    color: var(--color-text);
}
.page-product .product-buybox-rating-link {
    margin-left: auto;
    font-size: .76rem;
    font-weight: 700;
    color: var(--color-ink);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.page-product .product-buybox-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem .75rem;
    margin-bottom: .65rem;
    font-size: .78rem;
    color: var(--color-muted);
}
.page-product .product-buybox-meta strong {
    color: var(--color-ink);
    font-family: ui-monospace, monospace;
}
.page-product .product-buybox-ean {
    font-family: ui-monospace, monospace;
    font-size: .74rem;
}
.page-product .product-guest-price-line {
    margin: 0 0 .65rem;
    padding-bottom: 0;
    border-bottom: 0;
    font-size: clamp(1.05rem, 2vw, 1.25rem);
    line-height: 1.3;
}
.page-product .product-guest-bar {
    padding: 1rem;
    border: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
    margin-bottom: .85rem;
}
.page-product .product-guest-bar-text {
    margin: 0 0 .85rem;
    font-size: .86rem;
    line-height: 1.55;
    color: var(--color-text);
}
.page-product .product-guest-bar-actions {
    display: flex;
    gap: .5rem;
}
.page-product .product-guest-bar-actions .btn {
    flex: 1 1 0;
    min-height: 2.65rem;
    justify-content: center;
}
.page-product .product-guest-bar-actions .btn-primary {
    background: var(--color-ink);
    border-color: var(--color-ink);
    color: #fff;
}
.page-product .product-guest-benefits {
    margin: 0 0 .85rem;
    padding: 0;
    list-style: none;
    display: grid;
    gap: .45rem;
}
.page-product .product-guest-benefits li {
    position: relative;
    padding-left: 1.15rem;
    font-size: .82rem;
    line-height: 1.45;
    color: var(--color-text);
}
.page-product .product-guest-benefits li::before {
    content: '';
    position: absolute;
    left: 0;
    top: .45rem;
    width: .45rem;
    height: .45rem;
    background: var(--color-ink);
}
.page-product .product-guest-trust {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem .65rem;
    padding-top: .75rem;
    border-top: 1px dashed var(--color-border);
    font-size: .72rem;
    color: var(--color-muted);
}
.page-product .product-guest-trust span::before {
    content: '✓ ';
    color: var(--color-ink);
    font-weight: 700;
}
.page-product .product-help-inline {
    margin-top: 1rem;
    padding-top: .85rem;
    border-top: 1px solid var(--color-border);
}

/* Barre d'informations compacte */
.page-product .product-facts-bar {
    margin-top: 1.5rem;
    padding: .85rem 1rem;
    border: 1px solid var(--color-border);
    border-left: 3px solid var(--color-ink);
    background: var(--color-surface-subtle);
}
.page-product .product-fact-share .product-link-value-sr {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.page-product .product-share-copy-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2rem;
    padding: .35rem .75rem;
    border: 1px solid var(--color-border);
    background: #fff;
    font-size: .78rem;
    font-weight: 600;
    color: var(--color-ink);
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease;
}
.page-product .product-share-copy-btn:hover,
.page-product .product-share-copy-btn.is-copied {
    border-color: var(--color-ink);
    background: var(--color-surface-subtle);
}

/* Description & avis */
.page-product .product-content-notice-short {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    margin-bottom: 1rem;
    padding: .65rem .85rem;
    border: 1px solid var(--color-border);
    border-left: 3px solid var(--color-ink);
    background: var(--color-surface-subtle);
    font-size: .8rem;
    line-height: 1.5;
    color: var(--color-muted);
}
.page-product .product-content-notice-short::before {
    content: 'i';
    flex-shrink: 0;
    width: 1.15rem;
    height: 1.15rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--color-ink);
    color: #fff;
    font-size: .68rem;
    font-weight: 700;
    font-style: normal;
}
.page-product .product-desc-toc {
    border: 1px solid var(--color-border);
    background: #fff;
}
.page-product .product-review-card {
    transition: border-color .18s ease;
}
.page-product .product-review-card:hover {
    border-color: var(--color-ink);
}
.page-product .product-related-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
    padding-bottom: .35rem;
}
.page-product .product-grid-related {
    display: flex;
    flex-wrap: nowrap;
    gap: 1rem;
    min-width: min-content;
}
.page-product .product-grid-related .product-card {
    flex: 0 0 min(240px, 72vw);
    scroll-snap-align: start;
}

/* Pied de page fiche */
.page-product .product-page-footer {
    margin-top: 2rem;
    padding: 1.15rem 0 0;
    border-top: 1px solid var(--color-border);
}
.page-product .product-page-footer-main {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .65rem 1rem;
}

/* Sticky desktop */
@media (min-width: 992px) {
    .page-product .product-buybox-col {
        position: sticky;
        top: calc(var(--header-offset, 120px) + 3rem);
    }
    .page-product .product-gallery-col {
        top: calc(var(--header-offset, 120px) + 3rem);
    }
}

@media (max-width: 991px) {
    .page-product .product-header .product-subnav {
        padding-left: 0;
        padding-right: 0;
        margin-left: calc(50% - 50vw);
        margin-right: calc(50% - 50vw);
        padding-left: max(4%, 1rem);
        padding-right: max(4%, 1rem);
    }
    .page-product .product-gallery-slim.has-thumbs-side {
        grid-template-columns: 1fr;
    }
    .page-product .product-gallery-slim.has-thumbs-side .product-gallery-thumbs {
        flex-direction: row;
        flex-wrap: nowrap;
        overflow-x: auto;
        border-right: 0;
        border-bottom: 1px solid var(--color-border);
        order: 2;
    }
    .page-product .product-gallery-slim.has-thumbs-side .product-gallery-frame {
        order: 1;
    }
    .page-product .product-gallery-thumb {
        flex: 0 0 56px;
    }
    .page-product .product-facts-bar {
        grid-template-columns: 1fr;
    }
    .page-product .product-facts-actions {
        flex-direction: row;
        flex-wrap: wrap;
    }
}

@media (max-width: 768px) {
    .page-product .product-header .product-hero-lead {
        display: none;
    }
    .page-product .product-header .product-hero-meta {
        margin-top: .45rem;
    }
    .page-product .product-detail-grid {
        gap: 1.25rem;
    }
    .page-product .product-buybox-guest {
        padding: .85rem;
    }
}

/* ── Product UX v31 — hero FR, CTA subnav, description pliable, layout mobile ── */

.page-product .product-hero-title {
    text-wrap: balance;
}

.page-product .product-hero-lead-fr {
    color: var(--color-text);
    max-width: 42rem;
}

.page-product .product-header .product-subnav-track {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 0;
}
.page-product .product-header .product-subnav-links {
    flex: 1 1 auto;
    min-width: 0;
    overflow-x: auto;
}
.page-product .product-subnav-aside {
    display: flex;
    align-items: stretch;
    flex-shrink: 0;
    border-left: 1px solid var(--color-border);
}
.page-product .product-subnav-cta {
    display: inline-flex;
    align-items: center;
    padding: .7rem 1.15rem;
    background: var(--color-ink);
    color: #fff;
    font-size: .78rem;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
    transition: background .15s ease;
}
.page-product .product-subnav-cta:hover {
    background: #000;
    color: #fff;
    text-decoration: none;
}

.page-product #product-overview,
.page-product #product-specs,
.page-product #product-content,
.page-product #product-reviews,
.page-product #product-related {
    scroll-margin-top: calc(var(--header-offset, 120px) + 3.75rem);
}

.page-product .product-facts-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    margin-top: 1.75rem;
    padding: .65rem .85rem;
    border: 1px solid var(--color-border);
    border-left: 3px solid var(--color-ink);
    background: #fff;
}
.page-product .product-fact {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    flex-wrap: wrap;
}
.page-product .product-facts-list {
    gap: .45rem .85rem;
}
.page-product .product-fact-label {
    display: none;
}
.page-product .product-fact-value code {
    border: 0;
    background: transparent;
    padding: 0;
    font-weight: 600;
}
.page-product .product-fact::before {
    content: attr(data-label);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--color-muted);
    margin-right: .15rem;
}
.page-product .product-facts-actions {
    flex-direction: row;
    flex-wrap: wrap;
    gap: .35rem;
    min-width: 0;
}
.page-product .product-copy-all-btn,
.page-product .product-print-btn,
.page-product .product-facts-quote-link {
    width: auto;
    flex: 0 0 auto;
    min-height: 2rem;
    padding: .35rem .7rem;
    font-size: .76rem;
}

.page-product .product-description-wrap.is-collapsible {
    position: relative;
    max-height: 16rem;
    overflow: hidden;
    transition: max-height .35s ease;
}
.page-product .product-description-wrap.is-collapsible.is-expanded {
    max-height: none;
}
.page-product .product-description-wrap.is-collapsible.is-expanded .product-description-fade {
    opacity: 0;
    pointer-events: none;
}
.page-product .product-description-fade {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 5rem;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, #fff 88%);
    pointer-events: none;
    transition: opacity .25s ease;
}
.page-product .product-desc-toggle {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin-top: .75rem;
    padding: .45rem .85rem;
    border: 1px solid var(--color-border);
    background: #fff;
    font-size: .8rem;
    font-weight: 700;
    color: var(--color-ink);
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease;
}
.page-product .product-desc-toggle:hover {
    border-color: var(--color-ink);
    background: var(--color-surface-subtle);
}
.page-product .product-desc-toggle::after {
    content: '↓';
    font-size: .85rem;
    transition: transform .2s ease;
}
.page-product .product-description-wrap.is-expanded + .product-desc-toggle::after {
    transform: rotate(180deg);
}

.page-product .product-features-inline {
    margin-bottom: 1.75rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--color-border);
}

@media (min-width: 992px) {
    .page-product .product-grid-related {
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: 1rem;
        min-width: 0;
    }
    .page-product .product-grid-related .product-card {
        flex: none;
        scroll-snap-align: none;
    }
    .page-product .product-related-scroll {
        overflow: visible;
    }
}

@media (max-width: 991px) {
    .page-product .product-detail-grid-guest {
        display: flex;
        flex-direction: column;
    }
    .page-product .product-detail-grid-guest .product-buybox-col {
        order: -1;
    }
    .page-product .product-subnav-aside {
        width: 100%;
        border-left: 0;
        border-top: 1px solid var(--color-border);
    }
    .page-product .product-subnav-cta {
        width: 100%;
        justify-content: center;
    }
    .page-product .product-facts-bar {
        flex-direction: column;
        align-items: stretch;
    }
    .page-product .product-facts-actions {
        width: 100%;
        justify-content: flex-start;
    }
}

@media (max-width: 768px) {
    .page-product .product-header .product-hero-lead-fr {
        font-size: .82rem;
        -webkit-line-clamp: 3;
        line-clamp: 3;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
    .page-product .product-subnav-track {
        flex-direction: column;
    }
}

/* ── Product UX v32 — titre FR, panel aperçu, CTA intégré, outils invité ── */

.page-product .product-hero-title-alt {
    margin: .35rem 0 0;
    font-size: .82rem;
    line-height: 1.45;
    color: var(--color-muted);
}
.page-product .product-hero-title-alt-label {
    display: inline-block;
    margin-right: .35rem;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--color-muted);
}

.page-product .product-header .product-subnav-link-cta {
    margin-left: auto;
    background: var(--color-ink);
    color: #fff;
    border-bottom: 2px solid var(--color-ink);
    font-weight: 700;
}
.page-product .product-header .product-subnav-link-cta:hover {
    background: #000;
    color: #fff;
    text-decoration: none;
}

.page-product .product-overview-shell {
    padding-top: .85rem;
}
.page-product .product-overview-panel {
    border: 1px solid var(--color-border);
    background: #fff;
}
.page-product .product-overview-panel .product-detail-grid {
    padding: 1rem;
    margin-bottom: 0;
}
.page-product .product-overview-panel .product-facts-bar,
.page-product .product-overview-panel .product-guest-tools {
    margin-top: 0;
    border-top: 1px solid var(--color-border);
    border-left: 0;
    border-right: 0;
    border-bottom: 0;
}

.page-product .product-buybox-review-snippet {
    margin: 0 0 .85rem;
    padding: .65rem .75rem;
    border-left: 3px solid var(--color-ink);
    background: var(--color-surface-subtle);
}
.page-product .product-buybox-review-snippet p {
    margin: 0 0 .35rem;
    font-size: .82rem;
    line-height: 1.5;
    color: var(--color-text);
}
.page-product .product-buybox-review-snippet cite {
    font-size: .72rem;
    font-style: normal;
    color: var(--color-muted);
}

.page-product .product-guest-tools-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .5rem .85rem;
    padding: .65rem 1rem;
}
.page-product .product-guest-tools-label {
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--color-muted);
}
.page-product .product-guest-tools-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}
.page-product .product-guest-tool-btn {
    display: inline-flex;
    align-items: center;
    min-height: 2rem;
    padding: .35rem .7rem;
    border: 1px solid var(--color-border);
    background: #fff;
    font-size: .76rem;
    font-weight: 600;
    color: var(--color-ink);
    text-decoration: none;
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease;
}
.page-product .product-guest-tool-btn:hover,
.page-product .product-guest-tool-btn.is-copied {
    border-color: var(--color-ink);
    background: var(--color-surface-subtle);
    text-decoration: none;
}
.page-product .product-guest-tool-link {
    background: var(--color-surface-subtle);
}

.page-product .product-desc-sidebar-guest {
    display: none;
}
.page-product .product-desc-layout:not(.has-toc) .product-desc-main {
    grid-column: 1 / -1;
}

.page-product .product-gallery-slim.has-thumbs-side .product-gallery-count-inline {
    letter-spacing: .06em;
}

@media (min-width: 992px) {
    .page-product .product-overview-panel .product-detail-grid {
        padding: 0;
    }
    .page-product .product-header .product-subnav-links {
        display: flex;
        align-items: stretch;
        width: 100%;
    }
}

@media (max-width: 991px) {
    .page-product .product-overview-panel {
        border-left: 0;
        border-right: 0;
    }
    .page-product .product-overview-panel .product-detail-grid {
        padding: .85rem;
    }
    .page-product .product-header .product-subnav-link-cta {
        margin-left: 0;
    }
}

@media (max-width: 768px) {
    .page-product .product-guest-tools-inner {
        flex-direction: column;
        align-items: stretch;
    }
    .page-product .product-guest-tools-actions {
        width: 100%;
    }
    .page-product .product-guest-tool-btn {
        flex: 1 1 calc(50% - .35rem);
        justify-content: center;
    }
}

/* ── Product UX v33 — buybox invité unifiée, sections, mobile ── */

.page-product .product-header .product-hero-content {
    padding-bottom: .5rem;
}
.page-product .product-header .product-hero-title {
    font-size: clamp(1.2rem, 2.8vw, 1.75rem);
}
.page-product .product-header .product-hero-title-alt {
    margin-bottom: 0;
}

.page-product .product-buybox-guest {
    padding: 0;
    border: 0;
    border-top: 0;
    background: transparent;
}
.page-product .product-buybox-social {
    margin-bottom: .85rem;
}
.page-product .product-buybox-review-snippet-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem .55rem;
    margin-bottom: .5rem;
}
.page-product .product-buybox-meta-chips {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin-bottom: .85rem;
}
.page-product .product-meta-chip {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    padding: .28rem .55rem;
    border: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
    font-size: .74rem;
    color: var(--color-muted);
    text-decoration: none;
}
.page-product .product-meta-chip strong {
    color: var(--color-ink);
    font-family: ui-monospace, monospace;
}
.page-product .product-meta-chip-link:hover {
    border-color: var(--color-ink);
    color: var(--color-ink);
    text-decoration: none;
}

.page-product .product-guest-cta {
    padding: 1rem;
    border: 1px solid var(--color-border);
    border-top: 3px solid var(--color-ink);
    background: #fff;
}
.page-product .product-guest-cta-title {
    margin: 0 0 .35rem;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--color-ink);
}
.page-product .product-guest-cta-text {
    margin: 0 0 .85rem;
    font-size: .84rem;
    line-height: 1.55;
    color: var(--color-text);
}
.page-product .product-guest-cta-actions {
    display: grid;
    gap: .45rem;
    margin-bottom: .85rem;
}
.page-product .product-guest-cta-actions .btn-block {
    width: 100%;
    justify-content: center;
    min-height: 2.65rem;
}
.page-product .product-guest-cta .product-guest-benefits {
    margin: 0;
    padding-top: .75rem;
    border-top: 1px dashed var(--color-border);
}

.page-product .product-gallery-slim.has-thumbs-side .product-gallery-count-inline {
    display: none;
}

.page-product .product-content-shell,
.page-product .product-reviews,
.page-product .product-related-band {
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--color-border);
}
.page-product .product-reviews-guest-cta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem 1rem;
    margin-bottom: 1.25rem;
    padding: .85rem 1rem;
    border: 1px solid var(--color-border);
    border-left: 3px solid var(--color-ink);
    background: var(--color-surface-subtle);
}
.page-product .product-reviews-guest-cta p {
    margin: 0;
    font-size: .86rem;
    line-height: 1.5;
    color: var(--color-text);
}
.page-product .product-reviews-guest-cta-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
}

.page-product .product-mobile-cta-guest {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .65rem;
    width: 100%;
}
.page-product .product-mobile-cta-info {
    display: flex;
    flex-direction: column;
    gap: .1rem;
    min-width: 0;
}
.page-product .product-mobile-cta-info strong {
    font-family: ui-monospace, monospace;
    font-size: .82rem;
    color: var(--color-ink);
}
.page-product .product-mobile-cta-info span {
    font-size: .72rem;
    color: var(--color-muted);
}
.page-product .product-mobile-cta-actions {
    display: flex;
    flex-shrink: 0;
    gap: .35rem;
}

.page-product .product-description-wrap.is-collapsible {
    max-height: 12rem;
}

@media (min-width: 992px) {
    .page-product .product-buybox-col {
        position: sticky;
        top: calc(var(--header-offset, 120px) + 3rem);
        align-self: start;
    }
    .page-product .product-detail-grid-guest {
        grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr);
    }
}

@media (max-width: 768px) {
    .page-product .product-header .product-hero-title-alt {
        font-size: .78rem;
    }
    .page-product .product-reviews-guest-cta {
        flex-direction: column;
        align-items: stretch;
    }
    .page-product .product-reviews-guest-cta-actions {
        width: 100%;
    }
    .page-product .product-reviews-guest-cta-actions .btn {
        flex: 1 1 auto;
        justify-content: center;
    }
    .page-product .product-mobile-cta-actions {
        flex-direction: column;
        width: auto;
    }
    .page-product .product-mobile-cta-actions .btn {
        white-space: nowrap;
    }
}

/* ── Product UX v34 — buybox invité, séparateur, subnav, description ES ── */

.page-product .product-header .product-subnav.is-stuck {
    box-shadow: 0 4px 14px rgba(15, 23, 42, .07);
}

.page-product .product-buybox-guest .product-guest-cta,
.page-product #product-guest-cta {
    display: block;
    min-height: 0;
    text-align: left;
    justify-content: flex-start;
    align-items: stretch;
}
.page-product .product-guest-trust-line {
    margin: 0;
    padding-top: .75rem;
    border-top: 1px dashed var(--color-border);
    font-size: .74rem;
    line-height: 1.55;
    color: var(--color-muted);
}
.page-product .product-guest-cta-actions {
    margin-bottom: 0;
}
.page-product .product-buybox-review-snippet p {
    margin: 0 0 .35rem;
    font-size: .82rem;
    line-height: 1.5;
    color: var(--color-text);
}
.page-product .product-buybox-review-snippet cite {
    font-size: .72rem;
    color: var(--color-muted);
    font-style: normal;
}

.page-product .product-help-inline-compact {
    margin: .85rem 0 0;
    padding-top: .65rem;
    border-top: 1px solid var(--color-border);
    text-align: center;
    font-size: .78rem;
}

.page-product .product-description-wrap.is-guest-collapsed:not(.is-expanded) {
    max-height: 0;
    margin: 0;
    overflow: hidden;
    visibility: hidden;
}
.page-product .product-description-wrap.is-guest-collapsed:not(.is-expanded) .product-description-fade {
    display: none;
}
.page-product .product-description-wrap.is-guest-collapsed.is-expanded {
    max-height: none;
    visibility: visible;
}

@media (min-width: 992px) {
    .page-product .product-detail-grid-guest .product-buybox-col {
        border-left: 1px solid var(--color-border);
        padding-left: 1.35rem;
        margin-left: .25rem;
    }
    .page-product .product-detail-grid-guest .product-gallery-col {
        padding-right: .5rem;
    }
}

@media (max-width: 768px) {
    .page-product .product-guest-cta {
        margin-top: .25rem;
    }
    .page-product .product-mobile-cta-guest {
        flex-wrap: wrap;
    }
    .page-product .product-mobile-cta-actions {
        width: 100%;
        flex-direction: row;
    }
    .page-product .product-mobile-cta-actions .btn {
        flex: 1 1 0;
        justify-content: center;
    }
}

/* ── Product UX v35 — bannière catégorie dans l'en-tête produit ── */

.page-product .product-header .category-hero-banner-bg,
.page-product .product-header .category-hero-banner-overlay {
    display: block;
}

.page-product .product-header .product-hero.category-hero-banner.has-image {
    min-height: clamp(140px, 18vw, 220px);
    background: transparent;
}

.page-product .product-header .product-hero.category-hero-banner.has-image .product-hero-content {
    padding: clamp(.95rem, 2vw, 1.35rem) clamp(1rem, 2vw, 1.35rem) clamp(.85rem, 1.8vw, 1.1rem);
}

.page-product .product-header .product-hero.category-hero-banner.has-image .product-hero-title {
    color: #fff;
}

.page-product .product-header .product-hero.category-hero-banner.has-image .product-hero-title-alt {
    color: rgba(255, 255, 255, .88);
}

.page-product .product-header .product-hero.category-hero-banner.has-image .product-hero-title-alt-label {
    color: rgba(255, 255, 255, .62);
}

.page-product .product-header .product-hero.category-hero-banner.has-image .product-breadcrumbs.breadcrumbs-light a,
.page-product .product-header .product-hero.category-hero-banner.has-image .product-breadcrumbs.breadcrumbs-light span {
    color: rgba(255, 255, 255, .88);
}

.page-product .product-header .product-hero.category-hero-banner.has-image .product-breadcrumbs.breadcrumbs-light .crumb-sep {
    color: rgba(255, 255, 255, .45);
}

.page-product .product-header .product-hero.category-hero-banner.has-image .product-breadcrumbs.breadcrumbs-light a:hover {
    color: #fff;
}

@media (max-width: 768px) {
    .page-product .product-header .product-hero.category-hero-banner.has-image {
        min-height: clamp(120px, 32vw, 168px);
    }
}

/* ── Product UX v36 — touches de couleur subtiles (accent Moly) ── */

.page-product {
    --product-accent: var(--color-accent);
    --product-accent-soft: rgba(47, 181, 210, .09);
    --product-accent-muted: rgba(47, 181, 210, .55);
    --product-star: #d4a017;
}

.page-product .product-header .product-hero.category-hero-banner.has-image .category-hero-banner-overlay {
    background: linear-gradient(
        105deg,
        rgba(8, 28, 36, .9) 0%,
        rgba(8, 28, 36, .62) 48%,
        rgba(47, 181, 210, .22) 100%
    );
}

.page-product .product-header .product-subnav-link.is-active {
    background: var(--product-accent-soft);
    color: var(--color-ink);
    border-bottom-color: var(--product-accent);
}

.page-product .product-overview-panel {
    border-top: 3px solid var(--product-accent);
}

.page-product .product-gallery-thumb.is-active {
    border-color: var(--product-accent);
    box-shadow: inset 0 0 0 1px var(--product-accent);
}

.page-product .product-star.is-filled {
    color: var(--product-star);
}

.page-product .product-hero.has-image .product-star.is-filled {
    color: #ffe08a;
}

.page-product .product-meta-chip-link {
    background: var(--product-accent-soft);
    border-color: rgba(47, 181, 210, .28);
    color: var(--color-text);
}

.page-product .product-meta-chip-link:hover {
    border-color: var(--product-accent);
    background: rgba(47, 181, 210, .14);
    color: var(--color-ink);
}

.page-product .product-buybox-review-snippet {
    border-left-color: var(--product-accent);
    background: linear-gradient(90deg, var(--product-accent-soft) 0%, var(--color-surface-subtle) 100%);
}

.page-product .product-buybox-rating-link {
    color: var(--product-accent);
}

.page-product .product-buybox-rating-link:hover {
    color: #229bb5;
}

.page-product .product-guest-cta {
    border-top-color: var(--product-accent);
    background: linear-gradient(180deg, rgba(47, 181, 210, .05) 0%, #fff 42%);
}

.page-product .product-guest-trust-line {
    color: var(--product-accent-muted);
}

.page-product .product-guest-tools,
.page-product .product-facts-bar {
    border-left: 3px solid var(--product-accent);
}

.page-product .product-overview-panel .product-guest-tools,
.page-product .product-overview-panel .product-facts-bar {
    border-left: 3px solid var(--product-accent);
}

.page-product .product-guest-tool-btn:hover,
.page-product .product-guest-tool-btn.is-copied {
    border-color: var(--product-accent);
    background: var(--product-accent-soft);
}

.page-product .product-content-notice-short {
    padding: .55rem .7rem;
    border-left: 3px solid var(--product-accent);
    background: var(--product-accent-soft);
}

.page-product .product-section-head {
    border-bottom-color: rgba(47, 181, 210, .22);
}

.page-product .product-section-head h2 {
    display: flex;
    align-items: center;
    gap: .55rem;
}

.page-product .product-section-head h2::before {
    content: "";
    flex-shrink: 0;
    width: 3px;
    height: 1.05em;
    background: var(--product-accent);
}

.page-product .product-feature-mark {
    color: var(--product-accent);
}

.page-product .product-desc-toggle {
    color: var(--product-accent);
    border-color: rgba(47, 181, 210, .35);
}

.page-product .product-desc-toggle:hover {
    border-color: var(--product-accent);
    background: var(--product-accent-soft);
}

.page-product .product-reviews-guest-cta {
    border-left-color: var(--product-accent);
    background: linear-gradient(90deg, var(--product-accent-soft) 0%, var(--color-surface-subtle) 100%);
}

.page-product .product-reviews-score {
    color: var(--product-accent);
}

.page-product .product-help-inline-link {
    color: var(--product-accent);
    font-weight: 600;
}

.page-product .product-help-inline-link:hover {
    color: #229bb5;
}

.page-product .product-gallery-slim.has-thumbs-side .product-gallery-count-inline {
    color: var(--product-accent-muted);
    background: var(--product-accent-soft);
    border-bottom-color: rgba(47, 181, 210, .18);
}

.page-product .product-gallery-slim.has-thumbs-side .product-gallery-thumbs {
    background: linear-gradient(180deg, var(--product-accent-soft) 0%, var(--color-surface-subtle) 100%);
}

/* ── Catalog UX v37 — toolbar unifié catégorie / catalogue ── */

.page-catalog .category-hero-guest-lead {
    margin: .45rem 0 0;
    max-width: 42rem;
    font-size: .82rem;
    line-height: 1.45;
    color: var(--color-muted);
}

.page-catalog .category-hero-banner.has-image .category-hero-guest-lead {
    color: rgba(255, 255, 255, .84);
}

.page-catalog .category-hero-banner-main .catalog-hero-actions {
    margin: .55rem 0 0;
}

.page-catalog .category-hero-compact .catalog-hero-actions .btn {
    border-radius: 0;
}

.page-catalog .category-hero-banner.has-image .catalog-hero-actions .btn-outline {
    border-color: rgba(255, 255, 255, .72);
    color: #fff;
    background: transparent;
}

.page-catalog .category-hero-banner.has-image .catalog-hero-actions .btn-outline:hover {
    background: #fff;
    border-color: #fff;
    color: var(--color-ink);
}

/* ── Catalog UX v38 — en-tête catégorie lisible ── */

.page-catalog .category-hero-banner-main {
    flex-direction: column;
    align-items: stretch;
    gap: .85rem;
    margin-top: .55rem;
}

.page-catalog .category-hero-banner-head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .4rem 1rem;
}

.page-catalog .category-hero-banner-head h1 {
    margin: 0;
}

.page-catalog .category-hero-guest {
    width: 100%;
    max-width: 40rem;
    padding: .75rem .9rem;
    border: 1px solid var(--color-border);
    border-left: 3px solid var(--color-accent);
    background: rgba(255, 255, 255, .96);
}

.page-catalog .category-hero-guest .category-hero-guest-lead,
.page-catalog .category-hero-guest .catalog-hero-lead {
    margin: 0 0 .6rem;
    max-width: none;
    font-size: .82rem;
    line-height: 1.5;
    color: var(--color-text);
}

.page-catalog .category-hero-guest .catalog-hero-actions {
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}

.page-catalog .category-hero-guest .catalog-hero-actions .btn {
    border-radius: 0;
}

.page-catalog .category-hero-compact.has-image {
    min-height: clamp(148px, 20vw, 210px);
}

.page-catalog .category-hero-compact.has-image .category-hero-banner-overlay {
    background: linear-gradient(
        105deg,
        rgba(8, 22, 30, .94) 0%,
        rgba(8, 22, 30, .82) 52%,
        rgba(8, 22, 30, .55) 100%
    );
}

.page-catalog .category-hero-banner.has-image .category-hero-banner-head h1,
.page-catalog .category-hero-banner.has-image .breadcrumbs-light a,
.page-catalog .category-hero-banner.has-image .breadcrumbs-light span,
.page-catalog .category-hero-banner.has-image .breadcrumbs-light [aria-current="page"] {
    color: #fff;
    text-shadow: 0 1px 2px rgba(0, 0, 0, .35);
}

.page-catalog .category-hero-banner.has-image .breadcrumbs-light .crumb-sep {
    color: rgba(255, 255, 255, .5);
}

.page-catalog .category-hero-banner.has-image .category-hero-guest {
    border-color: rgba(255, 255, 255, .18);
    border-left-color: var(--color-accent);
    background: rgba(8, 22, 30, .82);
    backdrop-filter: blur(6px);
}

.page-catalog .category-hero-banner.has-image .category-hero-guest .category-hero-guest-lead,
.page-catalog .category-hero-banner.has-image .category-hero-guest .catalog-hero-lead {
    color: rgba(255, 255, 255, .92);
    text-shadow: none;
}

.page-catalog .category-hero-banner.has-image .category-hero-guest .catalog-hero-actions .btn-outline {
    border-color: rgba(255, 255, 255, .85);
    color: #fff;
    background: transparent;
}

.page-catalog .category-hero-banner.has-image .category-hero-guest .catalog-hero-actions .btn-outline:hover {
    background: #fff;
    border-color: #fff;
    color: var(--color-ink);
}

.page-catalog .category-hero-banner.has-image .category-hero-guest .catalog-hero-actions .btn-primary {
    background: #fff;
    border-color: #fff;
    color: var(--color-ink);
}

.page-catalog .category-hero-banner.has-image .category-hero-guest .catalog-hero-actions .btn-primary:hover {
    background: var(--color-accent);
    border-color: var(--color-accent);
    color: #fff;
}

.page-catalog .category-hero-stat-inline {
    margin: 0;
    font-size: .84rem;
}

@media (max-width: 768px) {
    .page-catalog .category-hero-guest {
        max-width: none;
    }
    .page-catalog .category-hero-compact.has-image {
        min-height: clamp(132px, 36vw, 180px);
    }
}

/* ── Product UX v39 — h1 produit + subnav boutons dans le hero ── */

.site-body.page-product .product-header .product-hero-subnav {
    background: transparent;
    border-bottom: 0;
}

.page-product .product-header .product-hero-subnav {
    position: sticky;
    top: var(--header-offset, 120px);
    z-index: 40;
    margin: clamp(.85rem, 2vw, 1.15rem) 0 0;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.page-product .product-header .product-hero-subnav .product-subnav-track {
    border: 0;
}

.page-product .product-header .product-hero-subnav .product-subnav-links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem;
    padding: 0;
    overflow: visible;
    border-bottom: 0;
}

.page-product .product-header .product-hero-subnav .product-subnav-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.15rem;
    padding: .4rem .9rem;
    margin: 0;
    border: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
    border-radius: 0;
    background: #fff;
    font-size: .78rem;
    font-weight: 700;
    color: var(--color-text);
    text-decoration: none;
    white-space: nowrap;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
}

.page-product .product-header .product-hero-subnav .product-subnav-link:hover {
    border-color: var(--color-ink);
    color: var(--color-ink);
    background: var(--color-surface-subtle);
    text-decoration: none;
}

.page-product .product-header .product-hero-subnav .product-subnav-link.is-active {
    background: var(--color-ink);
    border-color: var(--color-ink);
    color: #fff;
}

.page-product .product-header .product-hero.has-image .product-hero-subnav .product-subnav-link {
    border-color: rgba(255, 255, 255, .55);
    background: rgba(255, 255, 255, .12);
    color: #fff;
}

.page-product .product-header .product-hero.has-image .product-hero-subnav .product-subnav-link:hover {
    background: rgba(255, 255, 255, .22);
    border-color: rgba(255, 255, 255, .85);
    color: #fff;
}

.page-product .product-header .product-hero.has-image .product-hero-subnav .product-subnav-link.is-active {
    background: #fff;
    border-color: #fff;
    color: var(--color-ink);
}

.page-product .product-header .product-hero-subnav.is-stuck {
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding: .55rem max(4%, calc((100vw - min(1360px, 92%)) / 2));
    background: #fff;
    border-bottom: 1px solid var(--color-border);
    box-shadow: 0 4px 14px rgba(15, 23, 42, .07);
}

.site-body.page-product .product-header .product-hero-subnav.is-stuck {
    background: #fff;
    border-bottom: 1px solid var(--color-border);
}

.page-product .product-header .product-hero-subnav.is-stuck .product-subnav-link {
    border-color: var(--color-border);
    background: #fff;
    color: var(--color-muted);
}

.page-product .product-header .product-hero-subnav.is-stuck .product-subnav-link:hover {
    border-color: var(--color-ink);
    color: var(--color-ink);
    background: var(--color-surface-subtle);
}

.page-product .product-header .product-hero-subnav.is-stuck .product-subnav-link.is-active {
    background: var(--color-ink);
    border-color: var(--color-ink);
    color: #fff;
}

.page-product .product-header .product-hero:not(.has-image) .product-hero-subnav .product-subnav-link {
    background: var(--color-surface-subtle);
}

.page-product .product-header .product-hero:not(.has-image) .product-hero-subnav .product-subnav-link.is-active {
    background: var(--color-ink);
    color: #fff;
}

@media (max-width: 768px) {
    .page-product .product-header .product-hero-subnav .product-subnav-links {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        padding-bottom: .15rem;
    }
    .page-product .product-header .product-hero-subnav .product-subnav-links::-webkit-scrollbar {
        display: none;
    }
    .page-product .product-header .product-hero-subnav .product-subnav-link {
        flex: 0 0 auto;
    }
}

/* ── Product UX v40 — en-tête produit plus fin ── */

.page-product .product-header .product-hero.category-hero-banner.has-image {
    min-height: clamp(118px, 15vw, 168px);
}

.page-product .product-header .product-hero.category-hero-banner.has-image .product-hero-content {
    padding: clamp(.8rem, 1.6vw, 1.05rem) clamp(1rem, 2vw, 1.25rem) clamp(.7rem, 1.4vw, .95rem);
}

.page-product .product-header .product-hero-grid {
    margin-top: .4rem;
}

.page-product .product-header .product-hero-kicker {
    margin-bottom: .35rem;
}

.page-product .product-header .product-hero-ref {
    padding: 0;
    border: 0;
    background: transparent;
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--color-muted);
}

.page-product .product-header .product-hero.has-image .product-hero-ref {
    color: rgba(255, 255, 255, .62);
    background: transparent;
    border: 0;
}

.page-product .product-header .product-hero-title {
    font-size: clamp(1.05rem, 2.1vw, 1.45rem);
    font-weight: 600;
    line-height: 1.28;
    letter-spacing: -.015em;
    max-width: 48rem;
}

.page-product .product-header .product-hero-meta {
    margin-top: .45rem;
}

.page-product .product-header .product-hero-subnav {
    margin-top: .75rem;
    padding-top: .65rem;
    border-top: 1px solid var(--color-border);
}

.page-product .product-header .product-hero.has-image .product-hero-subnav {
    border-top-color: rgba(255, 255, 255, .16);
}

.page-product .product-header .product-hero-subnav .product-subnav-links {
    gap: .15rem .35rem;
}

.page-product .product-header .product-hero-subnav .product-subnav-link {
    min-height: 0;
    padding: .35rem .65rem;
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    background: transparent;
    font-size: .74rem;
    font-weight: 600;
    letter-spacing: .01em;
    color: var(--color-muted);
}

.page-product .product-header .product-hero-subnav .product-subnav-link:hover {
    color: var(--color-ink);
    background: transparent;
    text-decoration: none;
}

.page-product .product-header .product-hero-subnav .product-subnav-link.is-active {
    color: var(--color-ink);
    background: transparent;
    border-bottom-color: var(--product-accent, var(--color-accent));
    font-weight: 700;
}

.page-product .product-header .product-hero.has-image .product-hero-subnav .product-subnav-link {
    color: rgba(255, 255, 255, .72);
    background: transparent;
    border-color: transparent;
}

.page-product .product-header .product-hero.has-image .product-hero-subnav .product-subnav-link:hover {
    color: #fff;
    background: transparent;
}

.page-product .product-header .product-hero.has-image .product-hero-subnav .product-subnav-link.is-active {
    color: #fff;
    background: transparent;
    border-bottom-color: var(--product-accent, var(--color-accent));
}

.page-product .product-header .product-hero-subnav.is-stuck {
    margin-top: 0;
    padding-top: .45rem;
    padding-bottom: .45rem;
    border-top: 0;
    box-shadow: 0 1px 0 rgba(15, 23, 42, .06);
}

.page-product .product-header .product-hero-subnav.is-stuck .product-subnav-link {
    padding: .4rem .7rem;
    color: var(--color-muted);
    background: transparent;
    border: 0;
    border-bottom: 2px solid transparent;
}

.page-product .product-header .product-hero-subnav.is-stuck .product-subnav-link:hover {
    color: var(--color-ink);
    background: transparent;
}

.page-product .product-header .product-hero-subnav.is-stuck .product-subnav-link.is-active {
    color: var(--color-ink);
    background: transparent;
    border-bottom-color: var(--product-accent, var(--color-accent));
}

.page-product .product-header .category-hero-banner.has-image .category-hero-banner-overlay {
    background: linear-gradient(
        105deg,
        rgba(8, 22, 30, .88) 0%,
        rgba(8, 22, 30, .58) 55%,
        rgba(8, 22, 30, .28) 100%
    );
}

.page-product .product-header {
    margin-bottom: 1rem;
    border-bottom-color: rgba(15, 23, 42, .08);
}

.page-product .product-overview-panel {
    border-top-width: 1px;
    border-top-color: var(--color-border);
}

.page-product .product-overview-shell {
    padding-top: 1rem;
}

@media (max-width: 768px) {
    .page-product .product-header .product-hero-title {
        font-size: clamp(1rem, 4.8vw, 1.25rem);
    }
    .page-product .product-header .product-hero-subnav {
        margin-top: .6rem;
        padding-top: .55rem;
    }
    .page-product .product-header .product-hero-subnav .product-subnav-link {
        padding: .32rem .55rem;
        font-size: .72rem;
    }
}

/* ── Auth gate — connexion / inscription plein écran sans header ni footer ── */

.site-body.page-auth-gate {
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    overflow-x: hidden;
}

.site-body.page-auth-gate .back-to-top {
    display: none !important;
}

.site-body.page-auth-gate .main.page-content-auth-gate {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: none;
    min-height: 0;
    padding: 0;
    margin: 0;
    animation: none;
}

.site-body.page-auth-gate .auth-page-shell {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: none;
    min-height: 100dvh;
    margin: 0;
    padding: 0;
    border: 0;
    background: var(--color-surface);
}

.site-body.page-auth-gate .auth-page-inner {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 100%;
}

.site-body.page-auth-gate .auth-layout-login,
.site-body.page-auth-gate .auth-layout-register {
    flex: 1 1 auto;
    min-height: 100dvh;
    width: 100%;
}

.site-body.page-auth-gate .auth-visual-login,
.site-body.page-auth-gate .auth-visual-register {
    min-height: 100dvh;
}

.site-body.page-auth-gate .auth-form-panel-login,
.site-body.page-auth-gate .auth-form-panel-register {
    min-height: 100dvh;
    max-height: 100dvh;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    justify-content: center;
}

@media (min-width: 901px) {
    .site-body.page-auth-gate .auth-layout-login,
    .site-body.page-auth-gate .auth-layout-register {
        grid-template-columns: minmax(320px, 1fr) minmax(380px, 1fr);
        min-height: 100dvh;
    }

    .site-body.page-auth-gate .auth-visual-login,
    .site-body.page-auth-gate .auth-visual-register {
        min-height: 100dvh;
        max-height: none;
    }
}

@media (max-width: 900px) {
    .site-body.page-auth-gate .auth-layout-login,
    .site-body.page-auth-gate .auth-layout-register {
        min-height: 100dvh;
    }

    .site-body.page-auth-gate .auth-visual-login,
    .site-body.page-auth-gate .auth-visual-register {
        min-height: clamp(180px, 28dvh, 240px);
        max-height: clamp(180px, 28dvh, 240px);
    }

    .site-body.page-auth-gate .auth-form-panel-login,
    .site-body.page-auth-gate .auth-form-panel-register {
        min-height: 0;
        max-height: none;
        flex: 1 1 auto;
        justify-content: flex-start;
        padding-bottom: 2rem;
    }
}

/* ── Contact UX v41 — page contact repensée ── */

.page-contact .main.container {
    max-width: min(1360px, 92%);
}

.page-contact .contact-page {
    margin: 0 0 2rem;
}

.page-contact .contact-hero {
    margin-bottom: 1.35rem;
    min-height: clamp(148px, 22vw, 220px);
    overflow: hidden;
}

.page-contact .contact-hero .category-hero-banner-overlay {
    background: linear-gradient(
        105deg,
        rgba(8, 22, 30, .92) 0%,
        rgba(8, 22, 30, .68) 48%,
        rgba(8, 22, 30, .35) 100%
    );
}

.page-contact .contact-hero-content {
    padding: clamp(1rem, 2.2vw, 1.45rem) clamp(1.1rem, 2.2vw, 1.5rem);
}

.page-contact .contact-hero-main {
    margin-top: .55rem;
    max-width: 40rem;
}

.page-contact .contact-hero-badge {
    display: inline-block;
    margin-bottom: .45rem;
    padding: .28rem .65rem;
    border: 1px solid rgba(255, 255, 255, .28);
    background: rgba(255, 255, 255, .1);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .92);
}

.page-contact .contact-hero h1 {
    margin: 0;
    font-size: clamp(1.35rem, 2.8vw, 1.85rem);
    line-height: 1.2;
    color: #fff;
}

.page-contact .contact-hero-lead {
    margin: .45rem 0 0;
    max-width: 36rem;
    font-size: .88rem;
    line-height: 1.55;
    color: rgba(255, 255, 255, .82);
}

.page-contact .contact-hero-trust {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-top: .75rem;
}

.page-contact .contact-trust-pill {
    display: inline-flex;
    align-items: center;
    padding: .28rem .6rem;
    border: 1px solid rgba(255, 255, 255, .22);
    background: rgba(255, 255, 255, .08);
    font-size: .72rem;
    font-weight: 600;
    color: rgba(255, 255, 255, .9);
}

.page-contact .contact-shell {
    min-width: 0;
}

.page-contact .contact-alert {
    margin-bottom: 1rem;
}

.page-contact .contact-grid-v2 {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr);
    gap: 1.35rem;
    align-items: start;
}

.page-contact .contact-form-panel {
    padding: clamp(1.15rem, 2.2vw, 1.5rem);
    margin-bottom: 0;
    border-top: 3px solid var(--color-accent);
}

.page-contact .contact-form-head {
    margin-bottom: 1.15rem;
    padding-bottom: .85rem;
    border-bottom: 1px solid var(--color-border);
}

.page-contact .contact-form-head .section-label {
    display: block;
    margin-bottom: .4rem;
    padding: 0;
    background: transparent;
    color: var(--color-muted);
    font-size: .68rem;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.page-contact .contact-form-head h2 {
    margin: 0;
    font-size: clamp(1.1rem, 2vw, 1.35rem);
    color: var(--color-ink);
}

.page-contact .contact-form-head h2::after {
    display: none;
}

.page-contact .contact-form-lead {
    margin: .4rem 0 0;
    font-size: .84rem;
    line-height: 1.55;
    color: var(--color-muted);
}

.page-contact .contact-connected {
    margin: 0 0 1rem;
    padding: .65rem .75rem;
    border: 1px solid var(--color-border);
    border-left: 3px solid var(--color-accent);
    background: var(--color-surface-subtle);
    font-size: .82rem;
    line-height: 1.45;
}

.page-contact .contact-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .85rem;
}

.page-contact .contact-field {
    margin-bottom: .85rem;
}

.page-contact .contact-field label {
    display: block;
    margin-bottom: .38rem;
    font-size: .8rem;
    font-weight: 600;
    color: var(--color-ink);
}

.page-contact .contact-field input,
.page-contact .contact-field select,
.page-contact .contact-field textarea {
    width: 100%;
    padding: .62rem .75rem;
    border: 1px solid var(--color-border);
    border-radius: 0;
    background: #fff;
    font: inherit;
    color: var(--color-text);
    transition: border-color .15s ease, box-shadow .15s ease;
}

.page-contact .contact-field input:hover,
.page-contact .contact-field select:hover,
.page-contact .contact-field textarea:hover {
    border-color: rgba(17, 17, 17, .35);
}

.page-contact .contact-field input:focus,
.page-contact .contact-field select:focus,
.page-contact .contact-field textarea:focus {
    outline: none;
    border-color: var(--color-accent);
    box-shadow: 0 0 0 2px rgba(47, 181, 210, .18);
}

.page-contact .contact-field textarea {
    min-height: 9rem;
    resize: vertical;
}

.page-contact .contact-subject-chips {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-bottom: .55rem;
}

.page-contact .contact-subject-chip {
    display: inline-flex;
    align-items: center;
    padding: .35rem .7rem;
    border: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
    font: inherit;
    font-size: .74rem;
    font-weight: 600;
    color: var(--color-text);
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease, color .15s ease;
}

.page-contact .contact-subject-chip:hover {
    border-color: var(--color-ink);
}

.page-contact .contact-subject-chip.is-active {
    border-color: var(--color-ink);
    background: var(--color-ink);
    color: #fff;
}

.page-contact .contact-subject-select {
    font-size: .84rem;
}

.page-contact .contact-submit {
    margin-top: .35rem;
}

.page-contact .contact-aside {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    position: sticky;
    top: calc(var(--header-offset, 120px) + .75rem);
}

.page-contact .contact-info-panel {
    padding: 1.15rem 1.25rem;
    margin-bottom: 0;
}

.page-contact .contact-info-title {
    margin: 0 0 .85rem;
    font-size: .92rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--color-ink);
}

.page-contact .contact-info-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.page-contact .contact-info-item {
    padding: .65rem 0;
    border-bottom: 1px solid var(--color-border);
}

.page-contact .contact-info-item:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.page-contact .contact-info-label {
    display: block;
    margin-bottom: .2rem;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--color-muted);
}

.page-contact .contact-info-value {
    font-size: .92rem;
    font-weight: 600;
    color: var(--color-ink);
    text-decoration: none;
}

.page-contact .contact-info-value:hover {
    color: var(--color-accent);
}

.page-contact .contact-info-note {
    margin: .85rem 0 0;
    padding-top: .75rem;
    border-top: 1px dashed var(--color-border);
    font-size: .78rem;
    line-height: 1.45;
    color: var(--color-muted);
}

.page-contact .contact-pro-panel {
    padding: 1.15rem 1.25rem;
    margin-bottom: 0;
    border-left: 3px solid var(--color-ink);
    background: var(--color-surface-subtle);
}

.page-contact .contact-pro-panel h3 {
    margin: 0 0 .45rem;
    font-size: 1rem;
    color: var(--color-ink);
}

.page-contact .contact-pro-panel p {
    margin: 0;
    font-size: .84rem;
    line-height: 1.55;
    color: var(--color-text);
}

.page-contact .contact-pro-actions {
    display: flex;
    flex-direction: column;
    gap: .45rem;
    margin-top: .85rem;
}

.page-contact .contact-pro-actions .btn {
    justify-content: center;
    text-align: center;
}

@media (max-width: 991px) {
    .page-contact .contact-grid-v2 {
        grid-template-columns: 1fr;
    }

    .page-contact .contact-aside {
        position: static;
    }

    .page-contact .contact-form-row {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .page-contact .contact-hero {
        min-height: clamp(132px, 34vw, 180px);
    }

    .page-contact .contact-subject-chips {
        display: none;
    }
}

/* ── À propos v42 — page entreprise ── */

.page-about .main.container {
    max-width: min(1360px, 92%);
}

.page-about .about-page {
    margin: 0 0 2.5rem;
}

.page-about .about-hero {
    margin-bottom: 1.35rem;
}

.page-about .about-hero-inner {
    display: grid;
    gap: 1rem;
}

.page-about .about-hero-breadcrumbs {
    margin: 0 0 .15rem;
}

.page-about .about-video-frame {
    overflow: hidden;
    padding: 0;
    border: 1px solid var(--color-border);
    background: #000;
}

.page-about .about-video-embed {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    background: #000;
}

.page-about .about-video-poster {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.page-about .about-video-play {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .65rem;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 1rem;
    border: 0;
    cursor: pointer;
    color: #fff;
    background: linear-gradient(
        to top,
        rgba(8, 28, 38, 0.72) 0%,
        rgba(8, 28, 38, 0.28) 45%,
        rgba(8, 28, 38, 0.18) 100%
    );
    transition: background .25s ease;
}

.page-about .about-video-play:hover {
    background: linear-gradient(
        to top,
        rgba(8, 28, 38, 0.82) 0%,
        rgba(8, 28, 38, 0.38) 45%,
        rgba(8, 28, 38, 0.22) 100%
    );
}

.page-about .about-video-play-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 4.25rem;
    height: 4.25rem;
    border-radius: 50%;
    background: var(--color-primary);
    color: #fff;
    box-shadow: 0 0 0 4px rgba(47, 181, 210, 0.25);
    transition: transform .2s ease, box-shadow .2s ease;
}

.page-about .about-video-play:hover .about-video-play-icon {
    transform: scale(1.05);
    box-shadow: 0 0 0 6px rgba(47, 181, 210, 0.32);
}

.page-about .about-video-play-label {
    font-family: var(--font-display);
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.page-about .about-video-embed iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}

.page-about .about-video-frame.is-playing .about-video-embed {
    cursor: default;
}

.page-about .about-hero-intro {
    padding: clamp(1.25rem, 2.5vw, 1.75rem) clamp(1.15rem, 2.5vw, 1.65rem);
    border: 1px solid var(--color-border);
    background: linear-gradient(135deg, #0a2230 0%, #123547 55%, #0f2a38 100%);
}

.page-about .about-video-caption {
    margin: 0 0 .85rem;
    font-size: .92rem;
    line-height: 1.55;
    color: rgba(255, 255, 255, 0.78);
}

.page-about .about-hero-overlay {
    background: linear-gradient(
        105deg,
        rgba(8, 28, 38, 0.88) 0%,
        rgba(8, 28, 38, 0.62) 48%,
        rgba(8, 28, 38, 0.35) 100%
    );
}

.page-about .about-hero-content {
    min-height: inherit;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: clamp(1.25rem, 3vw, 2rem) clamp(1.25rem, 3.5vw, 2.5rem) clamp(1.5rem, 3.5vw, 2.25rem);
}

.page-about .about-hero-main {
    max-width: 820px;
}

.page-about .about-hero-badge {
    display: inline-block;
    font-family: var(--font-display);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #fff;
    background: rgba(47, 181, 210, 0.22);
    border: 1px solid rgba(47, 181, 210, 0.45);
    padding: .35rem .85rem;
    margin-bottom: .85rem;
}

.page-about .about-hero h1 {
    color: #fff;
    font-size: clamp(1.85rem, 4.5vw, 3rem);
    line-height: 1.08;
    margin: 0 0 .75rem;
}

.page-about .about-hero-lead {
    color: rgba(255, 255, 255, 0.92);
    font-size: clamp(1rem, 1.8vw, 1.12rem);
    line-height: 1.55;
    max-width: 640px;
    margin: 0 0 1.1rem;
}

.page-about .about-hero-trust {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.page-about .about-trust-pill {
    display: inline-flex;
    align-items: center;
    font-size: .78rem;
    font-weight: 600;
    color: #fff;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.22);
    padding: .35rem .75rem;
}

.page-about .about-stats {
    background: linear-gradient(135deg, #0a2230 0%, #123547 55%, #0f2a38 100%);
    margin: 0 calc(50% - 50vw);
    width: 100vw;
    padding: clamp(1.5rem, 3vw, 2.25rem) clamp(1rem, 4vw, 2rem);
    border-top: 1px solid rgba(47, 181, 210, 0.15);
}

.page-about .about-stats-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(.75rem, 2vw, 1.25rem);
    max-width: min(1360px, 92%);
    margin: 0 auto;
}

.page-about .about-stat-card {
    text-align: center;
    padding: clamp(1rem, 2vw, 1.35rem) .75rem;
    border: 1px solid rgba(255, 255, 255, 0.12);
    background: rgba(255, 255, 255, 0.04);
}

.page-about .about-stat-card-accent {
    border-color: rgba(47, 181, 210, 0.45);
    background: rgba(47, 181, 210, 0.12);
}

.page-about .about-stat-value {
    display: block;
    font-family: var(--font-display);
    font-size: clamp(1.65rem, 3.5vw, 2.35rem);
    font-weight: 800;
    color: #fff;
    line-height: 1.1;
    margin-bottom: .35rem;
}

.page-about .about-stat-card-accent .about-stat-value {
    color: var(--color-primary);
}

.page-about .about-stat-label {
    display: block;
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.72);
}

.page-about .about-mission {
    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    gap: clamp(1.5rem, 3.5vw, 2.75rem);
    align-items: center;
    padding: clamp(2rem, 4vw, 3.25rem) 0;
}

.page-about .about-mission-copy h2 {
    font-size: clamp(1.45rem, 3vw, 2rem);
    margin: 0 0 1rem;
}

.page-about .about-mission-copy p {
    margin: 0 0 1rem;
    line-height: 1.65;
}

.page-about .about-mission-list {
    list-style: none;
    margin: 1.25rem 0 0;
    padding: 0;
    display: grid;
    gap: .65rem;
}

.page-about .about-mission-list li {
    position: relative;
    padding-left: 1.35rem;
    font-weight: 600;
    color: var(--color-text);
}

.page-about .about-mission-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: .55em;
    width: .55rem;
    height: .55rem;
    background: var(--color-primary);
}

.page-about .about-mission-visual {
    margin: 0;
    overflow: hidden;
    border: 1px solid var(--color-border);
}

.page-about .about-mission-visual img {
    width: 100%;
    height: auto;
    display: block;
}

.page-about .about-mission-caption {
    padding: .85rem 1rem;
    font-size: .82rem;
    color: var(--color-text-muted);
    border-top: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
}

.page-about .about-section-head {
    text-align: center;
    max-width: 720px;
    margin: 0 auto clamp(1.5rem, 3vw, 2rem);
}

.page-about .about-section-head h2 {
    font-size: clamp(1.45rem, 3vw, 2rem);
    margin: 0 0 .65rem;
}

.page-about .about-section-head p {
    margin: 0;
    line-height: 1.6;
}

.page-about .about-values {
    padding: clamp(1.5rem, 3vw, 2.5rem) 0 clamp(2rem, 4vw, 3rem);
    border-top: 1px solid var(--color-border);
}

.page-about .about-values-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(.85rem, 2vw, 1.25rem);
}

.page-about .about-value-card {
    padding: clamp(1.15rem, 2vw, 1.5rem);
    border-top: 3px solid var(--color-primary);
    height: 100%;
}

.page-about .about-value-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    margin-bottom: .85rem;
    color: var(--color-primary-dark);
    background: rgba(47, 181, 210, 0.12);
    border: 1px solid rgba(47, 181, 210, 0.25);
}

.page-about .about-value-card h3 {
    font-size: 1.05rem;
    margin: 0 0 .5rem;
}

.page-about .about-universe {
    margin: 0 calc(50% - 50vw);
    width: 100vw;
    padding: clamp(2rem, 4vw, 3rem) clamp(1rem, 4vw, 2rem);
    background: var(--color-surface-subtle);
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
}

.page-about .about-section-head-light .section-label {
    background: rgba(47, 181, 210, 0.12);
}

.page-about .about-universe .category-grid-home {
    max-width: min(1360px, 92%);
    margin: 0 auto;
}

.page-about .about-universe .category-card-home .category-card-circle {
    border-color: rgba(47, 181, 210, .18);
    box-shadow: 0 4px 16px rgba(0, 0, 0, .06);
    transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}

.page-about .about-universe .category-card-home:hover .category-card-circle,
.page-about .about-universe .category-card-home:focus-visible .category-card-circle {
    border-color: var(--color-primary);
    box-shadow: 0 8px 24px rgba(47, 181, 210, .28);
    transform: translateY(-2px);
}

.page-about .about-universe .category-card-home:hover .category-card-circle img {
    transform: none;
}

.page-about .about-universe .category-card-home .category-card-title {
    background: linear-gradient(transparent, rgba(13, 107, 125, .88));
}

.page-about .about-expertise {
    padding: clamp(2rem, 4vw, 3rem) 0;
}

.page-about .about-expertise-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(.85rem, 2vw, 1.25rem);
}

.page-about .about-expertise-card {
    position: relative;
    padding: clamp(1.25rem, 2vw, 1.65rem);
    padding-top: 2.5rem;
    height: 100%;
}

.page-about .about-expertise-num {
    position: absolute;
    top: .85rem;
    right: 1rem;
    font-family: var(--font-display);
    font-size: 2rem;
    font-weight: 800;
    line-height: 1;
    color: rgba(47, 181, 210, 0.18);
}

.page-about .about-expertise-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    margin-bottom: .85rem;
    color: var(--color-primary-dark);
    background: var(--color-surface-muted);
    border: 1px solid var(--color-border);
}

.page-about .about-expertise-card h3 {
    margin: 0 0 .5rem;
    font-size: 1.08rem;
}

.page-about .about-platform {
    padding: 0 0 clamp(2rem, 4vw, 2.75rem);
}

.page-about .about-platform-inner {
    display: grid;
    grid-template-columns: 1fr 1.1fr;
    gap: 0;
    overflow: hidden;
    border: 1px solid var(--color-border);
}

.page-about .about-platform-copy {
    padding: clamp(1.5rem, 3vw, 2.25rem);
    background: #fff;
}

.page-about .about-platform-copy h2 {
    font-size: clamp(1.35rem, 2.5vw, 1.75rem);
    margin: 0 0 .75rem;
}

.page-about .about-platform-copy p {
    margin: 0 0 1rem;
    line-height: 1.6;
}

.page-about .about-platform-features {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: .75rem;
}

.page-about .about-platform-features li {
    position: relative;
    padding-left: 1rem;
    font-size: .92rem;
    line-height: 1.5;
    border-left: 3px solid var(--color-primary);
}

.page-about .about-platform-visual img {
    width: 100%;
    height: 100%;
    min-height: 220px;
    object-fit: cover;
    display: block;
}

.page-about .about-trust {
    margin: 0 calc(50% - 50vw);
    width: 100vw;
    padding: clamp(1.25rem, 2.5vw, 1.75rem) clamp(1rem, 4vw, 2rem);
    background: var(--color-surface-muted);
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
}

.page-about .about-trust-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(.65rem, 1.5vw, 1rem);
    max-width: min(1360px, 92%);
    margin: 0 auto;
}

.page-about .about-trust-item {
    text-align: center;
    padding: .85rem .65rem;
    background: #fff;
    border: 1px solid var(--color-border);
}

.page-about .about-trust-item strong {
    display: block;
    font-family: var(--font-display);
    font-size: .95rem;
    margin-bottom: .2rem;
}

.page-about .about-trust-item span {
    font-size: .82rem;
    color: var(--color-text-muted);
}

.page-about .about-trust-item-accent {
    border-color: rgba(47, 181, 210, 0.45);
    background: rgba(47, 181, 210, 0.08);
}

.page-about .about-trust-item-accent strong {
    color: var(--color-primary-dark);
}

.page-about .about-cta {
    margin-top: clamp(1.75rem, 3vw, 2.5rem);
}

.page-about .about-cta-inner {
    text-align: center;
    padding: clamp(2rem, 4vw, 3rem) clamp(1.25rem, 4vw, 2rem);
    background: linear-gradient(135deg, #0a2230 0%, #123547 100%);
    border: 1px solid rgba(47, 181, 210, 0.25);
}

.page-about .about-cta-inner h2 {
    color: #fff;
    font-size: clamp(1.45rem, 3vw, 2rem);
    margin: 0 0 .65rem;
}

.page-about .about-cta-inner p {
    color: rgba(255, 255, 255, 0.88);
    max-width: 560px;
    margin: 0 auto 1.35rem;
    line-height: 1.6;
}

.page-about .about-cta-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .65rem;
}

.page-about .about-cta-secondary {
    color: #fff;
    border-color: rgba(255, 255, 255, 0.35);
    background: transparent;
}

.page-about .about-cta-secondary:hover {
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
    border-color: rgba(255, 255, 255, 0.5);
}

@media (max-width: 1024px) {
    .page-about .about-stats-grid,
    .page-about .about-values-grid,
    .page-about .about-trust-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }


    .page-about .about-mission,
    .page-about .about-platform-inner {
        grid-template-columns: 1fr;
    }

    .page-about .about-expertise-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .page-about .about-video-play-icon {
        width: 3.5rem;
        height: 3.5rem;
    }

    .page-about .about-video-play-label {
        font-size: .74rem;
    }

    .page-about .about-stats-grid,
    .page-about .about-trust-grid {
        grid-template-columns: 1fr 1fr;
    }


    .page-about .about-cta-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .page-about .about-cta-actions .btn {
        width: 100%;
    }
}

@media (max-width: 480px) {
    .page-about .about-stats-grid,
    .page-about .about-values-grid,
    .page-about .about-trust-grid {
        grid-template-columns: 1fr;
    }
}

/* ── Mobile responsive audit v21 — tienda + admin (todas las URLs) ── */
@media (max-width: 768px) {
    .form-row,
    .auth-form-row {
        grid-template-columns: 1fr;
    }

    .container,
    .container-wide {
        width: min(1360px, 94%);
    }

    .panel-card {
        padding: 1.1rem 1.15rem;
    }

    .section-header {
        flex-direction: column;
        align-items: flex-start;
        gap: .5rem;
    }

    .breadcrumbs {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        gap: .15rem;
        padding-bottom: .15rem;
        scrollbar-width: thin;
    }

    .filter-tabs:not(.admin-filter-tabs-scroll) {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
    }

    .filter-tab {
        flex-shrink: 0;
    }

    .orders-toolbar {
        flex-direction: column;
        align-items: stretch;
        gap: .65rem;
        margin-bottom: 1rem;
    }

    .orders-search-form {
        display: flex;
        flex-wrap: wrap;
        gap: .5rem;
        width: 100%;
        margin: 0;
        padding: 0;
    }

    .orders-search-form input[type="search"] {
        flex: 1 1 100%;
        min-width: 0;
        width: 100%;
    }

    .orders-toolbar > .btn,
    .orders-toolbar .orders-search-form .btn {
        width: 100%;
        text-align: center;
        justify-content: center;
    }

    .favorites-toolbar {
        flex-direction: column;
        align-items: stretch;
    }

    .favorites-toolbar .inline-form,
    .favorites-toolbar > .btn {
        width: 100%;
    }

    .favorites-toolbar .btn {
        text-align: center;
        justify-content: center;
    }

    .toolbar-card .inline-form {
        width: 100%;
    }

    .form-actions-inline {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: .5rem;
    }

    .form-actions-inline .btn {
        width: 100%;
        text-align: center;
    }

    .client-nav-bar {
        flex-direction: column;
        align-items: stretch;
        gap: .55rem;
    }

    .client-nav-links {
        width: 100%;
    }

    .client-nav-cta {
        display: block;
        width: 100%;
        text-align: center;
    }

    .cookie-banner-inner {
        flex-direction: column;
        align-items: stretch;
        text-align: center;
    }

    .cookie-banner-actions {
        width: 100%;
        flex-direction: column;
    }

    .cookie-banner-actions .btn {
        width: 100%;
        text-align: center;
    }

    .order-meta-grid {
        grid-template-columns: 1fr 1fr;
    }

    .address-item {
        flex-direction: column;
        align-items: flex-start;
    }

    .table td.actions-inline,
    .table td.admin-row-actions {
        white-space: normal;
    }

    .table td.actions-inline .btn,
    .table td.actions-inline form,
    .table td.admin-row-actions .btn {
        display: block;
        width: 100%;
        margin: .2rem 0;
    }

    .page-legal .legal-nav {
        flex-direction: column;
        align-items: stretch;
    }

    .page-legal .legal-nav-link {
        width: 100%;
    }

    .page-checkout .checkout-step span:not(.step-num) {
        min-width: 0;
    }

    .page-quick-order .search-bar input[type="search"] {
        width: 100%;
        min-width: 0;
    }

    .page-quick-order .code-input {
        width: 100%;
        min-width: 0;
    }

    .page-account .account-nav {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        gap: .35rem;
        padding-bottom: .15rem;
    }

    .page-account .account-nav a {
        flex-shrink: 0;
    }

    /* Admin */
    .has-admin-panel .admin-page-header-row {
        flex-direction: column;
        align-items: stretch;
    }

    .has-admin-panel .admin-page-header-actions {
        width: 100%;
    }

    .has-admin-panel .admin-page-header-actions .btn {
        flex: 1 1 auto;
        text-align: center;
        justify-content: center;
    }

    .has-admin-panel .admin-detail-toolbar {
        position: static;
        margin-left: calc(-1 * var(--admin-content-padding));
        margin-right: calc(-1 * var(--admin-content-padding));
        padding-left: var(--admin-content-padding);
        padding-right: var(--admin-content-padding);
    }

    .has-admin-panel .admin-detail-toolbar-inner {
        flex-direction: column;
        align-items: stretch;
    }

    .has-admin-panel .admin-detail-toolbar .btn-sm,
    .has-admin-panel .admin-detail-toolbar .inline-form {
        width: 100%;
        white-space: normal;
    }

    .has-admin-panel .admin-detail-toolbar .inline-form .btn {
        width: 100%;
    }

    .has-admin-panel .admin-filter-bar {
        flex-direction: column;
        align-items: stretch;
    }

    .has-admin-panel .admin-filter-bar input,
    .has-admin-panel .admin-filter-bar select,
    .has-admin-panel .admin-filter-bar label {
        width: 100%;
        min-width: 0;
    }

    .has-admin-panel .admin-filter-bar .btn {
        width: 100%;
        text-align: center;
    }

    .has-admin-panel .admin-search-form {
        flex-direction: column;
        align-items: stretch;
    }

    .has-admin-panel .admin-search-form input[type="search"] {
        min-width: 0;
        width: 100%;
    }

    .admin-help-grid {
        grid-template-columns: 1fr;
    }

    .admin-pricing-tools {
        grid-template-columns: 1fr;
    }

    .has-admin-panel .admin-actions-form {
        grid-template-columns: 1fr;
    }

    .has-admin-panel .admin-product-preview {
        grid-template-columns: 1fr;
    }

    .has-admin-panel .admin-product-image,
    .has-admin-panel .admin-product-image-placeholder {
        max-width: 100%;
        width: 100%;
        height: auto;
        aspect-ratio: 1;
    }

    .admin-translations-toolbar {
        flex-direction: column;
        align-items: stretch;
    }

    .admin-translations-bulk-actions {
        flex-direction: column;
        width: 100%;
    }

    .admin-translations-bulk-actions .btn,
    .admin-translations-bulk .btn {
        width: 100%;
    }

    .admin-inline-translation-form .btn {
        width: 100%;
    }

    .admin-activity-item {
        flex-direction: column;
        align-items: flex-start;
        gap: .35rem;
    }

    .admin-activity-time {
        white-space: normal;
    }

    .has-admin-panel .admin-settings-form-card .admin-quick-links-wide {
        grid-template-columns: 1fr;
    }

    .has-admin-panel .admin-alerts-bar {
        flex-wrap: nowrap;
    }

    .has-admin-panel .admin-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .has-admin-panel .admin-address-cards {
        grid-template-columns: 1fr;
    }

    .admin-results-bar {
        flex-direction: column;
        align-items: flex-start;
    }
}

@media (max-width: 480px) {
    .page-about .about-stats-grid,
    .page-about .about-values-grid,
    .page-about .about-trust-grid {
        grid-template-columns: 1fr;
    }

    .container,
    .container-wide {
        width: min(1360px, 96%);
    }

    .order-meta-grid,
    .stats-grid,
    .has-admin-panel .admin-stats,
    .has-admin-panel .admin-dashboard-kpis.admin-stats {
        grid-template-columns: 1fr;
    }

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

    .hero-quick-actions {
        grid-template-columns: 1fr;
    }
}

/* ── Product UX v41 — responsive mobile fiche produit ── */

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

.site-body.page-product {
    overflow-x: clip;
}

.site-body.page-product .main.container.page-content {
    overflow-x: clip;
}

.page-product .product-page {
    max-width: 100%;
    overflow-x: clip;
}

@media (max-width: 991px) {
    .page-product .product-grid-related {
        display: flex !important;
        flex-wrap: nowrap;
        grid-template-columns: none !important;
        gap: .75rem;
        min-width: min-content;
    }

    .page-product .product-related-inner {
        overflow: hidden;
        max-width: 100%;
    }

    .page-product .product-related-scroll {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x mandatory;
        overscroll-behavior-x: contain;
        max-width: 100%;
        margin: 0;
        padding: 0 0 .85rem;
        scrollbar-width: none;
    }

    .page-product .product-related-scroll::-webkit-scrollbar {
        display: none;
    }

    .page-product .product-grid-related .product-card {
        flex: 0 0 min(72vw, 17.5rem);
        scroll-snap-align: start;
    }

    .page-product .product-related-head {
        flex-direction: column;
        align-items: flex-start;
        gap: .65rem;
    }

    .page-product .product-related-head .product-related-cta {
        width: 100%;
        justify-content: center;
    }
}

@media (max-width: 768px) {
    .page-product .product-page {
        padding-bottom: calc(5.25rem + env(safe-area-inset-bottom, 0));
    }

    .page-product .product-page-footer {
        padding-bottom: .5rem;
    }

    .page-product .product-header .product-hero.category-hero-banner.has-image {
        min-height: 0;
    }

    .page-product .product-header .product-hero.category-hero-banner.has-image .product-hero-content {
        padding: .75rem .85rem .65rem;
    }

    .page-product .product-header .product-breadcrumbs {
        font-size: .72rem;
        margin-bottom: .35rem;
    }

    .page-product .product-header .product-hero-title {
        font-size: clamp(.98rem, 4.6vw, 1.22rem);
        line-height: 1.25;
        text-wrap: pretty;
    }

    .page-product .product-header .product-hero-subnav {
        margin-top: .55rem;
        padding-top: .5rem;
        margin-left: 0;
        margin-right: 0;
        padding-left: 0;
        padding-right: 0;
    }

    .page-product .product-header .product-hero-subnav .product-subnav-track {
        margin: 0 -.85rem;
        padding: 0 .85rem;
    }

    .page-product .product-header .product-hero-subnav .product-subnav-links {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x proximity;
        overscroll-behavior-x: contain;
        gap: .35rem;
        padding-bottom: .2rem;
        scrollbar-width: none;
        mask-image: linear-gradient(to right, #000 calc(100% - 1.25rem), transparent);
        -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 1.25rem), transparent);
    }

    .page-product .product-header .product-hero-subnav .product-subnav-links::-webkit-scrollbar {
        display: none;
    }

    .page-product .product-header .product-hero-subnav .product-subnav-link {
        flex: 0 0 auto;
        min-height: 2rem;
        padding: .38rem .7rem;
        font-size: .72rem;
        scroll-snap-align: start;
    }

    .page-product .product-header .product-hero-subnav.is-stuck {
        margin-left: calc(50% - 50vw);
        margin-right: calc(50% - 50vw);
        padding-left: max(.85rem, calc((100vw - min(1360px, 92%)) / 2));
        padding-right: max(.85rem, calc((100vw - min(1360px, 92%)) / 2));
    }

    .page-product .product-header .product-hero-subnav.is-stuck .product-subnav-track {
        margin: 0;
        padding: 0;
    }

    .page-product .product-header .product-hero-subnav.is-stuck .product-subnav-links {
        mask-image: none;
        -webkit-mask-image: none;
    }

    .page-product .product-overview-shell {
        padding-top: .65rem;
    }

    .page-product .product-overview-panel {
        border-left: 0;
        border-right: 0;
    }

    .page-product .product-overview-panel .product-detail-grid {
        padding: .75rem .85rem 0;
        gap: 1rem;
    }

    .page-product .product-detail-grid .product-gallery-col {
        order: -1;
    }

    .page-product .product-detail-grid .product-buybox-col {
        order: 0;
    }

    .page-product .product-gallery-slim {
        padding: 0 0 .65rem;
    }

    .page-product .product-gallery-slim.has-thumbs-side .product-gallery-count-inline {
        display: block;
        margin-bottom: .45rem;
    }

    .page-product .product-gallery-frame {
        min-height: 0 !important;
        aspect-ratio: 1;
        max-height: min(78vw, 22rem);
    }

    .page-product .product-gallery-frame .product-image,
    .page-product .product-gallery-frame .product-placeholder {
        max-height: 100%;
        width: 100%;
        object-fit: contain;
    }

    .page-product .product-gallery-slim.has-thumbs-side .product-gallery-thumbs {
        gap: .45rem;
        padding: .55rem 0 0;
        margin: 0;
    }

    .page-product .product-gallery-thumb {
        flex: 0 0 3.35rem;
        width: 3.35rem;
        height: 3.35rem;
    }

    .page-product .product-buybox-meta-chips {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: .4rem;
    }

    .page-product .product-meta-chip {
        min-width: 0;
        font-size: .7rem;
        line-height: 1.35;
    }

    .page-product .product-meta-chip:nth-child(2) {
        grid-column: 1 / -1;
    }

    .page-product .product-buybox-review-snippet-head .product-buybox-rating-link {
        margin-left: 0;
        width: 100%;
    }

    .page-product .product-guest-cta {
        padding: .85rem;
    }

    .page-product .product-guest-tools {
        padding: .75rem .85rem;
    }

    .page-product .product-guest-tools-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: .4rem;
    }

    .page-product .product-guest-tool-btn {
        flex: none;
        width: 100%;
        min-height: 2.5rem;
        padding: .45rem .55rem;
        font-size: .72rem;
        text-align: center;
    }

    .page-product .product-guest-tool-link {
        grid-column: 1 / -1;
    }

    .page-product .product-content-shell,
    .page-product .product-reviews,
    .page-product .product-related-band {
        margin-top: 1.35rem;
        padding-top: 1rem;
    }

    .page-product .product-desc-section .prose img {
        max-width: 100%;
        height: auto;
    }

    .page-product .product-reviews-layout {
        grid-template-columns: 1fr;
        gap: .85rem;
    }

    .page-product .product-reviews-side {
        position: static;
        padding: .75rem;
    }

    .page-product .product-review-card-head {
        flex-direction: column;
        align-items: flex-start;
        gap: .35rem;
    }

    .page-product .product-mobile-cta {
        padding: .65rem .85rem calc(.65rem + env(safe-area-inset-bottom, 0));
    }

    .page-product .product-mobile-cta-guest {
        flex-direction: column;
        align-items: stretch;
        gap: .55rem;
    }

    .page-product .product-mobile-cta-actions {
        width: 100%;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: .4rem;
    }

    .page-product .product-mobile-cta-actions .btn {
        width: 100%;
        justify-content: center;
        min-height: 2.45rem;
        padding-left: .5rem;
        padding-right: .5rem;
        font-size: .78rem;
    }
}

@media (max-width: 480px) {
    .page-product .product-buybox-meta-chips {
        grid-template-columns: 1fr;
    }

    .page-product .product-meta-chip:nth-child(2) {
        grid-column: auto;
    }

    .page-product .product-guest-tools-actions {
        grid-template-columns: 1fr;
    }

    .page-product .product-mobile-cta-actions {
        grid-template-columns: 1fr;
    }
}

/* ── Product mobile v45 — fiche produit responsive ── */

@media (max-width: 991px) {
    .page-product .product-detail-grid-guest .product-gallery-col {
        order: -1;
    }

    .page-product .product-detail-grid-guest .product-buybox-col {
        order: 0;
    }
}

@media (max-width: 768px) {
    .page-product {
        --product-sticky-top: calc(var(--header-offset, 120px) + 2.85rem);
    }

    .page-product .product-header .product-hero-media-skip {
        display: none;
    }

    .page-product .product-header .product-hero.category-hero-banner.has-image {
        min-height: 0;
    }

    .page-product .product-header .product-hero.category-hero-banner.has-image .category-hero-banner-bg {
        min-height: 5.5rem;
        max-height: 7.5rem;
    }

    .page-product .product-header .product-hero.category-hero-banner.has-image .category-hero-banner-overlay {
        background: linear-gradient(
            to bottom,
            rgba(8, 28, 38, 0.55) 0%,
            rgba(8, 28, 38, 0.82) 100%
        );
    }

    .page-product .product-header .product-hero.category-hero-banner.has-image .product-hero-content {
        padding: .65rem .85rem .55rem;
    }

    .page-product .product-header .product-breadcrumbs {
        margin-bottom: .25rem;
        overflow-x: auto;
        white-space: nowrap;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .page-product .product-header .product-breadcrumbs::-webkit-scrollbar {
        display: none;
    }

    .page-product .product-header .product-hero-title {
        font-size: clamp(.95rem, 4.4vw, 1.2rem);
        line-height: 1.22;
    }

    .page-product .product-header .product-hero-subnav {
        margin-top: .45rem;
        padding-top: .45rem;
    }

    .page-product .product-header .product-hero-subnav.is-stuck {
        padding-left: .85rem;
        padding-right: .85rem;
    }

    .page-product .product-overview-shell {
        padding: .35rem 0 0;
    }

    .page-product .product-overview-panel {
        border: 0;
        background: transparent;
    }

    .page-product .product-overview-panel .product-detail-grid {
        padding: 0;
        gap: .85rem;
    }

    .page-product .product-gallery-slim {
        padding: 0;
        border: 1px solid var(--color-border);
        border-left: 3px solid var(--color-ink);
    }

    .page-product .product-gallery-slim.has-thumbs-side {
        display: flex;
        flex-direction: column;
    }

    .page-product .product-gallery-slim.has-thumbs-side .product-gallery-count-inline {
        display: none;
    }

    .page-product .product-gallery-slim.has-thumbs-side .product-gallery-body {
        display: flex;
        flex-direction: column;
        width: 100%;
    }

    .page-product .product-gallery-slim.has-thumbs-side .product-gallery-frame {
        order: 1;
        aspect-ratio: auto;
        min-height: 0 !important;
        max-height: none;
        background: var(--color-surface-subtle);
    }

    .page-product .product-gallery-frame .product-image,
    .page-product .product-gallery-frame .product-placeholder {
        width: 100%;
        height: auto;
        max-height: min(68vw, 17.5rem);
        object-fit: contain;
    }

    .page-product .product-gallery-frame .product-placeholder.large {
        height: min(68vw, 17.5rem);
    }

    .page-product .product-gallery-slim.has-thumbs-side .product-gallery-thumbs {
        order: 2;
        flex-direction: row;
        flex-wrap: nowrap;
        overflow-x: auto;
        overscroll-behavior-x: contain;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        gap: .45rem;
        padding: .55rem 0 .65rem;
        margin: 0;
        border: 0;
        background: transparent;
        scrollbar-width: none;
    }

    .page-product .product-gallery-slim.has-thumbs-side .product-gallery-thumbs::-webkit-scrollbar {
        display: none;
    }

    .page-product .product-gallery-thumb {
        flex: 0 0 3.65rem;
        width: 3.65rem;
        height: 3.65rem;
        scroll-snap-align: start;
    }

    .page-product .product-gallery-counter {
        font-size: .68rem;
        padding: .25rem .45rem;
    }

    .page-product .product-gallery-nav {
        width: 2rem;
        height: 2rem;
    }

    .page-product .product-buybox-card,
    .page-product .product-buybox-guest {
        padding: .85rem;
    }

    .page-product .product-buybox-meta-chips {
        display: flex;
        flex-wrap: wrap;
        gap: .35rem;
    }

    .page-product .product-meta-chip {
        flex: 1 1 calc(50% - .35rem);
        min-width: 0;
        font-size: .72rem;
        line-height: 1.35;
        padding: .4rem .5rem;
    }

    .page-product .product-meta-chip:nth-child(2) {
        flex: 1 1 100%;
    }

    .page-product .product-buybox-review-snippet {
        padding: .65rem .75rem;
    }

    .page-product .product-buybox-review-snippet p {
        font-size: .8rem;
        line-height: 1.45;
    }

    .page-product .product-guest-cta {
        padding: .75rem;
    }

    .page-product .product-guest-cta-title {
        font-size: .98rem;
    }

    .page-product .product-guest-cta-text {
        font-size: .8rem;
        margin-bottom: .65rem;
    }

    .page-product .product-guest-tools {
        margin-top: .85rem;
        padding: .65rem .75rem;
    }

    .page-product .product-guest-tools-actions {
        grid-template-columns: 1fr 1fr;
    }

    .page-product .product-guest-tool-btn {
        min-height: 2.35rem;
        padding: .4rem .45rem;
        font-size: .7rem;
    }

    .page-product .product-content-shell,
    .page-product .product-reviews,
    .page-product .product-related-band {
        margin-top: 1.15rem;
        padding-top: .85rem;
    }

    .page-product .product-section-head h2 {
        font-size: 1.05rem;
    }

    .page-product .product-description-wrap.is-collapsible {
        max-height: 14rem;
    }

    .page-product .product-description.prose {
        font-size: .88rem;
        line-height: 1.6;
        overflow-wrap: anywhere;
        word-break: break-word;
    }

    .page-product .product-description.prose img,
    .page-product .product-description.prose table,
    .page-product .product-description.prose pre {
        max-width: 100%;
    }

    .page-product .product-desc-toggle {
        width: 100%;
        justify-content: center;
        min-height: 2.5rem;
    }

    .page-product .product-reviews-summary {
        padding: .75rem;
    }

    .page-product .product-review-card {
        padding: .75rem;
    }

    .page-product .product-page-footer {
        padding-bottom: .25rem;
    }

    .page-product .product-mobile-cta {
        z-index: 220;
        padding: .6rem .85rem calc(.6rem + env(safe-area-inset-bottom, 0));
        box-shadow: 0 -1px 0 var(--color-border);
    }

    .page-product .product-mobile-cta-guest {
        gap: .45rem;
    }

    .page-product .product-mobile-cta-info {
        min-width: 0;
    }

    .page-product .product-mobile-cta-info strong {
        display: block;
        font-size: .82rem;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .page-product .product-mobile-cta-info span {
        font-size: .72rem;
    }

    .site-body.page-product .back-to-top {
        bottom: calc(4.85rem + env(safe-area-inset-bottom, 0));
        right: .75rem;
        width: 2.45rem;
        height: 2.45rem;
        font-size: .95rem;
        z-index: 210;
    }

    .page-product #product-overview,
    .page-product #product-specs,
    .page-product #product-content,
    .page-product #product-reviews,
    .page-product #product-related {
        scroll-margin-top: calc(var(--header-offset, 120px) + 3.15rem);
    }
}

@media (max-width: 480px) {
    .page-product .product-meta-chip {
        flex: 1 1 100%;
    }

    .page-product .product-meta-chip:nth-child(2) {
        flex: 1 1 100%;
    }

    .page-product .product-guest-tools-actions {
        grid-template-columns: 1fr 1fr;
    }

    .page-product .product-mobile-cta-actions {
        grid-template-columns: 1fr 1fr;
    }

    .page-product .product-mobile-cta-actions .btn {
        font-size: .74rem;
        padding-left: .35rem;
        padding-right: .35rem;
    }
}

/* ── Product mobile v46 — CTA fijo, galerie et buybox invité ── */

.site-body.page-product .main.container.page-content,
.site-body.page-product.is-ready .main.container.page-content {
    animation: none;
    transform: none;
}

@media (max-width: 768px) {
    .site-body.page-product .main.container.page-content {
        width: min(1360px, 96%);
    }

    .page-product .product-header {
        margin-bottom: .5rem;
    }

    .page-product .product-header .product-hero.category-hero-banner.has-image .category-hero-banner-bg {
        min-height: 0;
        max-height: 4.75rem;
    }

    .page-product .product-header .product-hero.category-hero-banner.has-image .category-hero-banner-overlay {
        background: linear-gradient(
            to bottom,
            rgba(8, 28, 38, 0.45) 0%,
            rgba(8, 28, 38, 0.9) 100%
        );
    }

    .page-product .product-header .product-hero.category-hero-banner.has-image .product-hero-content {
        padding: .6rem 0 .5rem;
    }

    .page-product .product-header .product-breadcrumbs {
        margin-bottom: .25rem;
        padding-bottom: .1rem;
    }

    .page-product .product-header .product-hero-title {
        font-size: clamp(.92rem, 4.2vw, 1.15rem);
        line-height: 1.22;
    }

    .page-product .product-header .product-subnav,
    .page-product .product-header .product-hero-subnav {
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .page-product .product-header .product-hero-subnav .product-subnav-track {
        margin: 0 -.15rem;
        padding: 0 .15rem;
    }

    .page-product .product-header .product-hero-subnav .product-subnav-links {
        gap: .25rem;
        padding-bottom: .15rem;
        mask-image: linear-gradient(to right, #000 calc(100% - .85rem), transparent);
        -webkit-mask-image: linear-gradient(to right, #000 calc(100% - .85rem), transparent);
    }

    .page-product .product-header .product-hero-subnav .product-subnav-link {
        min-height: 2.15rem;
        padding: .42rem .62rem;
        font-size: .71rem;
    }

    .page-product .product-header .product-hero-subnav.is-stuck {
        margin-left: calc(50% - 50vw) !important;
        margin-right: calc(50% - 50vw) !important;
        padding-left: max(.75rem, env(safe-area-inset-left)) !important;
        padding-right: max(.75rem, env(safe-area-inset-right)) !important;
    }

    .page-product .product-overview-shell {
        padding-top: .25rem;
    }

    .page-product .product-overview-panel .product-detail-grid {
        padding: 0;
        gap: .75rem;
    }

    .page-product .product-gallery-slim {
        padding: 0;
    }

    .page-product .product-gallery-slim.has-thumbs-side {
        display: flex !important;
        flex-direction: column !important;
        grid-template-columns: none !important;
    }

    .page-product .product-gallery-slim.has-thumbs-side .product-gallery-body {
        display: flex !important;
        flex-direction: column !important;
        width: 100%;
    }

    .page-product .product-gallery-slim.has-thumbs-side .product-gallery-frame {
        order: 1;
        width: 100%;
        min-height: 0 !important;
        aspect-ratio: 1;
        max-height: min(92vw, 21rem);
    }

    .page-product .product-gallery-frame .product-image,
    .page-product .product-gallery-frame .product-placeholder {
        width: 100%;
        height: auto;
        max-height: min(92vw, 21rem);
        object-fit: contain;
    }

    .page-product .product-gallery-slim.has-thumbs-side .product-gallery-thumbs {
        order: 2;
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap;
        width: 100%;
        margin: 0;
        padding: .55rem 0 .65rem;
        border: 0;
        border-right: 0;
        background: transparent;
        overflow-x: auto;
        overscroll-behavior-x: contain;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        gap: .5rem;
    }

    .page-product .product-gallery-thumb {
        flex: 0 0 3.85rem;
        width: 3.85rem;
        height: 3.85rem;
        min-width: 3.85rem;
        scroll-snap-align: start;
    }

    .page-product .product-gallery-nav {
        width: 2.15rem;
        height: 2.15rem;
    }

    .page-product .product-buybox-card,
    .page-product .product-buybox-guest {
        padding: .8rem .85rem;
    }

    .page-product .product-buybox-meta-chips {
        display: grid;
        grid-template-columns: 1fr;
        gap: .4rem;
    }

    .page-product .product-meta-chip {
        width: 100%;
        flex: none;
        padding: .45rem .55rem;
        font-size: .72rem;
        line-height: 1.35;
    }

    .page-product .product-meta-chip:nth-child(2) {
        grid-column: auto;
    }

    .page-product .product-buybox-review-snippet {
        padding: .6rem .7rem;
    }

    .page-product .product-buybox-review-snippet-head {
        flex-wrap: wrap;
        gap: .25rem .45rem;
    }

    .page-product .product-buybox-review-snippet-head .product-buybox-rating-link {
        margin-left: 0;
    }

    .page-product .product-guest-cta {
        padding: .75rem;
    }

    .page-product .product-guest-cta-actions .btn-block {
        min-height: 2.75rem;
    }

    .page-product .product-guest-tools {
        margin-top: .75rem;
        padding: .65rem .75rem;
    }

    .page-product .product-guest-tools-inner {
        flex-direction: column;
        align-items: stretch;
        gap: .5rem;
    }

    .page-product .product-guest-tools-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .4rem;
    }

    .page-product .product-guest-tool-btn {
        width: 100%;
        min-height: 2.65rem;
        padding: .48rem .4rem;
        font-size: .71rem;
        line-height: 1.25;
        text-align: center;
    }

    .page-product .product-guest-tool-link {
        grid-column: 1 / -1;
    }

    .page-product .product-page {
        padding-bottom: calc(5.75rem + env(safe-area-inset-bottom, 0));
    }

    .page-product .product-mobile-cta {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        width: 100%;
        max-width: none;
        margin: 0;
        z-index: 1100;
        padding: .6rem max(.85rem, env(safe-area-inset-left)) calc(.6rem + env(safe-area-inset-bottom, 0)) max(.85rem, env(safe-area-inset-right));
        box-shadow: 0 -1px 0 var(--color-border), 0 -8px 24px rgba(15, 23, 42, .08);
    }

    .site-body.page-product:has(.product-mobile-cta) .cookie-banner:not([hidden]) {
        bottom: calc(4.35rem + env(safe-area-inset-bottom, 0));
    }

    .page-product .product-mobile-cta-guest {
        flex-direction: row;
        align-items: center;
        gap: .55rem;
    }

    .page-product .product-mobile-cta-info {
        flex: 1 1 auto;
        min-width: 0;
    }

    .page-product .product-mobile-cta-actions {
        flex: 0 0 auto;
        display: flex;
        flex-direction: column;
        gap: .35rem;
        width: auto;
        min-width: 7.25rem;
    }

    .page-product .product-mobile-cta-actions .btn {
        min-height: 2.35rem;
        padding: .42rem .5rem;
        font-size: .73rem;
    }

    .site-body.page-product .back-to-top {
        bottom: calc(5.35rem + env(safe-area-inset-bottom, 0));
        z-index: 1090;
    }

    .page-product .product-description.prose,
    .page-product .product-description.prose p,
    .page-product .product-description.prose li {
        overflow-wrap: anywhere;
        word-break: break-word;
    }

    .page-product .product-description.prose h2,
    .page-product .product-description.prose h3 {
        font-size: clamp(.95rem, 4vw, 1.05rem);
        line-height: 1.35;
    }

    .page-product .product-reviews-guest-cta-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
        width: 100%;
    }

    .page-product .product-reviews-guest-cta-actions .btn {
        justify-content: center;
    }
}

@media (max-width: 480px) {
    .page-product .product-mobile-cta-guest {
        flex-direction: column;
        align-items: stretch;
    }

    .page-product .product-mobile-cta-actions {
        width: 100%;
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .page-product .product-guest-tools-actions {
        grid-template-columns: 1fr;
    }
}

/* ── Product UX v47 — titre puis galerie, subnav après photos ── */

.page-product .product-header {
    margin-bottom: 0;
}

.page-product .product-header .product-hero-content {
    padding-bottom: .35rem;
}

.page-product .product-header .product-hero-grid {
    margin-top: 0;
}

.page-product .product-overview-shell {
    padding-top: .35rem;
}

.page-product .product-detail-grid {
    grid-template-columns: minmax(0, 1.12fr) minmax(300px, .88fr);
    align-items: start;
}

.page-product .product-aside-col {
    display: flex;
    flex-direction: column;
    gap: .75rem;
    min-width: 0;
}

.page-product .product-hero-meta-aside {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem .55rem;
}

.page-product .product-hero-meta-aside .product-hero-lead {
    flex: 1 1 100%;
    margin: 0 0 .15rem;
    font-size: .86rem;
    line-height: 1.5;
    color: var(--color-muted);
    -webkit-line-clamp: 3;
    line-clamp: 3;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.page-product .product-aside-col .product-hero-subnav {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
}

.page-product .product-aside-col .product-hero-subnav .product-subnav-track {
    margin: 0;
    padding: 0;
}

.page-product .product-aside-col .product-buybox-col {
    position: static;
    top: auto;
}

@media (min-width: 992px) {
    .page-product .product-aside-col {
        position: sticky;
        top: calc(var(--header-offset, 120px) + .85rem);
        align-self: start;
    }

    .page-product .product-buybox-col {
        position: static;
        top: auto;
    }
}

.page-product .product-hero-subnav.is-stuck {
    position: fixed;
    top: var(--header-offset, 120px);
    left: 0;
    right: 0;
    z-index: 90;
    margin: 0;
    padding: .45rem max(.85rem, calc((100vw - min(1360px, 92%)) / 2));
    background: rgba(255, 255, 255, .98);
    border-bottom: 1px solid var(--color-border);
    box-shadow: 0 1px 0 rgba(15, 23, 42, .06);
}

.page-product .product-hero-subnav.is-stuck .product-subnav-track {
    max-width: min(1360px, 92%);
    margin: 0 auto;
}

@media (max-width: 768px) {
    .page-product .product-header {
        margin-bottom: 0;
    }

    .page-product .product-header .product-hero.category-hero-banner.has-image .product-hero-content {
        padding-bottom: .25rem;
    }

    .page-product .product-overview-shell {
        padding-top: .15rem;
    }

    .page-product .product-detail-grid {
        grid-template-columns: 1fr;
        gap: .65rem;
    }

    .page-product .product-detail-grid .product-gallery-col,
    .page-product .product-detail-grid-guest .product-gallery-col {
        order: 0;
    }

    .page-product .product-detail-grid .product-aside-col,
    .page-product .product-detail-grid-guest .product-aside-col {
        order: 1;
    }

    .page-product .product-aside-col {
        gap: .55rem;
    }

    .page-product .product-hero-meta-aside {
        display: none;
    }

    .page-product .product-aside-col .product-hero-subnav {
        margin-left: calc(50% - 50vw);
        margin-right: calc(50% - 50vw);
        padding-left: max(.75rem, env(safe-area-inset-left));
        padding-right: max(.75rem, env(safe-area-inset-right));
        padding-top: .15rem;
        border-top: 1px solid var(--color-border);
    }

    .page-product .product-hero-subnav.is-stuck {
        padding-left: max(.75rem, env(safe-area-inset-left));
        padding-right: max(.75rem, env(safe-area-inset-right));
    }
}

.page-product .product-aside-col .product-hero-subnav .product-subnav-links {
    gap: .15rem .35rem;
}

.page-product .product-aside-col .product-hero-subnav .product-subnav-link {
    min-height: 0;
    padding: .35rem .65rem;
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    background: transparent;
    font-size: .74rem;
    font-weight: 600;
    letter-spacing: .01em;
    color: var(--color-muted);
}

.page-product .product-aside-col .product-hero-subnav .product-subnav-link:hover {
    color: var(--color-ink);
    background: transparent;
    text-decoration: none;
}

.page-product .product-aside-col .product-hero-subnav .product-subnav-link.is-active {
    color: var(--color-ink);
    background: transparent;
    border-bottom-color: var(--product-accent, var(--color-accent));
    font-weight: 700;
}

.page-product .product-hero-subnav.is-stuck .product-subnav-link {
    padding: .4rem .7rem;
    color: var(--color-muted);
    background: transparent;
    border: 0;
    border-bottom: 2px solid transparent;
}

.page-product .product-hero-subnav.is-stuck .product-subnav-link:hover {
    color: var(--color-ink);
    background: transparent;
}

.page-product .product-hero-subnav.is-stuck .product-subnav-link.is-active {
    color: var(--color-ink);
    background: transparent;
    border-bottom-color: var(--product-accent, var(--color-accent));
}

/* ── Design consistency v22 — legal, errors, CTA, client pages ── */

/* Contact CTA band (global) */
.contact-cta-band {
    margin-top: clamp(1.75rem, 3vw, 2.5rem);
}
.contact-cta-band-inner {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 1.5rem 2rem;
    align-items: center;
    padding: clamp(1.75rem, 3vw, 2.5rem) clamp(1.25rem, 4vw, 2rem);
    background: linear-gradient(135deg, #0a2230 0%, #123547 100%);
    border: 1px solid rgba(47, 181, 210, 0.25);
    border-radius: 0;
}
.contact-cta-band-text h2 {
    color: #fff;
    font-size: clamp(1.35rem, 2.8vw, 1.85rem);
    margin: .35rem 0 .55rem;
    line-height: 1.25;
}
.contact-cta-band-text p {
    color: rgba(255, 255, 255, 0.88);
    margin: 0;
    max-width: 520px;
    line-height: 1.6;
    font-size: .95rem;
}
.contact-cta-label {
    color: var(--color-accent);
}
.contact-cta-phone {
    display: flex;
    align-items: center;
    gap: .45rem;
    margin: .75rem 0 0;
    font-size: .9rem;
}
.contact-cta-phone a {
    color: #fff;
    font-weight: 600;
    text-decoration: none;
}
.contact-cta-phone a:hover {
    color: var(--color-accent);
}
.contact-cta-band-actions {
    display: flex;
    flex-direction: column;
    gap: .55rem;
    min-width: min(100%, 220px);
}
.contact-cta-secondary {
    color: #fff;
    border-color: rgba(255, 255, 255, 0.35);
    background: transparent;
}
.contact-cta-secondary:hover {
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
    border-color: rgba(255, 255, 255, 0.5);
}

/* Legal pages */
.legal-page {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}
.page-legal .legal-hero {
    margin-bottom: 0;
}
.page-legal .legal-hero-content {
    padding: clamp(1.5rem, 3vw, 2.25rem) clamp(1.25rem, 4vw, 2rem);
}
.page-legal .legal-hero-main {
    max-width: 640px;
}
.page-legal .legal-hero-badge {
    display: inline-block;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--color-accent);
    margin-bottom: .5rem;
}
.page-legal .legal-hero-lead {
    margin: .5rem 0 0;
    color: rgba(255, 255, 255, 0.88);
    font-size: .95rem;
    line-height: 1.55;
    max-width: 560px;
}
.page-legal .legal-layout {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 1.5rem;
    align-items: start;
}
.page-legal .legal-nav.panel-card {
    position: sticky;
    top: calc(var(--header-offset, 140px) + 1rem);
    display: flex;
    flex-direction: column;
    gap: .15rem;
    padding: .75rem;
    box-shadow: var(--shadow);
    border-radius: 0;
}
.page-legal .legal-section {
    max-width: none;
    margin-bottom: 0;
    box-shadow: var(--shadow);
    border-radius: 0;
    padding: 1.25rem 1.5rem;
}
.page-legal .legal-section h2 {
    margin-top: 0;
    font-size: 1.1rem;
    color: var(--color-primary-dark);
    padding-bottom: .5rem;
    border-bottom: 1px solid var(--color-border);
}
.page-legal .legal-content {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* Error pages v2 */
.error-page-wrap {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    max-width: 720px;
    margin: 1rem auto 2rem;
}
.error-page-v2 {
    text-align: center;
    padding: clamp(2rem, 5vw, 3rem) clamp(1.25rem, 4vw, 2rem);
    border-radius: 0;
    border-left: 3px solid var(--color-accent);
}
.error-page-v2 h1 {
    margin: 0 0 .65rem;
    font-size: clamp(1.5rem, 3vw, 2rem);
}
.error-page-v2 .lead {
    max-width: 480px;
    margin: 0 auto .5rem;
    color: var(--color-muted);
}
.error-page-hint {
    max-width: 440px;
    margin: 0 auto 1.5rem;
    font-size: .9rem;
}
.error-page-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .6rem;
}
.error-page-contact {
    border-color: var(--color-accent);
}

/* Client panel page headers */
.has-client-panel .page-header {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-left: 3px solid var(--color-accent);
    padding: 1.25rem 1.5rem;
    margin-bottom: 1.25rem;
    border-radius: 0;
    box-shadow: var(--shadow);
}
.has-client-panel .page-header h1 {
    font-size: clamp(1.35rem, 2.5vw, 1.75rem);
}
.has-client-panel .page-header-sub {
    font-size: .92rem;
    line-height: 1.5;
}

/* Orders page */
.page-orders .orders-summary-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .75rem;
    margin-bottom: 1rem;
}
.page-orders .orders-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .85rem 1rem;
    margin-bottom: 1rem;
    border-radius: 0;
    box-shadow: var(--shadow);
}
.page-orders .orders-search-form {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    flex: 1;
    min-width: min(100%, 280px);
}
.page-orders .orders-search-form input[type="search"] {
    flex: 1;
    min-width: 160px;
    padding: .5rem .75rem;
    border: 1px solid var(--color-border);
    border-radius: 0;
    font: inherit;
}
.page-orders .order-success-banner {
    margin-bottom: 1.25rem;
    border-left: 3px solid var(--color-accent);
}

/* Catalog guest hero */
.page-catalog .catalog-hero-guest {
    border-left: 3px solid var(--color-accent);
    background: linear-gradient(135deg, #fff 0%, var(--color-surface-subtle) 100%);
}
.page-catalog .catalog-hero-guest .catalog-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-top: .25rem;
}

/* Quick order feature panels */
.page-quick-order .feature-panel {
    border-radius: 0;
    box-shadow: var(--shadow);
    border-left: 3px solid var(--color-accent);
}
.page-quick-order .feature-panel-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0;
    background: var(--color-surface-muted);
    color: var(--color-accent);
    font-size: inherit;
    flex-shrink: 0;
}
.page-quick-order .feature-panel-icon svg {
    display: block;
}
.page-quick-order .preview-section {
    border-left: 3px solid var(--color-ink);
}

/* Empty state SVG icons */
.empty-state-icon svg {
    display: block;
    margin: 0 auto;
    color: var(--color-muted);
    opacity: .7;
}

@media (max-width: 1024px) {
    .page-orders .orders-summary-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .contact-cta-band-inner {
        grid-template-columns: 1fr;
        text-align: center;
    }
    .contact-cta-band-text p,
    .contact-cta-phone {
        margin-left: auto;
        margin-right: auto;
        justify-content: center;
    }
    .contact-cta-band-actions {
        width: 100%;
        max-width: 320px;
        margin: 0 auto;
    }
}

@media (max-width: 768px) {
    .page-legal .legal-layout {
        grid-template-columns: 1fr;
    }
    .page-legal .legal-nav.panel-card {
        position: static;
        flex-direction: row;
        flex-wrap: wrap;
    }
    .page-legal .legal-nav-link {
        flex: 1 1 auto;
        min-width: fit-content;
    }
    .page-orders .orders-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .page-orders .orders-toolbar {
        flex-direction: column;
        align-items: stretch;
    }
    .page-orders .orders-search-form {
        width: 100%;
    }
    .error-page-actions {
        flex-direction: column;
        align-items: stretch;
    }
    .error-page-actions .btn {
        width: 100%;
    }
    .contact-cta-band-actions .btn {
        width: 100%;
    }
    .page-catalog .catalog-hero-guest .catalog-hero-actions {
        flex-direction: column;
        align-items: stretch;
    }
    .page-catalog .catalog-hero-guest .catalog-hero-actions .btn {
        width: 100%;
        text-align: center;
    }
}

@media (max-width: 480px) {
    .page-orders .orders-summary-grid {
        grid-template-columns: 1fr 1fr;
    }
}

/* ── Design consistency v23 — account, cart, checkout, auth ── */

/* SVG icons in quick actions */
.quick-action-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    color: var(--color-accent);
    font-size: inherit;
    line-height: 1;
}
.quick-action-icon svg {
    display: block;
}
.quick-action-card {
    border-radius: 0;
    border-left: 3px solid transparent;
    transition: transform .15s, border-color .15s, box-shadow .15s;
}
.quick-action-card:hover {
    border-left-color: var(--color-accent);
}
.client-shortcuts .quick-action-card-active {
    border-left-color: var(--color-accent);
}
.client-shortcuts .quick-action-card-warn {
    border-left-color: #d97706;
}

/* Account dashboard */
.page-account .client-panel-welcome {
    border-left: 3px solid var(--color-accent);
    padding: 1.25rem 1.5rem;
    box-shadow: var(--shadow);
}
.page-account .account-stats {
    margin-bottom: 1.25rem;
}
.page-account .account-grid {
    gap: 1.25rem;
}
.page-account .account-grid .panel-card {
    border-radius: 0;
    box-shadow: var(--shadow);
}
.page-account .info-banner {
    margin-bottom: 1.25rem;
    padding: .85rem 1rem;
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
    border-left: 3px solid var(--color-accent);
    font-size: .9rem;
}
.page-account .address-card {
    border-radius: 0;
}
.page-account .contact-cta-band {
    margin-top: 1.5rem;
}

/* Form pages */
.page-account .form-page .form-card {
    border-left: 3px solid var(--color-accent);
    border-radius: 0;
    box-shadow: var(--shadow);
    padding: 1.5rem;
}
.page-account .form-page .form-card label {
    font-size: .88rem;
    font-weight: 600;
    color: var(--color-primary-dark);
}
.page-account .form-page .form-card input,
.page-account .form-page .form-card select,
.page-account .form-page .form-card textarea {
    width: 100%;
    margin-top: .35rem;
    padding: .55rem .75rem;
    border: 1px solid var(--color-border);
    border-radius: 0;
    font: inherit;
}
.page-account .form-page .form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

/* Cart page */
.page-cart .cart-layout {
    gap: 1.25rem;
}
.page-cart .cart-table-wrap {
    border-radius: 0;
    border-left: 3px solid var(--color-accent);
}
.page-cart .cart-summary {
    border-radius: 0;
    border-left: 3px solid var(--color-ink);
    box-shadow: var(--shadow);
    top: calc(var(--header-offset, 140px) + 1rem);
}
.page-cart .cart-summary-trust,
.page-checkout .cart-summary-trust {
    display: flex;
    flex-direction: column;
    gap: .45rem;
}
.page-cart .trust-pill,
.page-checkout .trust-pill {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-size: .82rem;
    color: var(--color-muted);
}
.page-cart .trust-pill svg,
.page-checkout .trust-pill svg {
    flex-shrink: 0;
    color: var(--color-accent);
}
.page-cart .cart-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    align-items: center;
}
.page-cart .empty-state.panel-card {
    border-left: 3px solid var(--color-accent);
    border-radius: 0;
}

/* Checkout page */
.page-checkout .checkout-grid {
    gap: 1.25rem;
}
.page-checkout .checkout-form {
    border-radius: 0;
    border-left: 3px solid var(--color-accent);
    box-shadow: var(--shadow);
    padding: 1.5rem;
}
.page-checkout .checkout-summary {
    border-radius: 0;
    border-left: 3px solid var(--color-ink);
    box-shadow: var(--shadow);
    position: sticky;
    top: calc(var(--header-offset, 140px) + 1rem);
}
.page-checkout .checkout-steps {
    border-radius: 0;
    border-left: 3px solid var(--color-accent);
    overflow: hidden;
}
.page-checkout .checkout-block-title {
    font-size: 1rem;
    margin: 0 0 1rem;
    padding-bottom: .5rem;
    border-bottom: 1px solid var(--color-border);
    color: var(--color-primary-dark);
}
.page-checkout .address-option,
.page-checkout .payment-option {
    border-radius: 0;
}
.page-checkout .empty-state.panel-card {
    border-left: 3px solid var(--color-accent);
    text-align: center;
    padding: 2.5rem 1.5rem;
}

/* Auth benefit icons */
.page-auth .auth-benefit-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.35rem;
    height: 1.35rem;
    flex-shrink: 0;
}
.page-auth .auth-benefit-icon svg {
    display: block;
}

/* Client panel alerts */
.has-client-panel .client-panel-alert {
    border-radius: 0;
    border-left: 3px solid var(--color-accent);
    padding: .85rem 1rem;
}
.has-client-panel .alert-error.client-panel-alert {
    border-left-color: #d97706;
}

@media (max-width: 991px) {
    .page-cart .cart-layout,
    .page-checkout .checkout-grid {
        grid-template-columns: 1fr;
    }
    .page-cart .cart-summary,
    .page-checkout .checkout-summary {
        position: static;
    }
}

@media (max-width: 768px) {
    .page-account .form-page .form-row {
        grid-template-columns: 1fr;
    }
    .page-account .client-panel-welcome-actions {
        width: 100%;
    }
    .page-account .client-panel-welcome-actions .btn {
        flex: 1;
        text-align: center;
    }
    .quick-actions {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .page-cart .cart-actions {
        flex-direction: column;
        align-items: stretch;
    }
    .page-cart .cart-actions .btn,
    .page-cart .cart-actions form {
        width: 100%;
    }
    .page-cart .cart-actions .inline-form {
        display: block;
    }
    .page-checkout .checkout-form {
        padding: 1.15rem;
    }
}

@media (max-width: 480px) {
    .quick-actions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* ── Design consistency v24 — footer, sidebar, product, orders ── */

/* Footer CTA strip */
.footer-cta {
    border-top: 1px solid rgba(255, 255, 255, .1);
    padding: 1.75rem 0;
    margin-bottom: 1.5rem;
    background: linear-gradient(135deg, rgba(47, 181, 210, .12) 0%, rgba(255, 255, 255, .04) 100%);
}
.footer-cta-inner {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 1.25rem 2rem;
    align-items: center;
}
.footer-cta-text strong {
    display: block;
    color: #fff;
    font-size: 1.1rem;
    margin-bottom: .35rem;
    font-family: var(--font-display);
}
.footer-cta-text p {
    margin: 0;
    color: rgba(255, 255, 255, .82);
    font-size: .9rem;
    line-height: 1.55;
    max-width: 520px;
}
.footer-cta-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
}
.footer-cta-secondary {
    color: #fff;
    border-color: rgba(255, 255, 255, .35);
    background: transparent;
}
.footer-cta-secondary:hover {
    background: rgba(255, 255, 255, .08);
    color: #fff;
    border-color: rgba(255, 255, 255, .5);
}
.footer-trust .trust-pill svg {
    flex-shrink: 0;
    color: var(--color-accent);
}

/* Client sidebar icons */
.client-sidebar-icon svg {
    display: block;
    color: var(--color-accent);
}
.client-sidebar-link.is-active .client-sidebar-icon svg {
    color: var(--color-ink);
}
.client-sidebar-icon {
    border-radius: 0;
}
.client-support-link {
    display: flex;
    align-items: center;
    gap: .4rem;
}
.client-support-icon {
    display: inline-flex;
    color: var(--color-accent);
    flex-shrink: 0;
}
.client-support-icon svg {
    display: block;
}

/* Client panel mobile bar */
.client-panel-toggle {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
}
.client-panel-toggle-icon {
    display: inline-flex;
    color: var(--color-accent);
}
.client-panel-toggle-icon svg {
    display: block;
}
.client-panel-cart-pill {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    position: relative;
}
.client-panel-cart-pill svg {
    display: block;
    color: var(--color-accent);
}
.client-panel-cart-count {
    position: absolute;
    top: -.2rem;
    right: -.35rem;
    min-width: 1.1rem;
    height: 1.1rem;
    padding: 0 .25rem;
    border-radius: 999px;
    background: var(--color-accent);
    color: var(--color-ink);
    font-size: .65rem;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* Product page guest & footer */
.page-product .product-guest-contact {
    border-color: var(--color-accent);
    color: var(--color-text);
}
.page-product .product-page-footer.panel-card {
    border-radius: 0;
    border-left: 3px solid var(--color-accent);
    padding: 1rem 1.25rem;
    margin-top: 1.25rem;
}
.page-product .product-page-footer-main {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem 1.25rem;
}
.page-product .contact-cta-band {
    margin-top: 1.5rem;
}
.page-product .product-related-band {
    border-radius: 0;
}

/* Orders detail page */
.page-orders .order-meta-grid {
    margin-bottom: 1.25rem;
}
.page-orders .order-meta-grid .meta-card {
    border-radius: 0;
    box-shadow: var(--shadow);
}
.page-orders .order-info-box {
    border-radius: 0;
    border-left: 3px solid var(--color-accent);
    margin-bottom: 1rem;
}
.page-orders .order-actions-bar {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.25rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-left: 3px solid var(--color-ink);
    box-shadow: var(--shadow);
    margin-top: 1.25rem;
}
.page-orders .order-actions-primary,
.page-orders .order-actions-secondary {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    align-items: center;
}
.page-orders .order-success-banner {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    padding: 1.25rem 1.5rem;
    border-radius: 0;
    border-left: 3px solid var(--color-accent);
}
.page-orders .order-success-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    background: rgba(47, 181, 210, .12);
    color: var(--color-accent);
    flex-shrink: 0;
}
.page-orders .order-success-icon svg {
    display: block;
}

/* Footer responsive improvements */
@media (max-width: 1100px) {
    .footer-grid {
        grid-template-columns: 1.2fr repeat(2, minmax(0, 1fr));
        gap: 1.5rem;
    }
}

@media (max-width: 768px) {
    .footer-cta-inner {
        grid-template-columns: 1fr;
        text-align: center;
    }
    .footer-cta-text p {
        margin: 0 auto;
    }
    .footer-cta-actions {
        justify-content: center;
        width: 100%;
    }
    .footer-cta-actions .btn {
        flex: 1;
        min-width: min(100%, 200px);
        text-align: center;
    }
    .footer-bottom {
        flex-direction: column;
        text-align: center;
    }
    .page-orders .order-actions-bar {
        flex-direction: column;
        align-items: stretch;
    }
    .page-orders .order-actions-primary .btn,
    .page-orders .order-actions-secondary .btn {
        width: 100%;
        text-align: center;
    }
    .page-product .product-page-footer-main {
        flex-direction: column;
        align-items: stretch;
    }
    .page-product .product-page-footer-main .btn {
        width: 100%;
        text-align: center;
    }
}

@media (max-width: 600px) {
    .footer-grid {
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }
}

/* ── Design consistency v25 — home pro, header, mega-menu, contact, catalog ── */

/* Home logged-in dashboard */
.has-client-panel.page-home .home-dashboard-pro.panel-card,
.page-home .home-dashboard-pro.panel-card {
    border-left: 3px solid var(--color-accent);
    border-radius: 0;
    box-shadow: var(--shadow);
    margin-bottom: 1.25rem;
    padding: clamp(1.25rem, 2.5vw, 1.75rem);
}
.has-client-panel.page-home .home-dashboard-pro::before,
.page-home .home-dashboard-pro::before {
    display: none;
}
.page-home .home-dashboard-shortcuts {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.page-home .home-shortcut-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-accent);
}
.page-home .home-shortcut-icon svg {
    display: block;
}
.page-home .home-shortcut-warn .home-shortcut-icon {
    color: #d97706;
}
.page-home .home-dashboard-actions {
    flex-wrap: wrap;
    gap: .5rem;
}
.page-home .home-recent-orders.panel-card {
    border-left: 3px solid var(--color-accent);
    border-radius: 0;
    margin-bottom: 1.25rem;
}
.page-home .home-stats-logged .home-stat-card {
    border-radius: 0;
}

/* Client nav bar */
.client-nav-shell {
    border-radius: 0;
}
.client-nav-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem 1rem;
    padding: .65rem 1rem;
    border-bottom: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
}
.client-nav-company strong {
    display: block;
    font-size: .92rem;
    color: var(--color-primary-dark);
}
.client-nav-label {
    display: block;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--color-muted);
    margin-bottom: .15rem;
}

/* Category mega-menu mobile */
@media (max-width: 768px) {
    .category-mega-panel {
        position: fixed;
        left: 0;
        right: 0;
        top: auto;
        bottom: 0;
        max-height: min(78vh, 520px);
        border-top: 3px solid var(--color-accent);
        border-radius: 0;
        box-shadow: 0 -8px 32px rgba(0, 0, 0, .18);
        z-index: 230;
    }
    .category-mega-panel-inner {
        padding: 1rem max(.85rem, env(safe-area-inset-right)) 1.25rem max(.85rem, env(safe-area-inset-left));
    }
    .category-mega-head {
        flex-direction: column;
        align-items: stretch;
        gap: .65rem;
    }
    .category-mega-head .btn {
        width: 100%;
        text-align: center;
    }
    .category-mega-grid {
        grid-template-columns: 1fr;
        gap: .85rem;
    }
    .category-nav-item {
        flex-shrink: 0;
    }
    .category-nav-link-accent {
        margin-left: 0;
        border-left: 0;
        border-top: 1px solid rgba(255, 255, 255, .1);
    }
}

/* Header tablet */
@media (min-width: 769px) and (max-width: 1100px) {
    .header-inner {
        gap: .65rem;
    }
    .header-search input {
        min-width: 0;
        width: 100%;
    }
    .nav .nav-link {
        font-size: .82rem;
        padding: .4rem .55rem;
    }
    .category-nav-inner {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .category-nav-item {
        flex-shrink: 0;
    }
}

/* Contact info icons */
.page-contact .contact-info-item {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    padding: .75rem 0;
    border-bottom: 1px solid var(--color-border);
}
.page-contact .contact-info-item:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}
.page-contact .contact-info-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    flex-shrink: 0;
    background: var(--color-surface-subtle);
    color: var(--color-accent);
}
.page-contact .contact-info-icon svg {
    display: block;
}
.page-contact .contact-info-body {
    min-width: 0;
    flex: 1;
}
.page-contact .contact-info-label {
    display: block;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--color-muted);
    margin-bottom: .2rem;
}
.page-contact .contact-info-value {
    font-size: .92rem;
    font-weight: 600;
    word-break: break-word;
}

/* Catalog page header & view toggle */
.page-catalog .catalog-page-header.panel-card {
    border-left: 3px solid var(--color-accent);
    border-radius: 0;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
    box-shadow: var(--shadow);
}
.page-catalog .catalog-page-header h1 {
    margin: 0 0 .35rem;
}
.page-catalog .view-toggle-icon {
    display: inline-flex;
    align-items: center;
    vertical-align: middle;
}
.page-catalog .view-toggle-icon svg {
    display: block;
}
.page-catalog .view-toggle-btn {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    border-radius: 0;
}
.page-catalog .view-toggle-btn.active .view-toggle-icon svg {
    stroke: #fff;
}

/* Client panel mobile bar consistency */
@media (max-width: 768px) {
    .client-panel-toggle {
        border-radius: 0;
        border-left: 3px solid var(--color-accent);
    }
    .client-panel-search input {
        border-radius: 0;
    }
    .client-panel-cart-pill {
        border-radius: 0;
    }
    .page-home .home-dashboard-shortcuts {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .page-home .home-dashboard-actions .btn {
        width: 100%;
        text-align: center;
    }
    .page-contact .contact-grid-v2 {
        grid-template-columns: 1fr;
    }
    .page-contact .contact-form-row {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 480px) {
    .page-home .home-dashboard-shortcuts {
        grid-template-columns: 1fr 1fr;
    }
}

/* ── Design consistency v26 — auth, about, product content ── */

/* Auth forms */
.page-auth .auth-form-register .auth-form-section {
    border: 1px solid var(--color-border);
    border-left: 3px solid var(--color-border);
    border-radius: 0;
    padding: 1.15rem 1.25rem 1.25rem;
    margin-bottom: 1rem;
    background: var(--color-surface);
    transition: border-color .2s ease;
}
.page-auth .auth-form-register .auth-form-section.is-current {
    border-left-color: var(--color-accent);
    box-shadow: var(--shadow);
}
.page-auth .auth-form-register .auth-form-section.is-done {
    border-left-color: var(--color-ink);
}
.page-auth .auth-form-register .auth-form-section legend {
    width: 100%;
    padding: 0 0 .75rem;
    margin-bottom: .85rem;
    border-bottom: 1px solid var(--color-border);
    font-family: var(--font-display);
    font-size: .92rem;
    font-weight: 700;
    color: var(--color-primary-dark);
}
.page-auth .auth-section-num {
    border-radius: 0;
    background: var(--color-surface-subtle);
}
.page-auth .auth-form-section.is-current .auth-section-num {
    background: rgba(47, 181, 210, .15);
    border-color: var(--color-accent);
    color: var(--color-ink);
}
.page-auth .auth-form-help {
    margin: .85rem 0 0;
    padding-top: .85rem;
    border-top: 1px solid var(--color-border);
    font-size: .88rem;
    text-align: center;
}
.page-auth .auth-form-help a {
    font-weight: 600;
}
.page-auth .auth-form-footer-register {
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--color-border);
    text-align: center;
}
.page-auth .auth-form-panel {
    background: var(--color-surface);
}
.page-auth .auth-field input {
    border-radius: 0;
}

@media (max-width: 900px) {
    .page-auth-gate .auth-layout-register,
    .page-auth-gate .auth-layout-login {
        grid-template-columns: 1fr;
    }
    .page-auth-gate .auth-visual-register,
    .page-auth-gate .auth-visual-login {
        min-height: 200px;
        max-height: 240px;
    }
    .page-auth-gate .auth-form-panel-register,
    .page-auth-gate .auth-form-panel-login {
        padding: 1.25rem 1rem 1.5rem;
        max-width: none;
    }
    .page-auth .auth-form-register .auth-form-actions {
        position: sticky;
        bottom: 0;
        z-index: 5;
        margin: 0 -1rem -1.5rem;
        padding: 1rem;
        background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, #fff 24%);
        border-top: 1px solid var(--color-border);
    }
    .page-auth .auth-form-register .auth-form-actions .auth-submit-btn {
        box-shadow: var(--shadow-lg);
    }
}

/* About page trust & platform */
.page-about .about-trust-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .45rem;
    padding: 1.1rem .75rem;
    border-radius: 0;
}
.page-about .about-trust-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    background: var(--color-surface-subtle);
    color: var(--color-accent);
}
.page-about .about-trust-icon svg {
    display: block;
}
.page-about .about-trust-item-accent .about-trust-icon {
    background: rgba(47, 181, 210, .12);
}
.page-about .about-platform-features li {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    padding: .85rem 0;
    border-left: 0;
    border-bottom: 1px solid var(--color-border);
}
.page-about .about-platform-features li:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}
.page-about .about-platform-feature-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    flex-shrink: 0;
    margin-top: .1rem;
    background: rgba(47, 181, 210, .1);
    color: var(--color-accent);
}
.page-about .about-platform-feature-icon svg {
    display: block;
}
.page-about .about-value-card.panel-card,
.page-about .about-expertise-card.panel-card,
.page-about .about-mission-visual.panel-card {
    border-radius: 0;
    border-left: 3px solid var(--color-accent);
}
.page-about .about-hero-intro.panel-card {
    border-radius: 0;
    border-left: 3px solid var(--color-accent);
}

/* Product content & reviews */
.page-product .product-content-panel.panel-card {
    border-radius: 0;
    border-left: 3px solid var(--color-accent);
    padding: 1.25rem 1.5rem;
    margin-top: 1.25rem;
    box-shadow: var(--shadow);
    border-bottom: 0;
}
.page-product .product-content-panel .product-section-head h2 {
    font-size: 1.1rem;
    margin: 0;
    padding-bottom: .5rem;
    border-bottom: 1px solid var(--color-border);
}
.page-product .product-feature-mark {
    display: inline-flex;
    align-items: center;
    color: var(--color-accent);
    flex-shrink: 0;
}
.page-product .product-feature-mark svg {
    display: block;
}
.page-product .product-features-list-compact li {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
}
.page-product .product-reviews.panel-card,
.page-product .product-reviews {
    border-radius: 0;
    border-left: 3px solid var(--color-ink);
    padding: 1.25rem 1.5rem;
    margin-top: 1.25rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-left: 3px solid var(--color-ink);
    box-shadow: var(--shadow);
}
.page-product .product-reviews-guest-cta {
    padding: 1rem 1.15rem;
    margin-bottom: 1rem;
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
    border-left: 3px solid var(--color-accent);
}
.page-product .product-reviews-guest-cta-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-top: .75rem;
}
.page-product .product-review-card {
    border-radius: 0;
    border-left: 3px solid var(--color-border);
}
.page-product .product-review-card:hover {
    border-left-color: var(--color-accent);
}

@media (min-width: 769px) and (max-width: 1100px) {
    .page-product .product-desc-layout.has-toc {
        grid-template-columns: minmax(160px, 200px) minmax(0, 1fr);
        gap: 1.25rem;
    }
    .page-product .product-grid-related {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 768px) {
    .page-product .product-content-panel.panel-card {
        padding: 1rem 1.1rem;
        margin-left: calc(50% - 50vw);
        margin-right: calc(50% - 50vw);
        width: auto;
        border-left: 0;
        border-right: 0;
    }
    .page-product .product-desc-layout.has-toc .product-desc-toc {
        position: static;
        max-height: none;
        overflow: visible;
        display: flex;
        flex-wrap: nowrap;
        gap: .35rem;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        padding-bottom: .35rem;
    }
    .page-product .product-desc-toc-list {
        flex-direction: row;
        gap: .35rem;
    }
    .page-product .product-desc-toc-item a {
        white-space: nowrap;
        padding: .4rem .65rem;
        border: 1px solid var(--color-border);
        border-bottom: 1px solid var(--color-border);
        font-size: .74rem;
    }
    .page-product .product-desc-toc-h3 a {
        padding-left: .65rem;
    }
    .page-product .product-reviews {
        padding: 1rem 1.1rem;
        margin-left: calc(50% - 50vw);
        margin-right: calc(50% - 50vw);
        border-left: 0;
        border-right: 0;
    }
    .page-product .product-reviews-guest-cta-actions {
        flex-direction: column;
    }
    .page-product .product-reviews-guest-cta-actions .btn {
        width: 100%;
        text-align: center;
    }
    .page-product .product-grid-related {
        grid-template-columns: repeat(2, minmax(140px, 1fr));
        min-width: min(100%, 320px);
    }
    .page-about .about-mission {
        gap: 1.25rem;
    }
}

@media (max-width: 480px) {
    .page-product .product-grid-related {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* ── Design consistency v27 — checkout, home guest, client pages ── */

/* Checkout steps */
.checkout-steps.panel-card {
    display: flex;
    padding: 0;
    margin-bottom: 1.25rem;
    border-radius: 0;
    border-left: 3px solid var(--color-accent);
    overflow: hidden;
}
.checkout-steps .checkout-step .step-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0;
}
.checkout-steps .checkout-step.is-done .step-num {
    background: var(--color-ink);
    border-color: var(--color-ink);
    color: #fff;
}
.checkout-steps .checkout-step.is-done .step-num svg {
    display: block;
}
.checkout-steps .checkout-step.is-active .step-num {
    background: var(--color-accent);
    border-color: var(--color-accent);
    color: var(--color-ink);
    font-weight: 700;
}

/* Home guest — features, steps, service, SEO */
.page-home .home-features .feature-card.panel-card {
    border-radius: 0;
    border-left: 3px solid var(--color-accent);
    padding: 1.25rem 1.35rem;
    box-shadow: var(--shadow);
}
.page-home .home-features .feature-icon {
    border-radius: 0;
    background: rgba(47, 181, 210, .1);
    color: var(--color-accent);
}
.page-home .home-steps .step-card.panel-card {
    position: relative;
    border-radius: 0;
    border-left: 3px solid var(--color-border);
    padding: 1.15rem 1.25rem 1.15rem 3.5rem;
    box-shadow: var(--shadow);
    transition: border-color .2s ease;
}
.page-home .home-steps .step-card.panel-card:hover {
    border-left-color: var(--color-accent);
}
.page-home .home-step-num {
    position: absolute;
    left: 1rem;
    top: 1.1rem;
    font-family: var(--font-display);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .04em;
    color: var(--color-accent);
}
.page-home .home-steps .step-card::before {
    display: none;
}
.page-home .home-service-copy.panel-card {
    border-radius: 0;
    border-left: 3px solid var(--color-accent);
    padding: 1.5rem 1.75rem;
    box-shadow: var(--shadow);
}
.page-home .home-seo.panel-card {
    border-radius: 0;
    border-left: 3px solid var(--color-ink);
    padding: 1.5rem 1.75rem;
    margin: 0 auto;
    max-width: var(--content-max, 1200px);
    box-shadow: var(--shadow);
}
.page-home .home-stat-card {
    border-radius: 0;
}
.page-home .contact-cta-band {
    margin-top: 0;
}

/* Client area pages — favorites, quick-order, orders, checkout */
.page-favorites .empty-state.panel-card,
.page-favorites .favorites-toolbar {
    border-radius: 0;
    border-left: 3px solid var(--color-accent);
}
.page-favorites .contact-cta-band,
.page-quick-order .contact-cta-band,
.page-orders .contact-cta-band,
.page-checkout .contact-cta-band {
    margin-top: 1.5rem;
}
.page-quick-order .quick-order-grid {
    gap: 1.25rem;
}
.page-quick-order .feature-panel.panel-card {
    border-radius: 0;
    border-left: 3px solid var(--color-accent);
}
.page-quick-order .preview-section.panel-card {
    border-radius: 0;
    border-left: 3px solid var(--color-ink);
}

/* Orders detail meta cards */
.page-orders .order-meta-grid .meta-card.panel-card {
    border-left: 3px solid var(--color-border);
}
.page-orders .order-meta-grid .meta-card-highlight.panel-card {
    border-left-color: var(--color-accent);
}
.page-orders .order-info-box.panel-card {
    padding: 1rem 1.25rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow);
}

/* Auth forgot/reset help link */
.page-auth .auth-page-forgot .auth-form-help,
.page-auth .auth-page-reset .auth-form-help {
    margin-top: 1rem;
}

@media (max-width: 991px) {
    .page-home .home-service {
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }
    .page-home .home-service-copy.panel-card {
        order: 1;
    }
    .page-home .home-service-visual {
        order: 0;
    }
    .page-home .home-steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .checkout-steps.panel-card {
        flex-direction: column;
    }
    .checkout-steps .checkout-step {
        border-right: 0;
        border-bottom: 1px solid var(--color-border);
    }
    .checkout-steps .checkout-step:last-child {
        border-bottom: 0;
    }
}

@media (max-width: 768px) {
    .page-home .home-features .feature-card.panel-card,
    .page-home .home-service-copy.panel-card,
    .page-home .home-seo.panel-card {
        margin-left: calc(50% - 50vw);
        margin-right: calc(50% - 50vw);
        border-left: 0;
        border-right: 0;
    }
    .page-home .home-steps {
        grid-template-columns: 1fr;
    }
    .page-home .home-steps .step-card.panel-card {
        margin-left: 0;
        margin-right: 0;
    }
    .page-quick-order .quick-order-grid {
        grid-template-columns: 1fr;
    }
    .page-orders .order-meta-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 480px) {
    .page-orders .order-meta-grid {
        grid-template-columns: 1fr;
    }
}

/* ── Product UX v28 — fiche produit (galerie, invité, mobile) ── */

/* Fil d'Ariane & hero */
.page-product .product-breadcrumb-current {
    max-width: min(36vw, 280px);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: inline-block;
    vertical-align: bottom;
}
.page-product .product-hero-kicker {
    margin-bottom: .5rem;
}
.page-product .product-hero:not(.has-image) .product-hero-guest-pill {
    background: rgba(47, 181, 210, .12);
    border-color: rgba(47, 181, 210, .35);
    color: var(--color-ink);
}

/* Galerie — image unique (packshots fond blanc) */
.page-product .product-gallery-slim.is-single .product-gallery-frame {
    min-height: clamp(280px, 42vw, 480px);
    padding: clamp(1rem, 3vw, 2rem);
    background: linear-gradient(180deg, #fafcfc 0%, #f4f7f8 100%);
    display: flex;
    align-items: center;
    justify-content: center;
}
.page-product .product-gallery-slim.is-single .product-gallery-zoom {
    max-width: min(100%, 520px);
    margin: 0 auto;
}
.page-product .product-gallery-slim.is-single .product-image {
    max-height: clamp(240px, 38vw, 440px);
    width: auto;
    max-width: 100%;
    margin: 0 auto;
    object-fit: contain;
}
.page-product .product-gallery-tap-hint {
    display: none;
    position: absolute;
    left: 50%;
    bottom: .65rem;
    transform: translateX(-50%);
    padding: .3rem .65rem;
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .03em;
    color: #fff;
    background: rgba(0, 0, 0, .62);
    white-space: nowrap;
    pointer-events: none;
}
.page-product .product-gallery-zoom-icon {
    border-radius: 0;
    opacity: 1;
}
@media (hover: none) and (pointer: coarse) {
    .page-product .product-gallery-tap-hint {
        display: block;
    }
    .page-product .product-gallery-zoom-icon {
        opacity: 1;
    }
}

/* Lead invité */
.page-product .product-guest-lead {
    padding: .85rem 1rem;
    border-radius: 0;
    border: 1px solid var(--color-border);
    border-left: 3px solid var(--color-accent);
    background: var(--color-surface-subtle);
    box-shadow: var(--shadow);
}
.page-product .product-guest-lead p {
    margin: 0;
    font-size: .86rem;
    line-height: 1.55;
    color: var(--color-text);
}

/* Buybox invité — conversion */
.page-product .product-guest-cta {
    border-top-color: var(--color-accent);
}
.page-product .product-guest-benefits {
    margin: 0 0 .85rem;
    padding: 0;
    list-style: none;
    display: grid;
    gap: .5rem;
}
.page-product .product-guest-benefits li {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    font-size: .82rem;
    line-height: 1.45;
    color: var(--color-text);
}
.page-product .product-guest-benefits li::before {
    display: none;
}
.page-product .product-guest-benefit-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.35rem;
    height: 1.35rem;
    flex-shrink: 0;
    margin-top: .05rem;
    background: rgba(47, 181, 210, .12);
    color: var(--color-accent);
}
.page-product .product-guest-benefit-icon svg {
    display: block;
}
.page-product .product-guest-trust-pills {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem .55rem;
    padding-top: .75rem;
    border-top: 1px dashed var(--color-border);
}
.page-product .product-guest-trust-pill {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    font-size: .72rem;
    color: var(--color-muted);
}
.page-product .product-guest-trust-pill svg {
    display: block;
    color: var(--color-accent);
    flex-shrink: 0;
}

/* Boutons copier (icône) */
.page-product .product-copy-btn-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    padding: 0;
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    color: var(--color-muted);
    cursor: pointer;
    transition: border-color .15s ease, color .15s ease, background .15s ease;
}
.page-product .product-copy-btn-icon:hover {
    border-color: var(--color-accent);
    color: var(--color-accent);
}
.page-product .product-copy-btn-icon.is-copied {
    border-color: var(--color-accent);
    background: rgba(47, 181, 210, .12);
    color: var(--color-accent);
}

/* Outils invité — scroll horizontal mobile */
.page-product .product-guest-tools-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
}
@media (max-width: 600px) {
    .page-product .product-guest-tools-inner {
        overflow: hidden;
    }
    .page-product .product-guest-tools-actions {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        padding-bottom: .25rem;
        scrollbar-width: none;
    }
    .page-product .product-guest-tools-actions::-webkit-scrollbar {
        display: none;
    }
    .page-product .product-guest-tool-btn {
        flex: 0 0 auto;
        white-space: nowrap;
    }
}

/* Description — images produit responsives */
.page-product .product-description.prose img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: .75rem auto;
    object-fit: contain;
}
.page-product .product-description.prose table {
    display: block;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

/* Mobile — ordre UX : galerie → CTA → nav → contenu */
@media (max-width: 768px) {
    .page-product .product-hero-media-skip {
        display: none;
    }
    .page-product .product-breadcrumb-current {
        max-width: min(52vw, 200px);
    }
    .page-product .product-aside-col {
        display: flex;
        flex-direction: column;
    }
    .page-product .product-guest-lead {
        order: -2;
        margin-left: calc(50% - 50vw);
        margin-right: calc(50% - 50vw);
        border-left: 0;
        border-right: 0;
    }
    .page-product .product-aside-col .product-buybox-col {
        order: -1;
    }
    .page-product .product-aside-col .product-hero-subnav {
        order: 0;
    }
    .page-product .product-gallery-slim.is-single {
        margin-left: calc(50% - 50vw);
        margin-right: calc(50% - 50vw);
        border-left: 0;
        border-right: 0;
    }
    .page-product .product-gallery-slim.is-single .product-gallery-frame {
        min-height: clamp(260px, 58vw, 360px);
    }
    .page-product .product-gallery-slim.is-single .product-image {
        max-height: clamp(220px, 52vw, 320px);
    }
    .page-product .product-mobile-cta-guest {
        flex: 1;
        min-width: 0;
    }
    .page-product .product-mobile-cta-guest .product-mobile-cta-info {
        flex: 1 1 100%;
        min-width: 0;
    }
    .page-product .product-mobile-cta-actions {
        flex: 1 1 100%;
        display: flex;
        flex-wrap: wrap;
        gap: .35rem;
    }
    .page-product .product-mobile-cta-actions .btn {
        flex: 1 1 calc(50% - .2rem);
        min-height: 2.5rem;
        justify-content: center;
        text-align: center;
    }
    .page-product .product-mobile-cta-actions .btn-primary {
        flex: 1 1 100%;
    }
}

@media (min-width: 769px) and (max-width: 1100px) {
    .page-product .product-detail-grid,
    .page-product .product-detail-grid-guest {
        grid-template-columns: minmax(0, 1fr) minmax(260px, .9fr);
        gap: 1.5rem;
    }
    .page-product .product-gallery-slim.is-single .product-gallery-frame {
        min-height: clamp(260px, 36vw, 400px);
    }
}

/* ── Design consistency v29 — catalog mobile, product, pages client ── */

/* Catalog — drawer catégories + invité */
.page-catalog .catalog-controls .catalog-sidebar-toggle {
    cursor: pointer;
}
.page-catalog .catalog-controls .catalog-sidebar-toggle:hover {
    background: var(--color-surface);
}
.page-catalog .catalog-empty.panel-card {
    border-radius: 0;
    border-left: 3px solid var(--color-accent);
    padding: 2rem 1.5rem;
    text-align: center;
}
.page-catalog .catalog-empty-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 4rem;
    height: 4rem;
    margin-bottom: 1rem;
    background: rgba(47, 181, 210, .1);
    color: var(--color-accent);
}
.page-catalog .catalog-empty-icon svg {
    display: block;
}
.page-catalog .seo-content.panel-card {
    border-radius: 0;
    border-left: 3px solid var(--color-ink);
    padding: 1.5rem 1.75rem;
    margin-top: 1.5rem;
    box-shadow: var(--shadow);
}
.page-catalog .contact-cta-band {
    margin-top: 1.25rem;
}
.page-catalog .catalog-hero-guest.panel-card {
    border-radius: 0;
    border-left: 3px solid var(--color-accent);
}

/* Product — facts, tools, reviews, related */
.page-product .product-facts-bar-pro.panel-card,
.page-product .product-guest-tools-pro.panel-card {
    border-radius: 0;
    border-left: 3px solid var(--color-ink);
    padding: 1rem 1.15rem;
    margin-top: 1.25rem;
    box-shadow: var(--shadow);
}
.page-product .product-guest-tools-chips {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin-bottom: .75rem;
}
.page-product .product-reviews.panel-card {
    border-left-color: var(--color-ink);
    padding: 1.25rem 1.5rem;
    margin-top: 1.5rem;
}
.page-product .product-reviews-score {
    color: var(--color-accent);
}
.page-product .product-star.is-filled {
    color: var(--color-accent);
}
.page-product .product-hero.has-image .product-star.is-filled {
    color: #fff;
}
.page-product .product-reviews-bar-fill {
    background: var(--color-accent);
}
.page-product .product-features-list-compact {
    display: grid;
    gap: 0;
}
@media (min-width: 600px) {
    .page-product .product-features-list-compact {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: 1.25rem;
    }
    .page-product .product-features-list-compact li:nth-last-child(-n+2) {
        border-bottom: 0;
    }
}
.page-product .product-related.panel-card {
    border-radius: 0;
    border-left: 3px solid var(--color-accent);
    padding: 1.25rem 1.5rem;
    margin-top: 1.5rem;
    overflow: hidden;
}
.page-product .product-related-scroll {
    position: relative;
}
.page-product .product-related-scroll::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 2.5rem;
    background: linear-gradient(90deg, transparent, var(--color-surface));
    pointer-events: none;
}

/* Cart, account, about */
.page-cart .contact-cta-band,
.page-account .contact-cta-band,
.page-about .contact-cta-band {
    margin-top: 1.5rem;
}

@media (max-width: 992px) {
    .page-catalog .catalog-sidebar {
        z-index: 120;
    }
    .page-catalog .catalog-sidebar-backdrop:not([hidden]) {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 110;
        background: rgba(15, 23, 42, .45);
    }
    .page-catalog .catalog-controls .catalog-toolbar-row {
        gap: .65rem;
    }
    .page-catalog .catalog-controls .catalog-display-controls {
        flex-wrap: wrap;
        gap: .5rem;
    }
}

@media (max-width: 768px) {
    .page-catalog .catalog-empty.panel-card,
    .page-catalog .seo-content.panel-card {
        margin-left: calc(50% - 50vw);
        margin-right: calc(50% - 50vw);
        border-left: 0;
        border-right: 0;
    }
    .page-product .product-facts-bar-pro.panel-card,
    .page-product .product-guest-tools-pro.panel-card,
    .page-product .product-reviews.panel-card,
    .page-product .product-related.panel-card {
        margin-left: calc(50% - 50vw);
        margin-right: calc(50% - 50vw);
        border-left: 0;
        border-right: 0;
        padding-left: 1.1rem;
        padding-right: 1.1rem;
    }
    .page-product .product-features-list-compact {
        grid-template-columns: 1fr;
    }
    .page-product .product-reviews-layout {
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }
    .page-product .product-reviews-side {
        padding-bottom: 1rem;
        border-bottom: 1px solid var(--color-border);
    }
}

/* ── Product UX v30 — fiche épurée, sans bordures latérales ── */

/* Rythme vertical : espacement entre sections, une seule ligne de séparation */
.page-product .product-page {
    --product-section-gap: clamp(1.75rem, 3vw, 2.5rem);
}
.page-product .product-section-divider {
    margin-top: var(--product-section-gap);
    padding-top: var(--product-section-gap);
    border-top: 1px solid var(--color-border);
}
.page-product .product-facts-bar,
.page-product .product-guest-tools,
.page-product .product-content-shell,
.page-product .product-reviews,
.page-product .product-related-band,
.page-product .product-page-footer {
    margin-top: var(--product-section-gap);
    padding-top: 0;
    border-top: 0;
}

/* Supprimer bordures latérales, cadres et full-bleed */
.page-product .product-gallery-slim,
.page-product .product-buybox-card,
.page-product .product-guest-cta,
.page-product .product-facts-bar,
.page-product .product-guest-tools,
.page-product .product-content-shell,
.page-product .product-reviews,
.page-product .product-related-band,
.page-product .product-page-footer,
.page-product .panel-card {
    border: 0;
    border-left: 0;
    border-right: 0;
    box-shadow: none;
    background: transparent;
}
.page-product .product-gallery-slim.is-single,
.page-product .product-content-panel.panel-card,
.page-product .product-facts-bar-pro.panel-card,
.page-product .product-guest-tools-pro.panel-card,
.page-product .product-reviews.panel-card,
.page-product .product-related.panel-card,
.page-product .product-page-footer.panel-card,
.page-product .product-guest-lead.panel-card {
    margin-left: 0;
    margin-right: 0;
    border-left: 0;
    border-right: 0;
}
.page-product .product-detail-grid-guest .product-buybox-col {
    border-left: 0;
    padding-left: 0;
    margin-left: 0;
}

/* Galerie — fond doux, sans cadre */
.page-product .product-gallery-slim {
    padding: 0;
}
.page-product .product-gallery-slim.is-single .product-gallery-frame {
    background: #f6f8f9;
    border-radius: 0;
}
.page-product .product-gallery-slim.has-thumbs-side .product-gallery-count-inline {
    background: transparent;
    border-bottom: 0;
    padding-left: 0;
    padding-right: 0;
}
.page-product .product-gallery-slim.has-thumbs-side .product-gallery-thumbs {
    border-right: 0;
    background: transparent;
    padding-left: 0;
}

/* Buybox invité */
.page-product .product-buybox-lead {
    margin: 0 0 .85rem;
    font-size: .88rem;
    line-height: 1.55;
    color: var(--color-text);
}
.page-product .product-buybox-card {
    padding: 0;
}
.page-product .product-meta-chip {
    border: 0;
    background: transparent;
    padding: 0;
    font-size: .8rem;
    color: var(--color-muted);
}
.page-product .product-meta-chip strong {
    color: var(--color-text);
}
.page-product .product-buybox-meta-chips {
    gap: .35rem .85rem;
    margin-bottom: 1rem;
}
.page-product .product-buybox-social {
    margin-bottom: 1rem;
    padding-bottom: 0;
    border-bottom: 0;
}
.page-product .product-buybox-review-snippet {
    padding: 0;
    border: 0;
    background: transparent;
}
.page-product .product-guest-cta {
    padding: 0;
    margin-top: 0;
}
.page-product .product-guest-cta-title {
    margin: 0 0 .35rem;
    font-size: 1rem;
}
.page-product .product-guest-cta-text {
    margin: 0 0 1rem;
    font-size: .84rem;
    color: var(--color-muted);
}
.page-product .product-guest-cta-actions {
    gap: .5rem;
}
.page-product .product-help-inline {
    border-top: 0;
    padding-top: .75rem;
    margin-top: .75rem;
}

/* Subnav — onglets légers, sans barre de progression */
.page-product .product-subnav-progress {
    display: none;
}
.page-product .product-aside-col .product-hero-subnav {
    border-top: 0;
    padding-top: 0;
}
.page-product .product-hero-subnav.is-stuck {
    border-bottom: 1px solid var(--color-border);
    box-shadow: none;
}

/* Barre specs / outils invité */
.page-product .product-facts-bar {
    padding: 0;
    background: transparent;
}
.page-product .product-facts-list {
    gap: .5rem .85rem;
}
.page-product .product-fact {
    padding: 0;
    border: 0;
    background: transparent;
}
.page-product .product-guest-tools {
    padding: 0;
}
.page-product .product-guest-tools-inner {
    padding: 0;
    border: 0;
    background: transparent;
}
.page-product .product-guest-tool-btn {
    border-color: var(--color-border);
    background: var(--color-surface);
}

/* Contenu — titres sans ligne sous le H2 */
.page-product .product-content-shell {
    padding: 0;
}
.page-product .product-section-head h2 {
    border-bottom: 0;
    padding-bottom: 0;
    margin-bottom: .65rem;
}
.page-product .product-content-notice-short {
    border: 0;
    border-left: 0;
    background: transparent;
    padding: 0;
    margin-bottom: .75rem;
}
.page-product .product-content-notice-short::before {
    display: none;
}
.page-product .product-features-list-compact li {
    border-bottom: 0;
    padding: .35rem 0;
}
.page-product .product-desc-toc {
    border: 0;
    background: transparent;
    padding: 0;
}
.page-product .product-desc-toc-item a {
    border: 0;
    border-bottom: 2px solid transparent;
    padding: .35rem .5rem;
}
.page-product .product-desc-toc-item a.is-active {
    border-bottom-color: var(--color-accent);
    background: transparent;
}

/* Avis */
.page-product .product-reviews {
    padding: 0;
    background: transparent;
}
.page-product .product-reviews-guest-cta {
    border: 0;
    border-left: 0;
    background: transparent;
    padding: 0 0 1rem;
    margin-bottom: 1rem;
}
.page-product .product-review-card {
    border: 0;
    border-left: 0;
    padding: 1rem 0;
    border-bottom: 1px solid var(--color-border);
    background: transparent;
    box-shadow: none;
}
.page-product .product-review-card:last-child {
    border-bottom: 0;
}
.page-product .product-reviews-side {
    border-bottom: 0;
    padding-bottom: 0;
}

/* Similaires & pied */
.page-product .product-related-band {
    padding: 0;
}
.page-product .product-related-inner {
    padding: 0;
}
.page-product .product-page-footer {
    padding: 0;
    margin-top: var(--product-section-gap);
}

@media (max-width: 768px) {
    .page-product .product-gallery-slim.is-single,
    .page-product .product-guest-lead,
    .page-product .product-content-shell,
    .page-product .product-facts-bar,
    .page-product .product-guest-tools,
    .page-product .product-reviews,
    .page-product .product-related-band {
        margin-left: 0;
        margin-right: 0;
    }
    .page-product .product-aside-col .product-hero-subnav {
        margin-left: 0;
        margin-right: 0;
        padding-left: 0;
        padding-right: 0;
        border-top: 0;
    }
    .page-product .product-guest-lead {
        order: unset;
    }
    .page-product .product-features-list-compact {
        grid-template-columns: 1fr;
    }
}

/* ── Product UX v31 — sans lignes, sans bordures latérales (override final) ── */

.page-product .product-facts-bar,
.page-product .product-guest-tools,
.page-product .product-content-shell,
.page-product .product-reviews,
.page-product .product-related-band,
.page-product .product-page-footer,
.page-product .product-content-shell.product-detail-body {
    border-top: 0 !important;
    border-bottom: 0 !important;
    margin-top: clamp(2rem, 4vw, 3rem);
    padding-top: 0;
}

.page-product .product-header {
    border-bottom: 0 !important;
    margin-bottom: 1rem;
}

.page-product .product-gallery-slim,
.page-product .product-buybox-card,
.page-product .product-guest-cta,
.page-product .product-facts-bar,
.page-product .product-overview-panel .panel-card {
    border: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}

.page-product .product-gallery-slim.is-single .product-gallery-frame,
.page-product .product-gallery-frame {
    background: transparent !important;
    padding: 0;
}

.page-product .product-aside-col .product-hero-subnav,
.page-product .product-hero-subnav.is-stuck {
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    border-top: 0 !important;
    border-bottom: 0 !important;
    box-shadow: none !important;
}

.page-product .product-aside-col .product-hero-subnav .product-subnav-link,
.page-product .product-aside-col .product-hero-subnav .product-subnav-link.is-active,
.page-product .product-hero-subnav.is-stuck .product-subnav-link,
.page-product .product-hero-subnav.is-stuck .product-subnav-link.is-active {
    border: 0 !important;
    border-bottom: 0 !important;
    padding: .4rem .55rem;
}
.page-product .product-aside-col .product-hero-subnav .product-subnav-link.is-active,
.page-product .product-hero-subnav.is-stuck .product-subnav-link.is-active {
    color: var(--color-accent);
    font-weight: 700;
}

.page-product .product-hero-guest-hint {
    margin: .5rem 0 0;
    max-width: 42rem;
    font-size: .86rem;
    line-height: 1.5;
    color: var(--color-muted);
}
.page-product .product-hero.has-image .product-hero-guest-hint {
    color: rgba(255, 255, 255, .82);
}

.page-product .product-buybox-utils {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem .85rem;
    margin-top: .85rem;
    padding-top: 0;
    border-top: 0;
}
.page-product .product-utils-link {
    border: 0;
    background: none;
    padding: 0;
    font-size: .78rem;
    font-weight: 600;
    color: var(--color-muted);
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
}
.page-product .product-utils-link:hover,
.page-product .product-utils-link.is-copied {
    color: var(--color-accent);
}
.page-product a.product-utils-link {
    text-decoration: underline;
}

.page-product .product-review-card {
    border-bottom: 0 !important;
    padding: .85rem 0;
}
.page-product .product-reviews {
    border-bottom: 0 !important;
}

.page-product .product-features-section + .product-desc-section {
    margin-top: 1.5rem;
    padding-top: 0;
    border-top: 0;
}

.page-product .product-desc-toggle {
    border: 0;
    background: none;
    padding: .5rem 0 0;
    font-size: .82rem;
    font-weight: 600;
    color: var(--color-accent);
    text-decoration: underline;
    cursor: pointer;
}

.page-product .product-page-footer {
    margin-top: clamp(2rem, 4vw, 3rem);
    padding-top: 0;
}

@media (max-width: 768px) {
    .page-product .product-gallery-slim.is-single {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    .page-product .product-aside-col .product-hero-subnav {
        margin-top: .75rem;
    }
}

/* ── Product UX v32 — fiche sans cadres ni lignes (override définitif) ── */

.page-product .product-overview-shell,
.page-product .product-overview-panel,
.page-product .product-overview-panel .product-detail-grid {
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    padding-left: 0;
    padding-right: 0;
}

.page-product .product-page-clean .product-section-head,
.page-product .product-page-clean .product-section-head h2 {
    border: 0 !important;
    border-bottom: 0 !important;
}
.page-product .product-page-clean .product-section-head h2::before {
    display: none;
}

.page-product .product-buybox-meta-line {
    margin: 0 0 1rem;
    font-size: .8rem;
    line-height: 1.5;
    color: var(--color-muted);
}
.page-product .product-buybox-meta-line strong {
    color: var(--color-text);
    font-family: ui-monospace, monospace;
    font-weight: 600;
}
.page-product .product-buybox-meta-line a {
    color: var(--color-muted);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.page-product .product-buybox-meta-line a:hover {
    color: var(--color-accent);
}
.page-product .product-meta-sep {
    margin: 0 .25rem;
    opacity: .45;
}

.page-product .product-buybox-review-snippet,
.page-product .product-buybox-review-snippet p {
    border: 0 !important;
    border-left: 0 !important;
    background: transparent !important;
    padding: 0;
}

.page-product .product-reviews,
.page-product .product-reviews.panel-card,
.page-product .product-content-shell,
.page-product .product-related-band {
    border: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
    border-top: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.page-product .product-review-card,
.page-product .product-review-card:hover {
    border: 0 !important;
    border-left: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.page-product .product-reviews-side {
    border-bottom: 0 !important;
    padding-bottom: 0 !important;
}

.page-product .product-reviews-guest-cta {
    display: none !important;
}

.page-product .product-hero-subnav.is-stuck {
    border-bottom: 0 !important;
    box-shadow: none !important;
}

.page-product .product-aside-col .product-hero-subnav .product-subnav-link {
    border-bottom: 0 !important;
}

.page-product .product-features-merged {
    margin-bottom: 0;
}
.page-product .product-features-merged .product-features-list-compact {
    margin-bottom: 1rem;
}

.page-product .product-related-head .section-label {
    display: none;
}

.page-product .product-reviews-side {
    border: 0 !important;
    background: transparent !important;
    padding: 0 !important;
}

.page-product .product-reviews-head,
.page-product .product-related-head {
    border-bottom: 0 !important;
    padding-bottom: 0;
    margin-bottom: .75rem;
}

.page-product .product-desc-toc-item a,
.page-product .product-desc-toc-item a:hover,
.page-product .product-desc-toc-item a.is-active,
.page-product .product-desc-toc-h3 a.is-active {
    border: 0 !important;
    border-left: 0 !important;
    border-bottom: 0 !important;
    background: transparent !important;
    padding: .35rem 0 !important;
    padding-left: 0 !important;
}
.page-product .product-desc-toc-item a.is-active,
.page-product .product-desc-toc-h3 a.is-active {
    color: var(--color-accent) !important;
    font-weight: 700;
}

.page-product .product-desc-toc-item:last-child a {
    padding-bottom: 0;
}

.page-product .product-desc-layout.has-toc .product-desc-sidebar {
    border: 0 !important;
    border-right: 0 !important;
    border-bottom: 0 !important;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
}

.page-product .product-features-inline {
    border-top: 0 !important;
    margin-top: 0;
    padding-top: 0;
}

.page-product .product-reviews-list .product-review-card + .product-review-card {
    margin-top: .5rem;
    padding-top: .85rem;
    border-top: 0 !important;
}

.page-product .product-gallery-slim.has-thumbs-side .product-gallery-thumb {
    border-color: transparent;
    background: transparent;
}
.page-product .product-gallery-slim.has-thumbs-side .product-gallery-thumb.is-active {
    border-color: var(--color-accent);
    box-shadow: none;
}

/* ── Product UX v33 — subnav sin flotar al scroll ── */

.page-product .product-hero-subnav,
.page-product .product-hero-subnav.is-stuck,
.page-product .product-aside-col .product-hero-subnav,
.page-product .product-aside-col .product-hero-subnav.is-stuck,
.page-product .product-header .product-hero-subnav,
.page-product .product-header .product-hero-subnav.is-stuck {
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    z-index: auto !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-bottom: 0 !important;
    box-shadow: none !important;
}

.page-product .product-hero-subnav.is-stuck .product-subnav-track,
.page-product .product-header .product-hero-subnav.is-stuck .product-subnav-track {
    max-width: none !important;
    margin: 0 !important;
}

/* ── Product UX v34 — menos líneas y sin bordes laterales ── */

.page-product .product-gallery-slim.has-thumbs-side .product-gallery-thumbs {
    border-right: 0 !important;
    background: transparent !important;
    padding: 0 .5rem 0 0 !important;
}

.page-product .product-gallery-slim.has-thumbs-side .product-gallery-thumb,
.page-product .product-gallery-slim.has-thumbs-side .product-gallery-thumb.is-active {
    border: 0 !important;
    box-shadow: none !important;
    padding: 0;
    opacity: .55;
    background: transparent !important;
}
.page-product .product-gallery-slim.has-thumbs-side .product-gallery-thumb.is-active {
    opacity: 1;
    outline: 2px solid var(--color-accent);
    outline-offset: 1px;
}

.page-product .product-desc-section .prose h2 {
    border-top: 0 !important;
    padding-top: 0 !important;
    margin-top: 1.75rem !important;
}
.page-product .product-desc-section .prose h2:first-of-type {
    margin-top: 0 !important;
}

.page-product .product-related-band {
    border-top: 0 !important;
    border-bottom: 0 !important;
    padding-top: 0 !important;
}

.page-product .product-grid-related .product-card,
.page-product .product-grid-related .product-card:hover {
    border: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}

.page-product .product-guest-cta-actions {
    margin-bottom: .5rem;
}
.page-product .product-guest-cta-links {
    margin: 0 0 .85rem;
    font-size: .82rem;
    line-height: 1.5;
    color: var(--color-muted);
    text-align: center;
}
.page-product .product-guest-cta-links a {
    color: var(--color-muted);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.page-product .product-guest-cta-links a:hover {
    color: var(--color-accent);
}

.page-product .product-mobile-cta,
.page-product .product-scroll-bar {
    border-top: 0 !important;
    box-shadow: 0 -4px 20px rgba(15, 23, 42, .06) !important;
}

.page-product .product-reviews-bar-track {
    background: rgba(15, 23, 42, .08) !important;
}

.page-product .product-buybox-social {
    margin-bottom: .85rem;
}
.page-product .product-buybox-review-snippet cite {
    display: block;
    margin-top: .25rem;
    font-size: .76rem;
    font-style: normal;
    color: var(--color-muted);
}

/* ── Product UX v35 — fiche épurée, zéro colonnes bordées ── */

.page-product .product-desc-layout.has-toc .product-desc-sidebar-guest {
    display: none !important;
}

.page-product .product-desc-toc-inline {
    margin: 0 0 1.25rem;
    padding: 0;
}
.page-product .product-desc-toc-inline .product-desc-toc-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.page-product .product-desc-toc-inline .product-desc-toc-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}
.page-product .product-desc-toc-inline .product-desc-toc-item a {
    padding: .3rem 0 !important;
    font-size: .82rem;
}

.page-product .product-features-list-compact li {
    border-bottom: 0 !important;
    padding: .3rem 0;
}

.page-product .product-gallery-slim.has-thumbs-side .product-gallery-thumb.is-active {
    outline: none !important;
    opacity: 1;
    filter: none;
}
.page-product .product-gallery-slim.has-thumbs-side .product-gallery-thumb:not(.is-active) {
    opacity: .45;
}

.page-product .product-page-clean .product-guest-cta .btn-primary {
    border: 0 !important;
}

.page-product .product-page-clean .product-reviews-layout {
    grid-template-columns: 1fr;
    gap: 1rem;
}
.page-product .product-page-clean .product-reviews-side {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem 1.25rem;
}
.page-product .product-page-clean .product-reviews-bars {
    flex: 1 1 12rem;
    min-width: 10rem;
    max-width: 16rem;
}
.page-product .product-page-clean .product-reviews-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.page-product .product-page-clean .product-related-cta {
    border: 0 !important;
    background: transparent !important;
    text-decoration: underline;
    text-underline-offset: 2px;
    padding: 0;
}

.page-product .product-page-clean .product-desc-toggle,
.page-product .product-page-clean .product-utils-link {
    text-decoration: underline;
    text-underline-offset: 2px;
}

.page-product .product-page-clean .product-buybox-rating-link {
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* ── Product UX v36 — fiche fluide, sin cajas ni líneas residuales ── */

.site-body.page-product .main.container.page-content {
    width: min(1440px, 96%);
}

.page-product .product-detail-grid-guest .product-aside-col {
    position: static !important;
    top: auto !important;
}

.page-product .product-buybox-rating {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem .55rem;
    margin-bottom: .85rem;
    font-size: .82rem;
}

.page-product .product-buybox-utils-line {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: .25rem .45rem;
    margin: 0;
    font-size: .78rem;
    color: var(--color-muted);
}

.page-product .product-desc-toc-inline .product-desc-toc-list {
    flex-direction: row;
    flex-wrap: wrap;
    gap: .35rem .75rem;
}
.page-product .product-desc-toc-inline .product-desc-toc-item a {
    padding: 0 !important;
    font-size: .8rem;
    color: var(--color-muted);
}
.page-product .product-desc-toc-inline .product-desc-toc-item a.is-active {
    color: var(--color-accent) !important;
    font-weight: 600;
}

.page-product .product-page-clean .product-reviews-bars {
    display: none;
}

.page-product .product-page-clean .product-grid-related .product-card-media {
    border-bottom: 0 !important;
    background: transparent !important;
}
.page-product .product-page-clean .product-grid-related .product-card-body {
    padding: .65rem 0 0 !important;
}
.page-product .product-page-clean .product-grid-related .product-card-body .stock {
    display: none;
}
.page-product .product-page-clean .product-grid-related .product-card-body h3 {
    min-height: 0;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    font-size: .86rem;
}
.page-product .product-page-clean .product-grid-related .product-card-action {
    display: none;
}
.page-product .product-page-clean .product-grid-related .price-locked {
    font-style: normal;
    font-size: .78rem;
}

.page-product .product-content-shell,
.page-product .product-reviews,
.page-product .product-related-band {
    margin-top: clamp(2.5rem, 5vw, 3.5rem) !important;
}

.page-product .product-description-fade {
    background: linear-gradient(to bottom, transparent, #fff);
}

/* ── Product UX v37 — sin bordes laterales ni líneas superfluas ── */

.site-body.page-product .main.container.page-content {
    width: min(1520px, 98%);
}

.page-product .product-page-clean .product-gallery.has-thumbs-side .product-gallery-body,
.page-product .product-page-clean .product-gallery-slim.has-thumbs-side .product-gallery-body {
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: none !important;
    gap: .65rem;
}
.page-product .product-page-clean .product-gallery-slim.has-thumbs-side .product-gallery-thumbs {
    flex-direction: row !important;
    flex-wrap: wrap;
    order: 2;
    max-height: none;
    overflow: visible;
    border: 0 !important;
    padding: .5rem 0 0 !important;
    background: transparent !important;
}
.page-product .product-page-clean .product-gallery-slim.has-thumbs-side .product-gallery-frame {
    order: 1;
}
.page-product .product-page-clean .product-overview-panel .product-detail-grid {
    padding: 0 !important;
}

.page-product .product-page-clean .product-gallery-thumb {
    border: 0 !important;
    padding: 0;
    background: transparent;
    opacity: .4;
    transition: opacity .15s ease;
    outline: none !important;
}
.page-product .product-page-clean .product-gallery-thumb:hover,
.page-product .product-page-clean .product-gallery-thumb.is-active {
    opacity: 1;
    outline: none;
    box-shadow: none;
}

.page-product .product-page-clean .product-buybox-meta-line a,
.page-product .product-page-clean .product-utils-link,
.page-product .product-page-clean .product-buybox-rating-link,
.page-product .product-page-clean .product-guest-cta-links a,
.page-product .product-page-clean .product-buybox-footer-line a,
.page-product .product-page-clean .product-desc-toggle,
.page-product .product-page-clean .product-related-cta {
    text-decoration: none;
}
.page-product .product-page-clean .product-buybox-meta-line a:hover,
.page-product .product-page-clean .product-utils-link:hover,
.page-product .product-page-clean .product-buybox-rating-link:hover,
.page-product .product-page-clean .product-guest-cta-links a:hover,
.page-product .product-page-clean .product-buybox-footer-line a:hover,
.page-product .product-page-clean .product-desc-toggle:hover,
.page-product .product-page-clean .product-related-cta:hover {
    text-decoration: underline;
    text-underline-offset: 2px;
}

.page-product .product-page-clean .product-desc-toc-inline {
    display: none;
}

.page-product .product-page-clean .product-reviews-sub {
    display: none;
}

.page-product .product-page-clean .product-reviews-head h2 {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .35rem .65rem;
    font-size: 1rem;
}
.page-product .product-page-clean .product-reviews-head-meta {
    font-size: .82rem;
    font-weight: 400;
}
.page-product .product-page-clean .product-reviews-side {
    display: none;
}
.page-product .product-page-clean .product-review-card {
    padding: 0 0 1.1rem;
}
.page-product .product-page-clean .product-review-card-head {
    margin-bottom: .35rem;
}
.page-product .product-page-clean .product-review-title {
    font-size: .9rem;
    margin: 0 0 .35rem;
}
.page-product .product-page-clean .product-review-body {
    font-size: .84rem;
    line-height: 1.55;
    color: var(--color-muted);
}

.page-product .product-page-clean .product-grid-related .product-card-body .price,
.page-product .product-page-clean .product-grid-related .product-card-body .stock {
    display: none;
}
.page-product .product-page-clean .product-grid-related .product-ref {
    margin: 0;
    font-size: .74rem;
}

.page-product .product-page-clean .product-page-footer {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1.25rem;
    align-items: center;
}
.page-product .product-page-clean .product-page-footer .link-arrow,
.page-product .product-page-clean .product-page-footer .link-muted {
    margin: 0;
    text-decoration: none;
}
.page-product .product-page-clean .product-page-footer .link-arrow:hover,
.page-product .product-page-clean .product-page-footer .link-muted:hover {
    text-decoration: underline;
}

.page-product .product-page-clean .prose h2,
.page-product .product-page-clean .prose h3 {
    border: 0;
    padding: 0;
}

/* ── Product UX v38 — superficie continua, menos filas y cajas ── */

.site-body.page-product .main.container.page-content {
    width: min(1560px, 99%);
}

.page-product .product-page-clean .product-gallery-frame {
    background: transparent !important;
    padding: 0 !important;
}

.page-product .product-page-clean .product-gallery-counter,
.page-product .product-page-clean .product-gallery-tap-hint {
    display: none !important;
}

.page-product .product-page-clean .product-gallery-nav {
    background: transparent;
    opacity: .35;
    box-shadow: none;
}
.page-product .product-page-clean .product-gallery-nav:hover {
    opacity: .85;
    background: transparent;
}

.page-product .product-page-clean .product-gallery-zoom-icon {
    background: rgba(17, 17, 17, .35);
}

.page-product .product-page-clean .product-detail-grid-guest {
    gap: clamp(1.5rem, 4vw, 3rem);
}

.page-product .product-page-clean .product-buybox-guest > * + * {
    margin-top: .7rem;
}

.page-product .product-page-clean .product-buybox-footer-line {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: .2rem .45rem;
    margin: .65rem 0 0;
    font-size: .78rem;
    color: var(--color-muted);
}

.page-product .product-page-clean .product-desc-layout-guest {
    display: block;
}

.page-product .product-page-clean .product-desc-section .prose h2 {
    margin: 1.35rem 0 .45rem;
    font-size: 1rem;
    font-weight: 700;
    border-top: 0 !important;
    padding-top: 0 !important;
}
.page-product .product-page-clean .product-desc-section .prose h2:first-of-type {
    margin-top: 0;
}
.page-product .product-page-clean .product-desc-section .prose h3 {
    margin: 1rem 0 .35rem;
    font-size: .9rem;
    font-weight: 600;
}
.page-product .product-page-clean .product-desc-section .prose p {
    margin: 0 0 .75rem;
    line-height: 1.6;
    color: var(--color-text);
}

.page-product .product-page-clean .product-reviews-layout-guest {
    display: block;
}
.page-product .product-page-clean .product-reviews-layout-guest .product-reviews-list {
    gap: .85rem;
}
.page-product .product-page-clean .product-review-card-guest {
    padding: 0;
}
.page-product .product-page-clean .product-review-card-guest .product-review-card-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .3rem .55rem;
    margin-bottom: .3rem;
}
.page-product .product-page-clean .product-review-card-guest .product-review-meta {
    flex-direction: row;
    align-items: center;
    gap: .35rem;
}
.page-product .product-page-clean .product-review-card-guest .product-review-verified {
    margin-top: 0;
    font-size: .62rem;
}
.page-product .product-page-clean .product-review-card-guest .product-review-body-guest {
    margin: 0;
    font-size: .84rem;
    line-height: 1.55;
    color: var(--color-muted);
}
.page-product .product-page-clean .product-review-card-guest .product-review-body-guest strong {
    color: var(--color-text);
    font-weight: 600;
}

.page-product .product-page-clean .product-related-head {
    margin-bottom: .65rem;
}
.page-product .product-page-clean .product-related-head h2 {
    font-size: 1rem;
    font-weight: 700;
    margin: 0;
}
.page-product .product-page-clean .product-grid-related {
    gap: 1.5rem;
}
.page-product .product-page-clean .product-grid-related .product-card {
    border: 0;
    box-shadow: none;
}

.page-product .product-page-clean .product-content-shell,
.page-product .product-page-clean .product-reviews,
.page-product .product-page-clean .product-related-band {
    margin-top: clamp(2rem, 4vw, 3rem) !important;
}

/* ── Product UX v39 — hero plano, buybox mínimo, cero bandas ── */

.page-product .product-page-clean .product-hero-guest-flat {
    min-height: 0;
    margin-bottom: .35rem;
    background: transparent;
}
.page-product .product-page-clean .product-hero-guest-flat .product-hero-content {
    padding: 0 0 .15rem;
}
.page-product .product-page-clean .product-hero-guest-flat .product-hero-grid {
    margin-top: .45rem;
}
.page-product .product-page-clean .product-hero-guest-flat .product-hero-main {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .3rem .55rem;
}
.page-product .product-page-clean .product-hero-guest-flat .product-hero-title {
    color: var(--color-ink);
    font-size: clamp(1.15rem, 2.4vw, 1.55rem);
}
.page-product .product-page-clean .product-hero-guest-flat .product-hero-guest-hint {
    margin: 0;
    font-size: .82rem;
    font-weight: 500;
    color: var(--color-muted);
}
.page-product .product-page-clean .product-hero-guest-flat .product-breadcrumbs {
    font-size: .78rem;
}

.page-product .product-page-clean .product-overview-shell {
    margin-top: 0;
    margin-bottom: 0;
}

.page-product .product-page-clean .product-buybox-rating-inline {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    color: inherit;
    text-decoration: none;
    white-space: nowrap;
}
.page-product .product-page-clean .product-buybox-rating-inline:hover {
    color: var(--color-accent);
}
.page-product .product-page-clean .product-buybox-rating-inline .product-stars {
    font-size: .72rem;
}

.page-product .product-page-clean .product-buybox-guest .product-buybox-lead {
    margin-bottom: .55rem;
    font-size: .86rem;
    line-height: 1.55;
}

.page-product .product-page-clean .product-review-byline {
    display: block;
    margin-bottom: .2rem;
    font-size: .74rem;
}
.page-product .product-page-clean .product-review-card-guest + .product-review-card-guest {
    margin-top: .75rem;
}

.page-product .product-page-clean .product-section-label {
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--color-muted);
}

.page-product .product-page-clean .product-desc-section .prose h2,
.page-product .product-page-clean .product-desc-section .prose h3 {
    font-size: .92rem;
    font-weight: 600;
    margin: 1rem 0 .3rem;
    line-height: 1.4;
    color: var(--color-text);
}
.page-product .product-page-clean .product-desc-section .prose h2:first-of-type {
    margin-top: 0;
}

.page-product .product-page-clean .product-related-inner {
    padding: 0;
}
.page-product .product-page-clean .product-related-scroll {
    margin: 0;
    padding: 0;
}

/* ── Product UX v41 — galerías largas, buybox sticky, reseñas plegables ── */

.page-product .product-page-clean .product-gallery-slim.has-many-thumbs .product-gallery-body {
    gap: .5rem;
}
.page-product .product-page-clean .product-gallery-slim.has-many-thumbs .product-gallery-thumbs {
    flex-wrap: nowrap !important;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    gap: .35rem;
    padding: 0 0 .15rem;
    margin: 0;
    scrollbar-width: none;
}
.page-product .product-page-clean .product-gallery-slim.has-many-thumbs .product-gallery-thumbs::-webkit-scrollbar {
    display: none;
}
.page-product .product-page-clean .product-gallery-slim.has-many-thumbs .product-gallery-thumb {
    flex: 0 0 46px;
    width: 46px;
    height: 46px;
    scroll-snap-align: start;
}
.page-product .product-page-clean .product-gallery-thumb-hint {
    order: 3;
    margin: 0;
    font-size: .72rem;
    color: var(--color-muted);
}

.page-product .product-page-clean .product-gallery-frame .product-image,
.page-product .product-page-clean .product-gallery-frame .product-placeholder {
    max-height: min(50vh, 440px);
}

@media (min-width: 992px) {
    .page-product .product-page-clean .product-detail-grid-guest {
        grid-template-columns: minmax(0, 1.12fr) minmax(280px, .88fr);
        align-items: start;
    }
    .page-product .product-page-clean .product-detail-grid-guest .product-aside-col {
        position: sticky !important;
        top: calc(var(--header-offset, 72px) + .75rem);
        align-self: start;
    }
}

.page-product .product-page-clean .product-reviews-list.is-collapsed .product-review-card-guest:nth-child(n+4) {
    display: none;
}
.page-product .product-page-clean .product-reviews-more {
    display: inline-block;
    margin-top: .65rem;
    padding: 0;
    border: 0;
    background: none;
    font-size: .8rem;
    font-weight: 600;
    color: var(--color-muted);
    cursor: pointer;
    text-decoration: none;
}
.page-product .product-page-clean .product-reviews-more:hover {
    color: var(--color-accent);
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* ── Product UX v48 — Taste: gallery-minimal + swiss-system (product-page-pro) ── */

.page-product:has(.product-page-pro) {
    --pro-wall: #f6f5f2;
    --pro-plate: #ffffff;
    --pro-ink: #121212;
    --pro-muted: #656565;
    --pro-hairline: rgba(18, 18, 18, .07);
    --pro-measure: 36rem;
    --pro-section: clamp(2.75rem, 6vw, 4.25rem);
    --pro-tracking-label: .11em;
}

.site-body.page-product:has(.product-page-pro) {
    background: var(--pro-wall);
}

.site-body.page-product:has(.product-page-pro) .main.container.page-content {
    width: min(1280px, 94%);
}

.page-product .product-page-pro {
    font-variant-numeric: tabular-nums;
    color: var(--pro-ink);
}

.page-product .product-page-pro .product-header {
    margin-bottom: clamp(1.25rem, 3vw, 2rem);
}

.page-product .product-page-pro .product-hero-guest-flat,
.page-product .product-page-pro .product-hero.category-hero-banner {
    background: transparent;
    border: 0;
    box-shadow: none;
}

.page-product .product-page-pro .product-breadcrumbs {
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: var(--pro-tracking-label);
    text-transform: uppercase;
    color: var(--pro-muted);
    margin-bottom: .85rem;
}

.page-product .product-page-pro .product-breadcrumbs a {
    color: inherit;
    text-decoration: none;
}

.page-product .product-page-pro .product-breadcrumbs a:hover {
    color: var(--pro-ink);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.page-product .product-page-pro .product-hero-title {
    font-family: var(--font-display);
    font-size: clamp(1.5rem, 3.2vw, 2.35rem);
    font-weight: 700;
    letter-spacing: -.035em;
    line-height: 1.1;
    max-width: 22ch;
    margin: 0 0 .5rem;
}

.page-product .product-page-pro .product-hero-guest-hint {
    display: inline-block;
    margin: 0;
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: var(--pro-tracking-label);
    text-transform: uppercase;
    color: var(--color-accent);
}

@media (min-width: 992px) {
    .page-product .product-page-pro .product-detail-grid,
    .page-product .product-page-pro .product-detail-grid-guest {
        grid-template-columns: minmax(0, 1.32fr) minmax(260px, .68fr);
        gap: clamp(2rem, 4.5vw, 3.75rem);
        align-items: start;
    }
}

.page-product .product-page-pro .product-overview-shell,
.page-product .product-page-pro .product-overview-panel,
.page-product .product-page-pro .product-detail-grid {
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
}

.page-product .product-page-pro .product-gallery-caption {
    margin: 0 0 .65rem;
    font-size: .58rem;
    font-weight: 700;
    letter-spacing: var(--pro-tracking-label);
    text-transform: uppercase;
    color: var(--pro-muted);
}

.page-product .product-page-pro .product-gallery-count-inline {
    display: none;
}

.page-product .product-page-pro .product-gallery-plate {
    background: var(--pro-plate);
    min-height: min(58vh, 520px);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.page-product .product-page-pro .product-gallery-zoom {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 0;
    background: transparent;
    padding: clamp(1rem, 3vw, 2rem);
    cursor: zoom-in;
}

.page-product .product-page-pro .product-gallery-plate .product-image {
    max-height: min(52vh, 480px);
    max-width: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
}

.page-product .product-page-pro .product-gallery-counter {
    font-size: .58rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    background: rgba(255, 255, 255, .92);
    color: var(--pro-muted);
    border: 0;
    padding: .35rem .55rem;
}

.page-product .product-page-pro .product-gallery-nav {
    background: var(--pro-plate);
    border: 1px solid var(--pro-hairline);
    color: var(--pro-ink);
    opacity: .9;
}

.page-product .product-page-pro .product-gallery-nav:hover {
    border-color: var(--pro-ink);
}

.page-product .product-page-pro .product-gallery-thumb {
    border-radius: 0;
    opacity: .38;
}

.page-product .product-page-pro .product-gallery-thumb.is-active,
.page-product .product-page-pro .product-gallery-thumb:hover {
    opacity: 1;
}

.page-product .product-page-pro .product-gallery-thumb-hint {
    font-size: .58rem;
    letter-spacing: var(--pro-tracking-label);
    text-transform: uppercase;
    font-weight: 700;
    color: var(--pro-muted);
}

.page-product .product-page-pro .product-spec-sheet,
.page-product .product-page-pro .product-buybox-card,
.page-product .product-page-pro .product-buybox-guest {
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
}

.page-product .product-page-pro .product-buybox-lead {
    font-size: .88rem;
    line-height: 1.65;
    color: var(--pro-ink);
    max-width: var(--pro-measure);
    margin-bottom: 1rem;
}

.page-product .product-page-pro .product-buybox-meta-line {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .2rem .45rem;
    padding-top: .85rem;
    margin-top: .85rem;
    border-top: 1px solid var(--pro-hairline);
    font-size: .68rem;
    letter-spacing: .03em;
    color: var(--pro-muted);
}

.page-product .product-page-pro .product-buybox-meta-line strong {
    font-weight: 700;
    color: var(--pro-ink);
}

.page-product .product-page-pro .product-meta-sep {
    opacity: .35;
}

.page-product .product-page-pro .product-guest-cta-actions {
    margin: 1.15rem 0 .85rem;
}

.page-product .product-page-pro .product-guest-cta .btn-primary {
    background: var(--pro-ink) !important;
    border: 0 !important;
    border-radius: 0 !important;
    font-family: var(--font-display);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
    padding: 1.05rem 1.35rem;
    transition: background .14s ease, color .14s ease;
}

.page-product .product-page-pro .product-guest-cta .btn-primary:hover {
    background: var(--color-accent) !important;
}

.page-product .product-page-pro .product-buybox-footer-line {
    font-size: .72rem;
    letter-spacing: .02em;
    color: var(--pro-muted);
}

.page-product .product-page-pro .product-chapter-label,
.page-product .product-page-pro .product-section-label {
    font-size: .58rem;
    font-weight: 700;
    letter-spacing: var(--pro-tracking-label);
    text-transform: uppercase;
    color: var(--pro-muted);
    margin: 0 0 1.15rem;
}

.page-product .product-page-pro .product-content-shell,
.page-product .product-page-pro .product-reviews,
.page-product .product-page-pro .product-related-band {
    margin-top: var(--pro-section) !important;
    padding-top: 0;
    border: 0;
}

.page-product .product-page-pro .product-desc-main {
    max-width: var(--pro-measure);
}

.page-product .product-page-pro .product-desc-section .prose {
    font-size: .9rem;
    line-height: 1.72;
    color: var(--pro-ink);
}

.page-product .product-page-pro .product-desc-section .prose h2,
.page-product .product-page-pro .product-desc-section .prose h3 {
    font-family: var(--font-display);
    font-size: .95rem;
    font-weight: 700;
    letter-spacing: -.02em;
    margin-top: 1.5rem;
}

.page-product .product-page-pro .product-desc-toggle,
.page-product .product-page-pro .product-reviews-more {
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--pro-muted);
}

.page-product .product-page-pro .product-review-card,
.page-product .product-page-pro .product-review-card-guest {
    padding: 0 0 1rem;
    border: 0;
    background: transparent;
}

.page-product .product-page-pro .product-review-body-guest {
    font-size: .84rem;
    line-height: 1.6;
    color: var(--pro-muted);
}

.page-product .product-page-pro .product-review-byline {
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--pro-muted);
}

.page-product .product-page-pro .product-related-head h2 {
    font-size: .58rem;
    font-weight: 700;
    letter-spacing: var(--pro-tracking-label);
    text-transform: uppercase;
    color: var(--pro-muted);
}

.page-product .product-page-pro .product-related-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    margin: 0 calc(-1 * max(.75rem, env(safe-area-inset-left)));
    padding: 0 max(.75rem, env(safe-area-inset-left)) .35rem;
}

.page-product .product-page-pro .product-related-scroll::-webkit-scrollbar {
    display: none;
}

.page-product .product-page-pro .product-grid-related {
    display: flex;
    flex-wrap: nowrap;
    gap: clamp(1.5rem, 4vw, 2.75rem);
}

.page-product .product-page-pro .product-grid-related .product-card {
    flex: 0 0 min(188px, 44vw);
}

.page-product .product-page-pro .product-buybox-kicker {
    font-size: .58rem;
    font-weight: 700;
    letter-spacing: var(--pro-tracking-label);
    text-transform: uppercase;
}

.page-product .product-page-pro .product-hero-kicker .product-hero-ref {
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .06em;
}

.page-product .product-page-pro .product-aside-col .product-hero-subnav .product-subnav-link {
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    border-radius: 0;
}

.page-product .product-page-pro .product-facts-bar {
    border: 0;
    background: transparent;
}

.page-product .product-page-pro .product-page-footer {
    margin-top: var(--pro-section);
    padding-top: 1.5rem;
    border-top: 1px solid var(--pro-hairline);
}

@media (prefers-reduced-motion: no-preference) {
    .page-product .product-page-pro .product-reveal:not(.is-visible) {
        opacity: 0;
        transform: translateY(10px);
        transition: opacity .45s var(--ease-out), transform .45s var(--ease-out);
    }

    .page-product .product-page-pro .product-reveal.is-visible {
        opacity: 1;
        transform: none;
    }
}

@media (max-width: 768px) {
    .page-product .product-page-pro .product-hero-title {
        max-width: none;
    }

    .page-product .product-page-pro .product-gallery-plate {
        min-height: min(48vh, 380px);
    }
}

@media (min-width: 992px) {
    .page-product .product-page-pro .product-detail-grid-guest .product-aside-col {
        position: sticky !important;
        top: calc(var(--header-offset, 72px) + 1rem) !important;
        align-self: start;
    }
}

/* ── Product UX v49 — equilibrio visual (corrección v48) ── */

.site-body.page-product:has(.product-page-pro) {
    background:
        radial-gradient(ellipse 80% 50% at 50% -20%, rgba(47, 181, 210, .07), transparent 55%),
        radial-gradient(ellipse 60% 40% at 100% 50%, rgba(47, 181, 210, .04), transparent 50%),
        var(--color-bg);
}

.site-body.page-product:has(.product-page-pro) .main.container.page-content {
    width: min(1360px, 92%);
}

.page-product .product-page-pro .product-hero-guest-flat .product-hero-title {
    font-size: clamp(1.15rem, 2.4vw, 1.55rem);
    font-weight: 700;
    letter-spacing: -.02em;
    line-height: 1.25;
    max-width: none;
    margin: 0;
}

.page-product .product-page-pro .product-hero-guest-flat .product-hero-guest-hint {
    font-size: .82rem;
    font-weight: 500;
    letter-spacing: normal;
    text-transform: none;
    color: var(--color-muted);
}

.page-product .product-page-pro .product-hero-guest-flat .product-breadcrumbs {
    font-size: .78rem;
    font-weight: 500;
    letter-spacing: normal;
    text-transform: none;
    color: var(--color-muted);
    margin-bottom: .5rem;
}

.page-product .product-page-pro .product-header {
    margin-bottom: clamp(.75rem, 2vw, 1.25rem);
}

@media (min-width: 992px) {
    .page-product .product-page-pro .product-detail-grid,
    .page-product .product-page-pro .product-detail-grid-guest {
        grid-template-columns: minmax(0, 1.08fr) minmax(300px, .92fr);
        gap: clamp(1.25rem, 3vw, 2.25rem);
    }
}

.page-product .product-page-pro .product-gallery-plate {
    min-height: clamp(260px, 34vw, 400px);
    background: transparent;
}

.page-product .product-page-pro .product-gallery-zoom {
    width: auto;
    height: auto;
    min-height: 0;
    display: block;
    padding: 0;
}

.page-product .product-page-pro .product-gallery-plate .product-image {
    max-height: min(40vh, 380px);
}

.page-product .product-page-pro .product-gallery-caption {
    order: 3;
    margin: .45rem 0 0;
    font-size: .72rem;
    letter-spacing: .05em;
}

.page-product .product-page-pro .product-gallery-slim.has-thumbs-side .product-gallery-caption {
    order: 3;
}

.page-product .product-page-pro .product-buybox-lead {
    font-size: .86rem;
    line-height: 1.55;
    max-width: none;
    margin-bottom: .65rem;
}

.page-product .product-page-pro .product-buybox-meta-line {
    padding-top: .65rem;
    margin-top: .65rem;
    font-size: .76rem;
}

.page-product .product-page-pro .product-guest-cta .btn-primary {
    border-radius: var(--radius) !important;
    font-size: .875rem;
    font-weight: 600;
    letter-spacing: .01em;
    text-transform: none;
    padding: .85rem 1.15rem;
    background: var(--color-ink) !important;
}

.page-product .product-page-pro .product-chapter-label,
.page-product .product-page-pro .product-section-label,
.page-product .product-page-pro .product-related-head h2 {
    font-size: .72rem;
    letter-spacing: .06em;
    margin-bottom: .85rem;
}

.page-product .product-page-pro .product-content-shell,
.page-product .product-page-pro .product-reviews,
.page-product .product-page-pro .product-related-band {
    margin-top: clamp(2rem, 4vw, 3rem) !important;
}

.page-product .product-page-pro .product-desc-main {
    max-width: none;
}

.page-product .product-reveal {
    opacity: 1 !important;
    transform: none !important;
}

.page-product .product-page-pro .product-related-scroll {
    margin: 0;
    padding: 0;
}

.page-product .product-page-pro .product-gallery-plate {
    min-height: 0;
    height: auto;
}

.page-product .product-page-pro .product-gallery-slim.has-thumbs-side .product-gallery-frame,
.page-product .product-page-pro .product-gallery-slim.has-thumbs-side .product-gallery-plate {
    min-height: clamp(240px, 32vw, 380px);
}

.page-product .product-page-pro .product-gallery-caption {
    display: none;
}

@media (min-width: 992px) {
    .page-product .product-page-pro .product-detail-grid-guest .product-aside-col {
        position: static !important;
        top: auto !important;
    }
}

@media (max-width: 768px) {
    .page-product .product-page-pro .product-gallery-slim.has-thumbs-side .product-gallery-plate {
        min-height: clamp(200px, 50vw, 300px);
    }

    .page-product .product-page-pro .product-gallery-plate .product-image {
        max-height: min(46vw, 300px);
    }
}

/* ── Product UX v50 — ficha más visual (gallery-first) ── */

@media (min-width: 992px) {
    .page-product .product-page-visual .product-detail-grid,
    .page-product .product-page-visual .product-detail-grid-guest {
        grid-template-columns: minmax(0, 1.45fr) minmax(260px, .55fr);
        gap: clamp(1.5rem, 3.5vw, 2.75rem);
        align-items: start;
    }
}

.page-product .product-page-visual .product-hero-guest-flat .product-hero-title {
    font-size: clamp(1.35rem, 2.8vw, 1.85rem);
    line-height: 1.15;
}

.page-product .product-page-visual .product-hero-media-guest .product-hero-media-frame {
    width: clamp(72px, 9vw, 104px);
    height: clamp(72px, 9vw, 104px);
    border-radius: var(--radius-lg);
    overflow: hidden;
    background: #fff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, .1);
}

.page-product .product-page-visual .product-hero-media-guest .product-hero-media-frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.page-product .product-page-visual .product-visual-stage .product-gallery-plate {
    position: relative;
    min-height: clamp(300px, 42vw, 540px);
    padding: clamp(.85rem, 2vw, 1.5rem);
    border-radius: var(--radius-lg);
    background:
        radial-gradient(ellipse 85% 75% at 50% 40%, rgba(47, 181, 210, .09), transparent 68%),
        linear-gradient(180deg, #fff 0%, #fafafa 100%);
}

.page-product .product-page-visual .product-gallery-plate .product-image {
    max-height: min(54vh, 500px);
    width: 100%;
    object-fit: contain;
    filter: drop-shadow(0 12px 28px rgba(15, 23, 42, .08));
}

.page-product .product-page-visual .product-gallery-zoom:hover .product-image {
    transform: scale(1.04);
}

.page-product .product-page-visual .product-gallery-caption {
    display: block;
    position: absolute;
    top: .75rem;
    left: .75rem;
    z-index: 3;
    margin: 0;
    padding: .32rem .6rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, .94);
    color: var(--color-muted);
    font-size: .64rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    box-shadow: 0 2px 10px rgba(15, 23, 42, .06);
}

.page-product .product-page-visual .product-gallery-counter {
    left: .75rem;
    right: auto;
    bottom: .75rem;
    border-radius: 999px;
    background: rgba(17, 17, 17, .82);
    font-size: .7rem;
}

.page-product .product-page-visual .product-gallery-nav {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 50%;
    border: 0;
    background: rgba(255, 255, 255, .95);
    box-shadow: 0 4px 16px rgba(15, 23, 42, .12);
}

.page-product .product-page-visual .product-gallery-nav:hover {
    background: #fff;
    box-shadow: 0 6px 20px rgba(15, 23, 42, .16);
}

.page-product .product-page-visual .product-gallery-thumb {
    width: 56px;
    height: 56px;
    opacity: .5;
    transition: opacity .15s ease, transform .15s ease;
}

.page-product .product-page-visual .product-gallery-thumb.is-active,
.page-product .product-page-visual .product-gallery-thumb:hover {
    opacity: 1;
    transform: translateY(-1px);
}

.page-product .product-page-visual .product-gallery-thumb.is-active {
    outline: 2px solid var(--color-accent);
    outline-offset: 2px;
}

.page-product .product-page-visual .product-gallery-slim.has-many-thumbs .product-gallery-thumb {
    width: 52px;
    height: 52px;
}

.page-product .product-page-visual .product-meta-chip {
    display: inline-block;
    padding: .15rem .5rem;
    border-radius: 999px;
    background: rgba(47, 181, 210, .12);
    color: var(--color-accent);
    font-weight: 600;
    text-decoration: none;
}

.page-product .product-page-visual .product-meta-chip:hover {
    background: rgba(47, 181, 210, .2);
    color: var(--color-ink);
}

.page-product .product-page-visual .product-buybox-rating-inline .product-stars {
    font-size: .9rem;
    color: var(--color-accent);
}

.page-product .product-page-visual .product-buybox-rating-inline .product-star.is-filled {
    color: var(--color-accent);
}

.page-product .product-page-visual .product-grid-related .product-card {
    flex: 0 0 min(210px, 46vw);
}

.page-product .product-page-visual .product-grid-related .product-card-media {
    aspect-ratio: 1;
    min-height: 0;
    background:
        radial-gradient(ellipse 80% 70% at 50% 45%, rgba(47, 181, 210, .07), transparent 70%),
        #fff;
    border-radius: var(--radius);
}

.page-product .product-page-visual .product-grid-related .product-card-media img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: .65rem;
}

.page-product .product-page-visual .product-grid-related .product-card-body h3 {
    font-size: .9rem;
}

.page-product .product-page-visual .product-review-byline {
    color: var(--color-accent);
}

@media (max-width: 768px) {
    .page-product .product-page-visual .product-hero-media-guest {
        order: -1;
    }

    .page-product .product-page-visual .product-hero-media-guest .product-hero-media-frame {
        width: 64px;
        height: 64px;
    }

    .page-product .product-page-visual .product-visual-stage .product-gallery-plate {
        min-height: clamp(240px, 62vw, 380px);
        padding: .65rem;
    }

    .page-product .product-page-visual .product-gallery-plate .product-image {
        max-height: min(58vw, 340px);
    }

    .page-product .product-page-visual .product-gallery-thumb {
        width: 48px;
        height: 48px;
    }
}

/* ── Product UX v51 — ficha dinámica e inmersiva (product-page-dynamic) ── */

.page-product .product-page-dynamic .product-hero-crumb-only {
    margin-bottom: 0;
    min-height: 0;
}

.page-product .product-page-dynamic .product-hero-crumb-only .product-hero-content {
    padding: .5rem 0 .25rem;
}

.page-product .product-showcase {
    position: relative;
    margin: 0 calc(50% - 50vw);
    padding: clamp(1rem, 2.5vw, 1.75rem) max(.85rem, calc((100vw - min(1360px, 92%)) / 2));
    background: linear-gradient(125deg, #fafafa 0%, #eef7fa 42%, #f8f8f6 100%);
    background-size: 220% 220%;
    animation: productShowcaseDrift 14s ease-in-out infinite;
}

@keyframes productShowcaseDrift {
    0%, 100% { background-position: 0% 40%; }
    50% { background-position: 100% 60%; }
}

@media (prefers-reduced-motion: reduce) {
    .page-product .product-showcase {
        animation: none;
        background: #fafafa;
    }
}

.page-product .product-page-dynamic .product-overview-shell,
.page-product .product-page-dynamic .product-overview-panel {
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
}

@media (min-width: 992px) {
    .page-product .product-page-dynamic .product-detail-grid,
    .page-product .product-page-dynamic .product-detail-grid-guest {
        grid-template-columns: minmax(0, 1.38fr) minmax(280px, .62fr);
        gap: clamp(1.5rem, 3vw, 2.5rem);
        align-items: start;
    }

    .page-product .product-page-dynamic .product-detail-grid:not(.product-detail-grid-guest) .product-aside-col {
        position: sticky;
        top: calc(var(--header-offset, 88px) + .75rem);
        align-self: start;
    }
}

.page-product .product-gallery-dynamic.has-thumbs-rail .product-gallery-body {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: .85rem;
    align-items: stretch;
}

.page-product .product-gallery-dynamic.has-thumbs-rail .product-gallery-frame {
    grid-column: 2;
    grid-row: 1 / span 2;
    min-height: clamp(340px, 48vw, 560px);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
}

.page-product .product-gallery-dynamic.is-single .product-gallery-frame {
    min-height: clamp(300px, 44vw, 520px);
}

.page-product .product-gallery-dynamic .product-gallery-frame .product-image {
    max-height: min(58vh, 520px);
    width: 100%;
    object-fit: contain;
    transition: opacity .28s ease, transform .35s var(--ease-out);
    will-change: transform, opacity;
}

.page-product .product-gallery-dynamic .product-gallery-frame.is-tilting .product-image {
    transform: scale(1.04) translate(var(--img-tilt-x, 0), var(--img-tilt-y, 0));
}

.page-product .product-gallery-dynamic .product-gallery-frame .product-image.is-fading {
    opacity: 0;
    transform: scale(.97);
}

.page-product .product-gallery-dynamic.has-thumbs-rail .product-gallery-thumbs {
    grid-column: 1;
    grid-row: 1;
    display: flex;
    flex-direction: column;
    gap: .45rem;
    max-height: min(560px, 58vh);
    overflow-y: auto;
    overflow-x: hidden;
    padding: 0;
    margin: 0;
    border: 0;
    background: transparent;
    scrollbar-width: thin;
}

.page-product .product-gallery-dynamic .product-gallery-thumb {
    width: 68px;
    height: 68px;
    flex: 0 0 68px;
    opacity: .45;
    border: 0;
    padding: 0;
    background: #fff;
    transition: opacity .2s ease, transform .2s var(--ease-spring), box-shadow .2s ease;
}

.page-product .product-gallery-dynamic .product-gallery-thumb.is-active {
    opacity: 1;
    transform: scale(1.04);
    box-shadow: 0 6px 18px rgba(47, 181, 210, .28);
    outline: 2px solid var(--color-accent);
    outline-offset: 1px;
}

.page-product .product-gallery-dynamic.has-many-thumbs .product-gallery-thumb {
    width: 60px;
    height: 60px;
    flex: 0 0 60px;
}

.page-product .product-gallery-dynamic .product-gallery-progress {
    grid-column: 1 / -1;
    height: 3px;
    margin-top: .35rem;
    background: rgba(17, 17, 17, .08);
    border-radius: 999px;
    overflow: hidden;
}

.page-product .product-gallery-dynamic .product-gallery-progress-fill {
    display: block;
    height: 100%;
    width: 10%;
    background: linear-gradient(90deg, var(--color-accent), #5ecde6);
    border-radius: inherit;
    transition: width .35s var(--ease-out);
}

.page-product .product-gallery-dynamic .product-gallery-nav {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    border: 0;
    background: rgba(255, 255, 255, .95);
    box-shadow: 0 4px 18px rgba(15, 23, 42, .14);
    transition: transform .2s var(--ease-spring), box-shadow .2s ease;
}

.page-product .product-gallery-dynamic .product-gallery-nav:hover {
    transform: translateY(-50%) scale(1.08);
    box-shadow: 0 8px 24px rgba(47, 181, 210, .25);
}

.page-product .product-gallery-dynamic .product-gallery-counter {
    border-radius: 999px;
    font-size: .72rem;
    letter-spacing: .04em;
}

.page-product .product-page-dynamic .product-buybox-headline {
    margin-bottom: .75rem;
}

.page-product .product-page-dynamic .product-buybox-title {
    margin: 0 0 .25rem;
    font-family: var(--font-display);
    font-size: clamp(1.3rem, 2.6vw, 1.8rem);
    font-weight: 700;
    letter-spacing: -.025em;
    line-height: 1.15;
    color: var(--color-ink);
}

.page-product .product-page-dynamic .product-buybox-price-tag {
    margin: 0;
    font-size: .84rem;
    font-weight: 600;
    color: var(--color-accent);
}

.page-product .product-page-dynamic .product-buybox-lead {
    font-size: .88rem;
    line-height: 1.6;
    margin-bottom: .75rem;
}

.page-product .product-page-dynamic .product-buybox-meta-line {
    font-size: .78rem;
    padding-top: .7rem;
    margin-top: .7rem;
    border-top: 1px solid rgba(17, 17, 17, .08);
}

.page-product .product-page-dynamic .product-buybox-rating-inline .product-star.is-filled {
    color: var(--color-accent);
}

.page-product .product-page-dynamic .product-guest-cta .btn-primary {
    background: linear-gradient(135deg, #111 0%, #1c1c1c 100%);
    border: 0;
    box-shadow: 0 6px 22px rgba(0, 0, 0, .18);
    transition: transform .22s var(--ease-spring), box-shadow .22s ease, background .22s ease;
}

.page-product .product-page-dynamic .product-guest-cta .btn-primary:hover {
    transform: translateY(-2px);
    background: var(--color-accent);
    box-shadow: 0 10px 30px rgba(47, 181, 210, .38);
}

.page-product .product-page-dynamic .product-chapter-label {
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--color-muted);
}

.page-product .product-page-dynamic .product-reveal {
    opacity: 1 !important;
    transform: none !important;
}

.page-product .product-page-dynamic .product-grid-related {
    display: flex;
    flex-wrap: nowrap;
    gap: 1.25rem;
    overflow-x: auto;
    padding-bottom: .35rem;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
}

.page-product .product-page-dynamic .product-grid-related::-webkit-scrollbar {
    display: none;
}

.page-product .product-page-dynamic .product-grid-related .product-card {
    flex: 0 0 min(200px, 44vw);
    scroll-snap-align: start;
    transition: transform .2s ease;
}

.page-product .product-page-dynamic .product-grid-related .product-card:hover {
    transform: translateY(-3px);
}

.page-product .product-page-dynamic .product-grid-related .product-card-media {
    aspect-ratio: 1;
    background: #fff;
}

.page-product .product-page-dynamic .product-grid-related .product-card-media img {
    object-fit: contain;
    padding: .5rem;
}

@media (max-width: 768px) {
    .page-product .product-showcase {
        padding-left: max(.75rem, env(safe-area-inset-left));
        padding-right: max(.75rem, env(safe-area-inset-right));
    }

    .page-product .product-gallery-dynamic.has-thumbs-rail .product-gallery-body {
        display: flex;
        flex-direction: column;
        gap: .65rem;
    }

    .page-product .product-gallery-dynamic.has-thumbs-rail .product-gallery-frame {
        order: 1;
        min-height: clamp(260px, 62vw, 400px);
    }

    .page-product .product-gallery-dynamic.has-thumbs-rail .product-gallery-thumbs {
        order: 2;
        flex-direction: row;
        flex-wrap: nowrap;
        overflow-x: auto;
        overflow-y: hidden;
        max-height: none;
        gap: .4rem;
        padding-bottom: .15rem;
        scroll-snap-type: x mandatory;
    }

    .page-product .product-gallery-dynamic .product-gallery-thumb {
        width: 52px;
        height: 52px;
        flex: 0 0 52px;
        scroll-snap-align: start;
    }

    .page-product .product-page-dynamic .product-detail-grid-guest .product-aside-col {
        position: static;
        top: auto;
    }
}

/* ── Product UX v52 — ficha estilo marketplace (product-page-bp / brainprices) ── */

.page-product .product-page-bp .product-hero-crumb-only {
    margin-bottom: 0;
    min-height: 0;
}

.page-product .product-page-bp .product-hero-crumb-only .product-hero-content {
    padding: .65rem 0 .35rem;
}

.page-product .product-page-bp .breadcrumbs-current {
    color: var(--color-muted);
    font-weight: 500;
}

.page-product .product-bp-shell {
    margin: 0;
    padding: clamp(.75rem, 2vw, 1.25rem) 0 clamp(1.5rem, 3vw, 2.5rem);
    background: #fff;
}

.page-product .product-page-bp .product-overview-shell,
.page-product .product-page-bp .product-overview-panel {
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
}

@media (min-width: 992px) {
    .page-product .product-page-bp .product-detail-grid,
    .page-product .product-page-bp .product-detail-grid-guest {
        grid-template-columns: minmax(0, 1fr) minmax(320px, 1fr);
        gap: clamp(1.25rem, 2.5vw, 2rem);
        align-items: start;
    }

    .page-product .product-page-bp .product-aside-col {
        position: sticky;
        top: calc(var(--header-offset, 88px) + .75rem);
        align-self: start;
    }
}

/* Galería — miniaturas verticales + imagen principal */
.page-product .product-gallery-bp.has-thumbs-rail .product-gallery-body {
    display: grid;
    grid-template-columns: 76px minmax(0, 1fr);
    gap: .75rem;
    align-items: start;
}

.page-product .product-gallery-bp.has-thumbs-rail .product-gallery-frame {
    grid-column: 2;
    min-height: clamp(320px, 42vw, 480px);
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fafafa;
    border: 1px solid #e9ecef;
    border-radius: 8px;
    padding: 1rem;
}

.page-product .product-gallery-bp.is-single .product-gallery-frame {
    min-height: clamp(300px, 40vw, 460px);
    background: #fafafa;
    border: 1px solid #e9ecef;
    border-radius: 8px;
}

.page-product .product-gallery-bp .product-gallery-frame .product-image {
    max-height: min(52vh, 440px);
    width: 100%;
    object-fit: contain;
    transition: opacity .22s ease;
}

.page-product .product-gallery-bp .product-gallery-frame .product-image.is-fading {
    opacity: 0;
}

.page-product .product-gallery-bp.has-thumbs-rail .product-gallery-thumbs {
    grid-column: 1;
    display: flex;
    flex-direction: column;
    gap: .5rem;
    max-height: min(480px, 52vh);
    overflow-y: auto;
    padding: 0;
    margin: 0;
    border: 0;
    background: transparent;
    scrollbar-width: thin;
}

.page-product .product-gallery-bp .product-gallery-thumb {
    width: 76px;
    height: 76px;
    flex: 0 0 76px;
    border: 2px solid transparent;
    border-radius: 6px;
    padding: 2px;
    background: #fff;
    opacity: 1;
    transition: border-color .15s ease;
}

.page-product .product-gallery-bp .product-gallery-thumb.is-active {
    border-color: var(--color-ink);
    box-shadow: none;
    transform: none;
    outline: none;
}

.page-product .product-gallery-bp .product-gallery-thumb img {
    border-radius: 4px;
    object-fit: cover;
}

.page-product .product-gallery-bp .product-gallery-progress {
    display: none;
}

.page-product .product-gallery-bp .product-gallery-nav {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 50%;
    border: 1px solid #e9ecef;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 2px 8px rgba(0, 0, 0, .08);
}

.page-product .product-gallery-bp .product-gallery-zoom-icon {
    opacity: 1;
    background: rgba(255, 255, 255, .92);
    color: var(--color-ink);
    border: 1px solid #e9ecef;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .06);
}

.page-product .product-gallery-bp .product-gallery-counter {
    border-radius: 6px;
    font-size: .7rem;
    background: rgba(17, 17, 17, .75);
}

/* Panel derecho — tarjeta blanca */
.page-product .product-page-bp .product-bp-info {
    background: #fff;
    border: 1px solid #e9ecef;
    border-radius: 8px;
    padding: clamp(1.15rem, 2.5vw, 1.85rem);
    box-shadow: 0 1px 3px rgba(0, 0, 0, .04);
}

.page-product .product-page-bp .product-bp-title {
    margin: 0 0 .65rem;
    font-family: var(--font-display);
    font-size: clamp(1.25rem, 2.4vw, 1.65rem);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -.02em;
    color: var(--color-ink);
}

.page-product .product-page-bp .product-bp-short-desc {
    margin-bottom: .85rem;
}

.page-product .product-page-bp .product-bp-short-text {
    margin: 0;
    font-size: .9rem;
    line-height: 1.6;
    color: var(--color-text);
}

.page-product .product-page-bp .product-bp-read-more {
    display: inline-block;
    margin-top: .35rem;
    font-size: .82rem;
    font-weight: 600;
    color: var(--color-ink);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.page-product .product-page-bp .product-bp-read-more:hover {
    color: var(--color-accent);
}

.page-product .product-page-bp .product-bp-badges {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-bottom: 1rem;
}

.page-product .product-page-bp .product-bp-badge {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    padding: .3rem .65rem;
    border-radius: 4px;
    font-size: .75rem;
    font-weight: 600;
    text-decoration: none;
    line-height: 1.2;
}

.page-product .product-page-bp .product-bp-badge-cat {
    background: #f1f3f5;
    color: var(--color-ink);
    border: 1px solid #e9ecef;
}

.page-product .product-page-bp .product-bp-badge-cat:hover {
    background: #e9ecef;
    color: var(--color-ink);
}

.page-product .product-page-bp .product-bp-badge-stock {
    background: #e8f5e9;
    color: #2e7d32;
    border: 1px solid #c8e6c9;
}

.page-product .product-page-bp .product-bp-badge-pro {
    background: var(--color-ink);
    color: #fff;
    border: 0;
}

.page-product .product-page-bp .product-bp-badge-rating {
    background: #fff8e1;
    color: #f57f17;
    border: 1px solid #ffe082;
}

.page-product .product-page-bp .product-bp-badge-rating .product-star.is-filled {
    color: #f57f17;
}

/* Caja de precio gris */
.page-product .product-page-bp .product-bp-price-panel {
    background: #f5f5f5 !important;
    border: 0 !important;
    border-radius: 8px !important;
    padding: 1rem 1.1rem !important;
    margin: 0 0 1rem !important;
    box-shadow: none !important;
}

.page-product .product-page-bp .product-bp-price-panel .product-price-main {
    margin-bottom: .5rem;
}

.page-product .product-page-bp .product-bp-price-panel .price-lg {
    font-size: clamp(1.45rem, 2.8vw, 1.9rem);
    font-weight: 800;
    color: var(--color-ink);
}

.page-product .product-page-bp .product-bp-price-panel .product-stock-meta {
    border-top: 1px solid rgba(0, 0, 0, .08);
    padding-top: .55rem;
    font-size: .82rem;
}

.page-product .product-page-bp .product-bp-price-panel-guest .product-bp-price-label {
    margin: 0 0 .25rem;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--color-muted);
}

.page-product .product-page-bp .product-bp-price-guest {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--color-ink);
}

/* Acciones — cantidad + botón negro + favoritos outline */
.page-product .product-page-bp .product-bp-actions {
    display: flex;
    flex-direction: column;
    gap: .65rem;
    margin-bottom: 1rem;
}

.page-product .product-page-bp .product-bp-qty {
    margin-bottom: 0;
}

.page-product .product-page-bp .product-bp-add-btn {
    width: 100%;
    min-width: 0;
    justify-content: center;
    background: #111 !important;
    border-color: #111 !important;
    color: #fff !important;
    border-radius: 6px;
    font-weight: 700;
    padding: .85rem 1.25rem;
    box-shadow: none;
    transition: background .2s ease, transform .15s ease;
}

.page-product .product-page-bp .product-bp-add-btn:hover {
    background: #333 !important;
    border-color: #333 !important;
    transform: translateY(-1px);
}

.page-product .product-page-bp .product-bp-fav-form {
    display: block;
    width: 100%;
}

.page-product .product-page-bp .product-bp-fav-btn {
    width: 100%;
    justify-content: center;
    gap: .45rem;
    padding: .75rem 1rem;
    border-radius: 6px;
    font-weight: 600;
}

.page-product .product-page-bp .product-bp-fav-btn.is-favorite {
    border-color: var(--color-accent);
    color: var(--color-accent);
}

.page-product .product-page-bp .product-bp-actions-guest .product-bp-contact-btn {
    width: 100%;
    justify-content: center;
    padding: .75rem 1rem;
    border-radius: 6px;
}

.page-product .product-page-bp .product-bp-login-link,
.page-product .product-page-bp .product-bp-copy-link {
    display: block;
    text-align: center;
    font-size: .82rem;
    font-weight: 600;
    color: var(--color-muted);
    margin-top: .15rem;
}

.page-product .product-page-bp .product-bp-login-link:hover,
.page-product .product-page-bp .product-bp-copy-link:hover {
    color: var(--color-accent);
}

/* Trust badges — 3 columnas */
.page-product .product-page-bp .product-bp-trust {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .5rem;
    margin: 1rem 0;
    padding: .85rem 0 0;
    border-top: 1px solid #eee;
}

.page-product .product-page-bp .product-bp-trust-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: .2rem;
    padding: .5rem .35rem;
    background: #fafafa;
    border-radius: 6px;
    font-size: .68rem;
    line-height: 1.35;
    color: var(--color-muted);
}

.page-product .product-page-bp .product-bp-trust-item strong {
    font-size: .72rem;
    color: var(--color-ink);
}

.page-product .product-page-bp .product-bp-trust-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    background: #fff;
    border: 1px solid #e9ecef;
    color: var(--color-accent);
    margin-bottom: .15rem;
}

/* SKU al pie */
.page-product .product-page-bp .product-bp-sku {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1rem;
    padding-top: .75rem;
    border-top: 1px solid #eee;
    font-size: .78rem;
    color: var(--color-muted);
}

.page-product .product-page-bp .product-bp-sku strong {
    color: var(--color-text);
    font-family: ui-monospace, monospace;
    font-weight: 600;
}

.page-product .product-page-bp .product-quick-links {
    margin-top: .85rem;
    padding-top: .85rem;
    border-top: 1px solid #eee;
}

.page-product .product-page-bp .product-reveal {
    opacity: 1 !important;
    transform: none !important;
}

/* Productos relacionados — grid */
.page-product .product-page-bp .product-bp-related-wrap {
    overflow: visible;
    margin: 0;
    padding: 0;
}

.page-product .product-page-bp .product-bp-related-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 1rem;
    overflow: visible;
    scroll-snap-type: none;
}

.page-product .product-page-bp .product-bp-related-grid .product-card {
    flex: unset;
    border: 1px solid #e9ecef;
    border-radius: 8px;
    background: #fff;
    transition: box-shadow .2s ease, transform .2s ease;
}

.page-product .product-page-bp .product-bp-related-grid .product-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 14px rgba(0, 0, 0, .08);
}

.page-product .product-page-bp .product-bp-related-grid .product-card-media {
    background: #fafafa;
    border-radius: 8px 8px 0 0;
}

.page-product .product-page-bp .product-bp-related-grid .product-card-media img {
    object-fit: contain;
    padding: .5rem;
}

@media (max-width: 768px) {
    .page-product .product-gallery-bp.has-thumbs-rail .product-gallery-body {
        display: flex;
        flex-direction: column;
        gap: .65rem;
    }

    .page-product .product-gallery-bp.has-thumbs-rail .product-gallery-frame {
        order: 1;
        min-height: clamp(260px, 62vw, 380px);
    }

    .page-product .product-gallery-bp.has-thumbs-rail .product-gallery-thumbs {
        order: 2;
        flex-direction: row;
        flex-wrap: nowrap;
        overflow-x: auto;
        max-height: none;
        gap: .4rem;
        scroll-snap-type: x mandatory;
    }

    .page-product .product-gallery-bp .product-gallery-thumb {
        width: 60px;
        height: 60px;
        flex: 0 0 60px;
        scroll-snap-align: start;
    }

    .page-product .product-page-bp .product-bp-trust {
        grid-template-columns: 1fr;
    }

    .page-product .product-page-bp .product-bp-trust-item {
        flex-direction: row;
        text-align: left;
        gap: .65rem;
        padding: .65rem .75rem;
    }

    .page-product .product-page-bp .product-bp-trust-icon {
        margin-bottom: 0;
        flex-shrink: 0;
    }

    .page-product .product-page-bp .product-aside-col {
        position: static;
    }

    .page-product .product-page-bp .product-bp-related-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* ── Product UX v53 — pulido brainprices (tabs, secciones, filtros) ── */

.page-product .product-page-bp .product-buybox-card.product-bp-info {
    border: 1px solid #e9ecef !important;
    border-radius: 8px !important;
    background: #fff !important;
    padding: clamp(1.15rem, 2.5vw, 1.85rem) !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .04) !important;
}

.page-product .product-page-bp .product-bp-tabs {
    margin: 1.25rem 0 0;
    padding: 0;
    border-top: 1px solid #eee;
    border-bottom: 1px solid #eee;
    background: #fff;
}

.page-product .product-page-bp .product-bp-tabs .product-subnav-links {
    display: flex;
    flex-wrap: nowrap;
    gap: 0;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}

.page-product .product-page-bp .product-bp-tabs .product-subnav-links::-webkit-scrollbar {
    display: none;
}

.page-product .product-page-bp .product-bp-tabs .product-subnav-link {
    flex: 0 0 auto;
    padding: .85rem 1.1rem;
    font-size: .82rem;
    font-weight: 600;
    color: var(--color-muted);
    border-bottom: 2px solid transparent;
    white-space: nowrap;
    text-decoration: none;
}

.page-product .product-page-bp .product-bp-tabs .product-subnav-link:hover {
    color: var(--color-ink);
}

.page-product .product-page-bp .product-bp-tabs .product-subnav-link.is-active {
    color: var(--color-ink);
    border-bottom-color: var(--color-ink);
}

.page-product .product-page-bp .product-bp-utils {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem .85rem;
    margin-top: .65rem;
    padding-top: .65rem;
    border-top: 1px dashed #e9ecef;
}

.page-product .product-page-bp .product-bp-utils-btn {
    border: 0;
    background: transparent;
    padding: 0;
    font-size: .78rem;
    font-weight: 600;
    color: var(--color-muted);
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.page-product .product-page-bp .product-bp-utils-btn:hover,
.page-product .product-page-bp .product-bp-utils-link:hover {
    color: var(--color-ink);
}

.page-product .product-page-bp .product-bp-utils-link {
    font-size: .78rem;
    font-weight: 600;
    color: var(--color-muted);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.page-product .product-page-bp .product-bp-badges .badge {
    border-radius: 4px;
    font-size: .72rem;
    font-weight: 700;
    padding: .3rem .55rem;
}

.page-product .product-page-bp .product-help-inline {
    margin: .85rem 0 0;
    padding-top: .75rem;
    border-top: 1px solid #eee;
    font-size: .8rem;
    color: var(--color-muted);
}

.page-product .product-page-bp .product-content-shell {
    margin-top: 2rem;
    padding: clamp(1.25rem, 2.5vw, 1.75rem);
    background: #fff;
    border: 1px solid #e9ecef;
    border-radius: 8px;
}

.page-product .product-page-bp .product-content-shell .product-section-head {
    margin-bottom: 1rem;
    padding-bottom: .65rem;
    border-bottom: 1px solid #eee;
}

.page-product .product-page-bp .product-content-shell .product-section-head h2 {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 700;
}

.page-product .product-page-bp .product-reviews {
    margin-top: 2rem;
    padding: clamp(1.25rem, 2.5vw, 1.75rem);
    background: #fff;
    border: 1px solid #e9ecef;
    border-radius: 8px;
}

.page-product .product-page-bp .product-bp-reviews-head h2 {
    margin: 0 0 .25rem;
    font-size: 1.15rem;
}

.page-product .product-page-bp .product-bp-review-filters {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin: 0 0 1.15rem;
}

.page-product .product-page-bp .product-bp-review-filter {
    border: 1px solid #e9ecef;
    border-radius: 999px;
    background: #fff;
    padding: .35rem .75rem;
    font-size: .78rem;
    font-weight: 600;
    color: var(--color-muted);
    cursor: pointer;
    transition: border-color .15s ease, color .15s ease, background .15s ease;
}

.page-product .product-page-bp .product-bp-review-filter:hover {
    border-color: var(--color-ink);
    color: var(--color-ink);
}

.page-product .product-page-bp .product-bp-review-filter.is-active {
    border-color: var(--color-ink);
    background: var(--color-ink);
    color: #fff;
}

.page-product .product-page-bp .product-bp-reviews-layout {
    gap: 1.5rem;
}

.page-product .product-page-bp .product-review-card {
    padding: 1rem 0;
    border-bottom: 1px solid #eee;
}

.page-product .product-page-bp .product-review-card:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.page-product .product-page-bp .product-related-band {
    margin-top: 2rem;
    padding: clamp(1.25rem, 2.5vw, 1.75rem) 0 0;
    border-top: 1px solid #eee;
}

.page-product .product-page-bp .product-related-head h2 {
    font-size: 1.15rem;
    font-weight: 700;
}

@media (max-width: 768px) {
    .page-product .product-page-bp .product-grid-related.product-bp-related-grid {
        display: grid !important;
        flex-wrap: unset !important;
    }

    .page-product .product-page-bp .product-bp-related-grid .product-card {
        flex: unset !important;
    }
}

/* ── Product UX v54 — ancho estándar del sitio (min(1360px, 92%)) ── */

.site-body.page-product .main.container.page-content {
    width: min(1360px, 92%);
    max-width: 100%;
}

.page-product .product-page-bp,
.page-product .product-page-bp .product-bp-shell,
.page-product .product-page-bp .product-header,
.page-product .product-page-bp .product-content-shell,
.page-product .product-page-bp .product-reviews,
.page-product .product-page-bp .product-related-band,
.page-product .product-page-bp .product-page-footer {
    margin-left: 0;
    margin-right: 0;
    max-width: 100%;
}

.page-product .product-page-bp .product-bp-tabs,
.page-product .product-page-bp .product-hero-subnav {
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    width: 100%;
}

.page-product .product-page-bp .product-hero-subnav.is-stuck .product-subnav-links {
    width: min(1360px, 92%);
    max-width: 100%;
    margin: 0 auto;
}

@media (max-width: 768px) {
    .site-body.page-product .main.container.page-content {
        width: min(1360px, 92%);
    }

    .page-product .product-page-bp .product-content-shell,
    .page-product .product-page-bp .product-reviews,
    .page-product .product-page-bp .product-related-band,
    .page-product .product-page-bp .product-related.panel-card {
        margin-left: 0 !important;
        margin-right: 0 !important;
        width: 100%;
        max-width: 100%;
    }
}

/* ── Product UX v55 — reseñas profesionales (resumen + estrellas grandes) ── */

.page-product .product-page-bp .product-bp-reviews-section {
    margin-top: 2rem;
    padding: clamp(1.35rem, 2.5vw, 2rem);
    background: #fff;
    border: 1px solid #e9ecef;
    border-radius: 10px;
}

.page-product .product-page-bp .product-bp-reviews-header {
    margin-bottom: 1.25rem;
}

.page-product .product-page-bp .product-bp-reviews-header h2 {
    margin: 0 0 .3rem;
    font-family: var(--font-display);
    font-size: clamp(1.15rem, 2.2vw, 1.4rem);
    font-weight: 700;
    color: var(--color-ink);
}

.page-product .product-page-bp .product-bp-reviews-sub {
    margin: 0;
    font-size: .86rem;
    color: var(--color-muted);
}

.page-product .product-page-bp .product-bp-reviews-summary-panel {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) minmax(200px, 1.15fr);
    gap: 1.25rem 1.75rem;
    align-items: center;
    margin-bottom: 1.35rem;
    padding: 1.25rem 1.35rem;
    background: linear-gradient(135deg, #fafbfc 0%, #f4f6f8 100%);
    border: 1px solid #e9ecef;
    border-radius: 8px;
}

.page-product .product-page-bp .product-bp-reviews-summary-score {
    display: flex;
    align-items: flex-start;
    line-height: 1;
}

.page-product .product-page-bp .product-bp-reviews-score {
    font-family: var(--font-display);
    font-size: clamp(2.75rem, 5vw, 3.5rem);
    font-weight: 800;
    color: var(--color-ink);
    letter-spacing: -.03em;
}

.page-product .product-page-bp .product-bp-reviews-score-max {
    margin: .35rem 0 0 .1rem;
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--color-muted);
}

.page-product .product-page-bp .product-bp-reviews-summary-detail {
    display: flex;
    flex-direction: column;
    gap: .4rem;
}

.page-product .product-page-bp .product-stars-xl .product-star {
    font-size: clamp(1.35rem, 2.5vw, 1.75rem);
    line-height: 1;
}

.page-product .product-page-bp .product-stars-md .product-star {
    font-size: 1.15rem;
    line-height: 1;
}

.page-product .product-page-bp .product-stars-inline .product-star {
    font-size: .62rem;
    line-height: 1;
}

.page-product .product-page-bp .product-star {
    color: #d1d5db;
}

.page-product .product-page-bp .product-star.is-filled {
    color: #f59e0b;
}

.page-product .product-page-bp .product-bp-reviews-summary-count {
    margin: 0;
    font-size: .84rem;
    font-weight: 600;
    color: var(--color-muted);
}

.page-product .product-page-bp .product-bp-reviews-distribution {
    display: flex !important;
    flex-direction: column;
    gap: .45rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.page-product .product-page-bp .product-bp-reviews-bar-row {
    display: grid;
    grid-template-columns: 4.5rem minmax(0, 1fr) 1.75rem;
    gap: .55rem;
    align-items: center;
}

.page-product .product-page-bp .product-reviews-bar-track {
    height: 8px;
    background: #e9ecef;
    border-radius: 999px;
    overflow: hidden;
}

.page-product .product-page-bp .product-reviews-bar-fill {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, #fbbf24, #f59e0b);
    border-radius: inherit;
    min-width: 2px;
}

.page-product .product-page-bp .product-reviews-bar-count {
    font-size: .78rem;
    font-weight: 600;
    color: var(--color-muted);
    text-align: right;
}

.page-product .product-page-bp .product-bp-review-filters {
    margin-bottom: 1.15rem;
}

.page-product .product-page-bp .product-bp-reviews-list {
    display: flex;
    flex-direction: column;
    gap: .85rem;
    grid-template-columns: none;
}

.page-product .product-page-bp .product-bp-review-card {
    padding: 1.15rem 1.2rem;
    background: #fff;
    border: 1px solid #e9ecef;
    border-radius: 8px;
    transition: border-color .2s ease, box-shadow .2s ease;
}

.page-product .product-page-bp .product-bp-review-card:hover {
    border-color: #d1d5db;
    box-shadow: 0 4px 14px rgba(15, 23, 42, .06);
}

.page-product .product-page-bp .product-bp-review-card-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem 1rem;
    margin-bottom: .75rem;
}

.page-product .product-page-bp .product-bp-review-author-block {
    display: flex;
    align-items: center;
    gap: .75rem;
    min-width: 0;
}

.page-product .product-page-bp .product-bp-review-avatar {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    background: var(--color-ink);
    color: #fff;
    font-size: .95rem;
    font-weight: 700;
    letter-spacing: .02em;
}

.page-product .product-page-bp .product-bp-review-author-meta {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    min-width: 0;
}

.page-product .product-page-bp .product-review-author {
    font-size: .9rem;
    font-weight: 700;
    color: var(--color-ink);
}

.page-product .product-page-bp .product-bp-review-verified {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: .15rem .45rem;
    border-radius: 4px;
    background: #ecfdf5;
    color: #047857;
    font-size: .65rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.page-product .product-page-bp .product-bp-review-date {
    font-size: .76rem;
    color: var(--color-muted);
}

.page-product .product-page-bp .product-bp-review-rating {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .2rem;
    flex-shrink: 0;
}

.page-product .product-page-bp .product-bp-review-rating-num {
    font-size: .82rem;
    font-weight: 700;
    color: var(--color-ink);
}

.page-product .product-page-bp .product-review-title {
    margin: 0 0 .45rem;
    font-size: .98rem;
    font-weight: 700;
    line-height: 1.35;
    color: var(--color-ink);
}

.page-product .product-page-bp .product-review-body {
    margin: 0;
    font-size: .9rem;
    line-height: 1.65;
    color: var(--color-text);
}

.page-product .product-page-bp .product-bp-reviews-more {
    display: block;
    width: 100%;
    margin-top: .85rem;
    padding: .7rem 1rem;
    border: 1px solid #e9ecef;
    border-radius: 6px;
    background: #fafbfc;
    font-size: .84rem;
    font-weight: 600;
    color: var(--color-ink);
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease;
}

.page-product .product-page-bp .product-bp-reviews-more:hover {
    background: #f1f3f5;
    border-color: #d1d5db;
}

.page-product .product-page-bp .product-bp-reviews-list.is-collapsed .product-review-card-guest:nth-child(n+4) {
    display: none;
}

@media (max-width: 991px) {
    .page-product .product-page-bp .product-bp-reviews-summary-panel {
        grid-template-columns: auto 1fr;
        grid-template-rows: auto auto;
    }

    .page-product .product-page-bp .product-bp-reviews-distribution {
        grid-column: 1 / -1;
    }
}

@media (max-width: 768px) {
    .page-product .product-page-bp .product-bp-reviews-summary-panel {
        grid-template-columns: 1fr;
        gap: 1rem;
        padding: 1rem;
    }

    .page-product .product-page-bp .product-bp-reviews-summary-score {
        justify-content: center;
    }

    .page-product .product-page-bp .product-bp-reviews-summary-detail {
        align-items: center;
        text-align: center;
    }

    .page-product .product-page-bp .product-bp-review-card-head {
        flex-direction: column;
    }

    .page-product .product-page-bp .product-bp-review-rating {
        flex-direction: row;
        align-items: center;
        width: 100%;
        justify-content: space-between;
    }
}

/* ── Product UX v56 — descripción completa y profesional ── */

.page-product .product-page-bp .product-bp-content-section {
    margin-top: 2rem;
    padding: clamp(1.35rem, 2.5vw, 2rem);
    background: #fff;
    border: 1px solid #e9ecef;
    border-radius: 10px;
}

.page-product .product-page-bp .product-bp-content-header {
    margin-bottom: 1.25rem;
    padding-bottom: .75rem;
    border-bottom: 1px solid #eee;
}

.page-product .product-page-bp .product-bp-content-header h2 {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(1.15rem, 2.2vw, 1.4rem);
    font-weight: 700;
    color: var(--color-ink);
}

.page-product .product-page-bp .product-bp-desc-layout.has-toc {
    grid-template-columns: minmax(180px, 220px) minmax(0, 1fr);
    gap: 1.5rem 2rem;
}

.page-product .product-page-bp .product-bp-desc-toc {
    padding: .85rem 1rem;
    background: #fafbfc;
    border: 1px solid #e9ecef;
    border-radius: 8px;
}

.page-product .product-page-bp .product-bp-desc-toc .product-desc-toc-label {
    border-bottom-color: #e9ecef;
    color: var(--color-ink);
}

.page-product .product-page-bp .product-bp-desc-toc .product-desc-toc-item a {
    border-bottom-color: #f1f3f5;
    padding: .4rem 0;
    font-size: .78rem;
}

.page-product .product-page-bp .product-bp-desc-toc .product-desc-toc-item a.is-active {
    color: var(--color-accent);
}

.page-product .product-page-bp .product-bp-features {
    margin: 0 0 1.5rem;
    padding: 1rem 1.1rem;
    background: #fafbfc;
    border: 1px solid #e9ecef;
    border-radius: 8px;
}

.page-product .product-page-bp .product-bp-features-title {
    margin: 0 0 .75rem;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--color-muted);
}

.page-product .product-page-bp .product-bp-features-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: .55rem .85rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.page-product .product-page-bp .product-bp-feature-item {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    padding: .55rem .65rem;
    background: #fff;
    border: 1px solid #eef0f2;
    border-radius: 6px;
    font-size: .86rem;
    line-height: 1.45;
    color: var(--color-text);
}

.page-product .product-page-bp .product-bp-feature-item .product-feature-mark {
    flex-shrink: 0;
    margin-top: .1rem;
    color: var(--color-accent);
}

.page-product .product-page-bp .product-bp-description-wrap {
    max-height: none !important;
    overflow: visible !important;
}

.page-product .product-page-bp .product-bp-description.prose {
    font-size: .94rem;
    line-height: 1.75;
    color: var(--color-text);
}

.page-product .product-page-bp .product-bp-description.prose > p:first-child {
    margin-top: 0;
    font-size: 1rem;
    line-height: 1.7;
    color: var(--color-ink);
}

.page-product .product-page-bp .product-bp-description.prose p {
    margin: 0 0 1rem;
}

.page-product .product-page-bp .product-bp-description.prose h2 {
    margin: 1.75rem 0 .75rem;
    padding-top: 1.25rem;
    border-top: 1px solid #eee;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--color-ink);
}

.page-product .product-page-bp .product-bp-description.prose h2:first-child {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
}

.page-product .product-page-bp .product-bp-description.prose h3 {
    margin: 1.25rem 0 .55rem;
    font-size: .95rem;
    font-weight: 700;
    color: var(--color-ink);
}

.page-product .product-page-bp .product-bp-description.prose ul,
.page-product .product-page-bp .product-bp-description.prose ol {
    margin: 0 0 1rem;
    padding-left: 1.35rem;
}

.page-product .product-page-bp .product-bp-description.prose li {
    margin-bottom: .4rem;
}

.page-product .product-page-bp .product-bp-description.prose li::marker {
    color: var(--color-accent);
}

.page-product .product-page-bp .product-bp-description.prose strong {
    font-weight: 700;
    color: var(--color-ink);
}

.page-product .product-page-bp .product-bp-description.prose a {
    color: var(--color-ink);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.page-product .product-page-bp .product-bp-description.prose a:hover {
    color: var(--color-accent);
}

.page-product .product-page-bp .product-bp-description.prose img {
    max-width: 100%;
    height: auto;
    margin: 1rem 0;
    border-radius: 8px;
    border: 1px solid #e9ecef;
}

.page-product .product-page-bp .product-bp-description.prose table {
    width: 100%;
    margin: 1rem 0;
    border-collapse: collapse;
    font-size: .88rem;
}

.page-product .product-page-bp .product-bp-description.prose th,
.page-product .product-page-bp .product-bp-description.prose td {
    padding: .55rem .75rem;
    border: 1px solid #e9ecef;
    text-align: left;
}

.page-product .product-page-bp .product-bp-description.prose th {
    background: #fafbfc;
    font-weight: 700;
}

.page-product .product-page-bp .product-desc-toggle,
.page-product .product-page-bp .product-description-fade {
    display: none !important;
}

@media (max-width: 768px) {
    .page-product .product-page-bp .product-bp-features-list {
        grid-template-columns: 1fr;
    }

    .page-product .product-page-bp .product-bp-desc-layout.has-toc {
        grid-template-columns: 1fr;
    }

    .page-product .product-page-bp .product-bp-desc-toc {
        position: static;
        max-height: none;
        overflow: visible;
    }
}

/* ── Product UX v57 — productos relacionados profesionales ── */

.page-product .product-page-bp .product-bp-related-section {
    margin-top: 2rem;
    padding: clamp(1.35rem, 2.5vw, 2rem);
    background: #fff;
    border: 1px solid #e9ecef;
    border-radius: 10px;
}

.page-product .product-page-bp .product-bp-related-header {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: 1.25rem;
    padding-bottom: .75rem;
    border-bottom: 1px solid #eee;
}

.page-product .product-page-bp .product-bp-related-header-text {
    flex: 1 1 auto;
    min-width: 0;
}

.page-product .product-page-bp .product-bp-related-header h2 {
    margin: 0 0 .25rem;
    font-family: var(--font-display);
    font-size: clamp(1.15rem, 2.2vw, 1.4rem);
    font-weight: 700;
    color: var(--color-ink);
}

.page-product .product-page-bp .product-bp-related-sub {
    margin: 0;
    font-size: .84rem;
    color: var(--color-muted);
}

.page-product .product-page-bp .product-bp-related-cta {
    flex: 0 0 auto;
    margin-left: auto;
    padding: .5rem 0;
    font-size: .84rem;
    font-weight: 600;
    color: var(--color-ink);
    text-decoration: none;
    white-space: nowrap;
    transition: color .15s ease;
}

.page-product .product-page-bp .product-bp-related-cta:hover {
    color: var(--color-accent);
}

.page-product .product-page-bp .product-bp-related-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 1rem;
    margin: 0;
    padding: 0;
    overflow: visible;
    scroll-snap-type: none;
}

.page-product .product-page-bp .product-bp-related-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    margin: 0;
    border: 1px solid #e9ecef !important;
    border-radius: 8px !important;
    background: #fff !important;
    overflow: hidden;
    box-shadow: none !important;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.page-product .product-page-bp .product-bp-related-card:hover {
    border-color: #d1d5db !important;
    box-shadow: 0 6px 20px rgba(15, 23, 42, .08) !important;
    transform: translateY(-2px);
}

.page-product .product-page-bp .product-bp-related-card .favorite-form {
    position: absolute;
    top: .5rem;
    right: .5rem;
    z-index: 2;
}

.page-product .product-page-bp .product-bp-related-card .favorite-btn {
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    border: 1px solid #e9ecef;
    background: rgba(255, 255, 255, .95);
    font-size: .9rem;
    line-height: 1;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .06);
}

.page-product .product-page-bp .product-bp-related-card .product-card-link {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    height: 100%;
    min-height: 0;
}

.page-product .product-page-bp .product-bp-related-card .product-card-media {
    aspect-ratio: 1;
    height: auto;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff !important;
    border: 0 !important;
    border-bottom: 0 !important;
    border-radius: 0 !important;
}

.page-product .product-page-bp .product-bp-related-card .product-card-media img,
.page-product .product-page-bp .product-bp-related-card .product-card-media .product-placeholder {
    width: 100%;
    height: 100%;
    max-height: none;
    object-fit: contain;
    padding: .75rem .75rem .35rem;
    transform: none !important;
}

.page-product .product-page-bp .product-bp-related-card:hover .product-card-media img,
.page-product .product-page-bp .product-bp-related-card:hover .product-card-media .product-placeholder {
    transform: none !important;
}

.page-product .product-page-bp .product-bp-related-card .product-card-action {
    display: none !important;
}

.page-product .product-page-bp .product-bp-related-card .product-card-body {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    gap: .25rem;
    padding: 0 .95rem 1rem !important;
    min-height: 0;
}

.page-product .product-page-bp .product-bp-related-card .product-card-body h3 {
    margin: 0 0 .2rem;
    font-size: .88rem;
    font-weight: 700;
    line-height: 1.35;
    color: var(--color-ink);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: calc(1.35em * 2);
}

.page-product .product-page-bp .product-bp-related-card .product-ref {
    margin: 0;
    font-size: .72rem;
    color: var(--color-muted);
}

.page-product .product-page-bp .product-bp-related-card .product-card-price {
    margin: auto 0 0;
    padding-top: .55rem;
}

.page-product .product-page-bp .product-bp-related-card .product-card-price .price-tag {
    font-size: .95rem;
    font-weight: 800;
    color: var(--color-ink);
}

.page-product .product-page-bp .product-bp-related-card .product-card-price .price-ht {
    font-size: .72rem;
    font-weight: 600;
    color: var(--color-muted);
}

.page-product .product-page-bp .product-bp-related-card .product-card-price .price-locked {
    font-size: .78rem;
    font-weight: 600;
    font-style: normal !important;
    color: var(--color-muted);
}

.page-product .product-page-bp .product-bp-related-card .product-card-stock {
    display: block !important;
    margin: .2rem 0 0;
    padding-top: .45rem;
    border-top: 1px solid #f1f3f5;
    font-size: .72rem;
    color: var(--color-muted);
}

.page-product .product-page-bp .product-bp-related-card .product-card-stock .badge {
    margin-left: .25rem;
    font-size: .65rem;
}

@media (min-width: 1200px) {
    .page-product .product-page-bp .product-bp-related-grid {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }
}

@media (max-width: 768px) {
    .page-product .product-page-bp .product-bp-related-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .75rem;
    }

    .page-product .product-page-bp .product-bp-related-card .product-card-body h3 {
        min-height: 0;
        -webkit-line-clamp: 3;
        line-clamp: 3;
    }

    .page-product .product-page-bp .product-bp-related-header {
        flex-wrap: wrap;
        align-items: flex-start;
        gap: .65rem 1rem;
    }

    .page-product .product-page-bp .product-bp-related-cta {
        margin-left: auto;
        align-self: center;
    }
}

/* ── Catalog UX v58 — sin barras flotantes en listado ── */

.page-catalog .catalog-guest-strip.panel-card {
    position: static;
    margin-bottom: .75rem;
    border-bottom: 1px solid var(--color-border);
    border-left: 3px solid var(--color-ink);
}

.page-catalog .catalog-controls,
.page-catalog .catalog-toolbar-sticky,
.page-catalog .catalog-controls .catalog-toolbar-sticky {
    position: static !important;
    top: auto !important;
    z-index: auto;
    backdrop-filter: none;
}

.page-catalog .catalog-controls .catalog-guest-strip {
    display: none;
}

/* ── Home UX v59 — warm-modern (taste-skill), desktop split + mobile ── */

.page-home-warm {
    --home-warm-bg: #f7f3ec;
    --home-warm-surface: #fffdf8;
    --home-warm-muted: #f0ebe3;
    --home-warm-border: #e5ddd0;
    --home-warm-text-muted: #5c564c;
    --home-warm-shadow: 0 10px 32px rgba(44, 38, 28, .07);
}

.page-home-warm .main {
    background:
        radial-gradient(ellipse 75% 45% at 12% -5%, rgba(47, 181, 210, .07), transparent 58%),
        radial-gradient(ellipse 55% 40% at 95% 8%, rgba(47, 181, 210, .04), transparent 52%),
        linear-gradient(180deg, var(--home-warm-bg) 0%, #f3efe8 100%);
}

/* Hero — banda superior + escena dividida en desktop */
.page-home-warm .home-hero {
    margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
}

.page-home-warm .home-warm-stack {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-top: clamp(.5rem, 1.5vw, 1rem);
    border: 1px solid var(--home-warm-border);
    border-radius: 0;
    overflow: hidden;
    background: var(--home-warm-surface);
    box-shadow: var(--home-warm-shadow);
}

.page-home-warm .home-hero-strip {
    margin-bottom: 0;
    border-bottom: 1px solid var(--home-warm-border);
}

.page-home-warm .home-hero-strip-slider {
    border: 0;
    box-shadow: none;
    border-radius: 0;
}

.page-home-warm .home-hero-media {
    background: #1a1a1a;
    margin-top: 0;
}

.page-home-warm .home-hero-media .hero-banner-slider {
    border: 0;
    border-radius: 0;
}

.page-home-warm .home-hero-media .hero-banner-slider::after {
    height: 5rem;
    background: linear-gradient(to top, rgba(26, 22, 18, .45), transparent);
}

/* Panel editorial — alineado a la izquierda */
.page-home-warm .home-hero-panel {
    padding: clamp(1.5rem, 3vw, 2.5rem) clamp(1.25rem, 3.5vw, 2.75rem);
    text-align: left;
    background:
        radial-gradient(ellipse 90% 60% at 0% 0%, rgba(47, 181, 210, .07), transparent 65%),
        linear-gradient(180deg, var(--home-warm-surface) 0%, var(--home-warm-muted) 100%);
    border-top: 1px solid var(--home-warm-border);
}

.page-home-warm .home-hero-panel-inner {
    max-width: 36rem;
    margin: 0;
}

.page-home-warm .home-hero-panel h1 {
    font-size: clamp(1.65rem, 2.8vw, 2.35rem);
    line-height: 1.12;
    letter-spacing: -.02em;
    max-width: 18ch;
}

.page-home-warm .home-hero-lead {
    margin-left: 0;
    margin-right: 0;
    max-width: 42ch;
    color: var(--home-warm-text-muted);
    font-size: clamp(.95rem, 1.5vw, 1.06rem);
}

.page-home-warm .home-hero-panel .home-hero-search {
    margin-left: 0;
    margin-right: 0;
    max-width: 100%;
    border-radius: 0;
    border-color: var(--home-warm-border);
    background: #fff;
    box-shadow: 0 2px 8px rgba(44, 38, 28, .04);
}

.page-home-warm .home-hero-panel .home-hero-search:focus-within {
    border-color: var(--home-accent, var(--color-accent));
    box-shadow: 0 0 0 3px rgba(47, 181, 210, .18);
}

.page-home-warm .home-search-hint {
    text-align: left;
    margin-left: 0;
}

.page-home-warm .home-hero-actions {
    justify-content: flex-start;
}

.page-home-warm .home-hero-perks {
    justify-content: flex-start;
}

.page-home-warm .home-hero-perk {
    border-radius: 0;
    border-color: var(--home-warm-border);
    background: rgba(255, 255, 255, .75);
}

/* Trust — banda integrada */
.page-home-warm .home-trust-strip {
    background: var(--home-warm-muted);
    border-top: 1px solid var(--home-warm-border);
}

.page-home-warm .home-trust-item {
    border-right-color: var(--home-warm-border);
    padding: 1rem 1.35rem;
}

.page-home-warm .home-trust-icon {
    border-radius: 0;
    background: var(--home-warm-surface);
    border-color: var(--home-warm-border);
    box-shadow: none;
}

.page-home-warm .home-trust-item span {
    color: var(--home-warm-text-muted);
}

/* KPI */
.page-home-warm .home-stats {
    margin: clamp(1.75rem, 3.5vw, 2.75rem) 0;
}

.page-home-warm .home-stat-card {
    background: var(--home-warm-surface);
    border-color: var(--home-warm-border);
    border-radius: 0;
}

.page-home-warm .home-stat-value {
    font-variant-numeric: tabular-nums;
}

/* Secciones — ritmo editorial, menos caja */
.page-home-warm .home-band {
    border-color: var(--home-warm-border);
}

.page-home-warm .home-band-muted {
    background: linear-gradient(180deg, var(--home-warm-muted) 0%, var(--home-warm-bg) 100%);
}

.page-home-warm .home-band-featured {
    background: var(--home-warm-surface);
}

.page-home-warm .section-title,
.page-home-warm .home-section-head {
    text-align: left;
}

.page-home-warm .section-title h2::after {
    margin-left: 0;
    margin-right: auto;
}

.page-home-warm .section-title p {
    max-width: 52ch;
    margin-left: 0;
    margin-right: auto;
}

.page-home-warm .section-cta {
    text-align: left;
}

.page-home-warm .home-features .feature-card.panel-card,
.page-home-warm .home-steps .step-card.panel-card {
    background: var(--home-warm-surface);
    border-color: var(--home-warm-border);
    border-radius: 0;
    box-shadow: none;
}

.page-home-warm .home-features .feature-card.panel-card:hover,
.page-home-warm .home-steps .step-card.panel-card:hover {
    border-color: rgba(47, 181, 210, .45);
    box-shadow: 0 6px 20px rgba(44, 38, 28, .06);
    transform: translateY(-2px);
}

.page-home-warm .category-card-home .category-card-circle {
    border-radius: 0;
    border-color: var(--home-warm-border);
}

.page-home-warm .home-service {
    background: var(--home-warm-surface);
    border-color: var(--home-warm-border);
    border-radius: 0;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding-left: calc(50vw - 50%);
    padding-right: calc(50vw - 50%);
}

.page-home-warm .home-service-copy.panel-card {
    border-radius: 0;
    border-color: var(--home-warm-border);
    box-shadow: none;
    background: var(--home-warm-muted);
}

.page-home-warm .home-service-visual img {
    border-radius: 0;
}

.page-home-warm .home-seo.panel-card {
    background: var(--home-warm-surface);
    border-color: var(--home-warm-border);
    border-radius: 0;
    box-shadow: none;
}

.page-home-warm .home-about {
    border-color: var(--home-warm-border);
    border-radius: 0;
    overflow: hidden;
}

/* Dashboard conectado */
.page-home-warm .home-dashboard.panel-card {
    background: var(--home-warm-surface);
    border-color: var(--home-warm-border);
    border-radius: 0;
    box-shadow: var(--home-warm-shadow);
}

.page-home-warm .home-shortcut {
    border-radius: 0;
    border-color: var(--home-warm-border);
    background: #fff;
}

.page-home-warm .home-recent-orders.panel-card {
    border-radius: 0;
    border-color: var(--home-warm-border);
}

/* Desktop — hero en grid 55/45 */
@media (min-width: 992px) {
    .page-home-warm .home-warm-stack {
        display: grid;
        grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr);
        grid-template-rows: auto minmax(280px, auto) auto;
        grid-template-areas:
            "strip strip"
            "media panel"
            "trust trust";
    }

    .page-home-warm .home-hero-strip {
        grid-area: strip;
    }

    .page-home-warm .home-hero-media {
        grid-area: media;
        aspect-ratio: auto;
        max-height: none;
        min-height: 100%;
        height: 100%;
    }

    .page-home-warm .home-hero-panel {
        grid-area: panel;
        display: flex;
        align-items: center;
        border-top: 0;
        border-left: 1px solid var(--home-warm-border);
        min-height: 0;
    }

    .page-home-warm .home-trust-strip {
        grid-area: trust;
    }

    .page-home-warm .home-hero-media .hero-banner-arrow {
        width: 2.5rem;
        height: 2.5rem;
    }
}

/* Tablet */
@media (max-width: 991px) {
    .page-home-warm .home-hero-panel h1 {
        max-width: none;
    }

    .page-home-warm .home-stats-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Móvil */
@media (max-width: 768px) {
    .page-home-warm .home-warm-stack {
        border-radius: 0;
        margin-top: .35rem;
    }

    .page-home-warm .home-hero-media {
        aspect-ratio: 16 / 9;
        max-height: min(52vw, 240px);
        min-height: 180px;
    }

    .page-home-warm .home-hero-panel {
        padding: 1.35rem 1.1rem 1.5rem;
    }

    .page-home-warm .home-hero-panel h1 {
        font-size: clamp(1.45rem, 6.5vw, 1.85rem);
        max-width: none;
    }

    .page-home-warm .home-hero-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .page-home-warm .home-hero-actions .btn-lg {
        width: 100%;
        justify-content: center;
    }

    .page-home-warm .home-trust-strip {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }

    .page-home-warm .home-trust-strip::-webkit-scrollbar {
        display: none;
    }

    .page-home-warm .home-trust-item {
        flex: 0 0 min(78vw, 17.5rem);
        scroll-snap-align: start;
        border-right: 1px solid var(--home-warm-border);
        border-bottom: 0;
    }

    .page-home-warm .home-trust-item:last-child {
        border-right: 0;
    }

    .page-home-warm .home-stats-grid,
    .page-home-warm .home-stats-grid-3 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .65rem;
    }

    .page-home-warm .home-stat-card {
        padding: 1rem .75rem;
    }

    .page-home-warm .home-band {
        padding-left: 4%;
        padding-right: 4%;
    }

    .page-home-warm .category-grid-home {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .75rem;
    }

    .page-home-warm .product-grid-home-featured {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .65rem;
    }

    .page-home-warm .home-dashboard-shortcuts {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .6rem;
    }

    .page-home-warm .home-dashboard-main .actions-inline {
        flex-direction: column;
        align-items: stretch;
    }

    .page-home-warm .home-dashboard-main .actions-inline .btn {
        width: 100%;
        justify-content: center;
    }

    .page-home-warm .home-service {
        padding: 1.25rem 4%;
    }

    .page-home-warm .home-service-copy.panel-card,
    .page-home-warm .home-seo.panel-card,
    .page-home-warm .home-features .feature-card.panel-card {
        margin-left: 0;
        margin-right: 0;
    }
}

@media (max-width: 420px) {
    .page-home-warm .product-grid-home-featured {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .page-home-warm .home-hero-perk {
        font-size: .74rem;
        padding: .4rem .6rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .page-home-warm .home-hero.is-ready .home-hero-media,
    .page-home-warm .home-hero.is-ready .home-hero-panel,
    .page-home-warm .home-hero.is-ready .home-trust-strip > * {
        animation: none;
    }

    .page-home-warm .home-features .feature-card.panel-card:hover,
    .page-home-warm .home-steps .step-card.panel-card:hover {
        transform: none;
    }
}

/* ── Home UX v60 — editorial bands, categorías, timeline, CTA ── */

.page-home-warm .home-hero-badge {
    border-radius: 0;
    letter-spacing: .06em;
    background: rgba(47, 181, 210, .1);
    border-color: rgba(47, 181, 210, .28);
    color: #0d6b7d;
}

.page-home-warm .home-band {
    padding-top: clamp(2.25rem, 4.5vw, 3.25rem);
    padding-bottom: clamp(2.25rem, 4.5vw, 3.25rem);
}

.page-home-warm .section-cta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .65rem;
    margin-top: 1.5rem;
}

/* KPI — franja unificada en desktop */
@media (min-width: 769px) {
    .page-home-warm .home-warm-stats-grid {
        display: flex;
        flex-wrap: nowrap;
        gap: 0;
        border: 1px solid var(--home-warm-border);
        border-radius: 0;
        overflow: hidden;
        background: var(--home-warm-surface);
        box-shadow: var(--home-warm-shadow);
    }

    .page-home-warm .home-warm-stats-grid .home-stat-card {
        flex: 1 1 0;
        min-width: 0;
        border: 0;
        border-right: 1px solid var(--home-warm-border);
        border-radius: 0;
        padding: 1.35rem 1rem;
    }

    .page-home-warm .home-warm-stats-grid .home-stat-card:last-child {
        border-right: 0;
    }

    .page-home-warm .home-warm-stats-grid .home-stat-card::before {
        display: none;
    }

    .page-home-warm .home-warm-stats-grid .home-stat-card-accent {
        background: linear-gradient(135deg, #2fb5d2 0%, #168a9e 100%);
    }
}

/* Ventajas — lista editorial, no tres cajas iguales */
.page-home-warm .home-warm-features {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    margin-bottom: 0;
    border: 1px solid var(--home-warm-border);
    border-radius: 0;
    overflow: hidden;
    background: var(--home-warm-surface);
}

.page-home-warm .home-warm-features .feature-card.panel-card {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto;
    gap: .3rem .9rem;
    align-items: start;
    padding: 1.2rem 1.35rem;
    margin: 0;
    border: 0;
    border-radius: 0;
    border-bottom: 1px solid var(--home-warm-border);
    border-left: 0 !important;
    box-shadow: none !important;
}

.page-home-warm .home-warm-features .feature-card.panel-card:last-child {
    border-bottom: 0;
}

.page-home-warm .home-warm-features .feature-icon {
    grid-row: 1 / span 2;
    align-self: center;
    width: 2.65rem;
    height: 2.65rem;
    margin: 0;
    border-radius: 0;
    background: rgba(47, 181, 210, .12);
    color: #168a9e;
    box-shadow: none;
}

.page-home-warm .home-warm-features .feature-card h3 {
    margin: 0;
    font-size: 1rem;
    align-self: end;
}

.page-home-warm .home-warm-features .feature-card p {
    grid-column: 2;
    margin: 0;
    font-size: .88rem;
    line-height: 1.5;
    max-width: 48ch;
}

@media (min-width: 900px) {
    .page-home-warm .home-warm-features {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .page-home-warm .home-warm-features .feature-card.panel-card {
        border-bottom: 0;
        border-right: 1px solid var(--home-warm-border);
        padding: 1.35rem 1.25rem;
        grid-template-columns: 1fr;
        grid-template-rows: auto auto auto;
        gap: .65rem;
        text-align: left;
    }

    .page-home-warm .home-warm-features .feature-card.panel-card:last-child {
        border-right: 0;
    }

    .page-home-warm .home-warm-features .feature-icon {
        grid-row: auto;
        align-self: start;
    }

    .page-home-warm .home-warm-features .feature-card h3,
    .page-home-warm .home-warm-features .feature-card p {
        grid-column: 1;
    }
}

/* Pasos — timeline horizontal */
.page-home-warm .home-warm-steps {
    position: relative;
    gap: clamp(.75rem, 2vw, 1.35rem);
}

.page-home-warm .home-warm-steps::before {
    content: '';
    position: absolute;
    top: 1.15rem;
    left: 8%;
    right: 8%;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--home-warm-border) 8%, var(--home-warm-border) 92%, transparent);
    pointer-events: none;
    z-index: 0;
}

.page-home-warm .home-warm-steps .step-card.panel-card {
    position: relative;
    z-index: 1;
    padding: 2.65rem 0 0;
    margin: 0;
    border: 0 !important;
    border-radius: 0;
    background: transparent;
    box-shadow: none !important;
    text-align: left;
}

.page-home-warm .home-warm-steps .home-step-num {
    left: 0;
    top: 0;
    width: 2.35rem;
    height: 2.35rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0;
    background: var(--home-warm-surface);
    border: 2px solid rgba(47, 181, 210, .45);
    color: #168a9e;
    font-size: .68rem;
    box-shadow: 0 0 0 4px var(--home-warm-bg);
}

.page-home-warm .home-warm-steps .step-card h3 {
    margin: 0 0 .35rem;
    font-size: .95rem;
}

.page-home-warm .home-warm-steps .step-card p {
    font-size: .84rem;
    line-height: 1.45;
    max-width: 22ch;
}

/* Categorías — imagen + etiqueta debajo */
.page-home-warm .category-card-home-warm {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: .5rem;
    text-decoration: none;
    color: inherit;
}

.page-home-warm .category-card-home-warm:hover {
    text-decoration: none;
    color: inherit;
}

.page-home-warm .category-card-home-warm .category-card-media {
    position: relative;
    aspect-ratio: 1;
    border-radius: 0;
    overflow: hidden;
    border: 2px solid var(--home-warm-border);
    background: var(--home-warm-muted);
    transition: border-color .22s ease, box-shadow .22s ease, transform .22s ease;
}

.page-home-warm .category-card-home-warm .category-card-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .35s ease;
}

.page-home-warm .category-card-home-warm:hover .category-card-media,
.page-home-warm .category-card-home-warm:focus-visible .category-card-media {
    border-color: rgba(47, 181, 210, .55);
    box-shadow: 0 8px 22px rgba(44, 38, 28, .08);
    transform: translateY(-2px);
}

.page-home-warm .category-card-home-warm:hover .category-card-media img,
.page-home-warm .category-card-home-warm:focus-visible .category-card-media img {
    transform: scale(1.04);
}

.page-home-warm .category-card-home-warm .category-card-label {
    display: block;
    font-family: var(--font-display);
    font-size: clamp(.78rem, 1.4vw, .9rem);
    font-weight: 700;
    line-height: 1.25;
    text-align: center;
    color: var(--color-text);
}

.page-home-warm .home-warm-categories {
    gap: clamp(.65rem, 1.5vw, 1.1rem);
}

/* Productos destacados */
.page-home-warm .home-warm-featured .product-card {
    border-radius: 0;
    border-color: var(--home-warm-border);
    background: #fff;
    overflow: hidden;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.page-home-warm .home-warm-featured .product-card:hover {
    border-color: rgba(47, 181, 210, .45);
    box-shadow: 0 8px 24px rgba(44, 38, 28, .07);
    transform: translateY(-2px);
}

.page-home-warm .home-warm-featured .product-card-media {
    background: var(--home-warm-muted);
}

.page-home-warm .home-band-featured .section-title p {
    display: block;
    padding: 0;
    background: transparent;
    border: 0;
    color: var(--home-warm-text-muted);
    font-size: .92rem;
}

/* Bloque servicio + about */
.page-home-warm .home-about img {
    display: block;
    width: 100%;
    height: auto;
}

.page-home-warm .home-seo.panel-card {
    max-width: 68ch;
    margin-left: 0;
    margin-right: auto;
    padding: 1.35rem 1.5rem;
}

.page-home-warm .home-seo.panel-card h2 {
    font-size: clamp(1.15rem, 2.2vw, 1.35rem);
    margin-bottom: .65rem;
}

.page-home-warm .home-seo.panel-card p {
    margin: 0;
    color: var(--home-warm-text-muted);
    line-height: 1.65;
    font-size: .92rem;
}

/* CTA contacto — tono cálido alineado con la home */
.page-home-warm .contact-cta-band {
    margin-top: clamp(2rem, 4vw, 3rem);
}

.page-home-warm .contact-cta-band-inner.panel-card {
    border-radius: 0;
    border: 1px solid rgba(47, 181, 210, .22);
    background:
        radial-gradient(ellipse 55% 80% at 100% 0%, rgba(47, 181, 210, .18), transparent 58%),
        linear-gradient(135deg, #2c2824 0%, #1a3d44 52%, #243028 100%);
    box-shadow: var(--home-warm-shadow);
}

.page-home-warm .contact-cta-band-text h2 {
    max-width: 22ch;
}

.page-home-warm .contact-cta-band-actions .btn-primary {
    background: #fff;
    border-color: #fff;
    color: #168a9e;
}

.page-home-warm .contact-cta-band-actions .btn-primary:hover {
    background: rgba(255, 255, 255, .92);
    border-color: #fff;
    color: #0d6b7d;
}

/* Dashboard conectado */
.page-home-warm .home-dashboard-main h1 {
    font-size: clamp(1.4rem, 3vw, 1.95rem);
    letter-spacing: -.02em;
    max-width: 20ch;
}

.page-home-warm .home-dashboard-group-pill {
    border-radius: 0;
    background: rgba(47, 181, 210, .1);
    border: 1px solid rgba(47, 181, 210, .25);
    color: #168a9e;
}

.page-home-warm .home-shortcut {
    min-height: 5rem;
    padding: .75rem .55rem;
    transition: border-color .2s ease, background .2s ease, transform .2s ease, box-shadow .2s ease;
}

.page-home-warm .home-shortcut:hover,
.page-home-warm .home-shortcut:focus-visible {
    border-color: rgba(47, 181, 210, .5);
    background: rgba(47, 181, 210, .06);
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(44, 38, 28, .06);
}

.page-home-warm .home-stats-logged .home-stat-card-warn::before {
    background: linear-gradient(90deg, #c27803, #f59e0b);
}

@media (max-width: 899px) {
    .page-home-warm .home-warm-steps::before {
        display: none;
    }

    .page-home-warm .home-warm-steps {
        grid-template-columns: 1fr;
        gap: 0;
        border: 1px solid var(--home-warm-border);
        border-radius: 0;
        overflow: hidden;
        background: var(--home-warm-surface);
    }

    .page-home-warm .home-warm-steps .step-card.panel-card {
        padding: 1.1rem 1.15rem 1.1rem 3.75rem;
        border-bottom: 1px solid var(--home-warm-border) !important;
    }

    .page-home-warm .home-warm-steps .step-card.panel-card:last-child {
        border-bottom: 0 !important;
    }

    .page-home-warm .home-warm-steps .home-step-num {
        left: 1rem;
        top: 1.05rem;
        width: 2rem;
        height: 2rem;
        box-shadow: none;
    }

    .page-home-warm .home-warm-steps .step-card p {
        max-width: none;
    }
}

@media (max-width: 768px) {
    .page-home-warm .home-hero-perks {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x proximity;
        justify-content: flex-start;
        gap: .45rem;
        padding-bottom: .15rem;
        scrollbar-width: none;
    }

    .page-home-warm .home-hero-perks::-webkit-scrollbar {
        display: none;
    }

    .page-home-warm .home-hero-perk {
        flex: 0 0 auto;
        scroll-snap-align: start;
        white-space: nowrap;
    }

    .page-home-warm .section-cta .btn-lg {
        flex: 1 1 100%;
        justify-content: center;
    }

    .page-home-warm .contact-cta-band-inner.panel-card {
        grid-template-columns: 1fr;
        gap: 1.15rem;
        padding: 1.35rem 1.15rem;
    }

    .page-home-warm .contact-cta-band-actions {
        width: 100%;
        min-width: 0;
    }

    .page-home-warm .contact-cta-band-actions .btn {
        width: 100%;
        justify-content: center;
    }

    .page-home-warm .home-warm-featured .product-card:hover {
        transform: none;
    }
}

@media (max-width: 640px) {
    .page-home-warm .home-warm-categories {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x mandatory;
        gap: .65rem;
        padding-bottom: .35rem;
        scrollbar-width: none;
    }

    .page-home-warm .home-warm-categories::-webkit-scrollbar {
        display: none;
    }

    .page-home-warm .home-warm-categories .category-card-home-warm {
        flex: 0 0 min(42vw, 9.5rem);
        scroll-snap-align: start;
    }
}

@media (prefers-reduced-motion: reduce) {
    .page-home-warm .category-card-home-warm:hover .category-card-media,
    .page-home-warm .home-warm-featured .product-card:hover,
    .page-home-warm .home-shortcut:hover {
        transform: none;
    }
}

/* ── Home UX v61 — fondo unificado (sin costuras entre secciones) ── */

body.page-home-warm {
    --home-warm-bg: #f5f1ea;
    --home-warm-surface: #f5f1ea;
    --home-warm-muted: #f5f1ea;
    --home-warm-elevated: #faf8f4;
    --home-warm-border: #e0d8cb;
    background: var(--home-warm-bg) !important;
}

.page-home-warm .main,
.page-home.page-home-warm .main {
    background: transparent !important;
}

/* Todas las bandas: mismo fondo que la página, solo línea divisoria */
.page-home-warm .home-band,
.page-home-warm .home-band-categories,
.page-home-warm .home-band-muted,
.page-home-warm .home-band-featured,
.page-home.page-home-warm .home-band-muted,
.page-home.page-home-warm .home-band-featured {
    background: transparent !important;
    border-top: 1px solid var(--home-warm-border);
    border-bottom: 0;
    box-shadow: none;
}

.page-home-warm .home-band-categories {
    padding-top: clamp(2.25rem, 4.5vw, 3.25rem);
}

.page-home-warm .home-stats {
    background: transparent;
}

/* Tarjetas y bloques: sin blanco puro sobre crema */
.page-home-warm .home-warm-features,
.page-home-warm .home-warm-features .feature-card.panel-card,
.page-home-warm .home-features .feature-card.panel-card {
    background: transparent !important;
    box-shadow: none !important;
}

.page-home-warm .home-warm-features .feature-card.panel-card::after,
.page-home-warm .home-features .feature-card.panel-card::after {
    display: none;
}

.page-home-warm .home-warm-features .feature-icon,
.page-home-warm .home-features .feature-icon {
    background: rgba(47, 181, 210, .12) !important;
    color: #168a9e !important;
    box-shadow: none !important;
}

.page-home-warm .home-warm-features {
    border-color: var(--home-warm-border);
}

.page-home-warm .home-warm-stats-grid {
    background: transparent;
}

.page-home-warm .home-stat-card,
.page-home-warm .home-warm-stats-grid .home-stat-card {
    background: transparent !important;
}

.page-home-warm .home-stat-card-accent,
.page-home-warm .home-warm-stats-grid .home-stat-card-accent {
    background: linear-gradient(135deg, rgba(47, 181, 210, .92) 0%, rgba(22, 138, 158, .95) 100%) !important;
}

.page-home-warm .home-warm-featured .product-card {
    background: var(--home-warm-elevated);
    border-color: var(--home-warm-border);
}

.page-home-warm .home-warm-steps {
    background: transparent;
}

@media (max-width: 899px) {
    .page-home-warm .home-warm-steps {
        background: transparent !important;
        border-color: var(--home-warm-border);
    }

    .page-home-warm .home-warm-steps .step-card.panel-card {
        background: transparent !important;
    }
}

.page-home-warm .home-hero-panel {
    background:
        radial-gradient(ellipse 90% 60% at 0% 0%, rgba(47, 181, 210, .06), transparent 65%),
        var(--home-warm-elevated);
}

.page-home-warm .home-warm-stack {
    background: var(--home-warm-elevated);
}

.page-home-warm .home-trust-strip {
    background: var(--home-warm-bg);
}

.page-home-warm .home-seo.panel-card,
.page-home-warm .home-service-copy.panel-card {
    background: var(--home-warm-elevated) !important;
    border-color: var(--home-warm-border);
    box-shadow: none !important;
}

.page-home-warm .home-dashboard.panel-card {
    background: var(--home-warm-elevated) !important;
}

.page-home-warm .home-shortcut {
    background: var(--home-warm-elevated);
}

/* Alineación CTA con títulos de sección */
.page-home-warm .home-section .section-cta,
.page-home-warm .home-section .section-title,
.page-home-warm .home-section .home-section-head {
    padding-left: 0;
    padding-right: 0;
    margin-left: 0;
    margin-right: 0;
}

/* ── Header UX v62 — Montserrat + mayúsculas en nav ── */

.header,
.topbar,
.category-nav {
    --header-nav-font: var(--font-sans);
    --header-nav-size: .72rem;
    --header-nav-spacing: .08em;
    --header-nav-weight: 600;
}

.nav-link,
.nav a:not(.btn) {
    font-family: var(--header-nav-font);
    font-size: var(--header-nav-size);
    font-weight: var(--header-nav-weight);
    letter-spacing: var(--header-nav-spacing);
    text-transform: uppercase;
    padding: .5rem .7rem;
}

.nav .nav-link.is-active,
.nav a:not(.btn).is-active {
    font-weight: 700;
    letter-spacing: .09em;
}

.nav .btn-header-cta {
    font-family: var(--header-nav-font);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    padding: .6rem 1rem;
}

.category-nav-link,
.category-nav-trigger,
.category-nav-go,
.category-nav-link-accent {
    font-family: var(--header-nav-font);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.category-nav-link-accent {
    font-weight: 700;
    letter-spacing: .08em;
}

.topbar-text {
    font-family: var(--header-nav-font);
    font-size: .7rem;
    letter-spacing: .03em;
}

.topbar-kicker,
.topbar-badge {
    font-family: var(--header-nav-font);
    letter-spacing: .1em;
}

.header-search input {
    font-family: var(--font-body);
    font-size: .875rem;
    text-transform: none;
    letter-spacing: normal;
}

.header-search input::placeholder {
    text-transform: none;
    letter-spacing: normal;
}

.header-search-btn {
    font-family: var(--header-nav-font);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}

/* Home cálida — header integrado con la página */
body.page-home-warm .header-main {
    background: rgba(250, 248, 244, .97);
}

body.page-home-warm .header {
    background: rgba(250, 248, 244, .92);
    border-bottom-color: var(--home-warm-border, #e0d8cb);
}

body.page-home-warm .topbar::after {
    background: linear-gradient(90deg, transparent, rgba(47, 181, 210, .65), transparent);
}

body.page-home-warm .nav .nav-link.is-active {
    color: #168a9e;
    background: rgba(47, 181, 210, .1);
    box-shadow: inset 0 -2px 0 #2fb5d2;
}

@media (max-width: 768px) {
    .nav .nav-link,
    .nav a:not(.btn) {
        font-size: .74rem;
        letter-spacing: .09em;
        padding: .7rem .55rem;
    }

    .nav .btn-header-cta {
        font-size: .72rem;
        letter-spacing: .1em;
    }

    .category-nav-link,
    .category-nav-trigger,
    .category-nav-go {
        font-size: .66rem;
        letter-spacing: .06em;
        padding-top: .85rem;
        padding-bottom: .85rem;
    }
}

/* ── Header UX v63 — diseño refinado (layout, nav, search, categorías) ── */

#site-header {
    --header-bg: rgba(255, 255, 255, .97);
    --header-border: rgba(0, 0, 0, .07);
    --header-surface: #f8f6f2;
    --header-ink: #1a1a1a;
}

#site-header.header {
    background: var(--header-bg);
    border-bottom: 0;
}

#site-header .header-main {
    background: transparent;
}

#site-header .header-main::before {
    height: 2px;
    background: linear-gradient(90deg, var(--color-accent) 0%, rgba(47, 181, 210, .35) 55%, transparent 100%);
}

#site-header .header-inner {
    padding: .85rem 0;
    min-height: 4.35rem;
    gap: 1.25rem 1.75rem;
}

#site-header.header.is-scrolled {
    background: rgba(255, 255, 255, .94);
    backdrop-filter: blur(12px);
    box-shadow: 0 6px 24px rgba(44, 38, 28, .07);
    border-bottom-color: rgba(0, 0, 0, .08);
}

#site-header.header.is-scrolled .header-inner {
    padding: .65rem 0;
    min-height: 3.85rem;
}

/* Nav — pills minimalistas + indicador activo */
#site-header .nav {
    gap: .1rem;
}

#site-header .nav-link,
#site-header .nav a:not(.btn) {
    border-radius: 0;
    color: #5c564c;
    transition:
        color .18s ease,
        background .18s ease,
        box-shadow .18s ease;
}

#site-header .nav-link:hover,
#site-header .nav a:not(.btn):hover {
    color: var(--header-ink);
    background: rgba(47, 181, 210, .07);
    box-shadow: none;
}

#site-header .nav .nav-link.is-active,
#site-header .nav a:not(.btn).is-active,
.site-body:not(.has-admin-panel) #site-header .nav .nav-link.is-active,
.site-body:not(.has-admin-panel) #site-header .nav a:not(.btn).is-active {
    color: #168a9e;
    font-weight: 700;
    background: rgba(47, 181, 210, .08);
    box-shadow: inset 0 -2px 0 var(--color-accent);
}

#site-header .nav .btn-header-cta {
    margin-left: .55rem;
    border-radius: 0;
    background: linear-gradient(135deg, #2fb5d2 0%, #1a9ab3 100%);
    border-color: #168a9e;
    color: #fff;
    box-shadow: 0 4px 14px rgba(47, 181, 210, .28);
}

#site-header .nav .btn-header-cta:hover {
    background: linear-gradient(135deg, #3ec4df 0%, #1f9fb8 100%);
    border-color: #1f9fb8;
    color: #fff;
    box-shadow: 0 6px 18px rgba(47, 181, 210, .32);
    transform: translateY(-1px);
}

.site-body:not(.has-admin-panel) #site-header .nav .btn-header-cta:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 18px rgba(47, 181, 210, .32);
}

/* Buscador — recto */
#site-header .header-search {
    max-width: 34rem;
    height: 2.65rem;
    border-radius: 0;
    border-color: #e0d8cb;
    background: var(--header-surface);
    box-shadow: none;
    padding: .15rem .15rem .15rem .25rem;
}

#site-header .header-search:focus-within {
    border-color: rgba(47, 181, 210, .55);
    background: #fff;
    box-shadow: 0 0 0 3px rgba(47, 181, 210, .16);
}

#site-header .header-search input {
    padding-left: .85rem;
}

#site-header .header-search input::placeholder {
    color: #8a8278;
}

#site-header .header-search-btn {
    width: 2.35rem;
    height: 2.35rem;
    padding: 0;
    border-radius: 0;
    background: var(--color-accent);
    color: #fff;
}

#site-header .header-search-btn:hover {
    background: #168a9e;
    color: #fff;
}

.site-body:not(.has-admin-panel) #site-header .header-search:focus-within {
    border-color: rgba(47, 181, 210, .55);
    box-shadow: 0 0 0 3px rgba(47, 181, 210, .16);
}

.site-body:not(.has-admin-panel) #site-header .header-search-btn {
    background: var(--color-accent);
    color: #fff;
}

.site-body:not(.has-admin-panel) #site-header .header-search-btn:hover {
    background: #168a9e;
    color: #fff;
}

#site-header .nav-toggle {
    border-radius: 0;
    border-color: #e0d8cb;
    background: var(--header-surface);
}

#site-header .nav-toggle:hover {
    border-color: rgba(47, 181, 210, .45);
    background: #fff;
    box-shadow: 0 2px 8px rgba(44, 38, 28, .06);
}

/* Topbar — carbón cálido */
.topbar {
    background: linear-gradient(180deg, #23211f 0%, #1a1917 100%);
    border-bottom: 0;
}

.topbar::before {
    background: linear-gradient(90deg, rgba(47, 181, 210, .1) 0%, transparent 38%);
}

.topbar::after {
    height: 1px;
    opacity: 1;
    background: linear-gradient(90deg, transparent, rgba(47, 181, 210, .55), transparent);
}

.topbar-badge {
    border-radius: 0;
    background: rgba(47, 181, 210, .12);
    border-color: rgba(47, 181, 210, .35);
}

.topbar-text {
    color: rgba(255, 255, 255, .7);
}

/* Barra de categorías — carbón cálido + activo teal */
#site-header .category-nav,
.category-nav {
    padding: 0 0 .75rem;
}

.category-nav-shell {
    background: linear-gradient(180deg, #2a2826 0%, #1f1e1c 100%);
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 0 0 var(--radius-lg) var(--radius-lg);
    box-shadow: 0 8px 24px rgba(44, 38, 28, .1);
}

.category-nav-link:hover,
.category-nav-trigger:hover,
.category-nav-go:hover,
.category-nav-link.is-current,
.category-nav-trigger.is-current,
.category-nav-go.is-current,
.category-nav-item.is-active > .category-nav-trigger,
.category-nav-item.is-active .category-nav-go {
    background: rgba(47, 181, 210, .1);
    color: #fff;
}

.category-nav-go.is-current,
.category-nav-item.is-active .category-nav-go {
    box-shadow: inset 0 -2px 0 var(--color-accent);
}

.category-nav-link-accent {
    border-left-color: rgba(255, 255, 255, .1);
    color: rgba(255, 255, 255, .9);
}

.category-nav-link-accent:hover {
    background: rgba(47, 181, 210, .18);
    color: #fff;
}

.category-mega-panel {
    border-top: 2px solid var(--color-accent);
    border-radius: 0 0 var(--radius-lg) var(--radius-lg);
    box-shadow: 0 14px 40px rgba(44, 38, 28, .12);
}

/* Home cálida */
body.page-home-warm #site-header {
    --header-bg: rgba(250, 248, 244, .95);
    --header-border: #e0d8cb;
    --header-surface: #f5f1ea;
}

body.page-home-warm #site-header .header-main {
    background: transparent;
}

body.page-home-warm .page-home .header-main::before {
    height: 2px;
    background: linear-gradient(90deg, var(--color-accent) 0%, rgba(47, 181, 210, .3) 50%, transparent 100%);
}

body.page-home-warm .page-home .nav .btn-header-cta {
    background: linear-gradient(135deg, #2fb5d2 0%, #1a9ab3 100%);
}

@media (max-width: 768px) {
    #site-header .header-main {
        position: relative;
    }

    #site-header .header-inner {
        padding: .75rem 0;
        min-height: 3.65rem;
    }

    #site-header .nav,
    #site-header .nav.is-open {
        left: 0;
        right: 0;
        width: 100%;
        padding: .65rem 0 1rem;
        background: #faf8f4;
        border: 1px solid #e0d8cb;
        border-top: 0;
        border-radius: 0 0 var(--radius-lg) var(--radius-lg);
        box-shadow: 0 14px 32px rgba(44, 38, 28, .1);
    }

    #site-header .nav .nav-link,
    #site-header .nav a:not(.btn) {
        border-radius: 0;
        border-bottom: 0;
        margin-bottom: .15rem;
    }

    #site-header .nav .nav-link.is-active,
    #site-header .nav a:not(.btn).is-active {
        border-left: 3px solid var(--color-accent);
        padding-left: calc(.55rem - 3px);
        box-shadow: none;
        background: rgba(47, 181, 210, .08);
    }

    .category-nav-shell {
        border-radius: 0;
    }
}

/* ── Header UX v64 — menú móvil unificado (categorías + nav) ── */

@media (max-width: 768px) {
    #site-header .category-nav {
        display: none !important;
    }

    #site-header .nav-mobile-categories,
    #site-header .nav-mobile-divider,
    #site-header .nav-mobile-secondary {
        display: block;
    }

    #site-header .nav-mobile-backdrop {
        position: fixed;
        inset: 0;
        top: var(--header-offset, 3.75rem);
        z-index: 215;
        border: 0;
        padding: 0;
        margin: 0;
        background: rgba(26, 22, 18, .42);
        cursor: pointer;
    }

    #site-header .nav-mobile-backdrop[hidden] {
        display: none !important;
    }

    #site-header .nav {
        display: none;
        position: fixed;
        top: var(--header-offset, 3.75rem);
        left: 0;
        right: 0;
        bottom: 0;
        width: 100%;
        max-height: none;
        margin: 0;
        padding: 0;
        overflow: hidden;
        z-index: 220;
        background: #faf8f4;
        border: 0;
        border-top: 1px solid #e0d8cb;
        border-radius: 0;
        box-shadow: none;
        flex-direction: column;
        align-items: stretch;
    }

    #site-header .nav.is-open {
        display: flex;
    }

    #site-header .nav-search-mobile {
        order: 0;
        flex-shrink: 0;
        margin: .75rem 4% .5rem;
        padding: .5rem;
        border: 1px solid #e0d8cb;
        border-radius: 0;
        background: #fff;
    }

    #site-header .nav-mobile-categories {
        order: 1;
        flex: 1 1 auto;
        min-height: 0;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        padding: .35rem 4% .85rem;
    }

    #site-header .nav-mobile-section-label {
        margin: 0 0 .55rem;
        font-family: var(--font-body);
        font-size: .62rem;
        font-weight: 700;
        letter-spacing: .11em;
        text-transform: uppercase;
        color: #8a8278;
    }

    #site-header .nav-mobile-cat-list {
        list-style: none;
        margin: 0;
        padding: 0;
        display: flex;
        flex-direction: column;
        gap: .2rem;
    }

    #site-header .nav-mobile-cat-item {
        border: 1px solid #e0d8cb;
        border-radius: 0;
        background: #fff;
        overflow: hidden;
    }

    #site-header .nav-mobile-cat-item.is-active {
        border-color: rgba(47, 181, 210, .45);
    }

    #site-header .nav-mobile-cat-row {
        display: flex;
        align-items: stretch;
    }

    #site-header .nav-mobile-cat-link,
    #site-header .nav-mobile-cat-link-single {
        display: flex;
        align-items: center;
        flex: 1;
        min-width: 0;
        padding: .75rem .85rem;
        font-family: var(--font-body);
        font-size: .74rem;
        font-weight: 700;
        letter-spacing: .07em;
        text-transform: uppercase;
        text-decoration: none;
        color: #1a1a1a;
    }

    #site-header .nav-mobile-cat-link.is-current,
    #site-header .nav-mobile-cat-link-single.is-current {
        color: #168a9e;
    }

    #site-header .nav-mobile-cat-toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 2.75rem;
        flex-shrink: 0;
        border: 0;
        border-left: 1px solid #e0d8cb;
        background: #f5f1ea;
        color: #168a9e;
        cursor: pointer;
    }

    #site-header .nav-mobile-cat-item.is-open .nav-mobile-cat-toggle svg {
        transform: rotate(180deg);
    }

    #site-header .nav-mobile-cat-toggle svg {
        transition: transform .2s ease;
    }

    #site-header .nav-mobile-cat-panel {
        padding: 0 .85rem .75rem;
        border-top: 1px solid #ebe4da;
        background: #f8f6f2;
    }

    #site-header .nav-mobile-cat-see-all {
        display: inline-block;
        margin: .55rem 0 .45rem;
        font-size: .72rem;
        font-weight: 700;
        letter-spacing: .04em;
        text-transform: uppercase;
        color: #168a9e;
        text-decoration: none;
    }

    #site-header .nav-mobile-cat-sublist {
        list-style: none;
        margin: 0;
        padding: 0;
    }

    #site-header .nav-mobile-cat-sublink {
        display: block;
        padding: .5rem 0;
        font-size: .84rem;
        font-weight: 600;
        color: #1a1a1a;
        text-decoration: none;
        border-bottom: 1px solid #ebe4da;
    }

    #site-header .nav-mobile-cat-sub-item:last-child .nav-mobile-cat-sublink {
        border-bottom: 0;
    }

    #site-header .nav-mobile-cat-sublink.is-current {
        color: #168a9e;
    }

    #site-header .nav-mobile-cat-grandlist {
        list-style: none;
        margin: 0 0 .35rem;
        padding: 0 0 0 .75rem;
    }

    #site-header .nav-mobile-cat-grandlist a {
        display: block;
        padding: .35rem 0;
        font-size: .8rem;
        color: #5c564c;
        text-decoration: none;
    }

    #site-header .nav-mobile-cat-grandlist a.is-current {
        color: #168a9e;
        font-weight: 600;
    }

    #site-header .nav-mobile-cat-offers {
        display: flex;
        align-items: center;
        justify-content: center;
        margin-top: .65rem;
        padding: .7rem 1rem;
        border-radius: 0;
        border: 1px solid rgba(47, 181, 210, .35);
        background: rgba(47, 181, 210, .1);
        font-family: var(--font-body);
        font-size: .7rem;
        font-weight: 700;
        letter-spacing: .08em;
        text-transform: uppercase;
        text-decoration: none;
        color: #168a9e;
    }

    #site-header .nav-mobile-divider {
        order: 2;
        flex-shrink: 0;
        height: 1px;
        margin: 0 4%;
        background: #e0d8cb;
    }

    #site-header .nav-mobile-secondary {
        order: 3;
        flex-shrink: 0;
        padding: .65rem 4% 1.25rem;
        background: #f5f1ea;
        border-top: 1px solid #e0d8cb;
    }

    #site-header .nav-mobile-secondary .nav-mobile-section-label {
        margin-bottom: .45rem;
    }

    #site-header .nav-mobile-secondary .nav-link,
    #site-header .nav-mobile-secondary .nav a:not(.btn) {
        display: block;
        width: 100%;
        margin-bottom: .15rem;
        padding: .65rem .55rem;
        border-left: 0;
    }

    #site-header .nav-mobile-secondary .nav-link.is-active,
    #site-header .nav-mobile-secondary .nav a:not(.btn).is-active {
        border-left: 3px solid var(--color-accent);
        padding-left: calc(.55rem - 3px);
    }

    #site-header .nav-mobile-secondary .btn-header-cta {
        width: 100%;
        margin: .5rem 0 0;
        justify-content: center;
        text-align: center;
    }

    #site-header .nav-mobile-secondary .nav-search:not(.nav-search-mobile) {
        width: 100%;
        margin: 0 0 .5rem;
    }
}

@media (min-width: 769px) {
    #site-header .nav-mobile-categories,
    #site-header .nav-mobile-divider,
    #site-header .nav-mobile-backdrop,
    #site-header .nav-mobile-section-label {
        display: none !important;
    }

    #site-header .nav .nav-mobile-secondary {
        display: contents;
    }
}

/* ── UX v65 — esquinas rectas en home + header (refuerzo) ── */

.page-home-warm .home-warm-stack,
.page-home-warm .home-hero-panel .home-hero-search,
.page-home-warm .home-hero-perk,
.page-home-warm .home-trust-icon,
.page-home-warm .home-stat-card,
.page-home-warm .home-warm-stats-grid,
.page-home-warm .home-warm-features,
.page-home-warm .home-warm-features .feature-card.panel-card,
.page-home-warm .home-warm-steps,
.page-home-warm .home-warm-steps .step-card.panel-card,
.page-home-warm .home-warm-steps .home-step-num,
.page-home-warm .category-card-home-warm .category-card-media,
.page-home-warm .home-warm-featured .product-card,
.page-home-warm .home-features .feature-card.panel-card,
.page-home-warm .home-steps .step-card.panel-card,
.page-home-warm .home-service,
.page-home-warm .home-service-copy.panel-card,
.page-home-warm .home-seo.panel-card,
.page-home-warm .home-about,
.page-home-warm .home-dashboard.panel-card,
.page-home-warm .home-shortcut,
.page-home-warm .home-hero-badge,
#site-header .header-search,
#site-header .header-search-btn,
#site-header .nav-link,
#site-header .nav a:not(.btn),
#site-header .nav .btn-header-cta,
#site-header .nav-toggle,
#site-header .nav,
#site-header .nav-search-mobile,
#site-header .nav-mobile-cat-item,
#site-header .nav-mobile-cat-offers,
.topbar-badge,
.category-nav-shell,
.category-mega-panel {
    border-radius: 0 !important;
}

/* ── Home UX v66–v68 — slider hero productos (cuadrado fijo + overlay) ── */

.page-home .home-hero-media.home-hero-media-products,
.page-home-warm .home-hero-media.home-hero-media-products {
    aspect-ratio: 1 / 1;
    width: 100%;
    max-height: none;
    min-height: 0;
    height: auto;
    background: #1a1814;
    align-self: start;
}

.page-home .home-hero-media-products .hero-banner-slider,
.page-home .home-hero-media-products .hero-banner-slides,
.page-home .home-hero-media-products .hero-banner-slide,
.page-home .home-hero-media-products .hero-product-card,
.page-home .home-hero-media-products .hero-product-media {
    height: 100%;
    min-height: 0;
}

.page-home .home-hero-media-products .hero-banner-slider {
    border: 0;
    background: #1a1814;
}

.page-home .home-hero-media-products .hero-banner-slider::after {
    display: none;
}

.page-home .home-hero-media-products .hero-banner-slide.is-active img {
    animation: none;
}

.page-home .home-hero-media-products .hero-product-card {
    display: block;
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    text-decoration: none;
    color: #fff;
    overflow: hidden;
}

.page-home .home-hero-media-products .hero-product-card:hover {
    text-decoration: none;
    color: #fff;
}

.page-home .home-hero-media-products .hero-product-media {
    position: relative;
    width: 100%;
    height: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: #ece8e2;
}

.page-home .home-hero-media-products .hero-product-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform .65s var(--ease-out, ease-out);
}

.page-home .home-hero-media-products .hero-product-card:hover .hero-product-media img {
    transform: scale(1.04);
}

.page-home .home-hero-media-products .hero-product-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    pointer-events: none;
    background:
        linear-gradient(180deg, rgba(12, 10, 8, .12) 0%, transparent 28%),
        linear-gradient(0deg, rgba(12, 10, 8, .88) 0%, rgba(12, 10, 8, .55) 42%, transparent 72%);
}

.page-home .home-hero-media-products .hero-product-label {
    position: absolute;
    top: .85rem;
    left: .85rem;
    margin: 0;
    padding: .28rem .6rem;
    border: 1px solid rgba(255, 255, 255, .22);
    background: rgba(12, 10, 8, .52);
    backdrop-filter: blur(6px);
    color: #fff;
    font-family: var(--font-sans);
    font-size: .6rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.page-home .home-hero-media-products .hero-product-info {
    padding: 0 1rem 1.1rem;
}

.page-home .home-hero-media-products .hero-product-name {
    margin: 0 0 .35rem;
    font-family: var(--font-sans);
    font-size: clamp(.92rem, 2.2vw, 1.12rem);
    font-weight: 700;
    line-height: 1.25;
    color: #fff;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-shadow: 0 1px 8px rgba(0, 0, 0, .35);
}

.page-home .home-hero-media-products .hero-product-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem .55rem;
    margin: 0 0 .55rem;
    font-family: var(--font-sans);
    font-size: .72rem;
    line-height: 1.35;
    color: rgba(255, 255, 255, .78);
}

.page-home .home-hero-media-products .hero-product-ref {
    font-weight: 600;
    letter-spacing: .02em;
}

.page-home .home-hero-media-products .hero-product-cat {
    padding: .12rem .45rem;
    border: 1px solid rgba(255, 255, 255, .2);
    background: rgba(255, 255, 255, .08);
    font-size: .66rem;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.page-home .home-hero-media-products .hero-product-foot {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem .65rem;
    padding-top: .55rem;
    border-top: 1px solid rgba(255, 255, 255, .16);
}

.page-home .home-hero-media-products .hero-product-price {
    font-family: var(--font-sans);
    font-size: .74rem;
    font-weight: 700;
    letter-spacing: .03em;
    color: #7ee0f2;
}

.page-home .home-hero-media-products .hero-product-variants {
    font-family: var(--font-sans);
    font-size: .68rem;
    font-weight: 600;
    color: rgba(255, 255, 255, .72);
}

.page-home .home-hero-media-products .hero-product-cta {
    margin-left: auto;
    padding: .38rem .7rem;
    border: 1px solid rgba(255, 255, 255, .35);
    background: rgba(255, 255, 255, .1);
    font-family: var(--font-sans);
    font-size: .64rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: #fff;
    transition: background .2s, border-color .2s, color .2s;
}

.page-home .home-hero-media-products .hero-product-card:hover .hero-product-cta {
    background: #2fb5d2;
    border-color: #2fb5d2;
    color: #0d1a1e;
}

.page-home .home-hero-media-products .hero-banner-arrow {
    top: 50%;
    z-index: 3;
    background: rgba(12, 10, 8, .55);
    border: 1px solid rgba(255, 255, 255, .18);
}

.page-home .home-hero-media-products .hero-banner-arrow:hover,
.page-home .home-hero-media-products .hero-banner-arrow:focus-visible {
    background: rgba(12, 10, 8, .78);
    border-color: rgba(255, 255, 255, .35);
}

.page-home .home-hero-media-products .hero-banner-dots {
    top: .85rem;
    right: .85rem;
    bottom: auto;
    left: auto;
    transform: none;
    z-index: 3;
    padding: .25rem .45rem;
    background: rgba(12, 10, 8, .45);
    border: 1px solid rgba(255, 255, 255, .12);
}

.page-home .home-hero-media-products .hero-banner-dot {
    background: rgba(255, 255, 255, .45);
}

.page-home .home-hero-media-products .hero-banner-dot.is-active {
    background: #2fb5d2;
    box-shadow: 0 0 0 2px rgba(47, 181, 210, .35);
}

@media (min-width: 992px) {
    .page-home-warm .home-hero-media.home-hero-media-products {
        grid-area: media;
        align-self: start;
        justify-self: stretch;
        width: 100%;
        height: auto;
        min-height: 0;
        max-height: none;
        aspect-ratio: 1 / 1;
    }
}

@media (max-width: 768px) {
    .page-home .home-hero-media-products .hero-product-label {
        top: .65rem;
        left: .65rem;
    }

    .page-home .home-hero-media-products .hero-product-info {
        padding: 0 .85rem .95rem;
    }

    .page-home .home-hero-media-products .hero-product-foot {
        gap: .35rem .5rem;
    }

    .page-home .home-hero-media-products .hero-product-cta {
        margin-left: 0;
        width: 100%;
        text-align: center;
    }
}

/* ── Home UX v69 — fondo blanco ── */

.page-home.page-home-warm {
    --home-warm-bg: #fff;
    --home-warm-surface: #fff;
    --home-warm-muted: #fff;
    --home-warm-border: #e6e6e6;
    --home-warm-shadow: 0 8px 28px rgba(0, 0, 0, .05);
}

.site-body.page-home {
    background: #fff;
}

.page-home .main,
.page-home-warm .main {
    background: #fff;
}

.page-home-warm .home-hero-panel,
.page-home-warm .home-trust-strip,
.page-home-warm .home-band-muted,
.page-home-warm .home-band-featured,
.page-home-warm .home-band {
    background: #fff;
}

/* Header blanco en home */
.site-body.page-home #site-header {
    --header-bg: #fff;
    --header-border: #e6e6e6;
    --header-surface: #f5f5f5;
}

.site-body.page-home #site-header.header,
.site-body.page-home #site-header.header.is-scrolled,
body.page-home-warm .header,
body.page-home-warm .header-main,
body.page-home-warm #site-header .header-main {
    background: #fff;
    border-bottom: 1px solid #e6e6e6;
}

.site-body.page-home .topbar {
    background: #fff;
    color: #5c564c;
    border-bottom: 1px solid #e6e6e6;
}

.site-body.page-home .topbar::before {
    display: none;
}

.site-body.page-home .topbar::after {
    height: 2px;
    opacity: 1;
    background: linear-gradient(90deg, transparent, rgba(47, 181, 210, .5), transparent);
}

.site-body.page-home .topbar-text {
    color: #5c564c;
}

.site-body.page-home .topbar-kicker {
    color: #8a8278;
}

.site-body.page-home .topbar-divider {
    background: #e6e6e6;
}

.site-body.page-home .topbar-badge {
    background: rgba(47, 181, 210, .1);
    border-color: rgba(47, 181, 210, .32);
    color: #168a9e;
    box-shadow: none;
}

.site-body.page-home #site-header .header-search,
.site-body.page-home #site-header .nav-toggle {
    border-color: #e6e6e6;
}

.site-body.page-home .category-nav-shell {
    background: #fff;
    border: 0;
    box-shadow: none;
}

.site-body.page-home .category-nav-link,
.site-body.page-home .category-nav-trigger,
.site-body.page-home .category-nav-go {
    color: #5c564c;
}

.site-body.page-home .category-nav-link:hover,
.site-body.page-home .category-nav-trigger:hover,
.site-body.page-home .category-nav-go:hover,
.site-body.page-home .category-nav-link.is-current,
.site-body.page-home .category-nav-trigger.is-current,
.site-body.page-home .category-nav-go.is-current,
.site-body.page-home .category-nav-item.is-active > .category-nav-trigger,
.site-body.page-home .category-nav-item.is-active .category-nav-go {
    background: rgba(47, 181, 210, .08);
    color: #168a9e;
}

.site-body.page-home .category-nav-link-accent {
    border-left-color: #e6e6e6;
    color: #1a1a1a;
}

.site-body.page-home .category-nav-link-accent:hover {
    background: rgba(47, 181, 210, .1);
    color: #168a9e;
}

.site-body.page-home .category-nav-item {
    border: 0;
}

.site-body.page-home .category-nav-split .category-nav-trigger {
    border-left: 0;
}

@media (max-width: 768px) {
    .site-body.page-home #site-header .nav,
    .site-body.page-home #site-header .nav.is-open {
        background: #fff;
        border-color: #e6e6e6;
    }
}

/* ── Header UX v70 — menú refinado (desktop + móvil) ── */

#site-header {
    --menu-border: #e8e8e8;
    --menu-muted: #6b6560;
    --menu-ink: #1a1a1a;
    --menu-active: #168a9e;
    --menu-active-bg: rgba(47, 181, 210, .08);
    --menu-surface: #f5f5f5;
    --header-surface: var(--menu-surface);
}

/* Nav principal — subrayado activo */
#site-header .nav {
    gap: .1rem;
}

#site-header .nav-link,
#site-header .nav a:not(.btn) {
    position: relative;
    color: var(--menu-muted);
    background: transparent;
    box-shadow: none;
    transition: color .18s ease;
}

#site-header .nav-link::after,
#site-header .nav a:not(.btn):not(.btn-header-cta)::after {
    content: '';
    position: absolute;
    left: .7rem;
    right: .7rem;
    bottom: .3rem;
    height: 2px;
    background: var(--color-accent);
    transform: scaleX(0);
    transform-origin: center;
    transition: transform .2s ease;
}

#site-header .nav-link:hover,
#site-header .nav a:not(.btn):hover {
    color: var(--menu-ink);
    background: transparent;
    box-shadow: none;
}

#site-header .nav-link:hover::after,
#site-header .nav a:not(.btn):not(.btn-header-cta):hover::after,
#site-header .nav .nav-link.is-active::after,
#site-header .nav a:not(.btn).is-active::after {
    transform: scaleX(1);
}

#site-header .nav .nav-link.is-active,
#site-header .nav a:not(.btn).is-active,
.site-body:not(.has-admin-panel) #site-header .nav .nav-link.is-active,
.site-body:not(.has-admin-panel) #site-header .nav a:not(.btn).is-active {
    color: var(--menu-active);
    background: transparent;
    box-shadow: none;
}

#site-header .nav .btn-header-cta {
    margin-left: .65rem;
    letter-spacing: .08em;
}

#site-header .nav-toggle[aria-expanded="true"] {
    border-color: var(--color-accent);
    background: var(--menu-active-bg);
    color: var(--menu-active);
}

/* Categorías — franja blanca tipo tabs */
#site-header .category-nav {
    padding: 0 0 .5rem;
}

.category-nav-shell {
    background: #fff;
    border: 1px solid var(--menu-border);
    border-top: 0;
    border-radius: 0;
    box-shadow: none;
}

.category-nav-link,
.category-nav-trigger,
.category-nav-go {
    position: relative;
    color: var(--menu-muted);
    padding-top: .9rem;
    padding-bottom: .9rem;
    transition: color .18s ease;
}

.category-nav-link:hover,
.category-nav-trigger:hover,
.category-nav-go:hover,
.category-nav-link.is-current,
.category-nav-trigger.is-current,
.category-nav-go.is-current,
.category-nav-item.is-active > .category-nav-trigger,
.category-nav-item.is-active .category-nav-go {
    background: transparent;
    color: var(--menu-active);
}

.category-nav-link.is-current::after,
.category-nav-go.is-current::after,
.category-nav-item.is-active .category-nav-go::after,
.category-nav-item.is-active > .category-nav-trigger::after {
    content: '';
    position: absolute;
    left: .55rem;
    right: .55rem;
    bottom: 0;
    height: 2px;
    background: var(--color-accent);
}

.category-nav-item {
    border-right-color: var(--menu-border);
}

.category-nav-split {
    display: inline-flex;
    align-items: center;
    gap: .2rem;
    position: relative;
    padding: 0 .45rem;
}

.category-nav-split .category-nav-go {
    padding-right: 0;
}

.category-nav-split .category-nav-trigger {
    border-left: 0;
    padding: .55rem 0;
    min-width: 0;
    width: auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.category-nav-split .category-nav-go.is-current::after,
.category-nav-item.is-active .category-nav-split .category-nav-go::after,
.category-nav-item.is-active .category-nav-split > .category-nav-trigger::after {
    display: none;
}

.category-nav-item.is-active .category-nav-split::after,
.category-nav-split:has(.category-nav-go.is-current)::after {
    content: '';
    position: absolute;
    left: .35rem;
    right: .35rem;
    bottom: 0;
    height: 2px;
    background: var(--color-accent);
}

.category-nav-link-accent {
    border-left-color: var(--menu-border);
    color: var(--menu-ink);
    font-weight: 700;
}

.category-nav-link-accent:hover {
    background: var(--menu-active-bg);
    color: var(--menu-active);
}

.category-nav-caret {
    opacity: .55;
}

.category-nav-item.is-active .category-nav-caret,
.category-nav-trigger:hover .category-nav-caret {
    opacity: 1;
}

.category-mega-panel {
    border-top: 2px solid var(--color-accent);
    border-radius: 0;
    box-shadow: 0 12px 36px rgba(0, 0, 0, .08);
}

.category-mega-kicker {
    font-family: var(--font-sans);
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--menu-active);
}

.category-mega-col-title.is-current,
.category-mega-links a.is-current {
    color: var(--menu-active);
}

#site-header .header-search {
    border-color: var(--menu-border);
}

#site-header .header-search:focus-within {
    border-color: rgba(47, 181, 210, .5);
}

#site-header .nav-toggle {
    border-color: var(--menu-border);
    background: var(--menu-surface);
}

/* Móvil — drawer editorial */
@media (max-width: 768px) {
    #site-header .nav {
        background: #fff;
        border-top: 1px solid var(--menu-border);
    }

    #site-header .nav-mobile-backdrop {
        background: rgba(0, 0, 0, .32);
        backdrop-filter: blur(2px);
    }

    #site-header .nav-search-mobile {
        margin: .85rem 4% .65rem;
        padding: .45rem .45rem .45rem .65rem;
        border: 1px solid var(--menu-border);
        background: var(--menu-surface);
    }

    #site-header .nav-search-mobile:focus-within {
        border-color: rgba(47, 181, 210, .45);
        background: #fff;
        box-shadow: 0 0 0 3px rgba(47, 181, 210, .12);
    }

    #site-header .nav-search-mobile input {
        font-family: var(--font-sans);
        font-size: .88rem;
    }

    #site-header .nav-mobile-categories {
        padding: .25rem 4% .75rem;
    }

    #site-header .nav-mobile-section-label {
        display: flex;
        align-items: center;
        gap: .5rem;
        margin: 0 0 .65rem;
        font-family: var(--font-sans);
        font-size: .6rem;
        font-weight: 700;
        letter-spacing: .12em;
        text-transform: uppercase;
        color: var(--menu-muted);
    }

    #site-header .nav-mobile-section-label::before {
        content: '';
        width: 1.35rem;
        height: 2px;
        background: var(--color-accent);
        flex-shrink: 0;
    }

    #site-header .nav-mobile-cat-list {
        gap: 0;
        border: 1px solid var(--menu-border);
        background: #fff;
    }

    #site-header .nav-mobile-cat-item {
        border: 0;
        border-bottom: 1px solid var(--menu-border);
        background: transparent;
    }

    #site-header .nav-mobile-cat-item:last-child {
        border-bottom: 0;
    }

    #site-header .nav-mobile-cat-item.is-active,
    #site-header .nav-mobile-cat-item.is-open {
        background: var(--menu-active-bg);
    }

    #site-header .nav-mobile-cat-link,
    #site-header .nav-mobile-cat-link-single {
        font-family: var(--font-sans);
        font-size: .72rem;
        letter-spacing: .08em;
        padding: .8rem .9rem;
    }

    #site-header .nav-mobile-cat-link.is-current,
    #site-header .nav-mobile-cat-link-single.is-current,
    #site-header .nav-mobile-cat-item.is-open > .nav-mobile-cat-row .nav-mobile-cat-link {
        color: var(--menu-active);
    }

    #site-header .nav-mobile-cat-row {
        display: flex;
        align-items: center;
        gap: .2rem;
        padding-right: .65rem;
    }

    #site-header .nav-mobile-cat-link {
        flex: 1;
        min-width: 0;
        padding-right: 0;
    }

    #site-header .nav-mobile-cat-toggle {
        width: auto;
        min-width: 0;
        padding: .8rem 0;
        border: 0;
        background: transparent;
        color: var(--menu-muted);
        flex-shrink: 0;
    }

    #site-header .nav-mobile-cat-item.is-open .nav-mobile-cat-toggle {
        color: var(--menu-active);
        background: transparent;
    }

    #site-header .nav-mobile-cat-panel {
        padding: 0 .9rem .8rem;
        border-top: 1px solid var(--menu-border);
        background: #fff;
    }

    #site-header .nav-mobile-cat-see-all {
        font-family: var(--font-sans);
        font-size: .66rem;
        letter-spacing: .08em;
        margin-top: .45rem;
    }

    #site-header .nav-mobile-cat-sublink {
        font-family: var(--font-sans);
        font-size: .82rem;
        padding: .55rem 0;
        border-bottom-color: var(--menu-border);
    }

    #site-header .nav-mobile-cat-grandlist a {
        font-family: var(--font-sans);
        font-size: .78rem;
    }

    #site-header .nav-mobile-cat-offers {
        margin-top: .75rem;
        padding: .8rem 1rem;
        border: 0;
        background: linear-gradient(135deg, #2fb5d2 0%, #1a9ab3 100%);
        color: #fff;
        font-family: var(--font-sans);
        font-size: .68rem;
        letter-spacing: .1em;
        box-shadow: 0 4px 14px rgba(47, 181, 210, .28);
    }

    #site-header .nav-mobile-divider {
        margin: 0;
        height: 0;
        background: transparent;
        border-top: 1px solid var(--menu-border);
    }

    #site-header .nav-mobile-secondary {
        padding: .75rem 4% 1.5rem;
        background: #fff;
        border-top: 1px solid var(--menu-border);
    }

    #site-header .nav-mobile-secondary .nav-link,
    #site-header .nav-mobile-secondary .nav a:not(.btn) {
        font-family: var(--font-sans);
        font-size: .74rem;
        letter-spacing: .08em;
        padding: .7rem .65rem;
        margin-bottom: .1rem;
        border-bottom: 1px solid var(--menu-border);
        color: var(--menu-ink);
    }

    #site-header .nav-mobile-secondary .nav-link:last-of-type,
    #site-header .nav-mobile-secondary .nav a:not(.btn):last-of-type {
        border-bottom: 0;
    }

    #site-header .nav-mobile-secondary .nav-link.is-active,
    #site-header .nav-mobile-secondary .nav a:not(.btn).is-active {
        color: var(--menu-active);
        background: var(--menu-active-bg);
        border-left: 3px solid var(--color-accent);
        padding-left: calc(.65rem - 3px);
        box-shadow: none;
    }

    #site-header .nav-mobile-secondary .btn-header-cta {
        margin-top: .75rem;
        padding: .75rem 1rem;
        font-size: .72rem;
        letter-spacing: .1em;
        box-shadow: 0 4px 14px rgba(47, 181, 210, .28);
    }
}

/* ── Header UX v73 — menú categorías unificado (nombre + flecha en un solo control) ── */

#site-header .category-nav {
    padding: 0;
    border-bottom: 0;
}

.category-nav-shell {
    border: 0;
    background: #fff;
    box-shadow: none;
}

.category-nav-inner {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: .1rem;
    min-height: 2.75rem;
    padding: .3rem 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.category-nav-item {
    border-right: 0;
    flex-shrink: 0;
}

.category-nav-link,
.category-nav-pill {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .6rem .8rem;
    border: 0;
    background: transparent;
    font-family: var(--font-sans);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: #4a4a4a;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    transition: color .18s ease, background .18s ease;
}

.category-nav-pill {
    position: relative;
}

.category-nav-link:hover,
.category-nav-pill:hover,
.category-nav-item.is-open > .category-nav-pill,
.category-nav-item.is-active > .category-nav-pill,
.category-nav-link.is-current,
.category-nav-pill.is-current {
    color: var(--menu-active, #168a9e);
    background: rgba(47, 181, 210, .07);
    text-decoration: none;
}

.category-nav-caret {
    flex-shrink: 0;
    width: 10px;
    height: 10px;
    opacity: .55;
    transition: transform .2s ease, opacity .2s ease;
}

.category-nav-item.is-open .category-nav-caret,
.category-nav-item.has-mega:hover .category-nav-caret {
    transform: rotate(180deg);
    opacity: .9;
}

.category-nav-link-accent {
    margin-left: auto;
    flex-shrink: 0;
    align-self: center;
    padding: .6rem .8rem;
    border: 0;
    background: transparent;
    color: var(--menu-active, #168a9e);
    font-weight: 700;
}

.category-nav-link-accent:hover {
    background: rgba(47, 181, 210, .07);
    color: var(--menu-active, #168a9e);
}

/* Legacy split — ocultar si queda en caché */
.category-nav-split {
    display: contents;
}

.category-nav-go {
    display: none;
}

.category-nav-split .category-nav-trigger::after,
.category-nav-go.is-current::after,
.category-nav-item.is-active .category-nav-split::after {
    display: none !important;
}

@media (max-width: 768px) {
    #site-header .nav-mobile-cat-list {
        border: 0;
        gap: 0;
    }

    #site-header .nav-mobile-cat-item {
        border-bottom: 1px solid var(--menu-border, #e8e8e8);
    }

    #site-header .nav-mobile-cat-pill,
    #site-header .nav-mobile-cat-link-single {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: .5rem;
        width: 100%;
        padding: .85rem 1rem;
        border: 0;
        background: transparent;
        font-family: var(--font-sans);
        font-size: .74rem;
        font-weight: 600;
        letter-spacing: .06em;
        text-transform: uppercase;
        text-align: left;
        color: #1a1a1a;
        text-decoration: none;
    }

    #site-header .nav-mobile-cat-pill.is-current,
    #site-header .nav-mobile-cat-link-single.is-current,
    #site-header .nav-mobile-cat-item.is-open > .nav-mobile-cat-pill {
        color: var(--menu-active, #168a9e);
        background: rgba(47, 181, 210, .06);
    }

    #site-header .nav-mobile-cat-caret {
        flex-shrink: 0;
        opacity: .55;
        transition: transform .2s ease;
    }

    #site-header .nav-mobile-cat-item.is-open .nav-mobile-cat-caret {
        transform: rotate(180deg);
        opacity: .9;
    }

    #site-header .nav-mobile-cat-row {
        display: contents;
    }
}

/* ── Header UX v74 — una sola línea, sin caja lateral ── */

#site-header.header,
#site-header.header.is-scrolled,
.site-body.page-home #site-header.header,
.site-body.page-home #site-header.header.is-scrolled {
    border-bottom: 0;
    box-shadow: none;
}

#site-header .header-main {
    border-bottom: 1px solid #ededed;
}

#site-header .category-nav,
.category-nav {
    padding: 0 !important;
    margin: 0;
    border-bottom: 1px solid #ededed;
}

.category-nav-shell,
#site-header .category-nav-shell,
.site-body.page-home .category-nav-shell,
.site-body.page-home #site-header .category-nav-shell {
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: #fff !important;
}

.category-nav-inner {
    border: 0;
    box-shadow: none;
}

.category-nav-item,
.site-body.page-home .category-nav-item,
.category-nav-item.has-mega {
    border: 0 !important;
    border-right: 0 !important;
    border-left: 0 !important;
}

.category-nav-link-accent,
.site-body.page-home .category-nav-link-accent,
#site-header .category-nav-link-accent {
    margin-left: auto;
    border: 0 !important;
    border-left: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--menu-active, #168a9e);
    font-weight: 700;
}

.category-nav-link-accent:hover,
.site-body.page-home .category-nav-link-accent:hover {
    background: rgba(47, 181, 210, .07) !important;
    color: var(--menu-active, #168a9e) !important;
}

.category-nav-link,
.category-nav-pill,
.category-nav-trigger.category-nav-pill {
    border: 0 !important;
    box-shadow: none !important;
}

.category-nav-link.is-current::after,
.category-nav-pill.is-current::after,
.category-nav-go.is-current::after,
.category-nav-item.is-active .category-nav-go::after,
.category-nav-item.is-active > .category-nav-trigger::after,
.category-nav-item.is-active .category-nav-split::after {
    display: none !important;
}

/* ── Header UX v75 — menú móvil refinado ── */

@media (max-width: 768px) {
    #site-header .nav-mobile-backdrop {
        background: rgba(0, 0, 0, .35);
        backdrop-filter: blur(3px);
        -webkit-backdrop-filter: blur(3px);
    }

    #site-header .nav {
        display: none;
        position: fixed;
        top: var(--header-offset, 3.75rem);
        left: 0;
        right: 0;
        bottom: 0;
        flex-direction: column;
        align-items: stretch;
        margin: 0;
        padding: 0;
        overflow: hidden;
        z-index: 220;
        background: #fff;
        border: 0;
        border-top: 1px solid #ededed;
        box-shadow: none;
        gap: 0;
    }

    #site-header .nav.is-open {
        display: flex;
    }

    /* Buscador */
    #site-header .nav-search-mobile {
        order: 0;
        flex-shrink: 0;
        display: flex;
        align-items: stretch;
        gap: 0;
        width: auto;
        margin: 0;
        padding: .75rem 1rem;
        border: 0;
        border-bottom: 1px solid #ededed;
        background: #fff;
    }

    #site-header .nav-search-mobile input {
        flex: 1;
        min-width: 0;
        margin: 0;
        padding: .72rem .85rem;
        border: 1px solid #e8e8e8;
        border-right: 0;
        border-radius: 0;
        background: #f7f7f7;
        font-family: var(--font-sans);
        font-size: .9rem;
        color: #1a1a1a;
    }

    #site-header .nav-search-mobile input::placeholder {
        color: #8a8a8a;
    }

    #site-header .nav-search-mobile input:focus {
        outline: none;
        background: #fff;
        border-color: rgba(47, 181, 210, .45);
    }

    #site-header .nav-search-mobile:focus-within input {
        border-color: rgba(47, 181, 210, .45);
        background: #fff;
    }

    #site-header .nav-search-mobile .btn,
    #site-header .nav-search-mobile .btn-primary {
        flex-shrink: 0;
        margin: 0;
        padding: .72rem 1rem;
        border: 0;
        border-radius: 0;
        background: #2fb5d2;
        color: #fff;
        font-family: var(--font-sans);
        font-size: .66rem;
        font-weight: 700;
        letter-spacing: .07em;
        text-transform: uppercase;
        white-space: nowrap;
    }

    #site-header .nav-search-mobile .btn:hover,
    #site-header .nav-search-mobile .btn-primary:hover {
        background: #168a9e;
        color: #fff;
    }

    /* Categorías — lista limpia */
    #site-header .nav-mobile-categories {
        order: 1;
        flex: 1 1 auto;
        min-height: 0;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        padding: .85rem 1rem 1rem;
    }

    #site-header .nav-mobile-section-label {
        display: flex;
        align-items: center;
        gap: .5rem;
        margin: 0 0 .7rem;
        padding: 0;
        font-family: var(--font-sans);
        font-size: .58rem;
        font-weight: 700;
        letter-spacing: .13em;
        text-transform: uppercase;
        color: #8a8a8a;
    }

    #site-header .nav-mobile-section-label::before {
        content: '';
        width: 1.25rem;
        height: 2px;
        background: #2fb5d2;
        flex-shrink: 0;
    }

    #site-header .nav-mobile-cat-list {
        list-style: none;
        margin: 0;
        padding: 0;
        display: flex;
        flex-direction: column;
        gap: 0;
        border: 0;
        background: transparent;
    }

    #site-header .nav-mobile-cat-item {
        border: 0;
        border-bottom: 1px solid #ededed;
        border-radius: 0;
        background: transparent;
        overflow: hidden;
    }

    #site-header .nav-mobile-cat-item:last-child {
        border-bottom: 0;
    }

    #site-header .nav-mobile-cat-pill,
    #site-header .nav-mobile-cat-toggle.nav-mobile-cat-pill,
    #site-header .nav-mobile-cat-link-single {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: .65rem;
        width: 100%;
        min-height: 2.85rem;
        margin: 0;
        padding: .8rem .15rem .8rem 0;
        border: 0;
        background: transparent;
        font-family: var(--font-sans);
        font-size: .72rem;
        font-weight: 600;
        letter-spacing: .06em;
        text-transform: uppercase;
        text-align: left;
        color: #2a2a2a;
        text-decoration: none;
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
    }

    #site-header .nav-mobile-cat-label {
        flex: 1;
        min-width: 0;
    }

    #site-header .nav-mobile-cat-caret {
        flex-shrink: 0;
        width: 11px;
        height: 11px;
        opacity: .5;
        transition: transform .2s ease, opacity .2s ease;
    }

    #site-header .nav-mobile-cat-pill.is-current,
    #site-header .nav-mobile-cat-link-single.is-current,
    #site-header .nav-mobile-cat-item.is-open > .nav-mobile-cat-pill,
    #site-header .nav-mobile-cat-item.is-active > .nav-mobile-cat-pill.is-current {
        color: #168a9e;
    }

    #site-header .nav-mobile-cat-item.is-open .nav-mobile-cat-caret {
        transform: rotate(180deg);
        opacity: .85;
    }

    /* Panel acordeón */
    #site-header .nav-mobile-cat-panel {
        padding: 0 0 .65rem;
        border-top: 0;
        background: transparent;
    }

    #site-header .nav-mobile-cat-see-all {
        display: inline-flex;
        align-items: center;
        margin: .15rem 0 .5rem;
        padding: .35rem 0;
        font-family: var(--font-sans);
        font-size: .64rem;
        font-weight: 700;
        letter-spacing: .07em;
        text-transform: uppercase;
        color: #168a9e;
        text-decoration: none;
    }

    #site-header .nav-mobile-cat-see-all:hover {
        color: #127a8c;
        text-decoration: none;
    }

    #site-header .nav-mobile-cat-sublist {
        list-style: none;
        margin: 0;
        padding: 0;
    }

    #site-header .nav-mobile-cat-sublink {
        display: block;
        padding: .6rem 0 .6rem .5rem;
        border-bottom: 1px solid #f0f0f0;
        font-family: var(--font-sans);
        font-size: .84rem;
        font-weight: 500;
        letter-spacing: 0;
        text-transform: none;
        color: #3a3a3a;
        text-decoration: none;
    }

    #site-header .nav-mobile-cat-sub-item:last-child .nav-mobile-cat-sublink {
        border-bottom: 0;
    }

    #site-header .nav-mobile-cat-sublink.is-current {
        color: #168a9e;
        font-weight: 600;
    }

    #site-header .nav-mobile-cat-grandlist {
        margin: 0 0 .25rem;
        padding: .15rem 0 .15rem .85rem;
        border-left: 2px solid rgba(47, 181, 210, .22);
        list-style: none;
    }

    #site-header .nav-mobile-cat-grandlist a {
        display: block;
        padding: .4rem 0;
        font-family: var(--font-sans);
        font-size: .8rem;
        font-weight: 500;
        color: #5a5a5a;
        text-decoration: none;
    }

    #site-header .nav-mobile-cat-grandlist a.is-current {
        color: #168a9e;
        font-weight: 600;
    }

    #site-header .nav-mobile-cat-offers {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        margin-top: .85rem;
        padding: .82rem 1rem;
        border: 0;
        border-radius: 0;
        background: linear-gradient(135deg, #2fb5d2 0%, #1a9ab3 100%);
        color: #fff;
        font-family: var(--font-sans);
        font-size: .68rem;
        font-weight: 700;
        letter-spacing: .09em;
        text-transform: uppercase;
        text-decoration: none;
        box-shadow: 0 4px 14px rgba(47, 181, 210, .25);
    }

    #site-header .nav-mobile-cat-offers:hover {
        color: #fff;
        text-decoration: none;
        background: linear-gradient(135deg, #3ec4df 0%, #1f9fb8 100%);
    }

    /* Separador + navegación secundaria */
    #site-header .nav-mobile-divider {
        order: 2;
        flex-shrink: 0;
        display: block;
        height: 0;
        margin: 0;
        padding: 0;
        border: 0;
        border-top: 1px solid #ededed;
        background: transparent;
    }

    #site-header .nav-mobile-secondary {
        order: 3;
        flex-shrink: 0;
        padding: .85rem 1rem calc(1.1rem + env(safe-area-inset-bottom, 0px));
        background: #fff;
        border: 0;
    }

    #site-header .nav-mobile-secondary .nav-mobile-section-label {
        margin-bottom: .55rem;
    }

    #site-header .nav-mobile-secondary .nav-link,
    #site-header .nav-mobile-secondary .nav a:not(.btn) {
        display: flex;
        align-items: center;
        width: 100%;
        min-height: 2.75rem;
        margin: 0;
        padding: .65rem .5rem;
        border: 0;
        border-bottom: 1px solid #f0f0f0;
        font-family: var(--font-sans);
        font-size: .72rem;
        font-weight: 600;
        letter-spacing: .06em;
        text-transform: uppercase;
        color: #2a2a2a;
        text-decoration: none;
        -webkit-tap-highlight-color: transparent;
    }

    #site-header .nav-mobile-secondary .nav-link:last-of-type,
    #site-header .nav-mobile-secondary .nav a:not(.btn):last-of-type {
        border-bottom: 0;
    }

    #site-header .nav-mobile-secondary .nav-link.is-active,
    #site-header .nav-mobile-secondary .nav a:not(.btn).is-active,
    .site-body:not(.has-admin-panel) #site-header .nav-mobile-secondary .nav-link.is-active,
    .site-body:not(.has-admin-panel) #site-header .nav-mobile-secondary .nav a:not(.btn).is-active {
        color: #168a9e;
        background: rgba(47, 181, 210, .06);
        border-left: 3px solid #2fb5d2;
        padding-left: calc(.5rem - 3px);
        box-shadow: none;
    }

    #site-header .nav-mobile-secondary .btn-header-cta {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        margin: .75rem 0 0;
        padding: .82rem 1rem;
        border: 0;
        border-radius: 0;
        background: linear-gradient(135deg, #2fb5d2 0%, #1a9ab3 100%);
        color: #fff;
        font-family: var(--font-sans);
        font-size: .7rem;
        font-weight: 700;
        letter-spacing: .09em;
        text-transform: uppercase;
        text-decoration: none;
        box-shadow: 0 4px 14px rgba(47, 181, 210, .25);
    }

    #site-header .nav-mobile-secondary .btn-header-cta:hover {
        background: linear-gradient(135deg, #3ec4df 0%, #1f9fb8 100%);
        color: #fff;
    }

    #site-header .nav-mobile-secondary .nav-search:not(.nav-search-mobile) {
        width: 100%;
        margin: 0 0 .5rem;
        padding-bottom: .5rem;
        border-bottom: 1px solid #ededed;
    }

    #site-header .nav-toggle[aria-expanded="true"] {
        border-color: #2fb5d2;
        background: rgba(47, 181, 210, .1);
        color: #168a9e;
    }
}

/* ── Home UX v76 — iconos trust strip visibles ── */

.page-home .home-trust-strip,
.page-home-warm .home-trust-strip {
    background: #fff;
    border-top: 1px solid #ededed;
}

.page-home .home-trust-item,
.page-home-warm .home-trust-item {
    border-right-color: #ededed;
}

.page-home .home-trust-item,
.page-home-warm .home-trust-item {
    align-items: center;
}

.page-home .home-trust-icon,
.page-home-warm .home-trust-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    min-width: 3rem;
    min-height: 3rem;
    padding: 0;
    line-height: 0;
    background: rgba(47, 181, 210, .1);
    border: 1px solid rgba(47, 181, 210, .22);
    color: #168a9e;
    box-shadow: none;
}

.page-home .home-trust-icon svg,
.page-home-warm .home-trust-icon svg {
    display: block;
    width: 1.45rem;
    height: 1.45rem;
    min-width: 1.45rem;
    min-height: 1.45rem;
    max-width: none;
    margin: 0;
    flex-shrink: 0;
    stroke: #168a9e;
    color: #168a9e;
}

@media (max-width: 768px) {
    .page-home .home-trust-strip,
    .page-home-warm .home-trust-strip {
        display: grid;
        grid-template-columns: 1fr;
        overflow: visible;
        overflow-x: visible;
        scroll-snap-type: none;
        flex-wrap: wrap;
    }

    .page-home .home-trust-item,
    .page-home-warm .home-trust-item {
        flex: none;
        width: 100%;
        max-width: none;
        border-right: 0;
        border-bottom: 1px solid #ededed;
        scroll-snap-align: none;
    }

    .page-home .home-trust-item:last-child,
    .page-home-warm .home-trust-item:last-child {
        border-bottom: 0;
    }

    .page-home .home-trust-icon,
    .page-home-warm .home-trust-icon {
        width: 2.75rem;
        height: 2.75rem;
        min-width: 2.75rem;
        min-height: 2.75rem;
    }

    .page-home .home-trust-icon svg,
    .page-home-warm .home-trust-icon svg {
        width: 1.35rem;
        height: 1.35rem;
        min-width: 1.35rem;
        min-height: 1.35rem;
    }
}

/* ── Home UX v77 — categorías contenedor 1360px + diseño refinado ── */

.page-home .home-band-categories,
.page-home-warm .home-band-categories {
    width: 100%;
    max-width: min(1360px, 92%);
    margin-left: auto;
    margin-right: auto;
    padding: clamp(2rem, 4vw, 3rem) 0;
    background: #fff !important;
    border-top: 1px solid #ededed;
    border-bottom: 0;
}

.page-home .home-band-categories .home-section,
.page-home-warm .home-band-categories .home-section {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

.page-home .home-band-categories .home-section-head,
.page-home-warm .home-band-categories .home-section-head {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    width: 100%;
    margin-bottom: clamp(1.25rem, 2.5vw, 1.75rem);
}

.page-home .home-band-categories .home-section-head .home-hero-badge {
    display: inline-block;
    margin: 0 0 .55rem;
    padding: .3rem .7rem;
    border: 1px solid rgba(47, 181, 210, .28);
    background: rgba(47, 181, 210, .08);
    color: #168a9e;
    font-family: var(--font-sans);
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.page-home .home-band-categories .home-section-head h2 {
    width: 100%;
    margin: 0 0 .5rem;
    font-family: var(--font-sans);
    font-size: clamp(1.45rem, 2.8vw, 2rem);
    font-weight: 700;
    line-height: 1.15;
    color: #1a1a1a;
}

.page-home .home-band-categories .home-section-head h2::after {
    display: none !important;
}

.page-home .home-band-categories .home-section-head p {
    margin: 0;
    max-width: 40rem;
    text-align: left;
    font-family: var(--font-sans);
    font-size: clamp(.88rem, 1.4vw, 1rem);
    line-height: 1.5;
    color: #6b6b6b;
}

.page-home .home-band-categories .home-warm-categories.category-grid-home,
.page-home-warm .home-band-categories .home-warm-categories.category-grid-home {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
    gap: clamp(.5rem, 1vw, .85rem);
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
    overflow: visible;
    scroll-snap-type: none;
}

.page-home-warm .home-band-categories .category-card-home-warm {
    width: 100%;
    min-width: 0;
}

.page-home-warm .home-band-categories .category-card-home-warm .category-card-media {
    aspect-ratio: 1;
    border: 0 !important;
    border-radius: 0;
    background: #f0f0f0;
    box-shadow: none !important;
    transition: transform .25s ease;
}

.page-home-warm .home-band-categories .category-card-home-warm:hover .category-card-media,
.page-home-warm .home-band-categories .category-card-home-warm:focus-visible .category-card-media {
    border: 0 !important;
    box-shadow: none !important;
    transform: none;
}

.page-home-warm .home-band-categories .category-card-home-warm:hover .category-card-media img,
.page-home-warm .home-band-categories .category-card-home-warm:focus-visible .category-card-media img {
    transform: scale(1.03);
}

.page-home-warm .home-band-categories .category-card-home-warm .category-card-label {
    margin: 0;
    padding: .65rem .5rem .75rem;
    font-family: var(--font-sans);
    font-size: clamp(.78rem, 1.2vw, .88rem);
    font-weight: 700;
    letter-spacing: .02em;
    text-transform: none;
    text-align: center;
    color: #1a1a1a;
    background: #fff;
}

.page-home .home-band-categories .section-cta {
    width: 100%;
    margin-top: clamp(1.25rem, 2.5vw, 1.75rem);
    text-align: left;
}

.page-home .home-band-categories .section-cta .btn {
    min-height: 2.75rem;
    padding: .7rem 1.35rem;
    font-family: var(--font-sans);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
}

@media (max-width: 768px) {
    .page-home .home-band-categories,
    .page-home-warm .home-band-categories {
        max-width: min(1360px, 92%);
        padding-left: 0;
        padding-right: 0;
    }

    .page-home .home-band-categories .home-warm-categories.category-grid-home,
    .page-home-warm .home-band-categories .home-warm-categories.category-grid-home {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
        max-width: 100%;
        margin: 0;
        flex-wrap: wrap;
        overflow: visible;
        scroll-snap-type: none;
        gap: .65rem;
    }

    .page-home-warm .home-band-categories .home-warm-categories .category-card-home-warm {
        flex: none;
        width: 100%;
        max-width: none;
        scroll-snap-align: none;
    }

    .page-home .home-band-categories .section-cta .btn {
        width: 100%;
        justify-content: center;
        text-align: center;
    }
}

@media (max-width: 420px) {
    .page-home .home-band-categories .home-warm-categories.category-grid-home,
    .page-home-warm .home-band-categories .home-warm-categories.category-grid-home {
        grid-template-columns: 1fr;
        width: 100%;
        gap: .5rem;
    }
}

/* ── Home UX v78 — produits récents contenedor 1360px + diseño refinado ── */

.page-home .home-band-featured,
.page-home-warm .home-band-featured {
    width: 100%;
    max-width: min(1360px, 92%);
    margin-left: auto;
    margin-right: auto;
    padding: clamp(2rem, 4vw, 3rem) 0;
    background: #fff !important;
    border-top: 1px solid #ededed;
    border-bottom: 0;
}

.page-home .home-band-featured .home-section,
.page-home-warm .home-band-featured .home-section {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

.page-home .home-band-featured .home-section-head,
.page-home-warm .home-band-featured .home-section-head {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    width: 100%;
    margin-bottom: clamp(1.25rem, 2.5vw, 1.75rem);
}

.page-home .home-band-featured .home-section-head .home-hero-badge {
    display: inline-block;
    margin: 0 0 .55rem;
    padding: .3rem .7rem;
    border: 1px solid rgba(47, 181, 210, .28);
    background: rgba(47, 181, 210, .08);
    color: #168a9e;
    font-family: var(--font-sans);
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.page-home .home-band-featured .home-section-head h2 {
    width: 100%;
    margin: 0 0 .5rem;
    font-family: var(--font-sans);
    font-size: clamp(1.45rem, 2.8vw, 2rem);
    font-weight: 700;
    line-height: 1.15;
    color: #1a1a1a;
}

.page-home .home-band-featured .home-section-head h2::after {
    display: none !important;
}

.page-home .home-band-featured .home-section-head p {
    display: block;
    margin: 0;
    max-width: 40rem;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    text-align: left;
    font-family: var(--font-sans);
    font-size: clamp(.88rem, 1.4vw, 1rem);
    line-height: 1.5;
    color: #6b6b6b;
}

.page-home .home-band-featured .product-grid-home-featured.home-warm-featured,
.page-home-warm .home-band-featured .product-grid-home-featured.home-warm-featured {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(.5rem, 1vw, .85rem);
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
    overflow: visible;
    scroll-snap-type: none;
}

.page-home-warm .home-band-featured .home-warm-featured .product-card {
    width: 100%;
    min-width: 0;
    border-radius: 0;
    border: 0;
    background: #fff;
    box-shadow: none;
}

.page-home-warm .home-band-featured .home-warm-featured .product-card::before {
    display: none;
}

.page-home-warm .home-band-featured .home-warm-featured .product-card:hover {
    border: 0;
    box-shadow: none;
    transform: none;
}

.page-home-warm .home-band-featured .home-warm-featured .product-card-action {
    display: none;
}

.page-home-warm .home-band-featured .home-warm-featured .product-card-media {
    aspect-ratio: 1;
    border: 0;
    border-radius: 0;
    background: #f0f0f0;
}

.page-home-warm .home-band-featured .home-warm-featured .product-card-media img,
.page-home-warm .home-band-featured .home-warm-featured .product-card-media .product-placeholder {
    transition: transform .25s ease;
}

.page-home-warm .home-band-featured .home-warm-featured .product-card:hover .product-card-media img,
.page-home-warm .home-band-featured .home-warm-featured .product-card:hover .product-card-media .product-placeholder,
.page-home-warm .home-band-featured .home-warm-featured .product-card:focus-visible .product-card-media img {
    transform: scale(1.03);
}

.page-home-warm .home-band-featured .home-warm-featured .product-card-body {
    padding: .65rem .5rem .75rem;
    background: #f5f5f5;
}

.page-home-warm .home-band-featured .home-warm-featured .product-card-body h3 {
    margin: 0 0 .35rem;
    font-family: var(--font-sans);
    font-size: clamp(.78rem, 1.1vw, .88rem);
    font-weight: 700;
    line-height: 1.35;
    color: #1a1a1a;
}

.page-home-warm .home-band-featured .home-warm-featured .product-card-body .product-ref {
    margin: 0;
    font-family: var(--font-sans);
    font-size: .72rem;
    color: #8a8a8a;
}

.page-home .home-band-featured .section-cta {
    width: 100%;
    margin-top: clamp(1.25rem, 2.5vw, 1.75rem);
    text-align: left;
}

.page-home .home-band-featured .section-cta .btn {
    min-height: 2.75rem;
    padding: .7rem 1.35rem;
    font-family: var(--font-sans);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
}

@media (max-width: 1024px) {
    .page-home .home-band-featured .product-grid-home-featured.home-warm-featured,
    .page-home-warm .home-band-featured .product-grid-home-featured.home-warm-featured {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 768px) {
    .page-home .home-band-featured,
    .page-home-warm .home-band-featured {
        max-width: min(1360px, 92%);
        padding-left: 0;
        padding-right: 0;
    }

    .page-home .home-band-featured .product-grid-home-featured.home-warm-featured,
    .page-home-warm .home-band-featured .product-grid-home-featured.home-warm-featured {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .65rem;
    }

    .page-home .home-band-featured .section-cta .btn {
        width: 100%;
        justify-content: center;
        text-align: center;
    }
}

@media (max-width: 420px) {
    .page-home .home-band-featured .product-grid-home-featured.home-warm-featured,
    .page-home-warm .home-band-featured .product-grid-home-featured.home-warm-featured {
        grid-template-columns: 1fr;
        gap: .5rem;
    }
}

/* ── Home UX v79 — ancho contenedor real + tarjetas producto sin hueco ── */

/* .main.container ya limita a min(1360px, 92%): no repetir el 92% dentro */
.page-home .home-band-categories,
.page-home-warm .home-band-categories,
.page-home .home-band-featured,
.page-home-warm .home-band-featured {
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
}

.page-home .home-band-featured .product-grid-home-featured.home-warm-featured,
.page-home-warm .home-band-featured .product-grid-home-featured.home-warm-featured {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(.75rem, 1.5vw, 1.25rem);
}

.page-home .home-band-featured .home-warm-featured .product-card,
.page-home-warm .home-band-featured .home-warm-featured .product-card {
    width: 100%;
    max-width: none;
    height: auto;
    display: flex;
    flex-direction: column;
}

.page-home .home-band-featured .home-warm-featured .product-card-link,
.page-home-warm .home-band-featured .home-warm-featured .product-card-link {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    flex: 1 1 auto;
}

.page-home .home-band-featured .home-warm-featured .product-card-media,
.page-home-warm .home-band-featured .home-warm-featured .product-card-media {
    width: 100%;
    aspect-ratio: 1;
    flex: 0 0 auto;
    margin: 0;
    padding: 0;
    line-height: 0;
    background: #f0f0f0;
}

.page-home .home-band-featured .home-warm-featured .product-card-media img,
.page-home-warm .home-band-featured .home-warm-featured .product-card-media img,
.page-home .home-band-featured .home-warm-featured .product-card-media .product-placeholder,
.page-home-warm .home-band-featured .home-warm-featured .product-card-media .product-placeholder {
    width: 100%;
    height: 100%;
    margin: 0;
    display: block;
    object-fit: contain;
    object-position: center;
}

.page-home .home-band-featured .home-warm-featured .product-card-body,
.page-home-warm .home-band-featured .home-warm-featured .product-card-body {
    width: 100%;
    flex: 1 1 auto;
    margin: 0;
    padding: .65rem .75rem .75rem;
    background: #f5f5f5;
}

.page-home .home-band-featured .home-warm-featured .product-card-body h3,
.page-home-warm .home-band-featured .home-warm-featured .product-card-body h3 {
    min-height: 0;
    margin: 0 0 .35rem;
}

.page-home .home-band-featured .home-warm-featured .product-card-body .product-card-price,
.page-home-warm .home-band-featured .home-warm-featured .product-card-body .product-card-price,
.page-home .home-band-featured .home-warm-featured .product-card-body .product-card-stock,
.page-home-warm .home-band-featured .home-warm-featured .product-card-body .product-card-stock {
    margin-top: .35rem;
}

@media (max-width: 1024px) {
    .page-home .home-band-featured .product-grid-home-featured.home-warm-featured,
    .page-home-warm .home-band-featured .product-grid-home-featured.home-warm-featured {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 768px) {
    .page-home .home-band-featured .product-grid-home-featured.home-warm-featured,
    .page-home-warm .home-band-featured .product-grid-home-featured.home-warm-featured {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .85rem;
    }
}

/* ── Home UX v80 — borde gris suave en productos recientes ── */

.page-home .home-band-featured .home-warm-featured .product-card,
.page-home-warm .home-band-featured .home-warm-featured .product-card {
    border: 1px solid #e3e3e3 !important;
    border-radius: 0;
    box-shadow: none;
}

.page-home .home-band-featured .home-warm-featured .product-card:hover,
.page-home-warm .home-band-featured .home-warm-featured .product-card:hover,
.page-home .home-band-featured .home-warm-featured .product-card:focus-within,
.page-home-warm .home-band-featured .home-warm-featured .product-card:focus-within {
    border-color: #d4d4d4 !important;
    box-shadow: none;
    transform: none;
}

/* ── Home UX v81 — CTA contacto + bloc SEO ancho contenedor completo ── */

.page-home .contact-cta-band,
.page-home-warm .contact-cta-band {
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
    margin-top: clamp(2rem, 4vw, 3rem);
}

.page-home .contact-cta-band-inner,
.page-home-warm .contact-cta-band-inner,
.page-home .contact-cta-band-inner.panel-card,
.page-home-warm .contact-cta-band-inner.panel-card {
    width: 100%;
    max-width: 100%;
    margin: 0;
    box-sizing: border-box;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 1.5rem 2rem;
    align-items: center;
}

.page-home .contact-cta-band-text,
.page-home-warm .contact-cta-band-text {
    width: 100%;
    min-width: 0;
}

.page-home .contact-cta-band-text h2,
.page-home-warm .contact-cta-band-text h2 {
    max-width: none;
    width: auto;
    font-family: var(--font-sans);
}

.page-home .contact-cta-band-text p,
.page-home-warm .contact-cta-band-text p {
    max-width: 42rem;
}

.page-home .contact-cta-band .contact-cta-label,
.page-home-warm .contact-cta-band .contact-cta-label,
.page-home .contact-cta-band .section-label,
.page-home-warm .contact-cta-band .section-label {
    border-radius: 0;
    border: 1px solid rgba(47, 181, 210, .35);
    background: rgba(47, 181, 210, .12);
    padding: .3rem .7rem;
    font-family: var(--font-sans);
    font-size: .62rem;
    letter-spacing: .1em;
    color: var(--color-accent);
}

.page-home .home-seo,
.page-home-warm .home-seo,
.page-home .home-seo.panel-card,
.page-home-warm .home-seo.panel-card {
    width: 100%;
    max-width: 100%;
    margin-left: 0 !important;
    margin-right: 0 !important;
    margin-top: clamp(2rem, 4vw, 3rem);
    margin-bottom: 0;
    padding: clamp(1.5rem, 3vw, 2rem) !important;
    padding-left: clamp(1.5rem, 3vw, 2rem) !important;
    box-sizing: border-box;
    position: static;
    background: #f5f5f5 !important;
    border: 1px solid #e8e8e8 !important;
    border-radius: 0;
    box-shadow: none !important;
}

.page-home .home-seo::before,
.page-home-warm .home-seo::before {
    display: none !important;
    content: none !important;
}

.page-home .home-seo h2,
.page-home-warm .home-seo.panel-card h2 {
    margin: 0 0 .75rem;
    font-family: var(--font-sans);
    font-size: clamp(1.15rem, 2.2vw, 1.35rem);
    font-weight: 700;
    color: #1a1a1a;
}

.page-home .home-seo p,
.page-home-warm .home-seo.panel-card p {
    margin: 0;
    max-width: none;
    font-family: var(--font-sans);
    font-size: clamp(.88rem, 1.4vw, 1rem);
    line-height: 1.65;
    color: #6b6b6b;
}

@media (max-width: 1024px) {
    .page-home .contact-cta-band-inner,
    .page-home-warm .contact-cta-band-inner {
        grid-template-columns: 1fr;
        text-align: left;
    }

    .page-home .contact-cta-band-text p,
    .page-home-warm .contact-cta-band-text p,
    .page-home .contact-cta-phone,
    .page-home-warm .contact-cta-phone {
        margin-left: 0;
        margin-right: 0;
    }

    .page-home .contact-cta-band-actions,
    .page-home-warm .contact-cta-band-actions {
        width: 100%;
        max-width: none;
        margin: 0;
    }
}

@media (max-width: 768px) {
    .page-home .home-seo.panel-card,
    .page-home-warm .home-seo.panel-card {
        border-left: 1px solid #e8e8e8 !important;
        border-right: 1px solid #e8e8e8 !important;
    }

    .page-home .contact-cta-band-actions .btn,
    .page-home-warm .contact-cta-band-actions .btn {
        width: 100%;
        justify-content: center;
    }
}

/* ── Home UX v82 — bloc SEO lead + paragraphes ── */

.page-home .home-seo-lead,
.page-home-warm .home-seo .home-seo-lead {
    margin: 0 0 1rem;
    font-family: var(--font-sans);
    font-size: clamp(.95rem, 1.5vw, 1.08rem);
    font-weight: 700;
    line-height: 1.45;
    color: #168a9e;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.page-home .home-seo p + p,
.page-home-warm .home-seo.panel-card p + p {
    margin-top: .85rem;
}

/* ── Header UX v83 — menú móvil: una columna, ancho completo ── */

@media (min-width: 769px) {
    #site-header .header-inner {
        grid-template-columns: auto minmax(0, 1fr) auto;
    }

    #site-header .header-actions {
        display: none;
    }

    #site-header #main-nav.nav {
        display: flex;
        position: static;
        grid-column: 3;
        grid-row: 1;
        justify-self: end;
        align-self: center;
        width: auto;
        max-width: none;
        margin: 0;
        padding: 0;
        overflow: visible;
        background: transparent;
        border: 0;
        box-shadow: none;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        gap: .2rem;
    }

    #site-header #main-nav .nav-mobile-categories,
    #site-header #main-nav .nav-mobile-divider,
    #site-header #main-nav .nav-mobile-backdrop,
    #site-header #main-nav .nav-mobile-section-label,
    #site-header #main-nav .nav-search-mobile {
        display: none !important;
    }

    #site-header #main-nav .nav-mobile-secondary {
        display: contents;
    }
}

@media (max-width: 768px) {
    #site-header .header-inner {
        grid-template-columns: 1fr auto;
        align-items: center;
    }

    #site-header .header-actions {
        grid-column: 2;
        grid-row: 1;
    }

    #site-header #main-nav.nav,
    #site-header #main-nav.nav.is-open {
        display: none;
        position: fixed;
        top: var(--header-offset, 3.75rem);
        left: 0;
        right: 0;
        bottom: 0;
        width: 100%;
        max-width: 100vw;
        margin: 0;
        padding: 0;
        overflow: hidden;
        z-index: 220;
        background: #fff;
        border: 0;
        border-top: 1px solid #ededed;
        box-shadow: none;
        flex-direction: column;
        flex-wrap: nowrap;
        align-items: stretch;
        align-content: stretch;
        gap: 0;
    }

    #site-header #main-nav.nav.is-open {
        display: flex;
    }

    #site-header #main-nav.nav > * {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }

    #site-header .nav-search-mobile {
        order: 0;
        flex: 0 0 auto;
        display: flex;
        align-items: stretch;
        gap: 0;
        width: 100%;
        margin: 0;
        padding: .75rem 1rem;
        border: 0;
        border-bottom: 1px solid #ededed;
        background: #fff;
    }

    #site-header .nav-search-mobile input {
        flex: 1 1 auto;
        min-width: 0;
        width: auto;
        margin: 0;
        padding: .72rem .85rem;
        border: 1px solid #e8e8e8;
        border-right: 0;
        border-radius: 0;
        background: #f7f7f7;
        font-family: var(--font-sans);
        font-size: .9rem;
        color: #1a1a1a;
    }

    #site-header .nav-search-mobile .btn,
    #site-header .nav-search-mobile .btn-primary {
        flex: 0 0 auto;
        margin: 0;
        padding: .72rem 1rem;
        border: 0;
        border-radius: 0;
        background: #2fb5d2;
        color: #fff;
        font-family: var(--font-sans);
        font-size: .66rem;
        font-weight: 700;
        letter-spacing: .07em;
        text-transform: uppercase;
        white-space: nowrap;
    }

    #site-header .nav-mobile-categories {
        order: 1;
        flex: 1 1 auto;
        min-height: 0;
        overflow-x: hidden;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        padding: .85rem 1rem 1rem;
        background: #fff;
    }

    #site-header .nav-mobile-cat-list {
        width: 100%;
    }

    #site-header .nav-mobile-divider {
        order: 2;
        flex: 0 0 auto;
        width: 100%;
        height: 0;
        margin: 0;
        border-top: 1px solid #ededed;
        background: transparent;
    }

    #site-header .nav-mobile-secondary {
        order: 3;
        flex: 0 0 auto;
        width: 100%;
        padding: .85rem 1rem calc(1.1rem + env(safe-area-inset-bottom, 0px));
        background: #fff;
        border: 0;
    }

    #site-header .nav-mobile-secondary .nav-link,
    #site-header .nav-mobile-secondary .nav a:not(.btn) {
        display: flex;
        align-items: center;
        width: 100%;
        min-height: 2.75rem;
        margin: 0;
        padding: .65rem .5rem;
        border: 0;
        border-bottom: 1px solid #f0f0f0;
        font-family: var(--font-sans);
        font-size: .72rem;
        font-weight: 600;
        letter-spacing: .06em;
        text-transform: uppercase;
        color: #2a2a2a;
        text-decoration: none;
        box-shadow: none;
        background: transparent;
    }

    #site-header .nav-mobile-secondary .nav-link.is-active,
    #site-header .nav-mobile-secondary .nav a:not(.btn).is-active {
        color: #168a9e;
        background: rgba(47, 181, 210, .06);
        border-left: 3px solid #2fb5d2;
        padding-left: calc(.5rem - 3px);
    }

    #site-header .nav-mobile-cat-pill,
    #site-header .nav-mobile-cat-toggle.nav-mobile-cat-pill,
    #site-header .nav-mobile-cat-link-single {
        width: 100%;
        padding-left: 0;
        padding-right: 0;
    }

    #site-header .nav-mobile-cat-toggle {
        width: 100%;
        border: 0;
        border-left: 0;
        background: transparent;
    }

    #site-header .nav-mobile-cat-item {
        width: 100%;
        border: 0;
        border-bottom: 1px solid #ededed;
        background: transparent;
    }

    #site-header .nav-mobile-backdrop {
        top: var(--header-offset, 3.75rem);
        background: rgba(0, 0, 0, .35);
        backdrop-filter: blur(3px);
        -webkit-backdrop-filter: blur(3px);
    }
}

/* ── Header UX v84 — iconos categorías megamenú + móvil ── */

.category-nav-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.35rem;
    height: 1.35rem;
    flex-shrink: 0;
    color: #168a9e;
    background: transparent;
    border: 0;
    border-radius: 0;
    overflow: visible;
}

.category-nav-icon img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 0;
}

.category-nav-icon svg {
    display: block;
}

.category-nav-pill .category-nav-icon,
.category-nav-link .category-nav-icon {
    width: 1.15rem;
    height: 1.15rem;
}

.category-nav-pill.is-current .category-nav-icon,
.category-nav-link.is-current .category-nav-icon,
.category-nav-item.is-open > .category-nav-pill .category-nav-icon,
.category-nav-item.is-active > .category-nav-pill .category-nav-icon {
    color: #168a9e;
}

.category-mega-head-main {
    display: flex;
    align-items: center;
    gap: .85rem;
    min-width: 0;
}

.category-mega-head-icon.category-nav-icon {
    width: 2.5rem;
    height: 2.5rem;
    flex-shrink: 0;
}

.category-mega-head-icon.category-nav-icon svg {
    width: 1.35rem;
    height: 1.35rem;
}

#site-header .nav-mobile-cat-pill,
#site-header .nav-mobile-cat-link-single {
    gap: .65rem;
}

#site-header .nav-mobile-cat-pill .category-nav-icon,
#site-header .nav-mobile-cat-link-single .category-nav-icon {
    width: 1.4rem;
    height: 1.4rem;
}

#site-header .nav-mobile-cat-see-all {
    display: none !important;
}

.category-mega-col-link {
    display: none !important;
}

/* ── Product UX v85 — fil d'Ariane fiche produit ── */

.page-product .product-page-bp .product-bp-breadcrumbs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .2rem .45rem;
    width: 100%;
    margin: 0 0 .85rem;
    padding: 0 0 .75rem;
    border-bottom: 1px solid #ededed;
    font-family: var(--font-sans);
    font-size: .74rem;
    font-weight: 500;
    letter-spacing: .03em;
    line-height: 1.45;
    color: #8a8a8a;
}

.page-product .product-page-bp .product-bp-breadcrumbs a {
    color: #5c5c5c;
    font-weight: 500;
    text-decoration: none;
    transition: color .15s ease;
}

.page-product .product-page-bp .product-bp-breadcrumbs a:hover {
    color: #168a9e;
    text-decoration: none;
}

.page-product .product-page-bp .product-bp-breadcrumbs .crumb-sep {
    margin: 0;
    opacity: 1;
    color: #d0d0d0;
    font-size: .62rem;
    font-weight: 600;
    line-height: 1;
}

.page-product .product-page-bp .product-bp-breadcrumbs .breadcrumbs-current,
.page-product .product-page-bp .product-bp-breadcrumbs [aria-current="page"] {
    color: #1a1a1a;
    font-weight: 600;
    max-width: none;
    overflow: visible;
    text-overflow: unset;
    white-space: normal;
    display: inline;
    vertical-align: baseline;
}

.page-product .product-page-bp .product-bp-shell {
    padding-top: clamp(.65rem, 1.5vw, 1rem);
}

@media (max-width: 768px) {
    .page-product .product-page-bp .product-bp-breadcrumbs {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        gap: .15rem .4rem;
        margin-bottom: .7rem;
        padding-bottom: .65rem;
        font-size: .7rem;
        white-space: nowrap;
    }

    .page-product .product-page-bp .product-bp-breadcrumbs::-webkit-scrollbar {
        display: none;
    }

    .page-product .product-page-bp .product-bp-breadcrumbs .breadcrumbs-current,
    .page-product .product-page-bp .product-bp-breadcrumbs [aria-current="page"] {
        flex: 0 0 auto;
        max-width: none;
        overflow: visible;
        text-overflow: unset;
    }
}

/* ── Header UX v86 — menú móvil estable al abrir (sin saltos al scroll) ── */

@media (max-width: 768px) {
    body.site-body.nav-open {
        overflow: hidden;
        position: fixed;
        left: 0;
        right: 0;
    }

    body.site-body.nav-open #site-header #main-nav.nav.is-open,
    body.site-body.nav-open #site-header .nav-mobile-backdrop:not([hidden]) {
        top: var(--nav-drawer-top, var(--header-offset, 3.75rem));
    }
}

/* ── Ficha producto v87 — excerpt corto limpio (sin wrapper ChatGPT) ── */

@media (min-width: 769px) {
    .page-product .product-page-bp .product-detail-grid-guest {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(280px, .92fr);
        gap: clamp(1rem, 2vw, 1.5rem);
        align-items: start;
    }

    .page-product .product-page-bp .product-detail-grid-guest .product-gallery-col,
    .page-product .product-page-bp .product-detail-grid-guest .product-aside-col {
        order: 0;
    }

    .page-product .product-page-bp .product-detail-grid-guest .product-aside-col {
        position: sticky;
        top: calc(var(--header-offset, 88px) + .75rem);
        align-self: start;
    }
}

.page-product .product-page-bp .product-bp-short-prose {
    margin: 0;
}

.page-product .product-page-bp .product-bp-short-prose p {
    margin: 0;
    font-size: inherit;
    line-height: inherit;
    color: inherit;
}

.page-product .product-page-bp .product-bp-short-prose p + p {
    margin-top: .5rem;
}

.page-product .product-page-bp .product-bp-short-prose strong {
    font-weight: 700;
    color: var(--color-ink);
}

/* ── Ficha producto v88 — borde individual por review ── */

.page-product .product-page-bp .product-bp-review-card,
.page-product .product-page-bp .product-review-card.product-bp-review-card {
    padding: 1.15rem 1.2rem !important;
    background: #fff !important;
    border: 1px solid #e9ecef !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.page-product .product-page-bp .product-bp-review-card:last-child,
.page-product .product-page-bp .product-review-card.product-bp-review-card:last-child {
    border-bottom: 1px solid #e9ecef !important;
    padding-bottom: 1.15rem !important;
}

.page-product .product-page-bp .product-bp-review-card:hover,
.page-product .product-page-bp .product-review-card.product-bp-review-card:hover {
    border-color: #d1d5db !important;
    box-shadow: none !important;
}

.page-product .product-page-bp .product-bp-reviews-list {
    gap: .85rem;
}

/* ── Admin v23 — sidebar plano + CRUD unificado ── */
.has-admin-panel {
    --admin-sidebar-width: 240px;
}

.admin-sidebar-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    flex-shrink: 0;
    margin-bottom: .35rem;
    min-width: 0;
}
.admin-sidebar-brand {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    text-decoration: none;
    min-width: 0;
    flex: 1 1 auto;
    overflow: hidden;
}
.admin-sidebar-brand img {
    display: block;
    height: auto;
    max-width: 100%;
    flex-shrink: 1;
    filter: brightness(0) invert(1);
}
.admin-sidebar-brand-badge {
    font-size: .58rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
    padding: .12rem .35rem;
    border-radius: 999px;
    background: rgba(47, 181, 210, .22);
    color: var(--color-accent);
}
.admin-sidebar-top-actions {
    display: flex;
    align-items: center;
    gap: .35rem;
    flex: 0 0 auto;
    margin-left: auto;
}
.admin-sidebar-top-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: var(--radius);
    background: rgba(255, 255, 255, .06);
    color: rgba(255, 255, 255, .75);
    font-size: .85rem;
    line-height: 1;
    cursor: pointer;
    transition: background .15s, border-color .15s, color .15s;
}
.admin-sidebar-top-btn:hover {
    background: rgba(47, 181, 210, .15);
    border-color: rgba(47, 181, 210, .35);
    color: #fff;
}

.admin-sidebar-group {
    display: flex;
    flex-direction: column;
    gap: .1rem;
}
.admin-sidebar-group-label {
    margin: .55rem 0 .2rem;
    padding: 0 .55rem;
    font-size: .62rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .09em;
    color: rgba(255, 255, 255, .38);
}
.admin-sidebar-group:first-child .admin-sidebar-group-label {
    margin-top: .15rem;
}
.admin-sidebar-group.has-active .admin-sidebar-group-label {
    color: rgba(47, 181, 210, .75);
}

.admin-sidebar-link {
    padding: .42rem .55rem;
    font-size: .82rem;
    border-radius: var(--radius);
}
.admin-sidebar-icon {
    width: 1.45rem;
    height: 1.45rem;
}

.admin-sidebar-footer {
    flex-shrink: 0;
    margin-top: auto;
    padding-top: .65rem;
    border-top: 1px solid rgba(255, 255, 255, .08);
}
.admin-sidebar-user {
    display: flex;
    align-items: center;
    gap: .55rem;
    padding: .35rem .45rem .55rem;
    min-width: 0;
}
.admin-sidebar-user .admin-sidebar-avatar {
    width: 2rem;
    height: 2rem;
    margin: 0;
    font-size: .82rem;
    flex-shrink: 0;
}
.admin-sidebar-user .admin-sidebar-identity {
    min-width: 0;
}
.admin-sidebar-user .admin-sidebar-identity strong {
    display: block;
    color: #fff;
    font-size: .8rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.admin-sidebar-user .admin-sidebar-identity .muted {
    display: block;
    font-size: .68rem;
    color: rgba(255, 255, 255, .45);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.admin-sidebar-footer-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .25rem;
    padding: 0 .25rem .15rem;
}
.admin-sidebar-footer-link {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    padding: .45rem .35rem;
    border-radius: var(--radius);
    border: 1px solid rgba(255, 255, 255, .08);
    background: rgba(255, 255, 255, .04);
    color: rgba(255, 255, 255, .75);
    font-size: .72rem;
    font-weight: 700;
    text-decoration: none;
    transition: background .15s, border-color .15s, color .15s;
}
.admin-sidebar-footer-link:hover {
    background: rgba(255, 255, 255, .08);
    border-color: rgba(255, 255, 255, .14);
    color: #fff;
    text-decoration: none;
}
.admin-sidebar-footer-link .admin-nav-icon {
    width: .95rem;
    height: .95rem;
}

body.admin-sidebar-collapsed .admin-sidebar-brand,
body.admin-sidebar-collapsed .admin-sidebar-brand-badge,
body.admin-sidebar-collapsed .admin-sidebar-brand img,
body.admin-sidebar-collapsed .admin-sidebar-filter-wrap,
body.admin-sidebar-collapsed .admin-sidebar-group-label,
body.admin-sidebar-collapsed .admin-sidebar-text,
body.admin-sidebar-collapsed .admin-sidebar-badge,
body.admin-sidebar-collapsed .admin-sidebar-user .admin-sidebar-identity,
body.admin-sidebar-collapsed .admin-sidebar-footer-actions {
    display: none !important;
}

.admin-flash {
    margin-bottom: 1rem;
}

.admin-row-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: .25rem;
}
.admin-row-actions .admin-row-action-form {
    display: inline-flex;
}

.admin-exports-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 1rem;
}
.admin-export-card {
    display: flex;
    flex-direction: column;
    gap: .65rem;
    padding: 1.1rem 1.15rem;
    height: 100%;
}
.admin-export-card-head {
    display: flex;
    align-items: center;
    gap: .65rem;
}
.admin-export-card-head h2 {
    margin: 0;
    font-size: 1rem;
}
.admin-export-card-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: var(--radius-lg);
    background: rgba(47, 181, 210, .1);
    font-size: 1.1rem;
    flex-shrink: 0;
}
.admin-export-card-desc {
    margin: 0;
    flex: 1;
    font-size: .84rem;
    line-height: 1.45;
}
.admin-export-card .btn {
    align-self: flex-start;
    margin-top: auto;
}

.admin-order-ps-meta {
    margin: -.5rem 0 1rem;
    font-size: .84rem;
}

.admin-search-hit-actions {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: .35rem;
}
.admin-search-hit-actions .btn-sm {
    white-space: nowrap;
}

@media (min-width: 769px) {
    .has-admin-panel .admin-sidebar {
        padding: .65rem .55rem .75rem;
    }
    .admin-sidebar-filter-wrap {
        flex-shrink: 0;
        margin-bottom: .15rem;
    }
    .admin-sidebar-nav {
        flex: 1;
        min-height: 0;
        overflow-y: auto;
        overscroll-behavior: contain;
        scrollbar-width: thin;
        scrollbar-color: rgba(255, 255, 255, .15) transparent;
        padding-right: .1rem;
    }
}

@media (max-width: 768px) {
    .admin-sidebar-top-actions .admin-sidebar-top-btn#admin-sidebar-command {
        display: none;
    }
}

/* Admin v24 — CRUD inline en tablas */
.admin-crud-inline {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    flex-wrap: wrap;
}

.admin-crud-inline .input-qty-narrow,
.input-qty-narrow {
    width: 4.25rem;
    min-width: 3rem;
    padding: .25rem .4rem;
    font-size: .875rem;
}

.admin-crud-add-form {
    margin-top: .75rem;
}

.admin-crud-add-block {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--admin-border, rgba(0, 0, 0, .08));
}

.admin-crud-add-block h3 {
    margin: 0 0 .5rem;
    font-size: .95rem;
}

.admin-group-assign-form {
    margin-bottom: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--admin-border, rgba(0, 0, 0, .08));
}

.admin-danger-zone {
    border-color: rgba(220, 53, 69, .25);
}

.admin-danger-zone h2 {
    color: var(--color-error, #c0392b);
}

.btn-danger {
    color: #fff;
    background: var(--color-error, #c0392b);
    border-color: transparent;
}

.btn-danger:hover {
    filter: brightness(.92);
}

.admin-ref-search-results {
    list-style: none;
    margin: .35rem 0 0;
    padding: 0;
    border: 1px solid var(--admin-border, rgba(0, 0, 0, .08));
    border-radius: .35rem;
    max-height: 14rem;
    overflow-y: auto;
    background: var(--admin-surface, #fff);
}

.admin-ref-search-hit {
    padding: .45rem .65rem;
    cursor: pointer;
    border-bottom: 1px solid var(--admin-border, rgba(0, 0, 0, .06));
}

.admin-ref-search-hit:hover {
    background: rgba(0, 0, 0, .04);
}

.admin-bulk-actions {
    margin-bottom: .75rem;
    gap: .5rem;
    flex-wrap: wrap;
    align-items: center;
}

.admin-bulk-col {
    width: 2.25rem;
    text-align: center;
}

.admin-group-row-form {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin-right: .35rem;
}

.admin-price-input {
    width: 5.5rem;
    min-width: 4rem;
}

.admin-sync-entity-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: .65rem;
}
.admin-sync-entity-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .5rem;
    padding: .85rem 1rem;
    margin: 0;
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
}
.admin-sync-entity-card strong {
    font-size: .84rem;
    line-height: 1.3;
}
.admin-sync-entities-section {
    margin-bottom: 1rem;
}

.admin-cart-bulk-check {
    display: inline-flex;
    align-items: center;
    margin-right: .5rem;
    vertical-align: middle;
}

/* ── Admin dashboard v2 ── */
.admin-dashboard-v2 {
    gap: 1rem;
}

.admin-dashboard-v2 .admin-dashboard-hero {
    position: relative;
    overflow: hidden;
    padding: 0;
    border: 0;
    background: linear-gradient(128deg, #070b10 0%, #101c28 38%, #0c2a36 100%);
    color: #fff;
    box-shadow: 0 16px 36px rgba(15, 20, 25, .2);
}

.admin-dashboard-hero-bg {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 92% 8%, rgba(47, 181, 210, .32) 0%, transparent 38%),
        radial-gradient(circle at 8% 92%, rgba(47, 181, 210, .1) 0%, transparent 42%);
    pointer-events: none;
}

.admin-dashboard-hero-inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 1rem 1.5rem;
    padding: 1.15rem 1.35rem 1rem;
}

.admin-dashboard-hero-intro {
    display: flex;
    align-items: flex-start;
    gap: .85rem;
    min-width: 0;
}

.admin-dashboard-hero-avatar {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.65rem;
    height: 2.65rem;
    border-radius: 999px;
    background: linear-gradient(145deg, var(--color-accent) 0%, #5ecde8 100%);
    color: var(--color-ink);
    font-family: var(--font-display);
    font-size: 1.05rem;
    font-weight: 800;
    box-shadow: 0 4px 14px rgba(47, 181, 210, .35);
}

.admin-dashboard-hero-text {
    min-width: 0;
}

.admin-dashboard-hero-eyebrow {
    margin: 0 0 .35rem;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .52);
}

.admin-dashboard-v2 .admin-dashboard-welcome {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(1.2rem, 2.2vw, 1.55rem);
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -.02em;
    color: #fff;
}

.admin-dashboard-v2 .admin-dashboard-welcome-sub {
    margin: .35rem 0 0;
    font-size: .88rem;
    line-height: 1.45;
    color: rgba(255, 255, 255, .68);
    font-weight: 500;
    max-width: 36rem;
}

.admin-dashboard-hero-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: .45rem;
}

.admin-dashboard-hero-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    white-space: nowrap;
    border-radius: 999px;
    font-weight: 600;
    padding: .48rem .95rem;
}

.admin-dashboard-hero-btn-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .95rem;
    line-height: 1;
}

.admin-dashboard-v2 .admin-dashboard-hero-actions .btn-primary,
.admin-dashboard-v2 .admin-dashboard-hero-actions .admin-dashboard-hero-btn--primary {
    background: var(--color-accent);
    color: var(--color-ink);
    border-color: var(--color-accent);
    font-weight: 700;
    box-shadow: 0 4px 14px rgba(47, 181, 210, .28);
}

.admin-dashboard-v2 .admin-dashboard-hero-actions .btn-primary:hover,
.admin-dashboard-v2 .admin-dashboard-hero-actions .admin-dashboard-hero-btn--primary:hover {
    filter: brightness(1.05);
    box-shadow: 0 6px 18px rgba(47, 181, 210, .38);
}

.admin-dashboard-v2 .admin-dashboard-hero-actions .btn:not(.btn-primary) {
    background: rgba(255, 255, 255, .07);
    color: #fff;
    border-color: rgba(255, 255, 255, .18);
}

.admin-dashboard-v2 .admin-dashboard-hero-actions .btn:not(.btn-primary):hover {
    background: rgba(255, 255, 255, .13);
    border-color: rgba(47, 181, 210, .45);
    color: #fff;
}

.admin-dashboard-hero-statusbar {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem;
    padding: .65rem 1.35rem .85rem;
    border-top: 1px solid rgba(255, 255, 255, .08);
    background: rgba(0, 0, 0, .12);
}

.admin-dashboard-v2 .admin-dashboard-hero-statusbar .admin-health-pill {
    padding: .35rem .65rem;
    gap: .4rem;
    align-items: center;
    background: rgba(255, 255, 255, .06);
    border: 1px solid rgba(255, 255, 255, .1);
    backdrop-filter: blur(6px);
    border-left-width: 3px;
    border-radius: 999px;
    box-shadow: none;
}

.admin-dashboard-v2 .admin-health-pill-dot {
    margin-top: 0;
    width: .45rem;
    height: .45rem;
}

.admin-dashboard-v2 .admin-health-pill-body {
    display: flex;
    align-items: center;
    gap: .3rem;
    flex-wrap: nowrap;
}

.admin-dashboard-v2 .admin-health-pill-body strong {
    font-size: .74rem;
    white-space: nowrap;
}

.admin-dashboard-v2 .admin-health-pill-msg {
    font-size: .72rem;
    color: rgba(255, 255, 255, .58);
    white-space: nowrap;
}

.admin-dashboard-btn-icon {
    display: inline-block;
    margin-right: .25rem;
    font-weight: 700;
}

.admin-dashboard-v2 .admin-dashboard-welcome-sub {
    margin: .35rem 0 0;
    font-size: .88rem;
    color: rgba(255, 255, 255, .68);
    font-weight: 500;
}

.admin-dashboard-kpis-wrap {
    display: grid;
    gap: .75rem;
}

.admin-dashboard-kpis-spotlight {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}

.admin-kpi-spotlight {
    display: grid;
    gap: .25rem;
    padding: 1.15rem 1.25rem;
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    background: #fff;
    text-decoration: none;
    color: var(--color-text);
    box-shadow: 0 1px 0 rgba(255, 255, 255, .8), 0 8px 24px rgba(15, 20, 25, .05);
    transition: border-color .15s, transform .15s, box-shadow .15s;
}

.admin-kpi-spotlight:hover {
    border-color: rgba(47, 181, 210, .45);
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(47, 181, 210, .12);
}

.admin-kpi-spotlight--primary {
    background: linear-gradient(145deg, rgba(47, 181, 210, .14) 0%, #fff 55%);
    border-color: rgba(47, 181, 210, .35);
}

.admin-kpi-spotlight-label {
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--color-muted);
}

.admin-kpi-spotlight-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
}

.admin-kpi-trend {
    display: inline-flex;
    align-items: center;
    gap: .15rem;
    padding: .12rem .4rem;
    border-radius: 999px;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .02em;
    white-space: nowrap;
}

.admin-kpi-trend--up {
    background: rgba(34, 197, 94, .14);
    color: #15803d;
}

.admin-kpi-trend--down {
    background: rgba(239, 68, 68, .12);
    color: #b91c1c;
}

.admin-kpi-trend-inline {
    font-size: .75rem;
    font-weight: 700;
}

.admin-kpi-trend-inline.admin-kpi-trend--up { color: #15803d; }
.admin-kpi-trend-inline.admin-kpi-trend--down { color: #b91c1c; }

.admin-kpi-spotlight-value {
    font-family: var(--font-display);
    font-size: clamp(1.35rem, 2.5vw, 1.85rem);
    font-weight: 800;
    line-height: 1.05;
}

.admin-kpi-spotlight-hint {
    font-size: .8rem;
}

.admin-dashboard-kpis-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .65rem;
}

.admin-kpi-tile {
    display: flex;
    align-items: center;
    gap: .7rem;
    padding: .85rem 1rem;
    min-height: 4.25rem;
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    text-decoration: none;
    color: var(--color-text);
    text-align: left;
    transition: border-color .15s, background .15s, transform .15s;
}

.admin-kpi-tile-body {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    flex: 1;
    min-width: 0;
}

.admin-kpi-tile-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.1rem;
    height: 2.1rem;
    border-radius: 999px;
    background: rgba(47, 181, 210, .12);
    font-size: .95rem;
    line-height: 1;
    flex-shrink: 0;
}

.admin-kpi-tile--pending .admin-kpi-tile-icon::before { content: "⏳"; }
.admin-kpi-tile--messages .admin-kpi-tile-icon::before { content: "✉"; }
.admin-kpi-tile--registrations .admin-kpi-tile-icon::before { content: "👤"; }
.admin-kpi-tile--stock .admin-kpi-tile-icon::before { content: "⚠"; }
.admin-kpi-tile--products .admin-kpi-tile-icon::before { content: "🏷"; }
.admin-kpi-tile--carts .admin-kpi-tile-icon::before { content: "🛒"; }

.admin-kpi-tile:hover {
    border-color: rgba(47, 181, 210, .4);
    background: rgba(47, 181, 210, .04);
    transform: translateY(-1px);
}

.admin-kpi-tile--warn {
    border-color: rgba(245, 158, 11, .45);
    background: #fffbeb;
}

.admin-kpi-tile-value {
    font-family: var(--font-display);
    font-size: 1.35rem;
    font-weight: 800;
    line-height: 1;
    flex-shrink: 0;
}

.admin-kpi-tile-label {
    font-size: .82rem;
    font-weight: 600;
    color: var(--color-muted);
    line-height: 1.3;
    min-width: 0;
}

.admin-dashboard-v2 .admin-dashboard-grid {
    grid-template-columns: minmax(0, 1fr) minmax(280px, 340px);
    gap: 1rem;
}

.admin-dashboard-chart-card {
    padding-bottom: 1.25rem;
}

.admin-kpi-trend--new {
    background: rgba(47, 181, 210, .18);
    color: #0e7490;
}

.admin-dashboard-chart {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: .65rem;
    align-items: end;
    min-height: 220px;
    padding: .5rem .25rem 0;
}

.admin-dashboard-chart-col--empty .admin-dashboard-chart-bar {
    background: rgba(15, 20, 25, .08);
    opacity: 1;
}

.admin-dashboard-chart-col--empty .admin-dashboard-chart-amount {
    color: var(--color-muted);
    font-weight: 600;
}

.admin-dashboard-chart-col--empty .admin-dashboard-chart-bar-wrap {
    background: var(--color-surface-subtle);
}

.admin-dashboard-chart-col {
    display: grid;
    gap: .35rem;
    justify-items: center;
    text-align: center;
}
a.admin-dashboard-chart-col-link {
    text-decoration: none;
    color: inherit;
    border-radius: var(--radius-md);
    padding: .25rem .15rem .35rem;
    transition: background .15s, transform .15s;
}
a.admin-dashboard-chart-col-link:hover {
    background: rgba(0, 0, 0, .04);
}
a.admin-dashboard-chart-col-link:hover .admin-dashboard-chart-bar {
    filter: brightness(1.08);
}
a.admin-dashboard-chart-col-link:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 2px;
}

.admin-dashboard-chart-bar-wrap {
    display: flex;
    align-items: flex-end;
    width: 100%;
    max-width: 56px;
    height: 140px;
    padding: .35rem;
    border-radius: var(--radius-lg);
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
}

.admin-dashboard-chart-bar {
    width: 100%;
    height: var(--bar-h, 20%);
    min-height: 8px;
    border-radius: var(--radius);
    background: linear-gradient(180deg, var(--color-accent) 0%, rgba(47, 181, 210, .55) 100%);
    transition: height .35s ease;
}

.admin-dashboard-chart-amount {
    font-size: .78rem;
    font-weight: 800;
    line-height: 1.2;
}

.admin-dashboard-chart-month {
    font-size: .72rem;
    font-weight: 700;
    color: var(--color-muted);
    text-transform: uppercase;
    letter-spacing: .03em;
}

.admin-dashboard-chart-orders {
    font-size: .68rem;
}

.admin-dashboard-tops {
    gap: .85rem;
}

.admin-dashboard-top-card {
    min-height: 100%;
}

.admin-dashboard-rank-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: .35rem;
}

.admin-dashboard-rank-item {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .65rem;
    align-items: center;
    padding: .65rem .75rem;
    border-radius: var(--radius-lg);
    border: 1px solid transparent;
    text-decoration: none;
    color: inherit;
    transition: background .15s, border-color .15s;
}

.admin-dashboard-rank-item:hover {
    background: var(--color-surface-subtle);
    border-color: var(--color-border);
}

.admin-dashboard-rank-pos {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.65rem;
    height: 1.65rem;
    border-radius: 999px;
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
    font-size: .75rem;
    font-weight: 800;
    color: var(--color-muted);
}

.admin-dashboard-rank-list li:nth-child(1) .admin-dashboard-rank-pos {
    background: rgba(47, 181, 210, .18);
    border-color: rgba(47, 181, 210, .35);
    color: var(--color-ink);
}

.admin-dashboard-rank-body {
    display: grid;
    gap: .1rem;
    min-width: 0;
}

.admin-dashboard-rank-body strong {
    font-size: .88rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.admin-dashboard-rank-body .muted {
    font-size: .78rem;
}

.admin-dashboard-recent-list {
    display: grid;
    gap: .35rem;
}

.admin-dashboard-recent-row {
    display: grid;
    grid-template-columns: minmax(88px, auto) minmax(0, 1fr) auto auto auto;
    gap: .65rem;
    align-items: center;
    padding: .65rem .75rem;
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    background: var(--color-bg);
    text-decoration: none;
    color: inherit;
    transition: border-color .15s, background .15s;
}

.admin-dashboard-recent-row:hover {
    border-color: rgba(47, 181, 210, .4);
    background: rgba(47, 181, 210, .04);
}

.admin-dashboard-recent-total {
    font-weight: 700;
    font-size: .86rem;
    white-space: nowrap;
}

.admin-dashboard-recent-client {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: .86rem;
}

.admin-priorities-card--ok {
    border-color: rgba(34, 197, 94, .25);
    background: linear-gradient(180deg, rgba(34, 197, 94, .06) 0%, #fff 100%);
}

.admin-priorities-ok {
    display: grid;
    justify-items: center;
    gap: .35rem;
    padding: .5rem 0 .25rem;
    text-align: center;
}

.admin-priorities-ok-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 999px;
    background: rgba(34, 197, 94, .14);
    color: #15803d;
    font-size: 1.1rem;
    font-weight: 800;
}

.admin-priorities-ok p {
    margin: 0;
    font-size: .86rem;
    color: var(--color-muted);
}

.admin-priorities-list-v2 .admin-priority-item a {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: .75rem;
    align-items: center;
    padding: .7rem .85rem;
}

.admin-priority-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    height: 2rem;
    padding: 0 .45rem;
    border-radius: 999px;
    background: var(--color-surface-subtle);
    font-size: .82rem;
    font-weight: 800;
    flex-shrink: 0;
}

.admin-priority-error .admin-priority-count {
    background: #fef2f2;
    color: #b91c1c;
}

.admin-priority-warn .admin-priority-count {
    background: #fffbeb;
    color: #b45309;
}

.admin-priority-text {
    font-size: .86rem;
    line-height: 1.35;
    min-width: 0;
}

.admin-priority-chevron {
    color: var(--color-muted);
    font-size: 1.1rem;
}

.admin-health-dl-v2 > div:last-child {
    border-bottom: 0;
}

.admin-health-ratio {
    font-weight: 800;
    font-size: 1rem;
}

.admin-quick-links-v2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .5rem;
}

.admin-quick-link--products .admin-quick-link-icon::before { content: "🏷"; }
.admin-quick-link--orders .admin-quick-link-icon::before { content: "📦"; }
.admin-quick-link--clients .admin-quick-link-icon::before { content: "👥"; }
.admin-quick-link--translations .admin-quick-link-icon::before { content: "🌐"; }
.admin-quick-link--carts .admin-quick-link-icon::before { content: "🛒"; }
.admin-quick-link--search .admin-quick-link-icon::before { content: "⌕"; }
.admin-quick-link--pricing .admin-quick-link-icon::before { content: "⚡"; }
.admin-quick-link--settings .admin-quick-link-icon::before { content: "⚙"; }

.admin-quick-links-v2 .admin-quick-link {
    display: flex;
    align-items: center;
    gap: .55rem;
    padding: .65rem .75rem;
    background: var(--color-surface-subtle);
}

.admin-quick-link-icon::before {
    font-size: 1rem;
    line-height: 1;
}

.admin-mini-list-v2 a.is-unread strong {
    position: relative;
}

.admin-mini-list-v2 a.is-unread strong::before {
    content: "";
    display: inline-block;
    width: .45rem;
    height: .45rem;
    margin-right: .35rem;
    border-radius: 999px;
    background: var(--color-accent);
    vertical-align: middle;
}

.admin-dashboard-sync-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: .45rem;
}

.admin-dashboard-sync-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: .5rem;
    align-items: center;
    padding: .5rem 0;
    border-bottom: 1px solid var(--color-border);
    font-size: .82rem;
}

.admin-dashboard-sync-item:last-child {
    border-bottom: 0;
}

.admin-dashboard-sync-entity {
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.has-admin-panel .admin-dashboard-v2 .admin-dashboard-hero {
    margin-top: calc(-1 * var(--admin-content-padding));
    margin-left: calc(-1 * var(--admin-content-padding));
    margin-right: calc(-1 * var(--admin-content-padding));
    border-radius: 0;
    margin-bottom: 0;
}

@media (max-width: 1200px) {
    .admin-dashboard-kpis-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-dashboard-chart {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        row-gap: 1rem;
    }
}

@media (max-width: 900px) {
    .admin-dashboard-hero-inner {
        grid-template-columns: 1fr;
        align-items: stretch;
        padding: 1rem 1.1rem .85rem;
    }

    .admin-dashboard-hero-actions {
        justify-content: flex-start;
    }

    .admin-dashboard-hero-statusbar {
        padding: .6rem 1.1rem .75rem;
    }

    .admin-dashboard-v2 .admin-dashboard-grid {
        grid-template-columns: 1fr;
    }

    .admin-dashboard-recent-row {
        grid-template-columns: 1fr auto;
        grid-template-areas:
            "ref total"
            "client status"
            "time time";
    }

    .admin-dashboard-recent-ref { grid-area: ref; }
    .admin-dashboard-recent-client { grid-area: client; }
    .admin-dashboard-recent-total { grid-area: total; justify-self: end; }
    .admin-dashboard-recent-row .badge { grid-area: status; justify-self: end; }
    .admin-dashboard-recent-time { grid-area: time; justify-self: end; font-size: .75rem; }
}

@media (max-width: 640px) {
    .admin-dashboard-kpis-spotlight {
        grid-template-columns: 1fr;
    }

    .admin-dashboard-kpis-grid {
        grid-template-columns: 1fr;
    }

    .admin-dashboard-chart {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-dashboard-hero-inner {
        padding: .85rem .85rem .75rem;
    }

    .admin-dashboard-hero-intro {
        gap: .65rem;
    }

    .admin-dashboard-hero-avatar {
        width: 2.35rem;
        height: 2.35rem;
        font-size: .92rem;
    }

    .admin-dashboard-hero-actions {
        width: 100%;
    }

    .admin-dashboard-hero-actions .admin-dashboard-hero-btn {
        flex: 1 1 auto;
        min-width: calc(50% - .25rem);
    }

    .admin-dashboard-v2 .admin-health-pill-body {
        flex-wrap: wrap;
    }

    .admin-dashboard-v2 .admin-health-pill-msg {
        white-space: normal;
    }
}

/* ── Admin sidebar collapsed rail ── */
@media (min-width: 769px) {
    body.admin-sidebar-collapsed.has-admin-panel .admin-sidebar {
        flex: 0 0 var(--admin-sidebar-collapsed-width);
        width: var(--admin-sidebar-collapsed-width);
        min-width: var(--admin-sidebar-collapsed-width);
        max-width: var(--admin-sidebar-collapsed-width);
        padding: .4rem .25rem .5rem;
        align-items: center;
        overflow: hidden;
        gap: .25rem;
    }

    body.admin-sidebar-collapsed #admin-sidebar-command {
        display: none !important;
    }

    body.admin-sidebar-collapsed .admin-sidebar-top {
        display: flex !important;
        flex-direction: column;
        align-items: center;
        gap: .25rem;
        width: 100%;
        margin-bottom: .25rem;
        padding-bottom: .35rem;
        border-bottom: 1px solid rgba(255, 255, 255, .07);
    }

    body.admin-sidebar-collapsed .admin-sidebar-top-actions {
        flex-direction: column;
        align-items: center;
        width: 100%;
        gap: .25rem;
    }

    body.admin-sidebar-collapsed .admin-sidebar-top-btn {
        width: 2.15rem;
        height: 2.15rem;
        border-radius: var(--radius);
        font-size: .9rem;
    }

    body.admin-sidebar-collapsed .admin-sidebar-nav {
        flex: 1 1 auto;
        gap: 0;
        width: 100%;
        min-height: 0;
        max-height: none;
        padding: 0;
        overflow-x: hidden;
        overflow-y: auto;
        overscroll-behavior: contain;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }

    body.admin-sidebar-collapsed .admin-sidebar-nav::-webkit-scrollbar {
        width: 0;
        height: 0;
        display: none;
    }

    body.admin-sidebar-collapsed .admin-sidebar-group {
        margin-bottom: 0;
        width: 100%;
    }

    body.admin-sidebar-collapsed .admin-sidebar-group + .admin-sidebar-group {
        margin-top: .3rem;
        padding-top: .3rem;
        border-top: 1px solid rgba(255, 255, 255, .08);
    }

    body.admin-sidebar-collapsed .admin-sidebar-links {
        gap: .12rem;
        align-items: center;
        width: 100%;
    }

    body.admin-sidebar-collapsed .admin-sidebar-links > li {
        display: flex;
        justify-content: center;
        width: 100%;
        max-width: 100%;
    }

    body.admin-sidebar-collapsed .admin-sidebar-link {
        justify-content: center;
        align-items: center;
        width: 2.15rem;
        height: 2.15rem;
        min-width: 0;
        max-width: 100%;
        padding: 0;
        margin: 0 auto;
        border: none;
        border-radius: var(--radius);
        box-shadow: none !important;
        gap: 0;
        transform: none;
        overflow: hidden;
    }

    body.admin-sidebar-collapsed .admin-sidebar-link .admin-sidebar-text,
    body.admin-sidebar-collapsed .admin-sidebar-link .admin-sidebar-badge {
        display: none !important;
        width: 0;
        max-width: 0;
        overflow: hidden;
    }

    body.admin-sidebar-collapsed .admin-sidebar-link:hover {
        background: rgba(255, 255, 255, .08);
        border-color: transparent;
        transform: none;
    }

    body.admin-sidebar-collapsed .admin-sidebar-link.is-active {
        background: rgba(47, 181, 210, .12);
        border: none;
        box-shadow: none !important;
    }

    body.admin-sidebar-collapsed .admin-sidebar-link-logout.is-active {
        box-shadow: none !important;
    }

    body.admin-sidebar-collapsed .admin-sidebar-icon {
        width: 1.65rem;
        height: 1.65rem;
        margin: 0;
        flex-shrink: 0;
    }

    body.admin-sidebar-collapsed .admin-sidebar-link.is-active .admin-sidebar-icon {
        background: rgba(47, 181, 210, .22);
        box-shadow: 0 0 0 2px rgba(47, 181, 210, .4);
    }

    body.admin-sidebar-collapsed .admin-sidebar-icon.has-badge-dot::after {
        top: 0;
        right: 0;
        width: .35rem;
        height: .35rem;
        border-width: 1px;
    }

    body.admin-sidebar-collapsed .admin-sidebar-footer {
        width: 100%;
        padding-top: .35rem;
        margin-top: auto;
        border-top: 1px solid rgba(255, 255, 255, .08);
        flex-shrink: 0;
    }

    body.admin-sidebar-collapsed .admin-sidebar-user {
        justify-content: center;
        padding: .2rem 0;
        width: 100%;
    }

    body.admin-sidebar-collapsed .admin-sidebar-user .admin-sidebar-avatar {
        width: 2rem;
        height: 2rem;
        font-size: .75rem;
    }

    body.admin-sidebar-collapsed .admin-sidebar-link[data-tooltip]::after {
        display: none;
    }
}

/* ── Admin products v2 ── */
.admin-products-page {
    display: grid;
    gap: .85rem;
}

.admin-products-hero {
    display: flex;
    align-items: flex-start;
    gap: .85rem;
    padding: .95rem 1.15rem;
    border-left: 3px solid var(--color-accent);
    background: linear-gradient(135deg, rgba(47, 181, 210, .06) 0%, var(--color-surface) 100%);
}

.admin-products-hero-icon {
    flex-shrink: 0;
    width: 2.35rem;
    height: 2.35rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-lg);
    background: rgba(47, 181, 210, .14);
    color: var(--color-accent);
    font-size: 1.15rem;
    font-weight: 700;
}

.admin-products-hero-body {
    flex: 1;
    min-width: 0;
}

.admin-products-hero-title {
    margin: 0 0 .25rem;
    font-size: .88rem;
    line-height: 1.45;
    font-weight: 600;
}

.admin-products-hero-meta {
    margin: 0;
    font-size: .78rem;
}

.admin-products-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    flex-shrink: 0;
    align-items: flex-start;
}

.admin-products-kpis {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .55rem;
}

.admin-products-kpi {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    padding: .75rem .85rem;
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    box-shadow: var(--shadow);
    text-decoration: none;
    color: inherit;
    transition: transform .12s, border-color .12s, box-shadow .12s;
}

.admin-products-kpi:hover {
    transform: translateY(-2px);
    border-color: rgba(47, 181, 210, .35);
    box-shadow: var(--shadow-lg);
    text-decoration: none;
    color: inherit;
}

.admin-products-kpi.is-active {
    border-color: rgba(47, 181, 210, .45);
    background: linear-gradient(180deg, rgba(47, 181, 210, .08) 0%, var(--color-surface) 100%);
}

.admin-products-kpi--accent {
    border-top: 3px solid var(--color-accent);
}

.admin-products-kpi--warn .admin-products-kpi-value {
    color: #b45309;
}

.admin-products-kpi-value {
    font-family: var(--font-display);
    font-size: 1.35rem;
    font-weight: 800;
    line-height: 1.1;
}

.admin-products-kpi-label {
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--color-muted);
}

.admin-products-toolbar {
    padding: 0;
    overflow: hidden;
}

.admin-products-tabs {
    display: flex;
    flex-wrap: nowrap;
    gap: 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    border-bottom: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
}

.admin-products-tab {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .7rem 1rem;
    font-size: .82rem;
    font-weight: 700;
    color: var(--color-muted);
    text-decoration: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    transition: color .12s, border-color .12s, background .12s;
}

.admin-products-tab:hover {
    color: var(--color-text);
    background: rgba(47, 181, 210, .06);
    text-decoration: none;
}

.admin-products-tab.is-active {
    color: var(--color-text);
    border-bottom-color: var(--color-accent);
    background: var(--color-surface);
}

.admin-products-tab-badge {
    min-width: 1.15rem;
    height: 1.15rem;
    padding: 0 .35rem;
    border-radius: 999px;
    background: #f59e0b;
    color: #1a1a1a;
    font-size: .62rem;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.admin-products-tab-badge--danger {
    background: #ef4444;
    color: #fff;
}

.admin-products-search {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    padding: .85rem 1rem;
}

.admin-products-search-field {
    flex: 1 1 220px;
    display: flex;
    align-items: center;
    gap: .45rem;
    min-width: 0;
    padding: 0 .65rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: var(--color-bg);
}

.admin-products-search-field:focus-within {
    border-color: var(--color-accent);
    box-shadow: 0 0 0 3px var(--color-accent-ring);
}

.admin-products-search-icon {
    color: var(--color-muted);
    font-size: .95rem;
    line-height: 1;
}

.admin-products-search-field input[type="search"] {
    flex: 1;
    min-width: 0;
    border: 0;
    background: transparent;
    padding: .55rem 0;
    box-shadow: none;
}

.admin-products-search-field input[type="search"]:focus {
    outline: none;
    box-shadow: none;
}

.admin-products-search-select {
    flex: 0 1 180px;
    min-width: 140px;
}

.admin-products-search-select select {
    width: 100%;
}

.admin-products-bulk {
    position: sticky;
    top: .5rem;
    z-index: 40;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .65rem;
    padding: .65rem 1rem;
    border-radius: var(--radius-lg);
    border: 1px solid rgba(47, 181, 210, .35);
    background: rgba(47, 181, 210, .1);
    backdrop-filter: blur(8px);
    box-shadow: var(--shadow-lg);
}

.admin-products-bulk-label {
    font-size: .84rem;
    font-weight: 600;
}

.admin-products-bulk-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}

.admin-products-table-v2 {
    overflow-x: auto;
}

.admin-products-table-v2 .table {
    min-width: 880px;
}

.admin-products-table-v2 .col-thumb {
    width: 3.75rem;
    min-width: 3.75rem;
    padding-right: 0;
}

.admin-product-thumb-link {
    display: block;
    border-radius: var(--radius);
    overflow: hidden;
}

.admin-product-thumb {
    width: 52px;
    height: 52px;
    object-fit: cover;
    border-radius: var(--radius);
    border: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
}

td.admin-product-main {
    min-width: 220px;
    max-width: 420px;
}

.admin-product-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: .35rem .5rem;
    margin-bottom: .2rem;
}

.admin-product-name {
    font-weight: 700;
    color: var(--color-text);
    text-decoration: none;
    line-height: 1.35;
}

.admin-product-name:hover {
    color: var(--color-accent);
    text-decoration: none;
}

.admin-product-badges {
    display: inline-flex;
    flex-wrap: wrap;
    gap: .25rem;
}

.admin-product-badges .badge {
    font-size: .62rem;
    padding: .12rem .4rem;
}

.admin-product-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .25rem;
    font-size: .76rem;
}

.admin-product-meta-sep {
    opacity: .55;
}

.admin-product-name-es {
    margin: .2rem 0 0;
    font-size: .76rem;
    line-height: 1.35;
}

.admin-product-stock-form {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
}

.admin-product-stock-input {
    width: 4.25rem;
    text-align: center;
    font-weight: 700;
}

.admin-product-stock-input.is-oos {
    border-color: rgba(239, 68, 68, .45);
    background: rgba(239, 68, 68, .06);
    color: #b91c1c;
}

.admin-product-stock-input.is-low {
    border-color: rgba(245, 158, 11, .45);
    background: rgba(245, 158, 11, .08);
}

.admin-product-stock-save {
    min-width: 2rem;
    padding-left: .45rem;
    padding-right: .45rem;
}

.admin-product-stock-readonly {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    padding: .25rem .5rem;
    border-radius: var(--radius);
    font-weight: 700;
    background: var(--color-surface-subtle);
}

.admin-product-stock-readonly.is-oos {
    background: rgba(239, 68, 68, .12);
    color: #b91c1c;
}

.admin-product-stock-readonly.is-low {
    background: rgba(245, 158, 11, .12);
    color: #b45309;
}

.admin-product-price strong {
    font-variant-numeric: tabular-nums;
}

.admin-products-table-v2 tbody tr.row-stock-low td {
    background: rgba(245, 158, 11, .04);
}

.admin-products-table-v2 tbody tr:hover td {
    background: rgba(47, 181, 210, .05);
}

.admin-products-col-show-sm {
    display: none;
}

@media (max-width: 1100px) {
    .admin-products-kpis {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 768px) {
    .admin-products-hero {
        flex-direction: column;
    }

    .admin-products-hero-actions {
        width: 100%;
    }

    .admin-products-hero-actions .btn {
        flex: 1 1 auto;
        text-align: center;
    }

    .admin-products-kpis {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        padding-bottom: .15rem;
        scrollbar-width: thin;
    }

    .admin-products-kpi {
        flex: 0 0 min(148px, 42vw);
        min-width: 128px;
    }

    .admin-products-search {
        flex-direction: column;
        align-items: stretch;
    }

    .admin-products-search-select {
        flex: 1 1 auto;
        width: 100%;
    }

    .admin-products-search .btn {
        width: 100%;
    }

    .admin-products-col-hide-sm {
        display: none;
    }

    .admin-products-col-show-sm {
        display: inline;
    }

    .admin-products-table-v2 .admin-row-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .admin-products-table-v2 .admin-row-actions .btn {
        width: 100%;
        justify-content: center;
    }
}

@media (max-width: 640px) {
    .admin-products-kpis {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* ── Admin product detail v2 ── */
.admin-product-page {
    display: grid;
    gap: .85rem;
}

.admin-product-neighbors {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: .5rem;
    align-items: stretch;
}

.admin-product-neighbor {
    display: flex;
    align-items: center;
    gap: .55rem;
    padding: .65rem .85rem;
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    box-shadow: var(--shadow);
    text-decoration: none;
    color: inherit;
    transition: border-color .12s, transform .12s, box-shadow .12s;
}

.admin-product-neighbor:hover {
    border-color: rgba(47, 181, 210, .4);
    transform: translateY(-1px);
    box-shadow: var(--shadow-lg);
    text-decoration: none;
    color: inherit;
}

.admin-product-neighbor.is-empty {
    visibility: hidden;
    pointer-events: none;
}

.admin-product-neighbor-next {
    justify-content: flex-end;
    text-align: right;
}

.admin-product-neighbor-label {
    display: block;
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--color-muted);
}

.admin-product-neighbor-ref {
    display: block;
    font-size: .82rem;
    font-weight: 700;
}

.admin-product-neighbor-arrow {
    font-size: 1.15rem;
    color: var(--color-accent);
    line-height: 1;
}

.admin-product-neighbor-back {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .55rem .75rem;
    border-radius: var(--radius);
    border: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
    font-size: .78rem;
    font-weight: 700;
    text-decoration: none;
    color: var(--color-muted);
}

.admin-product-neighbor-back:hover {
    color: var(--color-text);
    border-color: rgba(47, 181, 210, .35);
    text-decoration: none;
}

.admin-product-hero {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 1.15rem;
    padding: 1.15rem 1.25rem;
    background: linear-gradient(135deg, rgba(47, 181, 210, .05) 0%, var(--color-surface) 55%);
}

.admin-product-hero-media {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .5rem;
}

.admin-product-hero-image {
    width: 120px;
    height: 120px;
    object-fit: cover;
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow);
}

.admin-product-gallery-compact {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    justify-content: center;
    max-width: 140px;
}

.admin-product-gallery-compact .admin-product-gallery-thumb {
    width: 44px;
    height: 44px;
    padding: 0;
    border: 2px solid transparent;
    border-radius: var(--radius);
    overflow: hidden;
    cursor: pointer;
    background: transparent;
}

.admin-product-gallery-compact .admin-product-gallery-thumb.is-active {
    border-color: var(--color-accent);
}

.admin-product-gallery-compact .admin-product-gallery-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.admin-product-hero-main {
    display: grid;
    gap: .85rem;
    min-width: 0;
}

.admin-product-hero-head {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: .65rem;
}

.admin-product-hero-name {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(1.15rem, 2vw, 1.45rem);
    line-height: 1.25;
}

.admin-product-hero-name-es {
    margin: .2rem 0 0;
    font-size: .88rem;
}

.admin-product-hero-ref {
    margin: .35rem 0 0;
    font-size: .78rem;
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    align-items: center;
}

.admin-product-hero-badges {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    align-content: flex-start;
}

.admin-product-hero-kpis {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .55rem;
}

.admin-product-hero-kpi {
    padding: .65rem .75rem;
    border-radius: var(--radius);
    border: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
}

.admin-product-hero-kpi--accent {
    border-color: rgba(47, 181, 210, .35);
    background: rgba(47, 181, 210, .06);
}

.admin-product-hero-kpi.is-danger {
    border-color: rgba(239, 68, 68, .35);
    background: rgba(239, 68, 68, .06);
}

.admin-product-hero-kpi.is-warn {
    border-color: rgba(245, 158, 11, .35);
    background: rgba(245, 158, 11, .08);
}

.admin-product-hero-kpi-label {
    display: block;
    font-size: .65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--color-muted);
    margin-bottom: .15rem;
}

.admin-product-hero-kpi-value {
    display: block;
    font-family: var(--font-display);
    font-size: 1.15rem;
    font-weight: 800;
    line-height: 1.15;
}

.admin-product-hero-kpi-value--sm {
    font-size: .88rem;
    font-weight: 700;
}

.admin-product-hero-kpi-sub {
    display: block;
    font-size: .72rem;
    margin-top: .15rem;
}

.admin-product-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
}

.admin-product-section-nav {
    display: flex;
    flex-wrap: nowrap;
    gap: 0;
    overflow-x: auto;
    padding: 0;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    position: sticky;
    top: .35rem;
    z-index: 35;
}

.admin-product-section-link {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .7rem 1rem;
    font-size: .82rem;
    font-weight: 700;
    color: var(--color-muted);
    text-decoration: none;
    border-bottom: 2px solid transparent;
    transition: color .12s, border-color .12s, background .12s;
}

.admin-product-section-link:hover {
    color: var(--color-text);
    background: rgba(47, 181, 210, .05);
    text-decoration: none;
}

.admin-product-section-link.is-active {
    color: var(--color-text);
    border-bottom-color: var(--color-accent);
}

.admin-product-section-count {
    min-width: 1.1rem;
    height: 1.1rem;
    padding: 0 .3rem;
    border-radius: 999px;
    background: rgba(47, 181, 210, .18);
    color: var(--color-accent);
    font-size: .62rem;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.admin-product-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 320px);
    gap: .85rem;
    align-items: start;
}

.admin-product-main {
    display: grid;
    gap: .85rem;
    min-width: 0;
}

.admin-product-section {
    padding: 1.15rem 1.25rem;
}

.admin-product-section h2 {
    margin: 0 0 .85rem;
    font-size: 1rem;
    font-family: var(--font-display);
}

.admin-product-section-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    margin-bottom: .85rem;
}

.admin-product-section-head h2 {
    margin: 0;
}

.admin-product-info-dl {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem 1rem;
}

.admin-product-info-dl > div {
    min-width: 0;
}

.admin-product-descriptions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--color-border);
}

.admin-product-desc-block h3 {
    margin: 0 0 .45rem;
    font-size: .82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--color-muted);
}

.admin-product-description {
    max-height: 280px;
    overflow-y: auto;
    font-size: .88rem;
    line-height: 1.5;
}

.admin-product-translation-issues {
    display: flex;
    flex-wrap: wrap;
    gap: .3rem;
}

.admin-product-translation-grid {
    display: grid;
    grid-template-columns: minmax(180px, 0.85fr) minmax(0, 1.15fr);
    gap: 1rem;
    align-items: start;
}

.admin-product-translation-source {
    padding: .85rem;
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
}

.admin-product-source-name {
    margin: .45rem 0 .65rem;
    font-size: .92rem;
}

.admin-product-source-desc {
    max-height: 220px;
    overflow-y: auto;
    font-size: .84rem;
    line-height: 1.45;
}

.admin-product-translation-target label {
    display: block;
    margin-bottom: .65rem;
}

.admin-product-field-row {
    display: flex;
    gap: .35rem;
    align-items: stretch;
}

.admin-product-field-row input {
    flex: 1;
    min-width: 0;
}

.admin-product-field-row-top {
    align-items: flex-start;
}

.admin-product-field-row-top textarea {
    flex: 1;
    min-width: 0;
}

.admin-product-translation-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-top: .85rem;
    padding-top: .85rem;
    border-top: 1px solid var(--color-border);
}

.admin-product-aside {
    display: grid;
    gap: .85rem;
    position: sticky;
    top: 3.5rem;
}

.admin-product-aside-card {
    padding: 1rem 1.1rem;
}

.admin-product-aside-card h2 {
    margin: 0 0 .65rem;
    font-size: .92rem;
    font-family: var(--font-display);
}

.admin-product-category-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: .35rem;
}

.admin-product-category-link {
    display: block;
    padding: .4rem .55rem;
    border-radius: var(--radius);
    border: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
    font-size: .82rem;
    font-weight: 600;
    text-decoration: none;
    color: var(--color-text);
}

.admin-product-category-link:hover {
    border-color: rgba(47, 181, 210, .35);
    background: rgba(47, 181, 210, .06);
    text-decoration: none;
    color: var(--color-text);
}

.admin-product-quick-links {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: .25rem;
}

.admin-product-quick-links a {
    display: block;
    padding: .4rem 0;
    font-size: .84rem;
    font-weight: 600;
    text-decoration: none;
}

.admin-product-current-price {
    margin: 0 0 .65rem;
}

.admin-product-pricing-panel {
    padding: 0;
    overflow: hidden;
}

.admin-product-pricing-tabs {
    display: flex;
    border-bottom: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
}

.admin-product-pricing-tab {
    flex: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    padding: .75rem 1rem;
    border: 0;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    background: transparent;
    font: inherit;
    font-size: .84rem;
    font-weight: 700;
    color: var(--color-muted);
    cursor: pointer;
    transition: color .12s, border-color .12s, background .12s;
}

.admin-product-pricing-tab:hover {
    color: var(--color-text);
    background: rgba(47, 181, 210, .05);
}

.admin-product-pricing-tab.is-active {
    color: var(--color-text);
    border-bottom-color: var(--color-accent);
    background: var(--color-surface);
}

.admin-product-pricing-pane {
    padding: 1.15rem 1.25rem;
}

.admin-product-pricing-pane[hidden] {
    display: none;
}

.admin-product-inline-copy {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: .5rem;
    margin-bottom: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--color-border);
}

.admin-product-combo-label {
    min-width: 140px;
}

.admin-product-combinations .admin-product-section-head {
    margin-bottom: .35rem;
}

@media (max-width: 1024px) {
    .admin-product-layout {
        grid-template-columns: 1fr;
    }

    .admin-product-aside {
        position: static;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 768px) {
    .admin-product-hero {
        grid-template-columns: 1fr;
    }

    .admin-product-hero-media {
        flex-direction: row;
        align-items: flex-start;
        justify-content: flex-start;
    }

    .admin-product-hero-kpis {
        grid-template-columns: 1fr;
    }

    .admin-product-info-dl,
    .admin-product-descriptions,
    .admin-product-translation-grid {
        grid-template-columns: 1fr;
    }

    .admin-product-aside {
        grid-template-columns: 1fr;
    }

    .admin-product-neighbors {
        grid-template-columns: 1fr;
    }

    .admin-product-neighbor.is-empty {
        display: none;
    }

    .admin-product-neighbor-back {
        order: -1;
    }

    .admin-product-hero-actions .btn {
        flex: 1 1 auto;
        text-align: center;
    }
}

/* ── Admin product detail v3 ── */
.admin-product-hero-image-btn {
    padding: 0;
    border: 0;
    background: transparent;
    cursor: zoom-in;
    border-radius: var(--radius-lg);
    line-height: 0;
}

.admin-product-hero-image-btn:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 2px;
}

.admin-product-translation-progress {
    padding: .65rem .75rem;
    border-radius: var(--radius);
    border: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
}

.admin-product-translation-progress-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .5rem;
    margin-bottom: .4rem;
}

.admin-product-translation-progress-label {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--color-muted);
}

.admin-product-translation-progress-value {
    font-size: .78rem;
    font-weight: 700;
    color: var(--color-accent);
}

.admin-product-translation-progress-track {
    height: 6px;
    border-radius: 999px;
    background: rgba(0, 0, 0, .06);
    overflow: hidden;
}

.admin-product-translation-progress-fill {
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--color-accent), #5fd4ef);
    transition: width .25s ease;
}

.admin-product-translation-progress-fill.is-complete {
    background: linear-gradient(90deg, #22c55e, #4ade80);
}

.admin-product-desc-tabs {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--color-border);
}

.admin-product-desc-tablist {
    display: flex;
    gap: .35rem;
    margin-bottom: .65rem;
}

.admin-product-desc-tab {
    padding: .4rem .75rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: var(--color-surface-subtle);
    font: inherit;
    font-size: .78rem;
    font-weight: 700;
    color: var(--color-muted);
    cursor: pointer;
    transition: color .12s, border-color .12s, background .12s;
}

.admin-product-desc-tab:hover {
    color: var(--color-text);
    border-color: rgba(47, 181, 210, .35);
}

.admin-product-desc-tab.is-active {
    color: var(--color-text);
    border-color: rgba(47, 181, 210, .45);
    background: rgba(47, 181, 210, .08);
}

.admin-product-desc-pane[hidden] {
    display: none;
}

.admin-product-source-meta {
    margin: .65rem 0 0;
    font-size: .78rem;
    line-height: 1.4;
}

.admin-field-counter {
    display: block;
    font-size: .72rem;
    margin-top: .2rem;
    text-align: right;
}

.admin-field-counter.is-warn {
    color: #d97706;
    font-weight: 700;
}

.admin-field-counter.is-over {
    color: #dc2626;
    font-weight: 700;
}

.admin-product-seo-preview {
    margin-top: .75rem;
    padding: .85rem;
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    background: #fff;
}

.admin-product-seo-preview-label {
    display: block;
    font-size: .65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--color-muted);
    margin-bottom: .45rem;
}

.admin-product-seo-preview-title {
    margin: 0;
    font-size: 1.05rem;
    line-height: 1.3;
    color: #1a0dab;
    font-weight: 400;
}

.admin-product-seo-preview-url {
    margin: .15rem 0 .35rem;
    font-size: .82rem;
    color: #006621;
    word-break: break-all;
}

.admin-product-seo-preview-desc {
    margin: 0;
    font-size: .82rem;
    line-height: 1.45;
    color: #545454;
}

.admin-seo-preview-path {
    margin-top: .45rem;
    font-size: .75rem;
}

.admin-product-combo-labels {
    display: grid;
    gap: .5rem;
}

.admin-product-combo-label-field {
    display: grid;
    gap: .2rem;
    margin: 0;
}

.admin-product-combo-label-es {
    font-size: .72rem;
    font-weight: 600;
}

.admin-product-combo-label-field input {
    width: 100%;
}

.admin-product-translation-sticky {
    position: fixed;
    left: 50%;
    bottom: 1rem;
    transform: translateX(-50%);
    z-index: 90;
    display: flex;
    align-items: center;
    gap: .65rem;
    padding: .55rem .85rem;
    border-radius: 999px;
    border: 1px solid var(--color-border);
    background: rgba(255, 255, 255, .96);
    box-shadow: var(--shadow-lg);
    backdrop-filter: blur(8px);
}

.admin-product-translation-sticky-label {
    font-size: .78rem;
    font-weight: 600;
    max-width: 140px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.admin-product-override-details {
    margin-top: 1rem;
}

.admin-product-override-details summary {
    list-style: none;
    cursor: pointer;
    display: inline-flex;
    margin-bottom: .75rem;
}

.admin-product-override-details summary::-webkit-details-marker {
    display: none;
}

.admin-product-override-details[open] summary {
    margin-bottom: .85rem;
}

.admin-product-lightbox {
    position: fixed;
    inset: 0;
    z-index: 200;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    background: rgba(15, 23, 42, .88);
}

.admin-product-lightbox[hidden] {
    display: none;
}

.admin-product-lightbox-image {
    max-width: min(92vw, 720px);
    max-height: 88vh;
    object-fit: contain;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
}

.admin-product-lightbox-close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    width: 2.5rem;
    height: 2.5rem;
    border: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, .15);
    color: #fff;
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
}

.admin-product-lightbox-close:hover {
    background: rgba(255, 255, 255, .25);
}

@media (max-width: 768px) {
    .admin-product-translation-sticky {
        left: .75rem;
        right: .75rem;
        transform: none;
        width: auto;
        justify-content: space-between;
    }

    .admin-product-translation-sticky-label {
        max-width: none;
        flex: 1;
    }
}

/* ── Admin product detail v4 ── */
.admin-product-hero-kpi-delta {
    display: inline-block;
    margin-top: .2rem;
    padding: .1rem .4rem;
    border-radius: 999px;
    font-size: .68rem;
    font-weight: 800;
}

.admin-product-hero-kpi-delta.is-down {
    background: rgba(34, 197, 94, .15);
    color: #15803d;
}

.admin-product-hero-kpi-delta.is-up {
    background: rgba(239, 68, 68, .12);
    color: #b91c1c;
}

.admin-product-section-count-warn {
    background: rgba(245, 158, 11, .22);
    color: #b45309;
}

.admin-product-issue-jump {
    cursor: pointer;
    border: 0;
    font: inherit;
    transition: transform .1s, opacity .12s;
}

.admin-product-issue-jump:hover {
    transform: translateY(-1px);
    opacity: .92;
}

.admin-product-translation-form .admin-product-issue-jump:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 2px;
}

.admin-product-field-highlight {
    animation: admin-field-highlight .9s ease;
    box-shadow: 0 0 0 3px rgba(47, 181, 210, .35);
}

@keyframes admin-field-highlight {
    0% { box-shadow: 0 0 0 4px rgba(47, 181, 210, .55); }
    100% { box-shadow: 0 0 0 0 rgba(47, 181, 210, 0); }
}

.admin-product-checklist-card {
    border-color: rgba(245, 158, 11, .35);
    background: linear-gradient(180deg, rgba(245, 158, 11, .05) 0%, var(--color-surface) 100%);
}

.admin-product-checklist-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    margin-bottom: .55rem;
}

.admin-product-checklist-head h2 {
    margin: 0;
    font-size: .92rem;
}

.admin-product-checklist-pct {
    font-family: var(--font-display);
    font-size: 1.1rem;
    font-weight: 800;
    color: var(--color-accent);
}

.admin-product-checklist-progress {
    height: 4px;
    border-radius: 999px;
    background: rgba(0, 0, 0, .06);
    overflow: hidden;
    margin-bottom: .75rem;
}

.admin-product-checklist-progress-fill {
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--color-accent), #5fd4ef);
}

.admin-product-checklist {
    list-style: none;
    margin: 0 0 .75rem;
    padding: 0;
    display: grid;
    gap: .25rem;
}

.admin-product-checklist-item {
    display: flex;
    align-items: center;
    gap: .45rem;
    width: 100%;
    padding: .45rem .55rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: var(--color-surface);
    font-size: .8rem;
    font-weight: 600;
    text-align: left;
    color: var(--color-text);
    cursor: pointer;
    transition: border-color .12s, background .12s;
}

.admin-product-checklist-item:hover {
    border-color: rgba(47, 181, 210, .4);
    background: rgba(47, 181, 210, .05);
}

.admin-product-checklist-dot {
    width: .45rem;
    height: .45rem;
    border-radius: 999px;
    background: #f59e0b;
    flex-shrink: 0;
}

.admin-product-checklist-ai {
    width: 100%;
}

.admin-seo-slug-preview {
    margin-top: .25rem;
    font-size: .75rem;
}

.admin-product-combo-summary {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    align-items: center;
}

.admin-product-combinations .admin-product-section-head {
    margin-bottom: .35rem;
}

.admin-product-combinations .admin-pricing-hint {
    margin: 0 0 .85rem;
}

/* ── Admin product detail v5 ── */
.admin-product-pricing-head {
    padding: .75rem 1.25rem 0;
}

.admin-product-pricing-summary {
    margin: 0;
    font-size: .78rem;
    font-weight: 600;
}

.admin-product-combo-display {
    font-size: .84rem;
    font-weight: 600;
}

.admin-product-combo-edit {
    margin-left: .25rem;
    padding: .15rem .4rem;
    font-size: .75rem;
    vertical-align: middle;
}

.admin-product-activity-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: .55rem;
}

.admin-product-activity-item {
    display: grid;
    gap: .1rem;
    padding: .5rem .55rem;
    border-radius: var(--radius);
    border: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
}

.admin-product-activity-action {
    font-size: .8rem;
    font-weight: 700;
}

.admin-product-activity-detail {
    font-size: .72rem;
    line-height: 1.35;
}

.admin-product-activity-time {
    font-size: .68rem;
}

.admin-product-activity-more {
    display: inline-block;
    margin-top: .55rem;
    font-size: .78rem;
    font-weight: 600;
    text-decoration: none;
}

.admin-product-unsaved-dot {
    width: .5rem;
    height: .5rem;
    border-radius: 999px;
    background: #f59e0b;
    flex-shrink: 0;
    box-shadow: 0 0 0 3px rgba(245, 158, 11, .25);
}

.admin-product-unsaved-dot[hidden] {
    display: none;
}

.admin-product-translation-sticky .admin-product-unsaved-dot:not([hidden]) {
    display: inline-block;
}

/* ── Admin product detail v6 ── */
.admin-product-keyboard-hint {
    margin: -.35rem 0 0;
    font-size: .72rem;
    text-align: center;
}

.admin-product-section,
.admin-product-pricing-panel,
.admin-product-combinations {
    scroll-margin-top: 4.5rem;
}

.admin-product-section-link-sub {
    font-size: .75rem;
    opacity: .85;
}

.admin-product-shop-preview-card {
    border-color: rgba(47, 181, 210, .25);
}

.admin-product-shop-preview-hint {
    margin: -.35rem 0 .65rem;
    font-size: .72rem;
}

.admin-product-shop-preview {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr);
    gap: .65rem;
    padding: .75rem;
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
    margin-bottom: .65rem;
}

.admin-product-shop-preview-media img,
.admin-product-shop-preview-placeholder {
    width: 64px;
    height: 64px;
    border-radius: var(--radius);
    object-fit: cover;
    border: 1px solid var(--color-border);
}

.admin-product-shop-preview-placeholder {
    background: linear-gradient(135deg, rgba(47, 181, 210, .12), rgba(47, 181, 210, .04));
}

.admin-product-shop-preview-title {
    margin: 0;
    font-size: .88rem;
    line-height: 1.3;
    font-family: var(--font-display);
}

.admin-product-shop-preview-ref {
    margin: .15rem 0;
    font-size: .72rem;
}

.admin-product-shop-preview-price {
    margin: .25rem 0;
    font-size: .92rem;
    font-weight: 800;
    font-family: var(--font-display);
}

.admin-product-shop-preview-desc {
    margin: 0;
    font-size: .75rem;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.admin-product-shop-preview-link {
    width: 100%;
    text-align: center;
}

.admin-product-related-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: .35rem;
}

.admin-product-related-link {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr) auto;
    gap: .5rem;
    align-items: center;
    padding: .45rem .5rem;
    border-radius: var(--radius);
    border: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
    text-decoration: none;
    color: inherit;
    transition: border-color .12s, background .12s;
}

.admin-product-related-link:hover {
    border-color: rgba(47, 181, 210, .35);
    background: rgba(47, 181, 210, .05);
    text-decoration: none;
    color: inherit;
}

.admin-product-related-thumb {
    width: 36px;
    height: 36px;
    border-radius: var(--radius);
    object-fit: cover;
    border: 1px solid var(--color-border);
}

.admin-product-related-thumb-empty {
    display: block;
    background: var(--color-border);
}

.admin-product-related-body {
    display: grid;
    gap: .05rem;
    min-width: 0;
}

.admin-product-related-ref {
    font-size: .78rem;
    font-weight: 700;
}

.admin-product-related-name {
    font-size: .72rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.admin-product-related-oos {
    font-size: .62rem;
    padding: .15rem .35rem;
}

.admin-product-checklist-list {
    width: 100%;
    margin-top: .35rem;
    text-align: center;
}

.admin-product-compare-delta {
    display: inline-block;
    padding: .1rem .4rem;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 800;
}

.admin-product-compare-delta.is-down {
    background: rgba(34, 197, 94, .15);
    color: #15803d;
}

.admin-product-compare-delta.is-up {
    background: rgba(239, 68, 68, .12);
    color: #b91c1c;
}

.admin-product-compare-table td strong {
    color: var(--color-text);
}

@media (max-width: 768px) {
    .admin-product-keyboard-hint {
        display: none;
    }
}

/* ── Admin product detail v7 ── */
.admin-product-more-details {
    margin-top: .85rem;
    padding-top: .85rem;
    border-top: 1px solid var(--color-border);
}

.admin-product-more-details summary {
    cursor: pointer;
    font-size: .82rem;
    font-weight: 700;
    color: var(--color-accent);
    margin-bottom: .65rem;
}

.admin-product-info-dl-extra {
    margin-top: .5rem;
}

.admin-product-live-preview {
    margin-top: .5rem;
}

.admin-product-live-preview summary {
    list-style: none;
    cursor: pointer;
    width: 100%;
    text-align: center;
    margin-bottom: 0;
}

.admin-product-live-preview summary::-webkit-details-marker {
    display: none;
}

.admin-product-live-preview-frame-wrap {
    margin-top: .65rem;
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    overflow: hidden;
    background: #fff;
}

.admin-product-live-preview-frame {
    display: block;
    width: 100%;
    height: 420px;
    border: 0;
    background: #fff;
}

.admin-product-combo-filters {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin-bottom: .75rem;
}

.admin-product-combo-filter {
    padding: .35rem .65rem;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    background: var(--color-surface-subtle);
    font: inherit;
    font-size: .75rem;
    font-weight: 700;
    color: var(--color-muted);
    cursor: pointer;
}

.admin-product-combo-filter.is-active {
    color: var(--color-text);
    border-color: rgba(47, 181, 210, .45);
    background: rgba(47, 181, 210, .08);
}

.admin-product-combo-stock-actions {
    margin-top: .75rem;
    padding-top: .75rem;
    border-top: 1px solid var(--color-border);
}

.admin-product-sticky-bar {
    position: fixed;
    top: var(--header-offset, 56px);
    left: 0;
    right: 0;
    z-index: 80;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .45rem 1rem;
    border-bottom: 1px solid var(--color-border);
    background: rgba(255, 255, 255, .96);
    backdrop-filter: blur(8px);
    box-shadow: var(--shadow);
}

.admin-product-sticky-bar[hidden] {
    display: none;
}

.admin-product-sticky-bar-main {
    display: flex;
    align-items: center;
    gap: .55rem;
    min-width: 0;
}

.admin-product-sticky-ref {
    font-size: .75rem;
    flex-shrink: 0;
}

.admin-product-sticky-title {
    font-size: .82rem;
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.admin-product-sticky-bar-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    flex-shrink: 0;
}

@media (max-width: 768px) {
    .admin-product-sticky-bar {
        flex-direction: column;
        align-items: stretch;
    }

    .admin-product-sticky-bar-actions {
        justify-content: flex-end;
    }

    .admin-product-live-preview-frame {
        height: 300px;
    }
}

@media print {
    .admin-sidebar,
    .admin-page-header,
    .admin-product-neighbors,
    .admin-product-keyboard-hint,
    .admin-product-section-nav,
    .admin-product-sticky-bar,
    .admin-product-translation-sticky,
    .admin-flash,
    .admin-product-hero-actions,
    .admin-product-live-preview,
    .admin-product-combo-filters,
    .admin-product-combo-stock-actions,
    .admin-product-combo-edit,
    .admin-copy-ref,
    #admin-product-print,
    .admin-product-issue-jump,
    .admin-product-checklist-ai,
    .admin-product-checklist-list {
        display: none !important;
    }

    .admin-product-page {
        display: block;
    }

    .admin-product-layout {
        display: block;
    }

    .admin-product-aside {
        break-before: page;
    }

    .admin-product-hero {
        break-inside: avoid;
    }

    .admin-product-pricing-pane[hidden] {
        display: none !important;
    }

    .admin-product-pricing-pane.is-active {
        display: block !important;
    }

    .admin-product-combo-stock-input {
        border: 0;
        padding: 0;
        width: auto;
    }
}

/* ── Admin product detail v8 ── */
.admin-product-sync-link {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.admin-product-hero-kpi.is-warn .admin-product-sync-link {
    color: #b45309;
}

.admin-product-draft-banner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .65rem;
    margin-bottom: .85rem;
    padding: .65rem .85rem;
    border-radius: var(--radius-lg);
    border: 1px solid rgba(245, 158, 11, .35);
    background: rgba(245, 158, 11, .08);
}

.admin-product-draft-banner[hidden] {
    display: none;
}

.admin-product-draft-banner p {
    margin: 0;
    font-size: .82rem;
    font-weight: 600;
}

.admin-product-draft-banner-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}

.admin-product-info-gallery {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--color-border);
}

.admin-product-info-gallery-title {
    margin: 0 0 .55rem;
    font-size: .82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--color-muted);
}

.admin-product-info-gallery-grid {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}

.admin-product-info-gallery-item {
    padding: 0;
    border: 2px solid transparent;
    border-radius: var(--radius);
    overflow: hidden;
    cursor: pointer;
    background: transparent;
    line-height: 0;
}

.admin-product-info-gallery-item.is-cover {
    border-color: var(--color-accent);
}

.admin-product-info-gallery-item img {
    width: 72px;
    height: 72px;
    object-fit: cover;
    display: block;
}

.admin-product-pricing-copy-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
    margin-bottom: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--color-border);
}

.admin-product-stock-tools {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem;
    margin-bottom: .75rem;
}

.admin-product-stock-tools-label {
    font-size: .75rem;
    font-weight: 700;
}

@media (max-width: 768px) {
    .admin-product-pricing-copy-row {
        grid-template-columns: 1fr;
    }
}

/* ── Admin product detail v9 ── */
.admin-product-section-head-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .4rem;
}

.admin-product-desc-compare-hint {
    margin: 0 0 .65rem;
    font-size: .78rem;
}

.admin-product-desc-compare-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
}

.admin-product-desc-compare-col {
    min-width: 0;
}

.admin-product-desc-compare-col .translation-lang-badge {
    margin-bottom: .45rem;
}

.admin-product-desc-compare-pane .admin-product-description {
    max-height: 360px;
}

.admin-product-desc-tab-compare {
    font-weight: 700;
}

.admin-product-checklist-card.is-complete {
    border-color: rgba(16, 185, 129, .35);
    background: linear-gradient(180deg, rgba(16, 185, 129, .05) 0%, var(--color-surface) 100%);
}

.admin-product-checklist-card.is-complete .admin-product-checklist-pct {
    color: #059669;
}

.admin-product-checklist-card.is-complete .admin-product-checklist-progress-fill {
    background: linear-gradient(90deg, #10b981, #34d399);
}

.admin-product-checklist-item.is-ok {
    cursor: default;
    border-color: rgba(16, 185, 129, .25);
    background: rgba(16, 185, 129, .04);
}

.admin-product-checklist-item.is-ok:hover {
    border-color: rgba(16, 185, 129, .25);
    background: rgba(16, 185, 129, .04);
}

.admin-product-checklist-item.is-pending .admin-product-checklist-dot,
.admin-product-checklist-dot.is-pending {
    background: #f59e0b;
}

.admin-product-checklist-dot.is-ok {
    background: #10b981;
}

.admin-product-checklist-ok-label {
    margin-left: auto;
    font-size: .72rem;
    font-weight: 600;
}

.admin-product-category-item {
    display: flex;
    align-items: center;
    gap: .35rem;
}

.admin-product-category-item .admin-product-category-link {
    flex: 1;
    min-width: 0;
}

.admin-product-category-products-link {
    flex-shrink: 0;
    font-size: .85rem;
    text-decoration: none;
    opacity: .65;
    transition: opacity .12s;
}

.admin-product-category-products-link:hover {
    opacity: 1;
}

.admin-product-resync-stale {
    border-color: rgba(245, 158, 11, .45);
    color: #b45309;
}

.admin-product-focus-mode .admin-product-crumb,
.admin-product-focus-mode .admin-product-toolbar,
.admin-product-focus-mode .admin-product-neighbors,
.admin-product-focus-mode .admin-product-keyboard-hint,
.admin-product-focus-mode .admin-product-hero,
.admin-product-focus-mode .admin-product-section-nav,
.admin-product-focus-mode .admin-product-aside,
.admin-product-focus-mode #product-info,
.admin-product-focus-mode #product-pricing,
.admin-product-focus-mode #product-combinations,
.admin-product-focus-mode .admin-product-sticky-bar {
    display: none !important;
}

.admin-product-focus-mode .admin-product-layout {
    display: block;
}

.admin-product-focus-mode .admin-product-main {
    max-width: none;
}

.admin-product-focus-mode .admin-product-translation-section {
    scroll-margin-top: 1rem;
}

.admin-product-focus-mode .admin-product-translation-grid {
    grid-template-columns: minmax(200px, 0.75fr) minmax(0, 1.25fr);
}

@media (max-width: 900px) {
    .admin-product-desc-compare-grid {
        grid-template-columns: 1fr;
    }

    .admin-product-focus-mode .admin-product-translation-grid {
        grid-template-columns: 1fr;
    }
}

/* ── Admin product detail v10 ── */
.admin-product-section-nav {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}

.admin-product-section-nav .admin-product-section-link {
    white-space: nowrap;
    flex-shrink: 0;
}

.admin-product-features {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--color-border);
}

.admin-product-features-title {
    margin: 0 0 .5rem;
    font-size: .82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--color-muted);
}

.admin-product-features-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}

.admin-product-features-list li {
    padding: .25rem .55rem;
    border-radius: 999px;
    border: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
    font-size: .78rem;
    font-weight: 600;
}

.admin-product-field-warning {
    margin: .35rem 0 0;
    font-size: .75rem;
    font-weight: 600;
    color: #b45309;
}

.admin-product-translation-target input.is-copy-es,
.admin-product-translation-target textarea.is-copy-es {
    border-color: rgba(245, 158, 11, .55);
    background: rgba(245, 158, 11, .04);
}

.admin-product-sticky-translation {
    flex-shrink: 0;
    font-size: .72rem;
}

.admin-product-sticky-bar-main {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem;
    min-width: 0;
}

.admin-product-sticky-title {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: min(280px, 40vw);
}

.admin-product-combo-summary {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .4rem;
}

@media (max-width: 768px) {
    .admin-product-sticky-bar {
        padding: .5rem .65rem;
    }

    .admin-product-sticky-bar-actions {
        overflow-x: auto;
        flex-wrap: nowrap;
        -webkit-overflow-scrolling: touch;
        max-width: 100%;
    }

    .admin-product-sticky-bar-actions .btn {
        flex-shrink: 0;
    }

    .admin-product-hero-actions {
        gap: .35rem;
    }

    .admin-product-section-nav {
        padding: .55rem .65rem;
    }
}

/* ── Admin product edit v11 — tabs, compact hero, actions menu ── */
.admin-product-page {
    display: grid;
    gap: .65rem;
}

.admin-product-crumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .3rem .45rem;
    margin: 0;
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.admin-product-crumb a {
    color: var(--color-muted);
    text-decoration: none;
}

.admin-product-crumb a:hover {
    color: var(--color-accent);
}

.admin-product-crumb .crumb-current {
    color: var(--color-text);
}

.admin-product-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem .65rem;
    font-size: .78rem;
}

.admin-product-toolbar-back {
    font-weight: 700;
    color: var(--color-text);
    text-decoration: none;
}

.admin-product-toolbar-back:hover {
    color: var(--color-accent);
    text-decoration: none;
}

.admin-product-toolbar-nav {
    color: var(--color-muted);
    text-decoration: none;
    font-weight: 600;
}

.admin-product-toolbar-nav:hover {
    color: var(--color-accent);
    text-decoration: none;
}

.admin-product-page .admin-product-layout {
    grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
    gap: 1rem;
}

.admin-product-page .admin-product-main {
    max-width: none;
}

.admin-product-v10 .admin-product-hero {
    padding: .65rem .85rem;
    gap: .75rem;
    align-items: center;
}

.admin-product-v10 .admin-product-hero-image {
    width: 80px;
    height: 80px;
}

.admin-product-v10 .admin-product-hero-main {
    gap: .45rem;
    flex: 1;
    min-width: 0;
}

.admin-product-hero-top {
    min-width: 0;
}

.admin-product-hero-title-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .4rem .65rem;
}

.admin-product-v10 .admin-product-hero-name {
    margin: 0;
    font-size: clamp(1rem, 1.8vw, 1.25rem);
    line-height: 1.2;
}

.admin-product-hero-badges {
    display: inline-flex;
    flex-wrap: wrap;
    gap: .25rem;
}

.admin-product-hero-ref {
    margin: .15rem 0 0;
    font-size: .72rem;
}

.admin-product-hero-bottom {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .45rem .75rem;
}

.admin-product-info-grid {
    display: grid;
    grid-template-columns: minmax(220px, 0.9fr) minmax(0, 1.1fr);
    gap: 1rem;
    align-items: start;
}

.admin-product-info-meta {
    display: grid;
    gap: .75rem;
    min-width: 0;
}

.admin-product-info-desc {
    min-width: 0;
    padding: .85rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-surface-subtle);
}

.admin-product-info-desc .admin-product-desc-tabs {
    margin: 0;
}

.admin-product-info-desc .admin-product-description {
    max-height: 360px;
}

.admin-product-page[data-active-tab="translation"] .admin-product-layout {
    grid-template-columns: minmax(0, 1fr) minmax(260px, 320px);
}

.admin-product-page .admin-product-section-nav {
    top: 0;
    z-index: 40;
    border-radius: var(--radius-lg);
    box-shadow: 0 1px 0 var(--color-border);
}

.admin-product-page .admin-product-section-link {
    padding: .55rem .85rem;
    font-size: .78rem;
}

.admin-product-hero-stats {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
}

.admin-product-hero-stat {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .25rem .4rem;
    padding: .35rem .55rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: var(--color-surface-subtle);
    font: inherit;
    color: inherit;
    cursor: default;
}

button.admin-product-hero-stat {
    cursor: pointer;
    transition: border-color .12s, background .12s;
}

button.admin-product-hero-stat:hover {
    border-color: var(--color-accent);
    background: rgba(47, 181, 210, .06);
}

.admin-product-hero-stat--accent {
    border-color: rgba(47, 181, 210, .35);
    background: rgba(47, 181, 210, .06);
}

.admin-product-hero-stat.is-danger {
    border-color: rgba(239, 68, 68, .35);
    background: rgba(239, 68, 68, .06);
}

.admin-product-hero-stat.is-warn {
    border-color: rgba(245, 158, 11, .35);
    background: rgba(245, 158, 11, .08);
}

.admin-product-hero-stat-label {
    font-size: .62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--color-muted);
}

.admin-product-hero-stat-value {
    font-family: var(--font-display);
    font-size: .92rem;
    font-weight: 800;
    line-height: 1.1;
}

.admin-product-hero-stat-value--sm {
    font-size: .78rem;
    font-weight: 700;
}

.admin-product-hero-stat-sub {
    font-size: .68rem;
    font-weight: 700;
}

.admin-product-hero-stat-sub.is-down { color: #16a34a; }
.admin-product-hero-stat-sub.is-up { color: #dc2626; }

.admin-product-more-actions {
    position: relative;
    display: inline-block;
}

.admin-product-more-actions > summary {
    list-style: none;
    cursor: pointer;
}

.admin-product-more-actions > summary::-webkit-details-marker {
    display: none;
}

.admin-product-more-actions[open] > summary {
    border-color: var(--color-accent);
    background: rgba(47, 181, 210, .08);
}

.admin-product-more-actions-menu {
    position: absolute;
    top: calc(100% + .35rem);
    right: 0;
    z-index: 50;
    min-width: 12.5rem;
    padding: .35rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-surface);
    box-shadow: var(--shadow-lg, 0 12px 28px rgba(15, 20, 25, .14));
}

.admin-product-more-action {
    display: block;
    width: 100%;
    padding: .45rem .6rem;
    border: 0;
    border-radius: var(--radius);
    background: transparent;
    color: var(--color-text);
    font: inherit;
    font-size: .82rem;
    font-weight: 600;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
}

.admin-product-more-action:hover {
    background: rgba(47, 181, 210, .08);
    color: var(--color-text);
    text-decoration: none;
}

.admin-product-section-nav [data-product-tab] {
    border: 0;
    background: transparent;
    cursor: pointer;
    font: inherit;
}

.admin-product-page[data-active-tab="pricing"] .admin-product-layout,
.admin-product-page[data-active-tab="combinations"] .admin-product-layout {
    display: block;
}

.admin-product-page[data-active-tab="pricing"] .admin-product-aside,
.admin-product-page[data-active-tab="combinations"] .admin-product-aside {
    display: none;
}

.admin-product-page[data-active-tab="pricing"] .admin-product-main,
.admin-product-page[data-active-tab="combinations"] .admin-product-main {
    max-width: none;
}

.admin-product-tab-panel[hidden] {
    display: none !important;
}

.admin-product-aside-panel[hidden] {
    display: none !important;
}

@media (max-width: 1024px) {
    .admin-product-info-grid {
        grid-template-columns: 1fr;
    }

    .admin-product-page .admin-product-layout {
        grid-template-columns: 1fr;
    }

    .admin-product-page .admin-product-aside {
        position: static;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 768px) {
    .admin-product-v10 .admin-product-hero {
        grid-template-columns: auto 1fr;
    }

    .admin-product-v10 .admin-product-hero-media {
        flex-direction: column;
    }

    .admin-product-hero-bottom {
        flex-direction: column;
        align-items: stretch;
    }

    .admin-product-hero-stats,
    .admin-product-hero-actions {
        width: 100%;
    }

    .admin-product-more-actions-menu {
        left: 0;
        right: auto;
        min-width: 11rem;
    }

    .admin-product-page .admin-product-aside {
        grid-template-columns: 1fr;
    }
}

/* ── Admin product detail v11 ── */
.admin-product-v11 {
    display: grid;
    gap: .65rem;
}

.admin-product-translation-alert {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .55rem .75rem;
    padding: .65rem .85rem;
    border: 1px solid rgba(245, 158, 11, .32);
    border-radius: var(--radius-lg);
    background: linear-gradient(180deg, rgba(245, 158, 11, .08) 0%, var(--color-surface) 100%);
    font-size: .84rem;
    font-weight: 600;
}

.admin-product-translation-alert-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.35rem;
    height: 1.35rem;
    border-radius: 999px;
    background: rgba(245, 158, 11, .18);
    color: #b45309;
    font-size: .75rem;
    font-weight: 800;
    line-height: 1;
}

.admin-product-translation-alert .btn {
    margin-left: auto;
}

.admin-product-hero-v11 {
    padding: 0;
    overflow: hidden;
    border-top: 3px solid var(--color-accent);
    box-shadow: 0 8px 24px rgba(15, 20, 25, .05);
}

.admin-product-hero-v11--inactive {
    border-top-color: #94a3b8;
}

.admin-product-hero-v11--oos {
    border-top-color: #ef4444;
}

.admin-product-hero-v11-body {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 1rem;
    padding: 1rem 1.1rem;
    background: linear-gradient(135deg, rgba(47, 181, 210, .08) 0%, rgba(255, 255, 255, .98) 58%);
}

.admin-product-hero-v11-media {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .55rem;
}

.admin-product-hero-v11-image {
    width: 128px;
    height: 128px;
    object-fit: cover;
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    box-shadow: 0 4px 16px rgba(15, 20, 25, .08);
    background: #fff;
}

.admin-product-gallery-v11 {
    max-width: 148px;
}

.admin-product-gallery-v11 .admin-product-gallery-thumb {
    width: 48px;
    height: 48px;
}

.admin-product-hero-v11-main {
    display: grid;
    gap: .75rem;
    min-width: 0;
    align-content: start;
}

.admin-product-hero-v11-badges {
    display: flex;
    flex-wrap: wrap;
    gap: .3rem;
}

.admin-product-hero-v11-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    overflow: hidden;
    background: var(--color-surface);
}

.admin-product-hero-v11-stat {
    display: grid;
    gap: .12rem;
    padding: .65rem .75rem;
    border: 0;
    border-right: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
    text-align: left;
    font: inherit;
    color: inherit;
    cursor: default;
}

.admin-product-hero-v11-stat:last-child {
    border-right: 0;
}

button.admin-product-hero-v11-stat {
    cursor: pointer;
    transition: background .12s;
}

button.admin-product-hero-v11-stat:hover {
    background: rgba(47, 181, 210, .08);
}

.admin-product-hero-v11-stat--accent {
    background: rgba(47, 181, 210, .06);
}

.admin-product-hero-v11-stat.is-danger {
    background: rgba(239, 68, 68, .06);
}

.admin-product-hero-v11-stat.is-warn {
    background: rgba(245, 158, 11, .08);
}

.admin-product-hero-v11-stat-label {
    font-size: .64rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--color-muted);
}

.admin-product-hero-v11-stat-value {
    font-family: var(--font-display);
    font-size: 1.05rem;
    font-weight: 800;
    line-height: 1.15;
    font-variant-numeric: tabular-nums;
}

.admin-product-hero-v11-stat-value--sm {
    font-size: .82rem;
    font-weight: 700;
}

.admin-product-hero-v11-stat-sub {
    font-size: .68rem;
    font-weight: 700;
}

.admin-product-hero-v11-stat-sub.is-down { color: #16a34a; }
.admin-product-hero-v11-stat-sub.is-up { color: #dc2626; }

.admin-product-hero-v11-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .4rem;
}

.admin-product-v11 .admin-product-section-nav {
    display: flex;
    flex-wrap: nowrap;
    gap: 0;
    padding: 0;
    margin: 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    border-radius: var(--radius-lg);
    transition: box-shadow .15s, border-radius .15s;
}

.admin-product-v11 .admin-product-section-nav.is-sticky {
    position: sticky;
    top: 0;
    z-index: 45;
    box-shadow: var(--shadow-lg);
    border-radius: 0 0 var(--radius-lg) var(--radius-lg);
}

.admin-product-v11 .admin-product-section-link {
    flex: 1 1 auto;
    min-width: max-content;
    padding: .62rem .9rem;
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    background: transparent;
    font-size: .82rem;
    font-weight: 600;
    color: var(--color-muted);
    transition: color .12s, border-color .12s, background .12s;
}

.admin-product-v11 .admin-product-section-link.is-active {
    color: var(--color-text);
    border-bottom-color: var(--color-accent);
    background: rgba(47, 181, 210, .06);
    font-weight: 700;
}

.admin-product-v11 .admin-product-section-count {
    margin-left: .35rem;
}

.admin-product-v11 .admin-product-layout {
    gap: .75rem;
}

.admin-product-v11 .admin-product-section {
    padding: 1rem 1.1rem;
}

.admin-product-v11 .admin-product-section-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    margin-bottom: .85rem;
    padding-bottom: .65rem;
    border-bottom: 1px solid var(--color-border);
}

.admin-product-v11 .admin-product-section-head h2 {
    margin: 0;
    font-size: .95rem;
}

.admin-product-v11 .admin-product-aside-card {
    padding: .85rem 1rem;
}

.admin-product-v11 .admin-product-aside-card h2 {
    margin: 0 0 .55rem;
    font-size: .88rem;
}

.admin-product-v11 .admin-product-shop-preview-card {
    border-left: 3px solid var(--color-accent);
}

@media (max-width: 1024px) {
    .admin-product-hero-v11-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-product-hero-v11-stat {
        border-bottom: 1px solid var(--color-border);
    }

    .admin-product-hero-v11-stat:nth-child(odd) {
        border-right: 1px solid var(--color-border);
    }

    .admin-product-hero-v11-stat:nth-child(even) {
        border-right: 0;
    }

    .admin-product-hero-v11-stat:nth-last-child(-n+2) {
        border-bottom: 0;
    }
}

@media (max-width: 768px) {
    .admin-product-hero-v11-body {
        grid-template-columns: 1fr;
    }

    .admin-product-hero-v11-media {
        flex-direction: row;
        align-items: flex-start;
        justify-content: flex-start;
    }

    .admin-product-gallery-v11 {
        flex: 1;
        max-width: none;
        justify-content: flex-start;
    }

    .admin-product-translation-alert .btn {
        width: 100%;
        margin-left: 0;
    }

    .admin-product-hero-v11-actions {
        width: 100%;
    }

    .admin-product-hero-v11-actions .btn,
    .admin-product-hero-v11-actions .inline-form {
        flex: 1 1 auto;
    }

    .admin-product-v11 .admin-product-section-link {
        flex: 0 0 auto;
    }
}

/* ── Admin product detail v12 ── */
.admin-product-v12 {
    display: grid;
    gap: .75rem;
}

.admin-product-v12-command {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
        "status actions"
        "metrics metrics";
    gap: .65rem .85rem;
    padding: .85rem 1rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, rgba(47, 181, 210, .07) 0%, var(--color-surface) 55%);
    box-shadow: 0 6px 20px rgba(15, 20, 25, .04);
}

.admin-product-v12-command-status {
    grid-area: status;
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    align-items: center;
}

.admin-product-v12-command-metrics {
    grid-area: metrics;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    overflow: hidden;
    background: var(--color-surface);
}

.admin-product-v12-command-actions {
    grid-area: actions;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: .35rem;
}

.admin-product-v12-pill {
    display: inline-flex;
    align-items: center;
    padding: .22rem .55rem;
    border-radius: 999px;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .02em;
    text-transform: uppercase;
    border: 1px solid transparent;
}

.admin-product-v12-pill--ok {
    background: rgba(22, 163, 74, .12);
    color: #15803d;
    border-color: rgba(22, 163, 74, .22);
}

.admin-product-v12-pill--off {
    background: rgba(148, 163, 184, .15);
    color: #475569;
}

.admin-product-v12-pill--danger {
    background: rgba(239, 68, 68, .1);
    color: #b91c1c;
    border-color: rgba(239, 68, 68, .22);
}

.admin-product-v12-pill--warn {
    background: rgba(245, 158, 11, .12);
    color: #b45309;
    border-color: rgba(245, 158, 11, .25);
}

.admin-product-v12-pill--accent {
    background: rgba(47, 181, 210, .12);
    color: #0d6b7d;
    border-color: rgba(47, 181, 210, .25);
}

.admin-product-v12-metric {
    display: grid;
    gap: .1rem;
    padding: .6rem .75rem;
    border: 0;
    border-right: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
    text-align: left;
    font: inherit;
    color: inherit;
    cursor: default;
}

.admin-product-v12-metric:last-child {
    border-right: 0;
}

button.admin-product-v12-metric {
    cursor: pointer;
    transition: background .12s;
}

button.admin-product-v12-metric:hover {
    background: rgba(47, 181, 210, .08);
}

.admin-product-v12-metric--accent {
    background: rgba(47, 181, 210, .06);
}

.admin-product-v12-metric.is-danger {
    background: rgba(239, 68, 68, .06);
}

.admin-product-v12-metric.is-warn {
    background: rgba(245, 158, 11, .08);
}

.admin-product-v12-metric-label {
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--color-muted);
}

.admin-product-v12-metric-value {
    font-family: var(--font-display);
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.15;
    font-variant-numeric: tabular-nums;
}

.admin-product-v12-metric-value--sm {
    font-size: .78rem;
    font-weight: 700;
}

.admin-product-v12-metric-delta {
    font-size: .68rem;
    font-weight: 700;
}

.admin-product-v12-metric-delta.is-down { color: #16a34a; }
.admin-product-v12-metric-delta.is-up { color: #dc2626; }

.admin-product-v12-workspace {
    display: grid;
    grid-template-columns: minmax(240px, 300px) minmax(0, 1fr);
    gap: .75rem;
    align-items: start;
}

.admin-product-v12-media {
    display: grid;
    gap: .65rem;
    position: sticky;
    top: .75rem;
}

.admin-product-v12-media-viewer {
    padding: .85rem;
}

.admin-product-v12-media-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    margin-bottom: .65rem;
}

.admin-product-v12-media-head h2 {
    margin: 0;
    font-size: .88rem;
}

.admin-product-v12-media-count {
    font-size: .72rem;
    font-weight: 700;
    color: var(--color-muted);
    font-variant-numeric: tabular-nums;
}

.admin-product-v12-media-stage {
    position: relative;
    margin-bottom: .65rem;
}

.admin-product-v12-media-main-btn {
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    border-radius: var(--radius-lg);
    background: #fff;
    cursor: zoom-in;
    overflow: hidden;
}

.admin-product-v12-media-main {
    display: block;
    width: 100%;
    aspect-ratio: 1;
    object-fit: contain;
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
}

.admin-product-v12-media-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 200px;
    background: var(--color-surface-subtle);
    color: var(--color-muted);
    font-size: .82rem;
    font-weight: 600;
}

.admin-product-v12-media-cover-badge {
    position: absolute;
    top: .45rem;
    left: .45rem;
    padding: .18rem .45rem;
    border-radius: 999px;
    background: rgba(15, 20, 25, .72);
    color: #fff;
    font-size: .62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
}

.admin-product-v12-media-strip-wrap {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: .35rem;
    align-items: center;
}

.admin-product-v12-media-strip {
    display: flex;
    gap: .35rem;
    overflow-x: auto;
    padding: .15rem 0;
    scrollbar-width: thin;
}

.admin-product-v12-media-thumb {
    flex: 0 0 auto;
    position: relative;
    width: 56px;
    height: 56px;
    padding: 0;
    border: 2px solid transparent;
    border-radius: var(--radius-md);
    background: #fff;
    cursor: pointer;
    overflow: hidden;
    transition: border-color .12s, box-shadow .12s;
}

.admin-product-v12-media-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.admin-product-v12-media-thumb.is-active {
    border-color: var(--color-accent);
    box-shadow: 0 0 0 2px rgba(47, 181, 210, .25);
}

.admin-product-v12-thumb-cover {
    position: absolute;
    right: 2px;
    bottom: 2px;
    font-size: .55rem;
    line-height: 1;
    color: #f59e0b;
    text-shadow: 0 0 2px #fff;
}

.admin-product-v12-media-nav {
    width: 1.65rem;
    height: 1.65rem;
    padding: 0;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-surface);
    color: var(--color-text);
    font-size: 1.1rem;
    line-height: 1;
    cursor: pointer;
}

.admin-product-v12-media-nav:hover {
    background: var(--color-surface-subtle);
}

.admin-product-v12-media-single-hint,
.admin-product-v12-media-sync-hint {
    margin: .45rem 0 0;
    font-size: .72rem;
    line-height: 1.4;
}

.admin-product-v12-shop-card {
    padding: .85rem;
}

.admin-product-v12-shop-title {
    margin: 0 0 .55rem;
    font-size: .82rem;
}

.admin-product-v12-shop-preview {
    margin-bottom: .65rem;
}

.admin-product-v12-shop-link {
    width: 100%;
    justify-content: center;
}

.admin-product-v12-main {
    display: grid;
    gap: .65rem;
    min-width: 0;
}

.admin-product-v12 .admin-product-v12-tabs {
    display: flex;
    flex-wrap: nowrap;
    gap: 0;
    padding: 0;
    margin: 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    border-radius: var(--radius-lg);
    transition: box-shadow .15s, border-radius .15s;
}

.admin-product-v12 .admin-product-v12-tabs.is-sticky {
    position: sticky;
    top: 0;
    z-index: 45;
    box-shadow: var(--shadow-lg);
    border-radius: 0 0 var(--radius-lg) var(--radius-lg);
}

.admin-product-v12 .admin-product-section-link {
    flex: 1 1 auto;
    min-width: max-content;
    padding: .62rem .9rem;
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    background: transparent;
    font-size: .82rem;
    font-weight: 600;
    color: var(--color-muted);
    transition: color .12s, border-color .12s, background .12s;
}

.admin-product-v12 .admin-product-section-link.is-active {
    color: var(--color-text);
    border-bottom-color: var(--color-accent);
    background: rgba(47, 181, 210, .06);
    font-weight: 700;
}

.admin-product-v12-panels {
    display: grid;
    gap: .65rem;
}

.admin-product-v12-info-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(220px, 280px);
    gap: .75rem;
    align-items: start;
}

.admin-product-v12-info-side {
    display: grid;
    gap: .65rem;
}

.admin-product-v12-stock-card,
.admin-product-v12-categories-card,
.admin-product-v12-features-card {
    padding: .75rem .85rem;
}

.admin-product-v12-stock-card h3,
.admin-product-v12-categories-card h3,
.admin-product-v12-features-card h3 {
    margin: 0 0 .55rem;
    font-size: .82rem;
}

.admin-product-v12-related {
    margin-top: .75rem;
}

.admin-product-v12-related-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: .45rem;
}

.admin-product-v12-activity {
    margin-top: .75rem;
    padding: .85rem 1rem;
}

.admin-product-v12-pricing {
    padding: 1rem 1.1rem;
}

.admin-product-v12-price-overview {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .55rem;
    margin-bottom: .85rem;
}

.admin-product-v12-price-card {
    display: grid;
    gap: .15rem;
    padding: .7rem .75rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-surface-subtle);
}

.admin-product-v12-price-card--accent {
    background: rgba(47, 181, 210, .07);
    border-color: rgba(47, 181, 210, .28);
}

.admin-product-v12-price-card--deal {
    background: rgba(22, 163, 74, .06);
    border-color: rgba(22, 163, 74, .22);
}

.admin-product-v12-price-card-label {
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--color-muted);
}

.admin-product-v12-price-card-value {
    font-family: var(--font-display);
    font-size: 1.05rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.admin-product-v12-price-card-hint {
    font-size: .68rem;
    line-height: 1.3;
}

.admin-product-v12-price-card-delta {
    font-size: .72rem;
    font-weight: 700;
}

.admin-product-v12-price-card-delta.is-down { color: #16a34a; }
.admin-product-v12-price-card-delta.is-up { color: #dc2626; }

.admin-product-v12-pricing-tabs {
    margin-bottom: .85rem;
}

.admin-product-v12-section-desc {
    margin: .2rem 0 0;
    font-size: .78rem;
}

.admin-product-v12-base-price {
    margin-bottom: .85rem;
    padding: .85rem 1rem;
}

.admin-product-v12-base-fields {
    display: grid;
    grid-template-columns: minmax(140px, 180px) minmax(0, 1fr) auto;
    gap: .65rem;
    align-items: end;
}

.admin-product-v12-base-field {
    display: grid;
    gap: .25rem;
}

.admin-product-v12-base-field span {
    font-size: .72rem;
    font-weight: 600;
    color: var(--color-muted);
}

.admin-product-v12-price-input {
    font-variant-numeric: tabular-nums;
    font-weight: 700;
}

.admin-product-v12-base-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem;
}

.admin-product-v12-ps-ref {
    font-size: .78rem;
}

.admin-product-v12-volume {
    margin-bottom: .65rem;
}

.admin-product-v12-tier-presets {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .55rem;
    margin-bottom: .85rem;
}

.admin-product-v12-tier-card {
    display: grid;
    gap: .45rem;
    padding: .75rem .85rem;
    border: 1px dashed var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-surface);
    transition: border-color .12s, box-shadow .12s;
}

.admin-product-v12-tier-card.is-configured {
    border-style: solid;
    border-color: rgba(47, 181, 210, .35);
    background: linear-gradient(180deg, rgba(47, 181, 210, .05) 0%, var(--color-surface) 100%);
}

.admin-product-v12-tier-card.is-empty {
    background: var(--color-surface-subtle);
}

.admin-product-v12-tier-card-head {
    display: flex;
    gap: .55rem;
    align-items: flex-start;
}

.admin-product-v12-tier-card-head h3 {
    margin: 0;
    font-size: .88rem;
}

.admin-product-v12-tier-card-head p {
    margin: .1rem 0 0;
    font-size: .72rem;
}

.admin-product-v12-tier-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: var(--radius-md);
    background: rgba(47, 181, 210, .12);
    font-size: 1rem;
    line-height: 1;
    flex-shrink: 0;
}

.admin-product-v12-tier-price {
    margin: 0;
    font-family: var(--font-display);
    font-size: 1.1rem;
    font-weight: 800;
}

.admin-product-v12-tier-savings {
    display: inline-flex;
    padding: .12rem .4rem;
    border-radius: 999px;
    background: rgba(22, 163, 74, .12);
    color: #15803d;
    font-size: .68rem;
    font-weight: 700;
}

.admin-product-v12-tier-empty {
    margin: 0;
    font-size: .78rem;
}

.admin-product-v12-tier-table-wrap {
    margin-bottom: .85rem;
}

.admin-product-v12-tier-table-title {
    margin: 0 0 .55rem;
    font-size: .85rem;
}

.admin-product-v12-tier-type {
    display: inline-flex;
    padding: .12rem .4rem;
    border-radius: var(--radius-sm);
    background: var(--color-surface-subtle);
    font-size: .72rem;
    font-weight: 600;
}

.admin-product-v12-tier-form-card {
    padding: .85rem 1rem;
}

.admin-product-v12-tier-form-title {
    margin: 0 0 .65rem;
    font-size: .88rem;
}

.admin-product-v12-tier-form-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .65rem;
    margin-bottom: .65rem;
}

.admin-product-v12-tier-form-grid label {
    display: grid;
    gap: .25rem;
}

.admin-product-v12-tier-form-grid label span {
    font-size: .72rem;
    font-weight: 600;
    color: var(--color-muted);
}

.admin-product-v12-tier-form-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .4rem;
}

.admin-product-v12-advanced {
    margin-top: .65rem;
    font-size: .82rem;
}

.admin-product-v12-advanced summary {
    cursor: pointer;
    font-weight: 600;
    color: var(--color-muted);
}

.admin-product-v12-pane-title {
    margin: 0 0 .55rem;
    font-size: .95rem;
}

.admin-product-v12-ps-table .admin-product-v12-ps-row--discount {
    background: rgba(245, 158, 11, .06);
}

/* ── Admin product pricing v13 UX ── */
.admin-product-v13-pricing {
    display: grid;
    gap: .75rem;
}

.admin-product-v13-pricing .admin-product-pricing-pane {
    padding: 0;
}

.admin-product-v13-pricing-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: .65rem .85rem;
}

.admin-product-v13-pricing-title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 800;
}

.admin-product-v13-pricing-desc {
    margin: .25rem 0 0;
    font-size: .82rem;
    line-height: 1.45;
    max-width: 42rem;
}

.admin-product-v13-pricing-quick {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
}

.admin-product-v13-price-flow {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem .65rem;
    padding: .65rem .75rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: linear-gradient(90deg, var(--color-surface-subtle) 0%, rgba(47, 181, 210, .04) 50%, rgba(22, 163, 74, .04) 100%);
}

.admin-product-v13-price-flow-step {
    display: grid;
    gap: .08rem;
    min-width: 5.5rem;
}

.admin-product-v13-price-flow-step strong {
    font-family: var(--font-display);
    font-size: .95rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.admin-product-v13-price-flow-step--accent strong {
    color: var(--color-primary-dark, #0d6b7d);
}

.admin-product-v13-price-flow-step--deal strong {
    color: #15803d;
}

.admin-product-v13-price-flow-label {
    font-size: .6rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--color-muted);
}

.admin-product-v13-price-flow-arrow {
    color: var(--color-muted);
    font-size: .9rem;
    font-weight: 700;
    opacity: .55;
}

.admin-product-v13-price-flow-delta {
    font-size: .68rem;
    font-weight: 700;
}

.admin-product-v13-price-flow-delta.is-down { color: #16a34a; }
.admin-product-v13-price-flow-delta.is-up { color: #dc2626; }

.admin-product-v13-price-kpi {
    border: 1px solid var(--color-border);
    text-align: left;
    font: inherit;
    color: inherit;
    cursor: pointer;
    transition: border-color .12s, box-shadow .12s, transform .12s;
}

.admin-product-v13-price-kpi:hover {
    border-color: rgba(47, 181, 210, .45);
    box-shadow: 0 4px 14px rgba(15, 20, 25, .06);
    transform: translateY(-1px);
}

.admin-product-v13-price-kpi:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 2px;
}

.admin-product-v13-pricing-tabs-sentinel {
    height: 1px;
    margin: 0;
}

.admin-product-v13-pricing-tabs.is-sticky {
    position: sticky;
    top: 56px;
    z-index: 42;
    box-shadow: var(--shadow-lg);
    border-radius: 0 0 var(--radius-lg) var(--radius-lg);
}

.admin-product-v13-tab-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.15rem;
    height: 1.15rem;
    margin-left: .35rem;
    padding: 0 .3rem;
    border-radius: 999px;
    background: rgba(15, 20, 25, .08);
    font-size: .62rem;
    font-weight: 800;
    line-height: 1;
}

.admin-product-v13-tab-badge--accent {
    background: rgba(47, 181, 210, .18);
    color: #0d6b7d;
}

.admin-product-v13-tab-badge--warn {
    background: rgba(245, 158, 11, .18);
    color: #b45309;
}

.admin-product-v13-tab-count {
    margin-left: .15rem;
    font-weight: 600;
    opacity: .75;
}

.admin-product-v13-pricing-hint {
    margin: -.35rem 0 0;
    font-size: .68rem;
}

.admin-product-v13-manage-nav {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin-bottom: .75rem;
    padding: .35rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-surface-subtle);
}

.admin-product-v13-manage-nav-link {
    padding: .38rem .65rem;
    border: 0;
    border-radius: var(--radius-md);
    background: transparent;
    font: inherit;
    font-size: .78rem;
    font-weight: 600;
    color: var(--color-muted);
    cursor: pointer;
    transition: background .12s, color .12s;
}

.admin-product-v13-manage-nav-link:hover {
    color: var(--color-text);
    background: rgba(47, 181, 210, .08);
}

.admin-product-v13-manage-nav-link.is-active {
    color: var(--color-text);
    background: var(--color-surface);
    box-shadow: 0 1px 4px rgba(15, 20, 25, .06);
    font-weight: 700;
}

.admin-product-v13-base-delta {
    font-size: .72rem;
    font-weight: 700;
}

.admin-product-v13-base-delta.is-down { color: #16a34a; }
.admin-product-v13-base-delta.is-up { color: #dc2626; }

.admin-product-v13-tier-preview {
    margin: 0 0 .55rem;
    font-size: .78rem;
    font-weight: 600;
    color: #15803d;
}

.admin-product-v13-tier-preview.is-capped {
    color: #b45309;
}

.admin-product-v13-tier-mode {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1rem;
    margin-bottom: .65rem;
}

.admin-product-v13-tier-mode-option {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    font-size: .82rem;
    font-weight: 600;
    cursor: pointer;
}

.admin-product-v17-packaging {
    margin-bottom: 1rem;
    padding: 1rem 1.1rem;
    border: 1px solid var(--color-border);
    background: linear-gradient(180deg, rgba(47, 181, 210, .05) 0%, var(--color-surface) 100%);
}

.admin-product-v17-packaging-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: .75rem;
    margin-bottom: 1rem;
}

.admin-product-v17-packaging-card {
    padding: .85rem .95rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-surface);
}

.admin-product-v17-packaging-card.is-configured {
    border-color: rgba(47, 181, 210, .35);
    box-shadow: 0 4px 14px rgba(15, 20, 25, .04);
}

.admin-product-v17-packaging-card-head {
    display: flex;
    align-items: center;
    gap: .45rem;
    margin-bottom: .55rem;
}

.admin-product-v17-packaging-card-head h3 {
    margin: 0;
    font-size: .92rem;
    font-weight: 700;
}

.admin-product-v17-packaging-icon {
    font-size: 1.1rem;
    line-height: 1;
}

.admin-product-v17-packaging-dl {
    margin: 0;
    display: grid;
    gap: .4rem;
}

.admin-product-v17-packaging-dl > div {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: .5rem;
}

.admin-product-v17-packaging-dl dt {
    margin: 0;
    font-size: .76rem;
    font-weight: 600;
    color: var(--color-muted);
}

.admin-product-v17-packaging-dl dd {
    margin: 0;
    font-size: .86rem;
    text-align: right;
}

.admin-product-v17-packaging-savings {
    display: inline-block;
    margin-top: .45rem;
    padding: .15rem .45rem;
    border-radius: 999px;
    background: rgba(34, 197, 94, .12);
    color: #15803d;
    font-size: .74rem;
    font-weight: 700;
}

.admin-product-v17-packaging-empty {
    margin: 0;
    font-size: .82rem;
}

.admin-product-v17-packaging-form-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: .85rem;
    margin-bottom: .65rem;
}

.admin-product-v17-packaging-fieldset {
    margin: 0;
    padding: .75rem .85rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-surface-subtle);
}

.admin-product-v17-packaging-fieldset legend {
    padding: 0 .25rem;
    font-size: .8rem;
    font-weight: 700;
}

.admin-product-v17-packaging-fieldset label {
    display: grid;
    gap: .25rem;
    margin-top: .5rem;
}

.admin-product-v17-packaging-fieldset label span {
    font-size: .72rem;
    font-weight: 600;
    color: var(--color-muted);
}

.admin-product-v17-packaging-total-preview {
    margin: .45rem 0 0;
    font-size: .78rem;
}

.admin-product-v17-packaging-hint {
    margin: 0 0 .65rem;
    font-size: .78rem;
}

.admin-product-v13-tier-ladder {
    padding: .85rem 1rem;
    margin-bottom: .85rem;
    border: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
}

.admin-product-v13-tier-ladder-title {
    margin: 0 0 .25rem;
    font-size: .9rem;
    font-weight: 700;
}

.admin-product-v13-tier-ladder-desc {
    margin: 0 0 .65rem;
    font-size: .8rem;
}

.admin-product-v13-tier-ladder-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: .65rem;
    margin-bottom: .55rem;
}

.admin-product-v13-tier-ladder-grid label {
    display: grid;
    gap: .25rem;
}

.admin-product-v13-tier-ladder-grid label span {
    font-size: .72rem;
    font-weight: 600;
    color: var(--color-muted);
}

.admin-product-v13-tier-ladder-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
}

.admin-product-v12-base-field--max-discount input {
    max-width: 8rem;
}

.admin-product-v12-field-hint {
    font-size: .72rem;
}

.admin-product-v13-max-discount-badge {
    margin: .35rem 0 0;
}

.admin-product-tier-capped-badge {
    margin-left: .25rem;
    font-size: .68rem;
}

/* ── Admin product detail v15 — UX polish ── */
.admin-product-v15-context {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .5rem .75rem;
    margin-bottom: .65rem;
    padding: .45rem .65rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-surface-subtle);
}

.admin-product-v15-back {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    font-size: .82rem;
    font-weight: 600;
    color: var(--color-text);
    text-decoration: none;
}

.admin-product-v15-back:hover {
    color: var(--color-accent);
}

.admin-product-v15-context-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .4rem;
}

.admin-product-v15-context-ref {
    font-size: .78rem;
    padding: .15rem .4rem;
    border-radius: var(--radius-sm);
    background: var(--color-surface);
}

.admin-product-v15-command {
    grid-template-areas:
        "top actions"
        "metrics metrics";
}

.admin-product-v15-command .admin-product-v12-command-status {
    grid-area: auto;
}

.admin-product-v15-command-top {
    grid-area: top;
    display: grid;
    gap: .55rem;
}

.admin-product-v15-tab-kbd {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.1rem;
    height: 1.1rem;
    margin-right: .3rem;
    border: 1px solid var(--color-border);
    border-radius: 4px;
    font-size: .62rem;
    font-weight: 700;
    color: var(--color-muted);
    background: var(--color-surface);
    vertical-align: middle;
}

.admin-product-v12 .admin-product-section-link.is-active .admin-product-v15-tab-kbd {
    border-color: rgba(47, 181, 210, .35);
    color: var(--color-accent);
}

.admin-product-v15-health {
    padding: .55rem .65rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-surface);
}

.admin-product-v15-health-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    margin-bottom: .35rem;
}

.admin-product-v15-health-label {
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--color-muted);
}

.admin-product-v15-health-score {
    font-size: .88rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.admin-product-v15-health-score--ok { color: #15803d; }
.admin-product-v15-health-score--warn { color: #b45309; }
.admin-product-v15-health-score--danger { color: #b91c1c; }

.admin-product-v15-health-track {
    height: 4px;
    border-radius: 999px;
    background: rgba(148, 163, 184, .25);
    overflow: hidden;
    margin-bottom: .45rem;
}

.admin-product-v15-health-fill {
    display: block;
    height: 100%;
    border-radius: inherit;
    transition: width .2s ease;
}

.admin-product-v15-health-fill--ok { background: #22c55e; }
.admin-product-v15-health-fill--warn { background: #f59e0b; }
.admin-product-v15-health-fill--danger { background: #ef4444; }

.admin-product-v15-health-list {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem .55rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.admin-product-v15-health-item {
    font-size: .68rem;
    font-weight: 600;
    color: var(--color-muted);
}

.admin-product-v15-health-item.is-ok { color: #15803d; }
.admin-product-v15-health-item.is-pending { color: #b45309; }

.admin-product-v15-health-fix {
    display: inline-flex;
    align-items: center;
    gap: .2rem;
    padding: 0;
    border: 0;
    background: none;
    font: inherit;
    font-size: .68rem;
    font-weight: 600;
    color: #b45309;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.admin-product-v15-health-fix:hover {
    color: var(--color-accent);
}

.admin-product-v15-health-fix-arrow {
    opacity: .7;
    font-size: .62rem;
}

.admin-product-v15-health-cta {
    margin: .35rem 0 0;
    font-size: .65rem;
}

.admin-product-v16-tier-search {
    display: block;
    margin-bottom: .55rem;
}

.admin-product-v16-tier-search input {
    width: 100%;
    max-width: 280px;
}

.admin-product-v13-tier-ladder-preview {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem .65rem;
    margin-bottom: .55rem;
    padding: .45rem .55rem;
    border-radius: var(--radius-sm);
    background: rgba(22, 163, 74, .08);
    font-size: .75rem;
    font-weight: 600;
    color: #15803d;
}

.admin-product-v16-ladder-preview-label {
    color: var(--color-muted);
    font-weight: 700;
}

.admin-product-v16-stock-tools {
    flex-wrap: wrap;
}

.admin-product-v16-stock-fill {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin-left: .25rem;
    padding-left: .5rem;
    border-left: 1px solid var(--color-border);
}

.admin-product-v16-stock-fill input {
    width: 4.5rem;
}

.admin-product-v16-highlight-pulse {
    animation: adminProductPulse 1.2s ease 2;
    outline: 2px solid var(--color-accent);
    outline-offset: 2px;
    border-radius: var(--radius-sm);
}

@keyframes adminProductPulse {
    0%, 100% { outline-color: var(--color-accent); }
    50% { outline-color: transparent; }
}

.admin-product-v16-desc-preview {
    margin-top: .35rem;
    font-size: .82rem;
}

.admin-product-v16-desc-preview summary {
    cursor: pointer;
    font-weight: 600;
    color: var(--color-muted);
}

.admin-product-v16-desc-preview-body {
    margin-top: .45rem;
    max-height: 220px;
    overflow: auto;
}

.admin-product-v15-tab-hint {
    margin: 0 0 .55rem;
    padding: .35rem .55rem;
    font-size: .78rem;
    border-left: 3px solid var(--color-accent);
    background: rgba(47, 181, 210, .06);
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}

.admin-product-v15-panels [data-product-panel].is-entering {
    animation: adminProductPanelIn .22s ease;
}

@keyframes adminProductPanelIn {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: translateY(0); }
}

.admin-product-v15-sticky {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) auto;
    align-items: center;
    gap: .5rem .65rem;
}

.admin-product-v15-sticky-tabs {
    display: flex;
    gap: .2rem;
    flex: 1 1 auto;
    min-width: 0;
    overflow-x: auto;
}

.admin-product-v15-sticky-tab {
    border: 0;
    background: transparent;
    padding: .3rem .55rem;
    border-radius: var(--radius-sm);
    font-size: .72rem;
    font-weight: 600;
    color: var(--color-muted);
    cursor: pointer;
    white-space: nowrap;
}

.admin-product-v15-sticky-tab.is-active {
    background: rgba(47, 181, 210, .14);
    color: var(--color-text);
}

.admin-product-v15-sticky-save {
    display: flex;
    align-items: center;
}

.admin-product-v15-shortcuts {
    position: fixed;
    right: 1rem;
    bottom: 1rem;
    z-index: 120;
    width: min(320px, calc(100vw - 2rem));
    padding: .75rem .85rem;
    box-shadow: var(--shadow-lg);
}

.admin-product-v15-shortcuts-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    margin-bottom: .55rem;
}

.admin-product-v15-shortcuts-head h2 {
    margin: 0;
    font-size: .88rem;
}

.admin-product-v15-shortcuts-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: .4rem;
    font-size: .78rem;
}

.admin-product-v15-shortcuts-list kbd {
    display: inline-block;
    min-width: 1.35rem;
    padding: .1rem .3rem;
    border: 1px solid var(--color-border);
    border-radius: 4px;
    background: var(--color-surface-subtle);
    font-size: .7rem;
    font-family: inherit;
    text-align: center;
}

.admin-product-v15-media-drawer {
    display: block;
}

.admin-product-v15-media-drawer-summary {
    display: none;
}

@media (max-width: 900px) {
    .admin-product-v15-media-drawer-summary {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: .5rem;
        padding: .65rem .85rem;
        border: 1px solid var(--color-border);
        border-radius: var(--radius-lg);
        background: var(--color-surface);
        font-weight: 700;
        font-size: .84rem;
        cursor: pointer;
        list-style: none;
    }

    .admin-product-v15-media-drawer-summary::-webkit-details-marker {
        display: none;
    }

    .admin-product-v15-media-drawer:not([open]) .admin-product-v15-media {
        display: none;
    }

    .admin-product-v15-media-drawer[open] .admin-product-v15-media-drawer-chevron::before {
        content: '▾';
    }

    .admin-product-v15-media-drawer:not([open]) .admin-product-v15-media-drawer-chevron::before {
        content: '▸';
    }

    .admin-product-v15-sticky-back {
        display: none;
    }

    .admin-product-v15-health-list {
        display: none;
    }
}

@media (max-width: 768px) {
    .admin-product-v15-command {
        grid-template-areas:
            "top"
            "metrics"
            "actions";
    }

    .admin-product-v15-context {
        flex-direction: column;
        align-items: stretch;
    }

    .admin-product-v15-sticky {
        grid-template-columns: 1fr;
    }

    .admin-product-v15-sticky-tabs {
        width: 100%;
    }
}

.admin-product-v13-tier-form-details > summary {
    cursor: pointer;
    font-size: .84rem;
    font-weight: 700;
    color: var(--color-text);
    margin-bottom: .55rem;
    list-style: none;
}

.admin-product-v13-tier-form-details > summary::-webkit-details-marker {
    display: none;
}

.admin-product-v13-tier-form-details > summary::before {
    content: '▸ ';
    color: var(--color-muted);
}

.admin-product-v13-tier-form-details[open] > summary::before {
    content: '▾ ';
}

.admin-product-v13-empty-tiers {
    padding: 1rem 1.1rem;
    margin-bottom: .85rem;
    text-align: center;
    border: 1px dashed var(--color-border);
    background: var(--color-surface-subtle);
}

.admin-product-v13-empty-tiers-title {
    margin: 0 0 .35rem;
    font-weight: 700;
}

.admin-product-v13-empty-tiers-desc {
    margin: 0 0 .65rem;
    font-size: .82rem;
}

.admin-product-v13-section-highlight {
    animation: adminProductSectionHighlight 2.2s ease;
}

@keyframes adminProductSectionHighlight {
    0%, 100% { box-shadow: none; }
    15%, 55% { box-shadow: 0 0 0 3px rgba(47, 181, 210, .35); }
}

.admin-product-v13-tariff-sticky {
    position: sticky;
    bottom: .75rem;
    z-index: 35;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .55rem;
    margin-top: .75rem;
    padding: .65rem .85rem;
    border: 1px solid rgba(217, 119, 6, .35);
    border-radius: var(--radius-lg);
    background: rgba(255, 251, 235, .96);
    box-shadow: var(--shadow-lg);
    backdrop-filter: blur(6px);
}

.admin-product-v13-tariff-sticky-label {
    font-size: .82rem;
    font-weight: 600;
    color: #b45309;
}

@media (max-width: 768px) {
    .admin-product-v13-price-flow {
        flex-direction: column;
        align-items: stretch;
    }

    .admin-product-v13-price-flow-arrow {
        display: none;
    }

    .admin-product-v13-pricing-head {
        flex-direction: column;
    }

    .admin-product-v13-pricing-quick {
        width: 100%;
    }

    .admin-product-v13-pricing-quick .btn {
        flex: 1 1 auto;
    }
}

@media (max-width: 1200px) {
    .admin-product-v12-workspace {
        grid-template-columns: minmax(200px, 260px) minmax(0, 1fr);
    }

    .admin-product-v12-price-overview,
    .admin-product-v12-command-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-product-v12-metric:nth-child(odd) {
        border-right: 1px solid var(--color-border);
    }

    .admin-product-v12-metric:nth-child(even) {
        border-right: 0;
    }

    .admin-product-v12-metric:nth-last-child(-n+2) {
        border-top: 1px solid var(--color-border);
    }

    .admin-product-v12-price-card:nth-child(odd) {
        border-right: 0;
    }

    .admin-product-v12-base-fields {
        grid-template-columns: 1fr 1fr;
    }

    .admin-product-v12-base-actions {
        grid-column: 1 / -1;
    }

    .admin-product-v12-tier-form-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .admin-product-v12-workspace {
        grid-template-columns: 1fr;
    }

    .admin-product-v12-media {
        position: static;
    }

    .admin-product-v12-info-grid {
        grid-template-columns: 1fr;
    }

    .admin-product-v12-tier-presets {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .admin-product-v12-command {
        grid-template-columns: 1fr;
        grid-template-areas:
            "status"
            "metrics"
            "actions";
    }

    .admin-product-v12-command-actions {
        justify-content: flex-start;
    }

    .admin-product-v12-command-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-product-v12-price-overview {
        grid-template-columns: 1fr 1fr;
    }

    .admin-product-v12-base-fields {
        grid-template-columns: 1fr;
    }

    .admin-product-v12-tier-form-grid {
        grid-template-columns: 1fr;
    }

    .admin-product-v12 .admin-product-section-link {
        flex: 0 0 auto;
    }
}

/* ── Admin product detail v14 — info, combos, media ── */
.admin-product-v14-info {
    display: grid;
    gap: .75rem;
}

.admin-product-v14-info-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: .65rem;
}

.admin-product-v14-info-title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 800;
}

.admin-product-v14-info-desc {
    margin: .25rem 0 0;
    font-size: .82rem;
    max-width: 40rem;
}

.admin-product-v14-info-head-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}

.admin-product-v14-info-nav {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    padding: .35rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-surface-subtle);
}

.admin-product-v14-info-nav-link {
    padding: .38rem .65rem;
    border: 0;
    border-radius: var(--radius-md);
    background: transparent;
    font: inherit;
    font-size: .78rem;
    font-weight: 600;
    color: var(--color-muted);
    cursor: pointer;
}

.admin-product-v14-info-nav-link.is-active,
.admin-product-v14-info-nav-link:hover {
    color: var(--color-text);
    background: var(--color-surface);
}

.admin-product-v14-info-nav-link.is-active {
    font-weight: 700;
    box-shadow: 0 1px 4px rgba(15, 20, 25, .06);
}

.admin-product-v14-field {
    display: grid;
    gap: .25rem;
    margin-bottom: 1rem;
}

.admin-product-v14-field-label {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: var(--color-muted);
}

.admin-product-v14-char-count {
    font-size: .68rem;
    text-align: right;
}

.admin-product-v14-char-count.is-warn {
    color: #b45309;
    font-weight: 700;
}

.admin-product-v14-content-sticky {
    position: sticky;
    bottom: .75rem;
    z-index: 34;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .55rem;
    margin-top: .75rem;
    padding: .65rem .85rem;
    border: 1px solid rgba(217, 119, 6, .35);
    border-radius: var(--radius-lg);
    background: rgba(255, 251, 235, .96);
    box-shadow: var(--shadow-lg);
}

.admin-product-v14-content-sticky-label {
    font-size: .82rem;
    font-weight: 600;
    color: #b45309;
}

.admin-product-v14-checklist {
    padding: .75rem .85rem;
}

.admin-product-v14-checklist-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    margin-bottom: .45rem;
}

.admin-product-v14-checklist-head h3 {
    margin: 0;
    font-size: .82rem;
}

.admin-product-v14-checklist-pct {
    font-size: .78rem;
    font-weight: 800;
    color: var(--color-accent);
}

.admin-product-v14-checklist-track {
    height: 5px;
    border-radius: 999px;
    background: rgba(0, 0, 0, .06);
    overflow: hidden;
    margin-bottom: .55rem;
}

.admin-product-v14-checklist-fill {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--color-accent), #5fd4ef);
}

.admin-product-v14-checklist-fill.is-complete {
    background: linear-gradient(90deg, #22c55e, #4ade80);
}

.admin-product-v14-checklist-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: .35rem;
}

.admin-product-v14-checklist-item {
    display: flex;
    align-items: center;
    gap: .4rem;
    font-size: .78rem;
}

.admin-product-v14-checklist-item.is-ok {
    color: #15803d;
}

.admin-product-v14-checklist-item.is-pending {
    color: var(--color-muted);
}

.admin-product-v14-checklist-icon {
    width: 1rem;
    text-align: center;
    font-weight: 800;
}

.admin-product-v14-checklist-es {
    margin: .55rem 0 0;
    font-size: .72rem;
}

.admin-product-v14-stock-meter {
    height: 6px;
    border-radius: 999px;
    background: rgba(22, 163, 74, .12);
    overflow: hidden;
    margin-bottom: .65rem;
}

.admin-product-v14-stock-meter.is-low {
    background: rgba(245, 158, 11, .15);
}

.admin-product-v14-stock-meter.is-oos {
    background: rgba(239, 68, 68, .12);
}

.admin-product-v14-stock-meter-fill {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #22c55e, #4ade80);
}

.admin-product-v14-stock-meter.is-low .admin-product-v14-stock-meter-fill {
    background: linear-gradient(90deg, #f59e0b, #fbbf24);
}

.admin-product-v14-stock-meter.is-oos .admin-product-v14-stock-meter-fill {
    background: linear-gradient(90deg, #ef4444, #f87171);
    width: 100% !important;
}

.admin-product-v14-stock-form {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem;
}

.admin-product-v14-stock-value {
    font-family: var(--font-display);
    font-size: 1.1rem;
    font-weight: 800;
}

.admin-product-v14-stock-combo-hint {
    display: block;
    font-size: .68rem;
    margin-top: .2rem;
}

.admin-product-v14-meta-badge {
    display: inline-flex;
    padding: .12rem .4rem;
    border-radius: var(--radius-sm);
    background: var(--color-surface-subtle);
    font-size: .72rem;
    font-weight: 600;
    text-transform: capitalize;
}

.admin-product-v14-count {
    font-weight: 600;
    color: var(--color-muted);
}

.admin-product-v14-related-link {
    align-items: center;
}

.admin-product-v14-related-stock {
    margin-left: auto;
    font-size: .72rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    color: #15803d;
}

.admin-product-v14-related-stock.is-oos {
    color: #dc2626;
}

.admin-product-v14-related-placeholder {
    width: 40px;
    height: 40px;
    border-radius: var(--radius-md);
    background: var(--color-surface-subtle);
    flex-shrink: 0;
}

.admin-product-v14-activity-list {
    display: grid;
    gap: .45rem;
}

.admin-product-v14-activity-item {
    display: grid;
    gap: .1rem;
    padding: .45rem 0;
    border-bottom: 1px solid var(--color-border);
}

.admin-product-v14-activity-item:last-child {
    border-bottom: 0;
}

.admin-product-v14-identity {
    padding: .75rem .85rem;
}

.admin-product-v14-identity-dl {
    display: grid;
    gap: .35rem;
    margin: 0 0 .55rem;
}

.admin-product-v14-identity-dl div {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: .5rem;
}

.admin-product-v14-identity-dl dt {
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--color-muted);
}

.admin-product-v14-identity-dl dd {
    margin: 0;
    font-size: .82rem;
}

.admin-product-v14-identity-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin-bottom: .55rem;
}

.admin-product-v14-identity-badges {
    display: flex;
    flex-wrap: wrap;
    gap: .3rem;
}

.admin-product-v14-media-ps-link {
    margin-top: .45rem;
    width: 100%;
    justify-content: center;
}

.admin-product-v14-combos {
    display: grid;
    gap: .75rem;
}

.admin-product-v14-combos-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: .65rem;
}

.admin-product-v14-combos-title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 800;
}

.admin-product-v14-combos-desc {
    margin: .25rem 0 0;
    font-size: .82rem;
}

.admin-product-v14-combos-head-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}

.admin-product-v14-combos-kpis {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}

.admin-product-v14-combo-kpi {
    display: inline-flex;
    align-items: center;
    padding: .28rem .55rem;
    border-radius: 999px;
    border: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
    font-size: .72rem;
    font-weight: 700;
}

.admin-product-v14-combo-kpi--ok {
    background: rgba(22, 163, 74, .08);
    border-color: rgba(22, 163, 74, .22);
    color: #15803d;
}

.admin-product-v14-combo-kpi--danger {
    background: rgba(239, 68, 68, .08);
    border-color: rgba(239, 68, 68, .22);
    color: #b91c1c;
}

.admin-product-v14-combo-kpi--warn {
    background: rgba(245, 158, 11, .1);
    border-color: rgba(245, 158, 11, .25);
    color: #b45309;
}

.admin-product-v14-combo-kpi--accent {
    background: rgba(47, 181, 210, .1);
    border-color: rgba(47, 181, 210, .25);
    color: #0d6b7d;
}

.admin-product-v14-combos-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .55rem;
}

.admin-product-v14-combo-search-label {
    flex: 1 1 200px;
    min-width: 0;
}

.admin-product-v14-combo-search {
    width: 100%;
    max-width: 280px;
}

.admin-product-v14-combo-filters {
    flex: 1 1 auto;
}

.admin-product-v14-stock-tools {
    margin-bottom: .55rem;
}

.admin-product-v14-combo-ref {
    font-size: .78rem;
}

.admin-product-v14-combo-label {
    font-weight: 600;
}

.admin-product-v14-combo-impact {
    font-variant-numeric: tabular-nums;
}

.admin-product-combo-stock-input.is-dirty {
    border-color: #d97706;
    background: #fffbeb;
}

.admin-product-v14-combo-sticky {
    position: sticky;
    bottom: .75rem;
    z-index: 34;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .55rem;
    padding: .65rem .85rem;
    border: 1px solid rgba(217, 119, 6, .35);
    border-radius: var(--radius-lg);
    background: rgba(255, 251, 235, .96);
    box-shadow: var(--shadow-lg);
}

.admin-product-v14-combo-sticky-label {
    font-size: .82rem;
    font-weight: 600;
    color: #b45309;
}

.admin-product-v14-combo-dirty-hint {
    margin: 0 0 .45rem;
    font-size: .78rem;
    color: #b45309;
    font-weight: 600;
}

@media (max-width: 768px) {
    .admin-product-v14-combos-toolbar {
        flex-direction: column;
        align-items: stretch;
    }

    .admin-product-v14-combo-search {
        max-width: none;
    }
}

.admin-product-content-form label {
    display: block;
    margin-bottom: 1rem;
}

.admin-product-content-form input[type="text"],
.admin-product-content-form textarea {
    width: 100%;
}

.admin-product-pricing-block {
    margin-bottom: 1.75rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--color-border);
}

.admin-product-pricing-block:last-child {
    border-bottom: 0;
    margin-bottom: 0;
    padding-bottom: 0;
}

.admin-product-form-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
}

.admin-product-tier-presets {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem .5rem;
    margin: .75rem 0 1rem;
}

.input-price-narrow {
    width: 6.5rem;
    max-width: 100%;
}

.admin-product-tariffs-table input.input-price-narrow {
    font-variant-numeric: tabular-nums;
}

/* ── Admin products v3 ── */
.admin-products-v3 {
    gap: .75rem;
}

.admin-products-keyboard-hint {
    margin: 0;
    font-size: .72rem;
    text-align: right;
}

.admin-products-hero-details {
    border-left: 3px solid var(--color-accent);
    background: linear-gradient(135deg, rgba(47, 181, 210, .06) 0%, var(--color-surface) 100%);
    padding: 0;
}

.admin-products-hero-details > summary {
    list-style: none;
    cursor: pointer;
    padding: .85rem 1rem;
}

.admin-products-hero-details > summary::-webkit-details-marker {
    display: none;
}

.admin-products-hero-summary {
    display: flex;
    align-items: center;
    gap: .75rem;
}

.admin-products-hero-summary-text {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: .15rem;
}

.admin-products-hero-expanded {
    padding: 0 1rem 1rem 3.5rem;
}

.admin-products-hero-body-text {
    margin: 0 0 .75rem;
    font-size: .84rem;
    line-height: 1.5;
    color: var(--color-muted);
}

.admin-products-translation-bar {
    padding: .65rem .85rem;
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    box-shadow: var(--shadow);
}

.admin-products-translation-bar-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .35rem;
    margin-bottom: .45rem;
}

.admin-products-translation-bar-label {
    font-size: .78rem;
    font-weight: 700;
}

.admin-products-translation-bar-link {
    font-size: .76rem;
    font-weight: 600;
}

.admin-products-translation-bar-track {
    height: 6px;
    border-radius: 999px;
    background: rgba(0, 0, 0, .06);
    overflow: hidden;
}

.admin-products-translation-bar-fill {
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--color-accent), #5fd4ef);
    transition: width .25s ease;
}

.admin-products-toolbar.is-sticky {
    position: sticky;
    top: 0;
    z-index: 45;
    box-shadow: var(--shadow-lg);
}

.admin-products-search-clear {
    flex-shrink: 0;
    width: 1.5rem;
    height: 1.5rem;
    border: 0;
    border-radius: 999px;
    background: rgba(0, 0, 0, .06);
    color: var(--color-muted);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    transition: background .12s, color .12s;
}

.admin-products-search-clear:hover {
    background: rgba(239, 68, 68, .12);
    color: #b91c1c;
}

.admin-products-active-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .4rem;
    padding: 0 1rem .85rem;
    border-top: 1px dashed var(--color-border);
    margin-top: -.15rem;
    padding-top: .65rem;
}

.admin-products-filter-chip {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .28rem .55rem;
    border-radius: 999px;
    border: 1px solid rgba(47, 181, 210, .35);
    background: rgba(47, 181, 210, .08);
    font-size: .74rem;
    font-weight: 600;
    color: var(--color-text);
    text-decoration: none;
    transition: background .12s, border-color .12s;
}

.admin-products-filter-chip:hover {
    background: rgba(47, 181, 210, .14);
    border-color: rgba(47, 181, 210, .5);
    text-decoration: none;
    color: var(--color-text);
}

.admin-products-filter-chip-x {
    font-size: .95rem;
    line-height: 1;
    opacity: .65;
}

.admin-products-filter-clear-all {
    font-size: .74rem;
    font-weight: 600;
    margin-left: .15rem;
}

.admin-products-results-bar {
    margin-top: -.25rem;
}

.admin-product-ref-copy {
    border: 0;
    background: transparent;
    padding: 0;
    cursor: pointer;
    font: inherit;
    color: inherit;
}

.admin-product-ref-copy code {
    font-size: inherit;
    transition: color .12s;
}

.admin-product-ref-copy:hover code {
    color: var(--color-accent);
}

.admin-product-sync-cell {
    white-space: nowrap;
    font-size: .76rem;
}

.admin-product-sync-time {
    display: block;
    font-variant-numeric: tabular-nums;
}

.admin-product-sync-time.is-stale {
    color: #b45309;
    font-weight: 600;
}

.admin-product-sync-stale-badge {
    display: inline-block;
    margin-top: .15rem;
    font-size: .58rem;
    padding: .08rem .3rem;
}

.admin-products-v3.has-bulk-selection .admin-products-bulk {
    position: fixed;
    left: 50%;
    transform: translateX(-50%);
    bottom: 1rem;
    top: auto;
    width: min(640px, calc(100vw - 1.5rem));
    z-index: 60;
}

.admin-products-col-hide-md {
    display: table-cell;
}

@media (max-width: 992px) {
    .admin-products-col-hide-md {
        display: none;
    }
}

@media (max-width: 768px) {
    .admin-products-keyboard-hint {
        display: none;
    }

    .admin-products-hero-expanded {
        padding-left: 1rem;
    }

    .admin-products-active-filters {
        padding-left: .85rem;
        padding-right: .85rem;
    }

    .admin-products-v3.has-bulk-selection {
        padding-bottom: 5rem;
    }
}

/* ── Admin pagination ── */
.admin-pagination {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, max-content);
    align-items: center;
    gap: .75rem 1rem;
    padding: .85rem 1rem;
    margin: 0;
}

.admin-pagination-summary,
.admin-pagination-compact-label {
    margin: 0;
    min-width: 0;
    font-size: .82rem;
    line-height: 1.4;
}

.admin-pagination-compact-label {
    font-weight: 600;
}

.admin-pagination-controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .3rem;
    flex-wrap: nowrap;
}

.admin-pagination-scroll {
    display: flex;
    align-items: center;
    gap: .25rem;
    max-width: min(100%, 26rem);
    overflow-x: auto;
    padding: .1rem .15rem;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
}

.admin-pagination-scroll::-webkit-scrollbar {
    height: 4px;
}

.admin-pagination-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.25rem;
    height: 2.25rem;
    padding: 0 .5rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: var(--color-surface);
    color: var(--color-text);
    font-size: .82rem;
    font-weight: 700;
    text-decoration: none;
    flex-shrink: 0;
    transition: background .12s, border-color .12s, color .12s;
}

.admin-pagination-btn:hover {
    border-color: rgba(47, 181, 210, .45);
    background: rgba(47, 181, 210, .06);
    text-decoration: none;
    color: var(--color-text);
}

.admin-pagination-btn.is-active {
    background: var(--color-ink);
    border-color: var(--color-ink);
    color: #fff;
    box-shadow: inset 0 -2px 0 var(--color-accent);
}

.admin-pagination-btn-nav {
    font-size: 1rem;
    line-height: 1;
}

.admin-pagination-btn.is-disabled {
    opacity: .35;
    pointer-events: none;
}

.admin-pagination-ellipsis {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.35rem;
    height: 2.25rem;
    color: var(--color-muted);
    font-weight: 700;
    flex-shrink: 0;
}

.admin-pagination-jump {
    display: flex;
    align-items: center;
    gap: .4rem;
    justify-self: end;
    margin: 0;
    flex-wrap: nowrap;
}

.admin-pagination-jump label {
    margin: 0;
    font-size: .78rem;
    font-weight: 600;
    color: var(--color-muted);
    white-space: nowrap;
}

.admin-pagination-jump-input {
    width: 4rem;
    margin: 0;
    padding: .4rem .45rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    font: inherit;
    font-size: .82rem;
    text-align: center;
}

.admin-pagination-jump-input:focus {
    outline: none;
    border-color: var(--color-accent);
    box-shadow: 0 0 0 3px var(--color-accent-ring);
}

.admin-pagination-jump-btn {
    flex-shrink: 0;
}

.admin-pagination--compact {
    grid-template-columns: auto 1fr;
    padding: .65rem .85rem;
}

.admin-pagination--compact .admin-pagination-compact-label {
    grid-column: 1;
}

.admin-pagination--compact .admin-pagination-controls {
    grid-column: 1 / -1;
    justify-content: center;
}

.admin-products-page .admin-pagination--compact {
    margin-bottom: -.15rem;
}

.admin-products-page .admin-pagination--full {
    margin-top: .25rem;
}

@media (max-width: 900px) {
    .admin-pagination {
        grid-template-columns: 1fr;
        gap: .65rem;
    }

    .admin-pagination-summary {
        text-align: center;
    }

    .admin-pagination-jump {
        justify-self: center;
        justify-content: center;
        flex-wrap: wrap;
    }

    .admin-pagination--compact {
        grid-template-columns: 1fr;
    }

    .admin-pagination--compact .admin-pagination-compact-label {
        text-align: center;
    }
}

@media (max-width: 640px) {
    .admin-pagination-scroll {
        max-width: 100%;
    }

    .admin-pagination-btn {
        min-width: 2rem;
        height: 2rem;
        font-size: .78rem;
    }

    .admin-pagination-jump label {
        width: 100%;
        text-align: center;
    }
}

/* ── Admin products v4 — compact layout ── */
.admin-products-v4 {
    gap: .55rem;
}

.admin-products-v4 .admin-products-hero-details > summary {
    padding: .55rem .85rem;
}

.admin-products-v4 .admin-products-hero-icon {
    width: 1.85rem;
    height: 1.85rem;
    font-size: .95rem;
}

.admin-products-v4 .admin-products-hero-title {
    font-size: .8rem;
}

.admin-products-v4 .admin-products-hero-meta {
    font-size: .72rem;
}

.admin-products-v4 .admin-products-toolbar {
    padding: 0;
}

.admin-products-toolbar-top {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    gap: .5rem;
    border-bottom: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
}

.admin-products-v4 .admin-products-tabs {
    flex: 1;
    min-width: 0;
    border-bottom: 0;
    background: transparent;
}

.admin-products-v4 .admin-products-tab {
    padding: .55rem .75rem;
    font-size: .78rem;
}

.admin-products-toolbar-stats {
    display: flex;
    align-items: center;
    gap: .55rem;
    flex-shrink: 0;
    padding: 0 .75rem;
    font-size: .72rem;
    font-weight: 600;
    white-space: nowrap;
    border-left: 1px solid var(--color-border);
}

.admin-products-toolbar-stats a {
    text-decoration: none;
    font-weight: 700;
}

.admin-products-toolbar-stat-warn {
    color: #b45309;
}

.admin-products-toolbar-stat-danger {
    color: #b91c1c;
}

.admin-products-v4 .admin-products-search {
    padding: .55rem .75rem;
    gap: .4rem;
}

.admin-products-v4 .admin-products-search-field input[type="search"] {
    padding: .42rem 0;
}

.admin-products-v4 .admin-products-active-filters {
    padding: .45rem .75rem .6rem;
    margin-top: 0;
}

.admin-products-bulk[hidden] {
    display: none !important;
}

.admin-products-v4 .admin-products-bulk {
    position: static;
    margin: 0;
    padding: .45rem .75rem;
    border-radius: 0;
    border: 0;
    border-bottom: 1px solid rgba(47, 181, 210, .25);
    box-shadow: none;
    backdrop-filter: none;
}

.admin-products-table-footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .5rem .75rem;
    padding: .55rem .75rem;
    border-top: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
}

.admin-products-table-footer-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem .65rem;
    font-size: .78rem;
    font-weight: 600;
    color: var(--color-muted);
}

.admin-products-table-footer-reset {
    font-size: .74rem;
    font-weight: 600;
}

.admin-pagination--inline {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: .35rem .5rem;
    padding: 0;
    margin: 0;
    flex: 1 1 auto;
    min-width: 0;
}

.admin-pagination--inline .admin-pagination-controls {
    justify-content: flex-end;
}

.admin-pagination--inline .admin-pagination-scroll {
    max-width: min(100%, 18rem);
}

.admin-pagination--inline .admin-pagination-btn {
    min-width: 1.85rem;
    height: 1.85rem;
    font-size: .76rem;
}

.admin-pagination--inline .admin-pagination-jump {
    justify-self: auto;
}

.admin-pagination--inline .admin-pagination-jump-input {
    width: 3.25rem;
    padding: .3rem .35rem;
    font-size: .76rem;
}

.admin-pagination--inline .admin-pagination-jump label {
    font-size: .72rem;
}

.admin-products-v4 .admin-products-table-v2 .table {
    min-width: 760px;
}

@media (max-width: 900px) {
    .admin-products-toolbar-top {
        flex-direction: column;
    }

    .admin-products-toolbar-stats {
        border-left: 0;
        border-top: 1px solid var(--color-border);
        padding: .4rem .75rem .55rem;
        justify-content: flex-start;
    }

    .admin-products-table-footer {
        flex-direction: column;
        align-items: stretch;
    }

    .admin-pagination--inline {
        justify-content: center;
    }

    .admin-pagination--inline .admin-pagination-controls {
        justify-content: center;
    }

    .admin-pagination--inline .admin-pagination-jump {
        justify-content: center;
        width: 100%;
    }
}

/* ── Admin products v5 — unified hero + sticky filters ── */
.admin-products-v5 {
    gap: .65rem;
}

.admin-products-hero-v5 {
    padding: 0;
    overflow: hidden;
    border-top: 3px solid var(--color-accent);
    box-shadow: 0 8px 24px rgba(15, 20, 25, .05);
}

.admin-products-hero-v5-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.1rem .85rem;
    background: linear-gradient(135deg, rgba(47, 181, 210, .1) 0%, rgba(255, 255, 255, .98) 55%);
}

.admin-products-hero-v5-lead {
    display: flex;
    align-items: flex-start;
    gap: .85rem;
    min-width: 0;
}

.admin-products-hero-v5-icon-wrap {
    flex-shrink: 0;
}

.admin-products-hero-v5-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.6rem;
    height: 2.6rem;
    border-radius: var(--radius-lg);
    background: rgba(47, 181, 210, .16);
    color: #0e7490;
    font-family: var(--font-display);
    font-size: 1.1rem;
    font-weight: 800;
    line-height: 1;
}

.admin-products-hero-v5-eyebrow {
    margin: 0 0 .2rem;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--color-muted);
}

.admin-products-hero-v5-title {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(1.05rem, 2vw, 1.28rem);
    font-weight: 700;
    line-height: 1.25;
}

.admin-products-hero-v5-sync {
    margin: .35rem 0 0;
    font-size: .78rem;
    line-height: 1.45;
}

.admin-products-hero-v5-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .4rem;
    flex-shrink: 0;
}

.admin-products-hero-v5-stats {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 0;
    border-top: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
}

.admin-products-hero-stat {
    display: grid;
    gap: .15rem;
    padding: .7rem .75rem;
    border-right: 1px solid var(--color-border);
    text-decoration: none;
    color: inherit;
    transition: background .12s;
}

.admin-products-hero-stat:last-child {
    border-right: 0;
}

.admin-products-hero-stat:hover {
    background: rgba(47, 181, 210, .06);
    text-decoration: none;
    color: inherit;
}

.admin-products-hero-stat.is-active {
    background: rgba(47, 181, 210, .1);
    box-shadow: inset 0 -2px 0 var(--color-accent);
}

.admin-products-hero-stat-value {
    font-family: var(--font-display);
    font-size: 1.15rem;
    font-weight: 800;
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
}

.admin-products-hero-stat-label {
    font-size: .66rem;
    font-weight: 700;
    letter-spacing: .03em;
    text-transform: uppercase;
    color: var(--color-muted);
    line-height: 1.3;
}

.admin-products-hero-stat--warn .admin-products-hero-stat-value {
    color: #b45309;
}

.admin-products-hero-stat--danger .admin-products-hero-stat-value {
    color: #b91c1c;
}

.admin-products-hero-stat--translation {
    cursor: default;
}

.admin-products-hero-stat-translation-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: .35rem;
}

.admin-products-hero-stat-link {
    font-size: .68rem;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}

.admin-products-hero-progress {
    margin-top: .15rem;
    height: 4px;
}

.admin-products-hero-v5-hint {
    margin: 0;
    padding: .55rem 1.1rem .7rem;
    font-size: .76rem;
    line-height: 1.45;
    border-top: 1px dashed var(--color-border);
    background: var(--color-surface);
}

.admin-products-v5 .admin-products-toolbar {
    padding: 0;
    overflow: hidden;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
}

.admin-products-v5 .admin-products-toolbar.is-sticky {
    border-radius: 0 0 var(--radius-lg) var(--radius-lg);
}

.admin-products-v5 .admin-products-toolbar-top {
    background: var(--color-surface);
}

.admin-products-v5 .admin-products-tabs {
    border-bottom: 0;
    padding: 0 .35rem;
    background: transparent;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}

.admin-products-v5 .admin-products-tab {
    padding: .62rem .8rem;
    font-size: .8rem;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    margin-bottom: 0;
}

.admin-products-v5 .admin-products-tab.is-active {
    border-bottom-color: var(--color-accent);
    background: transparent;
    color: var(--color-text);
    font-weight: 700;
}

.admin-products-v5 .admin-products-search {
    padding: .65rem .85rem;
    background: var(--color-surface-subtle);
    border-top: 1px solid var(--color-border);
}

.admin-products-v5 .admin-products-search-field {
    flex: 1 1 16rem;
    min-width: 0;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding-right: .35rem;
}

.admin-products-v5 .admin-products-search-field:focus-within {
    border-color: rgba(47, 181, 210, .55);
    box-shadow: 0 0 0 3px rgba(47, 181, 210, .12);
}

.admin-products-search-kbd {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.35rem;
    height: 1.35rem;
    padding: 0 .35rem;
    border-radius: .35rem;
    border: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
    font-family: inherit;
    font-size: .68rem;
    font-weight: 700;
    color: var(--color-muted);
    line-height: 1;
}

.admin-products-search-field:has(.admin-products-search-clear) .admin-products-search-kbd {
    display: none;
}

.admin-products-v5 .admin-products-search-clear {
    margin-right: .15rem;
}

.admin-products-v5 .admin-products-active-filters {
    padding: .5rem .85rem .65rem;
    margin-top: 0;
    background: var(--color-surface);
}

.admin-products-v5 .admin-results-bar {
    margin: 0;
}

.admin-products-v5 .admin-products-table-v2 {
    overflow: hidden;
}

.admin-products-v5 .admin-products-table-v2 .table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--color-surface-subtle);
    box-shadow: 0 1px 0 var(--color-border);
}

.admin-products-v5 .admin-product-row {
    transition: background .1s;
}

.admin-products-v5 .admin-product-row.row-stock-critical {
    box-shadow: inset 3px 0 0 rgba(239, 68, 68, .75);
}

.admin-products-v5 .admin-product-row.row-untranslated {
    box-shadow: inset 3px 0 0 rgba(245, 158, 11, .65);
}

.admin-products-v5 .admin-product-row.row-stock-low {
    box-shadow: inset 3px 0 0 rgba(245, 158, 11, .4);
}

.admin-products-v5 .admin-product-thumb {
    border-radius: var(--radius-md);
    object-fit: cover;
    border: 1px solid var(--color-border);
    background: #fff;
}

.admin-products-v5 .row-thumb-empty.admin-product-thumb {
    background: var(--color-surface-subtle);
}

.admin-products-v5 .admin-product-name {
    font-weight: 700;
    font-size: .9rem;
    line-height: 1.35;
}

.admin-products-v5 .admin-products-bulk {
    position: static;
    margin: 0;
    padding: .55rem .85rem;
    border-radius: 0;
    border: 0;
    border-bottom: 1px solid rgba(47, 181, 210, .28);
    background: linear-gradient(180deg, rgba(47, 181, 210, .1) 0%, rgba(47, 181, 210, .04) 100%);
}

.admin-products-v5.has-bulk-selection .admin-products-bulk {
    position: fixed;
    left: 50%;
    transform: translateX(-50%);
    bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
    top: auto;
    width: min(680px, calc(100vw - 1.5rem));
    z-index: 60;
    margin: 0;
    padding: .65rem .85rem;
    border-radius: var(--radius-lg);
    border: 1px solid rgba(47, 181, 210, .35);
    box-shadow: 0 12px 40px rgba(15, 20, 25, .18);
    backdrop-filter: blur(8px);
}

.admin-products-v5.has-bulk-selection {
    padding-bottom: 5rem;
}

@media (max-width: 1100px) {
    .admin-products-hero-v5-stats {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .admin-products-hero-stat:nth-child(3n) {
        border-right: 0;
    }

    .admin-products-hero-stat:nth-child(n+4) {
        border-top: 1px solid var(--color-border);
    }

    .admin-products-hero-v5-top {
        flex-direction: column;
    }

    .admin-products-hero-v5-actions {
        width: 100%;
        justify-content: flex-start;
    }
}

@media (max-width: 640px) {
    .admin-products-hero-v5-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-products-hero-stat {
        border-right: 0;
        border-bottom: 1px solid var(--color-border);
    }

    .admin-products-hero-stat:nth-child(odd) {
        border-right: 1px solid var(--color-border);
    }

    .admin-products-hero-stat:nth-child(n+4) {
        border-top: 0;
    }

    .admin-products-hero-stat:last-child,
    .admin-products-hero-stat:nth-last-child(2):nth-child(odd) {
        border-bottom: 0;
    }

    .admin-products-search-kbd {
        display: none;
    }

    .admin-products-v5 .admin-products-search {
        flex-direction: column;
        align-items: stretch;
    }

    .admin-products-v5 .admin-products-search-select {
        width: 100%;
    }
}

/* ── Admin products v6 — sort, health, compact, export ── */
.admin-products-v6 .admin-product-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem .5rem;
}

.admin-products-v6 .admin-products-row-health {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    flex-shrink: 0;
}

.admin-products-v6 .admin-products-row-health-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--color-border);
    box-shadow: inset 0 0 0 1px rgba(15, 20, 25, .08);
}

.admin-products-v6 .admin-products-row-health-dot.is-ok {
    background: #22c55e;
}

.admin-products-v6 .admin-products-row-health-dot.is-pending {
    background: #f59e0b;
}

.admin-products-v6 a.admin-products-row-health-link {
    text-decoration: none;
    transition: transform .12s, box-shadow .12s;
}

.admin-products-v6 a.admin-products-row-health-link:hover {
    transform: scale(1.25);
    box-shadow: 0 0 0 2px rgba(245, 158, 11, .35);
}

.admin-products-v6 .admin-products-sort-link {
    display: inline-flex;
    align-items: center;
    gap: .2rem;
    color: inherit;
    font-weight: 700;
    text-decoration: none;
}

.admin-products-v6 .admin-products-sort-link:hover,
.admin-products-v6 .admin-products-sort-link.is-active {
    color: var(--color-accent);
}

.admin-products-v6 .admin-products-sort-dir {
    font-size: .72rem;
    opacity: .85;
}

.admin-products-v6 .admin-products-price-ps {
    display: block;
    font-size: .78rem;
    text-decoration: line-through;
}

.admin-products-v6 .admin-product-sync-time.is-stale {
    color: #b45309;
}

.admin-products-v6 .admin-product-sync-stale-badge {
    display: block;
    margin-top: .15rem;
    font-size: .68rem;
}

.admin-products-v6.is-compact .admin-product-thumb,
.admin-products-v6.is-compact .row-thumb.admin-product-thumb {
    width: 40px;
    height: 40px;
}

.admin-products-v6.is-compact .admin-product-name {
    font-size: .84rem;
}

.admin-products-v6.is-compact .admin-product-meta,
.admin-products-v6.is-compact .admin-product-name-es {
    font-size: .76rem;
}

.admin-products-v6.is-compact .admin-product-badges .badge {
    font-size: .65rem;
    padding: .1rem .35rem;
}

.admin-products-v6.is-compact .table.compact td,
.admin-products-v6.is-compact .table.compact th {
    padding-top: .4rem;
    padding-bottom: .4rem;
}

.admin-products-v6.is-compact .admin-product-stock-input {
    width: 3.5rem;
    font-size: .82rem;
}

.admin-products-v6 .admin-products-density-btn {
    white-space: nowrap;
}

.admin-products-v6 .admin-products-col-hide-sm {
    display: none;
}

.admin-products-v6 .admin-products-col-hide-md {
    display: none;
}

@media (min-width: 900px) {
    .admin-products-v6 .admin-products-col-hide-md {
        display: table-cell;
    }
}

@media (min-width: 1100px) {
    .admin-products-v6 .admin-products-col-hide-sm {
        display: table-cell;
    }

    .admin-products-v6 .admin-products-col-show-sm {
        display: none;
    }
}

/* ── Admin categories v5 ── */
.admin-categories-v5 {
    display: grid;
    gap: .65rem;
}

.admin-categories-hero-v5 {
    padding: 0;
    overflow: hidden;
    border-top: 3px solid #8b5cf6;
    box-shadow: 0 8px 24px rgba(15, 20, 25, .05);
}

.admin-categories-hero-v5-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.1rem .85rem;
    background: linear-gradient(135deg, rgba(139, 92, 246, .09) 0%, rgba(255, 255, 255, .98) 55%);
}

.admin-categories-hero-v5-lead {
    display: flex;
    align-items: flex-start;
    gap: .85rem;
    min-width: 0;
}

.admin-categories-hero-v5-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.6rem;
    height: 2.6rem;
    border-radius: var(--radius-lg);
    background: rgba(139, 92, 246, .16);
    color: #6d28d9;
    font-family: var(--font-display);
    font-size: 1.1rem;
    font-weight: 800;
}

.admin-categories-hero-v5-eyebrow {
    margin: 0 0 .2rem;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--color-muted);
}

.admin-categories-hero-v5-title {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(1.05rem, 2vw, 1.28rem);
    font-weight: 700;
}

.admin-categories-hero-v5-meta {
    margin: .35rem 0 0;
    font-size: .78rem;
}

.admin-categories-hero-v5-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .4rem;
}

.admin-categories-hero-v5-stats {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    border-top: 1px solid var(--color-border);
}

.admin-categories-hero-stat {
    display: grid;
    gap: .12rem;
    padding: .7rem .85rem;
    border: 0;
    border-right: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
    text-decoration: none;
    color: inherit;
    transition: background .12s;
}

.admin-categories-hero-stat:last-child {
    border-right: 0;
}

.admin-categories-hero-stat:hover {
    background: rgba(139, 92, 246, .06);
}

.admin-categories-hero-stat.is-active {
    background: rgba(139, 92, 246, .1);
    box-shadow: inset 0 -2px 0 #8b5cf6;
}

.admin-categories-hero-stat-value {
    font-family: var(--font-display);
    font-size: 1.05rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.admin-categories-hero-stat-label {
    font-size: .64rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--color-muted);
}

.admin-categories-hero-stat--warn .admin-categories-hero-stat-value {
    color: #b45309;
}

.admin-categories-hero-stat--translation {
    background: var(--color-surface);
}

.admin-categories-hero-stat-translation-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: .35rem;
}

.admin-categories-hero-stat-link {
    font-size: .68rem;
    font-weight: 700;
}

.admin-categories-hero-progress {
    margin-top: .25rem;
}

.admin-categories-hero-v5-hint {
    margin: 0;
    padding: .55rem 1.1rem .75rem;
    font-size: .72rem;
    line-height: 1.45;
    border-top: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
}

.admin-categories-toolbar {
    padding: .75rem .85rem;
    display: grid;
    gap: .65rem;
}

.admin-categories-toolbar.is-sticky {
    position: sticky;
    top: 56px;
    z-index: 42;
    box-shadow: var(--shadow-lg);
}

.admin-categories-toolbar-top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .55rem;
}

.admin-categories-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}

.admin-categories-tab {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    padding: .38rem .65rem;
    border-radius: 999px;
    border: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
    font-size: .78rem;
    font-weight: 600;
    color: var(--color-muted);
    text-decoration: none;
}

.admin-categories-tab.is-active {
    color: var(--color-text);
    border-color: rgba(139, 92, 246, .35);
    background: rgba(139, 92, 246, .08);
    font-weight: 700;
}

.admin-categories-tab-badge {
    display: inline-flex;
    min-width: 1.1rem;
    justify-content: center;
    padding: 0 .3rem;
    border-radius: 999px;
    background: rgba(245, 158, 11, .18);
    color: #b45309;
    font-size: .62rem;
    font-weight: 800;
}

.admin-categories-toolbar-tools {
    display: flex;
    gap: .35rem;
}

.admin-categories-search {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .55rem;
}

.admin-categories-search-field {
    flex: 1 1 220px;
    display: flex;
    align-items: center;
    gap: .35rem;
    padding: 0 .55rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-surface);
}

.admin-categories-search-field:focus-within {
    border-color: rgba(139, 92, 246, .45);
    box-shadow: 0 0 0 2px rgba(139, 92, 246, .12);
}

.admin-categories-search-icon {
    color: var(--color-muted);
    font-size: .9rem;
}

.admin-categories-search-field input {
    flex: 1;
    border: 0;
    background: transparent;
    min-width: 0;
    padding: .45rem 0;
}

.admin-categories-search-kbd {
    font-size: .62rem;
    padding: .1rem .35rem;
    border-radius: var(--radius-sm);
    border: 1px solid var(--color-border);
    color: var(--color-muted);
}

.admin-categories-search-clear {
    border: 0;
    background: transparent;
    color: var(--color-muted);
    font-size: 1.1rem;
    line-height: 1;
    cursor: pointer;
}

.admin-categories-active-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem;
}

.admin-categories-filter-chip {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    padding: .22rem .5rem;
    border-radius: 999px;
    background: rgba(139, 92, 246, .1);
    font-size: .72rem;
    font-weight: 600;
    text-decoration: none;
    color: inherit;
}

.admin-categories-filter-clear-all {
    font-size: .72rem;
    font-weight: 600;
}

.admin-categories-keyboard-hint {
    margin: 0;
    font-size: .68rem;
}

.admin-categories-bulk {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .55rem;
    padding: .65rem .85rem;
    border: 1px solid rgba(139, 92, 246, .25);
    background: rgba(139, 92, 246, .06);
}

.admin-categories-v5.has-bulk-selection .admin-categories-bulk {
    display: flex !important;
}

.admin-categories-empty {
    padding: 2rem 1.25rem;
    text-align: center;
}

.admin-categories-empty h2 {
    margin: 0 0 .45rem;
    font-size: 1rem;
}

.admin-categories-table-v5 .table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--color-surface);
}

.admin-categories-col-tree {
    min-width: 12rem;
}

.admin-category-tree-name {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .2rem .35rem;
}

.admin-category-tree-marker {
    color: var(--color-muted);
    font-size: .75rem;
    line-height: 1;
}

.admin-categories-v5 .category-tree-indent {
    width: calc(var(--cat-depth, 0) * 1rem);
    flex-shrink: 0;
}

.admin-category-tree-es {
    font-weight: 600;
}

.admin-category-tree-meta {
    font-size: .68rem;
    width: 100%;
    padding-left: calc(var(--cat-depth, 0) * 1rem + .5rem);
}

.admin-categories-col-fr {
    min-width: 11rem;
}

.admin-categories-inline-fr {
    display: flex;
    align-items: center;
    gap: .25rem;
    margin-bottom: .2rem;
}

.admin-categories-fr-input {
    flex: 1;
    min-width: 8rem;
}

.admin-categories-fr-badge {
    vertical-align: middle;
}

.admin-categories-product-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.75rem;
    padding: .15rem .45rem;
    border-radius: 999px;
    background: rgba(47, 181, 210, .12);
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    text-decoration: none;
}

.admin-categories-product-count--empty {
    background: transparent;
    font-weight: 600;
}

.admin-categories-v5 .admin-category-row.row-untranslated {
    background: rgba(245, 158, 11, .04);
}

.admin-categories-v5 .admin-category-row.row-inactive {
    opacity: .78;
}

.admin-categories-v5 .admin-category-row.is-tree-hidden {
    display: none;
}

.admin-categories-footer-hint {
    margin: 0;
    font-size: .72rem;
}

@media (max-width: 1024px) {
    .admin-categories-hero-v5-stats {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .admin-categories-hero-stat {
        border-bottom: 1px solid var(--color-border);
    }

    .admin-categories-hero-stat:nth-child(3n) {
        border-right: 0;
    }
}

@media (max-width: 768px) {
    .admin-categories-hero-v5-top {
        flex-direction: column;
    }

    .admin-categories-hero-v5-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-categories-toolbar-top {
        flex-direction: column;
        align-items: stretch;
    }

    .admin-categories-search-kbd {
        display: none;
    }

    .admin-categories-col-fr,
    .admin-categories-table-v5 th:nth-child(3) {
        display: none;
    }
}

/* ── Admin stock v5 ── */
.admin-stock-v5 {
    display: grid;
    gap: .65rem;
}

.admin-stock-hero-v5 {
    padding: 0;
    overflow: hidden;
    border-top: 3px solid #f59e0b;
    box-shadow: 0 8px 24px rgba(15, 20, 25, .05);
}

.admin-stock-hero-v5--ok {
    border-top-color: #10b981;
}

.admin-stock-hero-v5-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.1rem .85rem;
    background: linear-gradient(135deg, rgba(245, 158, 11, .1) 0%, rgba(255, 255, 255, .98) 55%);
}

.admin-stock-hero-v5--ok .admin-stock-hero-v5-top {
    background: linear-gradient(135deg, rgba(16, 185, 129, .08) 0%, rgba(255, 255, 255, .98) 55%);
}

.admin-stock-hero-v5-lead {
    display: flex;
    align-items: flex-start;
    gap: .85rem;
    min-width: 0;
}

.admin-stock-hero-v5-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.6rem;
    height: 2.6rem;
    border-radius: var(--radius-lg);
    background: rgba(245, 158, 11, .18);
    color: #b45309;
    font-family: var(--font-display);
    font-size: 1.1rem;
    font-weight: 800;
}

.admin-stock-hero-v5--ok .admin-stock-hero-v5-icon {
    background: rgba(16, 185, 129, .16);
    color: #047857;
}

.admin-stock-hero-v5-eyebrow {
    margin: 0 0 .2rem;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--color-muted);
}

.admin-stock-hero-v5-title {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(1.05rem, 2vw, 1.28rem);
    font-weight: 700;
}

.admin-stock-hero-v5-meta {
    margin: .35rem 0 0;
    font-size: .78rem;
}

.admin-stock-hero-v5-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .4rem;
}

.admin-stock-hero-v5-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-top: 1px solid var(--color-border);
}

.admin-stock-hero-stat {
    display: grid;
    gap: .12rem;
    padding: .7rem .85rem;
    border: 0;
    border-right: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
    text-decoration: none;
    color: inherit;
    transition: background .12s;
}

.admin-stock-hero-stat:last-child {
    border-right: 0;
}

.admin-stock-hero-stat:hover {
    background: rgba(245, 158, 11, .06);
}

.admin-stock-hero-stat.is-active {
    background: rgba(245, 158, 11, .1);
    box-shadow: inset 0 -2px 0 #f59e0b;
}

.admin-stock-hero-stat-value {
    font-family: var(--font-display);
    font-size: 1.05rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.admin-stock-hero-stat-label {
    font-size: .64rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--color-muted);
}

.admin-stock-hero-stat--warn .admin-stock-hero-stat-value {
    color: #b45309;
}

.admin-stock-hero-stat--danger .admin-stock-hero-stat-value {
    color: #b91c1c;
}

.admin-stock-hero-v5-hint {
    margin: 0;
    padding: .55rem 1.1rem .75rem;
    font-size: .72rem;
    line-height: 1.45;
    border-top: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
}

.admin-stock-toolbar {
    padding: .75rem .85rem;
    display: grid;
    gap: .65rem;
}

.admin-stock-toolbar.is-sticky {
    position: sticky;
    top: 56px;
    z-index: 42;
    box-shadow: var(--shadow-lg);
}

.admin-stock-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}

.admin-stock-tab {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    padding: .38rem .65rem;
    border-radius: 999px;
    border: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
    font-size: .78rem;
    font-weight: 600;
    color: var(--color-muted);
    text-decoration: none;
}

.admin-stock-tab.is-active {
    color: var(--color-text);
    border-color: rgba(245, 158, 11, .4);
    background: rgba(245, 158, 11, .1);
    font-weight: 700;
}

.admin-stock-tab-tag {
    font-size: .58rem;
    font-weight: 700;
    text-transform: uppercase;
    opacity: .7;
}

.admin-stock-search {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .55rem;
}

.admin-stock-search-field {
    flex: 1 1 220px;
    display: flex;
    align-items: center;
    gap: .35rem;
    padding: 0 .55rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-surface);
}

.admin-stock-search-field:focus-within {
    border-color: rgba(245, 158, 11, .45);
    box-shadow: 0 0 0 2px rgba(245, 158, 11, .12);
}

.admin-stock-search-icon {
    color: var(--color-muted);
    font-size: .9rem;
}

.admin-stock-search-field input {
    flex: 1;
    border: 0;
    background: transparent;
    min-width: 0;
    padding: .45rem 0;
}

.admin-stock-search-kbd {
    font-size: .62rem;
    padding: .1rem .35rem;
    border-radius: var(--radius-sm);
    border: 1px solid var(--color-border);
    color: var(--color-muted);
}

.admin-stock-search-clear {
    border: 0;
    background: transparent;
    color: var(--color-muted);
    font-size: 1.1rem;
    line-height: 1;
    cursor: pointer;
}

.admin-stock-threshold-field {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    font-size: .78rem;
    font-weight: 600;
}

.admin-stock-threshold-input {
    width: 4rem;
}

.admin-stock-active-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem;
}

.admin-stock-filter-chip {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    padding: .22rem .5rem;
    border-radius: 999px;
    background: rgba(245, 158, 11, .12);
    font-size: .72rem;
    font-weight: 600;
    text-decoration: none;
    color: inherit;
}

.admin-stock-filter-clear-all {
    font-size: .72rem;
    font-weight: 600;
}

.admin-stock-keyboard-hint {
    margin: 0;
    font-size: .68rem;
}

.admin-stock-empty {
    padding: 2.5rem 1.25rem;
    text-align: center;
}

.admin-stock-empty-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    margin-bottom: .75rem;
    border-radius: 50%;
    background: rgba(16, 185, 129, .14);
    color: #047857;
    font-size: 1.4rem;
    font-weight: 800;
}

.admin-stock-empty h2 {
    margin: 0 0 .45rem;
    font-size: 1rem;
}

.admin-stock-table-v5 .table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--color-surface);
}

.admin-stock-col-product {
    min-width: 14rem;
}

.admin-stock-product-cell {
    display: flex;
    align-items: center;
    gap: .65rem;
}

.admin-stock-thumb {
    width: 44px;
    height: 44px;
    border-radius: var(--radius-md);
    object-fit: cover;
    flex-shrink: 0;
    border: 1px solid var(--color-border);
}

.admin-stock-thumb--empty {
    display: inline-block;
    background: var(--color-surface-subtle);
}

.admin-stock-product-meta {
    display: grid;
    gap: .12rem;
    min-width: 0;
}

.admin-stock-product-name {
    font-weight: 600;
    font-size: .82rem;
    line-height: 1.3;
}

.admin-stock-product-ref {
    font-size: .68rem;
    color: var(--color-muted);
}

.admin-stock-variant {
    font-size: .78rem;
    max-width: 12rem;
}

.admin-stock-col-qty {
    min-width: 11rem;
}

.admin-stock-qty-cell {
    display: grid;
    gap: .35rem;
}

.admin-stock-meter {
    height: 4px;
    border-radius: 999px;
    background: var(--color-surface-subtle);
    overflow: hidden;
}

.admin-stock-meter-fill {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: rgba(245, 158, 11, .65);
    transition: width .15s;
}

.admin-stock-meter-fill.is-low {
    background: #f59e0b;
}

.admin-stock-meter-fill.is-critical {
    background: #ef4444;
}

.admin-stock-inline-form {
    margin: 0;
}

.admin-stock-qty-tools {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .2rem;
}

.admin-stock-qty-btn {
    min-width: 1.75rem;
    padding: .2rem .35rem;
    font-weight: 700;
    line-height: 1;
}

.admin-stock-qty-input {
    width: 3.5rem;
    text-align: center;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.admin-stock-qty-input.is-dirty {
    border-color: rgba(245, 158, 11, .55);
    background: rgba(245, 158, 11, .06);
}

.admin-stock-qty-input.is-low {
    color: #b91c1c;
}

.admin-stock-save-btn {
    margin-left: .15rem;
}

.admin-stock-qty-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    padding: .2rem .55rem;
    border-radius: 999px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.admin-stock-qty-badge--low {
    background: rgba(245, 158, 11, .16);
    color: #b45309;
}

.admin-stock-qty-badge--critical {
    background: rgba(239, 68, 68, .14);
    color: #b91c1c;
}

.admin-stock-v5 .admin-stock-row.row-stock-critical {
    background: rgba(239, 68, 68, .04);
}

.admin-stock-footer-hint {
    margin: 0;
    font-size: .72rem;
}

@media (max-width: 900px) {
    .admin-stock-hero-v5-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-stock-hero-stat {
        border-bottom: 1px solid var(--color-border);
    }

    .admin-stock-hero-stat:nth-child(2n) {
        border-right: 0;
    }

    .admin-stock-hero-v5-top {
        flex-direction: column;
    }

    .admin-stock-hero-v5-actions {
        justify-content: flex-start;
    }

    .admin-stock-search-kbd {
        display: none;
    }

    .admin-stock-variant,
    .admin-stock-table-v5 th:nth-child(2) {
        display: none;
    }
}

/* ── Admin category detail v5 ── */
.admin-category-v5 {
    display: grid;
    gap: .65rem;
}

.admin-category-hero-v5 {
    padding: 0;
    overflow: hidden;
    border-top: 3px solid #8b5cf6;
    box-shadow: 0 8px 24px rgba(15, 20, 25, .05);
}

.admin-category-hero-v5-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.1rem .85rem;
    background: linear-gradient(135deg, rgba(139, 92, 246, .09) 0%, rgba(255, 255, 255, .98) 55%);
}

.admin-category-hero-v5-lead {
    min-width: 0;
}

.admin-category-hero-back {
    display: inline-block;
    margin-bottom: .35rem;
    font-size: .72rem;
    font-weight: 600;
    text-decoration: none;
}

.admin-category-hero-back:hover {
    text-decoration: underline;
}

.admin-category-hero-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .2rem .35rem;
    margin: 0 0 .35rem;
    font-size: .72rem;
}

.admin-category-hero-breadcrumb a {
    color: inherit;
    text-decoration: none;
}

.admin-category-hero-breadcrumb a:hover {
    text-decoration: underline;
}

.admin-category-hero-breadcrumb-sep {
    opacity: .5;
}

.admin-category-hero-v5-title {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(1.15rem, 2.2vw, 1.45rem);
    font-weight: 800;
    line-height: 1.2;
}

.admin-category-hero-v5-meta {
    margin: .35rem 0 .5rem;
    font-size: .78rem;
}

.admin-category-hero-pills {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}

.admin-category-pill {
    display: inline-flex;
    align-items: center;
    padding: .2rem .55rem;
    border-radius: 999px;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .02em;
}

.admin-category-pill--ok {
    background: rgba(16, 185, 129, .14);
    color: #047857;
}

.admin-category-pill--off {
    background: rgba(100, 116, 139, .14);
    color: #475569;
}

.admin-category-pill--warn {
    background: rgba(245, 158, 11, .16);
    color: #b45309;
}

.admin-category-hero-v5-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .4rem;
}

.admin-category-hero-v5-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-top: 1px solid var(--color-border);
}

.admin-category-hero-stat {
    display: grid;
    gap: .12rem;
    padding: .7rem .85rem;
    border-right: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
    text-decoration: none;
    color: inherit;
    transition: background .12s;
}

.admin-category-hero-stat:last-child {
    border-right: 0;
}

a.admin-category-hero-stat:hover {
    background: rgba(139, 92, 246, .06);
}

.admin-category-hero-stat--warn .admin-category-hero-stat-value {
    color: #b45309;
}

.admin-category-hero-stat-value {
    font-family: var(--font-display);
    font-size: 1.05rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.admin-category-hero-stat-value--sm {
    font-size: .82rem;
    font-weight: 700;
}

.admin-category-hero-stat-label {
    font-size: .64rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--color-muted);
}

.admin-category-hero-progress {
    margin-top: .2rem;
}

.admin-category-hero-v5-hint,
.admin-category-hero-v5-alert {
    margin: 0;
    padding: .55rem 1.1rem .75rem;
    font-size: .72rem;
    line-height: 1.45;
    border-top: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
}

.admin-category-hero-v5-alert {
    background: rgba(245, 158, 11, .06);
}

.admin-category-jump-v5 {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    padding: .55rem .75rem;
    position: sticky;
    top: 56px;
    z-index: 41;
}

.admin-category-jump-v5.is-sticky-shadow {
    box-shadow: var(--shadow-lg);
}

.admin-category-jump-link {
    display: inline-flex;
    align-items: center;
    padding: .38rem .7rem;
    border-radius: 999px;
    border: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
    font-size: .78rem;
    font-weight: 600;
    color: var(--color-muted);
    text-decoration: none;
    scroll-margin-top: 120px;
}

.admin-category-jump-link:hover,
.admin-category-jump-link.is-active {
    color: var(--color-text);
    border-color: rgba(139, 92, 246, .35);
    background: rgba(139, 92, 246, .08);
}

.admin-category-jump-link.is-active {
    font-weight: 700;
}

.admin-category-v5-workspace {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 320px);
    gap: .65rem;
    align-items: start;
}

.admin-category-form-v5 {
    padding: 0;
    overflow: hidden;
}

.admin-category-form-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
    padding: 1rem 1.1rem .75rem;
    border-bottom: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
}

.admin-category-form-head h2 {
    margin: 0;
    font-size: 1rem;
}

.admin-category-form-desc {
    margin: .25rem 0 0;
    font-size: .75rem;
}

.admin-category-form {
    padding: 1rem 1.1rem 1.1rem;
    display: grid;
    gap: 1rem;
}

.admin-category-form-block {
    display: grid;
    gap: .65rem;
}

.admin-category-form-block-title {
    margin: 0;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--color-muted);
}

.admin-category-field {
    display: grid;
    gap: .25rem;
}

.admin-category-field-label {
    font-size: .78rem;
    font-weight: 600;
}

.admin-category-field-hint {
    font-size: .7rem;
}

.admin-category-char-count {
    font-size: .68rem;
    text-align: right;
}

.admin-category-char-count.is-warn {
    color: #b45309;
    font-weight: 700;
}

.admin-category-seo-preview {
    padding: .75rem .85rem;
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
}

.admin-category-seo-preview-label {
    margin: 0 0 .35rem;
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.admin-category-seo-preview-title {
    margin: 0;
    font-weight: 700;
    color: #1a0dab;
    font-size: .92rem;
}

.admin-category-seo-preview-url {
    margin: .2rem 0 0;
    font-size: .72rem;
}

.admin-category-form-footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .55rem;
    padding-top: .35rem;
    border-top: 1px solid var(--color-border);
}

.admin-category-form-kbd-hint {
    font-size: .68rem;
}

.admin-category-sticky-save {
    position: sticky;
    bottom: 0;
    z-index: 40;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .65rem 1.1rem;
    border-top: 1px solid rgba(139, 92, 246, .25);
    background: rgba(255, 255, 255, .96);
    backdrop-filter: blur(8px);
    box-shadow: 0 -4px 16px rgba(15, 20, 25, .06);
}

.admin-category-sticky-save-label {
    font-size: .78rem;
    font-weight: 600;
}

.admin-category-checklist {
    padding: .85rem 1rem;
}

.admin-category-checklist.is-complete {
    border-top: 2px solid rgba(16, 185, 129, .45);
}

.admin-category-checklist-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: .5rem;
    margin-bottom: .45rem;
}

.admin-category-checklist-head h2 {
    margin: 0;
    font-size: .88rem;
}

.admin-category-checklist-pct {
    font-family: var(--font-display);
    font-size: .88rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.admin-category-checklist-progress {
    margin-bottom: .55rem;
}

.admin-category-checklist-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: .35rem;
}

.admin-category-checklist-item {
    display: flex;
    align-items: center;
    gap: .45rem;
    padding: .4rem .5rem;
    border-radius: var(--radius-md);
    font-size: .78rem;
    font-weight: 600;
    text-decoration: none;
    color: inherit;
    border: 1px solid transparent;
}

.admin-category-checklist-item:hover {
    background: rgba(139, 92, 246, .06);
    border-color: var(--color-border);
}

.admin-category-checklist-item.is-ok {
    color: #047857;
}

.admin-category-checklist-item.is-pending {
    color: #b45309;
}

.admin-category-checklist-dot {
    width: .55rem;
    height: .55rem;
    border-radius: 50%;
    flex-shrink: 0;
}

.admin-category-checklist-dot.is-ok {
    background: #10b981;
}

.admin-category-checklist-dot.is-pending {
    background: #f59e0b;
}

.admin-category-info-v5 {
    padding: .85rem 1rem;
}

.admin-category-info-v5 h2 {
    margin: 0 0 .65rem;
    font-size: .88rem;
}

.admin-category-info-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-top: .85rem;
    padding-top: .75rem;
    border-top: 1px solid var(--color-border);
}

.admin-category-products-v5 {
    padding: 0;
    overflow: hidden;
}

.admin-category-products-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
    padding: 1rem 1.1rem .75rem;
    border-bottom: 1px solid var(--color-border);
}

.admin-category-products-head h2 {
    margin: 0;
    font-size: 1rem;
}

.admin-category-products-desc {
    margin: .25rem 0 0;
    font-size: .75rem;
}

.admin-category-products-table {
    padding: 0 .35rem .35rem;
}

.admin-category-v5 [id="category-translation"],
.admin-category-v5 [id="category-info"],
.admin-category-v5 [id="category-products"] {
    scroll-margin-top: 120px;
}

@media (max-width: 960px) {
    .admin-category-v5-workspace {
        grid-template-columns: 1fr;
    }

    .admin-category-hero-v5-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-category-hero-stat {
        border-bottom: 1px solid var(--color-border);
    }

    .admin-category-hero-stat:nth-child(2n) {
        border-right: 0;
    }

    .admin-category-hero-v5-top {
        flex-direction: column;
    }

    .admin-category-hero-v5-actions {
        justify-content: flex-start;
    }
}

/* ── Inscription compacte ── */
.auth-form-panel-register--compact {
    padding: clamp(1rem, 2.5vw, 1.75rem) clamp(1rem, 3vw, 2rem);
}
.auth-form-head--compact {
    margin-bottom: .85rem;
    padding-bottom: .65rem;
}
.auth-form-head--compact h1 {
    font-size: clamp(1.15rem, 2vw, 1.35rem);
    margin: 0;
}
.auth-form-head--compact .auth-form-lead {
    margin: .25rem 0 0;
    font-size: .82rem;
    line-height: 1.45;
    color: var(--color-muted);
}
.auth-form-register--compact .auth-form-grid--company {
    grid-template-columns: 1.35fr 1fr;
}
.auth-form-register--compact .auth-label-hint {
    font-weight: 400;
    color: var(--color-muted);
    font-size: .68rem;
}
.auth-form-register--compact .auth-form-group-label {
    margin: .5rem 0 .3rem;
    font-family: var(--font-display);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--color-muted);
}
.auth-form-register--compact .auth-form-group-label:first-child {
    margin-top: 0;
}
.auth-form-register--compact .auth-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: .85rem;
}
.auth-form-register--compact .auth-field {
    margin-bottom: .45rem;
}
.auth-form-register--compact .auth-field--full {
    grid-column: 1 / -1;
}
.auth-form-register--compact .auth-field label {
    margin-bottom: .25rem;
    font-size: .78rem;
}
.auth-form-register--compact .auth-field input {
    padding: .52rem .7rem;
    font-size: .88rem;
}
.auth-form-register--compact .auth-field-hint {
    margin-top: .2rem;
    font-size: .7rem;
    line-height: 1.35;
}
.auth-form-register--compact .auth-form-actions {
    margin-top: .65rem;
    padding-top: 0;
    border-top: 0;
}
.auth-form-register--compact .auth-submit-btn {
    min-height: 2.5rem;
    padding: .55rem 1rem;
    font-size: .9rem;
}
.auth-form-register--compact .auth-form-note {
    margin: .45rem 0 0;
    font-size: .72rem;
    line-height: 1.4;
}
.auth-form-footer--compact {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: .35rem 1.25rem;
    margin-top: .65rem;
    padding-top: .65rem;
}
.auth-form-footer--compact p {
    font-size: .8rem;
}
.auth-form-footer--compact .auth-form-help {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: .78rem;
}
@media (min-width: 641px) {
    .auth-form-footer--compact {
        flex-direction: row;
    }
}
.page-auth-gate .auth-form-panel-register--compact {
    justify-content: flex-start;
    padding-top: clamp(1rem, 3vh, 1.75rem);
    padding-bottom: 1.25rem;
}
@media (max-width: 640px) {
    .auth-form-register--compact .auth-form-grid {
        grid-template-columns: 1fr;
    }
}

/* ── Client B2B app shell (separate from public site) ── */
body.client-app-body.has-client-app {
    background: #e8ecef;
    margin: 0;
    min-height: 100vh;
}

.has-client-app {
    --client-sidebar-width: 228px;
    --client-topbar-height: 3.35rem;
    --client-content-padding: clamp(1rem, 2vw, 1.5rem);
}

.client-app {
    display: flex;
    min-height: 100vh;
    width: 100%;
}

.client-app-shell {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.client-app-topbar {
    position: sticky;
    top: 0;
    z-index: 120;
    display: flex;
    align-items: center;
    gap: .65rem;
    min-height: var(--client-topbar-height);
    padding: .45rem var(--client-content-padding);
    background: #111;
    color: #fff;
    border-bottom: 1px solid rgba(255, 255, 255, .08);
    box-shadow: 0 2px 12px rgba(0, 0, 0, .12);
}

.client-app-menu-btn {
    display: none;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    width: 2.35rem;
    height: 2.35rem;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: var(--radius);
    background: rgba(255, 255, 255, .06);
    color: #fff;
    cursor: pointer;
}

.client-app-brand {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    flex-shrink: 0;
    text-decoration: none;
    color: inherit;
}

.client-app-brand:hover {
    text-decoration: none;
    color: inherit;
}

.client-app-brand img {
    display: block;
    filter: brightness(0) invert(1);
}

.client-app-brand-badge {
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .55);
}

.client-app-search {
    flex: 1;
    min-width: 0;
    max-width: 520px;
    display: flex;
    align-items: center;
    gap: .35rem;
    margin: 0 auto 0 0;
    padding: .28rem .35rem .28rem .75rem;
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: var(--radius-lg);
}

.client-app-search input {
    flex: 1;
    min-width: 0;
    border: 0;
    background: transparent;
    color: #fff;
    -webkit-text-fill-color: #fff;
    font-size: .88rem;
    padding: .35rem 0;
}

.client-app-search input::placeholder {
    color: rgba(255, 255, 255, .45);
    -webkit-text-fill-color: rgba(255, 255, 255, .45);
    opacity: 1;
}

.client-app-search input:focus,
.client-app-search input:focus-visible {
    outline: none;
    background: transparent;
    color: #fff;
    -webkit-text-fill-color: #fff;
    box-shadow: none;
}

.has-client-app .client-app-search.nav-search input,
.has-client-app .client-app-search.nav-search input:focus,
.has-client-app .client-app-search.nav-search input:focus-visible {
    background: transparent;
    color: #fff;
    -webkit-text-fill-color: #fff;
    border: 0;
    box-shadow: none;
}

.has-client-app .client-app-search input:-webkit-autofill,
.has-client-app .client-app-search input:-webkit-autofill:hover,
.has-client-app .client-app-search input:-webkit-autofill:focus {
    -webkit-box-shadow: 0 0 0 1000px #161616 inset;
    -webkit-text-fill-color: #fff;
    caret-color: #fff;
    transition: background-color 9999s ease-out 0s;
}

.client-app-search-btn {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border: 0;
    border-radius: var(--radius);
    background: var(--color-accent);
    color: var(--color-ink);
    cursor: pointer;
}

.client-app-topbar-actions {
    display: flex;
    align-items: center;
    gap: .45rem;
    margin-left: auto;
    flex-shrink: 0;
}

.client-app-topbar-link {
    display: none;
    padding: .4rem .65rem;
    font-size: .78rem;
    font-weight: 600;
    color: rgba(255, 255, 255, .82);
    text-decoration: none;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: var(--radius);
}

.client-app-topbar-link:hover {
    background: rgba(255, 255, 255, .08);
    color: #fff;
    text-decoration: none;
}

.client-app-cart {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.35rem;
    height: 2.35rem;
    border-radius: var(--radius);
    background: rgba(255, 255, 255, .06);
    border: 1px solid rgba(255, 255, 255, .14);
    color: #fff;
    text-decoration: none;
    position: relative;
}

.client-app-cart.has-items {
    border-color: var(--color-accent);
    background: rgba(47, 181, 210, .15);
}

.client-app-main {
    flex: 1;
    padding: var(--client-content-padding);
    padding-bottom: 2rem;
    background: var(--color-bg);
}

.client-app-alert {
    margin-bottom: 1rem;
}

.client-app-overlay {
    display: none;
}

.has-client-app .client-sidebar {
    position: sticky;
    top: 0;
    flex: 0 0 var(--client-sidebar-width);
    width: var(--client-sidebar-width);
    height: 100vh;
    max-height: 100vh;
    margin: 0;
    padding: .55rem .5rem .65rem;
    overflow-y: auto;
    overscroll-behavior: contain;
    background: #fff;
    border-right: 1px solid var(--color-border);
    box-shadow: 2px 0 16px rgba(0, 0, 0, .04);
    z-index: 100;
}

.has-client-app .client-sidebar-brand {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    margin: 0 .15rem .55rem;
    padding: .15rem .25rem .45rem;
    text-decoration: none;
}

.has-client-app .client-sidebar-brand img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    filter: brightness(0) invert(1);
}

.has-client-app .page-header {
    margin: calc(-1 * var(--client-content-padding)) calc(-1 * var(--client-content-padding)) 1.15rem;
    padding: 1rem var(--client-content-padding) 1.05rem;
    background: #fff;
    border-bottom: 1px solid var(--color-border);
}

.has-client-app .page-header h1 {
    font-size: clamp(1.15rem, 2vw, 1.45rem);
    margin: 0;
}

.has-client-app .catalog-layout:not(.catalog-layout-client-app) {
    grid-template-columns: minmax(220px, 248px) minmax(0, 1fr);
    gap: 1.25rem;
}

.has-client-app .panel-card {
    border-radius: var(--radius-lg);
}

.has-client-app .section.panel-card > .section-header {
    padding: 1rem 1.15rem;
    border-bottom: 1px solid var(--color-border);
}

@media (min-width: 900px) {
    .client-app-topbar-link {
        display: inline-flex;
        align-items: center;
    }
}

@media (max-width: 768px) {
    .client-app-menu-btn {
        display: inline-flex;
    }

    .client-app-search {
        margin-left: 0;
        max-width: none;
    }

    .client-app-topbar-logout {
        display: none;
    }

    .client-app-overlay {
        position: fixed;
        inset: 0;
        background: rgba(0, 0, 0, .45);
        z-index: 200;
        backdrop-filter: blur(2px);
    }

    .client-app-overlay:not([hidden]) {
        display: block;
    }

    .has-client-app .client-sidebar {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        width: min(300px, 88vw);
        height: auto;
        max-height: none;
        flex: none;
        z-index: 210;
        padding: 1rem;
        transform: translateX(-105%);
        transition: transform .25s ease;
        box-shadow: var(--shadow-lg);
    }

    .has-client-app .client-sidebar.is-open {
        transform: translateX(0);
    }

    .has-client-app .catalog-layout:not(.catalog-layout-client-app) {
        grid-template-columns: 1fr;
    }
}

.has-client-app .catalog-layout.catalog-layout-client-app {
    grid-template-columns: minmax(0, 1fr);
    gap: .85rem;
    width: 100%;
}

.has-client-app .catalog-layout.catalog-layout-client-app > .catalog-main {
    grid-column: 1 / -1;
    width: 100%;
    max-width: none;
}

.catalog-layout-client-app .catalog-sidebar-toggle {
    display: none;
}

.has-client-app .catalog-page-header,
.has-client-app .catalog-controls {
    border-radius: var(--radius-lg);
}

.has-client-app .catalog-main {
    min-width: 0;
}

/* Client app v2 — sidebar sombre, catalogo compacto */
.has-client-app {
    --client-sidebar-width: 228px;
}

.has-client-app .client-sidebar {
    background: #0f1114;
    border-right: 1px solid rgba(255, 255, 255, .06);
    box-shadow: none;
    gap: .35rem;
    padding: .55rem .5rem .65rem;
}

.has-client-app .client-sidebar-compact .client-sidebar-profile {
    background: linear-gradient(145deg, #161a1f 0%, #101215 100%);
    border: 1px solid rgba(255, 255, 255, .08);
    box-shadow: none;
    padding: .55rem .6rem;
}

.has-client-app .client-sidebar-compact .client-sidebar-profile::before {
    height: 2px;
    background: linear-gradient(90deg, var(--color-accent), rgba(47, 181, 210, .2));
}

.has-client-app .client-sidebar-profile-row {
    display: flex;
    align-items: center;
    gap: .55rem;
    min-width: 0;
}

.has-client-app .client-sidebar-compact .client-sidebar-avatar {
    width: 2rem;
    height: 2rem;
    flex-shrink: 0;
    border-radius: var(--radius);
    background: rgba(47, 181, 210, .18);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: .68rem;
    letter-spacing: .03em;
}

.has-client-app .client-sidebar-compact .client-sidebar-avatar-wrap {
    display: none;
}

.has-client-app .client-sidebar-compact .client-sidebar-identity {
    flex: 1;
    min-width: 0;
    gap: .1rem;
}

.has-client-app .client-sidebar-compact .client-sidebar-identity strong {
    color: #fff;
    font-size: .78rem;
    line-height: 1.25;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.has-client-app .client-sidebar-compact .client-sidebar-person,
.has-client-app .client-sidebar-compact .client-sidebar-tag {
    font-size: .68rem;
    color: rgba(255, 255, 255, .48);
    line-height: 1.2;
}

.has-client-app .client-sidebar-compact .client-sidebar-tag {
    display: inline-block;
    max-width: 100%;
    padding: .08rem .35rem;
    border-radius: 999px;
    background: rgba(47, 181, 210, .14);
    color: rgba(255, 255, 255, .72);
    font-size: .62rem;
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.has-client-app .client-sidebar-compact .client-credit-meter-compact {
    margin-top: .45rem;
    padding-top: 0;
    border-top: 0;
}

.has-client-app .client-sidebar-compact .client-credit-meter-compact .client-credit-bar {
    height: 4px;
    margin-bottom: .25rem;
}

.has-client-app .client-sidebar-compact .client-credit-meta {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: .35rem;
    margin: 0;
    font-size: .64rem;
    color: rgba(255, 255, 255, .42);
}

.has-client-app .client-sidebar-compact .client-credit-meta strong {
    font-size: .72rem;
    color: rgba(255, 255, 255, .88);
    font-weight: 700;
}

.has-client-app .client-sidebar-compact .client-sidebar-main-nav {
    padding: .35rem .4rem .4rem;
}

.has-client-app .client-sidebar-compact .client-sidebar-group-divider {
    margin-top: .35rem;
    padding-top: .35rem;
    border-top: 1px solid rgba(255, 255, 255, .06);
}

.has-client-app .client-sidebar-compact .client-sidebar-section-label {
    margin: 0 0 .2rem;
    padding: 0 .35rem;
    font-size: .58rem;
    letter-spacing: .08em;
    color: rgba(255, 255, 255, .38);
}

.has-client-app .client-sidebar-compact .client-sidebar-links {
    gap: .1rem;
}

.has-client-app .client-sidebar-compact .client-sidebar-link {
    padding: .38rem .4rem;
    font-size: .78rem;
    font-weight: 600;
    border-radius: var(--radius);
}

.has-client-app .client-sidebar-compact .client-sidebar-link:hover {
    transform: none;
}

.has-client-app .client-sidebar-compact .client-sidebar-icon {
    width: 1.45rem;
    height: 1.45rem;
    border-radius: calc(var(--radius) - 1px);
}

.has-client-app .client-sidebar-compact .client-sidebar-badge {
    min-width: 1.1rem;
    height: 1.1rem;
    font-size: .62rem;
}

.has-client-app .client-sidebar-compact .client-sidebar-nav.panel-card {
    padding: .4rem .45rem .45rem;
}

.has-client-app .client-sidebar-compact .client-sidebar-categories {
    padding: .35rem .4rem .4rem;
}

.has-client-app .client-sidebar-compact .client-sidebar-categories-summary {
    padding: .05rem .35rem .25rem;
}

.has-client-app .client-sidebar-compact .client-sidebar-categories .client-category-menu {
    max-height: min(36vh, 280px);
    padding-bottom: .2rem;
}

.has-client-app .client-sidebar-compact .client-category-all {
    padding: .32rem .45rem;
    font-size: .74rem;
}

.has-client-app .client-sidebar-compact .category-menu-compact .category-menu-link {
    padding: .28rem .45rem;
    font-size: .74rem;
}

.has-client-app .client-sidebar-footer {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    margin-top: auto;
    padding: .35rem .25rem 0;
}

.has-client-app .client-sidebar-footer-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: var(--radius);
    color: rgba(255, 255, 255, .45);
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(255, 255, 255, .07);
    text-decoration: none;
    transition: color .15s, background .15s, border-color .15s;
}

.has-client-app .client-sidebar-footer-link:hover {
    color: var(--color-accent);
    background: rgba(47, 181, 210, .1);
    border-color: rgba(47, 181, 210, .25);
    text-decoration: none;
}

.has-client-app .client-sidebar-profile {
    background: linear-gradient(145deg, #161a1f 0%, #101215 100%);
    border: 1px solid rgba(255, 255, 255, .08);
    box-shadow: none;
}

.has-client-app .client-sidebar-profile::before {
    background: linear-gradient(90deg, var(--color-accent), rgba(47, 181, 210, .2));
}

.has-client-app .client-sidebar-identity strong {
    color: #fff;
    font-size: .88rem;
}

.has-client-app .client-sidebar-identity .muted {
    color: rgba(255, 255, 255, .55);
}

.has-client-app .client-sidebar-nav.panel-card {
    background: rgba(255, 255, 255, .03);
    border: 1px solid rgba(255, 255, 255, .07);
    box-shadow: none;
}

.has-client-app .client-sidebar-section-label {
    color: rgba(255, 255, 255, .42);
}

.has-client-app .client-sidebar-link {
    color: rgba(255, 255, 255, .82);
}

.has-client-app .client-sidebar-link:hover {
    background: rgba(255, 255, 255, .06);
    border-color: rgba(255, 255, 255, .08);
    color: #fff;
}

.has-client-app .client-sidebar-link.is-active {
    background: rgba(47, 181, 210, .14);
    border-color: rgba(47, 181, 210, .28);
    color: #fff;
    box-shadow: inset 3px 0 0 var(--color-accent);
}

.has-client-app .client-sidebar-icon {
    background: rgba(255, 255, 255, .06);
    color: rgba(255, 255, 255, .75);
}

.has-client-app .client-sidebar-link.is-active .client-sidebar-icon {
    background: rgba(47, 181, 210, .22);
    color: #fff;
}

.has-client-app .client-credit-meter {
    border-top-color: rgba(255, 255, 255, .1);
}

.has-client-app .client-credit-head {
    color: rgba(255, 255, 255, .55);
}

.has-client-app .client-credit-head strong {
    color: #fff;
}

.has-client-app .client-credit-bar {
    background: rgba(255, 255, 255, .12);
}

.has-client-app .client-credit-meta {
    color: rgba(255, 255, 255, .45);
}

.has-client-app .client-category-all {
    color: rgba(255, 255, 255, .82);
}

.has-client-app .client-category-all:hover {
    background: rgba(255, 255, 255, .06);
}

.has-client-app .client-category-all.is-active {
    background: rgba(47, 181, 210, .14);
    color: #fff;
}

.has-client-app .category-menu-compact .category-menu-link {
    color: rgba(255, 255, 255, .72);
}

.has-client-app .category-menu-compact .category-menu-link:hover,
.has-client-app .category-menu-compact .category-menu-link.active {
    color: #fff;
    background: rgba(255, 255, 255, .06);
}

.has-client-app .client-sidebar-support {
    background: rgba(255, 255, 255, .03);
    border: 1px solid rgba(255, 255, 255, .07);
    box-shadow: none;
}

.has-client-app .client-support-link {
    color: rgba(255, 255, 255, .78);
}

.has-client-app .client-support-link:hover {
    color: var(--color-accent);
}

.has-client-app .client-support-hours {
    color: rgba(255, 255, 255, .4);
}

.client-sidebar-categories-summary {
    list-style: none;
    cursor: pointer;
    padding: .15rem .45rem .5rem;
    user-select: none;
}

.client-sidebar-categories-summary::-webkit-details-marker {
    display: none;
}

.client-sidebar-categories-summary .client-sidebar-section-label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 0;
    cursor: pointer;
}

.client-sidebar-categories-summary .client-sidebar-section-label::after {
    content: '▾';
    font-size: .72rem;
    opacity: .55;
    transition: transform .15s ease;
}

.client-sidebar-categories[open] .client-sidebar-categories-summary .client-sidebar-section-label::after {
    transform: rotate(180deg);
}

.has-client-app .client-sidebar-categories .client-category-menu {
    max-height: min(42vh, 360px);
    overflow-y: auto;
    padding-bottom: .35rem;
}

.has-client-app .page-header.page-header-client-app {
    margin: 0 0 1rem;
    padding: 0;
    background: transparent;
    border: 0;
}

.page-header-client-app h1 {
    font-size: clamp(1.2rem, 2.2vw, 1.5rem);
    margin: 0;
}

.page-header-client-app .page-header-sub {
    margin: .25rem 0 0;
    font-size: .88rem;
}

.client-catalog-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: .65rem 1rem;
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
}

.client-catalog-head h1 {
    margin: 0;
    font-size: clamp(1.15rem, 2vw, 1.45rem);
    line-height: 1.2;
}

.client-catalog-head-meta {
    margin: .3rem 0 0;
    font-size: .82rem;
    color: var(--color-muted);
}

.client-catalog-head-meta strong {
    color: var(--color-text);
}

.client-catalog-head-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .4rem;
}

.has-client-app.page-catalog .client-catalog-top {
    margin-bottom: .85rem;
    padding: .85rem 1rem;
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: 0 1px 2px rgba(0, 0, 0, .04);
}

.has-client-app.page-catalog .client-catalog-crumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .25rem .4rem;
    margin-bottom: .55rem;
    font-size: .76rem;
    color: var(--color-muted);
}

.has-client-app.page-catalog .client-catalog-crumb a {
    color: var(--color-primary-dark);
    text-decoration: none;
    font-weight: 600;
}

.has-client-app.page-catalog .client-catalog-crumb a:hover {
    color: var(--color-accent);
    text-decoration: none;
}

.has-client-app.page-catalog .client-catalog-crumb-sep {
    opacity: .45;
}

.has-client-app.page-catalog .client-catalog-filters {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-top: .65rem;
    padding-top: .65rem;
    border-top: 1px dashed var(--color-border);
}

.has-client-app.page-catalog .client-catalog-categories {
    margin-top: .65rem;
    padding-top: .65rem;
    border-top: 1px solid var(--color-border);
}

.has-client-app.page-catalog .client-catalog-categories-label {
    margin: 0 0 .55rem;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--color-muted);
}

.has-client-app.page-catalog .client-catalog-categories-list {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: .35rem;
    margin: 0;
    padding: 0 0 .15rem;
    list-style: none;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}

.has-client-app.page-catalog .client-catalog-categories-list > li {
    flex: 0 0 auto;
}

.has-client-app.page-catalog .client-catalog-cat-pill {
    display: inline-flex;
    align-items: center;
    padding: .38rem .75rem;
    border-radius: 999px;
    border: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
    color: var(--color-text);
    font-size: .78rem;
    font-weight: 600;
    line-height: 1.25;
    white-space: nowrap;
    text-decoration: none;
    transition: background .15s, border-color .15s, color .15s;
}

.has-client-app.page-catalog .client-catalog-cat-pill:hover {
    border-color: rgba(47, 181, 210, .45);
    background: rgba(47, 181, 210, .08);
    color: var(--color-text);
    text-decoration: none;
}

.has-client-app.page-catalog .client-catalog-cat-pill.is-active {
    background: var(--color-ink);
    border-color: var(--color-ink);
    color: #fff;
}

.has-client-app.page-catalog .client-catalog-filter-chip {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .28rem .55rem;
    font-size: .72rem;
    font-weight: 600;
    color: var(--color-primary-dark);
    background: rgba(47, 181, 210, .1);
    border: 1px solid rgba(47, 181, 210, .25);
    border-radius: 999px;
    text-decoration: none;
}

.has-client-app.page-catalog .client-catalog-filter-chip:hover {
    background: rgba(47, 181, 210, .16);
    text-decoration: none;
    color: var(--color-ink);
}

.has-client-app.page-catalog .client-catalog-filter-remove {
    font-size: .95rem;
    line-height: 1;
    opacity: .65;
}

.has-client-app.page-catalog .catalog-controls-client {
    position: sticky;
    top: calc(var(--client-topbar-height, 3.35rem) - 1px);
    z-index: 18;
    margin-bottom: .75rem;
    padding: .5rem .65rem;
    background: rgba(255, 255, 255, .96);
    backdrop-filter: blur(8px);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: 0 2px 10px rgba(0, 0, 0, .05);
}

.has-client-app.page-catalog .client-catalog-toolbar {
    margin-top: .75rem;
    padding-top: .75rem;
    border-top: 1px solid var(--color-border);
}

.has-client-app.page-catalog .client-catalog-toolbar .catalog-toolbar-client {
    position: static;
    background: transparent;
    padding: 0;
    box-shadow: none;
}

.has-client-app.page-catalog .client-catalog-toolbar .catalog-toolbar-row {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: .55rem;
}

.has-client-app.page-catalog .client-catalog-toolbar .catalog-toolbar-actions {
    flex: 1;
    justify-content: flex-end;
    gap: .45rem;
}

.has-client-app.page-catalog .client-catalog-toolbar .catalog-display-controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .4rem;
}

.has-client-app.page-catalog .client-catalog-head-actions .btn {
    min-height: 2.15rem;
    padding: .4rem .75rem;
    font-size: .78rem;
    font-weight: 600;
    border-radius: var(--radius-lg);
}

.has-client-app.page-catalog .client-catalog-head-actions .btn-ghost {
    border: 1px solid var(--color-border);
    background: #fff;
    color: var(--color-ink);
}

.has-client-app.page-catalog .client-catalog-head-actions .btn:not(.btn-ghost) {
    background: var(--color-ink);
    border-color: var(--color-ink);
    color: #fff;
}

.has-client-app .client-app-search {
    position: relative;
    z-index: 130;
}

.has-client-app .client-app-search .search-suggest {
    z-index: 140;
    border-radius: var(--radius-lg);
    box-shadow: 0 12px 32px rgba(0, 0, 0, .18);
}

.has-client-app.page-catalog .catalog-controls-client .catalog-toolbar-row {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
}

.has-client-app.page-catalog .catalog-controls-client .catalog-toolbar-actions {
    flex: 1;
    justify-content: flex-end;
    gap: .45rem;
}

.has-client-app.page-catalog .catalog-controls-client .catalog-display-controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .4rem;
}

.has-client-app.page-catalog .catalog-sort-select {
    min-width: 9rem;
    font-size: .78rem;
    padding: .35rem .5rem;
}

.has-client-app.page-catalog .view-toggle-tabs .view-toggle-btn {
    padding: .35rem .5rem;
    min-height: 2rem;
}

.has-client-app.page-catalog .view-toggle-tabs .view-toggle-text {
    display: none;
}

.has-client-app.page-catalog .catalog-stock-filter {
    font-size: .78rem;
    white-space: nowrap;
}

.has-client-app.page-catalog .catalog-toolbar-print {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    padding: .35rem .55rem;
}

.has-client-app.page-catalog .category-subgrid-client {
    padding: .55rem .65rem .65rem;
    margin-bottom: .75rem;
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: none;
}

.has-client-app.page-catalog .category-subgrid-client-label {
    margin: 0 0 .4rem;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--color-muted);
}

.has-client-app.page-catalog .category-subcard {
    font-size: .78rem;
    border-radius: 999px;
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
}

.has-client-app.page-catalog .category-subcard.is-active {
    background: rgba(47, 181, 210, .12);
    border-color: rgba(47, 181, 210, .35);
    color: var(--color-primary-dark);
    font-weight: 600;
}

.has-client-app.page-catalog .product-grid-client-app {
    display: grid;
    width: 100%;
    gap: .75rem;
    grid-template-columns: repeat(auto-fill, minmax(168px, 1fr));
}

.has-client-app.page-catalog .product-grid-client-app .product-card {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: #fff;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.has-client-app.page-catalog .product-grid-client-app .product-card:hover {
    border-color: rgba(47, 181, 210, .4);
    box-shadow: 0 4px 14px rgba(0, 0, 0, .06);
    transform: none;
}

.has-client-app.page-catalog .product-grid-client-app .product-card-media img,
.has-client-app.page-catalog .product-grid-client-app .product-card-media .product-placeholder {
    height: 132px;
}

.has-client-app.page-catalog .product-grid-client-app .product-card-body {
    padding: .65rem .7rem .75rem;
}

.has-client-app.page-catalog .product-grid-client-app .product-card-body h3 {
    font-size: .82rem;
    line-height: 1.35;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.has-client-app.page-catalog .product-grid-client-app .product-card-price {
    margin: .15rem 0 .2rem;
    font-size: .88rem;
}

.has-client-app.page-catalog .product-grid-client-app .product-card-stock {
    font-size: .68rem;
    margin: 0;
}

.has-client-app.page-catalog .product-grid-client-app .product-card-action {
    display: none;
}

.has-client-app.page-catalog .catalog-list-client {
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.has-client-app.page-catalog .catalog-list-client .table thead th {
    font-size: .72rem;
    padding: .55rem .65rem;
}

.has-client-app.page-catalog .catalog-list-client .table tbody td {
    padding: .5rem .65rem;
    font-size: .82rem;
}

.has-client-app.page-catalog .catalog-pagination-pro {
    padding: .65rem .75rem;
    margin-top: .85rem;
    border-radius: var(--radius-lg);
}

.has-client-app.page-catalog .catalog-pagination-range {
    font-size: .78rem;
}

.has-client-app.page-catalog .catalog-empty {
    padding: 2rem 1rem;
}

@media (min-width: 1200px) {
    .has-client-app.page-catalog .product-grid-client-app {
        grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    }
}

@media (min-width: 1500px) {
    .has-client-app.page-catalog .product-grid-client-app {
        grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
    }
}

@media (max-width: 768px) {
    .has-client-app.page-catalog .client-catalog-head-actions {
        width: 100%;
    }

    .has-client-app.page-catalog .client-catalog-toolbar .catalog-toolbar-row {
        flex-direction: column;
        align-items: stretch;
    }

    .has-client-app.page-catalog .client-catalog-toolbar .catalog-toolbar-actions {
        justify-content: stretch;
    }

    .has-client-app.page-catalog .client-catalog-toolbar .catalog-display-controls {
        width: 100%;
        justify-content: space-between;
    }

    .has-client-app.page-catalog .catalog-controls-client .catalog-toolbar-row {
        flex-direction: column;
        align-items: stretch;
    }

    .has-client-app.page-catalog .catalog-controls-client .catalog-toolbar-actions {
        justify-content: stretch;
    }

    .has-client-app.page-catalog .catalog-controls-client .catalog-display-controls {
        width: 100%;
        justify-content: space-between;
    }

    .has-client-app.page-catalog .catalog-toolbar-print-label {
        display: none;
    }
}

.has-client-app .catalog-controls {
    padding: .55rem .75rem;
    margin-bottom: .85rem;
    border: 1px solid var(--color-border);
    box-shadow: none;
}

.has-client-app .catalog-controls .catalog-toolbar-sticky {
    position: static;
    box-shadow: none;
    background: transparent;
    padding: 0;
}

.has-client-app .catalog-toolbar-summary {
    font-size: .78rem;
}

.has-client-app .category-subgrid-pro {
    padding: .65rem .75rem;
    margin-bottom: .85rem;
}

.has-client-app .category-subgrid {
    display: flex;
    flex-wrap: nowrap;
    gap: .45rem;
    overflow-x: auto;
    padding-bottom: .15rem;
    scrollbar-width: thin;
}

.has-client-app .category-subcard {
    flex: 0 0 auto;
    min-width: 0;
    padding: .4rem .7rem;
    white-space: nowrap;
}

.has-client-app .product-grid-catalog {
    grid-template-columns: repeat(auto-fill, minmax(148px, 1fr));
    gap: .7rem;
}

@media (min-width: 1280px) {
    .has-client-app .product-grid-catalog {
        grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    }
}

.client-shortcuts-app {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .55rem;
    margin-bottom: 1rem;
}

.client-shortcuts-app .quick-action-card {
    padding: .75rem .65rem;
    min-height: 0;
}

.client-shortcuts-app .quick-action-label {
    font-size: .78rem;
}

.has-client-app .account-stats {
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: .65rem;
    margin-bottom: 1rem;
}

.has-client-app .account-stats .stat-card {
    padding: .85rem .9rem;
}

.has-client-app .account-grid {
    gap: .85rem;
}

.has-client-app .client-app-main {
    background: #f4f6f8;
}

.has-client-app .panel-card {
    border: 1px solid var(--color-border);
    box-shadow: 0 1px 2px rgba(0, 0, 0, .04);
}

@media (max-width: 768px) {
    .has-client-app .client-sidebar {
        background: #0f1114;
    }

    .client-shortcuts-app {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Client app v3 — carrito, pedidos, producto, contacto */
.client-app-topbar-fav {
    position: relative;
}

.client-app-topbar-badge {
    display: inline-flex;
    min-width: 1.1rem;
    height: 1.1rem;
    margin-left: .25rem;
    padding: 0 .3rem;
    border-radius: 999px;
    background: #f59e0b;
    color: #111;
    font-size: .65rem;
    font-weight: 700;
    align-items: center;
    justify-content: center;
}

.client-app-topbar-fav.has-alert {
    border-color: rgba(245, 158, 11, .45);
}

.client-back-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem .5rem;
    margin-bottom: .85rem;
    padding-bottom: .65rem;
    border-bottom: 1px solid var(--color-border);
    font-size: .82rem;
}

.client-back-link {
    font-weight: 600;
    color: var(--color-primary-dark);
    text-decoration: none;
}

.client-back-link:hover {
    color: var(--color-accent);
    text-decoration: none;
}

.client-back-sep {
    color: var(--color-muted);
}

.client-back-context {
    color: var(--color-muted);
    text-decoration: none;
    max-width: 14rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.client-back-context:hover {
    color: var(--color-text);
    text-decoration: none;
}

.has-client-app .product-page-client-app .product-bp-shell {
    max-width: none;
}

.has-client-app .product-page-client-app .product-overview-panel {
    border-radius: var(--radius-lg);
}

.has-client-app .product-page-client-app .product-buybox-col {
    position: sticky;
    top: calc(var(--client-topbar-height) + .75rem);
    align-self: start;
}

.has-client-app .cart-layout {
    grid-template-columns: minmax(0, 1fr) minmax(260px, 300px);
    gap: .85rem;
    align-items: start;
}

.has-client-app .cart-summary {
    position: sticky;
    top: calc(var(--client-topbar-height) + .75rem);
}

.has-client-app .cart-table-wrap:not(.client-orders-table-wrap) {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.has-client-app .cart-actions {
    flex-wrap: wrap;
    gap: .45rem;
}

.has-client-app .checkout-steps {
    display: flex;
    flex-direction: row;
    padding: .5rem .65rem;
    margin-bottom: .85rem;
    gap: 0;
    border: 1px solid var(--color-border);
    box-shadow: none;
}

.has-client-app .checkout-step {
    flex: 1;
    border: 0;
    padding: .45rem .35rem;
    font-size: .78rem;
}

.has-client-app .checkout-step .step-num {
    width: 1.35rem;
    height: 1.35rem;
    font-size: .68rem;
}

.has-client-app .checkout-grid {
    grid-template-columns: minmax(0, 1fr) minmax(260px, 300px);
    gap: .85rem;
    align-items: start;
}

.has-client-app .checkout-summary {
    position: sticky;
    top: calc(var(--client-topbar-height) + .75rem);
}

.has-client-app .orders-summary-grid {
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: .55rem;
    margin-bottom: .85rem;
}

.has-client-app .orders-summary-grid .stat-card {
    padding: .7rem .75rem;
}

.has-client-app .orders-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    padding: .65rem .85rem;
    margin-bottom: .85rem;
}

.has-client-app .orders-search-form {
    flex: 1;
    min-width: min(100%, 14rem);
}

.has-client-app .orders-search-form input[type="search"] {
    flex: 1;
    min-width: 0;
}

.has-client-app .cart-table-wrap .table thead th {
    font-size: .72rem;
    padding: .55rem .65rem;
}

.has-client-app .cart-table-wrap .table tbody td {
    padding: .55rem .65rem;
    font-size: .84rem;
}

.has-client-app .order-meta-grid {
    gap: .65rem;
    margin-bottom: .85rem;
}

.has-client-app .order-meta-grid .meta-card {
    padding: .75rem .85rem;
}

.has-client-app .product-grid-client-app {
    grid-template-columns: repeat(auto-fill, minmax(148px, 1fr));
    gap: .7rem;
}

.has-client-app .favorites-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    padding: .65rem .85rem;
    margin-bottom: .85rem;
}

.has-client-app .quick-order-page-client-app .quick-order-grid {
    grid-template-columns: 1fr;
    gap: .85rem;
}

.has-client-app .quick-order-page-client-app .feature-panel {
    padding: 1rem 1.1rem;
}

.has-client-app .quick-order-page-client-app .code-input {
    min-height: 8rem;
    font-size: .82rem;
}

.has-client-app .contact-page-client-app .contact-grid-v2 {
    grid-template-columns: minmax(0, 1fr) minmax(240px, 280px);
    gap: .85rem;
}

.has-client-app .contact-page-client-app .contact-aside {
    position: sticky;
    top: calc(var(--client-topbar-height) + .75rem);
    align-self: start;
}

.has-client-app .contact-page-client-app .contact-form-panel,
.has-client-app .contact-page-client-app .contact-info-panel {
    border-radius: var(--radius-lg);
}

.has-client-app .empty-state {
    padding: 2rem 1.25rem;
    text-align: center;
}

.has-client-app .empty-state .btn-lg {
    min-height: 2.5rem;
    padding: .55rem 1rem;
    font-size: .88rem;
}

.has-client-app .pagination {
    margin-top: 1rem;
    gap: .35rem;
}

.has-client-app .pagination a {
    min-width: 2rem;
    height: 2rem;
    font-size: .82rem;
}

@media (max-width: 900px) {
    .has-client-app .cart-layout,
    .has-client-app .checkout-grid,
    .has-client-app .contact-page-client-app .contact-grid-v2 {
        grid-template-columns: 1fr;
    }

    .has-client-app .cart-summary,
    .has-client-app .checkout-summary,
    .has-client-app .contact-page-client-app .contact-aside {
        position: static;
    }

    .has-client-app .product-page-client-app .product-buybox-col {
        position: static;
    }

    .client-app-topbar-fav span:not(.client-app-topbar-badge) {
        display: none;
    }

    .client-app-topbar-fav {
        min-width: 2.35rem;
        justify-content: center;
        padding: 0;
    }

    .client-app-topbar-fav::before {
        content: '★';
        font-size: .95rem;
    }

    .client-app-topbar-badge {
        position: absolute;
        top: -4px;
        right: -4px;
        margin: 0;
    }
}

@media (max-width: 640px) {
    .has-client-app .cart-table thead {
        display: none;
    }

    .has-client-app .cart-table tbody tr {
        display: grid;
        grid-template-columns: 1fr auto;
        gap: .35rem .65rem;
        padding: .75rem .65rem;
        border-bottom: 1px solid var(--color-border);
    }

    .has-client-app .cart-table tbody td {
        display: block;
        padding: 0;
        border: 0;
    }

    .has-client-app .cart-table tbody td:first-child {
        grid-column: 1 / -1;
    }

    .has-client-app .cart-table tbody td:last-child {
        grid-column: 2;
        grid-row: 2;
        align-self: center;
    }

    .has-client-app .orders-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .has-client-app .cart-table-wrap .table tbody td:nth-child(2)::before {
        content: attr(data-label);
        font-weight: 600;
        margin-right: .35rem;
    }
}

/* Client app — ficha producto B2B */
.has-client-app.page-product {
    --product-sticky-top: calc(var(--client-topbar-height, 3.35rem) + .65rem);
}

.has-client-app.page-product .client-app-main {
    padding-bottom: 2rem;
}

.has-client-app.page-product .product-page {
    margin-bottom: 0;
}

.has-client-app.page-product .product-bp-shell {
    padding: 0;
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: 0 1px 2px rgba(0, 0, 0, .04);
    overflow: hidden;
}

.has-client-app.page-product .client-product-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem .85rem;
    margin-bottom: .85rem;
    padding: .55rem .75rem;
    background: var(--color-surface-subtle);
    border: 0;
    border-radius: var(--radius-lg);
    font-size: .78rem;
    color: var(--color-muted);
}

.has-client-app.page-product .client-product-meta strong {
    color: var(--color-text);
}

.has-client-app.page-product .client-product-meta-stock {
    color: var(--color-primary-dark);
}

.has-client-app.page-product .client-product-meta-oos {
    color: #b45309;
    font-weight: 600;
}

.has-client-app.page-product .client-product-meta-fav {
    margin-left: auto;
    padding: .15rem .45rem;
    border-radius: 999px;
    background: rgba(245, 158, 11, .12);
    color: #92400e;
    font-weight: 600;
    font-size: .72rem;
}

.has-client-app.page-product .client-product-overview {
    padding: 0 1rem 1rem;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.has-client-app.page-product .product-page-bp .product-detail-grid {
    gap: clamp(.85rem, 2vw, 1.35rem);
}

@media (min-width: 992px) {
    .has-client-app.page-product .product-page-bp .product-detail-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .has-client-app.page-product .product-page-bp .product-aside-col {
        position: sticky;
        top: var(--product-sticky-top);
    }
}

.has-client-app.page-product .product-gallery-bp.has-thumbs-rail .product-gallery-frame,
.has-client-app.page-product .product-gallery-bp.is-single .product-gallery-frame {
    min-height: clamp(240px, 32vw, 380px);
    background: #f8f9fa;
    border-color: var(--color-border);
    border-radius: var(--radius-lg);
}

.has-client-app.page-product .product-gallery-bp .product-gallery-thumb {
    width: 64px;
    height: 64px;
    flex: 0 0 64px;
}

.has-client-app.page-product .product-gallery-bp.has-thumbs-rail .product-gallery-body {
    grid-template-columns: 64px minmax(0, 1fr);
}

.has-client-app.page-product .product-page-bp .product-bp-info {
    border-radius: var(--radius-lg);
    border-color: var(--color-border);
    padding: clamp(.95rem, 2vw, 1.25rem);
}

.has-client-app.page-product .product-page-bp .product-bp-title {
    font-size: clamp(1.05rem, 2vw, 1.35rem);
    margin-bottom: .45rem;
}

.has-client-app.page-product .product-page-bp .product-bp-short-desc {
    margin-bottom: .65rem;
}

.has-client-app.page-product .product-page-bp .product-bp-short-text {
    font-size: .84rem;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.has-client-app.page-product .product-page-bp .product-bp-badges {
    gap: .35rem;
    margin-bottom: .65rem;
}

.has-client-app.page-product .product-page-bp .product-bp-badge {
    font-size: .68rem;
    padding: .2rem .5rem;
}

.has-client-app.page-product .product-page-bp .product-bp-price-panel {
    margin-bottom: .75rem;
    padding: .75rem .85rem;
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, rgba(47, 181, 210, .08) 0%, rgba(47, 181, 210, .02) 100%);
    border: 1px solid rgba(47, 181, 210, .22);
}

.has-client-app.page-product .product-page-bp .product-bp-price-panel .price-lg {
    font-size: clamp(1.35rem, 2.5vw, 1.75rem);
}

.has-client-app.page-product .product-page-bp .product-bp-price-panel .product-stock-meta {
    font-size: .78rem;
}

.has-client-app.page-product .product-page-bp .product-bp-actions {
    display: grid;
    grid-template-columns: minmax(7rem, 8.5rem) minmax(0, 1fr);
    gap: .55rem;
    align-items: end;
}

.has-client-app.page-product .product-page-bp .product-bp-add-btn {
    grid-column: 1 / -1;
    width: 100%;
    min-height: 2.75rem;
    border-radius: var(--radius-lg);
    font-size: .92rem;
}

.has-client-app.page-product .product-page-bp .product-bp-fav-form {
    grid-column: 1 / -1;
    margin: 0;
}

.has-client-app.page-product .product-page-bp .product-bp-fav-btn {
    width: 100%;
    min-height: 2.35rem;
    font-size: .82rem;
}

.has-client-app.page-product .product-bp-sku-compact {
    margin: .65rem 0 0;
    padding-top: .65rem;
    border-top: 1px dashed var(--color-border);
    font-size: .78rem;
}

.has-client-app.page-product .product-bp-sku-compact:empty,
.has-client-app.page-product .product-bp-sku-compact:not(:has(span:not(.visually-hidden))) {
    display: none;
}

.has-client-app.page-product .product-bp-utils-compact {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin-top: .65rem;
}

.has-client-app.page-product .product-bp-utils-compact .product-bp-utils-btn {
    font-size: .72rem;
    padding: .35rem .55rem;
}

.has-client-app.page-product .product-quick-links-compact {
    margin-top: .65rem;
    padding-top: .65rem;
    border-top: 1px solid var(--color-border);
}

.has-client-app.page-product .product-quick-links-compact .product-quick-links-label {
    font-size: .68rem;
    margin-bottom: .35rem;
}

.has-client-app.page-product .product-quick-links-compact .product-action-row {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
}

.has-client-app.page-product .product-quick-links-compact .product-action-btn {
    font-size: .78rem;
    padding: .45rem .65rem;
}

.has-client-app.page-product .client-product-subnav {
    position: sticky;
    top: var(--product-sticky-top);
    z-index: 15;
    margin: 0;
    padding: .45rem .65rem;
    background: transparent;
    border: 0;
    border-top: 1px solid var(--color-border);
    border-radius: 0;
    box-shadow: none;
}

.has-client-app.page-product .client-product-subnav .product-subnav-links {
    display: flex;
    flex-wrap: nowrap;
    gap: .25rem;
    overflow-x: auto;
    scrollbar-width: thin;
}

.has-client-app.page-product .client-product-subnav .product-subnav-link {
    flex: 0 0 auto;
    font-size: .76rem;
    padding: .4rem .65rem;
    white-space: nowrap;
    border-radius: var(--radius);
}

.has-client-app.page-product .product-bp-content-section,
.has-client-app.page-product .product-bp-reviews-section,
.has-client-app.page-product .client-product-related {
    margin-top: .85rem;
    padding: 1rem 1.1rem;
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
}

.has-client-app.page-product .product-scroll-bar {
    top: var(--client-topbar-height);
}

.has-client-app.page-product .product-mobile-cta {
    z-index: 125;
    border-top: 1px solid var(--color-border);
    box-shadow: 0 -4px 16px rgba(0, 0, 0, .08);
}

.has-client-app.page-product .client-product-related .product-bp-related-header {
    margin-bottom: .75rem;
}

.has-client-app.page-product .client-product-related .product-bp-related-sub {
    font-size: .82rem;
}

@media (max-width: 991px) {
    .has-client-app.page-product .product-page-bp .product-bp-actions {
        grid-template-columns: 1fr;
    }

    .has-client-app.page-product .product-gallery-bp.has-thumbs-rail .product-gallery-body {
        grid-template-columns: 1fr;
    }

    .has-client-app.page-product .product-gallery-bp.has-thumbs-rail .product-gallery-thumbs {
        flex-direction: row;
        max-height: none;
        overflow-x: auto;
        overflow-y: hidden;
        grid-column: 1 / -1;
        order: 2;
    }

    .has-client-app.page-product .product-gallery-bp.has-thumbs-rail .product-gallery-frame {
        grid-column: 1 / -1;
        order: 1;
        min-height: clamp(220px, 55vw, 320px);
    }

    .has-client-app.page-product .client-product-meta-fav {
        margin-left: 0;
    }
}

/* Client app — ficha producto B2B v2 */
.has-client-app.page-product .client-product-head {
    margin-bottom: 0;
    padding: .85rem 1rem .65rem;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.has-client-app.page-product .client-product-head .client-back-bar {
    margin-bottom: .45rem;
    padding-bottom: 0;
    border-bottom: 0;
    font-size: .78rem;
}

.has-client-app.page-product .client-product-head .client-product-meta {
    margin-bottom: 0;
    padding: .45rem .55rem;
    background: var(--color-surface-subtle);
    border-radius: var(--radius);
    font-size: .74rem;
    gap: .35rem .65rem;
}

.has-client-app.page-product .client-product-meta-ean,
.has-client-app.page-product .client-product-meta-min {
    font-size: .72rem;
}

.has-client-app.page-product .client-product-meta-min {
    padding: .1rem .4rem;
    border-radius: 999px;
    background: rgba(47, 181, 210, .1);
    color: var(--color-primary-dark);
    font-weight: 600;
}

.has-client-app.page-product .client-product-meta-group {
    padding: .1rem .45rem;
    border-radius: 999px;
    background: rgba(17, 17, 17, .06);
    color: var(--color-ink);
    font-size: .72rem;
    font-weight: 600;
}

.has-client-app.page-product .product-page-bp .product-bp-info {
    border: 0;
    border-radius: 0;
    padding: 0;
    background: transparent;
    box-shadow: none;
}

.has-client-app.page-product .product-page-bp .product-bp-title {
    font-size: clamp(1rem, 1.8vw, 1.25rem);
    line-height: 1.3;
}

.has-client-app.page-product .product-page-bp .product-bp-short-text {
    -webkit-line-clamp: 2;
    font-size: .82rem;
}

.has-client-app.page-product .product-page-bp .product-bp-price-panel .product-stock-meta {
    display: none;
}

.has-client-app.page-product .product-page-bp .product-bp-actions-client {
    margin-top: .55rem;
}

.has-client-app.page-product .product-page-bp .product-bp-actions-primary {
    display: flex;
    align-items: stretch;
    gap: .45rem;
}

.has-client-app.page-product .product-page-bp .product-bp-add-btn {
    flex: 1;
    min-height: 2.65rem;
    font-size: .88rem;
}

.has-client-app.page-product .product-page-bp .product-bp-fav-form-inline {
    margin: 0;
    flex-shrink: 0;
}

.has-client-app.page-product .product-page-bp .product-bp-fav-btn-icon {
    width: 2.65rem;
    min-width: 2.65rem;
    height: 2.65rem;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-lg);
}

.has-client-app.page-product .product-page-bp .product-bp-fav-btn-icon.is-favorite {
    color: #d97706;
    border-color: rgba(245, 158, 11, .45);
    background: rgba(245, 158, 11, .1);
}

.has-client-app.page-product .client-product-toolbar {
    margin-top: .75rem;
    padding-top: .75rem;
    border-top: 1px dashed var(--color-border);
}

.has-client-app.page-product .client-product-toolbar-row {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}

.has-client-app.page-product .client-product-tool-form {
    margin: 0;
}

.has-client-app.page-product .client-product-tool-btn,
.has-client-app.page-product .client-product-tool-link {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    padding: .38rem .6rem;
    font-size: .72rem;
    font-weight: 600;
    color: var(--color-primary-dark);
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    text-decoration: none;
    cursor: pointer;
    transition: background .15s, border-color .15s, color .15s;
}

.has-client-app.page-product .client-product-tool-btn:hover,
.has-client-app.page-product .client-product-tool-link:hover {
    background: #fff;
    border-color: rgba(47, 181, 210, .35);
    color: var(--color-ink);
    text-decoration: none;
}

.has-client-app.page-product .client-product-tool-btn-accent {
    background: rgba(47, 181, 210, .1);
    border-color: rgba(47, 181, 210, .28);
}

.has-client-app.page-product .client-product-tool-btn.is-copied {
    border-color: rgba(34, 197, 94, .4);
    color: #15803d;
}

.has-client-app.page-product .product-desc-sidebar {
    display: none;
}

.has-client-app.page-product .product-desc-layout.has-toc {
    grid-template-columns: 1fr;
}

.has-client-app.page-product .product-scroll-bar {
    display: none !important;
}

@media (max-width: 991px) {
    .has-client-app.page-product .product-mobile-cta {
        display: flex !important;
        left: 0;
        z-index: 125;
        padding: .65rem var(--client-content-padding, 1rem) calc(.65rem + env(safe-area-inset-bottom, 0));
        background: rgba(255, 255, 255, .96);
        backdrop-filter: blur(8px);
    }

    .has-client-app.page-product .product-mobile-cta .btn-primary {
        min-height: 2.65rem;
        background: var(--color-ink);
        border-color: var(--color-ink);
    }

    .has-client-app.page-product .client-app-main {
        padding-bottom: calc(4.5rem + env(safe-area-inset-bottom, 0));
    }
}

.has-client-app.page-product #product-overview,
.has-client-app.page-product #product-specs,
.has-client-app.page-product #product-content,
.has-client-app.page-product #product-reviews,
.has-client-app.page-product #product-related {
    scroll-margin-top: calc(var(--client-topbar-height, 3.35rem) + 2.5rem);
}

.has-client-app.page-product .client-product-title-row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: .5rem 1rem;
    margin-bottom: .45rem;
}

.has-client-app.page-product .client-product-title-row .product-bp-title {
    flex: 1 1 12rem;
    min-width: 0;
    margin: 0;
}

.has-client-app.page-product .client-product-price-block {
    flex: 0 0 auto;
    display: flex;
    align-items: baseline;
    gap: .25rem;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    line-height: 1;
}

.has-client-app.page-product .client-product-price {
    font-size: clamp(1.35rem, 2.5vw, 1.75rem);
    font-weight: 800;
    color: var(--color-ink);
    letter-spacing: -.02em;
}

.has-client-app.page-product .client-product-price-ht {
    font-size: .72rem;
    font-weight: 700;
    color: var(--color-muted);
    text-transform: uppercase;
    letter-spacing: .04em;
}

.has-client-app.page-product .client-product-overview {
    padding: .75rem;
}

.has-client-app.page-product .product-page-bp .product-detail-grid {
    grid-template-columns: 1fr;
    gap: 1rem;
}

.has-client-app.page-product .product-page-bp .product-aside-col {
    position: static;
}

@media (min-width: 1024px) {
    .has-client-app.page-product .product-page-bp .product-detail-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: clamp(1rem, 2vw, 1.75rem);
        align-items: start;
    }

    .has-client-app.page-product .product-page-bp .product-aside-col,
    .has-client-app.page-product .product-page-bp .product-buybox-col {
        width: 100%;
        max-width: none;
    }

    .has-client-app.page-product .product-buybox-col {
        position: sticky;
        top: var(--product-sticky-top);
    }
}

.has-client-app.page-product .product-gallery-bp.has-thumbs-rail .product-gallery-frame,
.has-client-app.page-product .product-gallery-bp.is-single .product-gallery-frame {
    min-height: clamp(280px, 42vw, 520px);
    padding: .85rem;
}

.has-client-app.page-product .product-gallery-bp.has-thumbs-rail .product-gallery-body {
    grid-template-columns: 72px minmax(0, 1fr);
    gap: .65rem;
}

.has-client-app.page-product .product-gallery-bp .product-gallery-thumb {
    width: 72px;
    height: 72px;
    flex: 0 0 72px;
}

.has-client-app.page-product .product-gallery-bp.has-thumbs-rail .product-gallery-thumbs {
    max-height: min(520px, 58vh);
}

.has-client-app.page-product .product-gallery-bp .product-gallery-frame .product-image {
    max-height: min(68vh, 560px);
    width: auto;
    max-width: 100%;
    margin: 0 auto;
    object-fit: contain;
}

.has-client-app.page-product .product-gallery-bp .product-gallery-zoom {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.has-client-app.page-product .product-page-bp .product-bp-actions-primary {
    position: static;
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
}

.has-client-app.page-product .client-product-subnav {
    top: calc(var(--client-topbar-height, 3.35rem) - 1px);
}

@media (max-width: 768px) {
    .has-client-app.page-product .client-product-toolbar-row {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .has-client-app.page-product .client-product-tool-form {
        grid-column: 1 / -1;
    }

    .has-client-app.page-product .client-product-tool-form .client-product-tool-btn-accent {
        width: 100%;
        justify-content: center;
    }

    .has-client-app.page-product .product-gallery-bp.has-thumbs-rail .product-gallery-body {
        grid-template-columns: 1fr;
    }

    .has-client-app.page-product .product-gallery-bp.has-thumbs-rail .product-gallery-thumbs {
        flex-direction: row;
        max-height: none;
        overflow-x: auto;
        overflow-y: hidden;
        order: 2;
    }

    .has-client-app.page-product .product-gallery-bp.has-thumbs-rail .product-gallery-frame {
        order: 1;
        min-height: clamp(240px, 58vw, 380px);
    }
}

/* Client app — ficha producto UX v3 */
.has-client-app.page-product .client-app-main {
    padding: clamp(1rem, 2.5vw, 1.35rem) clamp(1rem, 2.5vw, 1.5rem) 2.75rem;
}

.has-client-app.page-product .product-bp-shell {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.has-client-app.page-product .client-product-head {
    margin-bottom: 0;
    padding: .85rem 1rem .65rem;
}

.has-client-app.page-product .client-product-head .client-back-bar {
    margin-bottom: .65rem;
}

.has-client-app.page-product .client-product-head .client-product-meta {
    padding: .55rem .7rem;
    gap: .4rem .75rem;
}

.has-client-app.page-product .client-product-overview {
    padding: 0 1rem 1rem;
}

.has-client-app.page-product .product-page-bp .product-detail-grid {
    gap: clamp(1.15rem, 2.5vw, 1.75rem);
}

.has-client-app.page-product .product-page-bp .product-bp-header {
    margin-bottom: 1.1rem;
    padding-bottom: 1.1rem;
    border-bottom: 1px solid var(--color-border);
}

.has-client-app.page-product .client-product-title-row {
    flex-direction: column;
    align-items: stretch;
    gap: .75rem;
    margin-bottom: 0;
}

.has-client-app.page-product .client-product-title-row .product-bp-title {
    flex: none;
    font-size: clamp(1.15rem, 2.2vw, 1.55rem);
    line-height: 1.28;
    letter-spacing: -.02em;
}

.has-client-app.page-product .client-product-price-block {
    align-self: flex-start;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.has-client-app.page-product .client-product-price {
    font-size: clamp(1.45rem, 2.8vw, 1.95rem);
}

.has-client-app.page-product .product-page-bp .product-bp-short-desc {
    margin-top: .85rem;
    margin-bottom: .85rem;
}

.has-client-app.page-product .product-page-bp .product-bp-short-text {
    -webkit-line-clamp: 4;
    font-size: .875rem;
    line-height: 1.55;
    color: var(--color-text);
}

.has-client-app.page-product .product-page-bp .product-bp-read-more {
    margin-top: .5rem;
    font-size: .8rem;
}

.has-client-app.page-product .product-page-bp .product-bp-badges {
    gap: .45rem;
    margin-bottom: 0;
}

.has-client-app.page-product .product-page-bp .product-bp-badge {
    font-size: .72rem;
    padding: .3rem .65rem;
    border-radius: 999px;
}

.has-client-app.page-product .client-product-purchase {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-top: .85rem;
    padding: 1rem 0 0;
    background: transparent;
    border: 0;
    border-top: 1px solid var(--color-border);
    border-radius: 0;
    box-shadow: none;
}

.has-client-app.page-product .client-product-purchase-form {
    display: flex;
    flex-direction: column;
    gap: .85rem;
}

.has-client-app.page-product .client-product-purchase .product-field {
    margin-bottom: 0;
}

.has-client-app.page-product .client-product-purchase .product-field-control {
    padding: .65rem .85rem;
    border-radius: var(--radius-lg);
    font-size: .9rem;
}

.has-client-app.page-product .client-product-purchase .qty-stepper {
    border-radius: var(--radius-lg);
    background: #fff;
}

.has-client-app.page-product .client-product-purchase .qty-step {
    min-width: 2.75rem;
    font-size: 1.15rem;
    color: var(--color-ink);
}

.has-client-app.page-product .client-product-purchase .qty-stepper-input {
    min-width: 3.25rem;
    font-size: 1.05rem;
    font-weight: 700;
    text-align: center;
}

.has-client-app.page-product .product-page-bp .product-bp-actions-client {
    margin-top: 0;
}

.has-client-app.page-product .product-page-bp .product-bp-actions {
    display: block;
}

.has-client-app.page-product .product-page-bp .product-bp-actions-primary {
    gap: .65rem;
}

.has-client-app.page-product .product-page-bp .product-bp-add-btn {
    min-height: 3rem;
    padding: .85rem 1.25rem;
    font-size: .95rem;
    font-weight: 700;
    border-radius: var(--radius-lg);
    box-shadow: 0 2px 8px rgba(0, 0, 0, .14);
}

.has-client-app.page-product .product-page-bp .product-bp-add-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(0, 0, 0, .18);
}

.has-client-app.page-product .product-page-bp .product-bp-add-btn:active {
    transform: translateY(0);
}

.has-client-app.page-product .product-page-bp .product-bp-fav-btn-icon {
    width: 3rem;
    min-width: 3rem;
    height: 3rem;
    border-radius: var(--radius-lg);
    border-width: 1.5px;
}

.has-client-app.page-product .client-product-toolbar {
    margin-top: 1.15rem;
    padding-top: 1.15rem;
    border-top: 1px solid var(--color-border);
}

.has-client-app.page-product .client-product-toolbar-label {
    margin: 0 0 .65rem;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--color-muted);
}

.has-client-app.page-product .client-product-toolbar-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .55rem;
}

.has-client-app.page-product .client-product-tool-form {
    grid-column: 1 / -1;
}

.has-client-app.page-product .client-product-tool-btn,
.has-client-app.page-product .client-product-tool-link {
    justify-content: center;
    min-height: 2.65rem;
    padding: .55rem .85rem;
    font-size: .78rem;
    border-radius: var(--radius-lg);
}

.has-client-app.page-product .client-product-tool-btn-accent {
    font-weight: 700;
}

.has-client-app.page-product .client-product-subnav {
    margin: 0;
    padding: .45rem .65rem;
}

.has-client-app.page-product .client-product-subnav .product-subnav-link {
    font-size: .8rem;
    padding: .5rem .85rem;
}

.has-client-app.page-product .product-bp-content-section,
.has-client-app.page-product .product-bp-reviews-section,
.has-client-app.page-product .client-product-related {
    margin-top: 1.15rem;
    padding: 1.25rem 1.35rem;
}

.has-client-app.page-product .product-gallery-bp.has-thumbs-rail .product-gallery-frame,
.has-client-app.page-product .product-gallery-bp.is-single .product-gallery-frame {
    min-height: clamp(240px, 36vw, 420px);
    padding: 1rem;
    background: #fafbfc;
}

.has-client-app.page-product .product-gallery-bp .product-gallery-thumb {
    border-radius: var(--radius);
}

@media (min-width: 1024px) {
    .has-client-app.page-product .client-product-purchase-form:has(.product-field:not(.qty-field)) {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: end;
        gap: 1rem;
    }

    .has-client-app.page-product .client-product-purchase-form .qty-field {
        min-width: 9.5rem;
    }
}

@media (max-width: 767px) {
    .has-client-app.page-product .client-product-toolbar-row {
        grid-template-columns: 1fr;
    }

    .has-client-app.page-product .product-page-bp .product-bp-add-btn {
        min-height: 2.85rem;
    }
}

/* Client product — botones (override conflictos legacy) */
.has-client-app.page-product .client-product-actions {
    display: block;
    margin: 0;
}

.has-client-app.page-product .client-product-actions-row {
    display: flex;
    align-items: stretch;
    gap: .65rem;
}

.has-client-app.page-product .client-product-actions-row .product-bp-fav-form-inline {
    display: flex;
    flex: 0 0 auto;
    width: auto;
    margin: 0;
}

.has-client-app.page-product .client-product-actions-row .product-bp-add-btn {
    flex: 1 1 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    width: auto;
    min-width: 0;
    min-height: 3rem;
    padding: .75rem 1.15rem;
    border-radius: var(--radius-lg);
    background: var(--color-ink) !important;
    border: 1px solid var(--color-ink) !important;
    color: #fff !important;
    font-size: .92rem;
    font-weight: 700;
    line-height: 1.2;
    box-shadow: none;
    grid-column: unset;
    transform: none;
}

.has-client-app.page-product .client-product-actions-row .product-bp-add-btn svg {
    flex-shrink: 0;
}

.has-client-app.page-product .client-product-actions-row .product-bp-add-btn:hover {
    background: #333 !important;
    border-color: #333 !important;
    color: #fff !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, .12);
}

.has-client-app.page-product .client-product-actions-row .product-bp-add-btn:active {
    transform: translateY(0);
    box-shadow: none;
}

.has-client-app.page-product .client-product-actions-row .product-bp-fav-btn-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    min-width: 3rem;
    height: 3rem;
    padding: 0;
    border-radius: var(--radius-lg);
    border: 1.5px solid var(--color-border);
    background: #fff;
    color: var(--color-ink);
    box-shadow: none;
    transform: none;
}

.has-client-app.page-product .client-product-actions-row .product-bp-fav-btn-icon:hover {
    background: var(--color-surface-subtle);
    border-color: var(--color-ink);
    color: var(--color-ink);
    transform: none;
    box-shadow: none;
}

.has-client-app.page-product .client-product-actions-row .product-bp-fav-btn-icon.is-favorite {
    color: #d97706;
    border-color: rgba(245, 158, 11, .45);
    background: rgba(245, 158, 11, .1);
}

.has-client-app.page-product .client-product-toolbar-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .6rem;
    align-items: stretch;
}

.has-client-app.page-product .client-product-tool-form {
    display: flex;
    margin: 0;
    grid-column: 1 / -1;
}

.has-client-app.page-product .client-product-tool-form .client-product-tool-btn {
    width: 100%;
}

.has-client-app.page-product .client-product-toolbar-row .client-product-tool-btn,
.has-client-app.page-product .client-product-toolbar-row .client-product-tool-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    width: 100%;
    min-height: 2.75rem;
    padding: .65rem .85rem;
    font: inherit;
    font-size: .78rem;
    font-weight: 600;
    line-height: 1.25;
    text-align: center;
    white-space: normal;
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    background: #fff;
    color: var(--color-ink);
    box-sizing: border-box;
    cursor: pointer;
    text-decoration: none;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
}

.has-client-app.page-product .client-product-toolbar-row .client-product-tool-btn:hover,
.has-client-app.page-product .client-product-toolbar-row .client-product-tool-link:hover {
    background: var(--color-surface-subtle);
    border-color: rgba(47, 181, 210, .35);
    color: var(--color-ink);
    text-decoration: none;
    transform: none;
    box-shadow: none;
}

.has-client-app.page-product .client-product-toolbar-row .client-product-tool-btn-accent {
    background: var(--color-ink);
    border-color: var(--color-ink);
    color: #fff;
    font-weight: 700;
}

.has-client-app.page-product .client-product-toolbar-row .client-product-tool-btn-accent:hover {
    background: #333;
    border-color: #333;
    color: #fff;
}

.has-client-app.page-product .client-product-toolbar-row .client-product-tool-btn.is-copied {
    border-color: rgba(34, 197, 94, .45);
    background: rgba(34, 197, 94, .08);
    color: #15803d;
}

.has-client-app.page-product .client-product-purchase .qty-stepper {
    display: flex;
    align-items: stretch;
    border: 1px solid var(--color-border);
    overflow: hidden;
}

.has-client-app.page-product .client-product-purchase .qty-step {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.75rem;
    padding: 0;
    border: 0;
    background: var(--color-surface-subtle);
    font-size: 1.1rem;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
}

.has-client-app.page-product .client-product-purchase .qty-step:hover {
    background: var(--color-border);
}

.has-client-app.page-product .client-product-purchase .qty-stepper-input {
    flex: 1;
    min-width: 2.5rem;
    border: 0;
    border-left: 1px solid var(--color-border);
    border-right: 1px solid var(--color-border);
    border-radius: 0;
    background: #fff;
}

@media (max-width: 767px) {
    .has-client-app.page-product .client-product-actions-row {
        flex-direction: row;
    }

    .has-client-app.page-product .client-product-actions-row .product-bp-add-btn {
        min-height: 2.85rem;
        font-size: .88rem;
        padding: .7rem 1rem;
    }

    .has-client-app.page-product .client-product-actions-row .product-bp-fav-btn-icon {
        width: 2.85rem;
        min-width: 2.85rem;
        height: 2.85rem;
    }
}

/* Client dashboard — /mon-compte */
.has-client-app.page-account .client-app-main {
    padding-top: .85rem;
}

.client-dashboard {
    display: grid;
    gap: .85rem;
}

.client-dashboard-hero {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem 1.25rem;
    padding: 1.1rem 1.2rem;
    background: linear-gradient(135deg, #0f1419 0%, #1a2332 55%, #0d2530 100%);
    color: #fff;
    border: 0;
}

.client-dashboard-eyebrow {
    margin: 0 0 .3rem;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--color-accent);
}

.client-dashboard-title {
    margin: 0;
    font-size: clamp(1.2rem, 2.2vw, 1.55rem);
    line-height: 1.2;
    color: #fff;
}

.client-dashboard-sub {
    margin: .35rem 0 0;
    font-size: .84rem;
    color: rgba(255, 255, 255, .72);
}

.client-dashboard-sub strong {
    color: #fff;
}

.client-dashboard-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}

.client-dashboard-hero-actions .btn-primary {
    background: var(--color-accent);
    border-color: var(--color-accent);
    color: var(--color-ink);
}

.client-dashboard-hero-actions .btn:not(.btn-primary) {
    background: rgba(255, 255, 255, .08);
    border-color: rgba(255, 255, 255, .2);
    color: #fff;
}

.client-dashboard-hero-actions .btn-ghost {
    color: rgba(255, 255, 255, .85);
}

.client-dashboard-alerts {
    display: grid;
    gap: .5rem;
}

.client-dashboard-alert {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .5rem .75rem;
    padding: .65rem .85rem;
    border-radius: var(--radius-lg);
    font-size: .84rem;
}

.client-dashboard-alert-cart {
    background: rgba(34, 197, 94, .1);
    border: 1px solid rgba(34, 197, 94, .25);
}

.client-dashboard-alert-warn {
    background: rgba(245, 158, 11, .1);
    border: 1px solid rgba(245, 158, 11, .28);
}

.client-dashboard-kpis {
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
    gap: .6rem;
    margin: 0;
}

.client-dashboard-kpis .stat-card {
    padding: .75rem .85rem;
}

.client-dashboard-kpis .stat-value {
    font-size: clamp(1rem, 2vw, 1.25rem);
}

.client-dashboard-kpis .stat-label {
    font-size: .72rem;
}

.client-dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(240px, 320px);
    gap: .85rem;
    align-items: start;
}

.client-dashboard-section-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: .65rem 1rem;
    margin-bottom: .85rem;
}

.client-dashboard-section-head h2,
.client-dashboard-status-card h2,
.client-dashboard-credit-card h2,
.client-dashboard-top-products h2 {
    margin: 0;
    font-size: .95rem;
}

.client-dashboard-section-sub {
    margin: .2rem 0 0;
    font-size: .78rem;
}

.client-dashboard-month-compare {
    display: flex;
    gap: .75rem;
}

.client-dashboard-compare-item {
    display: grid;
    gap: .1rem;
    text-align: right;
}

.client-dashboard-compare-label {
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--color-muted);
}

.client-dashboard-compare-meta {
    font-size: .72rem;
    color: var(--color-muted);
}

.client-dashboard-delta {
    font-size: .72rem;
    font-weight: 700;
}

.client-dashboard-delta.is-up {
    color: #15803d;
}

.client-dashboard-delta.is-down {
    color: #b45309;
}

.client-dashboard-chart-card {
    padding: 1rem 1.1rem 1.15rem;
}

.client-dashboard-chart {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: .55rem;
    align-items: end;
    min-height: 210px;
    padding-top: .25rem;
}

.client-dashboard-chart-col {
    display: grid;
    gap: .3rem;
    justify-items: center;
    text-align: center;
    min-width: 0;
}

.client-dashboard-chart-bar-wrap {
    display: flex;
    align-items: flex-end;
    width: 100%;
    max-width: 48px;
    height: 120px;
    padding: .3rem;
    border-radius: var(--radius);
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
}

.client-dashboard-chart-bar {
    width: 100%;
    height: var(--bar-h, 8%);
    min-height: 6px;
    border-radius: calc(var(--radius) - 2px);
    background: linear-gradient(180deg, var(--color-accent) 0%, rgba(47, 181, 210, .55) 100%);
    transition: height .35s ease;
}

.client-dashboard-chart-amount {
    font-size: .68rem;
    font-weight: 700;
    color: var(--color-text);
    white-space: nowrap;
}

.client-dashboard-chart-month {
    font-size: .66rem;
    font-weight: 600;
    color: var(--color-muted);
}

.client-dashboard-chart-orders {
    font-size: .62rem;
}

.client-dashboard-aside {
    display: grid;
    gap: .85rem;
    align-content: start;
}

.client-dashboard-status-card,
.client-dashboard-credit-card {
    padding: .95rem 1rem;
}

.client-dashboard-status-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: .55rem;
}

.client-dashboard-status-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    margin-bottom: .25rem;
    font-size: .82rem;
}

.client-dashboard-status-bar {
    height: 6px;
    border-radius: 999px;
    background: var(--color-surface-subtle);
    overflow: hidden;
}

.client-dashboard-status-bar span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--color-accent);
}

.client-dashboard-last-order {
    margin: .75rem 0 0;
    padding-top: .65rem;
    border-top: 1px dashed var(--color-border);
    font-size: .78rem;
    color: var(--color-muted);
}

.client-dashboard-empty,
.client-dashboard-empty-text {
    padding: 1rem 0 .25rem;
    text-align: center;
}

.client-dashboard-grid-secondary {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
    gap: .85rem;
    align-items: start;
}

.client-dashboard-top-products {
    padding: .95rem 1rem;
}

.client-dashboard-product-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: .55rem;
}

.client-dashboard-product-list li {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: .55rem .65rem;
    align-items: center;
    padding: .55rem .65rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-surface-subtle);
}

.client-dashboard-product-rank {
    width: 1.5rem;
    height: 1.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: rgba(47, 181, 210, .14);
    color: var(--color-primary-dark);
    font-size: .72rem;
    font-weight: 800;
}

.client-dashboard-product-body {
    min-width: 0;
}

.client-dashboard-product-body strong {
    display: block;
    font-size: .82rem;
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.client-dashboard-product-body .muted {
    font-size: .72rem;
}

.client-dashboard-product-revenue {
    font-size: .82rem;
    font-weight: 700;
    white-space: nowrap;
}

.client-dashboard-shortcuts {
    margin: 0;
}

.client-dashboard-orders {
    padding: 0;
    overflow: hidden;
}

.client-dashboard-orders .section-header {
    padding: .95rem 1rem;
    border-bottom: 1px solid var(--color-border);
}

.client-dashboard-account-grid {
    margin-top: 0;
}

.client-dashboard-more-link {
    margin: .65rem 0 0;
    font-size: .82rem;
}

@media (max-width: 1100px) {
    .client-dashboard-grid {
        grid-template-columns: 1fr;
    }

    .client-dashboard-grid-secondary {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .client-dashboard-hero {
        padding: .95rem;
    }

    .client-dashboard-hero-actions {
        width: 100%;
    }

    .client-dashboard-hero-actions .btn {
        flex: 1 1 auto;
        justify-content: center;
    }

    .client-dashboard-chart {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        row-gap: .75rem;
    }

    .client-dashboard-compare-item {
        text-align: left;
    }

    .client-dashboard-kpis {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Client app v4 — pantallas operativas unificadas */
.has-client-app .client-page-shell-app {
    display: flex;
    flex-direction: column;
    gap: .85rem;
}

.has-client-app .page-header-client-app {
    padding: .95rem 1.1rem;
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: 0 1px 2px rgba(0, 0, 0, .04);
}

.has-client-app .page-header-client-app .page-header-main {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: .65rem 1rem;
}

.has-client-app .page-header-client-app h1 {
    margin: 0;
    font-size: clamp(1.15rem, 2vw, 1.45rem);
    line-height: 1.2;
}

.has-client-app .page-header-client-app .page-header-sub {
    margin: .35rem 0 0;
    font-size: .84rem;
    color: var(--color-muted);
}

.has-client-app .client-page-crumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .25rem .4rem;
    margin-bottom: .55rem;
    font-size: .76rem;
    color: var(--color-muted);
}

.has-client-app .client-page-crumb a {
    color: var(--color-primary-dark);
    font-weight: 600;
    text-decoration: none;
}

.has-client-app .client-page-crumb a:hover {
    color: var(--color-accent);
}

.has-client-app .client-page-crumb-sep {
    opacity: .45;
}

.has-client-app .page-header-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
}

.has-client-app .client-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .65rem;
    padding: .65rem .85rem;
}

.has-client-app .client-toolbar-main {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem;
}

.has-client-app .client-toolbar-count {
    font-size: .82rem;
    font-weight: 600;
    color: var(--color-ink);
}

.has-client-app .client-toolbar-badge {
    padding: .15rem .45rem;
    border-radius: 999px;
    background: rgba(245, 158, 11, .12);
    color: #92400e;
    font-size: .72rem;
    font-weight: 600;
}

.has-client-app .client-toolbar-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .4rem;
}

.has-client-app .client-toolbar-actions .btn-primary {
    background: var(--color-ink);
    border-color: var(--color-ink);
    color: #fff;
}

.has-client-app .client-toolbar-actions .btn-primary:hover {
    background: #1a1a1a;
    border-color: #1a1a1a;
    color: #fff;
}

/* Panel cliente — CTA fondo noir : texto blanco (evita texto invisible) */
.has-client-app .btn-primary:is(
    .client-cart-checkout,
    .client-cart-mobile-checkout,
    .client-checkout-submit,
    .client-checkout-mobile-submit,
    .product-list-add-btn
),
.has-client-app .client-order-actions-bar .btn-primary,
.has-client-app.page-quick-order .preview-actions .btn-primary,
.has-client-app.page-about .client-about-cta-actions .btn-primary,
.has-client-app.page-product .product-mobile-cta .btn-primary {
    color: #fff;
}

.has-client-app .btn-primary:is(
    .client-cart-checkout,
    .client-cart-mobile-checkout,
    .client-checkout-submit,
    .client-checkout-mobile-submit,
    .product-list-add-btn
):hover:not(:disabled),
.has-client-app .client-order-actions-bar .btn-primary:hover,
.has-client-app.page-quick-order .preview-actions .btn-primary:hover,
.has-client-app.page-about .client-about-cta-actions .btn-primary:hover,
.has-client-app.page-product .product-mobile-cta .btn-primary:hover {
    color: #fff;
    background: #1a1a1a;
    border-color: #1a1a1a;
}

.has-client-app .btn-primary:is(
    .client-cart-checkout,
    .client-cart-mobile-checkout,
    .client-checkout-submit,
    .client-checkout-mobile-submit,
    .product-list-add-btn
):disabled,
.has-client-app .client-order-actions-bar .btn-primary:disabled,
.has-client-app.page-quick-order .preview-actions .btn-primary:disabled,
.has-client-app.page-about .client-about-cta-actions .btn-primary:disabled,
.has-client-app.page-product .product-mobile-cta .btn-primary:disabled {
    color: #fff;
}

.has-client-app .client-toolbar-actions .btn-ghost {
    border: 1px solid var(--color-border);
    background: #fff;
    color: var(--color-ink);
}

.has-client-app .client-page-hint,
.has-client-app .client-page-meta {
    margin: 0;
    font-size: .78rem;
}

.has-client-app .client-empty-state {
    text-align: center;
    padding: 2rem 1.25rem;
}

.has-client-app .client-alert-compact {
    margin-bottom: 0;
}

.has-client-app.page-cart .cart-layout {
    gap: 1rem;
}

.has-client-app.page-cart .client-cart-tools {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    padding: .65rem .85rem;
}

.has-client-app.page-cart .client-cart-tools .btn-ghost {
    color: var(--color-ink);
    border: 1px solid var(--color-border);
    background: var(--color-surface-subtle, #f8fafc);
}

.has-client-app.page-cart .client-cart-tools .btn-ghost:hover {
    color: var(--color-ink);
    background: #fff;
    border-color: var(--color-border);
}

.has-client-app.page-cart .client-cart-summary {
    position: sticky;
    top: calc(var(--client-topbar-height, 3.35rem) + .5rem);
}

.has-client-app.page-cart .client-cart-checkout {
    min-height: 2.85rem;
    background: var(--color-ink);
    border-color: var(--color-ink);
}

.has-client-app.page-cart .qty-stepper-compact {
    display: inline-flex;
    align-items: stretch;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    overflow: hidden;
    background: #fff;
}

.has-client-app.page-cart .qty-stepper-compact .qty-step {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    border: 0;
    background: var(--color-surface-subtle);
    cursor: pointer;
}

.has-client-app.page-cart .qty-stepper-compact .qty-stepper-input {
    width: 2.75rem;
    min-width: 2.75rem;
    border: 0;
    border-left: 1px solid var(--color-border);
    border-right: 1px solid var(--color-border);
    text-align: center;
    font-weight: 700;
}

.has-client-app.page-cart .cart-product-name {
    color: inherit;
    text-decoration: none;
}

.has-client-app.page-cart .cart-product-name:hover {
    color: var(--color-primary-dark);
}

.has-client-app.page-favorites .product-grid-client-app {
    gap: .85rem;
}

.has-client-app .product-card-has-quick-add {
    display: flex;
    flex-direction: column;
}

.has-client-app .product-card-has-quick-add .product-card-link {
    flex: 0 0 auto;
}

.has-client-app .product-card-has-quick-add .product-card-body {
    flex: 1;
}

.has-client-app .product-card-title-link {
    color: inherit;
    text-decoration: none;
}

.has-client-app .product-card-title-link:hover {
    color: var(--color-primary-dark);
}

.has-client-app .product-card-quick-add {
    margin: 0;
    padding: .55rem .65rem .65rem;
    border-top: 1px solid var(--color-border);
}

.has-client-app .product-card-add-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    width: 100%;
    min-height: 2.35rem;
    background: var(--color-ink);
    border-color: var(--color-ink);
    color: #fff;
    border-radius: var(--radius-lg);
}

.has-client-app.page-orders .client-orders-filters {
    gap: .55rem;
}

.has-client-app.page-orders .client-orders-filters .stat-card {
    padding: .75rem .85rem;
    border-radius: var(--radius-lg);
}

.has-client-app.page-orders .client-orders-search {
    flex: 1;
    min-width: min(100%, 16rem);
}

.has-client-app.page-orders .client-orders-search input[type="search"] {
    flex: 1;
    min-width: 0;
}

.has-client-app.page-orders .client-order-actions {
    display: flex;
    align-items: center;
    gap: .35rem;
    white-space: nowrap;
}

.has-client-app .client-order-payment {
    min-width: 9.5rem;
}

.has-client-app .client-order-pay-badge {
    display: inline-block;
    margin-bottom: .25rem;
    padding: .22rem .55rem;
    border-radius: 999px;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    line-height: 1.3;
}

.has-client-app .client-order-pay-method {
    display: block;
    font-size: .78rem;
    line-height: 1.35;
}

.has-client-app .client-order-pay-badge-paid {
    background: #dcfce7;
    color: #166534;
}

.has-client-app .client-order-pay-badge-unpaid {
    background: #fef3c7;
    color: #92400e;
}

.has-client-app .client-order-pay-badge-failed {
    background: #fee2e2;
    color: #991b1b;
}

.has-client-app .client-order-pay-badge-deferred {
    background: #f3f4f6;
    color: #4b5563;
}

.has-client-app .client-order-pay-badge-account {
    background: #e0f2fe;
    color: #0c4a6e;
}

.has-client-app .client-order-pay-badge-cancelled {
    background: #f3f4f6;
    color: #6b7280;
}

.has-client-app .client-orders-table tbody tr.client-order-row-unpaid {
    background: rgba(254, 243, 199, 0.28);
}

.has-client-app .client-orders-table tbody tr.client-order-row-unpaid:hover {
    background: rgba(254, 243, 199, 0.42);
}

.has-client-app .client-orders-table tbody tr.client-order-row-paid {
    background: rgba(220, 252, 231, 0.22);
}

.has-client-app .client-order-more {
    position: relative;
}

.has-client-app .client-order-actions {
    position: relative;
    overflow: visible;
}

.has-client-app .client-order-more[open] {
    z-index: 300;
}

.has-client-app .client-orders-table tbody tr:has(.client-order-more[open]) {
    position: relative;
    z-index: 200;
}

.has-client-app .client-orders-table tbody tr:has(.client-order-more[open]) td {
    position: relative;
    overflow: visible;
}

.has-client-app .client-orders-table-wrap {
    overflow: visible;
}

.has-client-app .client-orders-table-wrap.panel-card:has(> .table) {
    overflow: visible;
}

.has-client-app.page-orders .client-orders-table-wrap.cart-table-wrap.panel-card {
    overflow: visible;
}

.has-client-app .client-orders-table {
    overflow: visible;
    border-radius: 0;
}

.has-client-app .client-order-more-toggle {
    list-style: none;
    cursor: pointer;
    min-width: 2.15rem;
    padding-inline: .55rem;
}

.has-client-app .client-order-more-toggle::-webkit-details-marker {
    display: none;
}

.has-client-app .client-order-more-menu {
    position: absolute;
    left: auto;
    right: 0;
    top: calc(100% + .35rem);
    z-index: 310;
    min-width: 11rem;
    padding: .35rem;
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: 0 8px 24px rgba(0, 0, 0, .14);
}

@media (min-width: 641px) {
    .has-client-app .client-order-more-menu {
        left: 100%;
        right: auto;
        top: 0;
        margin-left: .35rem;
    }
}

.has-client-app .client-order-more-menu a,
.has-client-app .client-order-more-menu button {
    display: block;
    width: 100%;
    padding: .55rem .65rem;
    border: 0;
    background: transparent;
    color: var(--color-ink);
    font: inherit;
    font-size: .82rem;
    text-align: left;
    text-decoration: none;
    border-radius: var(--radius);
    cursor: pointer;
}

.has-client-app .client-order-more-menu a:hover,
.has-client-app .client-order-more-menu button:hover {
    background: var(--color-surface-subtle);
}

.has-client-app .client-pagination {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    justify-content: center;
    margin-top: .85rem;
}

.has-client-app.page-checkout .checkout-grid {
    gap: 1rem;
}

.has-client-app.page-checkout .checkout-summary {
    position: sticky;
    top: calc(var(--client-topbar-height, 3.35rem) + .5rem);
}

.has-client-app.page-quick-order .quick-order-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
}

.has-client-app.page-account .client-form-page .form-card {
    max-width: 640px;
}

.has-client-app.page-account .client-form-page .form-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
}

.has-client-app .checkout-steps {
    margin-bottom: 0;
}

@media (max-width: 900px) {
    .has-client-app.page-quick-order .quick-order-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .has-client-app .cart-table tbody td[data-label]::before {
        content: attr(data-label) ": ";
        font-weight: 600;
        color: var(--color-muted);
        font-size: .72rem;
    }

    .has-client-app .client-orders-table tbody td[data-label]::before {
        content: attr(data-label) ": ";
        display: block;
        font-weight: 600;
        color: var(--color-muted);
        font-size: .72rem;
        margin-bottom: .15rem;
    }

    .has-client-app .client-orders-table thead {
        display: none;
    }

    .has-client-app .client-orders-table tbody tr {
        display: grid;
        grid-template-columns: 1fr auto;
        gap: .35rem .65rem;
        padding: .75rem .65rem;
        border-bottom: 1px solid var(--color-border);
        overflow: visible;
    }

    .has-client-app .client-orders-table tbody tr:has(.client-order-more[open]) {
        z-index: 200;
    }

    .has-client-app .client-orders-table tbody td {
        display: block;
        padding: 0;
        border: 0;
    }

    .has-client-app .client-orders-table tbody td:first-child {
        grid-column: 1 / -1;
    }

    .has-client-app .client-orders-table tbody td.client-order-actions {
        grid-column: 1 / -1;
        justify-content: flex-start;
        overflow: visible;
    }

    .has-client-app.page-orders .client-orders-filters {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Detalle pedido cliente */
.has-client-app .client-order-detail .client-order-timeline {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: .5rem 0;
    margin: 0;
    padding: .85rem 1rem;
    list-style: none;
}

.has-client-app .client-order-timeline-step {
    position: relative;
    flex: 1 1 0;
    min-width: 5.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .45rem;
    padding: 0 .35rem;
    text-align: center;
}

.has-client-app .client-order-timeline-step:not(:last-child)::after {
    content: "";
    position: absolute;
    top: .55rem;
    left: calc(50% + .65rem);
    right: calc(-50% + .65rem);
    height: 2px;
    background: var(--color-border);
    z-index: 0;
}

.has-client-app .client-order-timeline-dot {
    position: relative;
    z-index: 1;
    width: 1.1rem;
    height: 1.1rem;
    border-radius: 50%;
    border: 2px solid var(--color-border);
    background: #fff;
}

.has-client-app .client-order-timeline-step.is-done .client-order-timeline-dot {
    border-color: var(--color-primary);
    background: var(--color-primary);
    box-shadow: inset 0 0 0 2px #fff;
}

.has-client-app .client-order-timeline-step.is-current .client-order-timeline-dot {
    border-color: var(--color-primary);
    background: #fff;
    box-shadow: 0 0 0 3px rgba(47, 181, 210, .25);
}

.has-client-app .client-order-timeline-step.is-error .client-order-timeline-dot {
    border-color: #dc2626;
    background: #dc2626;
}

.has-client-app .client-order-timeline-step.is-cancelled .client-order-timeline-dot {
    border-color: var(--color-muted);
    background: var(--color-surface-subtle);
}

.has-client-app .client-order-timeline-step.is-done:not(:last-child)::after {
    background: var(--color-primary);
}

.has-client-app .client-order-timeline-label {
    font-size: .72rem;
    font-weight: 600;
    color: var(--color-muted);
    line-height: 1.25;
}

.has-client-app .client-order-timeline-step.is-done .client-order-timeline-label,
.has-client-app .client-order-timeline-step.is-current .client-order-timeline-label {
    color: var(--color-ink);
}

.has-client-app .client-order-meta {
    gap: .55rem;
}

.has-client-app .client-order-info-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
    gap: .85rem;
}

.has-client-app .client-order-lines .section-header,
.has-client-app .client-order-lines-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    margin-bottom: 0;
    padding-bottom: .85rem;
    border-bottom: 1px solid var(--color-border);
}

.has-client-app .client-order-lines-head-text {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .45rem .65rem;
}

.has-client-app .client-order-lines-head h2 {
    margin: 0;
    font-size: 1.05rem;
}

.has-client-app .client-order-items {
    list-style: none;
    margin: 0;
    padding: 0;
}

.has-client-app .client-order-item {
    display: grid;
    grid-template-columns: 5rem minmax(0, 1fr) auto;
    gap: .85rem 1rem;
    align-items: center;
    padding: 1rem 0;
    border-bottom: 1px solid var(--color-border);
}

.has-client-app .client-order-item:last-child {
    border-bottom: 0;
}

.has-client-app .client-order-item-thumb {
    display: block;
    flex-shrink: 0;
    text-decoration: none;
}

.has-client-app .client-order-item-image {
    display: block;
    width: 5rem;
    height: 5rem;
    object-fit: cover;
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    background: #fff;
}

.has-client-app .client-order-item-image-empty {
    background: linear-gradient(145deg, #f3f4f6 0%, #e8eaed 100%);
}

.has-client-app .client-order-item-main {
    min-width: 0;
}

.has-client-app .client-order-item-head {
    display: flex;
    flex-direction: column;
    gap: .2rem;
    margin-bottom: .35rem;
}

.has-client-app .client-order-item-name {
    font-size: .98rem;
    font-weight: 700;
    line-height: 1.35;
    color: var(--color-text);
    text-decoration: none;
}

.has-client-app a.client-order-item-name:hover {
    color: var(--color-primary-dark);
    text-decoration: underline;
}

.has-client-app .client-order-item-variant {
    display: inline-block;
    font-size: .78rem;
    color: var(--color-muted);
    line-height: 1.4;
}

.has-client-app .client-order-item-main .client-order-line-ref {
    font-size: .78rem;
}

.has-client-app .client-order-item-main code {
    font-size: .78rem;
    color: var(--color-primary-dark);
    background: rgba(47, 181, 210, 0.1);
    padding: .12rem .4rem;
    border-radius: var(--radius);
}

.has-client-app .client-order-item-pricing {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .2rem;
    text-align: right;
    white-space: nowrap;
}

.has-client-app .client-order-item-qty {
    font-size: .76rem;
    color: var(--color-muted);
}

.has-client-app .client-order-item-unit {
    font-size: .82rem;
    color: var(--color-text-muted);
}

.has-client-app .client-order-item-total {
    font-size: 1.05rem;
    color: var(--color-ink);
    margin-top: .15rem;
}

.has-client-app .client-order-totals-wrap {
    margin-top: .5rem;
    padding-top: 1rem;
    border-top: 2px solid var(--color-ink);
    display: flex;
    justify-content: flex-end;
}

.has-client-app .client-order-totals-list {
    width: min(100%, 22rem);
    margin: 0;
    padding: .85rem 1rem;
    background: var(--color-surface-subtle, #f8fafc);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
}

.has-client-app .client-order-totals-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    padding: .35rem 0;
    border-bottom: 1px dashed var(--color-border);
}

.has-client-app .client-order-totals-row:last-child {
    border-bottom: 0;
}

.has-client-app .client-order-totals-row dt,
.has-client-app .client-order-totals-row dd {
    margin: 0;
    font-size: .88rem;
}

.has-client-app .client-order-totals-row dt {
    color: var(--color-muted);
}

.has-client-app .client-order-totals-row dd {
    text-align: right;
    color: var(--color-text);
}

.has-client-app .client-order-totals-row-ht {
    margin-top: .15rem;
    padding-top: .55rem;
    border-top: 1px solid var(--color-border);
    border-bottom-style: solid;
}

.has-client-app .client-order-totals-row-ttc {
    margin-top: .25rem;
    padding: .65rem .75rem;
    margin-left: -.75rem;
    margin-right: -.75rem;
    margin-bottom: -.15rem;
    border: 0;
    border-radius: var(--radius);
    background: var(--color-ink);
    color: #fff;
}

.has-client-app .client-order-totals-row-ttc dt,
.has-client-app .client-order-totals-row-ttc dd,
.has-client-app .client-order-totals-row-ttc strong {
    color: #fff;
}

.has-client-app .client-order-totals-row-ttc .summary-total-value {
    color: #fff;
    font-size: 1.12rem;
}

.has-client-app .client-order-lines.section {
    padding-bottom: 1rem;
}

.has-client-app .client-order-actions-bar .client-order-actions-primary {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}

.has-client-app .client-order-actions-bar .btn-primary {
    background: var(--color-ink);
    border-color: var(--color-ink);
}

.has-client-app.page-contact .contact-page-client-app .contact-shell {
    padding: 0;
}

.has-client-app.page-contact .contact-grid-v2 {
    gap: .85rem;
}

.has-client-app.page-account .client-dashboard-orders .client-orders-table tbody td.client-order-actions {
    justify-content: flex-end;
}

@media (max-width: 640px) {
    .has-client-app .client-order-item {
        grid-template-columns: 4.25rem minmax(0, 1fr);
        grid-template-areas:
            "thumb main"
            "pricing pricing";
        gap: .65rem .75rem;
        padding: .85rem 0;
    }

    .has-client-app .client-order-item-thumb {
        grid-area: thumb;
    }

    .has-client-app .client-order-item-main {
        grid-area: main;
    }

    .has-client-app .client-order-item-pricing {
        grid-area: pricing;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        padding-top: .55rem;
        margin-top: .15rem;
        border-top: 1px dashed var(--color-border);
    }

    .has-client-app .client-order-item-image {
        width: 4.25rem;
        height: 4.25rem;
    }

    .has-client-app .client-order-item-total {
        margin-top: 0;
        font-size: 1rem;
    }

    .has-client-app .client-order-totals-wrap {
        justify-content: stretch;
    }

    .has-client-app .client-order-totals-list {
        width: 100%;
    }

    .has-client-app .client-order-timeline-step {
        min-width: 4.5rem;
    }

    .has-client-app .client-order-actions-bar {
        flex-direction: column;
        align-items: stretch;
    }

    .has-client-app .client-order-actions-bar .client-toolbar-actions {
        justify-content: flex-start;
    }
}

/* Client app v5 — adresses, legal, quick-order, checkout */
.has-client-app.page-account .client-dashboard {
    display: flex;
    flex-direction: column;
    gap: .85rem;
}

.has-client-app .address-cards-client {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr));
    gap: .85rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.has-client-app .address-cards-client .address-card {
    display: flex;
    flex-direction: column;
    gap: .75rem;
    margin: 0;
    padding: .95rem 1rem;
}

.has-client-app .address-card-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .4rem;
}

.has-client-app .address-cards-client .address-card-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-top: auto;
    padding-top: .65rem;
    border-top: 1px solid var(--color-border);
}

.has-client-app.page-legal .legal-page-client-app .legal-layout {
    display: grid;
    grid-template-columns: minmax(11rem, 14rem) minmax(0, 1fr);
    gap: .85rem;
    align-items: start;
}

.has-client-app.page-legal .legal-nav {
    position: sticky;
    top: calc(var(--client-topbar-height, 3.35rem) + .5rem);
    padding: .65rem;
}

.has-client-app.page-legal .legal-nav-link {
    display: block;
    padding: .55rem .65rem;
    border-radius: var(--radius);
    font-size: .82rem;
    font-weight: 600;
    color: var(--color-ink);
    text-decoration: none;
}

.has-client-app.page-legal .legal-nav-link:hover,
.has-client-app.page-legal .legal-nav-link.is-active {
    background: var(--color-surface-subtle);
    color: var(--color-primary-dark);
}

.has-client-app.page-legal .legal-content {
    display: flex;
    flex-direction: column;
    gap: .85rem;
}

.has-client-app.page-quick-order .quick-order-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
}

.has-client-app.page-quick-order .quick-order-tips {
    grid-column: 1 / -1;
    padding: .95rem 1rem;
}

.has-client-app.page-quick-order .quick-order-tips h2 {
    margin: 0 0 .55rem;
    font-size: .95rem;
}

.has-client-app.page-quick-order .quick-order-tips-list {
    margin: 0 0 .75rem;
    padding-left: 1.1rem;
    font-size: .82rem;
    line-height: 1.5;
    color: var(--color-muted);
}

.has-client-app.page-quick-order .quick-order-example {
    margin: 0;
    padding: .65rem .75rem;
    border-radius: var(--radius);
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
    font-size: .78rem;
    line-height: 1.45;
    overflow-x: auto;
}

.has-client-app.page-quick-order .client-quick-search-results {
    max-height: 14rem;
    overflow-y: auto;
    margin-top: .55rem;
}

.has-client-app.page-quick-order .client-quick-search-results li {
    cursor: pointer;
    padding: .55rem .65rem;
    border-radius: var(--radius);
}

.has-client-app.page-quick-order .client-quick-search-results li:hover {
    background: var(--color-surface-subtle);
}

.has-client-app.page-quick-order .preview-section {
    margin-top: .85rem;
}

.has-client-app.page-quick-order .preview-actions .btn-primary {
    background: var(--color-ink);
    border-color: var(--color-ink);
}

.has-client-app.page-checkout .client-checkout-submit {
    min-height: 2.85rem;
    background: var(--color-ink);
    border-color: var(--color-ink);
}

.has-client-app.page-checkout .client-checkout-submit:disabled {
    opacity: .55;
    cursor: not-allowed;
}

@media (max-width: 900px) {
    .has-client-app.page-legal .legal-page-client-app .legal-layout {
        grid-template-columns: 1fr;
    }

    .has-client-app.page-legal .legal-nav {
        position: static;
        display: flex;
        flex-wrap: wrap;
        gap: .35rem;
    }

    .has-client-app.page-legal .legal-nav-link {
        padding: .45rem .55rem;
    }
}

@media (max-width: 640px) {
    .has-client-app .address-cards-client {
        grid-template-columns: 1fr;
    }

    .has-client-app.page-quick-order .quick-order-grid {
        grid-template-columns: 1fr;
    }

    .has-client-app.page-quick-order .client-quick-preview-table thead {
        display: none;
    }

    .has-client-app.page-quick-order .client-quick-preview-table tbody tr {
        display: block;
        padding: .65rem 0;
        border-bottom: 1px solid var(--color-border);
    }

    .has-client-app.page-quick-order .client-quick-preview-table tbody td {
        display: block;
        padding: .15rem 0;
        border: 0;
    }
}

/* Client app v6 — about, dashboard, cart mobile, errores */
.has-client-app.page-about .about-page-client-app {
    display: flex;
    flex-direction: column;
    gap: .85rem;
}

.has-client-app.page-about .client-about-intro-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
    gap: .85rem;
    align-items: stretch;
}

.has-client-app.page-about .client-about-video .about-video-embed {
    aspect-ratio: 16 / 9;
}

.has-client-app.page-about .client-about-lead {
    display: flex;
    flex-direction: column;
    gap: .65rem;
    padding: 1rem 1.1rem;
}

.has-client-app.page-about .client-about-lead .about-hero-lead {
    margin: 0;
    font-size: .9rem;
    line-height: 1.55;
}

.has-client-app.page-about .about-mission,
.has-client-app.page-about .about-values,
.has-client-app.page-about .about-expertise,
.has-client-app.page-about .about-platform,
.has-client-app.page-about .about-trust,
.has-client-app.page-about .about-universe,
.has-client-app.page-about .about-stats {
    margin-top: 0;
}

.has-client-app.page-about .client-about-cta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem 1rem;
    padding: 1rem 1.1rem;
}

.has-client-app.page-about .client-about-cta h2 {
    margin: 0 0 .35rem;
    font-size: 1.05rem;
}

.has-client-app.page-about .client-about-cta-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}

.has-client-app.page-about .client-about-cta-actions .btn-primary {
    background: var(--color-ink);
    border-color: var(--color-ink);
}

/* Client app — À propos : lisibilité et mise en page pro */
.has-client-app.page-about .client-about-lead .about-hero-badge {
    color: var(--color-primary-dark);
    background: rgba(47, 181, 210, 0.14);
    border: 1px solid rgba(47, 181, 210, 0.35);
}

.has-client-app.page-about .client-about-lead .about-hero-lead {
    color: var(--color-text);
    font-size: .9rem;
    line-height: 1.6;
}

.has-client-app.page-about .client-about-lead .about-trust-pill {
    color: var(--color-text);
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
    font-size: .74rem;
}

.has-client-app.page-about .about-stats,
.has-client-app.page-about .about-universe,
.has-client-app.page-about .about-trust {
    margin: 0;
    width: 100%;
    max-width: none;
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.has-client-app.page-about .about-stats-grid,
.has-client-app.page-about .about-trust-grid,
.has-client-app.page-about .about-universe .category-grid-home {
    max-width: none;
}

.has-client-app.page-about .about-mission,
.has-client-app.page-about .about-values,
.has-client-app.page-about .about-expertise,
.has-client-app.page-about .about-platform {
    padding: 1.15rem 1.1rem;
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: 0 1px 2px rgba(0, 0, 0, .04);
}

.has-client-app.page-about .about-mission {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

.has-client-app.page-about .about-mission-copy h2,
.has-client-app.page-about .about-section-head h2 {
    font-size: 1.12rem;
    margin-bottom: .65rem;
    color: var(--color-text);
}

.has-client-app.page-about .about-section-head {
    margin: 0 0 1rem;
    text-align: left;
    max-width: none;
}

.has-client-app.page-about .about-section-head p,
.has-client-app.page-about .about-mission-copy p,
.has-client-app.page-about .about-mission-copy .muted {
    color: var(--color-text-muted);
    font-size: .88rem;
}

.has-client-app.page-about .about-mission-list li {
    font-size: .88rem;
    color: var(--color-text);
}

.has-client-app.page-about .about-values {
    padding-top: 1.15rem;
    padding-bottom: 1.15rem;
    border-top: 0;
}

.has-client-app.page-about .about-values-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
}

.has-client-app.page-about .about-expertise {
    padding-top: 1.15rem;
    padding-bottom: 1.15rem;
}

.has-client-app.page-about .about-expertise-grid {
    grid-template-columns: 1fr;
    gap: .65rem;
}

.has-client-app.page-about .about-value-card,
.has-client-app.page-about .about-expertise-card {
    padding: 1rem;
}

.has-client-app.page-about .about-value-card h3,
.has-client-app.page-about .about-expertise-card h3 {
    font-size: .98rem;
    color: var(--color-text);
}

.has-client-app.page-about .about-value-card .muted,
.has-client-app.page-about .about-expertise-card .muted {
    font-size: .84rem;
    color: var(--color-text-muted);
}

.has-client-app.page-about .about-platform {
    padding-bottom: 1.15rem;
}

.has-client-app.page-about .about-platform-inner {
    grid-template-columns: 1fr;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.has-client-app.page-about .about-platform-copy {
    padding: 0 0 1rem;
    background: transparent;
}

.has-client-app.page-about .about-platform-copy h2 {
    font-size: 1.12rem;
}

.has-client-app.page-about .about-platform-copy p {
    font-size: .88rem;
    color: var(--color-text-muted);
}

.has-client-app.page-about .about-platform-features li {
    font-size: .86rem;
    color: var(--color-text);
}

.has-client-app.page-about .about-platform-visual img {
    min-height: 160px;
    border-radius: var(--radius);
    border: 1px solid var(--color-border);
}

.has-client-app.page-about .about-trust {
    padding: 1rem;
    background: #fff;
    border: 1px solid var(--color-border);
}

.has-client-app.page-about .about-trust-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .55rem;
}

.has-client-app.page-about .about-trust-item strong {
    color: var(--color-text);
    font-size: .88rem;
}

.has-client-app.page-about .about-trust-item span {
    color: var(--color-text-muted);
}

.has-client-app.page-about .about-universe {
    padding: 1.15rem 1.1rem;
    background: #fff;
    border: 1px solid var(--color-border);
}

.has-client-app.page-about .about-universe .about-section-head-light h2,
.has-client-app.page-about .about-universe .about-section-head-light p {
    color: var(--color-text);
}

.has-client-app.page-about .about-universe .about-section-head-light p {
    color: var(--color-text-muted);
}

.has-client-app.page-about .about-stats {
    padding: 1.15rem 1.1rem;
}

.has-client-app.page-about .about-stat-card {
    padding: .85rem .5rem;
}

.has-client-app.page-about .about-mission-visual {
    margin: 0;
}

.has-client-app.page-about .about-mission-caption {
    font-size: .78rem;
}

.has-client-app.page-about .client-about-cta {
    background: linear-gradient(135deg, #0a2230 0%, #123547 100%);
    border-color: rgba(47, 181, 210, 0.25);
    color: #fff;
}

.has-client-app.page-about .client-about-cta h2 {
    color: #fff;
}

.has-client-app.page-about .client-about-cta .muted {
    color: rgba(255, 255, 255, 0.82);
}

.has-client-app.page-about .client-about-cta-actions .btn:not(.btn-primary) {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.28);
    color: #fff;
}

.has-client-app.page-about .client-about-cta-actions .btn:not(.btn-primary):hover {
    background: rgba(255, 255, 255, 0.18);
    color: #fff;
}

@media (max-width: 640px) {
    .has-client-app.page-about .about-values-grid,
    .has-client-app.page-about .about-trust-grid {
        grid-template-columns: 1fr;
    }

    .has-client-app.page-about .about-stats-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 480px) {
    .has-client-app.page-about .about-stats-grid {
        grid-template-columns: 1fr;
    }
}

.has-client-app.page-account .client-dashboard-kpis .stat-card-link {
    text-decoration: none;
    color: inherit;
    transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.has-client-app.page-account .client-dashboard-kpis .stat-card-link:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
    text-decoration: none;
    color: inherit;
}

.has-client-app.page-account .client-dashboard-status-link {
    display: block;
    padding: .55rem .15rem;
    margin: 0 -.15rem;
    border-radius: var(--radius);
    color: inherit;
    text-decoration: none;
    transition: background .15s ease;
}

.has-client-app.page-account .client-dashboard-status-link:hover {
    background: var(--color-surface-subtle);
    text-decoration: none;
    color: inherit;
}

.has-client-app.page-cart .client-cart-mobile-bar {
    display: none;
}

@media (max-width: 900px) {
    .has-client-app.page-about .client-about-intro-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .has-client-app.page-cart .client-cart-mobile-bar {
        display: flex;
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 120;
        align-items: center;
        justify-content: space-between;
        gap: .75rem;
        padding: .65rem 1rem calc(.65rem + env(safe-area-inset-bottom, 0));
        background: rgba(255, 255, 255, .96);
        border-top: 1px solid var(--color-border);
        box-shadow: 0 -4px 16px rgba(0, 0, 0, .08);
        backdrop-filter: blur(8px);
    }

    .has-client-app.page-cart .client-cart-mobile-bar-total {
        display: flex;
        flex-direction: column;
        gap: .1rem;
        line-height: 1.2;
    }

    .has-client-app.page-cart .client-cart-mobile-bar-total strong {
        font-size: 1.05rem;
        color: var(--color-ink);
    }

    .has-client-app.page-cart .client-cart-mobile-checkout {
        min-height: 2.65rem;
        white-space: nowrap;
        background: var(--color-ink);
        border-color: var(--color-ink);
    }

    .has-client-app.page-cart .client-app-main {
        padding-bottom: calc(4.5rem + env(safe-area-inset-bottom, 0));
    }

    .has-client-app .error-page-wrap-client .error-page-actions {
        flex-direction: column;
        align-items: stretch;
    }
}

/* Client app v7 — toasts, search kbd, list catalog, checkout mobile */
.has-client-app .client-app-toast {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .65rem;
    padding: .65rem .85rem;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
}

.has-client-app .client-app-toast.is-dismissed {
    opacity: 0;
    transform: translateY(-4px);
    transition: opacity .2s ease, transform .2s ease;
}

.has-client-app .client-app-toast-text {
    flex: 1;
    min-width: 0;
}

.has-client-app .client-app-alert-dismiss {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.65rem;
    height: 1.65rem;
    padding: 0;
    border: 0;
    border-radius: var(--radius);
    background: transparent;
    color: inherit;
    font-size: 1.15rem;
    line-height: 1;
    cursor: pointer;
    opacity: .65;
}

.has-client-app .client-app-alert-dismiss:hover {
    opacity: 1;
    background: rgba(0, 0, 0, .06);
}

.has-client-app .client-app-search {
    position: relative;
}

.has-client-app .client-search-kbd {
    position: absolute;
    right: 2.65rem;
    top: 50%;
    transform: translateY(-50%);
    padding: .12rem .35rem;
    border-radius: .25rem;
    border: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
    font-size: .68rem;
    font-family: inherit;
    color: var(--color-muted);
    pointer-events: none;
}

.has-client-app .client-app-search:focus-within .client-search-kbd {
    opacity: 0;
}

.has-client-app .client-form-hint {
    margin: -.35rem 0 .65rem;
    font-size: .82rem;
}

.has-client-app .password-field-input {
    display: flex;
    align-items: stretch;
    gap: 0;
}

.has-client-app .password-field-input input {
    flex: 1;
    min-width: 0;
}

.has-client-app.page-catalog .product-list-row-client .product-list-add-btn {
    background: var(--color-ink);
    border-color: var(--color-ink);
    white-space: nowrap;
}

.has-client-app.page-catalog .catalog-list-client .product-list-actions {
    white-space: nowrap;
}

.has-client-app.page-checkout .client-checkout-mobile-bar {
    display: none;
}

@media (max-width: 768px) {
    .has-client-app .client-search-kbd {
        display: none;
    }

    .has-client-app.page-checkout .client-checkout-mobile-bar {
        display: flex;
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 120;
        align-items: center;
        justify-content: space-between;
        gap: .75rem;
        padding: .65rem 1rem calc(.65rem + env(safe-area-inset-bottom, 0));
        background: rgba(255, 255, 255, .96);
        border-top: 1px solid var(--color-border);
        box-shadow: 0 -4px 16px rgba(0, 0, 0, .08);
        backdrop-filter: blur(8px);
    }

    .has-client-app.page-checkout .client-checkout-mobile-total {
        display: flex;
        flex-direction: column;
        gap: .1rem;
        line-height: 1.2;
    }

    .has-client-app.page-checkout .client-checkout-mobile-submit {
        min-height: 2.65rem;
        white-space: nowrap;
        background: var(--color-ink);
        border-color: var(--color-ink);
    }

    .has-client-app.page-checkout .client-checkout-mobile-submit:disabled {
        opacity: .55;
    }

    .has-client-app.page-checkout .client-app-main {
        padding-bottom: calc(4.5rem + env(safe-area-inset-bottom, 0));
    }

    .has-client-app.page-catalog .catalog-list-client thead {
        display: none;
    }

    .has-client-app.page-catalog .catalog-list-client tbody tr {
        display: grid;
        grid-template-columns: 3.5rem 1fr;
        gap: .35rem .65rem;
        padding: .75rem .65rem;
        border-bottom: 1px solid var(--color-border);
    }

    .has-client-app.page-catalog .catalog-list-client .product-list-media {
        grid-row: 1 / 4;
    }

    .has-client-app.page-catalog .catalog-list-client .product-list-actions {
        grid-column: 1 / -1;
        display: flex;
        flex-wrap: wrap;
        gap: .35rem;
    }
}

/* ── Admin UI polish v12 — exports, form layouts, group import ── */
.admin-form-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(240px, 300px);
    gap: 1.25rem;
    align-items: start;
}
.admin-users-form-layout .admin-users-form-card {
    max-width: none;
}
.admin-form-card-title {
    margin: 0 0 1rem;
    font-size: 1.05rem;
    font-family: var(--font-display);
}
.admin-form-fieldset {
    margin: 0 0 1.15rem;
    padding: 0;
    border: 0;
}
.admin-form-fieldset legend {
    font-weight: 700;
    font-size: .88rem;
    margin-bottom: .65rem;
    padding: 0;
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: .04em;
}
.admin-form-checkbox-block {
    margin-top: .5rem;
}
.admin-form-checkbox-end {
    align-self: end;
    margin-bottom: .35rem;
}
.admin-form-aside-lead {
    margin: 0 0 .75rem;
    font-size: .86rem;
    line-height: 1.5;
}
.admin-form-tips {
    margin: 0 0 1rem;
    padding-left: 1.15rem;
    font-size: .84rem;
    line-height: 1.55;
    color: var(--color-text-muted);
}
.admin-form-aside-links {
    margin: 0;
}
.admin-form-actions-sticky {
    margin-top: .5rem;
    padding-top: 1rem;
    border-top: 1px solid var(--color-border);
}
.admin-form-field-hint,
.admin-role-hint {
    margin: .35rem 0 0;
    font-size: .82rem;
    line-height: 1.45;
}
.admin-users-last-login {
    margin: 1rem 0 0;
    padding-top: .85rem;
    border-top: 1px solid var(--color-border);
    font-size: .82rem;
}

.admin-exports-summary {
    margin-bottom: 1rem;
}
.admin-exports-info {
    padding: 1rem 1.25rem;
    margin-bottom: 1.25rem;
}
.admin-exports-info-lead {
    margin: 0 0 .5rem;
    font-size: .9rem;
}
.admin-exports-info-list {
    margin: 0;
    padding-left: 1.2rem;
    font-size: .84rem;
    line-height: 1.55;
    color: var(--color-text-muted);
}
.admin-exports-section {
    margin-bottom: 1.5rem;
}
.admin-exports-section-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: .75rem;
}
.admin-exports-section-head h2 {
    margin: 0;
    font-size: 1.05rem;
    font-family: var(--font-display);
}
.admin-exports-section-count {
    font-size: .82rem;
}
.admin-exports-grid-v2 {
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}
.admin-export-card-v2 {
    gap: .75rem;
}
.admin-export-card-titles h3 {
    margin: 0;
    font-size: 1rem;
    line-height: 1.25;
}
.admin-export-card-stat {
    display: block;
    margin-top: .2rem;
    font-size: .78rem;
    color: var(--color-text-muted);
}
.admin-export-card-stat strong {
    color: var(--color-text);
    font-size: .92rem;
}
.admin-export-card-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-top: auto;
}
.admin-export-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.35rem;
    height: 2.35rem;
    border-radius: var(--radius-lg);
    background: rgba(47, 181, 210, .12);
    flex-shrink: 0;
    font-size: 1.05rem;
    line-height: 1;
}
.admin-export-icon--orders::before { content: "📦"; }
.admin-export-icon--carts::before { content: "🛒"; }
.admin-export-icon--reports::before { content: "📊"; }
.admin-export-icon--clients::before { content: "👥"; }
.admin-export-icon--favorites::before { content: "★"; }
.admin-export-icon--messages::before { content: "✉"; }
.admin-export-icon--products::before { content: "🏷"; }
.admin-export-icon--pricing::before { content: "⚡"; }
.admin-export-icon--stock::before { content: "📉"; }
.admin-export-icon--activity::before { content: "📋"; }

.admin-group-import-panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(200px, 260px);
    gap: 1rem 1.25rem;
    align-items: start;
    margin-bottom: 1.25rem;
    padding: 1rem 1.15rem;
    border-radius: var(--radius-lg);
    background: var(--color-surface-muted, rgba(0, 0, 0, .025));
    border: 1px solid var(--color-border);
}
.admin-group-import-form {
    margin: 0;
}
.admin-import-format-box {
    padding: .75rem .85rem;
    border-radius: var(--radius-md);
    background: var(--color-bg, #fff);
    border: 1px dashed var(--color-border);
    font-size: .84rem;
}
.admin-import-format-box strong {
    display: block;
    margin-bottom: .35rem;
    font-size: .82rem;
}
.admin-import-format-example {
    display: inline-block;
    margin-bottom: .5rem;
    padding: .2rem .45rem;
    border-radius: var(--radius-sm);
    background: rgba(47, 181, 210, .08);
    font-size: .82rem;
}
.admin-import-format-box p {
    margin: .25rem 0 0;
    font-size: .8rem;
    line-height: 1.45;
}
.admin-group-copy-form {
    grid-column: 1 / -1;
    margin: 0;
    padding-top: .75rem;
    border-top: 1px solid var(--color-border);
}

@media (max-width: 900px) {
    .admin-form-layout,
    .admin-group-import-panel {
        grid-template-columns: 1fr;
    }
    .admin-users-form-card {
        max-width: none;
    }
}

/* ── Admin UI polish v13 — carts, reports, stock, settings ── */
.admin-cart-edit-grid {
    align-items: start;
}
.admin-cart-edit-aside {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.admin-cart-add-card h2,
.admin-cart-actions-card h2 {
    margin: 0 0 .85rem;
    font-size: 1rem;
    font-family: var(--font-display);
}
.admin-cart-action-list {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}
.admin-cart-action-form {
    margin: 0;
}
.btn-block {
    display: flex;
    width: 100%;
    justify-content: center;
}
.admin-cart-min-alert {
    margin-bottom: 1rem;
}
.admin-cart-meta-inline {
    font-size: .82rem;
}
.admin-cart-order-total {
    font-size: 1.05rem;
    color: var(--color-accent);
}
.admin-order-summary-box {
    margin: 1rem 0;
    padding: .85rem 1rem;
    border-radius: var(--radius-lg);
    background: var(--color-surface-muted, rgba(0, 0, 0, .025));
    border: 1px solid var(--color-border);
}
.admin-order-summary-row {
    display: flex;
    justify-content: space-between;
    gap: .75rem;
    font-size: .88rem;
    padding: .25rem 0;
}
.admin-order-summary-total {
    margin-top: .35rem;
    padding-top: .5rem;
    border-top: 1px solid var(--color-border);
    font-size: .95rem;
}

.admin-reports-presets {
    margin-bottom: .75rem;
}
.admin-reports-period-hint {
    margin: -.25rem 0 1rem;
    font-size: .84rem;
}
.admin-reports-chart {
    display: flex;
    align-items: flex-end;
    gap: .65rem;
    min-height: 140px;
    margin-bottom: 1.25rem;
    padding: .75rem .5rem 0;
}
.admin-reports-chart-col {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .4rem;
    min-width: 0;
}
.admin-reports-chart-bar {
    width: 100%;
    max-width: 3.5rem;
    height: 110px;
    display: flex;
    align-items: flex-end;
}
.admin-reports-chart-bar span {
    display: block;
    width: 100%;
    height: var(--bar-h, 20%);
    min-height: 4px;
    border-radius: var(--radius-sm) var(--radius-sm) 0 0;
    background: linear-gradient(180deg, var(--color-accent), rgba(47, 181, 210, .55));
}
.admin-reports-chart-label {
    font-size: .72rem;
    color: var(--color-text-muted);
    text-align: center;
    line-height: 1.2;
}
.admin-reports-monthly-table {
    margin-top: .5rem;
}

/* ── Admin reports v2 ── */
.admin-reports-page {
    display: grid;
    gap: 1rem;
}

.admin-reports-toolbar {
    padding: 1rem 1.15rem;
    border-left: 3px solid var(--color-accent);
}

.admin-reports-toolbar-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: .75rem;
}

.admin-reports-toolbar-title {
    margin: 0;
    font-family: var(--font-display);
    font-size: .95rem;
    font-weight: 700;
}

.admin-reports-toolbar-period {
    margin: .2rem 0 0;
    font-size: .82rem;
}

.admin-reports-presets-row {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-bottom: .75rem;
}

.admin-reports-preset {
    display: inline-flex;
    align-items: center;
    padding: .38rem .75rem;
    border-radius: 999px;
    border: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
    color: var(--color-text);
    font-size: .8rem;
    font-weight: 600;
    text-decoration: none;
    transition: border-color .15s, background .15s, color .15s;
}

.admin-reports-preset:hover {
    border-color: rgba(47, 181, 210, .45);
    background: rgba(47, 181, 210, .06);
    text-decoration: none;
    color: var(--color-text);
}

.admin-reports-preset.is-active {
    background: rgba(47, 181, 210, .14);
    border-color: rgba(47, 181, 210, .45);
    color: var(--color-ink);
    box-shadow: inset 0 0 0 1px rgba(47, 181, 210, .15);
}

.admin-reports-dates-form {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: .65rem .75rem;
    padding-top: .75rem;
    border-top: 1px solid var(--color-border);
}

.admin-reports-jump {
    margin: -.25rem 0 0;
}

.admin-activity-section-tabs {
    margin-bottom: 1rem;
}

.admin-activity-section-tabs + .admin-sync-attention,
.admin-activity-section-tabs + .admin-sync-page {
    margin-top: -.15rem;
}

.admin-activity-section-tabs .filter-tab.is-active {
    font-weight: 700;
}

.admin-reports-spotlight {
    display: grid;
    grid-template-columns: 1.4fr repeat(3, minmax(0, 1fr));
    gap: .65rem;
}

.admin-reports-spotlight-card {
    display: grid;
    gap: .25rem;
    padding: .95rem 1.05rem;
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    text-decoration: none;
    color: inherit;
    box-shadow: 0 1px 0 rgba(255, 255, 255, .8), 0 4px 14px rgba(15, 20, 25, .04);
}

.admin-reports-spotlight-card--primary {
    background: linear-gradient(145deg, rgba(47, 181, 210, .14) 0%, #fff 58%);
    border-color: rgba(47, 181, 210, .35);
}

.admin-reports-spotlight-card--link:hover {
    border-color: rgba(47, 181, 210, .4);
    transform: translateY(-1px);
    box-shadow: 0 8px 20px rgba(47, 181, 210, .1);
    text-decoration: none;
    color: inherit;
}

.admin-reports-spotlight-label {
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--color-muted);
}

.admin-reports-spotlight-head {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .45rem;
}

.admin-reports-spotlight-value {
    font-family: var(--font-display);
    font-size: clamp(1.35rem, 2.2vw, 1.75rem);
    font-weight: 800;
    line-height: 1.1;
}

.admin-reports-spotlight-value--sm {
    font-size: clamp(1.05rem, 1.6vw, 1.3rem);
}

.admin-reports-spotlight-hint {
    font-size: .78rem;
}

.admin-reports-kpi-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .35rem;
}

.admin-reports-kpi--revenue::before,
.admin-reports-kpi--orders::before,
.admin-reports-kpi--avg::before,
.admin-reports-kpi--clients::before {
    content: '';
    width: 1.75rem;
    height: 1.75rem;
    border-radius: var(--radius-md);
    background: rgba(47, 181, 210, .12);
    margin-bottom: .15rem;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 1rem;
}

.admin-reports-kpi--revenue::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230e7490' stroke-width='2'%3E%3Cpath d='M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6'/%3E%3C/svg%3E");
}

.admin-reports-kpi--orders::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230e7490' stroke-width='2'%3E%3Cpath d='M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4Z'/%3E%3Cpath d='M3 6h18M16 10a4 4 0 0 1-8 0'/%3E%3C/svg%3E");
}

.admin-reports-kpi--avg::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230e7490' stroke-width='2'%3E%3Cpath d='M3 3v18h18'/%3E%3Cpath d='m19 9-5 5-4-4-3 3'/%3E%3C/svg%3E");
}

.admin-reports-kpi--clients::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230e7490' stroke-width='2'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E");
}

.admin-reports-kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .65rem;
}

.admin-reports-kpi {
    display: grid;
    gap: .2rem;
    padding: 1rem 1.05rem;
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    text-decoration: none;
    color: var(--color-text);
    box-shadow: 0 1px 0 rgba(255, 255, 255, .8), 0 6px 18px rgba(15, 20, 25, .04);
    transition: border-color .15s, transform .15s, box-shadow .15s;
}

.admin-reports-kpi:hover {
    border-color: rgba(47, 181, 210, .4);
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(47, 181, 210, .1);
    text-decoration: none;
    color: var(--color-text);
}

.admin-reports-kpi--primary {
    background: linear-gradient(145deg, rgba(47, 181, 210, .12) 0%, #fff 55%);
    border-color: rgba(47, 181, 210, .35);
}

.admin-reports-kpi-label {
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--color-muted);
}

.admin-reports-kpi-value {
    font-family: var(--font-display);
    font-size: clamp(1.2rem, 2vw, 1.55rem);
    font-weight: 800;
    line-height: 1.1;
}

.admin-reports-kpi-hint {
    font-size: .78rem;
}

.admin-reports-v2 .admin-reports-chart-card {
    padding-bottom: 1.15rem;
}

.admin-reports-chart-v2 {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: .65rem;
    align-items: end;
    min-height: 220px;
    padding: .5rem .25rem 0;
    margin-bottom: 1rem;
}

.admin-reports-chart-col {
    display: grid;
    gap: .35rem;
    justify-items: center;
    text-align: center;
    text-decoration: none;
    color: inherit;
    border-radius: var(--radius-md);
    padding: .25rem .15rem .35rem;
    transition: background .15s;
}

.admin-reports-chart-col:hover {
    background: rgba(0, 0, 0, .04);
    text-decoration: none;
    color: inherit;
}

.admin-reports-chart-col--current .admin-reports-chart-bar-wrap {
    border-color: rgba(47, 181, 210, .55);
    box-shadow: 0 0 0 2px rgba(47, 181, 210, .12);
}

.admin-reports-chart-col--current .admin-reports-chart-bar {
    background: linear-gradient(180deg, #0e7490 0%, var(--color-accent) 100%);
}

.admin-reports-chart-col--current .admin-reports-chart-month {
    color: var(--color-ink);
    font-weight: 800;
}

.admin-reports-chart-col:hover .admin-reports-chart-bar {
    filter: brightness(1.05);
}

.admin-reports-chart-col--empty .admin-reports-chart-bar {
    background: rgba(15, 20, 25, .08);
}

.admin-reports-chart-col--empty .admin-reports-chart-amount {
    color: var(--color-muted);
    font-weight: 600;
}

.admin-reports-chart-bar-wrap {
    display: flex;
    align-items: flex-end;
    width: 100%;
    max-width: 56px;
    height: 140px;
    padding: .35rem;
    border-radius: var(--radius-lg);
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
}

.admin-reports-chart-bar {
    width: 100%;
    height: var(--bar-h, 20%);
    min-height: 8px;
    border-radius: var(--radius);
    background: linear-gradient(180deg, var(--color-accent) 0%, rgba(47, 181, 210, .55) 100%);
}

.admin-reports-chart-amount {
    font-size: .78rem;
    font-weight: 800;
    line-height: 1.2;
}

.admin-reports-chart-month {
    font-size: .72rem;
    font-weight: 700;
    color: var(--color-muted);
    text-transform: uppercase;
}

.admin-reports-chart-orders {
    font-size: .68rem;
}

.admin-reports-monthly-table-wrap {
    border-top: 1px solid var(--color-border);
    padding-top: .5rem;
}

.admin-reports-v2 .admin-reports-grid {
    gap: .85rem;
    align-items: stretch;
}

.admin-reports-rank-card {
    padding: 0;
    overflow: hidden;
    min-height: 100%;
}

.admin-reports-rank-card .section-header {
    padding: 1rem 1.15rem;
    margin: 0;
    border-bottom: 1px solid var(--color-border);
}

.admin-reports-rank-card .section-header h2 {
    margin: 0;
    font-size: 1rem;
}

.admin-reports-rank-list {
    list-style: none;
    margin: 0;
    padding: .5rem .65rem .75rem;
    display: grid;
    gap: .35rem;
}

.admin-reports-rank-item {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .65rem;
    align-items: center;
    padding: .65rem .75rem;
    border-radius: var(--radius-lg);
    border: 1px solid transparent;
    text-decoration: none;
    color: inherit;
    transition: background .15s, border-color .15s;
}

.admin-reports-rank-item:hover {
    background: var(--color-surface-subtle);
    border-color: var(--color-border);
    text-decoration: none;
    color: inherit;
}

.admin-reports-rank-pos {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.65rem;
    height: 1.65rem;
    border-radius: 999px;
    background: var(--color-surface-subtle);
    font-size: .78rem;
    font-weight: 800;
    color: var(--color-muted);
}

.admin-reports-rank-list li:nth-child(1) .admin-reports-rank-pos {
    background: rgba(47, 181, 210, .18);
    color: #0e7490;
}

.admin-reports-rank-list li:nth-child(2) .admin-reports-rank-pos,
.admin-reports-rank-list li:nth-child(3) .admin-reports-rank-pos {
    background: rgba(47, 181, 210, .1);
    color: var(--color-text);
}

.admin-reports-rank-body {
    min-width: 0;
    display: grid;
    gap: .12rem;
}

.admin-reports-rank-body strong {
    font-size: .88rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.admin-reports-rank-body .muted {
    font-size: .78rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.admin-reports-rank-meta {
    display: grid;
    gap: .35rem;
    min-width: 0;
}

.admin-reports-rank-meta > span:first-child {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.admin-reports-rank-bar {
    display: block;
    height: 4px;
    border-radius: 999px;
    background: var(--color-surface-subtle);
    overflow: hidden;
}

.admin-reports-rank-bar-fill {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--color-accent), rgba(47, 181, 210, .45));
}

.admin-reports-rank-bar-fill--qty {
    background: linear-gradient(90deg, #0e7490, var(--color-accent));
}

.admin-reports-exports .section-header {
    padding: 0 0 .75rem;
    margin: 0;
    border-bottom: 1px solid var(--color-border);
}

.admin-reports-exports .section-header h2 {
    margin: 0;
    font-size: 1rem;
}

.admin-reports-exports-grid {
    margin-top: .85rem;
}

.admin-reports-exports-grid .admin-export-card {
    border: 1px solid var(--color-border);
    box-shadow: none;
}

.admin-reports-exports-grid .admin-export-card-head h3 {
    margin: 0;
    font-size: .92rem;
}

.admin-reports-exports {
    padding: 1rem 1.15rem 1.15rem;
}

.admin-reports-exports-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}

@media (max-width: 1100px) {
    .admin-reports-spotlight {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-reports-spotlight-card--primary {
        grid-column: 1 / -1;
    }

    .admin-reports-kpis {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-reports-chart-v2 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        row-gap: 1rem;
    }
}

@media (max-width: 640px) {
    .admin-reports-spotlight {
        grid-template-columns: 1fr;
    }

    .admin-reports-spotlight-card--primary {
        grid-column: auto;
    }

    .admin-reports-kpis {
        grid-template-columns: 1fr;
    }

    .admin-reports-chart-v2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-reports-dates-form {
        flex-direction: column;
        align-items: stretch;
    }

    .admin-reports-dates-form .btn {
        width: 100%;
    }
}

/* ── Admin sync v2 (activity tab) ── */
.admin-sync-v2 {
    display: grid;
    gap: 1rem;
}

.admin-sync-attention {
    margin-bottom: .15rem;
    padding: .75rem .85rem .65rem;
    border: 1px solid rgba(245, 158, 11, .28);
    border-radius: var(--radius-lg);
    background: linear-gradient(180deg, rgba(245, 158, 11, .06) 0%, var(--color-surface) 100%);
}

.admin-sync-attention-head {
    display: flex;
    align-items: center;
    gap: .45rem;
    margin-bottom: .55rem;
}

.admin-sync-attention-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.25rem;
    height: 1.25rem;
    border-radius: 999px;
    background: rgba(245, 158, 11, .18);
    color: #b45309;
    font-size: .72rem;
    font-weight: 800;
    line-height: 1;
}

.admin-sync-attention-label {
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .02em;
    text-transform: uppercase;
    color: #92400e;
}

.has-admin-panel .admin-alerts-bar.admin-alerts-bar--inline {
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    backdrop-filter: none;
    flex-wrap: wrap;
    overflow-x: visible;
    gap: .4rem;
}

.has-admin-panel .admin-alerts-bar--inline .admin-alert {
    font-size: .78rem;
    padding: .35rem .75rem;
}

.admin-sync-hero {
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--color-border);
    box-shadow: 0 8px 28px rgba(15, 20, 25, .06);
}

.admin-sync-hero--ok {
    border-top: 3px solid #2fb5d2;
}

.admin-sync-hero--warn {
    border-top: 3px solid #f59e0b;
}

.admin-sync-hero-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.1rem 1.15rem .95rem;
    background: linear-gradient(135deg, rgba(47, 181, 210, .1) 0%, rgba(255, 255, 255, .96) 52%);
}

.admin-sync-hero--warn .admin-sync-hero-top {
    background: linear-gradient(135deg, rgba(245, 158, 11, .1) 0%, rgba(255, 255, 255, .96) 52%);
}

.admin-sync-hero-lead {
    display: flex;
    align-items: flex-start;
    gap: .85rem;
    min-width: 0;
}

.admin-sync-hero-icon-wrap {
    position: relative;
    flex-shrink: 0;
}

.admin-sync-hero-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.65rem;
    height: 2.65rem;
    border-radius: var(--radius-lg);
    background: rgba(47, 181, 210, .16);
    color: #0e7490;
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1;
}

.admin-sync-hero--warn .admin-sync-hero-icon {
    background: rgba(245, 158, 11, .16);
    color: #b45309;
}

.admin-sync-hero-pulse {
    position: absolute;
    right: -.15rem;
    bottom: -.15rem;
    width: .75rem;
    height: .75rem;
    border-radius: 999px;
    border: 2px solid #fff;
}

.admin-sync-hero-pulse--ok {
    background: #22c55e;
    box-shadow: 0 0 0 3px rgba(34, 197, 94, .22);
}

.admin-sync-hero-pulse--warn {
    background: #f59e0b;
    box-shadow: 0 0 0 3px rgba(245, 158, 11, .22);
}

.admin-sync-hero-eyebrow {
    margin: 0 0 .2rem;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--color-muted);
}

.admin-sync-hero-title {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(1.05rem, 2vw, 1.25rem);
    font-weight: 700;
    line-height: 1.25;
}

.admin-sync-hero-sub {
    margin: .35rem 0 0;
    font-size: .82rem;
    max-width: 38rem;
    line-height: 1.45;
}

.admin-sync-hero-badges {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .4rem;
    flex-shrink: 0;
}

.admin-sync-hero-health {
    padding: .75rem 1.15rem;
    border-top: 1px solid var(--color-border);
    background: var(--color-surface);
}

.admin-sync-hero-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    border-top: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
}

.admin-sync-hero-stat {
    display: grid;
    gap: .2rem;
    padding: .75rem 1rem;
    text-decoration: none;
    color: inherit;
    border-right: 1px solid var(--color-border);
}

.admin-sync-hero-stat:last-child {
    border-right: 0;
}

.admin-sync-hero-stat--warn {
    background: rgba(245, 158, 11, .08);
}

.admin-sync-hero-stat--warn:hover {
    background: rgba(245, 158, 11, .12);
    text-decoration: none;
    color: inherit;
}

.admin-sync-hero-stat-label {
    font-size: .66rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--color-muted);
}

.admin-sync-hero-stat-value {
    font-size: .92rem;
    font-weight: 700;
}

.admin-sync-hero-stat-value--ok {
    color: #0e7490;
}

.admin-sync-hero-policy {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    padding: .85rem 1.15rem;
    border-top: 1px solid var(--color-border);
    background: var(--color-surface);
}

.admin-sync-hero-policy-copy strong {
    display: block;
    font-size: .88rem;
    margin-bottom: .15rem;
}

.admin-sync-hero-policy-copy p {
    margin: 0;
    font-size: .8rem;
    max-width: 36rem;
}

.admin-sync-hero-policy-form {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .65rem .85rem;
}

.admin-sync-direction-badge {
    display: inline-flex;
    align-items: center;
    padding: .35rem .7rem;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 700;
    line-height: 1.25;
    text-align: right;
    max-width: 14rem;
}

.admin-sync-direction-badge--import {
    background: rgba(47, 181, 210, .14);
    color: #0e7490;
    border: 1px solid rgba(47, 181, 210, .35);
}

.admin-sync-direction-badge--bidirectional {
    background: rgba(245, 158, 11, .12);
    color: #b45309;
    border: 1px solid rgba(245, 158, 11, .35);
}

.admin-sync-policy-form {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem 1rem;
    padding-top: .85rem;
    border-top: 1px solid var(--color-border);
}

.admin-sync-policy-toggle {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    font-size: .88rem;
    font-weight: 600;
    cursor: pointer;
}

.admin-sync-policy-toggle input {
    width: 1rem;
    height: 1rem;
    accent-color: var(--color-accent);
}

.admin-sync-policy-readonly {
    margin: 0;
    font-size: .82rem;
}

.admin-sync-entity-card--disabled {
    opacity: .85;
    background: var(--color-surface-subtle);
    border-style: dashed;
}

.admin-sync-entity-disabled-hint {
    font-size: .72rem;
}

.admin-sync-v2 .admin-sync-jump {
    margin: -.15rem 0 0;
}

.admin-sync-status-card {
    padding: 1rem 1.15rem;
    border-left: 3px solid var(--color-accent);
}

.admin-sync-status-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: .85rem;
}

.admin-sync-status-title {
    margin: 0;
    font-family: var(--font-display);
    font-size: .95rem;
    font-weight: 700;
}

.admin-sync-status-summary {
    margin: .25rem 0 0;
    font-size: .82rem;
}

.admin-sync-status-badge {
    display: inline-flex;
    align-items: center;
    padding: .28rem .65rem;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .03em;
    text-transform: uppercase;
    white-space: nowrap;
}

.admin-sync-status-badge--ok {
    background: rgba(47, 181, 210, .14);
    color: #0e7490;
    border: 1px solid rgba(47, 181, 210, .35);
}

.admin-sync-status-badge--warn {
    background: rgba(245, 158, 11, .12);
    color: #b45309;
    border: 1px solid rgba(245, 158, 11, .35);
}

.admin-sync-v2 .admin-sync-health-row--compact {
    margin-bottom: .85rem;
}

.admin-sync-meta-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: .65rem;
    padding-top: .85rem;
    border-top: 1px solid var(--color-border);
}

.admin-sync-meta-item {
    display: grid;
    gap: .15rem;
    padding: .65rem .75rem;
    border-radius: var(--radius-md);
    background: var(--color-surface-subtle);
    text-decoration: none;
    color: inherit;
}

.admin-sync-meta-item--warn {
    background: rgba(245, 158, 11, .08);
    border: 1px solid rgba(245, 158, 11, .25);
}

.admin-sync-meta-item--warn:hover {
    border-color: rgba(245, 158, 11, .45);
    text-decoration: none;
    color: inherit;
}

.admin-sync-meta-label {
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--color-muted);
}

.admin-sync-meta-value {
    font-size: .88rem;
    font-weight: 700;
}

.admin-sync-issues-card {
    padding: 1rem 1.15rem;
    border-left: 3px solid #f59e0b;
}

.admin-sync-issues-head h2 {
    margin: 0 0 .25rem;
    font-size: .95rem;
}

.admin-sync-issues-head p {
    margin: 0 0 .75rem;
    font-size: .82rem;
}

.admin-sync-issues-list {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}

.admin-sync-issue {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: .45rem .75rem;
    border-radius: 999px;
    border: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
    font-size: .8rem;
    font-weight: 600;
    text-decoration: none;
    color: var(--color-text);
    transition: border-color .15s, background .15s;
}

.admin-sync-issue:hover {
    border-color: rgba(47, 181, 210, .4);
    background: rgba(47, 181, 210, .06);
    text-decoration: none;
    color: var(--color-text);
}

.admin-sync-issue--warn {
    border-color: rgba(245, 158, 11, .35);
    background: rgba(245, 158, 11, .08);
}

.admin-sync-issue--error {
    border-color: rgba(239, 68, 68, .35);
    background: rgba(239, 68, 68, .06);
}

.admin-sync-issue-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.35rem;
    height: 1.35rem;
    padding: 0 .35rem;
    border-radius: 999px;
    background: rgba(15, 20, 25, .08);
    font-size: .75rem;
    font-weight: 800;
}

.admin-sync-v2 .admin-sync-actions-section {
    margin-bottom: 0;
}

.admin-sync-actions-v2 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.admin-sync-action-card {
    position: relative;
}

.admin-sync-action-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: var(--radius-md);
    background: rgba(47, 181, 210, .12);
    font-size: 1.1rem;
    line-height: 1;
}

.admin-sync-action-card--recommended {
    background: linear-gradient(145deg, rgba(47, 181, 210, .14) 0%, #fff 58%);
    border-color: rgba(47, 181, 210, .45);
    box-shadow: 0 8px 22px rgba(47, 181, 210, .1);
}

.admin-sync-action-badge {
    position: absolute;
    top: .85rem;
    right: .85rem;
    padding: .2rem .5rem;
    border-radius: 999px;
    background: rgba(47, 181, 210, .16);
    color: #0e7490;
    font-size: .65rem;
    font-weight: 800;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.admin-sync-kpis {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: .65rem;
}

.admin-sync-kpi {
    display: grid;
    gap: .2rem;
    padding: .95rem 1rem;
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    text-decoration: none;
    color: var(--color-text);
    box-shadow: 0 1px 0 rgba(255, 255, 255, .8), 0 4px 14px rgba(15, 20, 25, .04);
    transition: border-color .15s, transform .15s, box-shadow .15s;
}

.admin-sync-kpi:hover {
    border-color: rgba(47, 181, 210, .4);
    transform: translateY(-1px);
    box-shadow: 0 8px 20px rgba(47, 181, 210, .1);
    text-decoration: none;
    color: var(--color-text);
}

.admin-sync-kpi--primary {
    background: linear-gradient(145deg, rgba(47, 181, 210, .12) 0%, #fff 55%);
    border-color: rgba(47, 181, 210, .35);
}

.admin-sync-kpi-label {
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--color-muted);
}

.admin-sync-kpi-value {
    font-family: var(--font-display);
    font-size: clamp(1.1rem, 1.8vw, 1.45rem);
    font-weight: 800;
    line-height: 1.1;
}

.admin-sync-kpi-hint {
    font-size: .75rem;
}

.admin-sync-v2 .admin-sync-entities-section {
    padding: 1rem 1.15rem 1.15rem;
}

.admin-sync-entity-group + .admin-sync-entity-group {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--color-border);
}

.admin-sync-entity-group-title {
    margin: 0 0 .65rem;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--color-muted);
}

.admin-sync-entity-grid-v2 {
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
}

.admin-sync-entity-card {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: .65rem;
    transition: border-color .15s, background .15s;
}

.admin-sync-entity-card:hover {
    border-color: rgba(47, 181, 210, .4);
    background: rgba(47, 181, 210, .04);
}

.admin-sync-entity-body {
    display: grid;
    gap: .12rem;
    min-width: 0;
}

.admin-sync-entity-body strong {
    font-size: .84rem;
    line-height: 1.3;
}

.admin-sync-entity-link {
    font-size: .72rem;
    text-decoration: none;
}

.admin-sync-entity-link:hover {
    text-decoration: underline;
}

.admin-sync-entity-card .btn {
    flex-shrink: 0;
}

.admin-sync-cron-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: .65rem;
    padding: 0 1.15rem 1.15rem;
}

.admin-sync-cron-section .section-header {
    padding: 1rem 1.15rem;
    margin: 0;
    border-bottom: 1px solid var(--color-border);
}

.admin-sync-cron-card {
    display: grid;
    gap: .35rem;
    padding: .85rem 1rem;
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    background: var(--color-surface-subtle);
}

.admin-sync-cron-card--late {
    border-color: rgba(239, 68, 68, .35);
    background: rgba(239, 68, 68, .04);
}

.admin-sync-cron-card--off {
    opacity: .75;
}

.admin-sync-cron-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
}

.admin-sync-cron-card-head strong {
    font-size: .88rem;
}

.admin-sync-cron-schedule {
    font-size: .72rem;
    word-break: break-all;
}

.admin-sync-cron-last {
    margin: 0;
    font-size: .78rem;
}

.admin-sync-verify-section .section-header {
    padding: 1rem 1.15rem;
    margin: 0;
    border-bottom: 1px solid var(--color-border);
}

.admin-sync-verify-row--fail {
    background: rgba(239, 68, 68, .04);
}

.admin-sync-log-section .section-header {
    padding: 1rem 1.15rem;
    margin: 0;
    border-bottom: 1px solid var(--color-border);
}

.admin-sync-log-count {
    font-size: .82rem;
}

.admin-sync-log-list {
    list-style: none;
    margin: 0;
    padding: .5rem .65rem .75rem;
    display: grid;
    gap: .35rem;
}

.admin-sync-log-item {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .65rem .85rem;
    padding: .75rem .85rem;
    border-radius: var(--radius-lg);
    border: 1px solid transparent;
    text-decoration: none;
    color: inherit;
    transition: background .15s, border-color .15s;
}

.admin-sync-log-item:hover {
    background: var(--color-surface-subtle);
    border-color: var(--color-border);
    text-decoration: none;
    color: inherit;
}

.admin-sync-log-item--error {
    border-left: 3px solid #ef4444;
}

.admin-sync-log-main {
    display: grid;
    gap: .15rem;
    min-width: 0;
    flex: 1 1 12rem;
}

.admin-sync-log-main strong {
    font-size: .88rem;
}

.admin-sync-log-message {
    font-size: .78rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.admin-sync-log-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem .65rem;
    font-size: .78rem;
}

.admin-sync-log-items {
    white-space: nowrap;
}

@media (max-width: 1100px) {
    .admin-sync-hero-top {
        flex-direction: column;
    }

    .admin-sync-hero-badges {
        flex-direction: row;
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .admin-sync-hero-policy {
        flex-direction: column;
        align-items: stretch;
    }

    .admin-sync-hero-policy-form {
        width: 100%;
    }

    .admin-sync-actions-v2 {
        grid-template-columns: 1fr;
    }

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

@media (max-width: 640px) {
    .admin-sync-hero-stats {
        grid-template-columns: 1fr;
    }

    .admin-sync-hero-stat {
        border-right: 0;
        border-bottom: 1px solid var(--color-border);
    }

    .admin-sync-hero-stat:last-child {
        border-bottom: 0;
    }

    .admin-sync-kpis {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-sync-log-meta {
        width: 100%;
    }
}

.admin-stock-presets {
    margin-bottom: .75rem;
}
.admin-stock-ok-card {
    padding: 1.25rem 1.35rem;
}
.admin-stock-ok-hint {
    margin: .75rem 0 0;
    font-size: .86rem;
}

.admin-error404-links {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    justify-content: center;
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--color-border);
}

@media (max-width: 900px) {
    .admin-cart-edit-grid,
    .admin-cart-order-grid {
        grid-template-columns: 1fr;
    }
    .admin-manual-preview-card {
        position: static;
    }
    .admin-reports-chart {
        overflow-x: auto;
        padding-bottom: .5rem;
    }
}

/* ── Admin UI polish v14 — order/client detail, translation nav ── */
.admin-order-audit-list {
    margin: 0;
    padding: 0;
    list-style: none;
}
.admin-order-audit-list .admin-activity-item {
    padding: .65rem 0;
    border-bottom: 1px solid var(--color-border);
}
.admin-order-audit-list .admin-activity-item:last-child {
    border-bottom: 0;
}
.admin-activity-meta {
    display: block;
    font-size: .75rem;
    margin-top: .15rem;
}

.admin-client-quick-card .admin-quick-links-stack {
    display: flex;
    flex-direction: column;
    gap: .4rem;
}
.admin-client-quick-card .admin-quick-link {
    display: block;
    text-align: left;
}

.admin-translation-nav {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: .75rem;
    padding: .75rem 1rem;
    margin-bottom: 1rem;
}
.admin-translation-nav-link {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    text-decoration: none;
    max-width: 100%;
    padding: .35rem .5rem;
    border-radius: var(--radius-md);
    transition: background .15s;
    color: inherit;
}
.admin-translation-nav-link:hover { background: rgba(0, 0, 0, .04); }
.admin-translation-nav-link strong {
    font-size: .92rem;
    color: var(--color-text);
}
.admin-translation-nav-prev { justify-self: start; }
.admin-translation-nav-next {
    text-align: right;
    justify-self: end;
}
.admin-translation-nav-back {
    font-size: .84rem;
    text-decoration: none;
}
.admin-translation-nav-back:hover { text-decoration: underline; }
.admin-translation-status-card {
    padding: .85rem 1.1rem;
    margin-bottom: 1rem;
}
.admin-translation-status-ok {
    border-left: 3px solid var(--color-success, #16a34a);
}
.admin-translation-status-warn {
    border-left: 3px solid var(--color-warning, #f59e0b);
}
.admin-translation-status-lead {
    margin: 0;
    font-size: .88rem;
}
.admin-translation-issue-list {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin: .5rem 0 0;
    padding: 0;
    list-style: none;
}

.admin-pricing-import-form {
    display: grid;
    gap: .75rem;
}
.admin-pricing-import-form .admin-import-format-box {
    margin: 0;
}
.admin-pricing-import-form .admin-import-format-example {
    margin-right: .35rem;
}

@media (max-width: 640px) {
    .admin-translation-nav {
        grid-template-columns: 1fr;
    }
    .admin-translation-nav-back {
        order: -1;
        text-align: center;
    }
    .admin-translation-nav-link {
        max-width: none;
    }
    .admin-translation-nav-next {
        text-align: left;
        justify-self: start;
    }
}

/* ── Admin UI polish v15 — help i18n, messages, login ── */
.admin-help-search-hint {
    margin: .35rem 0 0;
    font-size: .82rem;
}
.admin-help-shortcuts-card {
    margin-bottom: 1rem;
    padding: 1rem 1.2rem;
}
.admin-help-shortcuts-card h2 {
    margin: 0 0 .65rem;
    font-size: 1rem;
    font-family: var(--font-display);
}
.admin-help-shortcuts {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: .65rem 1.25rem;
    font-size: .86rem;
}
.admin-help-shortcuts kbd {
    display: inline-block;
    padding: .12rem .4rem;
    border-radius: var(--radius-sm);
    border: 1px solid var(--color-border);
    background: var(--color-surface-muted, rgba(0, 0, 0, .04));
    font-size: .78rem;
    font-family: inherit;
}
.admin-help-section-footer {
    margin: .75rem 0 0;
    font-size: .84rem;
}

.admin-message-reply-grid {
    align-items: start;
}
.admin-message-templates {
    margin-bottom: 1rem;
}
.admin-message-templates-label {
    display: block;
    margin-bottom: .4rem;
    font-size: .82rem;
}
.admin-message-template-btns {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}
.admin-message-char-count {
    margin: .35rem 0 0;
    font-size: .78rem;
    min-height: 1.1em;
}
.admin-message-copy-body {
    margin-top: .65rem;
}
.admin-message-action-list {
    display: flex;
    flex-direction: column;
    gap: .45rem;
}
.admin-message-action-list .btn-block {
    justify-content: center;
}
.meta-sub .admin-copy-btn {
    margin-left: .35rem;
    vertical-align: middle;
}

.admin-login-remember {
    display: flex;
    align-items: center;
    gap: .45rem;
    font-size: .88rem;
    margin: .15rem 0 .5rem;
    color: var(--color-muted, #64748b);
}
.admin-form-steps {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1rem;
    margin-bottom: .85rem;
    padding: .65rem 1rem;
}
.admin-form-step {
    font-size: .82rem;
    color: var(--color-muted, #64748b);
}
.admin-form-step.is-active {
    color: var(--color-accent);
    font-weight: 600;
}
.admin-client-create-jump .admin-form-step {
    text-decoration: none;
}
.admin-client-create-jump .admin-form-step:hover {
    color: var(--color-accent);
}
[id^="client-section-"] { scroll-margin-top: 5.5rem; }
    margin: 1rem 0 1.25rem;
    max-width: 32rem;
}
.admin-products-stats {
    margin-bottom: .75rem;
}
.admin-login-perks-label {
    margin: .5rem 0 0;
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.admin-translation-jump,
.admin-manual-jump,
.admin-translations-jump,
.admin-activity-jump,
.admin-cart-jump,
.admin-order-jump,
.admin-categories-jump,
.admin-favorites-jump,
.admin-group-jump,
.admin-groups-jump,
.admin-category-jump,
.admin-users-form-jump,
.admin-client-jump,
.admin-message-jump,
.admin-address-jump,
.admin-dashboard-jump,
.admin-clients-jump,
.admin-product-page-jump {
    margin-bottom: .85rem;
}
.admin-translation-jump .filter-tab,
.admin-manual-jump .filter-tab,
.admin-translations-jump .filter-tab,
.admin-activity-jump .filter-tab,
.admin-cart-jump .filter-tab,
.admin-order-jump .filter-tab,
.admin-categories-jump .filter-tab,
.admin-favorites-jump .filter-tab,
.admin-group-jump .filter-tab,
.admin-groups-jump .filter-tab,
.admin-category-jump .filter-tab,
.admin-users-form-jump .filter-tab,
.admin-client-jump .filter-tab,
.admin-message-jump .filter-tab,
.admin-address-jump .filter-tab,
.admin-dashboard-jump .filter-tab,
.admin-clients-jump .filter-tab,
.admin-product-page-jump .filter-tab,
[id^="translation-"],
[id^="translations-"],
[id^="manual-order-"],
[id^="manual-choose-"],
[id^="activity-"],
[id^="cart-"],
[id^="order-"],
[id^="categories-"],
[id^="category-"],
[id^="favorites-"],
[id^="group-"],
[id^="groups-"],
[id^="user-"],
[id^="client-"],
[id^="message-"],
[id^="address-"],
[id^="dashboard-"],
[id^="clients-"],
#manual-live-preview { scroll-margin-top: 5.5rem; }
.admin-translation-issue-link {
    text-decoration: none;
}
.admin-translation-issue-link:hover {
    filter: brightness(1.05);
}
.admin-translation-char-count {
    font-size: .78rem;
    display: block;
    margin-top: .25rem;
}
.admin-stat-form {
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    text-align: inherit;
}
.admin-stat-button {
    all: unset;
    display: flex;
    flex-direction: column;
    align-items: inherit;
    width: 100%;
    cursor: pointer;
}
.admin-exports-search-empty {
    margin-bottom: .85rem;
    padding: .85rem 1rem;
}

/* ── Client app UI v8 — address form, favorites filters, trust pills ── */
.has-client-app .client-form-section {
    margin: 0 0 1.25rem;
    padding: 0;
    border: 0;
}

.has-client-app .client-form-section legend {
    margin: 0 0 .65rem;
    padding: 0;
    font-size: .82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--color-muted, #64748b);
}

.has-client-app .client-form-readonly {
    margin: 0 0 1rem;
    padding: .75rem .85rem;
    border-radius: .5rem;
    background: rgba(15, 23, 42, .04);
    border: 1px solid rgba(15, 23, 42, .08);
}

.has-client-app .client-form-readonly-label {
    display: block;
    font-size: .78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: var(--color-muted, #64748b);
    margin-bottom: .25rem;
}

.has-client-app .client-form-readonly-value {
    display: block;
    font-size: .95rem;
    color: var(--color-text, #0f172a);
    word-break: break-word;
}

.has-client-app .client-form-hint {
    margin: .45rem 0 0;
    font-size: .82rem;
    line-height: 1.4;
}

.has-client-app .client-form-checkbox {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    margin: 0 0 .85rem;
    cursor: pointer;
    width: 100%;
    max-width: 100%;
}

.has-client-app .client-form-checkbox input[type="checkbox"],
.has-client-app .client-form-checkbox input[type="radio"] {
    width: 1.05rem;
    height: 1.05rem;
    min-width: 1.05rem;
    margin-top: .15rem;
    flex-shrink: 0;
}

.has-client-app .client-form-checkbox > span {
    flex: 1;
    min-width: 0;
    line-height: 1.45;
}

.has-client-app .client-form-checkbox > span strong {
    display: block;
    font-size: .88rem;
    color: var(--color-ink);
}

.has-client-app .client-form-checkbox-hint {
    display: block;
    margin-top: .15rem;
    font-size: .78rem;
    line-height: 1.35;
}

.has-client-app .client-preferences-form {
    margin-top: .65rem;
}

.has-client-app .client-preferences-form .form-actions {
    margin-top: .5rem;
    padding-top: .65rem;
    border-top: 1px solid var(--color-border);
}

.has-client-app.page-account .client-preferences-card {
    grid-column: 1 / -1;
    padding: 1rem 1.1rem;
}

.has-client-app.page-account .client-preferences-card > h2 {
    margin: 0 0 .35rem;
    font-size: 1rem;
}

.has-client-app.page-account .client-dashboard-account-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
}

.has-client-app.page-account .client-dashboard-account-grid > .panel-card {
    border-radius: var(--radius-lg);
    box-shadow: 0 1px 2px rgba(0, 0, 0, .04);
    padding: 1rem 1.1rem;
}

.has-client-app.page-account .client-dashboard-account-grid .info-dl {
    gap: .5rem .85rem;
}

.has-client-app.page-account .client-dashboard-account-grid .info-dl dd {
    font-size: .88rem;
}

.has-client-app.page-account .client-dashboard-account-grid .address-cards .address-card {
    border-radius: var(--radius-lg);
    background: var(--color-surface-subtle, #f8fafc);
}

.has-client-app.page-account .client-dashboard-account-grid .address-card-link {
    display: block;
    color: inherit;
    text-decoration: none;
}

.has-client-app.page-account .client-dashboard-account-grid .address-card-link:hover {
    color: var(--color-primary-dark);
}

.has-client-app.page-account .client-dashboard-account-grid .section-header {
    margin-bottom: .75rem;
}

.has-client-app.page-account .client-dashboard-account-grid .section-header h2 {
    margin: 0;
    font-size: 1rem;
}

.has-client-app.page-account .form-page .form-card,
.has-client-app.page-account .client-dashboard-orders.panel-card {
    border-left-width: 1px;
    border-left-color: var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: 0 1px 2px rgba(0, 0, 0, .04);
}

.has-client-app.page-account .client-form-page .form-card {
    padding: 1rem 1.1rem;
}

.has-client-app.page-account .client-form-page .form-card label:not(.client-form-checkbox) {
    margin-bottom: .85rem;
    font-weight: 600;
    font-size: .88rem;
}

.has-client-app.page-account .client-form-page fieldset.client-form-section {
    border: 0;
    margin: 0 0 1.25rem;
    padding: 0 0 1.25rem;
    border-bottom: 1px solid var(--color-border);
}

.has-client-app.page-account .client-form-page fieldset.client-form-section:last-of-type {
    margin-bottom: .85rem;
    padding-bottom: 0;
    border-bottom: 0;
}

.has-client-app.page-account .client-form-page fieldset.client-form-section legend {
    padding: 0;
    margin: 0 0 .75rem;
    font-size: .95rem;
    font-family: var(--font-display);
    font-weight: 700;
    color: var(--color-ink);
}

@media (max-width: 768px) {
    .has-client-app.page-account .client-dashboard-account-grid {
        grid-template-columns: 1fr;
    }
}

.has-client-app .client-favorites-filters {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    margin: 0 0 .85rem;
}

.has-client-app .client-filter-chip {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .35rem .75rem;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    background: #fff;
    font-size: .78rem;
    font-weight: 600;
    cursor: pointer;
    transition: border-color .15s, background .15s, color .15s;
}

.has-client-app .client-filter-chip.is-active {
    border-color: var(--color-ink);
    background: var(--color-ink);
    color: #fff;
}

.has-client-app .client-favorites-filter-empty {
    margin: 0 0 .85rem;
}

.has-client-app .product-card-stock-low {
    box-shadow: inset 0 0 0 1px rgba(234, 179, 8, .35);
}

.has-client-app .product-card-stock-out {
    opacity: .82;
}

.has-client-app.page-product .client-product-trust-compact {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    margin: .85rem 0 0;
}

.has-client-app .client-trust-pill {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .35rem .65rem;
    border-radius: 999px;
    background: var(--color-surface-subtle, #f8fafc);
    border: 1px solid var(--color-border);
    font-size: .72rem;
    font-weight: 600;
    color: var(--color-muted, #64748b);
}

.has-client-app .client-trust-pill svg {
    flex-shrink: 0;
    opacity: .75;
}

.has-client-app.page-orders .client-orders-filter-badge {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem;
    width: 100%;
    margin-bottom: .35rem;
}

.has-client-app.page-orders .orders-toolbar {
    flex-wrap: wrap;
    gap: .65rem;
}

.has-client-app.page-account .client-address-form .form-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}

@media (max-width: 640px) {
    .has-client-app.page-account .client-address-form .form-row {
        grid-template-columns: 1fr;
    }
}

/* ── Client app UI v9 — contact help, checkout addresses, legal, errors ── */
.has-client-app.page-contact .contact-grid-client-app {
    align-items: start;
}

.has-client-app .client-help-panel {
    padding: 1rem 1.1rem;
    margin-bottom: .85rem;
}

.has-client-app .client-help-panel-title {
    margin: 0 0 .35rem;
    font-size: .95rem;
    font-family: var(--font-display);
}

.has-client-app .client-help-links {
    margin: .65rem 0 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: .35rem;
}

.has-client-app .client-help-link {
    display: flex;
    align-items: center;
    gap: .55rem;
    padding: .55rem .65rem;
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    background: var(--color-surface-subtle, #f8fafc);
    color: inherit;
    text-decoration: none;
    font-size: .84rem;
    font-weight: 600;
    transition: border-color .15s, background .15s;
}

.has-client-app .client-help-link:hover {
    border-color: var(--color-ink);
    background: #fff;
}

/* Client checkout / cart — neutralize legacy public-page left-accent borders */
.has-client-app.page-checkout .checkout-form,
.has-client-app.page-checkout .checkout-summary,
.has-client-app.page-checkout .checkout-steps,
.has-client-app.page-cart .checkout-steps,
.has-client-app.page-cart .cart-table-wrap,
.has-client-app.page-cart .client-cart-summary.panel-card,
.has-client-app.page-cart .client-cart-tools.panel-card,
.has-client-app.page-cart .empty-state.panel-card {
    border-left-width: 1px;
    border-left-color: var(--color-border);
    border-radius: var(--radius-lg);
}

.has-client-app.page-checkout .checkout-form,
.has-client-app.page-checkout .checkout-summary {
    padding: 1rem 1.1rem;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .04);
}

.has-client-app.page-checkout .checkout-block {
    margin-bottom: 1.25rem;
    padding-bottom: 1.25rem;
}

.has-client-app.page-checkout .checkout-block-title {
    margin: 0 0 .75rem;
    padding-bottom: .45rem;
    border-bottom: 1px solid var(--color-border);
    font-size: .95rem;
    font-family: var(--font-display);
    color: var(--color-ink);
}

.has-client-app.page-checkout .address-select-list,
.has-client-app.page-checkout .payment-methods-grid {
    gap: .55rem;
}

.has-client-app.page-checkout .address-option,
.has-client-app.page-checkout .payment-option {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    padding: .85rem 1rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    cursor: pointer;
    transition: border-color .15s, background .15s;
}

.has-client-app.page-checkout .payment-option:hover {
    border-color: var(--color-accent);
}

.has-client-app.page-checkout .address-option.is-default:not(:has(input:checked)) {
    border-color: rgba(34, 197, 94, .45);
    background: rgba(34, 197, 94, .04);
}

.has-client-app.page-checkout .address-option:has(input:checked),
.has-client-app.page-checkout .payment-option:has(input:checked) {
    border-color: var(--color-accent);
    background: var(--color-surface-subtle);
    box-shadow: none;
}

.has-client-app.page-checkout .address-option-body,
.has-client-app.page-checkout .payment-option > span {
    flex: 1;
    min-width: 0;
    line-height: 1.45;
}

.has-client-app.page-checkout .address-option-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem;
    margin-bottom: .25rem;
}

.has-client-app.page-checkout .address-option-edit {
    display: inline-block;
    margin-top: .35rem;
    font-size: .78rem;
    font-weight: 600;
}

.has-client-app.page-checkout .checkout-block > label:not(.address-option):not(.payment-option) {
    margin-bottom: .75rem;
    font-weight: 600;
    font-size: .88rem;
}

.has-client-app.page-checkout .checkout-block textarea {
    display: block;
    width: 100%;
    margin-top: .4rem;
    min-height: 5rem;
    resize: vertical;
}

.has-client-app.page-checkout .summary-highlight,
.has-client-app.page-cart .summary-highlight {
    border-left-width: 1px;
    border-radius: var(--radius-md);
}

.has-client-app.page-checkout .checkout-summary h2,
.has-client-app.page-cart .client-cart-summary h2 {
    margin: 0 0 .75rem;
    font-size: 1rem;
}

.has-client-app.page-checkout .credit-warning.client-alert-compact {
    margin-top: .65rem;
}

.has-client-app.page-cart .cart-summary-trust,
.has-client-app.page-checkout .cart-summary-trust {
    flex-direction: row;
    flex-wrap: wrap;
    gap: .45rem .65rem;
    padding: .65rem 0;
    margin: .75rem 0;
}

.has-client-app.page-orders .order-success-banner.client-order-success {
    display: flex;
    align-items: flex-start;
    gap: .85rem;
    padding: 1rem 1.1rem;
    border-left-width: 1px;
    border-radius: var(--radius-lg);
    box-shadow: 0 1px 2px rgba(0, 0, 0, .04);
}

.has-client-app.page-orders .order-success-banner.client-order-success .order-success-icon {
    flex-shrink: 0;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: var(--radius-lg);
    background: var(--color-accent);
    color: var(--color-ink);
}

.has-client-app.page-legal .legal-nav-back {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-weight: 700;
    border-bottom: 1px solid var(--color-border);
    margin-bottom: .35rem;
    padding-bottom: .55rem;
}

.has-client-app.page-legal .legal-layout {
    align-items: start;
}

.has-client-app.page-legal .legal-nav {
    position: sticky;
    top: calc(var(--client-topbar-height, 3.35rem) + .5rem);
}

.has-client-app .client-catalog-filter-clear {
    display: inline-flex;
    align-items: center;
    padding: .35rem .75rem;
    font-size: .78rem;
    font-weight: 600;
    color: var(--color-primary-dark, #0f172a);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.has-client-app .error-page-wrap-client {
    max-width: 42rem;
    margin: 0 auto;
}

.has-client-app .error-page-wrap-client .error-page-actions {
    flex-wrap: wrap;
    gap: .55rem;
}

.has-client-app.page-account .address-card-actions {
    flex-wrap: wrap;
    gap: .35rem;
}

.has-client-app .client-dashboard-shortcuts {
    grid-template-columns: repeat(auto-fill, minmax(7.5rem, 1fr));
}

/* ── Client app UI v10 — copy refs, favorites search, scroll top ── */
.has-client-app .client-copy-ref-inline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .15rem .35rem;
    margin-left: .25rem;
    border: 0;
    border-radius: var(--radius-sm);
    background: transparent;
    color: var(--color-muted, #64748b);
    cursor: pointer;
    vertical-align: middle;
}

.has-client-app .client-copy-ref-inline:hover {
    color: var(--color-ink);
    background: var(--color-surface-subtle, #f8fafc);
}

.has-client-app .cart-line-ref,
.has-client-app .client-order-line-ref {
    display: inline-flex;
    align-items: center;
    gap: .15rem;
}

.has-client-app .cart-stock-warn {
    display: inline-block;
    margin-top: .15rem;
    font-size: .75rem;
    font-weight: 600;
    color: #b45309;
}

.has-client-app .client-order-product-link {
    color: inherit;
    text-decoration: none;
}

.has-client-app .client-order-product-link:hover {
    color: var(--color-primary-dark);
    text-decoration: underline;
}

.has-client-app .client-order-info-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .65rem;
    margin-bottom: .35rem;
}

.has-client-app .client-order-info-head h3 {
    margin: 0;
}

.has-client-app .client-favorites-search input {
    min-width: min(100%, 14rem);
    padding: .45rem .65rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    font-size: .84rem;
}

.has-client-app .client-favorites-toolbar-actions {
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem;
}

.has-client-app .address-card-link {
    display: block;
    color: inherit;
    text-decoration: none;
    border-radius: inherit;
}

.has-client-app .address-card-link:hover .address-card-body strong {
    color: var(--color-primary-dark);
}

.has-client-app .client-scroll-top {
    position: fixed;
    right: 1rem;
    bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
    z-index: 90;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 4px 18px rgba(15, 23, 42, .12);
    font-size: 1.1rem;
    font-weight: 700;
    cursor: pointer;
    transition: transform .15s, box-shadow .15s;
}

.has-client-app .client-scroll-top:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 22px rgba(15, 23, 42, .16);
}

.has-client-app.page-cart .client-scroll-top,
.has-client-app.page-checkout .client-scroll-top {
    bottom: calc(4.75rem + env(safe-area-inset-bottom, 0px));
}

.has-client-app.page-product .client-product-tool-link {
    text-decoration: none;
}

/* ── Client app UI v11 — checkout steps links, quick dropzone, order refs ── */
.has-client-app .checkout-steps-client-app .checkout-step-link {
    display: flex;
    align-items: center;
    gap: .55rem;
    color: inherit;
    text-decoration: none;
    border-radius: var(--radius-md);
    transition: background .15s;
}

.has-client-app .checkout-steps-client-app .checkout-step-link:hover {
    background: var(--color-surface-subtle, #f8fafc);
}

.has-client-app .checkout-steps-client-app .checkout-step.is-done .checkout-step-link:hover .step-label {
    text-decoration: underline;
}

.has-client-app .client-order-ref-link {
    color: inherit;
    text-decoration: none;
}

.has-client-app .client-order-ref-link:hover strong {
    color: var(--color-primary-dark);
    text-decoration: underline;
}

.has-client-app .client-sidebar-badge.is-warn {
    background: #fef3c7;
    color: #92400e;
}

.has-client-app.page-quick-order .quick-csv-dropzone {
    position: relative;
    border-radius: var(--radius-lg);
    transition: box-shadow .15s, background .15s;
}

.has-client-app.page-quick-order .quick-csv-dropzone.is-dragover {
    box-shadow: inset 0 0 0 2px var(--color-ink);
    background: rgba(15, 23, 42, .03);
}

.has-client-app.page-quick-order .quick-csv-dropzone textarea {
    width: 100%;
}

.has-client-app.page-quick-order .quick-csv-meta {
    display: block;
    margin-top: .35rem;
    font-size: .78rem;
}

.has-client-app .client-dashboard-orders .client-order-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem;
}

/* ── Client app UI v12 — catalog shell, copy ref, pagination, forms ── */
.has-client-app.page-catalog .catalog-layout-client-app {
    gap: .85rem;
}

.has-client-app .product-card-body .product-ref {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .15rem .35rem;
}

.has-client-app.page-catalog .product-grid-client-app .product-ref {
    font-size: .68rem;
    margin-bottom: .25rem;
}

.has-client-app .product-card-body .product-ref .product-card-copy-ref {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.35rem;
    height: 1.35rem;
    margin: 0;
    padding: 0;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    background: var(--color-surface-subtle, #f8fafc);
    color: var(--color-muted, #64748b);
    cursor: pointer;
    flex-shrink: 0;
}

.has-client-app .product-card-body .product-ref .product-card-copy-ref:hover {
    color: var(--color-ink);
    border-color: var(--color-ink);
    background: #fff;
}

.has-client-app .client-pagination-nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: .65rem;
    margin-top: .85rem;
}

.has-client-app .client-pagination-status {
    font-size: .84rem;
    font-weight: 600;
}

.has-client-app .client-orders-results-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .45rem;
    padding: .65rem .85rem;
    margin-bottom: .65rem;
}

.has-client-app .client-dashboard-crumb {
    margin-bottom: .65rem;
}

.has-client-app .contact-message-meta.is-valid {
    color: #15803d;
}

.has-client-app .contact-message-meta.is-invalid {
    color: #b45309;
}

.has-client-app .legal-nav-link.is-active {
    font-weight: 700;
    color: var(--color-ink);
}

/* ── Client app UI v13 — shortcuts, favorites sort, order sticky bar ── */
.has-client-app .client-dashboard-shortcuts-hint {
    margin: .35rem 0 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem;
}

.has-client-app .client-shortcuts-open-trigger {
    display: inline-flex;
    align-items: center;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
}

.has-client-app .client-shortcuts-open-trigger kbd {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.35rem;
    padding: .1rem .35rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    background: var(--color-surface-subtle);
    font-size: .75rem;
    font-family: inherit;
}

.has-client-app .client-shortcuts-trigger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-surface);
    color: var(--color-muted, #64748b);
    font-size: .95rem;
    font-weight: 700;
    cursor: pointer;
    line-height: 1;
}

.has-client-app .client-shortcuts-trigger:hover {
    color: var(--color-ink);
    border-color: var(--color-ink);
}

.has-client-app .client-shortcuts-dialog {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 5rem 1rem 1.5rem;
}

.has-client-app .client-shortcuts-dialog[hidden] {
    display: none;
}

.has-client-app .client-shortcuts-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, .45);
}

.has-client-app .client-shortcuts-panel {
    position: relative;
    width: min(28rem, 100%);
    max-height: calc(100vh - 6rem);
    overflow: auto;
    padding: 1rem 1.15rem 1.15rem;
}

.has-client-app .client-shortcuts-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: .35rem;
}

.has-client-app .client-shortcuts-head h2 {
    margin: 0;
    font-size: 1.05rem;
}

.has-client-app .client-shortcuts-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: none;
    border-radius: var(--radius-md);
    background: transparent;
    color: var(--color-muted, #64748b);
    font-size: 1.35rem;
    line-height: 1;
    cursor: pointer;
}

.has-client-app .client-shortcuts-close:hover {
    background: var(--color-surface-subtle);
    color: var(--color-ink);
}

.has-client-app .client-shortcuts-list {
    list-style: none;
    margin: .85rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .45rem;
}

.has-client-app .client-shortcuts-item {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .45rem 0;
    border-bottom: 1px solid var(--color-border-subtle, rgba(15, 23, 42, .08));
}

.has-client-app .client-shortcuts-item:last-child {
    border-bottom: none;
}

.has-client-app .client-shortcuts-keys {
    display: inline-flex;
    flex-shrink: 0;
    gap: .25rem;
}

.has-client-app .client-shortcuts-keys kbd {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.5rem;
    padding: .15rem .4rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    background: var(--color-surface-subtle);
    font-size: .72rem;
    font-family: inherit;
    line-height: 1.3;
}

.has-client-app .client-shortcuts-label {
    color: var(--color-ink);
    text-decoration: none;
    font-size: .92rem;
}

.has-client-app .client-shortcuts-label:hover {
    text-decoration: underline;
}

.has-client-app .client-favorites-sort-label {
    display: inline-flex;
    align-items: center;
}

.has-client-app .client-favorites-sort {
    min-width: 9.5rem;
    padding: .35rem .55rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-surface);
    font-size: .85rem;
}

.has-client-app.page-legal .legal-page-client-app {
    scroll-behavior: smooth;
}

.has-client-app.page-orders .client-order-detail .client-order-actions-bar {
    position: sticky;
    bottom: .65rem;
    z-index: 25;
    margin-top: .85rem;
    box-shadow: 0 -4px 24px rgba(15, 23, 42, .1);
    border: 1px solid var(--color-border);
}

@media (max-width: 640px) {
    .has-client-app .client-favorites-toolbar-actions {
        width: 100%;
    }

    .has-client-app .client-favorites-sort {
        width: 100%;
    }

    .has-client-app.page-orders .client-order-detail .client-order-actions-bar {
        bottom: 0;
        border-radius: var(--radius-lg) var(--radius-lg) 0 0;
    }
}

/* ── Admin product pricing v14 — KPIs, tariff tools, sticky sub-tabs ── */
.admin-product-pricing-head {
    padding: 1rem 1.25rem .35rem;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
    border-bottom: 1px solid var(--color-border);
    background: linear-gradient(180deg, var(--color-surface-subtle) 0%, var(--color-surface) 100%);
}

.admin-product-pricing-kpis {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
    gap: .65rem;
    flex: 1 1 28rem;
}

.admin-product-pricing-kpi {
    display: grid;
    gap: .15rem;
    padding: .65rem .75rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-surface);
}

.admin-product-pricing-kpi--accent {
    border-color: rgba(47, 181, 210, .35);
    background: rgba(47, 181, 210, .06);
}

.admin-product-pricing-kpi-label {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--color-muted);
}

.admin-product-pricing-kpi-value {
    font-size: 1.05rem;
    line-height: 1.2;
}

.admin-product-pricing-kpi-delta {
    font-size: .75rem;
    font-weight: 700;
}

.admin-product-pricing-kpi-delta.is-down,
.admin-product-compare-delta.is-down {
    color: #059669;
}

.admin-product-pricing-kpi-delta.is-up,
.admin-product-compare-delta.is-up {
    color: #dc2626;
}

.admin-product-pricing-kpi-meta {
    font-size: .72rem;
    line-height: 1.35;
}

.admin-product-pricing-head-actions {
    margin: 0;
    align-self: center;
}

.admin-product-pricing-panel:not([hidden]) .admin-product-pricing-tabs {
    position: sticky;
    top: 0;
    z-index: 6;
}

.admin-product-tariff-tools {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem .75rem;
    margin: 0 0 .85rem;
    padding: .65rem .75rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-surface-subtle);
}

.admin-product-tariff-filter-label {
    flex: 1 1 12rem;
    margin: 0;
}

.admin-product-tariff-filter-label input[type="search"] {
    width: 100%;
    padding: .4rem .55rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    font: inherit;
}

.admin-product-tariff-markup {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem;
    margin: 0;
    font-size: .84rem;
}

.admin-product-tariff-markup input[type="number"] {
    width: 4.25rem;
}

.admin-product-tariff-row.has-override {
    background: rgba(47, 181, 210, .04);
}

.admin-tariff-price-input.is-dirty {
    border-color: #d97706;
    background: #fffbeb;
}

.admin-badge-inherited {
    background: var(--color-surface-subtle);
    color: var(--color-muted);
    border: 1px solid var(--color-border);
}

.admin-product-base-delete-form {
    margin-top: .5rem;
}

.admin-product-tariff-dirty-hint {
    margin: .65rem 0 0;
    font-size: .82rem;
    color: #b45309;
    font-weight: 600;
}

@media (max-width: 768px) {
    .admin-product-pricing-kpis {
        grid-template-columns: 1fr 1fr;
    }

    .admin-product-tariff-tools {
        flex-direction: column;
        align-items: stretch;
    }
}

.client-payment-redirect-card {
    max-width: 32rem;
    margin: 2rem auto;
    text-align: center;
    padding: clamp(1.5rem, 3vw, 2.25rem);
}
.client-payment-redirect-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 4rem;
    height: 4rem;
    margin: 0 auto 1rem;
    border-radius: 50%;
    background: rgba(47, 181, 210, .12);
    color: var(--color-primary-dark, #0d6b7d);
}
.client-payment-redirect-wait {
    margin: 1rem 0;
}
.client-payment-redirect-breakdown {
    max-width: 20rem;
    margin: 1rem auto;
    text-align: left;
}
.client-payment-redirect-amount {
    margin: .75rem 0 0;
    font-size: 1.05rem;
}
.client-order-pay-amount {
    margin: .65rem 0 0;
    font-size: .92rem;
    line-height: 1.5;
}
.client-order-pay-amount .muted {
    display: block;
    margin-top: .2rem;
    font-size: .84rem;
}
.order-total-ttc-row td {
    border-top: 1px solid var(--color-border);
}
.client-order-pay-alert .actions-inline {
    margin-bottom: 0;
}
