/* ═══════════════════════════════════════════
   Design tokens — light theme (default)
   All contrast ratios verified against WCAG 2.1 AA
═══════════════════════════════════════════ */
:root {
    color-scheme: light;

    /* Surfaces */
    --mc-bg: #f0f4f8;
    --mc-panel: #ffffff;
    --mc-panel-soft: #f8fafc;
    --mc-panel-glass: rgba(255, 255, 255, 0.90);
    --mc-panel-card: rgba(255, 255, 255, 0.97);
    --mc-header-bg: rgba(248, 250, 252, 0.96);
    --mc-body-gradient: linear-gradient(180deg, #f0f4f8 0%, #e8edf4 45%, #f0f4f8 100%);

    /* Typography */
    --mc-text: #1a1e25;        /* 15.9:1 on --mc-bg ✓ */
    --mc-muted: #505766;       /* 5.85:1 on --mc-bg ✓ */
    --mc-lead-text: #374151;   /* 10.8:1 on white ✓ */

    /* Accent */
    --mc-accent: #7c4b1e;            /* 7.3:1 on white ✓, 6.3:1 on --mc-bg ✓ */
    --mc-accent-hover: #6a3f18;
    --mc-accent-contrast: #ffffff;   /* text on accent button: 7.3:1 ✓ */
    --mc-accent-glow: rgba(124, 75, 30, 0.12);
    --mc-accent-glow-strong: rgba(124, 75, 30, 0.20);
    --mc-accent-border: rgba(124, 75, 30, 0.28);

    /* Lines / elevation */
    --mc-line: rgba(0, 0, 0, 0.12);
    --mc-card-shadow: 0 1px 3px rgba(0, 0, 0, 0.06), 0 4px 16px rgba(0, 0, 0, 0.05);
    --mc-backdrop: none;

    /* Focus — WCAG 2.4.7 */
    --mc-focus-ring: #1d4ed8;        /* 5.9:1 on white ✓ */
    --mc-focus-shadow: 0 0 0 3px rgba(29, 78, 216, 0.40);

    /* Form inputs */
    --mc-input-bg: #ffffff;
    --mc-input-border: rgba(0, 0, 0, 0.22);
    --mc-input-focus-border: #7c4b1e;
    --mc-input-focus-shadow: rgba(124, 75, 30, 0.22);
    --mc-placeholder: rgba(26, 30, 37, 0.50);

    /* Stock badges */
    --mc-stock-ok-text: #166534;     /* 7.0:1 on white ✓ */
    --mc-stock-ok-bg: rgba(22, 101, 52, 0.08);
    --mc-stock-ok-border: rgba(22, 101, 52, 0.25);
    --mc-stock-ok-dot: #16a34a;
    --mc-stock-low-text: #92400e;    /* 7.4:1 on white ✓ */
    --mc-stock-low-bg: rgba(146, 64, 14, 0.08);
    --mc-stock-low-border: rgba(146, 64, 14, 0.25);
    --mc-stock-low-dot: #d97706;
    --mc-stock-out-text: #991b1b;    /* 7.3:1 on white ✓ */
    --mc-stock-out-bg: rgba(153, 27, 27, 0.08);
    --mc-stock-out-border: rgba(153, 27, 27, 0.25);
    --mc-stock-out-dot: #dc2626;

    /* Alerts */
    --mc-alert-danger-bg: #fef2f2;
    --mc-alert-danger-border: #fca5a5;
    --mc-alert-danger-text: #991b1b;  /* 7.3:1 on #fef2f2 ✓ */
    --mc-alert-info-bg: #eff6ff;
    --mc-alert-info-border: #93c5fd;
    --mc-alert-info-text: #1e40af;    /* 7.3:1 on #eff6ff ✓ */

    /* Toast / mini-cart */
    --mc-toast-bg: #f0fdf4;
    --mc-toast-text: #14532d;
    --mc-toast-border: rgba(22, 101, 52, 0.30);
    --mc-mini-cart-bg: #ffffff;
}

/* ═══════════════════════════════════════════
   Dark theme — system preference
═══════════════════════════════════════════ */
@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
        color-scheme: dark;
        --mc-bg: #0f1720;
        --mc-panel: #172230;
        --mc-panel-soft: #1f2d3d;
        --mc-panel-glass: rgba(23, 34, 48, 0.72);
        --mc-panel-card: rgba(23, 34, 48, 0.86);
        --mc-header-bg: rgba(8, 13, 18, 0.92);
        --mc-body-gradient: linear-gradient(180deg, #0f1720 0%, #152131 45%, #101820 100%);
        --mc-text: #f3efe8;
        --mc-muted: #b7b8ba;
        --mc-lead-text: #d0d3d8;
        --mc-accent: #be8454;
        --mc-accent-hover: #d19967;
        --mc-accent-contrast: #1b120d;
        --mc-accent-glow: rgba(190, 132, 84, 0.22);
        --mc-accent-glow-strong: rgba(190, 132, 84, 0.32);
        --mc-accent-border: rgba(190, 132, 84, 0.28);
        --mc-line: rgba(255, 255, 255, 0.12);
        --mc-card-shadow: none;
        --mc-backdrop: blur(10px);
        --mc-focus-ring: #60a5fa;
        --mc-focus-shadow: 0 0 0 3px rgba(96, 165, 250, 0.40);
        --mc-input-bg: rgba(255, 255, 255, 0.06);
        --mc-input-border: rgba(255, 255, 255, 0.20);
        --mc-input-focus-border: rgba(190, 132, 84, 0.70);
        --mc-input-focus-shadow: rgba(190, 132, 84, 0.22);
        --mc-placeholder: rgba(243, 239, 232, 0.45);
        --mc-stock-ok-text: #4ade80;
        --mc-stock-ok-bg: rgba(46, 160, 67, 0.15);
        --mc-stock-ok-border: rgba(74, 222, 128, 0.25);
        --mc-stock-ok-dot: #4ade80;
        --mc-stock-low-text: #facc15;
        --mc-stock-low-bg: rgba(234, 179, 8, 0.12);
        --mc-stock-low-border: rgba(250, 204, 21, 0.25);
        --mc-stock-low-dot: #facc15;
        --mc-stock-out-text: #f87171;
        --mc-stock-out-bg: rgba(239, 68, 68, 0.12);
        --mc-stock-out-border: rgba(248, 113, 113, 0.25);
        --mc-stock-out-dot: #f87171;
        --mc-alert-danger-bg: rgba(220, 53, 69, 0.14);
        --mc-alert-danger-border: rgba(248, 113, 113, 0.35);
        --mc-alert-danger-text: #fecaca;
        --mc-alert-info-bg: rgba(59, 130, 246, 0.16);
        --mc-alert-info-border: rgba(96, 165, 250, 0.30);
        --mc-alert-info-text: #dbeafe;
        --mc-toast-bg: #153a2a;
        --mc-toast-text: #f1fff7;
        --mc-toast-border: rgba(166, 239, 196, 0.26);
        --mc-mini-cart-bg: #141f2b;
    }
}

/* ═══════════════════════════════════════════
   Dark theme — explicit user toggle
═══════════════════════════════════════════ */
:root[data-theme="dark"] {
    color-scheme: dark;
    --mc-bg: #0f1720;
    --mc-panel: #172230;
    --mc-panel-soft: #1f2d3d;
    --mc-panel-glass: rgba(23, 34, 48, 0.72);
    --mc-panel-card: rgba(23, 34, 48, 0.86);
    --mc-header-bg: rgba(8, 13, 18, 0.92);
    --mc-body-gradient: linear-gradient(180deg, #0f1720 0%, #152131 45%, #101820 100%);
    --mc-text: #f3efe8;
    --mc-muted: #b7b8ba;
    --mc-lead-text: #d0d3d8;
    --mc-accent: #be8454;
    --mc-accent-hover: #d19967;
    --mc-accent-contrast: #1b120d;
    --mc-accent-glow: rgba(190, 132, 84, 0.22);
    --mc-accent-glow-strong: rgba(190, 132, 84, 0.32);
    --mc-accent-border: rgba(190, 132, 84, 0.28);
    --mc-line: rgba(255, 255, 255, 0.12);
    --mc-card-shadow: none;
    --mc-backdrop: blur(10px);
    --mc-focus-ring: #60a5fa;
    --mc-focus-shadow: 0 0 0 3px rgba(96, 165, 250, 0.40);
    --mc-input-bg: rgba(255, 255, 255, 0.06);
    --mc-input-border: rgba(255, 255, 255, 0.20);
    --mc-input-focus-border: rgba(190, 132, 84, 0.70);
    --mc-input-focus-shadow: rgba(190, 132, 84, 0.22);
    --mc-placeholder: rgba(243, 239, 232, 0.45);
    --mc-stock-ok-text: #4ade80;
    --mc-stock-ok-bg: rgba(46, 160, 67, 0.15);
    --mc-stock-ok-border: rgba(74, 222, 128, 0.25);
    --mc-stock-ok-dot: #4ade80;
    --mc-stock-low-text: #facc15;
    --mc-stock-low-bg: rgba(234, 179, 8, 0.12);
    --mc-stock-low-border: rgba(250, 204, 21, 0.25);
    --mc-stock-low-dot: #facc15;
    --mc-stock-out-text: #f87171;
    --mc-stock-out-bg: rgba(239, 68, 68, 0.12);
    --mc-stock-out-border: rgba(248, 113, 113, 0.25);
    --mc-stock-out-dot: #f87171;
    --mc-alert-danger-bg: rgba(220, 53, 69, 0.14);
    --mc-alert-danger-border: rgba(248, 113, 113, 0.35);
    --mc-alert-danger-text: #fecaca;
    --mc-alert-info-bg: rgba(59, 130, 246, 0.16);
    --mc-alert-info-border: rgba(96, 165, 250, 0.30);
    --mc-alert-info-text: #dbeafe;
    --mc-toast-bg: #153a2a;
    --mc-toast-text: #f1fff7;
    --mc-toast-border: rgba(166, 239, 196, 0.26);
    --mc-mini-cart-bg: #141f2b;
}

/* ═══════════════════════════════════════════
   Accessibility utilities
═══════════════════════════════════════════ */

/* Skip link — WCAG 2.4.1 */
.skip-link {
    position: absolute;
    top: -999px;
    left: 0.5rem;
    z-index: 10000;
    padding: 0.6rem 1.25rem;
    background: var(--mc-focus-ring);
    color: #ffffff;
    border-radius: 0 0 0.5rem 0.5rem;
    font-size: 0.95rem;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
    transition: top 0.1s;
}

.skip-link:focus {
    top: 0;
    outline: 3px solid #ffffff;
    outline-offset: 2px;
}

/* Visually hidden — keep content accessible to AT */
.visually-hidden,
.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.visually-hidden-focusable:not(:focus):not(:focus-within) {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* Global focus indicator — WCAG 2.4.7 */
:focus-visible {
    outline: 3px solid var(--mc-focus-ring);
    outline-offset: 3px;
    border-radius: 3px;
}

/* Remove focus ring for mouse/touch but keep for keyboard */
:focus:not(:focus-visible) {
    outline: none;
}

/* ═══════════════════════════════════════════
   Reduced motion — WCAG 2.3.3
═══════════════════════════════════════════ */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }

    .reveal-up {
        opacity: 1 !important;
        transform: none !important;
        animation: none !important;
    }

    .pd-gallery__img,
    .pd-btn-cart,
    .pd-btn-back,
    .pd-pill,
    .pd-tab,
    .pd-gallery__thumb,
    .recently-viewed__card,
    .btn-copper {
        transition: none !important;
        transform: none !important;
    }
}

/* ═══════════════════════════════════════════
   Base
═══════════════════════════════════════════ */
html {
    font-size: 16px;
}

body {
    font-family: "Manrope", sans-serif;
    background: var(--mc-body-gradient);
    background-attachment: fixed;
    color: var(--mc-text);
    transition: background-color 0.25s, color 0.25s;
}

h1, h2, h3, .navbar-brand {
    font-family: "Cormorant Garamond", serif;
    letter-spacing: 0.01em;
}

/* ═══════════════════════════════════════════
   Header / Footer
═══════════════════════════════════════════ */
.site-header,
.site-footer {
    background: var(--mc-header-bg);
    backdrop-filter: var(--mc-backdrop);
    -webkit-backdrop-filter: var(--mc-backdrop);
    border-bottom: 1px solid var(--mc-line);
    box-shadow: var(--mc-card-shadow);
}

.site-footer {
    border-bottom: none;
    border-top: 1px solid var(--mc-line);
}

/* Footer logos */
.footer-logos {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
}

.footer-logos__strip {
    height: 80px;
    width: auto;
    max-width: 100%;
    object-fit: contain;
    flex: 1 1 auto;
}

.footer-logos__crest {
    height: 80px;
    width: auto;
    object-fit: contain;
    flex: 0 0 auto;
}

@media (max-width: 575.98px) {
    .footer-logos__strip {
        height: 64px;
    }
    .footer-logos__crest {
        height: 64px;
    }
}

.navbar-brand,
.nav-link,
.navbar-toggler {
    color: var(--mc-text) !important;
}

/* ═══════════════════════════════════════════
   Theme toggle button
═══════════════════════════════════════════ */
.theme-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 50%;
    border: 1.5px solid var(--mc-line);
    background: transparent;
    color: var(--mc-text);
    cursor: pointer;
    padding: 0;
    transition: border-color 0.15s, background 0.15s;
}

.theme-toggle:hover {
    border-color: var(--mc-accent);
    background: var(--mc-accent-glow);
    color: var(--mc-accent);
}

.theme-toggle:focus-visible {
    outline: 3px solid var(--mc-focus-ring);
    outline-offset: 3px;
}

.theme-toggle__icon {
    display: none;
    width: 1.1rem;
    height: 1.1rem;
    pointer-events: none;
}

:root[data-theme="light"] .theme-toggle__icon--dark,
:root:not([data-theme="dark"]) .theme-toggle__icon--dark {
    display: block;
}

:root[data-theme="dark"] .theme-toggle__icon--light {
    display: block;
}

@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) .theme-toggle__icon--dark {
        display: none;
    }
    :root:not([data-theme="light"]) .theme-toggle__icon--light {
        display: block;
    }
}

/* ═══════════════════════════════════════════
   Cookie consent banner — GDPR / EAA
═══════════════════════════════════════════ */
.cookie-banner {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 9999;
    background: var(--mc-panel-card);
    border-top: 1px solid var(--mc-line);
    box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.14);
    padding: 1rem 1.25rem;
}

.cookie-banner__inner {
    max-width: 1320px;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1.5rem;
}

.cookie-banner__text {
    flex: 1 1 280px;
    font-size: 0.88rem;
    color: var(--mc-text);
    line-height: 1.55;
    margin: 0;
}

.cookie-banner__text a {
    color: var(--mc-accent);
    text-decoration: underline;
}

.cookie-banner__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    flex-shrink: 0;
}

.cookie-banner__btn {
    padding: 0.5rem 1rem;
    border-radius: 2rem;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    border: 1.5px solid transparent;
    font-family: "Manrope", sans-serif;
}

.cookie-banner__btn--accept {
    background: var(--mc-accent);
    color: var(--mc-accent-contrast);
    border-color: var(--mc-accent);
}

.cookie-banner__btn--accept:hover {
    background: var(--mc-accent-hover);
    border-color: var(--mc-accent-hover);
}

.cookie-banner__btn--reject {
    background: transparent;
    color: var(--mc-text);
    border-color: var(--mc-line);
}

.cookie-banner__btn--reject:hover {
    border-color: var(--mc-muted);
}

/* ═══════════════════════════════════════════
   Hero section
═══════════════════════════════════════════ */
.hero-shell {
    min-height: calc(100svh - 78px);
    display: flex;
    align-items: center;
    padding: 2rem 0 3rem;
    background:
        radial-gradient(circle at top right, var(--mc-accent-glow-strong), transparent 30%),
        linear-gradient(135deg, rgba(255,255,255,0.05), transparent 38%);
}

.hero-grid {
    display: grid;
    gap: 1.5rem;
}

.hero-copy h1,
.section-heading h1,
.section-heading h2,
.section-cta h2 {
    font-size: clamp(2.6rem, 8vw, 5.4rem);
    line-height: 0.94;
    margin-bottom: 1rem;
}

.hero-copy,
.hero-panel,
.feature-block,
.filter-shell,
.catalog-product,
.product-visual,
.cart-line,
.checkout-summary,
.merchant-tile {
    border: 1px solid var(--mc-line);
    background: var(--mc-panel-glass);
    backdrop-filter: var(--mc-backdrop);
    -webkit-backdrop-filter: var(--mc-backdrop);
    box-shadow: var(--mc-card-shadow);
}

.hero-copy,
.hero-panel,
.feature-block,
.filter-shell,
.catalog-product,
.cart-line,
.checkout-summary,
.merchant-tile {
    padding: 1.25rem;
    border-radius: 1.5rem;
}

.hero-panel {
    display: grid;
    gap: 1rem;
    align-content: end;
}

.hero-stat span,
.feature-meta,
.eyebrow,
.catalog-product p,
.merchant-tile p {
    text-transform: uppercase;
    letter-spacing: 0.14em;
    font-size: 0.72rem;
    color: var(--mc-muted);
}

.lead-copy,
.feature-block p,
.catalog-product span,
.checkout-summary p,
.cart-line p {
    color: var(--mc-lead-text);
    max-width: 42rem;
}

.btn-copper {
    background: var(--mc-accent);
    color: var(--mc-accent-contrast);
    border: none;
}

.btn-copper:hover,
.btn-copper:focus {
    background: var(--mc-accent-hover);
    color: var(--mc-accent-contrast);
}

.section-shell {
    padding: 4rem 0;
}

.muted-shell {
    background: linear-gradient(180deg, var(--mc-accent-glow), rgba(0,0,0,0));
}

.merchant-strip {
    display: grid;
    gap: 1rem;
}

.catalog-product,
.merchant-tile,
.feature-block,
.cart-line,
.checkout-summary,
.cta-row {
    position: relative;
    overflow: hidden;
}

.catalog-product::after,
.merchant-tile::after,
.feature-block::after,
.checkout-summary::after {
    content: "";
    position: absolute;
    inset: auto -10% -60% auto;
    width: 10rem;
    height: 10rem;
    background: radial-gradient(circle, var(--mc-accent-glow-strong), transparent 65%);
}

.catalog-product a {
    color: var(--mc-text);
}

.product-visual {
    min-height: 24rem;
    border-radius: 2rem;
    background:
        linear-gradient(135deg, var(--mc-accent-glow), transparent 45%),
        radial-gradient(circle at top right, var(--mc-accent-glow-strong), transparent 28%),
        var(--mc-panel);
}

.checkout-form .form-control {
    border-radius: 1rem;
    background: var(--mc-input-bg);
    border-color: var(--mc-input-border);
    color: var(--mc-text);
}

.checkout-form .form-control::placeholder {
    color: var(--mc-placeholder);
}

/* ── Reveal animation ── */
.reveal-up {
    opacity: 0;
    transform: translateY(24px);
    animation: reveal-up 0.8s ease forwards;
}

.reveal-up.delayed {
    animation-delay: 0.18s;
}

@keyframes reveal-up {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (min-width: 992px) {
    .hero-grid {
        grid-template-columns: minmax(0, 1.4fr) minmax(20rem, 0.8fr);
        gap: 2rem;
    }

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

    .cta-row {
        display: flex;
        justify-content: space-between;
        align-items: end;
        gap: 2rem;
    }
}

/* ═══════════════════════════════════════════
   Product Detail Page
═══════════════════════════════════════════ */

.pd-section {
    padding: 2rem 0 4rem;
}

/* Breadcrumb */
.pd-crumb {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.8rem;
    color: var(--mc-muted);
    flex-wrap: wrap;
}

.pd-crumb a {
    color: var(--mc-muted);
    text-decoration: none;
    transition: color 0.15s;
}

.pd-crumb a:hover {
    color: var(--mc-accent);
}

.pd-crumb span:last-child {
    color: var(--mc-text);
}

/* Layout */
.pd-layout {
    display: grid;
    gap: 2rem;
}

/* ── Gallery ── */
.pd-gallery {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.pd-gallery__main {
    border-radius: 1.5rem;
    overflow: hidden;
    border: 1px solid var(--mc-line);
    background:
        linear-gradient(135deg, var(--mc-accent-glow), transparent 40%),
        radial-gradient(circle at top right, var(--mc-accent-glow-strong), transparent 28%),
        var(--mc-panel);
    aspect-ratio: 4 / 3;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    box-shadow: var(--mc-card-shadow);
}

.pd-gallery__img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
    transition: opacity 0.2s;
}

.pd-gallery__placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    color: var(--mc-muted);
    font-size: 0.85rem;
}

.pd-gallery__strip {
    display: flex;
    gap: 0.5rem;
    overflow-x: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--mc-line) transparent;
    padding-bottom: 2px;
}

.pd-gallery__thumb {
    flex: 0 0 4.5rem;
    height: 4.5rem;
    border-radius: 0.75rem;
    overflow: hidden;
    border: 2px solid transparent;
    background: var(--mc-panel-soft);
    cursor: pointer;
    transition: border-color 0.15s;
    padding: 0;
}

.pd-gallery__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.pd-gallery__thumb.is-active,
.pd-gallery__thumb:hover {
    border-color: var(--mc-accent);
}

.pd-gallery__thumb:focus-visible {
    outline: 3px solid var(--mc-focus-ring);
    outline-offset: 2px;
}

/* ── Info Panel ── */
.pd-info {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.pd-info__merchant {
    font-size: 0.75rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--mc-accent);
    font-weight: 600;
}

/* ── Sold-by transparency block (product detail) ── */
.pd-soldby {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.6rem;
    font-size: 0.75rem;
    line-height: 1.4;
}

.pd-soldby__label {
    color: var(--mc-muted);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.pd-soldby__name {
    font-weight: 600;
    color: var(--mc-accent);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.pd-soldby__name:hover {
    color: var(--mc-accent-hover, var(--mc-accent));
}

.pd-soldby__pro {
    display: inline-block;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #fff;
    background: var(--mc-accent);
    border-radius: 3px;
    padding: 0.1rem 0.4rem;
    line-height: 1.6;
}

.pd-soldby__meta {
    color: var(--mc-muted);
    font-size: 0.7rem;
}

.pd-soldby__meta::before {
    content: "·";
    margin-right: 0.35rem;
    color: var(--mc-muted);
}

.pd-info__name {
    font-family: "Cormorant Garamond", serif;
    font-size: clamp(1.8rem, 5vw, 2.6rem);
    line-height: 1.1;
    color: var(--mc-text);
    margin: 0;
}

.pd-info__brand {
    font-size: 0.8rem;
    color: var(--mc-muted);
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.pd-info__lead {
    color: var(--mc-lead-text);
    font-size: 0.95rem;
    line-height: 1.65;
    margin: 0;
}

/* Price */
.pd-price {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 1rem 1.25rem;
    background: var(--mc-accent-glow);
    border: 1px solid var(--mc-accent-border);
    border-radius: 1rem;
}

.pd-price__was {
    font-size: 0.95rem;
    color: var(--mc-muted);
    text-decoration: line-through;
}

.pd-price__now {
    font-family: "Cormorant Garamond", serif;
    font-size: 2rem;
    font-weight: 700;
    color: var(--mc-accent);
}

.pd-price__vat {
    font-size: 0.75rem;
    color: var(--mc-muted);
    align-self: center;
}

/* Stock */
.pd-stock__badge {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    padding: 0.3rem 0.75rem;
    border-radius: 2rem;
}

.pd-stock__dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex-shrink: 0;
}

.pd-stock__badge--ok {
    background: var(--mc-stock-ok-bg);
    color: var(--mc-stock-ok-text);
    border: 1px solid var(--mc-stock-ok-border);
}

.pd-stock__badge--ok .pd-stock__dot { background: var(--mc-stock-ok-dot); }

.pd-stock__badge--low {
    background: var(--mc-stock-low-bg);
    color: var(--mc-stock-low-text);
    border: 1px solid var(--mc-stock-low-border);
}

.pd-stock__badge--low .pd-stock__dot { background: var(--mc-stock-low-dot); }

.pd-stock__badge--out {
    background: var(--mc-stock-out-bg);
    color: var(--mc-stock-out-text);
    border: 1px solid var(--mc-stock-out-border);
}

.pd-stock__badge--out .pd-stock__dot { background: var(--mc-stock-out-dot); }

/* Option selectors */
.pd-options {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

/* fieldset reset for variant groups */
.pd-option-group {
    border: none;
    margin: 0;
    padding: 0;
    min-width: 0;
}

.pd-option-group legend,
.pd-option-group__label {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--mc-muted);
    margin-bottom: 0.45rem;
    float: none;
    width: auto;
}

.pd-option-group__pills {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.pd-pill {
    padding: 0.4rem 1rem;
    border-radius: 2rem;
    border: 1.5px solid var(--mc-line);
    background: transparent;
    color: var(--mc-text);
    font-size: 0.85rem;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s, color 0.15s;
    white-space: nowrap;
    font-family: "Manrope", sans-serif;
    min-height: 44px;
}

.pd-pill:hover {
    border-color: var(--mc-accent);
    color: var(--mc-accent);
}

.pd-pill.is-active,
.pd-pill[aria-pressed="true"] {
    border-color: var(--mc-accent);
    background: var(--mc-accent-glow);
    color: var(--mc-accent);
    font-weight: 600;
}

.pd-pill:focus-visible {
    outline: 3px solid var(--mc-focus-ring);
    outline-offset: 2px;
}

/* Meta line (SKU) */
.pd-meta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.78rem;
    color: var(--mc-muted);
}

.pd-meta__label {
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

/* Actions */
.pd-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 0.25rem;
}

.pd-btn-cart {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.85rem 1.75rem;
    background: var(--mc-accent);
    color: var(--mc-accent-contrast);
    border: none;
    border-radius: 3rem;
    font-family: "Manrope", sans-serif;
    font-size: 0.95rem;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.15s, transform 0.1s;
    text-decoration: none;
    white-space: nowrap;
    min-height: 44px;
}

.pd-btn-cart:hover:not(:disabled) {
    background: var(--mc-accent-hover);
    color: var(--mc-accent-contrast);
    transform: translateY(-1px);
}

.pd-btn-cart:focus-visible {
    outline: 3px solid var(--mc-focus-ring);
    outline-offset: 3px;
}

.pd-btn-cart:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.pd-btn-back {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.85rem 1.25rem;
    border: 1.5px solid var(--mc-line);
    border-radius: 3rem;
    color: var(--mc-muted);
    font-size: 0.85rem;
    text-decoration: none;
    transition: border-color 0.15s, color 0.15s;
    white-space: nowrap;
    min-height: 44px;
}

.pd-btn-back:hover {
    border-color: var(--mc-accent);
    color: var(--mc-accent);
}

/* ── Tabs ── */
.pd-tabs {
    display: flex;
    gap: 0;
    border-bottom: 1px solid var(--mc-line);
    overflow-x: auto;
}

.pd-tab {
    padding: 0.7rem 1.4rem;
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    color: var(--mc-muted);
    font-family: "Manrope", sans-serif;
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    cursor: pointer;
    transition: color 0.15s, border-color 0.15s;
    margin-bottom: -1px;
    white-space: nowrap;
    min-height: 44px;
}

.pd-tab.is-active {
    color: var(--mc-accent);
    border-bottom-color: var(--mc-accent);
}

.pd-tab:hover:not(.is-active) {
    color: var(--mc-text);
}

.pd-tab:focus-visible {
    outline: 3px solid var(--mc-focus-ring);
    outline-offset: -3px;
    border-radius: 4px;
}

.pd-tab-panel {
    display: none;
    padding: 1.75rem 0;
}

.pd-tab-panel.is-active {
    display: block;
}

.pd-description {
    color: var(--mc-lead-text);
    font-size: 0.95rem;
    line-height: 1.75;
    max-width: 72ch;
}

.pd-description p { margin-bottom: 1rem; }

/* Specs table */
.pd-specs-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.88rem;
    max-width: 36rem;
}

.pd-specs-table th,
.pd-specs-table td {
    padding: 0.6rem 0.9rem;
    border-bottom: 1px solid var(--mc-line);
    text-align: left;
    vertical-align: top;
}

.pd-specs-table th {
    color: var(--mc-muted);
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    font-size: 0.75rem;
    width: 38%;
}

.pd-specs-table td {
    color: var(--mc-text);
}

/* ── Responsive ── */
@media (min-width: 768px) {
    .pd-layout {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        gap: 3rem;
        align-items: start;
    }

    .pd-gallery__main {
        aspect-ratio: 1 / 1;
    }
}

@media (min-width: 1200px) {
    .pd-layout {
        grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
        gap: 4rem;
    }
}

/* ═══════════════════════════════════════════
   Cart page
═══════════════════════════════════════════ */
.cart-page .card {
    background: var(--mc-panel-card);
    border: 1px solid var(--mc-line);
    color: var(--mc-text);
    box-shadow: var(--mc-card-shadow);
}

.cart-page .card hr {
    border-color: var(--mc-line);
}

.cart-page .cart-item-link {
    color: var(--mc-text);
}

.cart-page .cart-item-link:hover,
.cart-page .cart-item-link:focus {
    color: var(--mc-accent);
}

.cart-page .cart-merchant,
.cart-page .cart-meta {
    color: var(--mc-muted) !important;
}

.cart-page .cart-variant {
    color: var(--mc-lead-text);
}

.cart-page .cart-price {
    color: var(--mc-text);
}

.cart-page .cart-merchant-group__header {
    padding: 0.35rem 0.1rem;
    border-bottom: 1px solid var(--mc-line);
}

.cart-page .cart-merchant-group__name {
    color: var(--mc-accent);
    font-size: 0.95rem;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    margin: 0;
}

.cart-page .cart-issue {
    padding: 0.3rem 0.55rem;
    border-radius: 0.45rem;
    font-weight: 500;
    display: inline-block;
}

.cart-page .cart-issue--blocking {
    background: var(--mc-stock-out-bg);
    color: var(--mc-stock-out-text);
    border: 1px solid var(--mc-stock-out-border);
}

.cart-page .cart-issue--warning {
    background: var(--mc-stock-low-bg);
    color: var(--mc-stock-low-text);
    border: 1px solid var(--mc-stock-low-border);
}

.cart-page .form-control {
    background: var(--mc-input-bg);
    border-color: var(--mc-input-border);
    color: var(--mc-text);
}

.cart-page .form-control:focus {
    color: var(--mc-text);
    background: var(--mc-input-bg);
    border-color: var(--mc-input-focus-border);
    box-shadow: 0 0 0 0.2rem var(--mc-input-focus-shadow);
}

.cart-page .btn-outline-secondary {
    color: var(--mc-text);
    border-color: var(--mc-line);
}

.cart-page .btn-outline-secondary:hover,
.cart-page .btn-outline-secondary:focus {
    background: var(--mc-accent-glow);
    border-color: var(--mc-accent);
    color: var(--mc-text);
}

.cart-page .alert-info {
    background: var(--mc-alert-info-bg);
    border-color: var(--mc-alert-info-border);
    color: var(--mc-alert-info-text);
}

.cart-page .alert-info a {
    color: var(--mc-alert-info-text);
}

.cart-page .alert-danger {
    background: var(--mc-alert-danger-bg);
    border-color: var(--mc-alert-danger-border);
    color: var(--mc-alert-danger-text);
}

.cart-page .alert-success {
    background: var(--mc-toast-bg);
    border-color: var(--mc-toast-border);
    color: var(--mc-toast-text);
}

/* ═══════════════════════════════════════════
   Add-to-cart feedback
═══════════════════════════════════════════ */
#addToCartToast {
    background: var(--mc-toast-bg);
    color: var(--mc-toast-text);
    border: 1px solid var(--mc-toast-border);
}

#addToCartToast .btn-outline-light {
    border-color: var(--mc-toast-border);
    color: var(--mc-toast-text);
}

#addToCartToast .btn-light {
    color: var(--mc-accent-contrast);
    background: var(--mc-accent);
}

.mini-cart-drawer {
    background: var(--mc-mini-cart-bg);
    color: var(--mc-text);
    width: min(100vw, 420px);
}

.mini-cart-drawer .offcanvas-header {
    border-bottom: 1px solid var(--mc-line);
}

.mini-cart-items {
    display: grid;
    gap: 0.75rem;
}

.mini-cart-item {
    border: 1px solid var(--mc-line);
    border-radius: 0.85rem;
    padding: 0.75rem;
    background: var(--mc-accent-glow);
}

.mini-cart-item__name {
    color: var(--mc-text);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 0.15rem;
}

.mini-cart-item__variant {
    color: var(--mc-lead-text);
    font-size: 0.82rem;
    margin-top: 0.25rem;
}

.mini-cart-item__meta {
    margin-top: 0.4rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: var(--mc-muted);
    font-size: 0.85rem;
}

.mini-cart-item__meta strong {
    color: var(--mc-text);
}

.mini-cart-empty {
    color: var(--mc-muted);
}

/* ═══════════════════════════════════════════
   Recently viewed
═══════════════════════════════════════════ */
.recently-viewed__strip {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(160px, 1fr);
    gap: 0.85rem;
    overflow-x: auto;
    padding-bottom: 0.5rem;
    scroll-snap-type: x mandatory;
}

.recently-viewed__card {
    display: block;
    text-decoration: none;
    color: var(--mc-text);
    background: var(--mc-panel-card);
    border: 1px solid var(--mc-line);
    border-radius: 0.85rem;
    overflow: hidden;
    scroll-snap-align: start;
    transition: border-color 120ms ease, transform 120ms ease;
    box-shadow: var(--mc-card-shadow);
}

.recently-viewed__card:hover {
    border-color: var(--mc-accent-border);
    color: var(--mc-text);
    transform: translateY(-1px);
}

.recently-viewed__card:focus-visible {
    outline: 3px solid var(--mc-focus-ring);
    outline-offset: 2px;
    border-color: var(--mc-focus-ring);
}

.recently-viewed__thumb {
    aspect-ratio: 1 / 1;
    background-color: var(--mc-panel-soft);
    background-size: cover;
    background-position: center;
}

.recently-viewed__thumb--placeholder {
    background: linear-gradient(135deg, var(--mc-accent-glow), var(--mc-accent-glow-strong));
}

.recently-viewed__body {
    padding: 0.6rem 0.75rem 0.75rem;
}

.recently-viewed__merchant {
    font-size: 0.72rem;
    color: var(--mc-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.recently-viewed__name {
    font-size: 0.9rem;
    font-weight: 600;
    margin-top: 0.15rem;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    color: var(--mc-text);
}

.recently-viewed__price {
    font-size: 0.85rem;
    color: var(--mc-accent);
    margin-top: 0.25rem;
}

/* ═══════════════════════════════════════════
   Checkout page
═══════════════════════════════════════════ */
.checkout-page .card {
    background: var(--mc-panel-card);
    border: 1px solid var(--mc-line);
    color: var(--mc-text);
    box-shadow: var(--mc-card-shadow);
}

.checkout-page .card-header {
    background: var(--mc-accent-glow);
    border-bottom: 1px solid var(--mc-line);
    color: var(--mc-text);
}

.checkout-page .card hr {
    border-color: var(--mc-line);
}

.checkout-page .form-label {
    color: var(--mc-text);
    font-weight: 500;
}

.checkout-page .form-control,
.checkout-page textarea.form-control {
    background: var(--mc-input-bg);
    border-color: var(--mc-input-border);
    color: var(--mc-text);
}

.checkout-page .form-control::placeholder {
    color: var(--mc-placeholder);
}

.checkout-page .form-control:focus {
    color: var(--mc-text);
    background: var(--mc-input-bg);
    border-color: var(--mc-input-focus-border);
    box-shadow: 0 0 0 0.2rem var(--mc-input-focus-shadow);
}

.checkout-page .form-check-label {
    color: var(--mc-text);
}

.checkout-page .form-check-input {
    background-color: var(--mc-input-bg);
    border-color: var(--mc-input-border);
}

.checkout-page .form-check-input:checked {
    background-color: var(--mc-accent);
    border-color: var(--mc-accent);
}

.checkout-page .form-check-input:focus {
    border-color: var(--mc-input-focus-border);
    box-shadow: 0 0 0 0.2rem var(--mc-input-focus-shadow);
}

.checkout-page .text-muted {
    color: var(--mc-muted) !important;
}

.checkout-page .alert-danger {
    background: var(--mc-alert-danger-bg);
    border-color: var(--mc-alert-danger-border);
    color: var(--mc-alert-danger-text);
}

.checkout-page .alert-danger a {
    color: var(--mc-alert-danger-text);
}

.checkout-page .checkout-variant {
    color: var(--mc-lead-text);
}

.checkout-page .checkout-summary-item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.6rem 0;
    border-bottom: 1px solid var(--mc-line);
}

.checkout-page .checkout-summary-item:last-of-type {
    border-bottom: none;
}

.checkout-page .checkout-summary-item__main {
    min-width: 0;
    flex: 1 1 auto;
}

.checkout-page .checkout-summary-item__name {
    color: var(--mc-text);
    font-weight: 600;
    word-break: break-word;
}

.checkout-page .checkout-summary-item__meta {
    color: var(--mc-muted);
    margin-top: 0.15rem;
}

.checkout-page .checkout-summary-item__total {
    color: var(--mc-text);
    font-weight: 600;
    white-space: nowrap;
    flex: 0 0 auto;
}

/* ═══════════════════════════════════════════
   Account / auth pages
═══════════════════════════════════════════ */
.account-page .card {
    background: var(--mc-panel-card);
    border: 1px solid var(--mc-line);
    color: var(--mc-text);
    box-shadow: var(--mc-card-shadow);
}

.account-page .alert-danger {
    background: var(--mc-alert-danger-bg);
    border-color: var(--mc-alert-danger-border);
    color: var(--mc-alert-danger-text);
}

.account-page .alert-success {
    background: var(--mc-toast-bg);
    border-color: var(--mc-toast-border);
    color: var(--mc-toast-text);
}

.account-page .form-control {
    background: var(--mc-input-bg);
    border-color: var(--mc-input-border);
    color: var(--mc-text);
}

.account-page .form-control:focus {
    color: var(--mc-text);
    background: var(--mc-input-bg);
    border-color: var(--mc-input-focus-border);
    box-shadow: 0 0 0 0.2rem var(--mc-input-focus-shadow);
}

/* Validation error */
.field-validation-error {
    color: var(--mc-alert-danger-text);
    font-size: 0.85rem;
}

.input-validation-error {
    border-color: var(--mc-alert-danger-border) !important;
}

/* Bootstrap alert overrides for global alerts */
.alert-danger {
    background: var(--mc-alert-danger-bg);
    border-color: var(--mc-alert-danger-border);
    color: var(--mc-alert-danger-text);
}

.alert-info {
    background: var(--mc-alert-info-bg);
    border-color: var(--mc-alert-info-border);
    color: var(--mc-alert-info-text);
}

/* ═══════════════════════════════════════════
   Header — sticky & polished
═══════════════════════════════════════════ */
.site-header {
    position: sticky;
    top: 0;
    z-index: 1030;
}

/* Subtle accent gradient line beneath the sticky header */
.site-header::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent 0%, var(--mc-accent-glow-strong) 50%, transparent 100%);
    pointer-events: none;
}

.site-footer {
    padding: 0;
}

/* Brand — serif wordmark */
.navbar-brand {
    padding: 0.5rem 0;
}

.navbar-brand__wordmark {
    font-family: "Cormorant Garamond", serif;
    font-weight: 600;
    font-size: 1.22rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--mc-text);
    line-height: 1;
    display: inline-block;
}

/* Nav links polish */
.navbar-nav .nav-link {
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 0.45rem 0.6rem !important;
    border-radius: 0.4rem;
    transition: color 0.15s, background 0.15s;
}

.navbar-nav .nav-link:hover {
    color: var(--mc-accent) !important;
    background: var(--mc-accent-glow);
}

.nav-link--active {
    color: var(--mc-accent) !important;
}

.nav-link--muted {
    color: var(--mc-muted) !important;
    font-weight: 400 !important;
    font-size: 0.75rem !important;
    letter-spacing: 0.03em !important;
}

/* Cart badge */
.cart-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 9px;
    background: var(--mc-stock-out-dot);
    color: #ffffff;
    font-size: 0.62rem;
    font-weight: 800;
    line-height: 1;
    font-family: "Manrope", sans-serif;
    letter-spacing: 0;
    flex-shrink: 0;
}

/* Account / Sign-in button in the navbar */
.btn-nav-accent {
    background: var(--mc-accent-glow);
    color: var(--mc-accent);
    border: 1.5px solid var(--mc-accent-border);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
    text-decoration: none;
    padding: 0.4rem 1rem;
}

.btn-nav-accent:hover,
.btn-nav-accent:focus {
    background: var(--mc-accent);
    color: var(--mc-accent-contrast);
    border-color: var(--mc-accent);
}

.btn-nav-accent.active {
    background: var(--mc-accent);
    color: var(--mc-accent-contrast);
    border-color: var(--mc-accent);
}

.btn-nav-accent:focus-visible {
    outline: 3px solid var(--mc-focus-ring);
    outline-offset: 3px;
}

/* Language dropdown label */
.nav-link--lang {
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em !important;
}

/* Dropdown theming */
.dropdown-menu {
    background: var(--mc-panel-card);
    border: 1px solid var(--mc-line);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.14);
    border-radius: 0.85rem;
}

.dropdown-item {
    color: var(--mc-text);
    font-size: 0.85rem;
    border-radius: 0.5rem;
}

.dropdown-item:hover,
.dropdown-item:focus {
    background: var(--mc-accent-glow);
    color: var(--mc-text);
}

.dropdown-item.active {
    background: var(--mc-accent);
    color: var(--mc-accent-contrast);
}

/* Mobile nav collapse panel */
@media (max-width: 991.98px) {
    .navbar-collapse {
        background: var(--mc-panel-glass);
        backdrop-filter: var(--mc-backdrop);
        -webkit-backdrop-filter: var(--mc-backdrop);
        border-top: 1px solid var(--mc-line);
        border-radius: 0 0 1rem 1rem;
        padding: 0.75rem 1rem 1rem;
        margin-top: 0.25rem;
    }

    .navbar-nav .nav-link {
        padding: 0.6rem 0.5rem !important;
    }

    .btn-nav-accent {
        margin: 0.25rem 0;
        display: inline-block;
    }
}

/* ═══════════════════════════════════════════
   Footer — multi-column redesign
═══════════════════════════════════════════ */
.footer-main {
    padding: 3.5rem 0 2.5rem;
    border-bottom: 1px solid var(--mc-line);
}

.footer-brand {
    display: inline-block;
    font-family: "Cormorant Garamond", serif;
    font-weight: 700;
    font-size: 1.3rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--mc-text);
    text-decoration: none;
    line-height: 1;
    transition: color 0.15s;
}

.footer-brand:hover {
    color: var(--mc-accent);
}

.footer-brand__desc {
    font-size: 0.85rem;
    color: var(--mc-muted);
    line-height: 1.6;
    max-width: 26rem;
}

.footer-nav__heading {
    font-family: "Manrope", sans-serif;
    font-size: 0.67rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--mc-muted);
    margin-bottom: 0.85rem;
}

.footer-nav__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}

.footer-nav__list a {
    font-size: 0.88rem;
    color: var(--mc-text);
    text-decoration: none;
    transition: color 0.15s;
}

.footer-nav__list a:hover {
    color: var(--mc-accent);
}

.footer-nav__list a:focus-visible {
    outline: 3px solid var(--mc-focus-ring);
    outline-offset: 2px;
    border-radius: 3px;
}

.footer-lang-btn {
    background: none;
    border: none;
    padding: 0;
    font-family: "Manrope", sans-serif;
    font-size: 0.88rem;
    color: var(--mc-text);
    cursor: pointer;
    transition: color 0.15s;
    text-align: left;
}

.footer-lang-btn:hover {
    color: var(--mc-accent);
}

.footer-lang-btn--active {
    color: var(--mc-accent);
    font-weight: 700;
}

.footer-lang-btn:focus-visible {
    outline: 3px solid var(--mc-focus-ring);
    outline-offset: 2px;
    border-radius: 3px;
}

.footer-logos-strip {
    padding: 2rem 0;
}

/* ═══════════════════════════════════════════
   Product Card (_ProductCard partial)
═══════════════════════════════════════════ */

/* Image-led layout: padding lives on .pc-body, not the container */
.catalog-product {
    padding: 0;
}

/* Image area */
.pc-media {
    display: block;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: calc(1.5rem - 1px) calc(1.5rem - 1px) 0 0;
    background:
        linear-gradient(135deg, var(--mc-accent-glow), transparent 45%),
        radial-gradient(circle at top right, var(--mc-accent-glow-strong), transparent 30%),
        var(--mc-panel-soft);
    flex-shrink: 0;
    text-decoration: none;
}

.pc-media__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.45s ease;
    will-change: transform;
}

@media (prefers-reduced-motion: no-preference) {
    .catalog-product:hover .pc-media__img,
    .catalog-product:focus-within .pc-media__img {
        transform: scale(1.055);
    }
}

.pc-media__placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: var(--mc-muted);
    opacity: 0.4;
}

/* Card text body */
.pc-body {
    padding: 0.9rem 1.1rem 1.1rem;
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
}

.pc-merchant {
    margin: 0 0 0.3rem;
}

.pc-merchant__link {
    font-size: 0.67rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--mc-muted);
    text-decoration: none;
    transition: color 0.15s;
}

.pc-merchant__link:hover {
    color: var(--mc-accent);
}

.pc-name {
    font-family: "Cormorant Garamond", serif;
    font-size: 1.08rem;
    font-weight: 600;
    line-height: 1.22;
    margin: 0 0 0.6rem;
    color: var(--mc-text);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.pc-name__link {
    color: inherit;
    text-decoration: none;
    transition: color 0.15s;
}

.pc-name__link:hover,
.pc-name__link:focus {
    color: var(--mc-accent);
}

.pc-name__link:focus-visible {
    outline: 3px solid var(--mc-focus-ring);
    outline-offset: 2px;
    border-radius: 3px;
}

.pc-price-row {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.pc-price--was {
    font-size: 0.78rem;
    color: var(--mc-muted);
    text-decoration: line-through;
}

.pc-price--now {
    font-family: "Cormorant Garamond", serif;
    font-size: 1.28rem;
    font-weight: 700;
    color: var(--mc-accent);
    line-height: 1;
}

.pc-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    min-height: 1.5rem;
}

.pc-badge-featured {
    display: inline-block;
    font-size: 0.6rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--mc-accent-contrast);
    background: var(--mc-accent);
    border-radius: 3px;
    padding: 0.12rem 0.45rem;
    line-height: 1.6;
}

/* Whole-card hover lift */
@media (prefers-reduced-motion: no-preference) {
    .catalog-product {
        transition: box-shadow 0.25s ease, transform 0.25s ease, border-color 0.25s ease;
    }

    .catalog-product:hover {
        transform: translateY(-3px);
        box-shadow: 0 10px 36px rgba(0, 0, 0, 0.13), 0 2px 8px rgba(0, 0, 0, 0.06);
        border-color: var(--mc-accent-border);
    }
}

/* ═══════════════════════════════════════════
   MerchantStore page — store header band
═══════════════════════════════════════════ */
.store-header__name {
    color: var(--store-accent, var(--mc-text));
}

.store-header .section-heading {
    border-bottom: 2px solid var(--store-accent, var(--mc-accent-border));
    padding-bottom: 1.25rem;
    margin-bottom: 1.25rem;
}

.store-header__legal-link {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.82rem;
    color: var(--mc-muted);
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color 0.15s;
}

.store-header__legal-link:hover {
    color: var(--mc-accent);
}

.store-header__legal-link:focus-visible {
    outline: 3px solid var(--mc-focus-ring);
    outline-offset: 2px;
    border-radius: 3px;
}

/* ═══════════════════════════════════════════
   Filter shell — search & sort bar
═══════════════════════════════════════════ */
.filter-shell .form-control,
.filter-shell .form-select {
    background: var(--mc-input-bg);
    border-color: var(--mc-input-border);
    color: var(--mc-text);
    border-radius: 0.75rem;
}

.filter-shell .form-control:focus,
.filter-shell .form-select:focus {
    border-color: var(--mc-input-focus-border);
    box-shadow: 0 0 0 0.2rem var(--mc-input-focus-shadow);
    color: var(--mc-text);
    background: var(--mc-input-bg);
}

.filter-shell .form-control::placeholder {
    color: var(--mc-placeholder);
}

/* ═══════════════════════════════════════════
   Global refinements
═══════════════════════════════════════════ */

.btn-copper {
    font-weight: 700;
    letter-spacing: 0.04em;
    min-height: 44px;
}

.btn-copper:focus-visible {
    outline: 3px solid var(--mc-focus-ring);
    outline-offset: 3px;
}

/* Themed outline-secondary */
.btn-outline-secondary {
    color: var(--mc-text);
    border-color: var(--mc-line);
}

.btn-outline-secondary:hover {
    background: var(--mc-accent-glow);
    border-color: var(--mc-accent-border);
    color: var(--mc-text);
}

/* Pagination */
.pagination .page-link {
    background: var(--mc-panel-card);
    border-color: var(--mc-line);
    color: var(--mc-text);
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}

.pagination .page-link:hover {
    background: var(--mc-accent-glow);
    border-color: var(--mc-accent-border);
    color: var(--mc-accent);
}

.pagination .page-item.active .page-link {
    background: var(--mc-accent);
    border-color: var(--mc-accent);
    color: var(--mc-accent-contrast);
}

.pagination .page-link:focus {
    box-shadow: 0 0 0 0.2rem var(--mc-input-focus-shadow);
    outline: none;
}

/* Named utility classes to replace remaining inline styles */
.qty-input {
    width: 70px;
    text-align: center;
}

.pd-qty-input {
    max-width: 96px;
}

.text-token-muted {
    color: var(--mc-muted);
}
