/*!
 * woo-canon.css — WP-45 / SD-31 bridge skin (v1)
 * -----------------------------------------------------------------------------
 * Purpose: make the RESTORED WooCommerce core components (woocommerce-layout /
 * woocommerce-general / -smallscreen — back in the <head> now that the child's
 * `woocommerce_enqueue_styles __return_empty_array` filter is removed) read as
 * canon while the real per-page re-skins are designed (WP-49 storefront /
 * WP-50 product / WP-51 cart grow this file). Token-only: every value is a
 * design-system-2.0 `--sys-*` custom property (loaded via the `design-system-2`
 * dependency), so this stays in lockstep with the canon palette/type scale.
 *
 * Enqueued by opanije_shop_canon_layer() (functions.php) with deps
 * [design-system-2, modern-header-2025] and a filemtime cache-bust.
 *
 * A11Y: gold used as TEXT on a light surface is always `--sys-color-cta-gold`
 * (#9c6408, ~4.9:1 on white — SD-QB-A11Y); gold used as a FILL carries #FFFFFF
 * bold text (the canon .op-btn-primary contrast rule). `!important` is used ONLY
 * where it is needed to defeat a Woo-core default (notice colors, the tab list
 * markers, the onsale badge) — noted inline at each site.
 * -----------------------------------------------------------------------------
 */

/* --- NOTICES: canon op-notice system (WP-51, DQ-12 Notice component) ---------
 * The three notice templates (notices/{error,success,notice}.php) now emit
 * `op-notice op-notice--{error,success,info}` ALONGSIDE the core
 * woocommerce-{error,message,info} class (kept for Woo's front-end JS
 * scroll_to_notices / checkout submit_error and core CSS selectors). Info is
 * warm Heritage Gold — the default blue box dies store-wide. Values are the
 * DQ-12 component palette; the info ink is the AA gold #9c6408 (SD-QB-A11Y).
 * A `.warning` variant is defined for reuse (the design's 4th) even though Woo
 * only emits three. */
.op-notice {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    border: 1px solid #EAD9B0;
    border-left: 4px solid #B7780D;
    border-radius: 12px;
    background: #FBF3E1;
    padding: 0.95rem 1.05rem;
    margin: 0 0 1rem;
    font-family: var(--sys-font-body);
    line-height: var(--sys-line-height-normal);
    box-sizing: border-box;
}
/* Neutralise Woo core's absolute ::before/::after glyphs on our re-skinned notices. */
.op-notice::before,
.op-notice::after { content: none !important; display: none !important; }

.op-notice__icon {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    border-radius: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #FFFFFF;                 /* the SVG uses stroke:currentColor */
    margin-top: 1px;
    background: var(--sys-color-cta-gold, #9C6408);
}
.op-notice__icon svg { display: block; }

.op-notice__body {
    flex: 1;
    min-width: 0;
    padding-top: 3px;
    color: #59554F;
    font-size: 0.9rem;
    line-height: 1.45;
}
.op-notice__body,
.op-notice__body p { margin: 0; }
.op-notice__body p + p { margin-top: 0.35rem; }
.op-notice__list { list-style: none; margin: 0; padding: 0; }
.op-notice__list li { list-style: none; margin: 0; padding: 0; }
.op-notice__list li + li { margin-top: 0.3rem; }

/* Inline links + the add-to-cart "View cart" button inside a notice read canon. */
.op-notice__body a { color: #9C6408; font-weight: 700; }
.op-notice__body a:hover { color: #8A5A0A; }

.op-notice__dismiss {
    flex-shrink: 0;
    width: 30px;
    height: 30px;
    border: none;
    background: transparent;
    border-radius: 8px;
    cursor: pointer;
    color: #888580;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    margin-top: -1px;
    transition: background var(--sys-transition-fast, .15s), color var(--sys-transition-fast, .15s);
}
.op-notice__dismiss:hover { background: rgba(43, 40, 35, 0.06); color: #2B2823; }
.op-notice__dismiss:focus-visible { outline: 2px solid #9C6408; outline-offset: 1px; }

/* Variants — bar (left border) + icon-chip + body ink (DQ-12 palette). */
.op-notice--success { background: #E7F7F0; border-color: #BFE9D7; border-left-color: #12B886; }
.op-notice--success .op-notice__icon { background: #12B886; }
.op-notice--info    { background: #FBF3E1; border-color: #EAD9B0; border-left-color: #B7780D; }
.op-notice--info    .op-notice__icon { background: var(--sys-color-cta-gold, #9C6408); }
.op-notice--error   { background: #FCEBE9; border-color: #F4C9C4; border-left-color: #EF4444; }
.op-notice--error   .op-notice__icon { background: #EF4444; }
.op-notice--warning { background: #FCF3DD; border-color: #F0DCA6; border-left-color: #F59E0B; }
.op-notice--warning .op-notice__icon { background: #F59E0B; }

/* Stray core notices that never route through our three templates (edge Woo
 * templates that hardcode the class) still get the canon kill-blue — never Woo's
 * default blue/grey box. */
.woocommerce-info:not(.op-notice),
.woocommerce-message:not(.op-notice),
.woocommerce-error:not(.op-notice) {
    background-color: var(--sys-color-cream) !important;
    border-top: none !important;
    border-left: 4px solid var(--sys-color-primary) !important;
    color: var(--sys-color-ink);
    font-family: var(--sys-font-body);
    border-radius: var(--sys-radius-sm);
    padding: var(--sys-space-4) var(--sys-space-5);
    line-height: var(--sys-line-height-normal);
}
.woocommerce-error:not(.op-notice) { border-left-color: var(--sys-color-error) !important; }
.woocommerce-info:not(.op-notice)::before,
.woocommerce-message:not(.op-notice)::before,
.woocommerce-error:not(.op-notice)::before { color: var(--sys-color-primary) !important; }
.woocommerce-error:not(.op-notice)::before { color: var(--sys-color-error) !important; }
.woocommerce-info:not(.op-notice) a,
.woocommerce-message:not(.op-notice) a,
.woocommerce-error:not(.op-notice) a { color: var(--sys-color-cta-gold); font-weight: 600; }

/* --- BUTTONS: the accessible CTA-gold pill (matches .op-btn-primary) -------- */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt {
    background: var(--sys-color-cta-gold, #9C6408);
    color: #FFFFFF;                       /* white-on-CTA-gold fill: WCAG AA */
    font-family: var(--sys-font-display);
    font-size: var(--sys-font-size-body);
    font-weight: 700;
    letter-spacing: 0.01em;
    text-decoration: none;
    text-align: center;
    border: none;
    border-radius: var(--sys-radius-full);
    padding: var(--sys-space-3) var(--sys-space-6);
    cursor: pointer;
    transition: transform var(--sys-transition-fast), box-shadow var(--sys-transition-base);
    box-shadow: 0 4px 6px -1px rgba(183, 120, 13, 0.2), 0 2px 4px -1px rgba(183, 120, 13, 0.1);
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover {
    background: var(--sys-color-cta-gold, #9C6408);
    color: #FFFFFF;
    transform: translateY(-2px);
    box-shadow: 0 20px 25px -5px rgba(43, 40, 35, 0.12), 0 10px 10px -5px rgba(183, 120, 13, 0.08);
}

.woocommerce a.button:focus-visible,
.woocommerce button.button:focus-visible,
.woocommerce #respond input#submit:focus-visible {
    outline: 3px solid var(--sys-color-primary-tint-20);
    outline-offset: 3px;
}

/* Ghost/secondary actions (e.g. "Return to shop") — gold TEXT, AA on light */
.woocommerce a.button.wc-backward,
.woocommerce .cart .button[name="update_cart"] {
    background: transparent;
    color: var(--sys-color-cta-gold);
    border: var(--sys-border-width-md) solid var(--sys-color-primary);
    box-shadow: none;
}

/* --- PRODUCT TITLE + PRICE typography ---------------------------------------- */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce div.product .product_title {
    font-family: var(--sys-font-display);
    font-weight: 600;
    color: var(--sys-color-ink);
    text-decoration: none; /* kill the loop-title underline */
    line-height: var(--sys-line-height-snug);
}
.woocommerce ul.products li.product a:hover .woocommerce-loop-product__title {
    color: var(--sys-color-primary);
}

.woocommerce .price,
.woocommerce div.product p.price,
.woocommerce ul.products li.product .price {
    font-family: var(--sys-font-display);
    color: var(--sys-color-ink);
    font-weight: 700;
}
.woocommerce .price del {
    color: var(--sys-color-ink-muted);
    font-weight: 400;
}
.woocommerce .price ins {
    text-decoration: none;
    color: var(--sys-color-gold-deep);
}

/* --- RESULT COUNT + ORDERING ------------------------------------------------- */
.woocommerce .woocommerce-result-count {
    font-family: var(--sys-font-body);
    color: var(--sys-color-ink-light);
    font-size: var(--sys-font-size-small);
}

/* --- FORM CONTROLS: canon input idiom (ordering select, qty, generic) ------- */
.woocommerce .woocommerce-ordering select,
.woocommerce select,
.woocommerce .quantity input.qty,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row select {
    font-family: var(--sys-font-body);
    font-size: var(--sys-font-size-body);
    color: var(--sys-color-ink-base);
    background-color: var(--sys-color-surface-0);
    border: var(--sys-border-width) solid var(--sys-border-color);
    border-radius: var(--sys-radius-md);
    padding: var(--sys-space-2) var(--sys-space-3);
    transition: border-color var(--sys-transition-fast);
}
.woocommerce .woocommerce-ordering select:focus,
.woocommerce select:focus,
.woocommerce .quantity input.qty:focus,
.woocommerce form .form-row input.input-text:focus {
    border-color: var(--sys-color-primary);
    outline: 2px solid var(--sys-color-primary-tint-20);
    outline-offset: 1px;
}

/* --- PRODUCT TABS: list-style reset + canon active state -------------------- */
.woocommerce div.product .woocommerce-tabs ul.tabs {
    list-style: none !important;   /* kill the raw • markers */
    margin: 0 0 var(--sys-space-5);
    padding: 0;
    border-bottom: var(--sys-border-width) solid var(--sys-border-color);
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
    content: none !important;      /* Woo draws the • separators as generated content */
    display: none !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li {
    background: none;
    border: none;
    border-radius: 0;
    margin: 0 var(--sys-space-4) -1px 0;
    padding: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
    font-family: var(--sys-font-display);
    font-weight: 600;
    color: var(--sys-color-ink-light);
    text-decoration: none;
    padding: var(--sys-space-2) 0;
    display: inline-block;
    border-bottom: 2px solid transparent;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
    color: var(--sys-color-ink);
    border-bottom-color: var(--sys-color-primary);
}

/* --- ONSALE BADGE: canon pill ----------------------------------------------- */
.woocommerce span.onsale {
    background: var(--sys-color-primary) !important; /* over Woo's green */
    color: #FFFFFF !important;
    font-family: var(--sys-font-display);
    font-weight: 700;
    font-size: var(--sys-font-size-caption);
    letter-spacing: 0.02em;
    border-radius: var(--sys-radius-full);
    min-height: auto;
    min-width: auto;
    line-height: 1;
    padding: var(--sys-space-2) var(--sys-space-3);
}

/* ============================================================================
 * WP-49 · STOREFRONT (DQ-10 v3) — hooks-first archive re-skin
 * ----------------------------------------------------------------------------
 * Ports scratch/rebuild/design/dq10-shop-storefront-v3.dc.html (+ the
 * ShopProductCardV3 component) onto the theme token system. Structure lives in
 * woocommerce/archive-product.php + woocommerce/content-product.php; this is the
 * skin. Consumed by .op-shop-main (opanije_shop_main_open) — body.woocommerce is
 * the ancestor, so the notice/button/price rules above still apply.
 *
 * PALETTE (gate: "no hardcoded non-canon hex except the documented palette").
 * Every SOLID colour maps to a --sys-* token (mock hex -> token):
 *     #231F19 ink bands        -> --sys-color-ink
 *     #15120D deepest band     -> --sys-color-ink-deep
 *     #F4EEE1 cream section     -> --sys-color-cream
 *     #FAFAF9 card surface      -> --sys-color-surface-1
 *     #9c6408 gold text/price   -> --sys-color-cta-gold        (SD-QB-A11Y)
 *     #B7780D gold rule         -> --sys-color-primary
 *     #E0A92B bright accent     -> --sys-color-primary-light   (the mock's #D8A81B)
 *     #59554F / #888580 muted   -> --sys-color-ink-light / --sys-color-ink-muted
 * Gold TINTS/glows use color-mix(var(--sys-color-primary-light) N%) — no raw gold
 * hex. The only literals are NEUTRAL, palette-free decorative values, documented
 * inline: glass = rgba(255,255,255,.05/.13), elevation = rgba(0,0,0,a),
 * sold-out veil = rgba(244,238,225,.46). A11Y: hero/cross text is LIGHT on dark
 * ink (high contrast); gold-as-TEXT on light surfaces is always cta-gold; the card
 * CTA reuses the AA-ratified flat CTA-gold pill (white text, >=16px) rather
 * than the mock's 13px flat pill. The marquee is aria-hidden decoration.
 * `!important` is used ONLY to defeat Woo-core float/layout defaults — noted inline.
 * ============================================================================ */

/* --- ANNOUNCEMENT BAR: shop-only ink strip above the (unchanged) header ------ */
.op-shop-announce {
    background: var(--sys-color-ink);
    color: color-mix(in srgb, var(--sys-color-cream) 88%, transparent);
    text-align: center;
    padding: 9px 16px;
    font-family: var(--sys-font-body);
    font-size: 12.5px;
    letter-spacing: 0.03em;
    line-height: 1.3;
}
.op-shop-announce__dot {
    color: var(--sys-color-primary-light);
    margin: 0 10px;
}

/* --- SHOP MAIN shell --------------------------------------------------------- */
.op-shop-main {
    display: block;
    width: 100%;
    background: var(--sys-color-cream);
}
.op-shop-kicker {
    display: flex;
    align-items: center;
    gap: 11px;
    margin: 0 0 22px;
    font-family: var(--sys-font-display);
    font-weight: 700;
    font-size: 12px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--sys-color-primary-light);
}
.op-shop-kicker__rule {
    width: 26px;
    height: 2px;
    background: var(--sys-color-primary);
    display: inline-block;
}

/* --- CINEMATIC HERO ---------------------------------------------------------- */
.op-shop-hero {
    position: relative;
    overflow: hidden;
    background: linear-gradient(165deg, var(--sys-color-ink) 0%, color-mix(in srgb, var(--sys-color-ink) 45%, var(--sys-color-ink-deep)) 55%, var(--sys-color-ink-deep) 100%);
}
.op-shop-hero__weave,
.op-shop-cross__weave {
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(135deg, color-mix(in srgb, var(--sys-color-primary-light) 5%, transparent) 0 2px, transparent 2px 12px);
    pointer-events: none;
}
.op-shop-hero__glow {
    position: absolute;
    inset: 0;
    background: radial-gradient(680px 460px at 78% 22%, color-mix(in srgb, var(--sys-color-primary-light) 16%, transparent), transparent 65%);
    pointer-events: none;
}
.op-shop-hero__crumbs {
    position: relative;
    max-width: 1180px;
    margin: 0 auto;
    padding: 18px 40px 0;
}
.op-shop-breadcrumb,
.op-shop-breadcrumb a {
    font-family: var(--sys-font-body);
    font-size: 12.5px;
    letter-spacing: 0.02em;
    color: color-mix(in srgb, var(--sys-color-cream) 55%, transparent);
}
.op-shop-breadcrumb a:hover {
    color: var(--sys-color-primary-light);
}
.op-crumb-sep {
    color: color-mix(in srgb, var(--sys-color-primary-light) 55%, transparent);
    margin: 0 9px;
}
.op-shop-hero__grid {
    position: relative;
    max-width: 1180px;
    margin: 0 auto;
    padding: 42px 40px 58px;
    display: grid;
    grid-template-columns: 1.04fr 0.96fr;
    gap: 72px;
    align-items: center;
}
.op-shop-hero__title {
    font-family: var(--sys-font-display);
    font-weight: 800;
    font-size: clamp(2rem, 4vw + 1rem, 50px);
    line-height: 1.03;
    letter-spacing: -0.022em;
    color: var(--sys-color-cream);
    margin: 0 0 22px;
    text-wrap: balance;
}
.op-shop-hero__outline {
    color: transparent;
    -webkit-text-stroke: 1.6px var(--sys-color-primary-light);
}
@supports not ((-webkit-text-stroke: 1px black)) {
    .op-shop-hero__outline { color: var(--sys-color-primary-light); }
}
.op-shop-hero__lede {
    font-family: var(--sys-font-body);
    font-size: 18px;
    line-height: 1.6;
    color: color-mix(in srgb, var(--sys-color-cream) 66%, transparent);
    margin: 0;
    max-width: 470px;
}
.op-shop-etym {
    display: flex;
    align-items: baseline;
    gap: 14px;
    flex-wrap: wrap;
    margin: 26px 0 0;
    padding-top: 22px;
    border-top: 1px solid color-mix(in srgb, var(--sys-color-primary-light) 22%, transparent);
}
.op-shop-etym__word {
    font-family: var(--sys-font-display);
    font-weight: 800;
    font-size: 18px;
    letter-spacing: -0.01em;
    color: var(--sys-color-cream);
}
.op-shop-etym__ipa {
    font-family: var(--sys-font-body);
    font-size: 15px;
    letter-spacing: 0.04em;
    color: var(--sys-color-primary-light);
}
.op-shop-etym__pos {
    font-family: var(--sys-font-body);
    font-size: 13px;
    color: color-mix(in srgb, var(--sys-color-cream) 50%, transparent);
}
.op-shop-trust {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 24px 0 0;
    padding: 0;
    list-style: none;
}
.op-shop-trust__chip {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 9px 15px;
    border-radius: var(--sys-radius-full);
    background: rgba(255, 255, 255, 0.05);      /* neutral glass fill */
    border: 1px solid rgba(255, 255, 255, 0.13); /* neutral glass edge */
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    font-family: var(--sys-font-display);
    font-weight: 600;
    font-size: 12.5px;
    color: var(--sys-color-cream);
    white-space: nowrap;
}
.op-shop-trust__dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--sys-color-primary-light);
    display: inline-block;
}
.op-shop-hero__media {
    position: relative;
}
.op-shop-hero__frame {
    position: absolute;
    top: 22px;
    left: 22px;
    right: -16px;
    bottom: -16px;
    border: 1.5px solid color-mix(in srgb, var(--sys-color-primary-light) 50%, transparent);
    border-radius: 14px;
    pointer-events: none;
}
.op-shop-hero__photo {
    position: relative;
    aspect-ratio: 3 / 4;
    border: 1px solid var(--sys-color-ink-base);
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 34px 70px rgba(0, 0, 0, 0.55); /* neutral elevation */
    background: var(--sys-color-ink);
}
.op-shop-hero__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.op-shop-hero__cap {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 26px 0 0;
    justify-content: flex-end;
    font-family: var(--sys-font-body);
    font-size: 13px;
    color: color-mix(in srgb, var(--sys-color-cream) 55%, transparent);
}
.op-shop-hero__cap-rule {
    width: 18px;
    height: 2px;
    background: var(--sys-color-primary);
    display: inline-block;
}

/* --- FEITO A MAO spinning stamp ---------------------------------------------- */
.op-shop-stamp {
    position: absolute;
    left: -30px;
    bottom: -26px;
    width: 124px;
    height: 124px;
    z-index: 2;
    filter: drop-shadow(0 12px 26px rgba(0, 0, 0, 0.45));
}
.op-shop-stamp__ring {
    position: absolute;
    inset: 0;
    animation: op-spin 26s linear infinite;
}
.op-shop-stamp__disc {
    fill: var(--sys-color-ink-deep);
    stroke: var(--sys-color-primary-light);
    stroke-width: 1.5;
}
.op-shop-stamp__inner {
    fill: none;
    stroke: color-mix(in srgb, var(--sys-color-primary-light) 45%, transparent);
    stroke-width: 1;
}
.op-shop-stamp__text {
    fill: var(--sys-color-primary-light);
    font-family: var(--sys-font-display);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.5px;
}
.op-shop-stamp__e {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--sys-font-display);
    font-weight: 800;
    font-size: 34px;
    color: var(--sys-color-primary-light);
    padding-bottom: 3px;
}
@keyframes op-spin {
    to { transform: rotate(360deg); }
}

/* --- GOLD MARQUEE (decorative, aria-hidden) --------------------------------- */
.op-shop-marquee {
    position: relative;
    overflow: hidden;
    background: var(--sys-color-primary-light);
    border-top: 1px solid var(--sys-color-ink-deep);
    border-bottom: 1px solid var(--sys-color-ink-deep);
    padding: 13px 0;
}
.op-shop-marquee__track {
    display: flex;
    width: max-content;
    animation: op-marquee 34s linear infinite;
    will-change: transform;
}
.op-shop-marquee__seq {
    white-space: nowrap;
    font-family: var(--sys-font-display);
    font-weight: 800;
    font-size: 14px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--sys-color-ink); /* ink on gold — decorative, high contrast */
}
@keyframes op-marquee {
    to { transform: translateX(-50%); }
}

/* --- COLLECTION band --------------------------------------------------------- */
.op-shop-collection {
    background: var(--sys-color-cream);
}
.op-shop-collection__inner {
    max-width: 1180px;
    margin: 0 auto;
    padding: 52px 40px 4px;
}
.op-shop-sectionhead {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    margin: 0 0 4px;
}
.op-shop-sectionhead__num {
    font-family: var(--sys-font-display);
    font-weight: 800;
    font-size: 44px;
    line-height: 0.9;
    color: transparent;
    -webkit-text-stroke: 1.5px var(--sys-color-primary-light);
}
@supports not ((-webkit-text-stroke: 1px black)) {
    .op-shop-sectionhead__num { color: var(--sys-color-primary-light); }
}
.op-shop-sectionhead__title {
    font-family: var(--sys-font-display);
    font-weight: 800;
    font-size: 30px;
    letter-spacing: -0.015em;
    color: var(--sys-color-ink);
    margin: 0 0 6px;
}
.op-shop-sectionhead__sub {
    font-family: var(--sys-font-body);
    font-size: 15px;
    color: var(--sys-color-ink-light);
    margin: 0;
}

/* --- TOOLBAR: chips + result count + native ordering ------------------------- */
.op-shop-toolbar {
    margin: 24px 0 0;
    padding: 14px 0;
    border-top: 1px solid var(--sys-border-color);
    border-bottom: 1px solid var(--sys-border-color);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    flex-wrap: wrap;
}
.op-shop-chips {
    display: flex;
    align-items: center;
    gap: 9px;
    flex-wrap: wrap;
}
.op-chip {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border-radius: var(--sys-radius-full);
    padding: 8px 15px;
    font-family: var(--sys-font-display);
    font-weight: 700;
    font-size: 11.5px;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    line-height: 1;
    white-space: nowrap;
    text-decoration: none;
    background: color-mix(in srgb, var(--sys-color-surface-1) 60%, transparent);
    color: var(--sys-color-ink-light);
    border: 1.5px solid var(--sys-border-color);
    transition: background var(--sys-transition-fast), color var(--sys-transition-fast), border-color var(--sys-transition-fast);
}
.op-chip:hover {
    border-color: var(--sys-color-primary);
    color: var(--sys-color-ink);
}
.op-chip.is-active {
    background: var(--sys-color-ink);
    color: var(--sys-color-cream);
    border-color: var(--sys-color-ink);
}
.op-chip__count {
    font-family: var(--sys-font-display);
    font-weight: 700;
    font-size: 10px;
    letter-spacing: 0.05em;
    color: var(--sys-color-ink-muted);
}
.op-chip.is-active .op-chip__count {
    color: var(--sys-color-primary-light);
}
.op-shop-toolbar__right {
    display: flex;
    align-items: center;
    gap: 13px;
}
.op-shop-toolbar__right .woocommerce-result-count {
    margin: 0;
    font-family: var(--sys-font-body);
    font-size: 13.5px;
    color: var(--sys-color-ink-light);
    white-space: nowrap;
}
.op-shop-toolbar__right .woocommerce-ordering {
    margin: 0;
}
.op-shop-toolbar__right .woocommerce-ordering select {
    appearance: none;
    -webkit-appearance: none;
    padding-right: 2.4em;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='7' viewBox='0 0 10 7'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%239c6408' stroke-width='1.6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.9em center;
    cursor: pointer;
}

/* --- PRODUCT GRID (Woo ul.products) — 3-col, feature-first spans 2 ----------- */
.op-shop-main ul.products {
    display: grid !important;          /* defeat Woo-core float layout */
    grid-template-columns: repeat(3, 1fr);
    gap: 26px;
    margin: 30px 0 0 !important;
    padding: 0;
    list-style: none;
}
.op-shop-main ul.products::before,
.op-shop-main ul.products::after {
    content: none !important;          /* kill Woo's clearfix pseudo-rows */
}
.op-shop-main ul.products li.product {
    width: auto !important;            /* defeat Woo-core .columns-N width */
    float: none !important;
    margin: 0 !important;
    padding: 0;
    min-width: 0;
}
.op-shop-main ul.products li.product.op-card--feature {
    grid-column: span 2;
}

/* --- SHOP PRODUCT CARD V3 ---------------------------------------------------- */
.op-card {
    display: flex;
    flex-direction: column;
    background: var(--sys-color-surface-1);
    border: 1px solid var(--sys-border-color);
    border-radius: var(--sys-radius-lg);
    overflow: hidden;
    height: 100%;
    font-family: var(--sys-font-body);
    transition: transform 0.35s cubic-bezier(.34, 1.4, .5, 1), box-shadow 0.35s ease, border-color 0.35s ease;
    box-shadow: 0 1px 2px rgba(35, 31, 25, 0.05);
}
.op-card:not(.op-card--soldout):hover {
    transform: translateY(-7px);
    border-color: var(--sys-color-primary-light);
    box-shadow: 0 22px 44px rgba(35, 31, 25, 0.17);
}
.op-card__media {
    position: relative;
    display: block;
    overflow: hidden;
    aspect-ratio: 4 / 5;
    background: var(--sys-color-cream-2);
}
.op-card__media .op-card__img,
.op-card__media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s cubic-bezier(.2, .7, .2, 1);
}
.op-card:not(.op-card--soldout):hover .op-card__img {
    transform: scale(1.055);
}
.op-card__matframe {
    position: absolute;
    inset: 10px;
    border-radius: var(--sys-radius-sm);
    border: 1px solid transparent;
    transition: border-color 0.45s ease;
    pointer-events: none;
}
.op-card:not(.op-card--soldout):hover .op-card__matframe {
    border-color: color-mix(in srgb, var(--sys-color-primary-light) 65%, transparent);
}
.op-card__veil {
    position: absolute;
    inset: 0;
    background: rgba(244, 238, 225, 0.46); /* sold-out cream veil (documented) */
    pointer-events: none;
}
.op-card--soldout .op-card__img {
    filter: grayscale(0.55) contrast(0.96);
}
.op-card__soldout {
    position: absolute;
    top: 14px;
    left: 14px;
    background: var(--sys-color-ink);
    color: var(--sys-color-cream);
    font-family: var(--sys-font-display);
    font-weight: 700;
    font-size: 10.5px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    padding: 6px 11px;
    border-radius: var(--sys-radius-sm);
}
.op-card__kicker {
    position: absolute;
    left: 14px;
    bottom: 14px;
    background: color-mix(in srgb, var(--sys-color-ink) 82%, transparent);
    color: var(--sys-color-cream);
    font-family: var(--sys-font-display);
    font-weight: 700;
    font-size: 10px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    padding: 5px 10px;
    border-radius: var(--sys-radius-sm);
}
.op-card__num {
    position: absolute;
    top: 10px;
    right: 14px;
    line-height: 1;
    font-family: var(--sys-font-display);
    font-weight: 800;
    font-size: 34px;
    letter-spacing: 0.02em;
    color: transparent;
    -webkit-text-stroke: 1.2px rgba(251, 247, 240, 0.95); /* neutral light outline */
    text-shadow: 0 2px 12px rgba(35, 31, 25, 0.28);
    pointer-events: none;
}
@supports not ((-webkit-text-stroke: 1px black)) {
    .op-card__num { color: rgba(251, 247, 240, 0.95); }
}
.op-card__info {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    padding: 20px 20px 22px;
}
.op-card__title {
    font-family: var(--sys-font-display);
    font-weight: 800;
    font-size: 22px;
    line-height: 1.1;
    letter-spacing: -0.012em;
    color: var(--sys-color-ink);
    margin: 0;
}
.op-card__title a {
    color: inherit;
    text-decoration: none;
}
.op-card:not(.op-card--soldout):hover .op-card__title a {
    color: var(--sys-color-cta-gold);
}
.op-card__price {
    font-family: var(--sys-font-body);
    font-weight: 700;
    font-size: 16.5px;
    color: var(--sys-color-cta-gold);
    margin-top: 8px;
    letter-spacing: 0.005em;
}
.op-card--soldout .op-card__price {
    color: var(--sys-color-ink-muted);
}
.op-card__meta {
    margin: 13px 0 0;
    padding-top: 12px;
    border-top: 1.5px dotted var(--sys-color-cream-2);
    font-family: var(--sys-font-body);
    font-size: 12px;
    letter-spacing: 0.015em;
    color: var(--sys-color-ink-muted);
}
/* Card CTA: reuse the AA-ratified canon gold pill (.woocommerce a.button above),
   just place it in the card. Sold-out cards get the quiet outline route-out. */
.op-card .button {
    align-self: flex-start;
    margin-top: 15px;
}
.op-card__cta--quiet {
    background: transparent !important;
    color: var(--sys-color-cta-gold) !important;
    border: 1.5px solid var(--sys-border-color) !important;
    box-shadow: none !important;
}
.op-card__cta--quiet:hover {
    border-color: var(--sys-color-primary) !important;
    color: var(--sys-color-gold-deep) !important;
    background: transparent !important;
    transform: none !important;
}

/* Feature-first card: photo left, copy right (desktop) */
@media (min-width: 900px) {
    .op-card--feature {
        flex-direction: row;
    }
    .op-card--feature .op-card__media {
        flex: 0 0 56%;
        aspect-ratio: auto;
        min-height: 440px;
    }
    .op-card--feature .op-card__info {
        justify-content: center;
        padding: 30px 34px;
    }
    .op-card--feature .op-card__title {
        font-size: 28px;
    }
    .op-card--feature .op-card__price {
        font-size: 18px;
    }
}

/* --- CROSS-BAND (02): two ways to go deeper ---------------------------------- */
.op-shop-cross {
    position: relative;
    overflow: hidden;
    background: var(--sys-color-ink);
    margin-top: 56px;
}
.op-shop-cross__inner {
    position: relative;
    max-width: 1180px;
    margin: 0 auto;
    padding: 50px 40px 54px;
}
.op-shop-sectionhead--onink {
    margin-bottom: 36px;
}
.op-shop-sectionhead--onink .op-shop-sectionhead__num {
    -webkit-text-stroke-color: var(--sys-color-primary);
}
@supports not ((-webkit-text-stroke: 1px black)) {
    .op-shop-sectionhead--onink .op-shop-sectionhead__num { color: var(--sys-color-primary); }
}
.op-shop-kicker--onink {
    margin: 0;
}
.op-shop-sectionhead__title--onink {
    color: var(--sys-color-cream);
    font-size: 26px;
    margin: 8px 0 0;
}
.op-shop-cross__grid {
    display: grid;
    grid-template-columns: 1fr 1px 1fr;
    gap: 44px;
    align-items: stretch;
}
.op-shop-route {
    display: flex;
    gap: 22px;
    align-items: flex-start;
    text-decoration: none;
}
.op-shop-route__divider {
    background: color-mix(in srgb, var(--sys-color-primary-light) 18%, transparent);
    width: 1px;
}
.op-shop-route__thumb {
    flex: 0 0 88px;
    width: 88px;
    height: 88px;
    border-radius: var(--sys-radius-lg);
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--sys-color-primary-light) 28%, transparent);
    display: block;
}
.op-shop-route__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.op-shop-route__body {
    display: flex;
    flex-direction: column;
}
.op-shop-route__eyebrow {
    font-family: var(--sys-font-display);
    font-weight: 700;
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--sys-color-primary-light);
}
.op-shop-route__title {
    font-family: var(--sys-font-display);
    font-weight: 700;
    font-size: 22px;
    letter-spacing: -0.01em;
    color: var(--sys-color-cream);
    margin: 10px 0 9px;
}
.op-shop-route__desc {
    font-family: var(--sys-font-body);
    font-size: 15px;
    line-height: 1.6;
    color: color-mix(in srgb, var(--sys-color-cream) 68%, transparent);
    margin: 0 0 14px;
    max-width: 360px;
}
.op-shop-route__cta {
    font-family: var(--sys-font-display);
    font-weight: 700;
    font-size: 14px;
    color: var(--sys-color-primary-light);
}
.op-shop-route:hover .op-shop-route__cta {
    color: var(--sys-color-cream);
}

/* --- RESPONSIVE (tablet / mobile) ------------------------------------------- */
@media (max-width: 899px) {
    .op-shop-hero__grid {
        grid-template-columns: 1fr;
        gap: 30px;
        padding: 30px 22px 40px;
    }
    .op-shop-hero__crumbs { padding: 14px 22px 0; }
    .op-shop-hero__photo { aspect-ratio: 4 / 3; }
    .op-shop-collection__inner { padding: 34px 22px 4px; }
    .op-shop-main ul.products { grid-template-columns: 1fr; gap: 20px; }
    .op-shop-main ul.products li.product.op-card--feature { grid-column: auto; }
    .op-shop-toolbar { align-items: stretch; }
    .op-shop-chips { overflow-x: auto; flex-wrap: nowrap; }
    .op-shop-cross__inner { padding: 40px 22px 44px; }
    .op-shop-cross__grid { grid-template-columns: 1fr; gap: 26px; }
    .op-shop-route__divider { width: auto; height: 1px; }
}

/* --- REDUCED MOTION: freeze the marquee + the feito-a-mao stamp -------------- */
@media (prefers-reduced-motion: reduce) {
    .op-shop-marquee__track,
    .op-shop-stamp__ring {
        animation: none !important;
    }
}

/* ============================================================================
 * WP-50 · PRODUCT PAGE (DQ-11) — single-product skin
 * ----------------------------------------------------------------------------
 * Layers on the native single product DOM inside .op-shop-main. Structure:
 *   .op-pdp            centered product region (breadcrumb + sticky gallery + buy col)
 *   .op-pdp-desc       full-bleed cream "01 · The instrument" band (desc tabs + specs)
 *   .op-pdp-culture    full-bleed dark culture band -> live Drums of Bahia guide
 *   .op-pdp-related    4-up DQ-10-card related grid (feature-span neutralised)
 * Token mapping matches the WP-49 block. Gallery core CSS (WP-45) is NEVER
 * re-suppressed — only wrappers are styled. Binding design: dq11-product-v1.dc.html.
 * ============================================================================ */

/* --- PRODUCT REGION shell + relocated breadcrumb ---------------------------- */
.op-pdp {
    background: var(--sys-color-surface-1);
}
.op-pdp__inner {
    max-width: 1120px;
    margin: 0 auto;
    padding: 32px 40px 72px;
}
.op-pdp-breadcrumb,
.op-pdp-breadcrumb a {
    font-family: var(--sys-font-body);
    font-size: var(--sys-font-size-small);
    color: var(--sys-color-ink-muted);
}
.op-pdp-breadcrumb {
    margin: 0 0 30px;
}
.op-pdp-breadcrumb a {
    color: var(--sys-color-cta-gold);          /* AA gold text on light */
}
.op-pdp-breadcrumb a:hover {
    text-decoration: underline;
}
.op-pdp-breadcrumb .op-crumb-sep {
    margin: 0 9px;
    color: color-mix(in srgb, var(--sys-color-ink-muted) 60%, transparent);
}

/* --- TWO-COLUMN GRID: sticky gallery + buy column --------------------------- */
.op-pdp .product {
    margin: 0;
}
.op-pdp__cols {
    display: grid;
    grid-template-columns: minmax(0, 500px) 1fr;
    gap: 64px;
    align-items: start;
}

/* --- GALLERY (wrappers only — core CSS restored by WP-45) -------------------- */
.op-pdp__cols .woocommerce-product-gallery {
    position: sticky;
    top: 24px;
    margin: 0;
    float: none;
    width: auto !important;
}
.op-pdp__cols .woocommerce-product-gallery__wrapper {
    margin: 0;
}
.op-pdp__cols .woocommerce-product-gallery .flex-viewport,
.op-pdp__cols .woocommerce-product-gallery__image {
    border-radius: var(--sys-radius-xl);
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--sys-color-ink) 10%, transparent);
    background: linear-gradient(150deg, var(--sys-color-cream) 0%, color-mix(in srgb, var(--sys-color-cream) 60%, var(--sys-color-primary-light)) 100%);
}
.op-pdp__cols .woocommerce-product-gallery__image a,
.op-pdp__cols .woocommerce-product-gallery__image img {
    display: block;
    width: 100%;
}
.op-pdp__cols .woocommerce-product-gallery__image img {
    aspect-ratio: 1 / 1;
    object-fit: cover;
}
.op-pdp__cols .woocommerce-product-gallery__trigger {
    top: 16px;
    right: 16px;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: color-mix(in srgb, var(--sys-color-surface-0) 92%, transparent);
    border: 1px solid color-mix(in srgb, var(--sys-color-ink) 12%, transparent);
    box-shadow: 0 4px 14px rgba(35, 31, 25, 0.16);
}
.op-pdp__cols .flex-control-thumbs {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    list-style: none;
    margin: 14px 0 0;
    padding: 0;
}
.op-pdp__cols .flex-control-thumbs li {
    margin: 0;
}
.op-pdp__cols .flex-control-thumbs img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: var(--sys-radius-md);
    border: 1.5px solid color-mix(in srgb, var(--sys-color-ink) 12%, transparent);
    opacity: 1;
    cursor: pointer;
    transition: border-color var(--sys-transition-fast);
}
.op-pdp__cols .flex-control-thumbs img:hover,
.op-pdp__cols .flex-control-thumbs img.flex-active {
    border: 2px solid var(--sys-color-primary);
}

/* --- BUY COLUMN (summary) --------------------------------------------------- */
.op-pdp__cols .summary {
    position: relative;                        /* anchors the sold-out stamp */
    margin: 0;
    width: auto !important;
    float: none !important;
}
.op-pdp-eyebrow {
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: var(--sys-font-display);
    font-weight: 800;
    font-size: var(--sys-font-size-caption);
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--sys-color-cta-gold);          /* AA gold text on light — SD-QB-A11Y */
    margin: 0 0 6px;
}
.op-pdp-eyebrow__sep {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--sys-color-primary-light);
}
.op-pdp .summary .product_title.entry-title {
    font-family: var(--sys-font-display);
    font-weight: 800;
    font-size: clamp(2.4rem, 1.8rem + 2vw, 3.25rem);
    line-height: 1.03;
    letter-spacing: -0.02em;
    color: var(--sys-color-ink);
    margin: 6px 0 16px;
}
.op-pdp .summary .price {
    font-family: var(--sys-font-display);
    font-weight: 800;
    font-size: clamp(1.6rem, 1.3rem + 1vw, 2.1rem);
    color: var(--sys-color-ink);
    letter-spacing: -0.01em;
    margin: 0 0 22px;
}
.op-pdp .summary .price del {
    color: var(--sys-color-ink-muted);
    font-weight: 600;
}
.op-pdp .summary .price ins {
    text-decoration: none;
}

/* Sold-out stamp (frame 1e) — price still renders; NO waitlist form (GATE R4) */
.op-pdp-soldout-stamp {
    position: absolute;
    top: 4px;
    right: 0;
    transform: rotate(-7deg);
    border: 2px solid var(--sys-color-error);
    color: var(--sys-color-error);
    font-family: var(--sys-font-display);
    font-weight: 900;
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    padding: 6px 11px;
    border-radius: var(--sys-radius-sm);
    background: var(--sys-color-surface-1);
}

/* --- VARIATIONS: canon-styled native <select> (baseline; frame 1f) ----------- */
.op-pdp .variations {
    width: 100%;
    margin: 0 0 4px;
    border: 0;
    border-collapse: collapse;
}
.op-pdp .variations tbody,
.op-pdp .variations tr {
    display: block;
}
.op-pdp .variations th.label,
.op-pdp .variations td.value {
    display: block;
    padding: 0;
    text-align: left;
}
.op-pdp .variations th.label {
    margin: 0 0 11px;
}
.op-pdp .variations th.label label {
    font-family: var(--sys-font-display);
    font-weight: 800;
    font-size: var(--sys-font-size-caption);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--sys-color-ink);
}
.op-pdp .variations td.value {
    position: relative;
    margin: 0 0 8px;
}
.op-pdp .variations select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    width: 100%;
    padding: 16px 46px 16px 18px;
    border-radius: var(--sys-radius-lg);
    border: 1.5px solid color-mix(in srgb, var(--sys-color-ink) 20%, transparent);
    background-color: var(--sys-color-surface-0);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%237a5c11' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 18px center;
    font-family: var(--sys-font-display);
    font-weight: 700;
    font-size: 15px;
    color: var(--sys-color-ink);
    cursor: pointer;
}
.op-pdp .variations select:focus {
    outline: 2px solid var(--sys-color-primary-tint-20);
    outline-offset: 1px;
    border-color: var(--sys-color-primary);
}
.op-pdp .reset_variations {
    display: inline-block;
    margin: 4px 0 0;
    font-family: var(--sys-font-display);
    font-weight: 700;
    font-size: var(--sys-font-size-small);
    color: var(--sys-color-cta-gold);
}

/* Selected-variation price + availability line ------------------------------- */
.op-pdp .single_variation .price {
    margin: 0 0 4px;
}
.op-pdp .woocommerce-variation-availability .stock,
.op-pdp .summary p.stock {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 16px 0 0;
    font-family: var(--sys-font-body);
    font-size: var(--sys-font-size-small);
    font-weight: 700;
    color: var(--sys-color-success);
}
.op-pdp .woocommerce-variation-availability .stock::before,
.op-pdp .summary p.stock::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex: none;
    background: currentColor;
}
.op-pdp .woocommerce-variation-availability .stock.out-of-stock,
.op-pdp .summary p.stock.out-of-stock,
.op-pdp .woocommerce-variation-availability .stock.available-on-backorder,
.op-pdp .summary p.stock.available-on-backorder {
    color: var(--sys-color-error);
}

/* --- ADD TO CART: qty + gold pill --------------------------------------------
 * SIMPLE products: form.cart directly holds qty + button -> flex row.
 * VARIABLE products: form.cart holds the .variations table + .single_variation_wrap
 * and MUST stay stacked (block); its qty + button live in
 * .woocommerce-variation-add-to-cart (flexed separately below). */
.op-pdp form.cart:not(.variations_form) {
    margin: 24px 0 0;
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 14px;
}
.op-pdp form.cart:not(.variations_form) .quantity {
    display: flex;
    align-items: center;
}
.op-pdp form.cart .quantity input.qty {
    width: 88px;
    height: 56px;
    text-align: center;
    border-radius: var(--sys-radius-full);
    border: 1.5px solid color-mix(in srgb, var(--sys-color-ink) 20%, transparent);
    font-family: var(--sys-font-display);
    font-weight: 800;
    font-size: 17px;
    color: var(--sys-color-ink);
    background: var(--sys-color-surface-0);
}
.op-pdp form.cart .single_add_to_cart_button {
    flex: 1;
    min-width: 200px;
    padding: 0 30px;
    min-height: 56px;
    font-size: 14.5px;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}
/* Woo disables the button until a valid variation is chosen / when unavailable */
.op-pdp .single_add_to_cart_button.disabled,
.op-pdp .single_add_to_cart_button.wc-variation-selection-needed,
.op-pdp .single_add_to_cart_button.wc-variation-is-unavailable,
.op-pdp .product.outofstock .single_add_to_cart_button {
    background: color-mix(in srgb, var(--sys-color-cream) 70%, var(--sys-color-ink-muted)) !important;
    color: var(--sys-color-ink-muted) !important;
    box-shadow: none !important;
    cursor: not-allowed;
    transform: none !important;
}
.op-pdp .woocommerce-variation-add-to-cart {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 14px;
    margin: 24px 0 0;
}
.op-pdp .woocommerce-variation-add-to-cart .quantity input.qty {
    width: 88px;
    height: 56px;
    text-align: center;
    border-radius: var(--sys-radius-full);
    border: 1.5px solid color-mix(in srgb, var(--sys-color-ink) 20%, transparent);
    font-family: var(--sys-font-display);
    font-weight: 800;
    font-size: 17px;
    background: var(--sys-color-surface-0);
}

/* --- HONESTY CLUSTER (replaces trust badges) -------------------------------- */
.op-pdp-trust {
    margin: 22px 0 0;
    padding: 18px 0 0;
    border-top: 2px dashed color-mix(in srgb, var(--sys-color-ink) 22%, transparent);
}
.op-pdp-trust__badges {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
}
.op-pdp-trust__badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-family: var(--sys-font-display);
    font-weight: 800;
    font-size: 11.5px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--sys-color-ink-light);
}
.op-pdp-trust__badge svg {
    color: var(--sys-color-gold-deep);
    flex: none;
}
.op-pdp-trust__dot {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--sys-color-primary-light);
}
.op-pdp-trust__lead {
    margin: 9px 0 0;
    font-family: var(--sys-font-body);
    font-size: var(--sys-font-size-small);
    color: var(--sys-color-ink-muted);
}
.op-pdp-trust__callout {
    margin: 16px 0 0;
    border: 2px dashed color-mix(in srgb, var(--sys-color-ink) 30%, transparent);
    background: color-mix(in srgb, var(--sys-color-cream) 55%, transparent);
    border-radius: var(--sys-radius-md);
    padding: 14px 16px;
    display: flex;
    gap: 11px;
    align-items: flex-start;
}
.op-pdp-trust__callout svg {
    color: var(--sys-color-gold-deep);
    flex: none;
    margin-top: 2px;
}
.op-pdp-trust__callout span {
    font-family: var(--sys-font-body);
    font-size: var(--sys-font-size-small);
    line-height: var(--sys-line-height-normal);
    color: var(--sys-color-ink-base);
}
.op-pdp-trust__callout strong {
    display: block;
    margin: 0 0 3px;
    font-family: var(--sys-font-display);
    font-weight: 800;
    font-size: 11px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--sys-color-gold-deep);
}

/* --- PRODUCT META (SKU hidden when empty — §4) ------------------------------ */
.op-pdp .product_meta {
    margin: 16px 0 0;
    font-family: var(--sys-font-body);
    font-size: var(--sys-font-size-small);
    color: var(--sys-color-ink-muted);
}
.op-pdp .product_meta a {
    color: var(--sys-color-cta-gold);
}
.op-pdp .product_meta > span {
    display: block;
    margin: 0 0 2px;
}

/* --- DESCRIPTION BAND (cream) — "01 · The instrument" ----------------------- */
.op-pdp-desc {
    background: var(--sys-color-cream);
    border-top: 1px solid color-mix(in srgb, var(--sys-color-ink) 8%, transparent);
    border-bottom: 1px solid color-mix(in srgb, var(--sys-color-ink) 8%, transparent);
}
.op-pdp-desc__inner {
    max-width: 1120px;
    margin: 0 auto;
    padding: 72px 40px;
}
.op-pdp-desc__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 72px;
    align-items: start;
}
.op-pdp-desc__head {
    position: relative;
}
.op-pdp-desc__num {
    position: absolute;
    left: -4px;
    top: -64px;
    font-family: var(--sys-font-display);
    font-weight: 900;
    font-size: 150px;
    line-height: 1;
    color: transparent;
    -webkit-text-stroke: 1.5px color-mix(in srgb, var(--sys-color-primary) 18%, transparent);
    user-select: none;
    pointer-events: none;
}
.op-pdp-eyebrow--onlight {
    position: relative;
    display: block;
}
.op-pdp-desc__title {
    position: relative;
    font-family: var(--sys-font-display);
    font-weight: 800;
    font-size: clamp(1.75rem, 1.4rem + 1.4vw, 2.25rem);
    line-height: 1.08;
    letter-spacing: -0.01em;
    color: var(--sys-color-ink);
    margin: 10px 0 0;
}
/* single-tab remainder: hide the redundant one-item nav, style the panel body */
.op-pdp-desc__body .woocommerce-tabs {
    margin: 0;
}
.op-pdp-desc__body .woocommerce-tabs ul.tabs {
    display: none;
}
.op-pdp-desc__body .woocommerce-Tabs-panel {
    padding: 0;
}
.op-pdp-desc__body .woocommerce-Tabs-panel > * {
    font-family: var(--sys-font-body);
    font-size: var(--sys-font-size-body);
    line-height: var(--sys-line-height-relaxed);
    color: var(--sys-color-ink-base);
}
.op-pdp-desc__body .woocommerce-Tabs-panel > *:not(:last-child) {
    margin: 0 0 18px;
}
.op-pdp-desc__body .woocommerce-Tabs-panel h2:first-child {
    display: none;                             /* drop the tab's own "Description" heading — the band head already titles it */
}

/* --- SPECS TABLE (from real attributes; hides when none) -------------------- */
.op-pdp-specs {
    margin: 56px 0 0;
    border-top: 2px dashed color-mix(in srgb, var(--sys-color-ink) 20%, transparent);
    padding: 36px 0 0;
}
.op-pdp-specs__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 72px;
}
.op-pdp-specs__row {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding: 14px 0;
    border-bottom: 1px solid color-mix(in srgb, var(--sys-color-ink) 14%, transparent);
}
.op-pdp-specs__key {
    font-family: var(--sys-font-display);
    font-weight: 800;
    font-size: 11.5px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--sys-color-ink-light);
}
.op-pdp-specs__val {
    font-family: var(--sys-font-body);
    font-size: var(--sys-font-size-small);
    color: var(--sys-color-ink);
    text-align: right;
}

/* --- CULTURE BAND (dark) — cross-links the live field guide ------------------ */
.op-pdp-culture {
    position: relative;
    background: var(--sys-color-ink-deep);
    overflow: hidden;
}
.op-pdp-culture__weave {
    position: absolute;
    inset: 0;
    background:
        repeating-linear-gradient(45deg, color-mix(in srgb, var(--sys-color-primary-light) 6%, transparent) 0 2px, transparent 2px 13px),
        repeating-linear-gradient(-45deg, color-mix(in srgb, var(--sys-color-primary-light) 5%, transparent) 0 2px, transparent 2px 13px);
    opacity: 0.6;
    pointer-events: none;
}
.op-pdp-culture__inner {
    position: relative;
    max-width: 1120px;
    margin: 0 auto;
    padding: 76px 40px;
    display: grid;
    grid-template-columns: 1.15fr 0.85fr;
    gap: 64px;
    align-items: center;
}
.op-pdp-culture__eyebrow {
    font-family: var(--sys-font-display);
    font-weight: 800;
    font-size: var(--sys-font-size-caption);
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--sys-color-primary-light);     /* gold on dark — the on-ink accent */
    margin: 0;
}
.op-pdp-culture__quote {
    font-family: 'Playfair Display', Georgia, serif;   /* self-hosted (SD-20), italic accent */
    font-style: italic;
    font-weight: 500;
    font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2rem);
    line-height: 1.3;
    color: var(--sys-color-cream);
    margin: 20px 0 22px;
    max-width: 20ch;
}
.op-pdp-culture__lede {
    font-family: var(--sys-font-body);
    font-size: var(--sys-font-size-body);
    line-height: var(--sys-line-height-relaxed);
    color: color-mix(in srgb, var(--sys-color-cream) 78%, transparent);
    margin: 0 0 30px;
    max-width: 52ch;
}
.op-pdp-culture__cta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 15px 30px;
    border-radius: var(--sys-radius-full);
    border: 1.5px solid color-mix(in srgb, var(--sys-color-primary-light) 55%, transparent);
    color: var(--sys-color-cream);
    font-family: var(--sys-font-display);
    font-weight: 800;
    font-size: 13px;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    transition: background var(--sys-transition-fast), border-color var(--sys-transition-fast);
}
.op-pdp-culture__cta:hover {
    background: color-mix(in srgb, var(--sys-color-primary-light) 12%, transparent);
    border-color: var(--sys-color-primary-light);
    color: var(--sys-color-cream);
}
.op-pdp-culture__cta svg {
    color: var(--sys-color-primary-light);
}
.op-pdp-culture__card {
    display: block;
    border: 1px solid color-mix(in srgb, var(--sys-color-primary-light) 28%, transparent);
    border-radius: var(--sys-radius-xl);
    padding: 26px;
    background: color-mix(in srgb, var(--sys-color-surface-0) 4%, transparent);
    transition: border-color var(--sys-transition-fast), transform var(--sys-transition-base);
}
.op-pdp-culture__card:hover {
    border-color: color-mix(in srgb, var(--sys-color-primary-light) 55%, transparent);
    transform: translateY(-3px);
}
.op-pdp-culture__card-eyebrow {
    display: block;
    font-family: var(--sys-font-display);
    font-weight: 800;
    font-size: 10.5px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--sys-color-primary-light);
}
.op-pdp-culture__card-title {
    display: block;
    font-family: var(--sys-font-display);
    font-weight: 800;
    font-size: 20px;
    line-height: 1.2;
    color: var(--sys-color-cream);
    margin: 12px 0 8px;
}
.op-pdp-culture__card-meta {
    display: block;
    font-family: var(--sys-font-body);
    font-size: var(--sys-font-size-small);
    color: color-mix(in srgb, var(--sys-color-cream) 62%, transparent);
}

/* --- RELATED (DQ-10 cards, 4-up) — inherited-override of the archive grid ---- */
.op-pdp-related {
    background: var(--sys-color-surface-1);
}
.op-pdp-related__inner {
    max-width: 1120px;
    margin: 0 auto;
    padding: 72px 40px 84px;
}
.op-pdp-related__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin: 0 0 34px;
}
.op-pdp-related__title {
    font-family: var(--sys-font-display);
    font-weight: 800;
    font-size: clamp(1.6rem, 1.3rem + 1vw, 2rem);
    color: var(--sys-color-ink);
    margin: 8px 0 0;
}
.op-pdp-related__all {
    font-family: var(--sys-font-display);
    font-weight: 700;
    font-size: var(--sys-font-size-small);
    color: var(--sys-color-cta-gold);
    white-space: nowrap;
}
.op-pdp-related__all:hover {
    text-decoration: underline;
}
/* Force the DQ-10 grid to 4-up and neutralise the archive feature-first span. */
.op-shop-main .op-pdp-related ul.products {
    grid-template-columns: repeat(4, 1fr);
    margin: 0 !important;
}
.op-shop-main .op-pdp-related ul.products li.product.op-card--feature {
    grid-column: auto;
}
.op-pdp-related .op-card--feature {
    flex-direction: column;
}
.op-pdp-related .op-card--feature .op-card__media {
    flex: none;
    aspect-ratio: 1 / 1;
    min-height: 0;
}
.op-pdp-related .op-card--feature .op-card__info {
    justify-content: flex-start;
    padding: 18px;
}
.op-pdp-related .op-card--feature .op-card__title {
    font-size: 16px;
}
.op-pdp-related .op-card--feature .op-card__price {
    font-size: 18px;
}

/* --- RESPONSIVE ------------------------------------------------------------- */
@media (max-width: 899px) {
    .op-pdp__inner { padding: 22px 22px 48px; }
    .op-pdp__cols { grid-template-columns: 1fr; gap: 30px; }
    .op-pdp__cols .woocommerce-product-gallery { position: static; }
    .op-pdp-soldout-stamp { position: static; display: inline-block; transform: none; margin: 0 0 10px; }
    .op-pdp-desc__inner { padding: 44px 22px; }
    .op-pdp-desc__grid { grid-template-columns: 1fr; gap: 20px; }
    .op-pdp-desc__num { position: static; font-size: 90px; }
    .op-pdp-specs__grid { grid-template-columns: 1fr; gap: 0; }
    .op-pdp-culture__inner { grid-template-columns: 1fr; gap: 30px; padding: 48px 22px; }
    .op-pdp-related__inner { padding: 44px 22px 52px; }
    .op-shop-main .op-pdp-related ul.products { grid-template-columns: 1fr 1fr; gap: 16px; }
    .op-pdp-related__head { flex-wrap: wrap; }
}
@media (max-width: 560px) {
    .op-shop-main .op-pdp-related ul.products { grid-template-columns: 1fr; }
    .op-pdp form.cart .single_add_to_cart_button,
    .op-pdp .woocommerce-variation-add-to-cart .single_add_to_cart_button { min-width: 0; width: 100%; }
}

/* =============================================================================
 * WP-51 — CART PAGE (DQ-12)
 * Binding design: scratch/rebuild/design/dq12-cart-v1.dc.html. Hooks-first
 * (SD-35): the stock cart/cart.php table + stock cart-totals.php are re-skinned
 * here into line-item cards + a kraft summary card. The retired fork's
 * cart-checkout.css no longer loads on the cart (functions.php); this section is
 * the cart's whole skin. Live rails + live data win (R5). AA text-on-gold
 * #9c6408 (SD-QB-A11Y). Cart-scoped via body.woocommerce-cart.
 * ============================================================================= */

body.woocommerce-cart { background: #FAFAF9; }

/* Kill the parent page.php dark `.hero-pages` title hero on the cart — the
 * DQ-12 kraft band replaces it (fixes the "grey-on-grey under the sticky header"
 * bug). The band sits flush under the sticky white #site-header. */
body.woocommerce-cart .hero-pages { display: none; }
body.woocommerce-cart .container.pt-4.pb-4 { padding-top: 0; }

/* --- Kraft page-title band (full-bleed, clears the sticky header) ------------ */
.op-cart-band {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    background: #F6EEDD;
    border-bottom: 1px solid rgba(183, 120, 13, 0.18);
    box-sizing: border-box;
}
.op-cart-band__inner {
    max-width: 1180px;
    margin: 0 auto;
    padding: 2.4rem 1.25rem 2.1rem;
    box-sizing: border-box;
}
.op-cart-crumbs {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-family: var(--sys-font-display);
    font-size: 0.74rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: 0.7rem;
}
.op-cart-crumbs a { color: #9C6408; text-decoration: none; }
.op-cart-crumbs a:hover { text-decoration: underline; }
.op-cart-crumbs [aria-current="page"] { color: #5A4B2E; }
.op-cart-crumbs__sep { color: #B9A886; }
.op-cart-band__title {
    font-family: var(--sys-font-display);
    font-weight: 800;
    font-size: clamp(1.5rem, 4vw, 2.4rem);
    color: #2B2823;
    margin: 0;
    letter-spacing: -0.02em;
    line-height: 1.1;
}
.op-cart-band__sub {
    font-family: var(--sys-font-body);
    font-size: 1rem;
    color: #59554F;
    margin: 0.5rem 0 0;
}

/* --- Two-column layout: items (left) | sticky summary (right) ----------------
 * Applied only when the cart is non-empty (:has a cart form). The band + the
 * notices wrapper span both columns; empty notices collapse. */
body.woocommerce-cart .woocommerce:has(form.woocommerce-cart-form) {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    column-gap: 2rem;
    row-gap: 1.6rem;
    align-items: start;
}
body.woocommerce-cart .woocommerce:has(form.woocommerce-cart-form) > .op-cart-band { order: -2; grid-column: 1 / -1; }
body.woocommerce-cart .woocommerce:has(form.woocommerce-cart-form) > .woocommerce-notices-wrapper { order: -1; grid-column: 1 / -1; }
body.woocommerce-cart .woocommerce-notices-wrapper:empty { display: none; }
body.woocommerce-cart .woocommerce:has(form.woocommerce-cart-form) > form.woocommerce-cart-form { order: 1; grid-column: 1; margin: 0; }
body.woocommerce-cart .woocommerce:has(form.woocommerce-cart-form) > .cart-collaterals {
    order: 2;
    grid-column: 2;
    width: auto;
    position: sticky;
    top: 96px;
}

/* --- Line-item cards (from the stock shop_table_responsive table) ------------ */
body.woocommerce-cart .woocommerce-cart-form__contents { display: block; border: 0; margin: 0; width: 100%; }
/* Keep the native column headers in the accessibility tree while preserving the
 * card presentation. Screen readers use these scoped headers to identify each
 * price, quantity, and subtotal cell. */
body.woocommerce-cart .woocommerce-cart-form__contents thead {
    display: block;
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
body.woocommerce-cart .woocommerce-cart-form__contents tbody { display: flex; flex-direction: column; gap: 1rem; }
body.woocommerce-cart .woocommerce-cart-form__contents tbody > tr { display: block; }

body.woocommerce-cart tr.cart_item {
    display: grid;
    grid-template-columns: 104px minmax(0, 1fr) auto auto 40px;
    grid-template-areas:
        "thumb name  qty subtotal remove"
        "thumb price qty subtotal remove";
    align-items: center;
    column-gap: 1.25rem;
    row-gap: 0.2rem;
    background: #FFFFFF;
    border: 1px solid #EFE9DD;
    border-radius: 16px;
    box-shadow: 0 1px 3px rgba(43, 40, 35, 0.06);
    padding: 1.1rem 1.2rem;
}
body.woocommerce-cart tr.cart_item td { border: 0; padding: 0; margin: 0; background: transparent; }
body.woocommerce-cart tr.cart_item td::before { display: none !important; content: none !important; } /* kill responsive data-title labels */

body.woocommerce-cart td.product-thumbnail { grid-area: thumb; align-self: center; }
body.woocommerce-cart td.product-thumbnail img {
    width: 104px; height: 104px; border-radius: 12px; object-fit: cover;
    border: 1px solid #EFE9DD; background: #F1ECE1; display: block; margin: 0;
}
body.woocommerce-cart td.product-name { grid-area: name; align-self: end; font-family: var(--sys-font-display); }
body.woocommerce-cart td.product-name a { font-weight: 700; font-size: 1.05rem; color: #2B2823; text-decoration: none; letter-spacing: -0.01em; }
body.woocommerce-cart td.product-name a:hover { color: #9C6408; }
body.woocommerce-cart td.product-name .variation,
body.woocommerce-cart td.product-name dl.variation,
body.woocommerce-cart td.product-name .wc-item-meta {
    font-family: var(--sys-font-body); font-size: 0.85rem; color: #888580; margin: 0.25rem 0 0; padding: 0;
}
body.woocommerce-cart td.product-name .backorder_notification { font-size: 0.8rem; color: #8A5A0A; margin-top: 0.3rem; }

body.woocommerce-cart td.product-price {
    grid-area: price; align-self: start;
    font-family: var(--sys-font-body); font-size: 0.85rem; color: #59554F;
}
body.woocommerce-cart td.product-price .op-cart-unit { color: #888580; }

body.woocommerce-cart td.product-quantity { grid-area: qty; justify-self: center; }
body.woocommerce-cart td.product-quantity .quantity {
    display: inline-flex; align-items: center; overflow: hidden;
    border: 1px solid #E4DECF; border-radius: 10px; background: #FBF7EF;
}
body.woocommerce-cart td.product-quantity input.qty {
    width: 58px; height: 40px; border: 0; background: transparent; text-align: center;
    font-family: var(--sys-font-display); font-weight: 700; font-size: 0.95rem; color: #2B2823;
    -moz-appearance: textfield;
}

body.woocommerce-cart td.product-subtotal {
    grid-area: subtotal; justify-self: end; min-width: 84px; text-align: right;
    font-family: var(--sys-font-display); font-weight: 700; font-size: 1.05rem; color: #2B2823;
}

body.woocommerce-cart td.product-remove { grid-area: remove; align-self: center; }
body.woocommerce-cart td.product-remove a.remove {
    display: flex; align-items: center; justify-content: center;
    width: 40px; height: 40px; border: 1px solid #EFE9DD; background: #FFFFFF;
    border-radius: 10px; color: #888580 !important; font-size: 1.2rem; line-height: 1; text-decoration: none;
}
body.woocommerce-cart td.product-remove a.remove:hover { border-color: #F4C9C4; background: #FCEBE9; color: #B42318 !important; }

/* Actions row (coupon + update cart) — a plain strip, not a card. */
body.woocommerce-cart td.actions {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
    gap: 0.75rem; padding: 0.4rem 0.2rem 0; border: 0;
}
body.woocommerce-cart td.actions .coupon { display: flex; gap: 0.5rem; align-items: center; }
body.woocommerce-cart td.actions input#coupon_code {
    height: 44px; border: 1px solid #E4DECF; border-radius: 10px; background: #FFFFFF;
    padding: 0 0.9rem; font-family: var(--sys-font-body); color: #2B2823;
}

/* --- Order-summary card (kraft) ---------------------------------------------- */
body.woocommerce-cart .cart-collaterals::after { content: none; display: none; } /* Woo clearfix not needed */
body.woocommerce-cart .cart-collaterals .cart_totals {
    float: none; width: 100%;
    background: #E4D3AD; border: 1px solid rgba(138, 90, 10, 0.28); border-radius: 16px;
    box-shadow: 0 6px 22px rgba(43, 40, 35, 0.10); padding: 1.4rem 1.5rem 1.5rem; box-sizing: border-box;
}
body.woocommerce-cart .cart_totals > h2 {
    font-family: var(--sys-font-display); font-weight: 800; font-size: 1.15rem; color: #2B2823;
    letter-spacing: -0.01em; margin: 0 0 1rem; padding: 0 0 1rem; border: 0;
    border-bottom: 1px solid rgba(138, 90, 10, 0.2);
}
body.woocommerce-cart .cart_totals table.shop_table { margin: 0; border: 0; background: transparent; }
body.woocommerce-cart .cart_totals table.shop_table th,
body.woocommerce-cart .cart_totals table.shop_table td {
    border: 0; padding: 0.45rem 0; background: transparent; font-family: var(--sys-font-body); color: #5A4B2E;
}
body.woocommerce-cart .cart_totals table.shop_table th { font-weight: 400; font-size: 0.95rem; }
body.woocommerce-cart .cart_totals table.shop_table td { text-align: right; font-weight: 700; color: #2B2823; }
body.woocommerce-cart .cart_totals .op-cart-ships td {
    font-size: 0.78rem; color: #5A4B2E; font-weight: 400; text-align: left; line-height: 1.45; padding: 0.15rem 0 0;
}
body.woocommerce-cart .cart_totals .order-total th,
body.woocommerce-cart .cart_totals .order-total td {
    border-top: 1px solid rgba(138, 90, 10, 0.2); padding-top: 1rem;
    font-family: var(--sys-font-display); color: #2B2823;
}
body.woocommerce-cart .cart_totals .order-total th { font-weight: 800; font-size: 1.05rem; }
body.woocommerce-cart .cart_totals .order-total td { font-weight: 800; font-size: 1.6rem; letter-spacing: -0.02em; }
body.woocommerce-cart .cart_totals .op-cart-total-note td {
    border: 0; padding-top: 0.35rem; font-family: var(--sys-font-body); font-weight: 400;
    font-size: 0.75rem; color: #5A4B2E; text-align: left; line-height: 1.45;
}

/* Proceed-to-checkout button + continue link + trust line. */
body.woocommerce-cart .cart_totals .wc-proceed-to-checkout { margin-top: 1.3rem; padding: 0; }
body.woocommerce-cart .cart_totals a.checkout-button {
    display: flex; align-items: center; justify-content: center; width: 100%; min-height: 56px; box-sizing: border-box;
    background: linear-gradient(135deg, #9C6408 0%, #8A5A0A 100%); color: #FFFFFF;
    font-family: var(--sys-font-display); font-weight: 800; font-size: 0.95rem; text-transform: uppercase;
    letter-spacing: 0.04em; border-radius: 9999px; box-shadow: 0 8px 20px rgba(156, 100, 8, 0.35); margin: 0;
}
body.woocommerce-cart .cart_totals a.checkout-button:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(156, 100, 8, 0.45); color: #FFFFFF; }
body.woocommerce-cart .op-cart-continue {
    display: block; text-align: center; margin-top: 0.9rem;
    font-family: var(--sys-font-display); font-weight: 600; font-size: 0.85rem; color: #9C6408; text-decoration: none;
}
body.woocommerce-cart .op-cart-continue:hover { color: #8A5A0A; text-decoration: underline; }
body.woocommerce-cart .op-cart-trust {
    display: flex; align-items: center; justify-content: center; gap: 0.4rem; margin: 1rem 0 0;
    color: #5A4B2E; font-family: var(--sys-font-body); font-size: 0.75rem;
}
body.woocommerce-cart .op-cart-trust__lock { flex-shrink: 0; }

/* --- Empty cart (DQ-12 F2) --------------------------------------------------- */
body.woocommerce-cart p.return-to-shop { display: none; } /* our two CTAs replace it */
.op-cart-empty { max-width: 560px; margin: 0 auto; padding: 3.25rem 1.5rem 4rem; text-align: center; }
.op-cart-empty__icon {
    width: 120px; height: 120px; border-radius: 50%; background: #E4D3AD;
    border: 1px solid rgba(138, 90, 10, 0.25); box-shadow: 0 6px 22px rgba(43, 40, 35, 0.08);
    display: flex; align-items: center; justify-content: center; margin: 0 auto 1.75rem; color: #8A5A0A;
}
.op-cart-empty__title {
    font-family: var(--sys-font-display); font-weight: 800; font-size: clamp(1.5rem, 4vw, 2rem);
    color: #2B2823; margin: 0 0 0.75rem; letter-spacing: -0.02em;
}
.op-cart-empty__copy {
    font-family: var(--sys-font-body); font-size: 1.05rem; line-height: 1.6; color: #59554F;
    margin: 0 auto 2rem; max-width: 440px;
}
.op-cart-empty__routes { display: flex; gap: 0.85rem; justify-content: center; flex-wrap: wrap; }
.op-cart-btn {
    display: inline-flex; align-items: center; justify-content: center; min-height: 54px; padding: 0 1.9rem;
    font-family: var(--sys-font-display); font-weight: 800; font-size: 0.9rem; text-transform: uppercase;
    letter-spacing: 0.04em; text-decoration: none; border-radius: 9999px;
}
.op-cart-btn--primary { background: linear-gradient(135deg, #9C6408 0%, #8A5A0A 100%); color: #FFFFFF; box-shadow: 0 8px 20px rgba(156, 100, 8, 0.35); }
.op-cart-btn--primary:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(156, 100, 8, 0.45); color: #FFFFFF; }
.op-cart-btn--ghost { background: transparent; color: #9C6408; border: 2px solid #B7780D; }
.op-cart-btn--ghost:hover { background: rgba(183, 120, 13, 0.10); color: #8A5A0A; }

/* --- Cart responsive -------------------------------------------------------- */
@media (max-width: 900px) {
    body.woocommerce-cart .woocommerce:has(form.woocommerce-cart-form) { grid-template-columns: 1fr; }
    body.woocommerce-cart .woocommerce:has(form.woocommerce-cart-form) > form.woocommerce-cart-form,
    body.woocommerce-cart .woocommerce:has(form.woocommerce-cart-form) > .cart-collaterals { grid-column: 1; }
    body.woocommerce-cart .woocommerce:has(form.woocommerce-cart-form) > .cart-collaterals { position: static; }
}
@media (max-width: 600px) {
    body.woocommerce-cart .op-cart-band__inner { padding: 1.5rem 1rem 1.3rem; }
    body.woocommerce-cart tr.cart_item {
        grid-template-columns: 72px minmax(0, 1fr) 34px;
        grid-template-areas:
            "thumb name  remove"
            "thumb price remove"
            "qty   qty   subtotal";
        column-gap: 0.85rem; row-gap: 0.35rem; padding: 0.9rem;
    }
    body.woocommerce-cart td.product-thumbnail img { width: 72px; height: 72px; }
    body.woocommerce-cart td.product-quantity { justify-self: start; margin-top: 0.5rem; padding-top: 0.6rem; }
    body.woocommerce-cart td.product-subtotal { align-self: center; margin-top: 0.5rem; padding-top: 0.6rem; }
    body.woocommerce-cart td.product-remove a.remove { width: 34px; height: 34px; }
    body.woocommerce-cart td.actions { justify-content: stretch; }
}

/* =============================================================================
 * WP-60 — MY-ACCOUNT SURFACE (DQ-18)
 * Binding design: scratch/rebuild/design/dq18-account-v1.dc.html. Hooks + CSS
 * first (SD-35): the stock Woo login form + the standard
 * .woocommerce-MyAccount-navigation / -content DOM are re-skinned here; the only
 * template forks are the re-baselined myaccount/{form-login,navigation,orders}.php.
 * The parent page.php Bootstrap `.hero-pages` band is killed (WP-51 cart
 * precedent) and replaced by the full-bleed .op-account-band (functions.php).
 * Account-scoped via body.woocommerce-account. Live data + live order actions win
 * (R5). AA text-on-gold #9C6408 (SD-QB-A11Y). Self-hosted fonts, no FontAwesome
 * (SD-20) — decorative icons are inline SVG or omitted.
 * ============================================================================= */

body.woocommerce-account { background: #FAFAF9; }

/* Kill the parent page.php dark `.hero-pages` title hero on the account page —
 * the canon .op-account-band replaces it, flush under the sticky #site-header. */
body.woocommerce-account .hero-pages { display: none; }
body.woocommerce-account .container.pt-4.pb-4 { padding-top: 0; }

/* --- Full-bleed dark page-title band (clears the sticky header) -------------- */
.op-account-band {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	background: linear-gradient(135deg, #2B2823 0%, #3a3633 100%);
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
	box-sizing: border-box;
}
.op-account-band__inner {
	max-width: 1120px;
	margin: 0 auto;
	padding: 2.5rem 1.25rem 2.3rem;
	box-sizing: border-box;
}
.op-account-crumbs {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	font-family: var(--sys-font-body);
	font-size: 0.82rem;
	color: rgba(255, 255, 255, 0.55);
	margin-bottom: 0.5rem;
}
.op-account-crumbs a { color: rgba(255, 255, 255, 0.85); text-decoration: none; }
.op-account-crumbs a:hover { color: #D8A81B; }
.op-account-crumbs__sep { color: rgba(255, 255, 255, 0.3); }
.op-account-band__title {
	font-family: var(--sys-font-display);
	font-weight: 700;
	font-size: clamp(1.55rem, 3.5vw, 2rem);
	color: #fff;
	margin: 0;
	letter-spacing: 0.01em;
	line-height: 1.1;
}
.op-account-band__title::after {
	content: "";
	display: block;
	width: 56px;
	height: 3px;
	background: #D8A81B;
	margin-top: 0.85rem;
	border-radius: 2px;
}

/* --- LOGGED-OUT: centered login card ----------------------------------------- */
.op-login-wrap {
	display: flex;
	justify-content: center;
	padding: 3.25rem 0 4.25rem;
}
.op-login-wrap.col2-set {
	gap: 2rem;
	flex-wrap: wrap;
}
.op-login-card {
	width: 100%;
	max-width: 460px;
	background: #fff;
	border: 1px solid #F0EEE9;
	border-radius: 16px;
	box-shadow: 0 12px 44px rgba(43, 40, 35, 0.08);
	padding: clamp(1.6rem, 4vw, 2.5rem);
	box-sizing: border-box;
}
.op-login-card__eyebrow {
	font-family: var(--sys-font-display);
	font-weight: 700;
	font-size: 0.72rem;
	letter-spacing: 0.13em;
	color: #85754D;
	text-transform: uppercase;
}
.op-login-card__title {
	font-family: var(--sys-font-display);
	font-weight: 700;
	font-size: 1.5rem;
	color: #2B2823;
	margin: 0.45rem 0 0.4rem;
}
.op-login-card__intro {
	font-family: var(--sys-font-body);
	font-size: 0.95rem;
	color: #59554F;
	line-height: 1.5;
	margin: 0 0 1.6rem;
}
.op-login-card .woocommerce-form-row,
.op-login-card .form-row { margin: 0 0 1.1rem; }
.op-login-card label {
	display: block;
	font-family: var(--sys-font-display);
	font-weight: 600;
	font-size: 0.85rem;
	color: #2B2823;
	margin-bottom: 0.5rem;
}
.op-login-card .woocommerce-form__label-for-checkbox { display: flex; align-items: center; gap: 0.5rem; font-weight: 400; font-family: var(--sys-font-body); color: #59554F; margin: 0; }
.op-login-card input.input-text,
.op-login-card input[type="text"],
.op-login-card input[type="email"],
.op-login-card input[type="password"] {
	width: 100%;
	padding: 0.8rem 0.95rem;
	border: 2px solid #F0EEE9;
	border-radius: 10px;
	font-family: var(--sys-font-body);
	font-size: 1rem;
	color: #2B2823;
	background: #fff;
	box-sizing: border-box;
}
.op-login-card input.input-text:focus,
.op-login-card input[type="text"]:focus,
.op-login-card input[type="email"]:focus,
.op-login-card input[type="password"]:focus {
	border-color: #B7780D;
	outline: none;
	box-shadow: 0 0 0 3px rgba(183, 120, 13, 0.16);
}
.op-login-card input[type="checkbox"] { width: 16px; height: 16px; accent-color: #B7780D; }

/* password field + eye toggle */
.op-pw-wrap { position: relative; display: block; }
.op-pw-wrap input { padding-right: 2.9rem; }
.op-pw-toggle {
	position: absolute;
	right: 0.5rem;
	top: 50%;
	transform: translateY(-50%);
	background: none;
	border: none;
	color: #888580;
	cursor: pointer;
	padding: 0.4rem;
	line-height: 0;
	border-radius: 8px;
}
.op-pw-toggle:hover { color: #B7780D; }
.op-pw-toggle:focus-visible { outline: 2px solid #9C6408; outline-offset: 1px; }

/* remember-me row: checkbox left, lost-password right */
.op-login-card .woocommerce-form-login__rememberme { flex: 1; }
.op-login-card form.woocommerce-form-login .form-row:has(.woocommerce-form-login__rememberme) {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
}
.op-login-card .lost_password { margin: 0.4rem 0 0; font-size: 0.9rem; }
.op-login-card .lost_password a { color: #70633C; }
.op-login-card .lost_password a:hover { color: #B7780D; }

/* Primary submit button: the CTA-gold fill is AA with white text. */
.op-login-card button[type="submit"] {
	width: 100%;
	background: var(--sys-color-cta-gold, #9C6408);
	color: #fff;
	font-family: var(--sys-font-display);
	font-weight: 700;
	font-size: 1rem;
	border: none;
	border-radius: 9999px;
	padding: 0.9rem 1rem;
	cursor: pointer;
	box-shadow: 0 4px 14px rgba(183, 120, 13, 0.35);
	min-height: 50px;
	letter-spacing: 0.02em;
	margin-top: 0.6rem;
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.op-login-card button[type="submit"]:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(183, 120, 13, 0.45); color: #fff; }

/* auto-created-account note (DQ-18 verbatim copy) */
.op-login-note {
	margin-top: 1.5rem;
	padding: 1rem 1.05rem;
	background: #FBF6EA;
	border: 1px solid #EEE2C6;
	border-radius: 12px;
	display: flex;
	gap: 0.8rem;
	align-items: flex-start;
}
.op-login-note__icon { color: #B7780D; flex-shrink: 0; line-height: 0; margin-top: 2px; }
.op-login-note__body {
	font-family: var(--sys-font-body);
	font-size: 0.85rem;
	color: #59554F;
	line-height: 1.55;
	margin: 0;
}
.op-login-note__body a { color: #9C6408; font-weight: 700; text-decoration: underline; }
.op-login-note__body a:hover { color: #8A5A0A; }

/* --- LOGGED-IN: two-column grid (nav sidebar | content) ---------------------- */
body.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) {
	display: grid;
	grid-template-columns: 262px minmax(0, 1fr);
	column-gap: 1.75rem;
	row-gap: 1.5rem;
	align-items: start;
	padding-top: 2.25rem;
	padding-bottom: 3rem;
}
body.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) > .op-account-band { grid-column: 1 / -1; grid-row: 1; }
body.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) > .op-account-user { grid-column: 1; grid-row: 2; }
body.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) > .woocommerce-MyAccount-navigation { grid-column: 1; grid-row: 3; }
body.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) > .woocommerce-MyAccount-content { grid-column: 2; grid-row: 2 / 4; min-width: 0; }

/* user identity card */
.op-account-user {
	background: #fff;
	border: 1px solid #F0EEE9;
	border-radius: 14px;
	padding: 1.1rem;
	display: flex;
	align-items: center;
	gap: 0.8rem;
	box-shadow: 0 4px 16px rgba(43, 40, 35, 0.05);
}
.op-account-user__avatar {
	width: 46px;
	height: 46px;
	flex-shrink: 0;
	border-radius: 50%;
	background: var(--sys-color-cta-gold, #9C6408);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--sys-font-display);
	font-weight: 700;
	font-size: 1rem;
}
.op-account-user__meta { min-width: 0; }
.op-account-user__name {
	display: block;
	font-family: var(--sys-font-display);
	font-weight: 700;
	font-size: 0.98rem;
	color: #2B2823;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.op-account-user__email {
	display: block;
	font-family: var(--sys-font-body);
	font-size: 0.8rem;
	color: #888580;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* nav list card (standard .woocommerce-MyAccount-navigation DOM) */
body.woocommerce-account .woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0.5rem;
	background: #fff;
	border: 1px solid #F0EEE9;
	border-radius: 14px;
	box-shadow: 0 4px 16px rgba(43, 40, 35, 0.05);
}
body.woocommerce-account .woocommerce-MyAccount-navigation li { margin: 0; }
body.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 0.72rem 0.85rem;
	border-radius: 10px;
	font-family: var(--sys-font-display);
	font-weight: 600;
	font-size: 0.92rem;
	color: #59554F;
	text-decoration: none;
	border-left: 3px solid transparent;
}
body.woocommerce-account .woocommerce-MyAccount-navigation li a:hover { background: #FAF6EC; color: #8A5A0A; }
body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
	background: #F7EFD9;
	border-left-color: #B7780D;
	color: #2B2823;
	font-weight: 700;
}
body.woocommerce-account .woocommerce-MyAccount-navigation li--customer-logout a:hover,
body.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a:hover {
	background: #FBECEC;
	color: #C0392B;
}

/* --- Content: welcome header + stat row -------------------------------------- */
.op-account-welcome { margin-bottom: 1.6rem; }
.op-account-welcome__greeting {
	font-family: var(--sys-font-display);
	font-weight: 700;
	font-size: clamp(1.35rem, 3vw, 1.75rem);
	color: #2B2823;
	margin: 0 0 0.35rem;
}
.op-account-welcome__lede {
	font-family: var(--sys-font-body);
	font-size: 1rem;
	color: #59554F;
	margin: 0;
	line-height: 1.5;
}
.op-account-welcome__logout { color: #70633C; }
.op-account-welcome__logout:hover { color: #B7780D; }
.op-account-stats {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-top: 0.9rem;
	flex-wrap: wrap;
}
.op-account-stat {
	font-family: var(--sys-font-body);
	font-size: 0.85rem;
	color: #59554F;
}
.op-account-stat--muted { color: #888580; }
.op-account-stat__dot { width: 4px; height: 4px; border-radius: 50%; background: #D8C79A; }

.op-account-orders-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin: 1.5rem 0 1rem;
	padding-top: 1.5rem;
	border-top: 1px solid #EEEBE4;
}
.op-account-orders-head__title {
	font-family: var(--sys-font-display);
	font-weight: 700;
	font-size: 1.25rem;
	color: #2B2823;
	margin: 0;
}

/* --- Orders as line-item cards (DQ-12 idiom) -------------------------------- */
.op-orders { display: flex; flex-direction: column; gap: 1.1rem; }
.op-order {
	background: #fff;
	border: 1px solid #F0EEE9;
	border-radius: 14px;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
	overflow: hidden;
}
.op-order__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 0.6rem;
	padding: 1rem 1.35rem;
	border-bottom: 1px solid #F4F3F0;
}
.op-order__id {
	font-family: var(--sys-font-display);
	font-weight: 700;
	font-size: 1rem;
	color: #2B2823;
}
.op-order__date {
	font-family: var(--sys-font-body);
	font-weight: 400;
	font-size: 0.85rem;
	color: #888580;
}
.op-order__meta { display: flex; align-items: center; gap: 0.9rem; }
.op-order__status {
	display: inline-flex;
	align-items: center;
	padding: 0.3rem 0.75rem;
	border-radius: 9999px;
	font-family: var(--sys-font-display);
	font-weight: 700;
	font-size: 0.7rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	background: #F7EFD9;
	color: #8A5A0A;
}
.op-order__status--completed { background: #E6FAF3; color: #0E7C5A; }
.op-order__status--processing,
.op-order__status--on-hold { background: #F7EFD9; color: #8A5A0A; }
.op-order__status--pending { background: #EFEDE8; color: #59554F; }
.op-order__status--cancelled,
.op-order__status--failed,
.op-order__status--refunded { background: #FCEBE9; color: #B23B32; }
.op-order__total {
	font-family: var(--sys-font-display);
	font-weight: 700;
	font-size: 1.05rem;
	color: #9C6408;
	white-space: nowrap;
}
.op-order__items { padding: 0.35rem 1.35rem; }
.op-order-item {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 0.9rem 0;
}
.op-order-item + .op-order-item { border-top: 1px solid #F7F5F1; }
.op-order-item__thumb {
	width: 58px;
	height: 58px;
	flex-shrink: 0;
	border-radius: 11px;
	overflow: hidden;
	border: 1px solid #EFE4C8;
	background: linear-gradient(135deg, #FBF3DE, #F4E9CC);
	display: flex;
	align-items: center;
	justify-content: center;
}
.op-order-item__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.op-order-item__thumb--empty::after {
	content: "";
	width: 22px;
	height: 22px;
	border-radius: 6px;
	background: rgba(183, 120, 13, 0.35);
}
.op-order-item__body { flex: 1; min-width: 0; }
.op-order-item__name {
	font-family: var(--sys-font-display);
	font-weight: 600;
	font-size: 1rem;
	color: #2B2823;
	line-height: 1.3;
}
.op-order-item__meta {
	font-family: var(--sys-font-body);
	font-size: 0.85rem;
	color: #59554F;
	margin-top: 0.2rem;
}
.op-order-item__meta .wc-item-meta { list-style: none; margin: 0; padding: 0; }
.op-order-item__meta .wc-item-meta li { margin: 0; }
.op-order-item__meta .wc-item-meta p { margin: 0; display: inline; }
.op-order-item__qty { color: #59554F; }
.op-order-item__price {
	font-family: var(--sys-font-display);
	font-weight: 600;
	font-size: 0.95rem;
	color: #59554F;
	white-space: nowrap;
}
.op-order__actions {
	display: flex;
	justify-content: flex-end;
	gap: 0.6rem;
	flex-wrap: wrap;
	padding: 0.9rem 1.35rem 1.1rem;
	border-top: 1px solid #F4F3F0;
	background: #FCFBF9;
}
.op-order__actions .op-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.45rem;
	padding: 0.55rem 1.25rem;
	border-radius: 9999px;
	font-family: var(--sys-font-display);
	font-weight: 700;
	font-size: 0.85rem;
	text-decoration: none;
	cursor: pointer;
	line-height: 1.2;
}
.op-order__actions .op-btn--ghost {
	border: 2px solid #B7780D;
	background: transparent;
	color: #9C6408;
}
.op-order__actions .op-btn--ghost:hover { background: #FAF3E3; }
.op-order__actions .op-btn--primary {
	border: 2px solid transparent;
	background: var(--sys-color-cta-gold, #9C6408);
	color: #fff;
	box-shadow: 0 4px 12px rgba(183, 120, 13, 0.3);
}
.op-order__actions .op-btn--primary:hover { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(183, 120, 13, 0.42); color: #fff; }

/* --- Mobile (≤ 860px): chip-row nav, single-column, hidden identity card ----- */
@media (max-width: 860px) {
	body.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) {
		display: block;
		padding-top: 1.5rem;
	}
	.op-account-user { display: none; }
	body.woocommerce-account .woocommerce-MyAccount-navigation {
		margin: 0 0 1rem;
	}
	body.woocommerce-account .woocommerce-MyAccount-navigation ul {
		display: flex;
		gap: 0.5rem;
		overflow-x: auto;
		padding: 0.25rem 0 0.75rem;
		background: transparent;
		border: 0;
		box-shadow: none;
		scrollbar-width: none;
	}
	body.woocommerce-account .woocommerce-MyAccount-navigation ul::-webkit-scrollbar { display: none; }
	body.woocommerce-account .woocommerce-MyAccount-navigation li { flex-shrink: 0; }
	body.woocommerce-account .woocommerce-MyAccount-navigation li a {
		border-radius: 9999px;
		border-left: 0;
		border: 1px solid #ECE7DD;
		background: #fff;
		white-space: nowrap;
		padding: 0.55rem 0.95rem;
		font-size: 0.82rem;
	}
	body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
		background: var(--sys-color-cta-gold, #9C6408);
		color: #fff;
		border-color: transparent;
		box-shadow: 0 3px 10px rgba(183, 120, 13, 0.28);
	}
	.op-order__head { padding: 0.85rem 1rem; }
	.op-order__items { padding: 0.25rem 1rem; }
	.op-order__actions { padding: 0.85rem 1rem 1rem; }
	.op-order__actions .op-btn { flex: 1; }
	.op-login-wrap { padding: 2.25rem 0 3rem; }
}

/* =============================================================================
 * P2 — ORDER-RECEIVED / THANK-YOU PAGE (DQ-12)
 * Stock receipt/hook output composed with the canon card, notice, button, and
 * kraft idioms. Order-received scoped so checkout/order-pay remain unchanged.
 * ============================================================================= */
body.woocommerce-order-received { background: var(--sys-color-surface-1); }
body.woocommerce-order-received .hero-pages { display: none; }
body.woocommerce-order-received .woocommerce-order.op-thankyou {
	max-width: 860px; margin: 0 auto; padding: var(--sys-space-8) var(--sys-space-4) var(--sys-space-10);
	box-sizing: border-box; color: var(--sys-color-ink-base); font-family: var(--sys-font-body);
}

/* Confirmation banner + canon receipt actions. */
body.woocommerce-order-received .op-thankyou__banner {
	padding: var(--sys-space-6); text-align: center; background: var(--sys-color-surface-0);
	border: var(--sys-border-width) solid var(--sys-color-surface-2); border-radius: var(--sys-radius-xl); box-shadow: var(--sys-shadow-md);
}
body.woocommerce-order-received .op-thankyou__chip {
	display: block; width: 40px; height: 40px; margin: 0 auto; padding: var(--sys-space-2);
	box-sizing: border-box; border-radius: var(--sys-radius-full); background: #12B886; color: var(--sys-color-surface-0);
}
body.woocommerce-order-received .op-thankyou__title {
	margin: var(--sys-space-4) 0 0; color: var(--sys-color-ink-base); font-family: var(--sys-font-display);
	font-size: clamp(1.5rem, 4vw, 2.4rem); font-weight: 800; letter-spacing: -0.02em; line-height: 1.1;
}
body.woocommerce-order-received .op-thankyou__banner .woocommerce-thankyou-order-received {
	margin: var(--sys-space-3) 0 0; padding: 0; background: transparent; border: 0; border-radius: 0;
	color: var(--sys-color-ink-light); font-family: var(--sys-font-body); font-size: var(--sys-font-size-body); line-height: var(--sys-line-height-normal);
}
body.woocommerce-order-received .op-thankyou__banner .woocommerce-thankyou-order-received::before,
body.woocommerce-order-received .op-thankyou__banner .woocommerce-thankyou-order-received::after { content: none; display: none; }
body.woocommerce-order-received .op-thankyou__email { margin: var(--sys-space-2) 0 0; color: var(--sys-color-ink-muted); font-size: var(--sys-font-size-small); }
body.woocommerce-order-received .op-thankyou__actions {
	display: flex; flex-wrap: wrap; justify-content: center; gap: var(--sys-space-3); margin-top: var(--sys-space-5);
}
body.woocommerce-order-received .op-thankyou .op-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.45rem;
	padding: 0.55rem 1.25rem; border-radius: 9999px; font-family: var(--sys-font-display);
	font-size: 0.85rem; font-weight: 700; line-height: 1.2; text-decoration: none; cursor: pointer;
}
body.woocommerce-order-received .op-thankyou .op-btn--ghost { border: 2px solid #B7780D; background: transparent; color: #9C6408; }
body.woocommerce-order-received .op-thankyou .op-btn--ghost:hover { background: #FAF3E3; color: #9C6408; }
body.woocommerce-order-received .op-thankyou .op-btn--primary {
	border: 2px solid transparent; background: var(--sys-color-cta-gold, #9C6408); color: #FFFFFF;
	box-shadow: 0 4px 12px rgba(183, 120, 13, 0.3);
}
body.woocommerce-order-received .op-thankyou .op-btn--primary:hover { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(183, 120, 13, 0.42); color: #FFFFFF; }
body.woocommerce-order-received .op-thankyou .op-btn:focus-visible { outline: 3px solid var(--sys-color-primary-tint-20); outline-offset: 3px; }

/* Order metadata chips. */
body.woocommerce-order-received .op-thankyou ul.woocommerce-order-overview {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); gap: var(--sys-space-3);
	margin: var(--sys-space-5) 0; padding: 0; list-style: none;
}
body.woocommerce-order-received .op-thankyou ul.woocommerce-order-overview::before,
body.woocommerce-order-received .op-thankyou ul.woocommerce-order-overview::after { content: none; display: none; }
body.woocommerce-order-received .op-thankyou ul.woocommerce-order-overview li {
	float: none; width: auto; margin: 0; padding: var(--sys-space-3); background: var(--sys-color-surface-0);
	border: var(--sys-border-width) solid var(--sys-color-surface-2); border-radius: var(--sys-radius-lg);
	color: var(--sys-color-ink-muted); font: 700 var(--sys-font-size-caption)/var(--sys-line-height-snug) var(--sys-font-display);
	letter-spacing: 0.06em; text-transform: uppercase;
}
body.woocommerce-order-received .op-thankyou ul.woocommerce-order-overview li strong {
	display: block; margin-top: var(--sys-space-1); color: var(--sys-color-ink-base);
	font: 700 var(--sys-font-size-small)/var(--sys-line-height-normal) var(--sys-font-display);
	letter-spacing: normal; text-transform: none;
}

/* Order details, downloads, and customer address cards. */
body.woocommerce-order-received .op-thankyou .woocommerce-order-details,
body.woocommerce-order-received .op-thankyou .woocommerce-order-downloads {
	margin: var(--sys-space-5) 0; padding: var(--sys-space-5); overflow-x: auto; background: var(--sys-color-surface-0);
	border: var(--sys-border-width) solid var(--sys-color-surface-2); border-radius: var(--sys-radius-xl); box-shadow: var(--sys-shadow-sm);
}
body.woocommerce-order-received .op-thankyou .woocommerce-order-details__title,
body.woocommerce-order-received .op-thankyou .woocommerce-order-downloads__title {
	margin: 0 0 var(--sys-space-4); color: var(--sys-color-ink-base);
	font: 800 var(--sys-font-size-h5)/var(--sys-line-height-snug) var(--sys-font-display);
}
body.woocommerce-order-received .op-thankyou .woocommerce-order-details table.shop_table,
body.woocommerce-order-received .op-thankyou .woocommerce-order-downloads table.shop_table { width: 100%; margin: 0; border: 0; border-collapse: collapse; }
body.woocommerce-order-received .op-thankyou .woocommerce-order-details table.shop_table th,
body.woocommerce-order-received .op-thankyou .woocommerce-order-details table.shop_table td,
body.woocommerce-order-received .op-thankyou .woocommerce-order-downloads table.shop_table th,
body.woocommerce-order-received .op-thankyou .woocommerce-order-downloads table.shop_table td {
	padding: var(--sys-space-3); border: 0; border-bottom: var(--sys-border-width) solid var(--sys-color-surface-2);
	background: transparent; color: var(--sys-color-ink-base); font-family: var(--sys-font-body);
}
body.woocommerce-order-received .op-thankyou .woocommerce-order-details table.shop_table th,
body.woocommerce-order-received .op-thankyou .woocommerce-order-downloads table.shop_table th { color: var(--sys-color-ink-light); font-weight: 700; }
body.woocommerce-order-received .op-thankyou .woocommerce-table--order-details .product-total,
body.woocommerce-order-received .op-thankyou .woocommerce-table--order-details tfoot td { text-align: right; }
body.woocommerce-order-received .op-thankyou .woocommerce-customer-details { margin: var(--sys-space-5) 0; }
body.woocommerce-order-received .op-thankyou .woocommerce-columns--addresses {
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sys-space-4); margin: 0;
}
body.woocommerce-order-received .op-thankyou .woocommerce-columns--addresses::before,
body.woocommerce-order-received .op-thankyou .woocommerce-columns--addresses::after { content: none; display: none; }
body.woocommerce-order-received .op-thankyou .woocommerce-columns--addresses .woocommerce-column,
body.woocommerce-order-received .op-thankyou .woocommerce-customer-details > address {
	float: none; width: auto; padding: var(--sys-space-5); box-sizing: border-box; background: var(--sys-color-surface-0);
	border: var(--sys-border-width) solid var(--sys-color-surface-2); border-radius: var(--sys-radius-xl); box-shadow: var(--sys-shadow-sm);
}
body.woocommerce-order-received .op-thankyou .woocommerce-column__title {
	margin: 0 0 var(--sys-space-3); color: var(--sys-color-ink-base);
	font: 700 var(--sys-font-size-h5)/var(--sys-line-height-snug) var(--sys-font-display);
}
body.woocommerce-order-received .op-thankyou .woocommerce-customer-details address {
	color: var(--sys-color-ink-light); font-family: var(--sys-font-body); font-style: normal; line-height: var(--sys-line-height-relaxed);
}
body.woocommerce-order-received .op-thankyou .woocommerce-customer-details address p { margin: var(--sys-space-2) 0 0; }

/* Camp hook: DQ-12 kraft order-summary idiom. */
body.woocommerce-order-received .op-thankyou .op-camp-thankyou {
	margin: var(--sys-space-5) 0; padding: var(--sys-space-5); box-sizing: border-box; background: #E4D3AD;
	border: 1px solid rgba(138, 90, 10, 0.28); border-radius: 16px; box-shadow: 0 6px 22px rgba(43, 40, 35, 0.10);
}
body.woocommerce-order-received .op-thankyou .op-camp-thankyou h2 {
	margin: 0 0 var(--sys-space-4); padding: 0 0 var(--sys-space-4); border-bottom: 1px solid rgba(138, 90, 10, 0.2);
	color: #2B2823; font: 800 1.15rem/var(--sys-line-height-snug) var(--sys-font-display); letter-spacing: -0.01em;
}
body.woocommerce-order-received .op-thankyou .op-camp-thankyou p,
body.woocommerce-order-received .op-thankyou .op-camp-thankyou li { color: #5A4B2E; font-family: var(--sys-font-body); line-height: var(--sys-line-height-normal); }
body.woocommerce-order-received .op-thankyou .op-camp-thankyou ul { margin: var(--sys-space-4) 0; padding-left: var(--sys-space-5); }
body.woocommerce-order-received .op-thankyou .op-camp-thankyou p:last-child { margin-bottom: 0; }

/* Info help strip + failed-order error palette. */
body.woocommerce-order-received .op-thankyou__help {
	display: flex; align-items: center; justify-content: space-between; gap: var(--sys-space-4);
	margin-top: var(--sys-space-5); padding: 0.95rem 1.05rem; box-sizing: border-box;
	background: #FBF3E1; border: 1px solid #EAD9B0; border-left: 4px solid #B7780D; border-radius: 12px;
}
body.woocommerce-order-received .op-thankyou__help-copy { min-width: 0; }
body.woocommerce-order-received .op-thankyou__help-title {
	margin: 0 0 var(--sys-space-1); color: var(--sys-color-ink-base);
	font: 700 var(--sys-font-size-body)/var(--sys-line-height-snug) var(--sys-font-display);
}
body.woocommerce-order-received .op-thankyou__help-line { margin: 0; color: var(--sys-color-ink-light); line-height: var(--sys-line-height-normal); }
body.woocommerce-order-received .op-thankyou__help .op-btn { flex-shrink: 0; }
body.woocommerce-order-received .op-thankyou p.woocommerce-thankyou-order-failed {
	margin: 0 0 var(--sys-space-4); padding: 0.95rem 1.05rem; background: #FCEBE9;
	border: 1px solid #F4C9C4; border-left: 4px solid #EF4444; border-radius: 12px;
	color: var(--sys-color-ink-light); font-family: var(--sys-font-body); line-height: var(--sys-line-height-normal);
}
body.woocommerce-order-received .op-thankyou p.woocommerce-thankyou-order-failed-actions {
	display: flex; flex-wrap: wrap; gap: var(--sys-space-3); margin: 0 0 var(--sys-space-5);
}

@media (max-width: 640px) {
	body.woocommerce-order-received .woocommerce-order.op-thankyou { padding: var(--sys-space-6) var(--sys-space-3) var(--sys-space-8); }
	body.woocommerce-order-received .op-thankyou__banner,
	body.woocommerce-order-received .op-thankyou .woocommerce-order-details,
	body.woocommerce-order-received .op-thankyou .woocommerce-order-downloads,
	body.woocommerce-order-received .op-thankyou .op-camp-thankyou { padding: var(--sys-space-4); }
	body.woocommerce-order-received .op-thankyou__actions,
	body.woocommerce-order-received .op-thankyou__help,
	body.woocommerce-order-received .op-thankyou p.woocommerce-thankyou-order-failed-actions { align-items: stretch; flex-direction: column; }
	body.woocommerce-order-received .op-thankyou .op-btn,
	body.woocommerce-order-received .op-thankyou p.woocommerce-thankyou-order-failed-actions .button { width: 100%; box-sizing: border-box; }
	body.woocommerce-order-received .op-thankyou ul.woocommerce-order-overview,
	body.woocommerce-order-received .op-thankyou .woocommerce-columns--addresses { grid-template-columns: 1fr; }
	body.woocommerce-order-received .op-thankyou .woocommerce-columns--addresses .woocommerce-column,
	body.woocommerce-order-received .op-thankyou .woocommerce-customer-details > address { padding: var(--sys-space-4); }
}
