    /* ── CONTAIN OFF-SCREEN DRAWERS — prevent horizontal scroll ─────── */
    html, body {
        overflow-x: hidden;
    }
    /* ── SILURE TYPOGRAPHY SYSTEM — one source of truth ────────────── */
    /* Drawer titles (h2-level) */
    .silure-wl-title,
    .silure-search-title,
    .silure-cart-empty-heading,
    .silure-cart-summary-title {
        font-family: "Mulish", sans-serif !important;
        font-weight: 700 !important;
        font-size: 20px !important;
        letter-spacing: 0.5px !important;
        text-transform: uppercase !important;
        color: #050505 !important;
        margin: 0 0 24px !important;
    }
    /* Section labels */
    .silure-search-section-label,
    .silure-upsell-title,
    .silure-trending-label,
    .silure-wl-benefits-title,
    .silure-cart-tabs .silure-ctab {
        font-family: "DM Mono", monospace !important;
        font-size: 10px !important;
        font-weight: 300 !important;
        letter-spacing: 2px !important;
        text-transform: uppercase !important;
        color: #7A7672 !important;
    }
    /* Body text: product names, messages */
    .silure-ci-name,
    .silure-wl-item-name,
    .silure-sp-name,
    .silure-ti-name,
    .silure-cart-empty-msg,
    .silure-wl-guest-msg,
    .silure-wl-benefits-list li {
        font-family: "DM Mono", monospace !important;
        font-size: 12px !important;
        font-weight: 300 !important;
        letter-spacing: 0.3px !important;
        color: #050505 !important;
        line-height: 1.6 !important;
    }
    /* Prices */
    .silure-ci-price,
    .silure-wl-item-price,
    .silure-sp-price,
    .silure-ti-price,
    .silure-cart-row span,
    .silure-cart-row strong {
        font-family: "DM Mono", monospace !important;
        font-size: 13px !important;
        font-weight: 300 !important;
        letter-spacing: 0.3px !important;
        color: #050505 !important;
    }
    /* Muted / meta text */
    .silure-ci-stock,
    .silure-ci-meta,
    .silure-sp-cat,
    .silure-search-hint,
    .silure-wl-out-of-stock {
        font-family: "DM Mono", monospace !important;
        font-size: 11px !important;
        font-weight: 300 !important;
        letter-spacing: 0.3px !important;
        color: #7A7672 !important;
    }
    /* Action links */
    /* .silure-wl-remove / .silure-wl-move-to-bag removed from this shared
       text-link typography rule (Session 30) -- now 58x58 icon buttons
       with no visible label text, and this rule font-size:11px
       !important was clobbering the 16px needed for the Remove icon
       glyph. Their own styling lives at the WISHLIST DRAWER block below. */
    .silure-ci-remove,
    .silure-search-all-link {
        font-family: "DM Mono", monospace !important;
        font-size: 11px !important;
        font-weight: 300 !important;
        letter-spacing: 2px !important;
        text-transform: uppercase !important;
    }
    /* CTA buttons -- this block, not the per-component rules further
       down the file, is what actually wins for these four (confirmed
       live via getComputedStyle showing 11px here despite the
       component-specific rules already declaring 13px -- both this
       block and the Session 22 override below are !important and load
       earlier in the file, but !important ties go to specificity/last-
       declared, and this pair was still winning over the later,
       non-important 13px edits). Session 30 sitewide 13px
       standardization applied here directly instead. */
    .silure-cart-checkout-btn,
    .silure-wl-signin-btn,
    .silure-wl-join-btn,
    .silure-cart-shop-all {
        font-family: "DM Mono", monospace !important;
        font-size: 13px !important;
        font-weight: 300 !important;
        letter-spacing: 0.5px !important;
        text-transform: uppercase !important;
    }
    /* [Session 22] Override shared CTA block for checkout + wl-signin */
    .silure-cart-checkout-btn,
    .silure-wl-signin-btn {
        font-size: 13px !important;
        letter-spacing: 0.5px !important;
        line-height: 1.5 !important;
    }
    @media (max-width: 768px) {
        #silure-hamburger.is-open { opacity: 0 !important; pointer-events: none !important; }
        #silure-nav-overlay { background: transparent !important; }
    }
    /* Search input */

    /* ── Override Elementor default CSS variables with SILURE tokens ── */
    :root {
        --e-global-color-primary:   #050505 !important;
        --e-global-color-secondary: #FBF9F6 !important;
        --e-global-color-text:      #444444 !important;
        --e-global-color-accent:    #050505 !important;
        --e-global-typography-primary-font-family:   "Mulish";
        --e-global-typography-secondary-font-family: "DM Mono";
        --e-global-typography-text-font-family:      "DM Mono";
        --e-global-typography-accent-font-family:    "DM Mono";
        --wc-global-color-primary:      #050505 !important;
        --wp--preset--color--primary:   #050505 !important;
        --wp--preset--color--secondary: #FBF9F6 !important;
        --color-accent:  #050505 !important;
        --accent-color:  #050505 !important;
    }

    /* ── GLOBAL PINK KILL — no pink anywhere on SILURE ─────────── */
    input:focus, textarea:focus, select:focus {
        outline-color: #050505 !important;
        border-color: #E8E4DF !important;
        box-shadow: none !important;
    }
    button:focus-visible, a:focus-visible, *:focus-visible {
        outline-color: #050505 !important;
        border-color: #E8E4DF !important;
        box-shadow: none !important;
    }
    .woocommerce input.input-text:focus,
    .woocommerce textarea:focus,
    .woocommerce select:focus,
    .woocommerce-account input:focus,
    .woocommerce-checkout input:focus {
        outline: none !important;
        border-color: #050505 !important;
        box-shadow: none !important;
    }
    .silure-action-btn:hover,
    .silure-action-btn:focus,
    .silure-action-btn:active {
        color: inherit !important;
        outline: none !important;
        border: none !important;
        box-shadow: none !important;
        background: none !important;
    }
    .nsl-container a, .nsl-container button,
    .nextend-social-login a {
        border-color: #E8E4DF !important;
        color: #050505 !important;
        outline: none !important;
    }
    .woocommerce-active a:focus,
    .woocommerce nav.woocommerce-pagination ul li a:focus,
    .woocommerce nav.woocommerce-pagination ul li span.current {
        background: #050505 !important;
        color: #FBF9F6 !important;
        outline: none !important;
    }

    /* Elementor/WooCommerce button color+background+border+radius are now
       handled entirely by the single sitewide button hover standard block
       at the end of silure_kill_pink_late() — no per-widget targeting
       (the old About-page-specific rules), no :where() exclusions, and
       no separate #333 hover here. This block only needs to exist for
       properties that standard does not touch — currently none, kept as a
       marker in case a future non-color default is needed here again. */

    /* GLOBAL TEXT COLOR — auto-detect background */
    [style*="background-color: rgb(5, 5, 5)"],
    [style*="background-color:#050505"],
    .silure-section-dark,
    .elementor-section[data-settings*="#050505"] {
        color: #FBF9F6;
    }
    [style*="background-color: rgb(5, 5, 5)"] *,
    .silure-section-dark * { color: inherit; }

    [style*="background-color: rgb(251, 249, 246)"],
    [style*="background-color:#FBF9F6"],
    .silure-section-light {
        color: #050505;
    }

    .elementor-section {
        --text-color-on-dark: #FBF9F6;
        --text-color-on-light: #050505;
    }

    /* Header inner: logo+nav left, actions right */
    .silure-header-inner {
        display: flex !important;
        align-items: center !important;
        justify-content: flex-start !important;
        width: 100% !important;
        height: 72px !important;
        padding: 0 32px !important;
        box-sizing: border-box !important;
    }

    /* Logo: stays left, fixed size */
    .silure-logo-link {
        flex-shrink: 0 !important;
        display: flex !important;
        align-items: center !important;
        text-decoration: none !important;
        margin-right: 40px !important;
    }
    .silure-logo-text {
        font-family: "Mulish", sans-serif;
        font-weight: 700;
        font-size: 36px;
        text-transform: uppercase;
        letter-spacing: 0.5px;
        color: #FBF9F6;
    }

    /* Nav: sits directly after logo, left-aligned */
    .silure-nav {
        flex: 0 0 auto !important;
        display: flex !important;
        align-items: center !important;
    }
    .silure-nav-list {
        display: flex !important;
        align-items: center !important;
        gap: 32px !important;
        list-style: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    .silure-nav-list a {
        font-family: "DM Mono", monospace !important;
        font-size: 11px !important;
        font-weight: 300 !important;
        letter-spacing: 2px !important;
        text-transform: uppercase !important;
        text-decoration: none !important;
        color: #FBF9F6 !important;
        white-space: nowrap !important;
    }
    .silure-nav-list a:hover { opacity: 0.65; }

    /* Actions: pushed all the way to the right */
    .silure-header-actions {
        margin-left: auto !important;
        display: flex !important;
        align-items: center !important;
        gap: 20px !important;
        flex-shrink: 0 !important;
    }
    /* Header action buttons: no border, no outline, no pink */
    .silure-action-btn {
        background: none !important;
        border: none !important;
        outline: none !important;
        box-shadow: none !important;
        -webkit-appearance: none !important;
        appearance: none !important;
        cursor: pointer !important;
        padding: 8px !important;
        position: relative !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
    }
    .silure-action-btn:focus,
    .silure-action-btn:focus-visible,
    .silure-action-btn:focus-within,
    .silure-action-btn:active,
    .silure-action-btn:hover {
        border: none !important;
        outline: none !important;
        box-shadow: none !important;
        background: none !important;
    }
    .silure-cart-count {
        position: absolute !important;
        top: -6px !important;
        right: -6px !important;
        background: #050505 !important;
        color: #FBF9F6 !important;
        font-family: "DM Mono", monospace !important;
        font-size: 8px !important;
        font-weight: 300 !important;
        min-width: 16px !important;
        height: 16px !important;
        border-radius: 50% !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        border: 1.5px solid #FBF9F6 !important;
        padding: 0 3px !important;
        box-sizing: border-box !important;
        line-height: 1 !important;
    }
    .silure-cart-count:empty { display: none !important; }

    /* HAMBURGER */
    .silure-hamburger {
        display: none;
        flex-direction: column; justify-content: center; gap: 6px;
        background: none; border: none; cursor: pointer;
        padding: 6px; width: 36px; height: 36px;
    }
    .silure-hamburger span {
        display: block; width: 22px; height: 1px;
        background: currentColor;
    }

    /* ── ANNOUNCEMENT BAR — in flow, scrolls away naturally ── */
    .silure-announcement {
        position: relative !important;
        width: 100% !important;
        height: 36px !important;
        background: #050505 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        z-index: auto !important;
    }
    .silure-announcement p {
        font-family: "DM Mono", monospace !important;
        font-size: 11px !important;
        font-weight: 300 !important;
        letter-spacing: 2px !important;
        text-transform: uppercase !important;
        color: #FBF9F6 !important;
        margin: 0 !important;
    }

    /* ── HEADER ───────────────────────────────────────
       Position sticky. Sticks when banner scrolls away.
       Always dark. Always visible. Zero transitions.  */
    .silure-header {
        position: sticky !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        z-index: 1000 !important;
        background: #050505 !important;
        border-bottom: none !important;
        transition: none !important;
    }
    /* Admin bar pushes sticky down 32px */
    .admin-bar .silure-header {
        top: 32px !important;
    }

    /* ── LOGO: single SVG, always white ──────────────
       Only silure-logo-light-svg in header.php.      */
    .silure-logo-light-svg {
        display: block !important;
        height: 68px !important;
        width: auto !important;
        opacity: 1 !important;
        transition: none !important;
    }
    /* Hide dark logo permanently in header */
    .silure-header .silure-logo-dark-svg {
        display: none !important;
    }

    /* ── NAV + ICONS: always white ───────────────────*/
    .silure-header .silure-nav-list a {
        color: #FBF9F6 !important;
        opacity: 0.85;
        transition: none !important;
    }
    .silure-header .silure-action-btn {
        color: #FBF9F6 !important;
        transition: none !important;
    }
    .silure-header .silure-hamburger span {
        background: #FBF9F6 !important;
        transition: none !important;
    }
    .silure-header .silure-cart-count {
        background: #FBF9F6 !important;
        color: #050505 !important;
        border: 1.5px solid #050505 !important;
        transition: none !important;
    }


    /* ── MAIN CONTENT ────────────────────────────────
       Zero padding needed. Banner + header are in flow.
       Content follows naturally.                     */
    .silure-main {
        padding-top: 0 !important;
    }
    /* Elementor pages: first section must not pull up into header */
    .silure-main .elementor-section:first-child,
    .silure-main .elementor-top-section:first-child {
        margin-top: 0 !important;
    }

    /* WooCommerce pages: same rule */
    .silure-main .woocommerce:first-child,
    .silure-main .woocommerce-page:first-child {
        margin-top: 0 !important;
    }


    /* ── SHOP PAGE: bust container constraint ─────────────────────────── */
    .woocommerce-page #main,
    .woocommerce-shop #main,
    .post-type-archive-product #main,
    .tax-product_cat #main {
        max-width: 100% !important;
        width: 100% !important;
        padding: 0 !important;
        margin: 0 auto !important;
    }
    .woocommerce-page .site-main,
    .post-type-archive-product .site-main {
        max-width: 100% !important;
        padding: 0 !important;
    }

    /* Shop page title: add padding so it is readable */
    /* Session 111 — .silure-shop-title removed from this list: this
       !important mobile padding on the H1 ITSELF is a third, separate
       real conflict found investigating the header/breadcrumb
       alignment bug (see silure-woocommerce.css's own Session 111
       comments for the other two) — shop.css's real, current mobile
       design puts padding on the .silure-shop-header CONTAINER, not
       the H1, and this rule's own !important was adding an extra,
       unwanted 32px/24px/16px on top of that regardless. The other two
       selectors here are untouched — not confirmed unrelated to this
       investigation, out of scope for it. */
    .woocommerce-products-header,
    .woocommerce-page h1.page-title {
        padding: 24px 32px 16px !important;
    }

    /* ── CATEGORY TILE ROW ──────────────────────────────────────────── */
    /* Session 131 — real bug, same root cause Session 94 already
       diagnosed and fixed for mobile, but that fix only ever touched
       the ≤768px override below — this base rule (applies at EVERY
       width, confirmed live via a real document.styleSheets dump, not
       assumed from this file's own indentation) was still plain
       `center` the whole time. Harmless while the row comfortably fit
       within any real desktop viewport (6-7 tiles); became a real,
       visible bug the moment Manish's restructure grew this row to 9
       tiles and it started overflowing desktop widths too — the exact
       same "content pushed before scrollLeft:0 becomes permanently
       unreachable" trap Session 94's own comment describes, just never
       triggered above 768px until now. `safe center` (not a plain
       `flex-start` override) verified live to give both correct
       behaviors from one declaration: still true, symmetric centering
       when the row fits (confirmed 203px/203px on both sides with 6
       tiles), and safe, fully-reachable-by-scroll flex-start-equivalent
       behavior the instant it overflows (confirmed the last tile lands
       exactly flush with the container's right edge at max scroll, at
       both 1440px and 375px) — one rule that's correct at any tile
       count, not a fixed threshold guess. */
    .silure-cat-tiles {
        display: flex;
        flex-direction: row;
        justify-content: safe center;
        gap: 16px;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        -ms-overflow-style: none;
        margin: 32px 0 44px;
        padding: 0 80px;
    }
    .silure-cat-tiles::-webkit-scrollbar { display: none; }
    .silure-cat-tile {
        flex-shrink: 0;
        width: 159px;
        height: 190px;
        position: relative;
        display: block;
        overflow: hidden;
        text-decoration: none;
        background: var(--silure-surface, #F3F0EB);
    }
    /* Session 94 — defensive fix, real known WebKit behaviour: dragging
       directly on an <img> (rather than empty space) can trigger the
       browser's native "drag this image out" handling instead of
       scrolling the parent container, and iOS Safari's long-press image
       callout can similarly intercept a touch that starts on the image.
       Both are exactly the kind of thing that would make a swipe
       starting on the FIRST card(s) of a horizontally-scrollable row
       feel like it "doesn't scroll back" — the row's own scroll
       mechanics test out clean (confirmed via direct scrollLeft
       assignment both directions), so this guards against the one
       plausible real-device mechanism that couldn't be fully reproduced
       through this session's own tooling. */
    .silure-cat-tile img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center top;
        display: block;
        transition: transform 0.4s ease;
        -webkit-user-drag: none;
        user-select: none;
        -webkit-touch-callout: none;
    }
    .silure-cat-tile:hover img { transform: scale(1.04); }
    /* Session 95 — real bug, confirmed via screenshot: the label relied
       on `text-shadow` alone for contrast, which only actually works
       against a dark-enough photo underneath — Auspicious/Necklace+
       Earrings/Rakhis happened to read fine by coincidence (dark
       images), while Shop All/Earrings/Necklaces/Rings (light images)
       were genuinely hard to read. A gradient scrim guarantees contrast
       regardless of the underlying photo's own brightness, rather than
       depending on whatever image happens to land in a tile — applied
       uniformly to every tile via `::after` so it's automatic for any
       future image (auto-picked or the manual override), not something
       that has to be remembered per tile. Sits above the image, below
       the label (label gets `z-index: 2` below), `pointer-events: none`
       so it never blocks the tile's own click/drag behaviour. */
    .silure-cat-tile::after {
        content: '';
        position: absolute;
        left: 0;
        right: 0;
        bottom: 0;
        height: 65%;
        background: linear-gradient(
            to bottom,
            rgba(5, 5, 5, 0) 0%,
            rgba(5, 5, 5, 0.05) 35%,
            rgba(5, 5, 5, 0.45) 75%,
            rgba(5, 5, 5, 0.72) 100%
        );
        pointer-events: none;
        z-index: 1;
    }
    .silure-cat-tile__label {
        position: absolute;
        bottom: 12px;
        left: 12px;
        z-index: 2;
        color: var(--silure-on-dark, #FBF9F6);
        font-family: "DM Mono", monospace;
        font-size: 12px;
        font-weight: 500;
        letter-spacing: 0.5px;
        text-transform: uppercase;
        /* Session 90 — underline removed per Manish's request. Session 95
           — text-shadow kept as a secondary, cheap contrast boost on top
           of the gradient scrim above (which is now doing the real work);
           doesn't hurt to keep both. */
        line-height: 1.4;
        text-shadow: 0 1px 4px rgba(5, 5, 5, 0.5);
    }
    @media (max-width: 1024px) {
        .silure-cat-tiles { padding-left: 40px; padding-right: 40px; }
    }
    /* Session 94 — real bug: `justify-content: center` on an overflowing
       (horizontally-scrollable) flex row is a well-known trap — browsers
       don't allow negative scrollLeft in LTR, so whatever content
       centering pushes "before" the container's start edge becomes
       permanently unreachable by scrolling backward, while scrolling
       forward still works normally. This row overflows on every mobile
       width (7 tiles × ~175px vs. a ~340-380px viewport), so it needed
       `flex-start` everywhere it can overflow.
       Session 131 — the explicit `flex-start` override that used to sit
       here is gone: the base rule above is now `justify-content: safe
       center`, which already resolves to the exact same safe/reachable
       behavior on any width where this row overflows (mobile always
       does) while ALSO correctly centering on any width where it
       doesn't (desktop, tile-count-dependent) — one rule handling both
       cases the old fixed-breakpoint approach could only ever handle
       one of. Verified live this override was genuinely redundant, not
       just apparently so, before removing it. */
    @media (max-width: 768px) {
        .silure-cat-tiles { padding: 0 24px; margin-top: 24px; }
    }
    @media (max-width: 480px) {
        .silure-cat-tiles { padding: 0 16px; }
    }

    /* Session 116 — a duplicate copy of the exact same dead "PRODUCT
       GRID: edge to edge, 5 cols" pair of blocks removed from
       silure-woocommerce.css this same session (see that file's own
       comment for the full explanation). Its `padding: 0 !important`
       on .silure-products-grid silently beat shop.css's real rule
       here too, invisible only because both sides used to say 0.
       Removed outright, not patched — grid-template-columns/gap were
       already confirmed dead in practice (Session 104 measured the
       real live grid as 4/2 columns, shop.css's own rule). */

    /* ── PRODUCT CARDS: Mejuri-style borders ─────────────────────────── */
    /* Session 122 — border-right/border-bottom removed: real,
       reproduced bug (Manish's "thin vertical line appearing randomly
       in mobile product grid"). This whole block is a leftover 5-
       column grid system (see the dead grid-template-columns/nth-
       child rules just below, already flagged as dead in Session 104
       but left as "not urgent" — this is the real, visible cost of
       that). shop.css's own real border-right:none/border-bottom:none
       (its .silure-products-grid li.product rule) ties this file's
       border-right/border-bottom at equal specificity (0,3,2) with
       !important on both sides — normally a tie shop.css should win by
       loading earlier, but this file's OWN :nth-child(3n) overrides
       further down (equal (0,4,2) specificity, also !important) landed
       LAST in the full cascade at mobile widths and set a real,
       visible border where shop.css's real 2-column grid has no
       column boundary at every 3rd card — confirmed live via a full
       styleSheets/.matches() cascade dump, not assumed. Removed the
       border declarations here and the entire dead nth-child chain
       below (base 5n, and the 1024px/600px media blocks' grid-
       template-columns + nth-child pairs) rather than patch with more
       !important — same remediation style as Sessions 111/116/119. */
    .woocommerce ul.products li.product {
        margin: 0 !important;
        padding: 0 !important;
        float: none !important;
        background: #FBF9F6 !important;
        display: flex !important;
        flex-direction: column !important;
    }

    /* ── PRODUCT IMAGE: fills card ───────────────────────────────────── */
    .woocommerce ul.products li.product a img,
    .woocommerce ul.products li.product img {
        width: 100% !important;
        aspect-ratio: 4/5 !important;
        object-fit: cover !important;
        object-position: center top !important;
        display: block !important;
        margin: 0 !important;
    }

    /* ── PRODUCT INFO: minimal, below image ──────────────────────────── */
    .woocommerce ul.products li.product .woocommerce-loop-product__title,
    .woocommerce ul.products li.product h2 {
        font-family: "DM Mono", monospace !important;
        font-size: 11px !important;
        font-weight: 300 !important;
        letter-spacing: 0.3px !important;
        text-transform: uppercase !important;
        color: #050505 !important;
        padding: 12px 14px 4px !important;
        margin: 0 !important;
    }
    .woocommerce ul.products li.product .price {
        font-family: "DM Mono", monospace !important;
        font-size: 11px !important;
        font-weight: 300 !important;
        color: #7A7672 !important;
        padding: 0 14px 14px !important;
        display: block !important;
        margin: 0 !important;
    }
    .woocommerce ul.products li.product .button {
        display: none !important;
    }

    /* ── RESPONSIVE ──────────────────────────────────────────────────── */
    /* Session 122 — this whole "3 columns at <=1024px / 2 columns at
       <=600px" pair was already confirmed dead for its actual stated
       purpose back in Session 104 (the real, live grid column count
       has only ever come from shop.css's own repeat(4,1fr)/
       repeat(2,1fr) rules) but was left in place as "not urgent." The
       nth-child border overrides here were the real, live exception —
       see this block's own base-rule comment above for the full
       cascade explanation. Removed entirely rather than leave a
       partial fix. */

    /* ════════════════════════════════════════════════
       SILURE PRODUCT PAGE — MEJURI LAYOUT REPLICA
       ════════════════════════════════════════════════ */

    /* 1. PAGE WRAPPER — edge to edge, no container */
    .silure-product-page,
    .single-product #main,
    .single-product .site-main,
    .woocommerce.single-product #main {
        max-width: 100% !important;
        width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    /* 4. INFO PANEL — white, padded like Mejuri */
    .silure-product-info,
    .summary.entry-summary {
        background: #FBF9F6 !important;
        border-left: none !important;
        min-height: calc(100vh - 72px) !important;
        box-sizing: border-box !important;
        max-width: 560px !important;
    }

    /* 5. BADGE — small tag above title */
    .silure-product-badge,
    .woocommerce-product-category-badge {
        display: inline-block !important;
        font-family: "DM Mono", monospace !important;
        font-size: 9px !important;
        font-weight: 300 !important;
        letter-spacing: 2px !important;
        text-transform: uppercase !important;
        color: #7A7672 !important;
        border: 0.5px solid #E8E4DF !important;
        padding: 4px 8px !important;
        margin-bottom: 16px !important;
    }

    /* 6. TITLE — Mejuri is 20px weight 500 uppercase */
    .product_title,
    .silure-product-title,
    h1.product_title {
        font-family: "Mulish", sans-serif !important;
        font-size: 20px !important;
        font-weight: 700 !important;
        text-transform: uppercase !important;
        letter-spacing: 0.5px !important;
        line-height: 1.35 !important;
        color: #050505 !important;
        margin: 0 0 12px !important;
    }

    /* 6b. TITLE — maximum specificity override */
    body.single-product .product_title,
    body.single-product h1.product_title,
    .woocommerce.single-product .product_title {
        font-size: 22px !important;
        font-weight: 700 !important;
        font-family: "Mulish", sans-serif !important;
        text-transform: uppercase !important;
        letter-spacing: 0.5px !important;
        line-height: 1.35 !important;
        color: #050505 !important;
        margin: 0 0 12px !important;
    }

    /* 7. MATERIAL / CATEGORY label */
    .silure-product-meta,
    .posted_in,
    .woocommerce-product-details__short-description > p:first-child,
    .silure-product-material {
        font-family: "DM Mono", monospace !important;
        font-size: 13px !important;
        font-weight: 300 !important;
        color: #7A7672 !important;
        text-transform: uppercase !important;
        letter-spacing: 2px !important;
        margin-bottom: 16px !important;
        display: block !important;
    }
    .posted_in a {
        color: #7A7672 !important;
        text-decoration: none !important;
    }

    /* 8. PRICE */
    .woocommerce div.product .price,
    .silure-product-price,
    .woocommerce-Price-amount.amount {
        font-family: "DM Mono", monospace !important;
        font-size: 16px !important;
        font-weight: 300 !important;
        color: #050505 !important;
        display: block !important;
        margin-bottom: 8px !important;
    }
    .silure-product-price-was .woocommerce-Price-amount,
    .silure-product-price-now .woocommerce-Price-amount {
        display: inline !important;
        margin-bottom: 0 !important;
    }
    .silure-product-price-wrap {
        gap: 6px !important;
        margin-bottom: 4px !important;
    }
    .silure-price-incl-gst,
    .woocommerce-Price-amount + small {
        font-size: 10px !important;
        color: #7A7672 !important;
        margin-left: 6px !important;
    }

    /* 9. STOCK NOTICE — inline scarcity line (simple products, stock=1) */
    .stock,
    .woocommerce-stock-html {
        font-family: "DM Mono", monospace !important;
        font-size: 11px !important;
        font-weight: 300 !important;
        color: #7A7672 !important;
        text-transform: uppercase !important;
        letter-spacing: 1px !important;
        white-space: nowrap !important;
        width: auto !important;
        margin: 0 0 12px !important;
        display: block !important;
        background: none !important;
        padding: 0 !important;
    }

    /* 10. CART FORM */
    form.cart,
    .cart,
    .silure-product-form {
        background: none !important;
        padding: 0 !important;
        border: none !important;
    }
    .quantity { display: none !important; }

    /* 10b. SPLIT CTA ROW — ATB fills, form intact, heart flush right */
    .silure-cta-row {
        display: flex !important;
        gap: 0 !important;
        align-items: stretch !important;
        margin-bottom: 16px !important;
    }
    .silure-cta-row .silure-add-to-cart-wrap {
        flex: 1 1 auto !important;
        width: auto !important;
        min-width: 0 !important;
    }
    .silure-cta-row form.cart {
        display: block !important;
        width: 100% !important;
        margin: 0 !important;
    }
    .silure-cta-row .single_add_to_cart_button {
        width: 100% !important;
        flex: none !important;
        margin-bottom: 0 !important;
    }
    .silure-heart--cta {
        flex: 0 0 58px !important;
        width: 58px !important;
        height: 58px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        cursor: pointer !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    /* OOS stacked layout (product.css) needs the heart full width with
       vertical margin instead of the 58px / margin:0 above -- narrower
       selector plus !important, needed to beat the !important rule right
       above (a non-important rule in product.css cannot win against an
       !important rule regardless of specificity or hook order -- that is
       why the plain product.css OOS rule was silently losing here even
       though this function loads early, at wp_head priority 5). Height
       stays the 58px above, unchanged, not overridden here. Margin reuses
       12px, the actual live gap this same function sets on .stock a few
       rules up (margin: 0 0 12px !important) -- confirmed via
       getComputedStyle in a real browser, not the 10px product.css own
       non-important .stock rule specifies, since that 10px is silently
       losing to this !important rule the same way. */
    .silure-cta-row:has(.silure-add-to-cart-wrap .stock.out-of-stock) .silure-heart--cta {
        width: 100% !important;
        margin: 12px 0 !important;
    }
    /* color/background/border/radius now come from the single sitewide
       button hover standard block at the end of silure_kill_pink_late(). */
    .silure-heart--cta.is-wishlisted svg { fill: #FBF9F6 !important; }

    /* 11. ADD TO BAG — 58px, full width */
    .single_add_to_cart_button,
    .silure-atb-btn,
    button.silure-atb-btn,
    .woocommerce div.product form.cart .single_add_to_cart_button {
        width: 100% !important;
        height: 58px !important;
        font-family: "DM Mono", monospace !important;
        font-size: 13px !important;
        font-weight: 300 !important;
        letter-spacing: 3px !important;
        text-transform: uppercase !important;
        cursor: pointer !important;
        display: block !important;
        margin-bottom: 16px !important;
    }
    /* color/background/border/radius (base + hover) now come from the
       single sitewide button hover standard block at the end of
       silure_kill_pink_late(). */

    /* 12. SAVE TO WISHLIST — YITH element only, not header icon */
    .single-product .yith-wcwl-add-to-wishlist {
        display: block !important;
        text-align: center !important;
        font-family: "DM Mono", monospace !important;
        font-size: 13px !important;
        font-weight: 300 !important;
        letter-spacing: 0.5px !important;
        text-transform: uppercase !important;
        color: #444444 !important;
        text-decoration: none !important;
        padding: 12px 0 !important;
        cursor: pointer !important;
        background: none !important;
        border: none !important;
        width: 100% !important;
        margin-bottom: 24px !important;
        border-bottom: 0.5px solid #E8E4DF !important;
        padding-bottom: 24px !important;
    }

    /* Header wishlist: hard reset — never affected by product page rules */
    #silure-header .silure-wishlist-btn,
    .silure-header-actions .silure-wishlist-btn {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: auto !important;
        height: auto !important;
        padding: 0 !important;
        margin: 0 !important;
        border: none !important;
        border-bottom: none !important;
        background: transparent !important;
        font-size: inherit !important;
        letter-spacing: normal !important;
        text-transform: none !important;
        color: #FBF9F6 !important;
    }

    /* Header search + cart: same deliberate, unconditional color rule as
       wishlist above — explicit rather than relying on color:inherit,
       which is what let search silently lose its color to an unrelated
       ambient value. Cart actual prior protection was never identified
       despite investigation; rather than leave it on an unverified
       mechanism, it gets the same explicit treatment as the other three. */
    #silure-header .silure-search-btn,
    .silure-header-actions .silure-search-btn {
        color: #FBF9F6 !important;
    }
    #silure-header .silure-cart-btn,
    .silure-header-actions .silure-cart-btn {
        color: #FBF9F6 !important;
    }

    /* 13. SHORT DESCRIPTION */
    .woocommerce-product-details__short-description,
    .silure-product-description {
        font-family: "DM Mono", monospace !important;
        font-size: 13px !important;
        font-weight: 300 !important;
        color: #444444 !important;
        line-height: 1.8 !important;
        margin-bottom: 24px !important;
    }

    /* 14. ACCORDION SECTIONS */
    .silure-product-accordion,
    .woocommerce-tabs,
    .wc-tab {
        border-top: 0.5px solid #E8E4DF !important;
        padding: 0 !important;
        margin-top: 8px !important;
    }
    .silure-accordion-trigger,
    .woocommerce-tabs ul.tabs li a {
        font-family: "DM Mono", monospace !important;
        font-size: 11px !important;
        font-weight: 300 !important;
        letter-spacing: 2px !important;
        text-transform: uppercase !important;
        color: #050505 !important;
        padding: 16px 0 !important;
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        cursor: pointer !important;
        background: none !important;
        border: none !important;
        width: 100% !important;
    }
    .silure-accordion-content,
    .woocommerce-Tabs-panel {
        font-family: "DM Mono", monospace !important;
        font-size: 12px !important;
        font-weight: 300 !important;
        color: #444444 !important;
        line-height: 1.8 !important;
        padding-bottom: 16px !important;
    }

    /* 15. BREADCRUMB — hide WooCommerce default, keep our custom one */
    .woocommerce-breadcrumb,
    .silure-breadcrumb,
    nav.woocommerce-breadcrumb {
        display: none !important;
    }
    [class*="breadcrumb"]:not(.silure-product-breadcrumb):not(.silure-shop-breadcrumb) {
        display: none !important;
    }
    .silure-product-breadcrumb,
    .silure-shop-breadcrumb {
        display: flex !important;
    }

    /* 16. TABS + RELATED below full grid */
    .woocommerce-tabs,
    .related.products {
        grid-column: 1 / -1 !important;
        padding: 48px 64px !important;
        border-top: 0.5px solid #E8E4DF !important;
    }

    /* 16b. REVIEWS SECTION */
    .silure-reviews-section {
        padding: 72px 80px !important;
        border-top: 0.5px solid #E8E4DF !important;
        background: #FBF9F6 !important;
    }
    .silure-reviews-inner {
        max-width: 880px !important;
        margin: 0 auto !important;
    }
    .silure-reviews-title {
        font-family: "Mulish", sans-serif !important;
        font-size: 22px !important;
        font-weight: 700 !important;
        letter-spacing: 0.5px !important;
        text-transform: uppercase !important;
        color: #050505 !important;
        margin: 0 0 32px !important;
    }
    /* Summary: score + breakdown side by side */
    .silure-reviews-summary {
        display: flex !important;
        gap: 56px !important;
        align-items: center !important;
        padding-bottom: 40px !important;
        margin-bottom: 8px !important;
        border-bottom: 0.5px solid #E8E4DF !important;
        flex-wrap: wrap !important;
    }
    .silure-reviews-score {
        display: flex !important;
        flex-direction: column !important;
        gap: 6px !important;
        flex-shrink: 0 !important;
    }
    .silure-reviews-score__num {
        font-family: "Mulish", sans-serif !important;
        font-size: 48px !important;
        font-weight: 300 !important;
        line-height: 1 !important;
        color: #050505 !important;
    }
    .silure-reviews-score__stars {
        display: inline-block !important;
        align-self: flex-start !important;
        width: fit-content !important;
        font-size: 16px !important;
        line-height: 1 !important;
        letter-spacing: 2px !important;
    }
    .silure-reviews-score__stars::before {
        content: "\2605\2605\2605\2605\2605" !important;
        display: block !important;
        background: linear-gradient(to right, var(--silure-primary, #050505) var(--fill-pct, 0%), var(--silure-border-mid, #C8C4BF) var(--fill-pct, 0%)) !important;
        -webkit-background-clip: text !important;
        background-clip: text !important;
        -webkit-text-fill-color: transparent !important;
        color: transparent !important;
    }
    .silure-reviews-score__count {
        font-family: "DM Mono", monospace !important;
        font-size: 11px !important;
        font-weight: 300 !important;
        letter-spacing: 1px !important;
        text-transform: uppercase !important;
        color: #7A7672 !important;
    }
    .silure-reviews-breakdown {
        flex: 1 !important;
        min-width: 240px !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 8px !important;
    }
    .silure-reviews-bar-row {
        display: flex !important;
        align-items: center !important;
        gap: 12px !important;
    }
    .silure-reviews-bar-label {
        font-family: "DM Mono", monospace !important;
        font-size: 11px !important;
        font-weight: 300 !important;
        color: #7A7672 !important;
        width: 28px !important;
        flex-shrink: 0 !important;
        white-space: nowrap !important;
    }
    .silure-reviews-bar-track {
        flex: 1 !important;
        height: 4px !important;
        background: #E8E4DF !important;
        position: relative !important;
        overflow: hidden !important;
    }
    .silure-reviews-bar-fill {
        position: absolute !important;
        left: 0 !important;
        top: 0 !important;
        height: 100% !important;
        background: #050505 !important;
    }
    .silure-reviews-bar-count {
        font-family: "DM Mono", monospace !important;
        font-size: 11px !important;
        font-weight: 300 !important;
        color: #7A7672 !important;
        width: 24px !important;
        text-align: right !important;
        flex-shrink: 0 !important;
    }
    /* Hide native duplicate reviews title (we render our own) */
    .silure-reviews-body .woocommerce-Reviews-title {
        display: none !important;
    }
    /* Review list */
    .silure-reviews-body .commentlist {
        list-style: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    .silure-reviews-body .commentlist li.review,
    .silure-reviews-body .commentlist li.comment {
        padding: 28px 0 !important;
        border-bottom: 0.5px solid #E8E4DF !important;
        margin: 0 !important;
    }
    .silure-reviews-body .comment_container {
        display: block !important;
    }
    .silure-reviews-body .comment_container img.avatar {
        display: none !important;
    }
    .silure-reviews-body .star-rating {
        position: relative !important;
        display: inline-block !important;
        font-size: 12px !important;
        line-height: 1 !important;
        letter-spacing: 2px !important;
        margin-bottom: 10px !important;
    }
    .silure-reviews-body .star-rating::before {
        content: "\2605\2605\2605\2605\2605" !important;
        display: block !important;
        background: linear-gradient(to right, var(--silure-primary, #050505) var(--fill-pct, 0%), var(--silure-border-mid, #C8C4BF) var(--fill-pct, 0%)) !important;
        -webkit-background-clip: text !important;
        background-clip: text !important;
        -webkit-text-fill-color: transparent !important;
        color: transparent !important;
    }
    .silure-reviews-body .star-rating span,
    .silure-reviews-body .silure-sr-only {
        position: absolute !important;
        width: 1px !important;
        height: 1px !important;
        overflow: hidden !important;
        clip: rect(0, 0, 0, 0) !important;
        white-space: nowrap !important;
        border: 0 !important;
        padding: 0 !important;
        margin: -1px !important;
    }
    /* Review submission form rating PICKER (#rating <select>, converted
       by WooCommerce own JS into <a class="star-1">…<a class="star-5">
       links) — a different element from .star-rating above (that one is
       the read-only display on existing reviews). Each link is one real
       ★ glyph via ::before + the Unicode character, same as the display
       side; :has() fills every star up to and including whichever one is
       hovered or marked .active (the currently selected rating), without
       needing to reorder the DOM to get a "fill preceding siblings"
       effect — WooCommerce own click handler reads star position from
       DOM order, so that order has to stay exactly as WC renders it. */
    .silure-reviews-body #respond p.stars {
        display: flex !important;
        gap: 2px !important;
        margin: 0 0 4px !important;
    }
    .silure-reviews-body #respond p.stars a {
        color: var(--silure-border-mid, #C8C4BF) !important;
        text-decoration: none !important;
        cursor: pointer !important;
        display: inline-block !important;
        line-height: 1 !important;
    }
    .silure-reviews-body #respond p.stars a::before {
        content: "\2605" !important;
        font-size: 20px !important;
    }
    .silure-reviews-body #respond p.stars a.active,
    .silure-reviews-body #respond p.stars a:has(~ a.active),
    .silure-reviews-body #respond p.stars a:hover,
    .silure-reviews-body #respond p.stars a:has(~ a:hover) {
        color: var(--silure-primary, #050505) !important;
    }
    .silure-reviews-body .woocommerce-review__author {
        font-family: "Mulish", sans-serif !important;
        font-size: 13px !important;
        font-weight: 700 !important;
        letter-spacing: 0.5px !important;
        color: #050505 !important;
    }
    .silure-reviews-body .woocommerce-review__verified {
        font-family: "DM Mono", monospace !important;
        font-size: 10px !important;
        color: #7A7672 !important;
        font-style: normal !important;
    }
    .silure-reviews-body .woocommerce-review__published-date,
    .silure-reviews-body .woocommerce-review__dash {
        font-family: "DM Mono", monospace !important;
        font-size: 11px !important;
        color: #7A7672 !important;
    }
    .silure-reviews-body .meta {
        margin-bottom: 8px !important;
    }
    .silure-reviews-body .description,
    .silure-reviews-body .comment-text p {
        font-family: "DM Mono", monospace !important;
        font-size: 13px !important;
        font-weight: 300 !important;
        line-height: 1.8 !important;
        color: #444444 !important;
        margin: 0 !important;
    }
    .silure-reviews-body .woocommerce-noreviews {
        font-family: "DM Mono", monospace !important;
        font-size: 13px !important;
        font-weight: 300 !important;
        color: #7A7672 !important;
        padding: 16px 0 !important;
    }
    /* Write-review form */
    .silure-reviews-body #review_form_wrapper {
        margin-top: 40px !important;
    }
    .silure-reviews-body .comment-reply-title {
        font-family: "Mulish", sans-serif !important;
        font-size: 14px !important;
        font-weight: 700 !important;
        letter-spacing: 0.5px !important;
        text-transform: uppercase !important;
        color: #050505 !important;
        display: block !important;
        margin-bottom: 20px !important;
    }
    .silure-reviews-body .comment-form-rating label,
    .silure-reviews-body .comment-form-author label,
    .silure-reviews-body .comment-form-email label,
    .silure-reviews-body .comment-form-comment label {
        font-family: "DM Mono", monospace !important;
        font-size: 10px !important;
        font-weight: 300 !important;
        letter-spacing: 1.5px !important;
        text-transform: uppercase !important;
        color: #7A7672 !important;
        display: block !important;
        margin-bottom: 6px !important;
    }
    .silure-reviews-body .comment-form input[type="text"],
    .silure-reviews-body .comment-form input[type="email"],
    .silure-reviews-body .comment-form textarea,
    .silure-reviews-body .comment-form select {
        font-family: "DM Mono", monospace !important;
        font-size: 13px !important;
        font-weight: 300 !important;
        color: #050505 !important;
        background: #FBF9F6 !important;
        border: 0.5px solid #C8C4BF !important;
        border-radius: 0 !important;
        padding: 10px 14px !important;
        width: 100% !important;
        max-width: 420px !important;
        margin-bottom: 16px !important;
        box-sizing: border-box !important;
    }
    .silure-reviews-body .comment-form textarea {
        max-width: 100% !important;
        resize: vertical !important;
    }
    .silure-reviews-body .comment-form input:focus,
    .silure-reviews-body .comment-form textarea:focus,
    .silure-reviews-body .comment-form select:focus {
        border-color: #050505 !important;
        outline: none !important;
    }
    .silure-reviews-body .comment-form .submit,
    .silure-reviews-body #respond input#submit {
        font-family: "DM Mono", monospace !important;
        font-size: 13px !important;
        font-weight: 300 !important;
        letter-spacing: 0.5px !important;
        text-transform: uppercase !important;
        padding: 16px 40px !important;
        cursor: pointer !important;
        transition: background 0.2s !important;
    }
    /* color/background/border/radius (base + hover) now come from the
       single sitewide button hover standard block at the end of
       silure_kill_pink_late(). */
    .silure-reviews-body .woocommerce-verification-required,
    .silure-reviews-body .must-log-in {
        font-family: "DM Mono", monospace !important;
        font-size: 12px !important;
        font-weight: 300 !important;
        color: #7A7672 !important;
        padding: 16px 0 !important;
    }
    .silure-reviews-body .must-log-in a,
    .silure-reviews-body .woocommerce-verification-required a {
        color: #050505 !important;
        text-decoration: underline !important;
    }
    @media (max-width: 1024px) {
        .silure-reviews-section { padding: 56px 40px !important; }
    }
    @media (max-width: 768px) {
        .silure-reviews-section { padding: 48px 24px !important; }
        .silure-reviews-summary { gap: 28px !important; }
    }

    /* FOOTER */
    /* Block template footer — targets wp_template_part rendered HTML */
    .site-footer,
    .site-footer .has-color-2-background-color,
    .site-footer .has-background {
        background-color: #FBF9F6 !important;
        color: #050505 !important;
    }
    .site-footer a { color: #444444 !important; }
    .site-footer a:hover { color: #050505 !important; }

    /* FOOTER wrapper */
    .silure-footer {
        background: #FBF9F6 !important;
        width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    /* FOOTER inner: full width */
    .silure-footer-inner {
        max-width: 100% !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        box-sizing: border-box !important;
    }

    /* FOOTER grid: columns with padding like Mejuri */
    .silure-footer-grid {
        display: grid !important;
        grid-template-columns: 1.5fr 1fr 1fr 1fr !important;
        gap: 0 !important;
        padding: 48px 32px 40px !important;
        width: 100% !important;
        box-sizing: border-box !important;
        border-bottom: 0.5px solid #E8E4DF !important;
    }

    /* Column headings: dark and bold like Mejuri */
    .silure-footer-heading {
        font-family: "Mulish", sans-serif !important;
        font-size: 11px !important;
        font-weight: 700 !important;
        letter-spacing: 0.5px !important;
        text-transform: uppercase !important;
        color: #050505 !important;
        margin: 0 0 20px !important;
        display: block !important;
    }

    /* Footer links */
    .silure-footer-links {
        list-style: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    .silure-footer-links li {
        margin-bottom: 10px !important;
    }
    .silure-footer-links a {
        font-family: "DM Mono", monospace !important;
        font-size: 12px !important;
        font-weight: 300 !important;
        letter-spacing: 0.3px !important;
        color: #444444 !important;
        text-decoration: none !important;
        transition: color 0.2s !important;
    }
    .silure-footer-links a:hover { color: #050505 !important; }

    /* Brand column */
    .silure-footer-brand {
        padding-right: 32px !important;
    }
    .silure-footer-logo {
        height: 40px !important;
        width: auto !important;
        display: block !important;
        margin-bottom: 16px !important;
        filter: brightness(0) !important;
    }
    .silure-footer-tagline {
        font-family: "DM Mono", monospace !important;
        font-size: 11px !important;
        font-weight: 300 !important;
        letter-spacing: 0.3px !important;
        color: #7A7672 !important;
        line-height: 1.6 !important;
        margin: 0 !important;
    }

    /* OLD BOTTOM BAR — hidden, replaced by utility bar */
    .silure-footer-bottom { display: none !important; }

    /* ── FOOTER UTILITY BAR — Mejuri-style ──────────────────────── */
    .silure-footer-utility-bar {
        display: grid !important;
        grid-template-columns: 1fr auto 1fr !important;
        align-items: center !important;
        background: #000000 !important;
        color: #ffffff !important;
        height: 56px !important;
        padding: 0 80px !important;
        font-family: "DM Mono", monospace !important;
        font-weight: 300 !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }
    .silure-footer-country {
        display: flex !important;
        align-items: center !important;
        background: none !important;
        border: none !important;
        color: #ffffff !important;
        cursor: pointer !important;
        padding: 0 !important;
        font-family: "DM Mono", monospace !important;
        flex-shrink: 0 !important;
    }
    .silure-footer-country__inner {
        display: flex !important;
        align-items: center !important;
        gap: 6px !important;
    }
    .silure-footer-country__label {
        font-family: "DM Mono", monospace !important;
        font-size: 11px !important;
        font-weight: 300 !important;
        color: rgba(255,255,255,0.7) !important;
        letter-spacing: 0.3px !important;
    }
    .silure-footer-country__value {
        font-family: "DM Mono", monospace !important;
        font-size: 11px !important;
        font-weight: 300 !important;
        color: #ffffff !important;
        letter-spacing: 0.3px !important;
    }
    .silure-footer-social {
        display: flex !important;
        align-items: center !important;
        gap: 16px !important;
        justify-self: center !important;
    }
    .silure-footer-social__link {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        color: #ffffff !important;
        transition: opacity 0.2s ease !important;
        width: 20px !important;
        height: 20px !important;
        text-decoration: none !important;
    }
    .silure-footer-social__link:hover { opacity: 0.6 !important; }
    .silure-footer-utility-right {
        display: flex !important;
        align-items: center !important;
        gap: 20px !important;
        justify-self: end !important;
    }
    .silure-footer-utility-link {
        font-family: "DM Mono", monospace !important;
        font-size: 11px !important;
        font-weight: 300 !important;
        color: #ffffff !important;
        text-decoration: none !important;
        letter-spacing: 0.3px !important;
        transition: opacity 0.2s ease !important;
    }
    .silure-footer-utility-link:hover { opacity: 0.6 !important; }
    .silure-footer-utility-copy {
        font-family: "DM Mono", monospace !important;
        font-size: 11px !important;
        font-weight: 300 !important;
        color: rgba(255,255,255,0.7) !important;
        letter-spacing: 0.3px !important;
    }

    /* RESPONSIVE */
    @media (max-width: 1024px) {
        .silure-header-inner { padding: 0 32px; }
        .silure-nav-list { gap: 28px; }
    }
    @media(max-width: 768px) {
        .silure-header-inner { padding: 0 20px; height: 68px; position: relative !important; }
        .silure-logo-light-svg { height: 44px !important; }
        .silure-nav { display: none !important; }
        .silure-hamburger { display: flex !important; }
        .silure-logo-link { position: absolute !important; left: 50% !important; transform: translateX(-50%) !important; margin-right: 0 !important; }
        .silure-header-actions { gap: 8px !important; }
        #silure-mobile-nav { width: 100vw !important; max-width: 100vw !important; transform: translateX(-100vw) !important; }
        #silure-mobile-nav.is-open { transform: translateX(0) !important; }
        .silure-account-btn, #silure-header .silure-wishlist-btn { display: none !important; }
        #silure-hamburger span { height: 1.5px !important; }
        .silure-footer-grid { grid-template-columns: 1fr 1fr !important; padding: 32px 20px 28px !important; }
        .silure-footer-brand { grid-column: 1 / -1 !important; padding-right: 0 !important; }
        .silure-footer-utility-bar { grid-template-columns: 1fr !important; height: auto !important; padding: 16px 20px !important; gap: 14px !important; }
        .silure-footer-social { justify-self: start !important; }
        .silure-footer-utility-right { justify-self: start !important; flex-wrap: wrap !important; gap: 12px !important; }
    }
    @media (max-width: 480px) {
        .silure-footer-grid { grid-template-columns: 1fr !important; }
    }

    /* ── ACCOUNT OVERLAY ────────────────────────────── */
    .silure-acct-overlay {
        position: fixed;
        inset: 0;
        background: rgba(0, 0, 0, 0.45);
        z-index: 1998;
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.3s;
    }
    .silure-acct-overlay.is-open {
        opacity: 1;
        pointer-events: all;
    }

    /* ── ACCOUNT DRAWER ─────────────────────────────── */
    .silure-acct-drawer {
        position: fixed;
        top: 0;
        right: 0;
        width: 40%;
        height: 100%;
        background: #FFFFFF;
        z-index: 1999;
        transform: translateX(100%);
        transition: transform 0.35s cubic-bezier(0.4,0,0.2,1);
        overflow-y: auto;
        display: flex;
        flex-direction: column;
    }
    .silure-acct-drawer.is-open {
        transform: translateX(0);
    }
    .silure-acct-close {
        position: absolute;
        top: 20px;
        right: 24px;
        background: none;
        border: none;
        font-size: 18px;
        cursor: pointer;
        color: #050505;
        line-height: 1;
        padding: 4px;
        z-index: 1;
    }
    .silure-acct-drawer-body {
        padding: 64px 40px 48px;
        display: flex;
        flex-direction: column;
        gap: 20px;
        flex: 1;
    }
    .silure-acct-drawer-title {
        font-family: "Mulish", sans-serif;
        font-size: 20px;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.5px;
        color: #050505;
        line-height: 1.2;
        margin: 0;
    }
    .silure-acct-drawer-text {
        font-family: "DM Mono", monospace;
        font-size: 13px;
        font-weight: 300;
        letter-spacing: 0.3px;
        color: #444444;
        line-height: 1.7;
        margin: 0;
    }
    .silure-acct-drawer-foot {
        font-family: "DM Mono", monospace;
        font-size: 13px;
        font-weight: 300;
        letter-spacing: 0.3px;
        line-height: 1.7;
        color: #444444;
        margin: 0;
    }

    /* ── MODAL ──────────────────────────────────────── */
    .silure-acct-modal {
        position: fixed;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%) scale(0.96);
        width: 480px;
        max-width: calc(100vw - 32px);
        max-height: 90vh;
        background: #FFFFFF;
        z-index: 2000;
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.25s, transform 0.25s;
        overflow-y: auto;
        border: none;
    }
    .silure-acct-modal.is-open {
        opacity: 1;
        pointer-events: all;
        transform: translate(-50%, -50%) scale(1);
    }
    /* Scoped to .silure-acct-modal — .silure-modal-close is also used by the
       product-enquiry modal (unrelated design). It currently renders
       correctly there only by cascade-order accident (equal specificity,
       no !important, external stylesheet just happens to print later);
       scoping removes that latent collision instead of relying on load
       order to keep saving it. */
    .silure-acct-modal .silure-modal-close {
        position: absolute;
        top: 16px;
        right: 20px;
        background: none;
        border: none;
        font-size: 18px;
        cursor: pointer;
        color: #FFFFFF;
        line-height: 1;
        padding: 4px;
        z-index: 2;
    }
    .silure-modal-top {
        background: #050505;
        color: #FFFFFF;
        padding: 32px 32px 28px;
    }
    .silure-acct-modal .silure-modal-brand {
        font-family: "Mulish", sans-serif;
        font-size: 28px;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.5px;
        color: #FFFFFF;
        margin-bottom: 4px;
    }
    /* Scoped to .silure-acct-modal specifically — this was previously a bare
       .silure-modal-title selector, which is also used (unrelated design) by
       the product-enquiry modal, silently forcing white text there too via
       !important. Root cause was the missing scope, not a specificity fight
       worth patching with another override. */
    .silure-acct-modal .silure-modal-title {
        font-family: "Mulish", sans-serif;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.5px;
        color: #FFFFFF !important;
        margin: 0 0 12px;
        font-size: 18px;
    }
    .silure-acct-modal .silure-modal-desc {
        font-family: "DM Mono", monospace;
        font-size: 13px;
        font-weight: 300;
        letter-spacing: 0.3px;
        color: rgba(255,255,255,0.75);
        line-height: 1.7;
        margin: 0;
    }
    .silure-modal-body {
        padding: 24px 32px 32px;
        display: flex;
        flex-direction: column;
        gap: 0;
    }

    /* Social buttons */
    .silure-social-btn {
        display: flex;
        align-items: center;
        gap: 12px;
        justify-content: center;
        width: 100%;
        padding: 14px 16px;
        border: 1px solid #E8E4DF;
        background: #FFFFFF;
        font-family: "DM Mono", monospace;
        font-size: 11px;
        font-weight: 300;
        letter-spacing: 2px;
        text-transform: uppercase;
        color: #050505;
        text-decoration: none;
        margin-bottom: 10px;
        transition: background 0.2s;
        cursor: pointer;
        box-sizing: border-box;
    }
    .silure-social-btn:hover { background: #F8F6F3; }

    /* Session 47 — explains what Google/Facebook sign-in is actually used
       for, next to the buttons themselves. Google own OAuth verification
       guidance requires the app to transparently state why it requests
       Google user data, not just describe the business generally. */
    .silure-social-note {
        font-family: "DM Mono", monospace;
        font-size: 11px;
        font-weight: 300;
        letter-spacing: 0.3px;
        line-height: 1.6;
        color: var(--silure-muted, #7A7672);
        text-align: center;
        margin: 2px 0 14px;
    }

    /* OR divider */
    .silure-or-divider {
        display: flex;
        align-items: center;
        gap: 12px;
        margin: 8px 0 16px;
    }
    .silure-or-divider::before,
    .silure-or-divider::after {
        content: "";
        flex: 1;
        height: 0.5px;
        background: #E8E4DF;
    }
    .silure-or-divider span {
        font-family: "DM Mono", monospace;
        font-weight: 300;
        font-size: 11px;
        color: #7A7672;
        letter-spacing: 0.3px;
    }

    /* Form fields */
    .silure-acct-form { width: 100%; }
    .silure-field {
        position: relative;
        margin-bottom: 16px;
        border-bottom: 1px solid #050505;
        border-radius: 0;
        transition: border-color 0.2s;
    }
    .silure-field:focus-within { border-bottom-color: #050505; }
    .silure-field label { display: none; }
    .silure-field input {
        width: 100%;
        border: none !important;
        outline: none !important;
        background: transparent !important;
        padding: 10px 0 8px !important;
        font-family: "DM Mono", monospace !important;
        font-size: 13px !important;
        font-weight: 300 !important;
        letter-spacing: 0.3px !important;
        color: #050505 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
    }
    .silure-field input::placeholder {
        color: #7A7672;
        font-size: 12px;
    }
    /* minmax(0, 400px) + 24px gap (Session 30, field-standard column-gap
       fix) -- matches the .silure-form-grid spec for consistency. This
       modal own ~416px content width (480px box minus 32px padding
       each side) never lets either track reach the 400px cap in
       practice, same as the enquiry modal -- the track just shrinks
       safely to fill the width actually available. */
    .silure-field-row {
        display: grid;
        grid-template-columns: minmax(0, 400px) minmax(0, 400px);
        gap: 0 24px;
    }
    .silure-field-pw { padding-right: 52px; }
    .silure-show-pw {
        position: absolute;
        right: 0;
        top: 50%;
        transform: translateY(-50%);
        background: none;
        border: none;
        color: #050505;
        cursor: pointer;
        padding: 4px;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .silure-show-pw svg {
        width: 16px;
        height: 16px;
        display: block;
    }

    /* Checkboxes */
    .silure-checkbox-row {
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        gap: 12px;
        margin: 4px 0 16px;
    }
    .silure-check {
        display: flex;
        align-items: center;
        gap: 6px;
        font-family: "DM Mono", monospace;
        font-size: 12px;
        font-weight: 300;
        letter-spacing: 0.3px;
        color: #444444;
        cursor: pointer;
    }
    /* mobile-ux.css has a sitewide WCAG 2.5.5 tap-target rule
       (input[type="checkbox"] { min-width/min-height: 44px }) that clamps
       the rendered size regardless of the width/height set here -- min-*
       always wins over width/height on the same box, independent of
       selector specificity or !important, since they are not the same
       property. Explicit min-width/min-height here is what actually
       overrides it, not the width/height alone. */
    .silure-check input[type="checkbox"] {
        width: 16px;
        height: 16px;
        min-width: 16px;
        min-height: 16px;
        flex-shrink: 0;
        border: 1px solid #C8C4BF;
        appearance: none;
        -webkit-appearance: none;
        cursor: pointer;
        position: relative;
    }
    .silure-check input[type="checkbox"]:checked {
        background: #050505;
        border-color: #050505;
    }
    .silure-check-label {
        font-size: 11px;
        color: #7A7672;
        width: 100%;
        margin-top: -6px;
    }

    /* Primary button */
    /* !important on the font properties (Session 30 sitewide 13px
       standardization) -- real <button> elements (account drawer
       trigger, SIGN IN, JOIN NOW), same reset.css tie as
       .silure-btn-primary elsewhere. */
    .silure-acct-btn-primary {
        width: 100%;
        padding: 16px;
        font-family: "DM Mono", monospace !important;
        font-size: 13px !important;
        font-weight: 300 !important;
        letter-spacing: 0.5px !important;
        text-transform: uppercase !important;
        cursor: pointer;
        margin-top: 8px;
        transition: background 0.2s;
        box-sizing: border-box;
    }
    #silure-signin-modal .silure-acct-btn-primary,
    #silure-register-modal .silure-acct-btn-primary,
    #silure-acct-drawer .silure-acct-btn-primary,
    .silure-acct-drawer .silure-acct-btn-primary {
        /* width: 100% !important -- the Hello Elementor theme reset.css ships
           a sitewide, unscoped "[type=button],[type=reset],[type=submit],
           button{width:auto}" rule. Its specificity (one attribute + one
           tag selector) is actually higher than the base
           .silure-acct-btn-primary{width:100%} rule above (one class,
           non-important) -- so the theme reset was winning everywhere,
           shrinking Sign In / Join Now to content-hugging width on every
           page. Lost Password looked "correct" only by accident, via its
           own unrelated button[type=submit]{width:100% !important} rule
           for its native Reset Password button bare-matching the modal
           button too -- same collision pattern as the other page-specific
           bleed-through fixes, just working in favour of this one page by
           coincidence. This !important, ID/drawer-scoped rule is what
           actually makes 100% width win everywhere, correctly, on
           purpose, rather than depending on that accident. */
        width: 100% !important;
        /* Session 58 — was `box-shadow: none !important` outright, which
           (this rule being ID-scoped, higher specificity than the
           shared standard own single-class selector) silently cancelled
           the sitewide border fix added there for this same button.
           Original purpose here was stripping a native browser focus
           box-shadow glow, not blocking a real border -- still fully
           overrides any native default via !important, just with the
           correct value instead of none. */
        box-shadow: inset 0 0 0 1px currentColor !important;
        outline: none !important;
    }
    /* color/background/border/radius (base + hover) now come from the
       single sitewide button hover standard block at the end of
       silure_kill_pink_late(). */
    #silure-signin-modal .silure-show-pw,
    #silure-register-modal .silure-show-pw {
        color: #050505 !important;
    }

    /* Links and legal */
    .silure-acct-link {
        background: none;
        border: none;
        font-family: "DM Mono", monospace;
        font-size: 13px;
        font-weight: 300;
        letter-spacing: 0.3px;
        color: #050505;
        text-decoration: underline;
        cursor: pointer;
        padding: 0;
    }
    .silure-acct-link-plain {
        font-family: "DM Mono", monospace;
        font-size: 12px;
        font-weight: 300;
        letter-spacing: 0.3px;
        color: #444444;
        text-decoration: underline;
    }
    .silure-modal-links {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-top: 16px;
        gap: 12px;
        flex-wrap: wrap;
    }
    .silure-modal-links span {
        font-family: "DM Mono", monospace;
        font-size: 12px;
        font-weight: 300;
        letter-spacing: 0.3px;
        color: #444444;
    }
    .silure-modal-legal {
        font-family: "DM Mono", monospace;
        font-size: 11px;
        font-weight: 300;
        letter-spacing: 0.3px;
        color: #7A7672;
        line-height: 1.6;
        margin-top: 16px;
        text-align: center;
    }
    .silure-modal-legal a { color: #050505; }

    /* Mobile */
    @media (max-width: 768px) {
        .silure-acct-drawer { width: 100vw !important; max-width: 100vw !important; }
        .silure-acct-drawer-body { padding: 56px 24px 40px; }
        .silure-acct-modal {
            width: 100%;
            max-width: 100%;
            max-height: 100vh;
            top: auto;
            bottom: 0;
            left: 0;
            right: 0;
            transform: translateY(100%);
            border-radius: 0;
        }
        .silure-acct-modal.is-open { transform: translateY(0); }
        .silure-modal-top { padding: 24px 24px 20px; }
        .silure-modal-body { padding: 20px 24px 40px; }
        .silure-field-row { grid-template-columns: 1fr; gap: 0; }
    }
    @media (min-width: 769px) and (max-width: 1024px) {
        .silure-acct-drawer { width: 40%; }
    }

    /* ============================================================
       SESSION 30 — LOGIN/REGISTER MODAL: COMPREHENSIVE HARDENING
       ============================================================
       Every visual property (background, text color, border
       color/width, border-radius, font-family/size/weight/
       letter-spacing/line-height, text-transform/decoration,
       padding, margin) on every element inside #silure-signin-modal
       and #silure-register-modal, explicitly ID-scoped + !important.
       This is deliberately NOT scoped to only the properties already
       known to differ (modal title typography, field border color,
       both already fixed above/elsewhere) -- the point is that
       nothing on any current or future page can win the cascade
       against an ID-scoped !important rule for anything inside these
       two modals, full stop, regardless of what new stylesheet or
       selector shows up later.

       Values are the ones confirmed live on Home, with two
       corrections found during this same audit -- Home itself was
       not fully collision-free either:
       - .silure-modal-title letter-spacing was computing as
         -0.54px on every page, including Home, not the 0.5px the
         rule above for it declares (matching .silure-modal-brand
         right above it). -0.54px = exactly -0.03em at 18px -- this is
         the already-documented sitewide "Elementor Global Fonts"
         Elementor-generated post-5.css forcing letter-spacing:-0.03em
         !important on every h1/h2 (see MASTER_CONTEXT.md, flagged in
         an earlier session, never code-level-fixed since it comes
         from generated CSS Elementor itself owns, not a theme file). This
         rule is now the code-level override that earlier flag asked
         for, at least for this one h2.
       - .silure-modal-close / .silure-show-pw / .silure-acct-link
         were all inheriting a stray 3px border-radius from elsewhere
         (their own source rules never declare border-radius at all)
         -- sitewide standard is 0 throughout (CLAUDE.md), so 0 is
         used here, not the inherited 3px. */

    #silure-signin-modal,
    #silure-register-modal {
        background-color: #FFFFFF !important;
        color: #444444 !important;
        border: 0 none !important;
        border-radius: 0 !important;
        font-family: "DM Mono", monospace !important;
        font-size: 16px !important;
        font-weight: 400 !important;
        letter-spacing: 0.3px !important;
        line-height: 24px !important;
        text-transform: none !important;
    }
    #silure-signin-modal .silure-modal-close,
    #silure-register-modal .silure-modal-close {
        background-color: transparent !important;
        color: #FFFFFF !important;
        border: 0 none !important;
        border-radius: 0 !important;
        font-family: "Mulish", sans-serif !important;
        font-size: 18px !important;
        font-weight: 400 !important;
        line-height: 1 !important;
        padding: 4px !important;
        margin: 0 !important;
    }
    #silure-signin-modal .silure-modal-top,
    #silure-register-modal .silure-modal-top {
        background-color: #050505 !important;
        color: #FFFFFF !important;
        border: 0 none !important;
        border-radius: 0 !important;
        padding: 32px 32px 28px !important;
        margin: 0 !important;
    }
    #silure-signin-modal .silure-modal-brand,
    #silure-register-modal .silure-modal-brand {
        background-color: transparent !important;
        color: #FFFFFF !important;
        border: 0 none !important;
        border-radius: 0 !important;
        font-family: "Mulish", sans-serif !important;
        font-size: 28px !important;
        font-weight: 700 !important;
        letter-spacing: 0.5px !important;
        line-height: 1.5 !important;
        text-transform: uppercase !important;
        padding: 0 !important;
        margin: 0 0 4px !important;
    }
    #silure-signin-modal .silure-modal-title,
    #silure-register-modal .silure-modal-title {
        background-color: transparent !important;
        color: #FFFFFF !important;
        border: 0 none !important;
        border-radius: 0 !important;
        font-family: "Mulish", sans-serif !important;
        font-size: 18px !important;
        font-weight: 700 !important;
        letter-spacing: 0.5px !important;
        line-height: 1.2 !important;
        text-transform: uppercase !important;
        padding: 0 !important;
        margin: 0 0 12px !important;
    }
    #silure-signin-modal .silure-modal-desc,
    #silure-register-modal .silure-modal-desc {
        background-color: transparent !important;
        color: rgba(255, 255, 255, 0.75) !important;
        border: 0 none !important;
        border-radius: 0 !important;
        font-family: "DM Mono", monospace !important;
        font-size: 13px !important;
        font-weight: 300 !important;
        letter-spacing: 0.3px !important;
        line-height: 1.7 !important;
        text-transform: none !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    #silure-signin-modal .silure-modal-body,
    #silure-register-modal .silure-modal-body {
        background-color: transparent !important;
        color: #444444 !important;
        border: 0 none !important;
        border-radius: 0 !important;
        padding: 24px 32px 32px !important;
        margin: 0 !important;
    }
    #silure-signin-modal .silure-social-btn,
    #silure-register-modal .silure-social-btn {
        background-color: #FFFFFF !important;
        color: #444444 !important;
        border: 1px solid #E8E4DF !important;
        border-radius: 0 !important;
        font-family: "Mulish", sans-serif !important;
        font-size: 11px !important;
        font-weight: 300 !important;
        letter-spacing: 2px !important;
        line-height: normal !important;
        text-transform: uppercase !important;
        text-decoration: none !important;
        padding: 14px 16px !important;
        margin: 0 0 10px !important;
    }
    #silure-signin-modal .silure-or-divider,
    #silure-register-modal .silure-or-divider {
        background-color: transparent !important;
        border: 0 none !important;
        margin: 8px 0 16px !important;
        padding: 0 !important;
    }
    #silure-signin-modal .silure-or-divider span,
    #silure-register-modal .silure-or-divider span {
        background-color: transparent !important;
        color: #7A7672 !important;
        border: 0 none !important;
        font-family: "DM Mono", monospace !important;
        font-size: 11px !important;
        font-weight: 300 !important;
        letter-spacing: 0.3px !important;
        line-height: normal !important;
        text-transform: none !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    /* Session 48 — Google/Facebook sign-in hidden from customers. Manish
       is done chasing the Google OAuth verification loop for now and may
       revisit later. VISIBILITY-ONLY TOGGLE: nothing else was touched —
       $google_url/$facebook_url are still built, the <a> markup, the
       Nextend plugin config (silure_inject_nextend_google/facebook), and
       the Session 47 disclosure text (.silure-social-note) are all fully
       intact. To bring them back, delete/comment out this rule block —
       no rebuild required. Same hidden-not-deleted pattern already used
       for GPay elsewhere on the site. */
    #silure-signin-modal .silure-social-btn,
    #silure-signin-modal .silure-social-note,
    #silure-signin-modal .silure-or-divider,
    #silure-register-modal .silure-social-btn,
    #silure-register-modal .silure-social-note,
    #silure-register-modal .silure-or-divider {
        display: none !important;
    }
    #silure-signin-modal .silure-acct-form,
    #silure-register-modal .silure-acct-form {
        background-color: transparent !important;
        border: 0 none !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    #silure-signin-modal .silure-field,
    #silure-register-modal .silure-field {
        background-color: transparent !important;
        border: 0 none !important;
        border-bottom: 1px solid #050505 !important;
        border-radius: 0 !important;
        padding: 0 !important;
        margin: 0 0 16px !important;
    }
    #silure-signin-modal .silure-field input,
    #silure-register-modal .silure-field input {
        background-color: transparent !important;
        color: #050505 !important;
        border: 0 none !important;
        border-radius: 0 !important;
        font-family: "DM Mono", monospace !important;
        font-size: 13px !important;
        font-weight: 300 !important;
        letter-spacing: 0.3px !important;
        line-height: normal !important;
        text-transform: none !important;
        padding: 10px 0 8px !important;
        margin: 0 !important;
    }
    #silure-signin-modal .silure-field label,
    #silure-register-modal .silure-field label {
        /* display: none !important -- these labels are intentionally
           never shown; the input own placeholder is the only visible
           field text (see .silure-field input::placeholder). Session 30
           found body.woocommerce-checkout own bare "label" selector
           (checkout real field-label rule, !important, no scoping)
           was forcing these labels to display: block on Checkout only,
           since the modal is a DOM sibling on every page including
           Checkout -- stacking a second, uppercase-styled "EMAIL*"/
           "PASSWORD*" directly under the already-visible placeholder.
           !important here, on display specifically, is what closes
           that off for good; the other properties below were already
           !important from the prior hardening pass but display was
           the one gap that let it through. */
        display: none !important;
        background-color: transparent !important;
        color: #7A7672 !important;
        border: 0 none !important;
        font-family: "DM Mono", monospace !important;
        font-size: 10px !important;
        font-weight: 300 !important;
        letter-spacing: 0.5px !important;
        text-transform: uppercase !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    #silure-signin-modal .silure-show-pw,
    #silure-register-modal .silure-show-pw {
        background-color: transparent !important;
        border: 0 none !important;
        border-radius: 0 !important;
        padding: 4px !important;
        margin: 0 !important;
    }
    #silure-signin-modal .silure-acct-btn-primary,
    #silure-register-modal .silure-acct-btn-primary {
        background-color: #050505 !important;
        color: #FBF9F6 !important;
        border: 0 none !important;
        border-radius: 0 !important;
        font-family: "DM Mono", monospace !important;
        font-size: 13px !important;
        font-weight: 300 !important;
        letter-spacing: 0.5px !important;
        text-transform: uppercase !important;
        text-decoration: none !important;
        padding: 14px 32px !important;
        margin: 8px 0 0 !important;
    }
    #silure-signin-modal .silure-modal-links,
    #silure-register-modal .silure-modal-links {
        background-color: transparent !important;
        color: #444444 !important;
        border: 0 none !important;
        font-family: "DM Mono", monospace !important;
        font-size: 16px !important;
        font-weight: 400 !important;
        letter-spacing: 0.3px !important;
        line-height: 24px !important;
        text-transform: none !important;
        padding: 0 !important;
        margin: 16px 0 0 !important;
    }
    #silure-signin-modal .silure-modal-links span,
    #silure-register-modal .silure-modal-links span {
        background-color: transparent !important;
        color: #444444 !important;
        border: 0 none !important;
        font-family: "DM Mono", monospace !important;
        font-size: 12px !important;
        font-weight: 300 !important;
        letter-spacing: 0.3px !important;
        text-transform: none !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    #silure-signin-modal .silure-acct-link,
    #silure-register-modal .silure-acct-link {
        background-color: transparent !important;
        color: #050505 !important;
        border: 0 none !important;
        border-radius: 0 !important;
        font-family: "DM Mono", monospace !important;
        font-size: 13px !important;
        font-weight: 300 !important;
        letter-spacing: 0.3px !important;
        text-decoration: underline !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    #silure-signin-modal .silure-acct-link-plain {
        background-color: transparent !important;
        color: #444444 !important;
        border: 0 none !important;
        font-family: "Mulish", sans-serif !important;
        font-size: 12px !important;
        font-weight: 300 !important;
        letter-spacing: 0.3px !important;
        text-decoration: underline !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    /* Register-only elements */
    #silure-register-modal .silure-field-row {
        background-color: transparent !important;
        border: 0 none !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    #silure-register-modal .silure-checkbox-row {
        background-color: transparent !important;
        border: 0 none !important;
        padding: 0 !important;
        margin: 4px 0 16px !important;
    }
    #silure-register-modal .silure-check {
        background-color: transparent !important;
        color: #444444 !important;
        border: 0 none !important;
        font-family: "DM Mono", monospace !important;
        font-size: 12px !important;
        font-weight: 300 !important;
        letter-spacing: 0.3px !important;
        text-transform: none !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    #silure-register-modal .silure-check input[type="checkbox"] {
        background-color: transparent !important;
        border: 1px solid #C8C4BF !important;
        border-radius: 0 !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    #silure-register-modal .silure-check input[type="checkbox"]:checked {
        background-color: #050505 !important;
        border-color: #050505 !important;
    }
    #silure-register-modal .silure-check span {
        background-color: transparent !important;
        color: #444444 !important;
        border: 0 none !important;
        font-family: "DM Mono", monospace !important;
        font-size: 12px !important;
        font-weight: 300 !important;
        letter-spacing: 0.3px !important;
        text-transform: none !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    #silure-register-modal .silure-check-label {
        background-color: transparent !important;
        color: #7A7672 !important;
        border: 0 none !important;
        font-family: "DM Mono", monospace !important;
        font-size: 11px !important;
        font-weight: 300 !important;
        letter-spacing: 0.3px !important;
        padding: 0 !important;
        margin: -6px 0 0 !important;
    }
    #silure-register-modal .silure-modal-legal {
        background-color: transparent !important;
        color: #7A7672 !important;
        border: 0 none !important;
        font-family: "DM Mono", monospace !important;
        font-size: 11px !important;
        font-weight: 300 !important;
        letter-spacing: 0.3px !important;
        line-height: 1.6 !important;
        text-align: center !important;
        padding: 0 !important;
        margin: 16px 0 0 !important;
    }
    #silure-register-modal .silure-modal-legal a {
        background-color: transparent !important;
        color: #050505 !important;
        border: 0 none !important;
        font-family: "Mulish", sans-serif !important;
        font-size: 11px !important;
        font-weight: 300 !important;
        letter-spacing: 0.3px !important;
        text-decoration: underline !important;
    }
    #silure-register-modal .g-recaptcha {
        background-color: transparent !important;
        border: 0 none !important;
        margin: 0 0 16px !important;
    }

    /* ── PRODUCT CARD — image wrap + hover swap ─────────── */
    .silure-card-link {
        display: block;
        text-decoration: none;
        color: inherit;
    }
    .silure-card-img-wrap {
        position: relative;
        overflow: hidden;
        display: block;
        background: #F3F0EB;
    }
    .silure-card-img-wrap .silure-img-main,
    .silure-card-img-wrap .silure-img-hover {
        display: block;
        width: 100%;
        aspect-ratio: 4/5;
        object-fit: cover;
        object-position: center top;
    }
    .silure-card-img-wrap .silure-img-hover {
        position: absolute;
        top: 0;
        left: 0;
        height: 100%;
        opacity: 0;
        transition: opacity 0.4s ease;
    }
    .silure-product-card:hover .silure-img-hover,
    .silure-card-link:hover .silure-img-hover {
        opacity: 1;
    }
    .silure-card-img-wrap .silure-img-main {
        transition: transform 0.5s ease;
    }
    .silure-product-card:hover .silure-img-main {
        transform: scale(1.03);
    }
    .silure-card-info {
        padding: 12px 14px 16px;
        background: #FBF9F6;
    }
    .silure-card-title {
        font-family: "DM Mono", monospace !important;
        font-weight: 300 !important;
        font-size: 12px !important;
        letter-spacing: 0.3px !important;
        color: #050505 !important;
        margin: 0 0 4px !important;
        line-height: 1.4 !important;
    }
    .silure-card-price {
        font-family: "DM Mono", monospace;
        font-size: 12px;
        font-weight: 300;
        letter-spacing: 0.3px;
        color: #7A7672;
    }
    .silure-card-price .woocommerce-Price-amount {
        font-family: "DM Mono", monospace;
        font-weight: 300;
        color: #7A7672;
    }
    .silure-sale-badge,
    .silure-sold-badge {
        position: absolute;
        top: 10px;
        left: 10px;
        z-index: 2;
        font-family: "DM Mono", monospace;
        font-size: 9px;
        font-weight: 300;
        letter-spacing: 2px;
        text-transform: uppercase;
        padding: 3px 8px;
        background: #050505;
        color: #FBF9F6;
    }
    .silure-sale-badge { background: #050505; }
    .silure-sold-badge { background: #7A7672; }

    /* ── NEW IN — edge-to-edge horizontal scroll ─────────── */
    .elementor-element-newin001,
    [data-id="newin001"] {
        padding: 0 !important;
        margin: 0 !important;
    }
    .elementor-element-newin001 .elementor-container,
    [data-id="newin001"] .elementor-container {
        max-width: 100% !important;
        padding: 0 !important;
    }
    .elementor-element-newin001 .elementor-widget-wrap,
    [data-id="newin001"] .elementor-widget-wrap {
        padding: 0 !important;
    }
    .elementor-element-newin001 ul.products,
    [data-id="newin001"] ul.products {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        overflow-y: visible !important;
        grid-template-columns: none !important;
        width: 100% !important;
        margin: 0 !important;
        /* Session 121 — real regression found and reverted: Session 116
           added 80px desktop / 40px <=1024px side padding here to match
           a "You May Also Like" padding standard that Session 119
           explicitly superseded for the Shop grid ("forget all prior
           padding-value discussion entirely... genuinely edge-to-edge
           at any screen width") — but that revert only ever touched
           shop.css's .silure-products-grid. Session 118 already
           reverted THIS element's mobile tiers (768px/480px, below)
           back to edge-to-edge as a real-device call, and explicitly
           flagged the desktop/1024px tiers as left alone on purpose at
           the time — they were never revisited once Session 119
           settled the real intent for New In too. Manish confirmed
           this is a real regression (his own real 0px-left-edge
           screenshot); back to unconditional 0, matching this file's
           own original "edge-to-edge horizontal scroll" design. */
        padding: 0 0 2px !important;
        gap: 0 !important;
        scrollbar-width: none !important;
        -ms-overflow-style: none !important;
        scroll-padding-left: 0 !important;
        box-sizing: border-box !important;
    }
    .elementor-element-newin001 ul.products::-webkit-scrollbar,
    [data-id="newin001"] ul.products::-webkit-scrollbar {
        display: none;
    }
    .elementor-element-newin001 ul.products li.product,
    [data-id="newin001"] ul.products li.product {
        min-width: 280px !important;
        max-width: 280px !important;
        width: 280px !important;
        flex-shrink: 0 !important;
        flex-grow: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        border-right: 0.5px solid #E8E4DF !important;
        border-bottom: none !important;
        float: none !important;
        display: block !important;
    }
    .elementor-element-newin001 ul.products li.product:last-child,
    [data-id="newin001"] ul.products li.product:last-child {
        border-right: none !important;
    }
    /* Hide any WC-injected images not from our template */
    .elementor-element-newin001 .woocommerce-loop-product__link img:not(.silure-img-main):not(.silure-img-hover),
    [data-id="newin001"] .woocommerce-loop-product__link img:not(.silure-img-main):not(.silure-img-hover) {
        display: none !important;
    }

    /* ── NEW IN — card info row: name+price left, + icon right ── */
    .elementor-element-newin001 .silure-card-info {
        display: flex !important;
        align-items: flex-start !important;
        justify-content: space-between !important;
        gap: 8px !important;
        padding: 14px 0 0 !important;
    }
    .elementor-element-newin001 .silure-card-info__text {
        display: flex;
        flex-direction: column;
        gap: 4px;
        flex: 1;
        min-width: 0;
        text-decoration: none !important;
        color: inherit !important;
    }
    .elementor-element-newin001 .silure-card-title,
    .elementor-element-newin001 .silure-card-price,
    .elementor-element-newin001 .price {
        text-align: left !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    .elementor-element-newin001 .silure-card-price {
        display: flex !important;
        align-items: baseline !important;
        gap: 4px !important;
    }
    .elementor-element-newin001 .silure-card-price del .woocommerce-Price-amount {
        font-size: 13px !important;
        color: var(--silure-muted, #7A7672) !important;
    }
    /* ── GLOBAL STRIKETHROUGH PRICE — 13px muted, all pages ── */
    del .woocommerce-Price-amount,
    del bdi {
        font-size: 13px !important;
        color: var(--silure-muted, #7A7672) !important;
    }
    /* Override WC h2 padding — specificity (0,4,2) beats (0,3,4) */
    .elementor-element-newin001 ul.products li.product .silure-card-title {
        padding: 0 !important;
        margin: 0 !important;
    }
    .elementor-element-newin001 .silure-card-actions {
        /* Session 44 — was margin-top:2px, a rough guess that actually
           pushed the "+" button 12.3px below the title text center
           (verified live) instead of fixing it. Title and actions share
           a flex-start top; the title own line-box (11px/1.4 = 15.4px)
           is much shorter than the button fixed 36px box, so the
           button center sits 10.3px below the title center by default:
           (36/2) - (11*1.4/2) = 18 - 7.7 = 10.3px. Negative margin-top
           pulls the button up by that exact amount so its center lands
           on the title first-line center. Same value used on the main
           Shop/Category grid below — same font-size/line-height and
           button size in both contexts. */
        flex-shrink: 0 !important;
        display: flex !important;
        align-items: center !important;
        margin-top: -10.3px !important;
        padding: 0 !important;
    }

    /* ── NEW IN — + icon (replaces basket SVG) ─────────────── */
    .elementor-element-newin001 .silure-card-actions .add_to_cart_button,
    [data-id="newin001"] .silure-card-actions .add_to_cart_button {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 36px !important;
        height: 36px !important;
        border-radius: 50% !important;
        background: transparent !important;
        border: none !important;
        cursor: pointer !important;
        transition: background 0.2s ease !important;
        padding: 0 !important;
        text-decoration: none !important;
    }
    .elementor-element-newin001 .silure-card-actions .add_to_cart_button:hover,
    [data-id="newin001"] .silure-card-actions .add_to_cart_button:hover {
        background: var(--silure-surface, #F3F0EB) !important;
        border-color: transparent !important;
    }
    .elementor-element-newin001 .silure-card-actions .add_to_cart_button svg,
    .elementor-element-newin001 .silure-card-actions .add_to_cart_button img,
    [data-id="newin001"] .silure-card-actions .add_to_cart_button svg,
    [data-id="newin001"] .silure-card-actions .add_to_cart_button img {
        display: none !important;
    }
    .elementor-element-newin001 .silure-card-actions .add_to_cart_button::before,
    [data-id="newin001"] .silure-card-actions .add_to_cart_button::before {
        content: "+";
        font-family: "DM Mono", monospace;
        font-weight: 300;
        font-size: 20px;
        line-height: 1;
        color: #050505;
        display: block;
    }
    /* Hide WC "View Cart" link injected after AJAX add */
    .elementor-element-newin001 a.added_to_cart.wc-forward {
        display: none !important;
    }
    /* In-cart state: hide + sign, show cart SVG */
    .elementor-element-newin001 .silure-card-actions .add_to_cart_button.silure-in-cart::before,
    .elementor-element-newin001 .silure-card-actions .add_to_cart_button.added::before,
    [data-id="newin001"] .silure-card-actions .add_to_cart_button.silure-in-cart::before,
    [data-id="newin001"] .silure-card-actions .add_to_cart_button.added::before {
        content: "" !important;
    }
    .elementor-element-newin001 .silure-card-actions .add_to_cart_button.silure-in-cart svg,
    .elementor-element-newin001 .silure-card-actions .add_to_cart_button.added svg,
    [data-id="newin001"] .silure-card-actions .add_to_cart_button.silure-in-cart svg,
    [data-id="newin001"] .silure-card-actions .add_to_cart_button.added svg {
        display: block !important;
        /* Same fix as shop.css's identical .silure-products-grid instance:
           hello-elementor reset.css's bare `a { color: #c36 }` (#cc3366) was
           never overridden for this anchor, so the SVG's stroke="currentColor"
           inherited pink. Set explicitly here, same scope/pattern. */
        color: #050505 !important;
    }
    .elementor-element-newin001 ul.products li.product .button,
    [data-id="newin001"] ul.products li.product .button {
        display: flex !important;
    }

    /* ── NEW IN — carousel controls ────────────────────────── */
    .silure-newin-carousel-wrapper {
        position: relative;
        overflow: visible;
    }
    .silure-newin-controls {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 10px;
        margin-top: 24px;
        padding: 0 4px;
    }
    .silure-newin-prev,
    .silure-newin-next {
        background: none;
        border: none;
        font-size: 24px;
        cursor: pointer;
        color: #444444;
        padding: 0;
        line-height: 1;
        flex-shrink: 0;
        font-family: inherit;
        opacity: 0.7;
        transition: opacity 0.2s ease;
    }
    .silure-newin-prev:hover,
    .silure-newin-next:hover { opacity: 1; }
    .silure-newin-progress {
        flex: 0 0 20%;
        max-width: 280px;
        height: 1px;
        background: #E8E4DF;
        position: relative;
        top: 2px;
    }
    .silure-newin-progress-bar {
        position: absolute;
        left: 0;
        top: 0;
        height: 1px;
        width: 5%;
        background: #050505;
        transition: width 0.2s ease;
    }

    /* Session 121 — the 1024px tier's own 40px override (Session 116)
       removed for the same reason as the base rule's revert above; the
       768px/480px overrides just below (Session 118) already said 0,
       so they're now redundant with the base rule too, but left as
       explicit restatements rather than pruned — matches this file's
       own established convention of each breakpoint re-declaring its
       value rather than relying on fallthrough. */
    @media(max-width: 768px) {
        .elementor-element-newin001 ul.products,
        [data-id="newin001"] ul.products {
            padding-left: 0 !important;
            padding-right: 0 !important;
        }
    }

    @media(max-width: 480px) {
        .elementor-element-newin001 ul.products,
        [data-id="newin001"] ul.products {
            padding-left: 0 !important;
            padding-right: 0 !important;
        }
    }

    /* ── CART DRAWER ──────────────────────────────── */
    .silure-cart-drawer {
        position: fixed;
        inset: 0;
        z-index: 3000;
        visibility: hidden;
        pointer-events: none;
    }
    .silure-cart-drawer.is-open {
        visibility: visible;
        pointer-events: all;
    }
    .silure-cart-overlay {
        position: fixed;
        inset: 0;
        background: rgba(0, 0, 0, 0.45);
        z-index: 2998;
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.35s ease;
    }
    .silure-cart-overlay.is-open {
        opacity: 1;
        pointer-events: all;
    }
    .silure-cart-panel {
        position: absolute;
        top: 0;
        right: 0;
        width: 40% !important;
        max-width: 560px !important;
        height: 100%;
        display: flex !important;
        flex-direction: column !important;
        grid-template-columns: none !important;
        background: #FFFFFF;
        transform: translateX(100%);
        transition: transform 0.4s cubic-bezier(0.4,0,0.2,1);
        overflow: hidden !important;
    }
    .silure-cart-drawer.is-open .silure-cart-panel {
        transform: translateX(0);
    }
    /* Session 148 — real title row added. Checked live via
       getComputedStyle() first, per instruction, not assumed: Search
       and Wishlist's own real titles agree exactly (Mulish, sans-serif
       fallback / 700 / 20px / 0.5px / uppercase / #050505 / margin
       0 0 24px) — that's this drawer's real intent, confirmed by two
       independent sources agreeing. Account's title is the ODD ONE
       OUT, a real, separate, pre-existing bug: computes "Mulish, serif"
       (wrong fallback) and -0.2px letter-spacing (not 0.5px), because
       its own rule (unlike Search/Wishlist's) never got the shared,
       !important-protected "SILURE TYPOGRAPHY SYSTEM" treatment and
       loses to some other, more dominant heading rule (Elementor's own
       default h2 typography, most likely) for those two properties
       specifically. Matched CART's title to Search/Wishlist's real,
       correct, agreeing values — not Account's own accidental
       deviation — disclosed, not touched, out of this round's scope.
       Kept to this drawer's own established 24px horizontal rhythm
       (.silure-cart-tabs/.silure-cart-shipping-bar both already use
       24px, not the 28px Search/Wishlist happen to use) rather than
       importing a second padding scale into the same drawer. This
       round's own border-bottom call is superseded by Session 151
       below — see that comment for the real, current state. */
    /* Session 150 — real, confirmed gap correction. Checked live first,
       per instruction: the title-to-next-row gap was measured directly
       (title's own bottom edge to the next row's own container top
       edge, not just each side's declared padding number, since those
       don't actually agree between Search's 16px search-bar padding and
       Wishlist's 32px wl-guest padding) — Search and Wishlist land on
       the identical real value, 44.5px, confirmed via getBoundingClientRect().
       Cart's own gap measured 20px (this row's own padding-bottom alone,
       since .silure-cart-tabs' own padding does not move its own outer
       box edge — padding on the row AFTER the gap doesn't affect it,
       only padding on THIS row does). padding-bottom raised from 20px
       to 44px (0.5px short of the exact target, imperceptible) to
       match — re-verified live at exactly the same real gap. Also:
       this round found and removed a real, separate class-name
       collision (cart-checkout.css's own orphaned, pre-Session-148
       ".silure-cart-header"/".silure-cart-title" rules were still
       winning for this header's own padding-top and adding back a real
       border Session 148 explicitly removed) — see cart-checkout.css's
       own comment. */
    /* Session 151 — real correction, Manish's own catch: removing
       cart-checkout.css's orphaned collision last round (real, correct
       — that rule's 24px padding-top and 1px border were never
       intended) had a real side effect nobody asked for: it also took
       away the border-bottom that collision happened to be providing,
       which Manish had actually been seeing on the live site. Restored
       properly this time — not by reviving the removed orphaned rule,
       but by adding a genuine border-bottom here, to the correct file,
       at Search/Wishlist's own real value (their two header rules,
       `.silure-search-head`/`.silure-wl-header`, both declare
       `border-bottom: 0.5px solid #E8E4DF` — confirmed identical
       between them), consistent with this whole area's own
       "match Account/Search/Wishlist" standard. The Session 150 gap
       fix (`padding-bottom: 44px`, matching the two drawers' own real
       44.5px title-to-next-row gap) is untouched by this — border and
       padding are independent properties. */
    .silure-cart-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 28px 24px 44px;
        border-bottom: 0.5px solid #E8E4DF;
        flex-shrink: 0;
    }
    .silure-cart-title {
        font-family: "Mulish", sans-serif;
        font-weight: 700;
        font-size: 20px;
        letter-spacing: 0.5px;
        text-transform: uppercase;
        color: #050505;
        margin: 0;
    }
    .silure-cart-close {
        position: static;
        background: none;
        border: none;
        font-size: 18px;
        cursor: pointer;
        color: #050505;
        line-height: 1;
        padding: 4px;
    }
    .silure-cart-left {
        background: #FFFFFF;
        display: flex;
        flex-direction: column;
        flex: 1 !important;
        min-height: 0 !important;
        overflow-y: auto !important;
        overscroll-behavior: contain !important;
        border-right: none !important;
        border-bottom: 0.5px solid #E8E4DF !important;
    }
    /* Session 143 — real, confirmed remaining cause of "underline under
       BAG still visible after hard refresh": this rule's own
       `border-bottom: 1px solid #E8E4DF`, a FULL-WIDTH divider under
       BOTH tabs (BAG and WISHLIST both sit inside this wrapper — see
       silure-core.php's cart drawer markup), not the per-tab active
       indicator Session 142 already removed below. Deliberately left
       alone last round as "a separate, full-width tabs-row divider...
       out of scope" — but Manish's own description ("a long horizontal
       line") matches THIS full-row line far better than the short,
       per-tab underline that was actually fixed, and direct evidence
       this round (the live, currently-enqueued CSS URL, confirmed fresh
       from origin via a real HCDN cache MISS, not a stale HIT) proves
       the Session 142 per-tab fix genuinely is live — so this is a
       real, different, second line, not a caching illusion of the
       first. Removed for the same reason as the shipping-bar divider
       below: no unnecessary lines, spacing does the separating. */
    .silure-cart-tabs {
        display: flex;
        gap: 0;
        padding: 0 24px;
        flex-shrink: 0;
    }
    /* Session 142 — real bug found and fixed two rounds back to here:
       .silure-ctab.active's own `border-bottom-color: #050505` (below)
       never actually rendered dark — a real, separate, correctly-scoped
       sitewide rule (silure-core.php's own focus-outline cleanup,
       Section 7 "Active/selected states in drawers") sets
       `border-color: inherit !important` on this exact element to fix a
       genuine, different problem (a border flash on real click/focus for
       this tab and other, unrelated close buttons that share that rule)
       — inheriting from .silure-cart-tabs' own 1px #E8E4DF row divider
       (itself removed above, Session 143), producing a real but
       washed-out, unintended-looking line instead of the dark one this
       rule was declaring. Per explicit instruction this round, the fix
       is not to correct that color — it is to stop showing an underline
       here at all, so `border-bottom` is removed from this component
       entirely instead of trying to win a fight against a sitewide
       !important rule that exists for a real, different, unrelated
       reason and is deliberately left untouched. */
    .silure-ctab {
        position: relative;
        background: none;
        border: none;
        padding: 16px 0;
        margin-right: 28px;
        font-family: "DM Mono", monospace;
        font-size: 11px;
        font-weight: 300;
        letter-spacing: 2px;
        text-transform: uppercase;
        color: #7A7672;
        cursor: pointer;
        text-decoration: none;
        transition: color 0.2s;
    }
    .silure-ctab.active, .silure-ctab:hover {
        color: #050505;
    }
    /* Session 148 — active-tab underline, matching the shop page's own
       .silure-cat-tab.is-active pattern (border-bottom-color, sized to
       the tab's own text width since neither has horizontal padding).
       A real ::after bar with background-color instead of an actual
       border, deliberately — silure-core.php's own sitewide
       `.silure-ctab.active { border-color: inherit !important }` rule
       (Section 7, kept untouched, same reasoning as Session 142/143)
       would win over any border-bottom-color declared here; a
       background-color on a pseudo-element sits entirely outside that
       rule's reach, so it always renders. left:0/right:0 with no
       horizontal padding on .silure-ctab itself means this spans
       exactly the tab's own text width, not a full-row line. */
    .silure-ctab.active::after {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        bottom: 0;
        height: 2px;
        background: #050505;
    }
    /* Session 142 — the border-bottom here was real and genuinely
       working as designed (confirmed two rounds back, not a bug), but
       per explicit instruction this round it is removed as a preference
       — matching the same no-divider-lines standard already applied to
       the Filters drawer's own sections (spacing alone separates
       content, never a border). The row's own existing bottom padding
       already provides real separation from the content below it. */
    /* Session 148 — progress bar/fill replaced with a simple badge, per
       explicit instruction: no more track/fill visual anywhere, just
       the badge's own state (default vs. unlocked) changing. */
    .silure-cart-shipping-bar {
        padding: 10px 24px 8px;
        flex-shrink: 0;
        display: flex;
        align-items: center;
        gap: 8px;
    }
    .silure-shipping-label {
        font-family: "DM Mono", monospace;
        font-size: 10px;
        font-weight: 300;
        letter-spacing: 1.5px;
        text-transform: uppercase;
        color: #7A7672;
    }
    .silure-shipping-badge {
        font-family: "DM Mono", monospace;
        font-size: 10px;
        font-weight: 400;
        letter-spacing: 0.5px;
        text-transform: uppercase;
        color: #050505;
        background: #F3F0EB;
        padding: 3px 8px;
        border-radius: 999px;
        white-space: nowrap;
    }
    .silure-shipping-badge--unlocked {
        color: #FFFFFF;
        background: #3A6B4A;
    }
    .silure-cart-items {
        flex: 1;
        overflow-y: auto;
        padding: 8px 0;
    }
    /* Session 151 — real request: a divider BETWEEN each cart item,
       short and centered, not the full-width border-bottom this rule
       used to carry (which, with no exclusion, also put a trailing
       line after the LAST item — never actually asked for). Same
       technique as the Order Summary's own short, centered mark
       (Session 150): a ::after pseudo-element sized to itself rather
       than a border spanning the whole row, applied only :not(:last-
       child) so it renders strictly between pairs of adjacent items,
       never after the final one. */
    .silure-cart-item {
        display: grid;
        grid-template-columns: 100px 1fr;
        gap: 16px;
        padding: 20px 24px;
        position: relative;
    }
    .silure-cart-item:not(:last-child)::after {
        content: "";
        position: absolute;
        bottom: 0;
        left: 50%;
        transform: translateX(-50%);
        width: 48px;
        height: 0.5px;
        background: #E8E4DF;
    }
    .silure-ci-image img {
        width: 100px;
        height: 120px;
        object-fit: cover;
        display: block;
        background: #F3F0EB;
    }
    .silure-ci-name {
        font-family: "DM Mono", monospace;
        font-size: 12px;
        font-weight: 300;
        letter-spacing: 0.3px;
        color: #050505;
        text-transform: uppercase;
        margin: 0 0 4px;
    }
    .silure-ci-price {
        font-family: "DM Mono", monospace;
        font-size: 13px;
        font-weight: 300;
        color: #050505;
        margin: 0 0 4px;
    }
    .silure-ci-meta, .silure-ci-stock {
        font-family: "DM Mono", monospace;
        font-size: 11px;
        font-weight: 300;
        color: #7A7672;
        margin: 0 0 4px;
        letter-spacing: 0.3px;
    }
    .silure-ci-qty {
        display: flex;
        align-items: center;
        gap: 12px;
        margin: 10px 0;
    }
    /* Session 148 — the Session 58 ring removed, per explicit
       instruction ("borderless look"). Checked live first: this
       drawer's real +/- buttons were ALSO getting a second, different
       box-shadow ring from cart-checkout.css's own unscoped
       `.silure-qty-btn:not(:first-child)` rule (a real, separate file,
       confirmed via getComputedStyle() — the minus button showed this
       file's own full ring, the plus button showed the OTHER file's
       higher-specificity single-edge ring instead) — that rule is
       real and still wanted, but only for the standalone cart/
       checkout PAGE's own .silure-bag-qty group control, not this
       drawer; scoped there instead of removed, see cart-checkout.css. */
    .silure-qty-btn {
        background: none;
        border: none;
        font-size: 18px;
        cursor: pointer;
        color: #050505;
        padding: 0;
        line-height: 1;
        width: 20px;
        text-align: center;
    }
    .silure-qty-val {
        font-family: "DM Mono", monospace;
        font-size: 13px;
        font-weight: 300;
        color: #050505;
        min-width: 20px;
        text-align: center;
    }
    .silure-qty-btn.silure-qty-capped,
    .silure-qty-btn:disabled {
        opacity: 0.3;
        cursor: not-allowed;
        pointer-events: none;
    }
    .silure-ci-cap-note {
        font-family: "DM Mono", monospace;
        font-size: 10px;
        font-weight: 300;
        letter-spacing: 0.5px;
        color: #7A7672;
        margin: 2px 0 0;
    }
    .silure-ci-price-row {
        display: flex;
        align-items: baseline;
        gap: 20px;
        margin-bottom: 4px;
    }
    .silure-ci-price-row .silure-ci-price { margin-bottom: 0 !important; }
    .silure-ci-price-row .silure-ci-remove { flex-shrink: 0; }
    .silure-ci-actions { display: flex; gap: 16px; }
    .silure-ci-remove {
        font-family: "DM Mono", monospace;
        font-size: 10px;
        font-weight: 300;
        letter-spacing: 2px;
        color: #7A7672;
        text-decoration: underline;
        cursor: pointer;
        background: none;
        border: none;
        padding: 0;
    }
    .silure-ci-remove:hover { color: #050505; }
    .silure-cart-empty { padding: 60px 24px; text-align: center; }
    .silure-cart-empty p {
        font-family: "DM Mono", monospace;
        font-size: 13px;
        color: #7A7672;
        margin-bottom: 24px;
    }
    .silure-cart-shop-link {
        font-family: "DM Mono", monospace;
        font-size: 10px;
        letter-spacing: 2px;
        text-transform: uppercase;
        color: #050505;
        border-bottom: 1px solid #050505;
        padding-bottom: 2px;
        text-decoration: none;
    }
    /* Session 144 — real, confirmed via a live screenshot of a genuinely
       populated cart: this rule's own `background` was a bespoke,
       nowhere-else-used #F8F6F3 (not a design token, not this project's
       own --silure-bg cream or --silure-surface value either) sitting
       directly below .silure-cart-panel's real base, #FFFFFF — visible
       as two distinct background colors in one drawer, items list pure
       white above, Order Summary visibly warmer below. Every OTHER real
       drawer on this site (.silure-acct-drawer, .silure-search-panel,
       .silure-wishlist-panel) uses one single #FFFFFF throughout, no
       split. Matched to that same sitewide standard rather than
       inventing a justification for the second color — the border-top
       directly below already provides the section's own visual
       separation, unaffected by this change. */
    /* Session 148 — the ONE Order Summary divider that stays, per
       explicit instruction: this line, separating the section from the
       cart items above it. Every OTHER line inside this section
       (below) is removed. */
    /* Session 150 — the one remaining Order Summary divider, refined
       per explicit instruction: a full-width border-top read as too
       heavy/structural. Replaced with a short, centered mark instead —
       same spirit as the shop page's own active-tab underline (a mark
       sized to itself, not a full-bleed line) rather than trying to
       shrink a border property, which can't be centered independently
       of the element's own width. A ::before pseudo-element with a
       fixed width and auto side-margins (via absolute positioning +
       transform, since this element is a flex child, not a block) does
       what border-top structurally cannot. */
    .silure-cart-right {
        background: #FFFFFF;
        display: flex;
        flex-direction: column;
        flex-shrink: 0 !important;
        max-height: none !important;
        overflow-y: visible !important;
        position: relative;
    }
    .silure-cart-right::before {
        content: "";
        position: absolute;
        top: 0;
        left: 50%;
        transform: translateX(-50%);
        width: 48px;
        height: 0.5px;
        background: #E8E4DF;
    }
    .silure-cart-summary-wrap {
        padding: 48px 28px 28px;
        display: flex;
        flex-direction: column;
        flex: 1;
    }
    .silure-cart-summary-title {
        font-family: "Mulish", sans-serif;
        font-weight: 700;
        font-size: 16px;
        letter-spacing: 0.5px;
        text-transform: uppercase;
        color: #050505;
        margin: 0 0 28px;
    }
    /* Session 148 — border-top removed (was a divider between the
       title and the Subtotal row); margin-bottom kept, real spacing
       still separates the rows from the Checkout button below. */
    .silure-cart-summary-rows {
        margin-bottom: 24px;
    }
    /* Session 148 — border-bottom removed (was a divider between each
       row: Subtotal/Taxes/Shipping/Total); the row's own padding is
       what separates them now, spacing only, matching every other
       no-unnecessary-lines fix already made in this drawer this
       session. */
    .silure-cart-row {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 12px 0;
        font-family: "DM Mono", monospace;
        font-size: 12px;
        font-weight: 300;
        letter-spacing: 0.3px;
        color: #444444;
    }
    .silure-cart-total-row {
        font-family: "Mulish", sans-serif !important;
        font-weight: 700 !important;
        font-size: 13px !important;
        color: #050505 !important;
        padding-top: 16px !important;
    }
    .silure-cart-upsells { display: none !important; }
    .silure-upsell-title {
        font-family: "DM Mono", monospace;
        font-size: 10px;
        font-weight: 300;
        letter-spacing: 2px;
        text-transform: uppercase;
        color: #7A7672;
        margin: 0 0 16px;
        padding-bottom: 10px;
        border-bottom: 1px solid #E8E4DF;
    }
    .silure-upsell-item {
        display: grid;
        grid-template-columns: 72px 1fr;
        gap: 12px;
        margin-bottom: 16px;
    }
    .silure-upsell-img img {
        width: 72px;
        height: 88px;
        object-fit: cover;
        display: block;
        background: #ECECEC;
    }
    .silure-upsell-name {
        font-family: "DM Mono", monospace;
        font-size: 11px;
        font-weight: 300;
        letter-spacing: 0.3px;
        color: #050505;
        margin: 0 0 4px;
        text-transform: uppercase;
    }
    .silure-upsell-price {
        font-family: "DM Mono", monospace;
        font-size: 12px;
        font-weight: 300;
        color: #050505;
        margin: 0 0 8px;
    }
    .silure-upsell-add {
        font-family: "DM Mono", monospace;
        font-size: 10px;
        font-weight: 300;
        letter-spacing: 2px;
        color: #7A7672;
        text-decoration: none;
        border-bottom: 1px solid #E8E4DF;
        padding-bottom: 2px;
        transition: color 0.2s, border-color 0.2s;
    }
    .silure-upsell-add:hover { color: #050505; border-color: #050505; }
    .silure-wishlist-add-to-cart {
        display: inline-block;
        margin-top: 8px;
        font-family: "DM Mono", monospace;
        font-size: 10px;
        font-weight: 300;
        letter-spacing: 2px;
        text-transform: uppercase;
        color: #050505;
        text-decoration: underline;
        text-underline-offset: 3px;
        cursor: pointer;
    }
    .silure-cart-checkout-btn {
        display: block;
        width: 100%;
        text-align: center;
        padding: 16px;
        font-family: "DM Mono", monospace;
        font-size: 13px;
        font-weight: 300;
        letter-spacing: 0.5px;
        text-transform: uppercase;
        text-decoration: none;
        transition: background 0.2s;
        margin-top: auto;
    }
    /* color/background/border/radius now come from the single sitewide
       button hover standard block at the end of silure_kill_pink_late(). */
    @media(max-width: 768px) {
        .silure-acct-drawer,
        .silure-search-panel,
        .silure-wishlist-panel,
        .silure-cart-panel {
            width: 100% !important;
            max-width: 100% !important;
        }
        .silure-cart-right { max-height: none !important; }
        .silure-cart-summary-wrap { padding: 24px 20px; }
    }

    /* ── EMPTY CART STATE ──────────────────────────────── */
    .silure-cart-empty-state .silure-cart-panel {
        grid-template-columns: 1fr !important;
        width: 40% !important;
        max-width: 560px !important;
    }
    .silure-cart-empty-content {
        padding: 32px 28px 40px;
        overflow-y: auto;
        height: 100%;
    }
    .silure-cart-empty-heading {
        font-family: "Mulish", sans-serif;
        font-weight: 700;
        font-size: 20px;
        letter-spacing: 0.5px;
        text-transform: uppercase;
        color: #050505;
        margin: 0 0 24px;
    }
    .silure-cart-empty-msg {
        font-family: "DM Mono", monospace;
        font-size: 13px;
        font-weight: 300;
        letter-spacing: 0.3px;
        color: #444444;
        margin-bottom: 24px;
        line-height: 1.6;
    }
    .silure-acct-link {
        background: none;
        border: none;
        padding: 0;
        font-family: "DM Mono", monospace;
        font-size: 13px;
        font-weight: 300;
        color: #050505;
        text-decoration: underline;
        cursor: pointer;
    }
    .silure-cart-shop-all {
        display: inline-block;
        padding: 12px 28px;
        font-family: "DM Mono", monospace;
        font-size: 13px;
        font-weight: 300;
        letter-spacing: 0.5px;
        text-transform: uppercase;
        text-decoration: none;
        margin-bottom: 28px;
        transition: background 0.2s, color 0.2s;
    }
    /* color/background/border/radius now come from the single sitewide
       button hover standard block at the end of silure_kill_pink_late().
       NOTE: newly found this pass (empty-cart-drawer CTA) — was not in
       the originally reported inventory. */
    .silure-cart-member-banner {
        background: #050505;
        color: #FBF9F6;
        padding: 24px;
        margin-bottom: 28px;
        text-align: center;
    }
    .silure-cmb-brand {
        font-family: "Mulish", sans-serif;
        font-weight: 700;
        font-size: 18px;
        letter-spacing: 0.5px;
        text-transform: uppercase;
        margin-bottom: 8px;
    }
    .silure-cmb-text {
        font-family: "DM Mono", monospace;
        font-size: 11px;
        font-weight: 300;
        letter-spacing: 0.3px;
        line-height: 1.6;
        color: rgba(251,249,246,0.8);
    }
    .silure-cat-heading {
        font-family: "Mulish", sans-serif;
        font-weight: 700;
        font-size: 13px;
        letter-spacing: 0.3px;
        text-transform: uppercase;
        color: #050505;
        margin: 0 0 16px;
    }
    .silure-cat-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 8px;
        margin-bottom: 28px;
    }
    .silure-cat-item {
        display: flex;
        align-items: center;
        gap: 10px;
        text-decoration: none;
        padding: 4px 0;
    }
    .silure-cat-item img { width: 48px; height: 48px; object-fit: cover; }
    .silure-cat-item span {
        font-family: "DM Mono", monospace;
        font-size: 11px;
        font-weight: 300;
        letter-spacing: 2px;
        text-transform: uppercase;
        color: #050505;
    }
    .silure-trending-label {
        font-family: "DM Mono", monospace;
        font-size: 11px;
        font-weight: 300;
        letter-spacing: 0.3px;
        color: #7A7672;
        margin-bottom: 12px;
        padding-bottom: 8px;
        border-bottom: 0.5px solid #E8E4DF;
    }
    .silure-trending-item {
        display: grid;
        grid-template-columns: 60px 1fr;
        gap: 12px;
        text-decoration: none;
        padding: 10px 0;
        border-bottom: 0.5px solid #E8E4DF;
    }
    .silure-ti-img img {
        width: 60px;
        height: 72px;
        object-fit: cover;
        display: block;
    }
    .silure-ti-name {
        font-family: "DM Mono", monospace;
        font-size: 11px;
        font-weight: 300;
        letter-spacing: 0.3px;
        color: #050505;
        margin: 0 0 4px;
        text-transform: uppercase;
    }
    .silure-ti-price {
        font-family: "DM Mono", monospace;
        font-size: 12px;
        color: #444444;
        margin: 0;
    }
    @media(max-width: 768px) {
        .silure-cart-empty-state .silure-cart-panel {
            width: 100% !important;
            max-width: 100% !important;
        }
    }

    /* ── SEARCH DRAWER ───────────────────────────────── */
    .silure-search-drawer {
        position: fixed;
        inset: 0;
        z-index: 2500;
        visibility: hidden;
        pointer-events: none;
    }
    .silure-search-drawer.is-open {
        visibility: visible;
        pointer-events: all;
    }
    .silure-search-overlay-bg {
        position: fixed;
        inset: 0;
        background: rgba(0, 0, 0, 0.45);
        z-index: 2998;
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.35s ease;
    }
    .silure-search-overlay-bg.is-open {
        opacity: 1;
        pointer-events: all;
    }
    .silure-search-drawer.is-open .silure-search-overlay-bg {
        opacity: 1;
    }
    .silure-search-panel {
        position: absolute;
        top: 0;
        right: 0;
        width: 40%;
        height: 100%;
        background: #FFFFFF;
        transform: none;
        transition: none;
        display: flex;
        flex-direction: column;
        overflow: hidden;
    }
    .silure-search-head {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 32px 28px 20px;
        border-bottom: 0.5px solid #E8E4DF;
        flex-shrink: 0;
    }
    .silure-search-title {
        font-family: "Mulish", sans-serif;
        font-weight: 700;
        font-size: 20px;
        letter-spacing: 0.5px;
        text-transform: uppercase;
        color: #050505;
        margin: 0;
    }
    .silure-search-close-btn {
        background: none;
        border: none;
        font-size: 18px;
        cursor: pointer;
        color: #050505;
        padding: 4px;
        line-height: 1;
    }
    .silure-search-bar {
        display: flex;
        align-items: center;
        gap: 12px;
        padding: 16px 28px;
        border-bottom: 1px solid #050505;
        flex-shrink: 0;
    }
    .silure-search-bar svg {
        flex-shrink: 0;
        color: #7A7672;
    }
    #silure-search-input {
        flex: 1;
        border: none !important;
        background: transparent !important;
        font-family: "DM Mono", monospace !important;
        font-size: 15px !important;
        font-weight: 300 !important;
        letter-spacing: 0.3px !important;
        color: #050505 !important;
        outline: none !important;
        padding: 8px 0 !important;
        box-shadow: none !important;
    }
    #silure-search-input::placeholder {
        color: #C8C4BF;
        font-size: 13px;
    }
    .silure-search-results {
        flex: 1;
        overflow-y: auto;
        overscroll-behavior: contain;
        padding: 24px 28px 40px;
        -webkit-overflow-scrolling: touch;
    }
    .silure-search-hint {
        font-family: "DM Mono", monospace;
        font-size: 12px;
        font-weight: 300;
        letter-spacing: 0.3px;
        color: #7A7672;
    }
    .silure-search-section-label {
        font-family: "Mulish", sans-serif;
        font-weight: 700;
        font-size: 9px;
        letter-spacing: 2px;
        text-transform: uppercase;
        color: #7A7672;
        margin: 0 0 16px;
        padding-bottom: 8px;
        border-bottom: 0.5px solid #E8E4DF;
    }
    .silure-search-products-grid {
        display: flex !important;
        flex-direction: column !important;
        gap: 0 !important;
        margin-bottom: 24px;
    }
    .silure-search-product {
        display: grid !important;
        grid-template-columns: 64px 1fr !important;
        gap: 14px !important;
        padding: 14px 0 !important;
        border-bottom: 0.5px solid #E8E4DF !important;
        text-decoration: none;
        align-items: start;
        transition: opacity 0.2s;
    }
    .silure-search-product:hover { opacity: 0.75; }
    .silure-search-product img {
        width: 64px !important;
        height: 80px !important;
        object-fit: cover !important;
        background: #F3F0EB;
        display: block;
    }
    .silure-sp-info {
        display: flex;
        flex-direction: column;
        gap: 4px;
        justify-content: center;
        min-width: 0;
    }
    .silure-sp-cat {
        font-family: "DM Mono", monospace;
        font-size: 9px;
        letter-spacing: 2px;
        text-transform: uppercase;
        color: #7A7672;
        margin: 0 0 3px;
    }
    .silure-sp-name {
        font-family: "DM Mono", monospace;
        font-size: 12px;
        font-weight: 300;
        letter-spacing: 0.3px;
        color: #050505;
        text-transform: uppercase;
        margin: 0 0 4px;
    }
    .silure-sp-price {
        font-family: "DM Mono", monospace;
        font-size: 12px;
        font-weight: 300;
        color: #050505;
        margin: 0;
        display: flex !important;
        align-items: baseline !important;
        gap: 6px !important;
        flex-wrap: wrap !important;
    }
    .silure-sp-price del,
    .silure-sp-price ins {
        display: inline !important;
        font-size: 12px !important;
        font-weight: 300 !important;
        font-style: normal !important;
        text-decoration: none !important;
    }
    .silure-sp-price del { color: var(--silure-muted, #7A7672) !important; text-decoration: line-through !important; }
    .silure-sp-price ins { color: #050505 !important; }
    .silure-sp-price ins .woocommerce-Price-amount,
    .silure-sp-price ins bdi {
        font-size: 13px !important;
        color: #050505 !important;
    }
    .silure-search-pills {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        margin-bottom: 24px;
    }
    .silure-search-pill {
        display: inline-block;
        padding: 6px 14px;
        border: 0.5px solid #E8E4DF;
        font-family: "DM Mono", monospace;
        font-size: 11px;
        font-weight: 300;
        letter-spacing: 0.3px;
        color: #444444;
        text-decoration: none;
        transition: border-color 0.2s, color 0.2s;
    }
    .silure-search-pill:hover {
        border-color: #050505;
        color: #050505;
    }
    .silure-search-all-link {
        display: inline-block;
        font-family: "DM Mono", monospace;
        font-size: 11px;
        font-weight: 300;
        letter-spacing: 2px;
        text-transform: uppercase;
        color: #050505;
        text-decoration: underline;
        text-underline-offset: 3px;
    }
    .silure-search-no-results {
        font-family: "DM Mono", monospace;
        font-size: 13px;
        font-weight: 300;
        color: #7A7672;
        text-align: center;
        padding: 40px 0;
    }

    /* ── WISHLIST DRAWER ─────────────────────────────── */
    .silure-wishlist-drawer {
        position: fixed;
        inset: 0;
        z-index: 3000;
        visibility: hidden;
        pointer-events: none;
    }
    .silure-wishlist-drawer.is-open {
        visibility: visible;
        pointer-events: all;
    }
    .silure-wishlist-overlay {
        position: fixed;
        inset: 0;
        background: rgba(0, 0, 0, 0.45);
        z-index: 2998;
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.35s ease;
    }
    .silure-wishlist-overlay.is-open {
        opacity: 1;
        pointer-events: all;
    }
    .silure-wishlist-drawer.is-open .silure-wishlist-overlay {
        opacity: 1;
    }
    .silure-wishlist-panel {
        position: absolute;
        top: 0;
        right: 0;
        width: 40% !important;
        max-width: 600px !important;
        height: 100%;
        background: #FFFFFF;
        transform: none;
        transition: none;
        overflow-y: auto;
        display: flex;
        flex-direction: column;
    }
    .silure-wishlist-close {
        position: absolute;
        top: 20px;
        right: 24px;
        background: none;
        border: none;
        font-size: 18px;
        cursor: pointer;
        color: #050505;
        z-index: 1;
        line-height: 1;
        padding: 4px;
    }
    .silure-wl-header {
        padding: 32px 28px 20px;
        border-bottom: 0.5px solid #E8E4DF;
    }
    .silure-wl-title {
        font-family: "Mulish", sans-serif;
        font-weight: 700;
        font-size: 20px;
        letter-spacing: 0.5px;
        text-transform: uppercase;
        color: #050505;
        margin: 0;
    }
    .silure-wl-guest {
        padding: 32px 28px;
        flex: 1;
    }
    .silure-wl-guest-msg {
        font-family: "DM Mono", monospace;
        font-size: 13px;
        font-weight: 300;
        letter-spacing: 0.3px;
        color: #444444;
        line-height: 1.7;
        margin-bottom: 20px;
    }
    /* !important on the font properties -- real <button> elements
       (wishlist drawer guest state), same reset.css tie pattern. */
    .silure-wl-signin-btn,
    .silure-wl-join-btn {
        display: block;
        width: 100%;
        padding: 14px;
        font-family: "DM Mono", monospace !important;
        font-size: 13px !important;
        font-weight: 300 !important;
        letter-spacing: 0.5px !important;
        text-transform: uppercase !important;
        cursor: pointer;
        transition: background 0.2s;
        margin-bottom: 12px;
    }
    .silure-wl-signin-btn {
        padding: 16px;
    }
    /* .silure-wl-join-btn: color/background/border/radius (base + hover)
       now come from the single sitewide button hover standard block at
       the end of silure_kill_pink_late(). */
    .silure-wl-benefits {
        margin-top: 28px;
        padding-top: 28px;
        border-top: 0.5px solid #E8E4DF;
    }
    .silure-wl-benefits-title {
        font-family: "Mulish", sans-serif;
        font-weight: 700;
        font-size: 12px;
        letter-spacing: 0.5px;
        text-transform: uppercase;
        color: #050505;
        margin: 0 0 16px;
    }
    .silure-wl-benefits-list {
        list-style: none;
        margin: 0 0 24px;
        padding: 0;
    }
    .silure-wl-benefits-list li {
        font-family: "DM Mono", monospace;
        font-size: 12px;
        font-weight: 300;
        letter-spacing: 0.3px;
        color: #444444;
        padding: 6px 0;
        border-bottom: 0.5px solid #F3F0EB;
        display: flex;
        gap: 8px;
    }
    .silure-wl-benefits-list li::before {
        content: "—";
        color: #7A7672;
        flex-shrink: 0;
    }
    .silure-wl-items { flex: 1; overflow-y: auto; }
    .silure-wl-loading {
        padding: 40px 28px;
        font-family: "DM Mono", monospace;
        font-size: 12px;
        color: #7A7672;
        text-align: center;
    }
    /* Single horizontal row (Session 30) -- was a grid/stacked layout
       with actions below the price and a border-bottom divider between
       items; restructured to thumbnail | name+price (flexible) | both
       action buttons, all vertically centered in one row, no divider.
       Actions moved out of .silure-wl-item-info to be a direct flex
       child of .silure-wl-item (see the window.silureWlTpl JS template
       below) so they sit at the right edge of the row, not stacked under
       the price. */
    .silure-wl-item {
        display: flex;
        align-items: center;
        gap: 16px;
        padding: 20px 28px;
    }
    .silure-wl-item-img {
        flex: 0 0 80px;
    }
    .silure-wl-item-img img {
        width: 80px;
        height: 100px;
        object-fit: cover;
        display: block;
        background: #F3F0EB;
    }
    .silure-wl-item-info {
        flex: 1 1 auto;
        min-width: 0;
    }
    .silure-wl-item-name {
        font-family: "DM Mono", monospace;
        font-size: 12px;
        font-weight: 300;
        text-transform: uppercase;
        letter-spacing: 0.3px;
        color: #050505;
        margin: 0 0 4px;
    }
    .silure-wl-item-price {
        font-family: "DM Mono", monospace;
        font-size: 13px;
        font-weight: 300;
        color: #050505;
        margin: 0;
    }
    .silure-wl-item-actions {
        flex: 0 0 auto;
        display: flex;
        gap: 8px;
        align-items: center;
    }
    /* Icon buttons -- replaces the old text "MOVE TO BAG" / "REMOVE"
       links. 44x44 (Session 30, resized down from the original 58x58 to
       fit the new single-row layout), 16px icon unchanged. Fill/text
       colour (base + hover/focus) intentionally NOT set here -- both
       are registered in the SITEWIDE BUTTON HOVER STANDARD block
       (silure_kill_pink_late(), wp_head priority 999) instead, the one
       canonical source for every real CTA button sitewide, rather than
       duplicating those colour values here. */
    .silure-wl-move-to-bag,
    .silure-wl-remove {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 44px;
        height: 44px;
        flex: 0 0 44px;
        box-sizing: border-box;
        cursor: pointer;
    }
    .silure-wl-move-to-bag svg { width: 16px; height: 16px; }
    .silure-wl-remove {
        font-size: 16px;
        line-height: 1;
        padding: 0;
    }
    .silure-wl-out-of-stock {
        font-family: "DM Mono", monospace;
        font-size: 10px;
        color: #7A7672;
        letter-spacing: 2px;
    }
    .silure-wl-empty {
        padding: 60px 28px;
        text-align: center;
    }
    .silure-wl-empty p {
        font-family: "DM Mono", monospace;
        font-size: 13px;
        font-weight: 300;
        color: #7A7672;
        margin-bottom: 20px;
    }
    .silure-wl-empty a {
        font-family: "DM Mono", monospace;
        font-size: 10px;
        letter-spacing: 2px;
        text-transform: uppercase;
        color: #050505;
        border-bottom: 1px solid #050505;
        padding-bottom: 2px;
        text-decoration: none;
    }
    .silure-wl-btn {
        /* Session 44 — right was 12px, matching the declared 32px width
           (center = card-right - 28px, same target as the "+" button
           below). The sitewide WCAG 2.1 SC 2.5.5 touch-target rule
           (mobile-ux.css: button{min-width:44px}) inflates this real
           <button> to an actual 44px box without adjusting right,
           shifting its center 6px off from the "+" button center. Moved
           to 6px so center = card-right - (44/2) - 6 = card-right - 28px,
           matching again — width/height below stay 32px in the CSS
           source (the design intent); the 44px is purely the enforced
           min-width/min-height floor, which this does not fight. */
        position: absolute !important;
        bottom: 12px !important;
        right: 6px !important;
        background: rgba(251,249,246,0.9) !important;
        border: none !important;
        border-radius: 50% !important;
        width: 32px !important;
        height: 32px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        cursor: pointer !important;
        z-index: 2 !important;
        transition: background 0.2s !important;
        padding: 0 !important;
        color: #050505 !important;
    }
    .silure-wl-btn:hover,
    .silure-wl-btn.is-wishlisted {
        background: #050505 !important;
        color: #FBF9F6 !important;
    }
    .silure-wl-btn.is-wishlisted svg { fill: currentColor !important; }

    /* ── UNIVERSAL DRAWER WIDTH — all drawers same ────── */
    /* Session 138 — .silure-filters-panel added: real bug found via
       getComputedStyle() (460px vs. the Account drawer's real 560px)
       — this drawer had its own separate, un-shared width/max-width
       declared where it's built (see .silure-filters-panel's own base
       rule further down), rather than joining this actual shared
       mechanism every OTHER drawer already uses for exactly this
       "same width everywhere" guarantee. Joining it here is the fix,
       not a duplicate number in two places that can drift again. */
    .silure-acct-drawer,
    .silure-search-panel,
    .silure-wishlist-panel,
    .silure-cart-panel,
    .silure-filters-panel {
        width: 40% !important;
        max-width: 560px !important;
    }

    /* ── SCROLL LOCK — universal: desktop + iOS Safari + Android ── */
    html.silure-drawer-open {
        overflow: hidden !important;
    }
    body.silure-cart-open,
    body.silure-drawer-open {
        overflow: hidden !important;
        width: 100% !important;
        left: 0 !important;
        touch-action: none !important;
    }

    /* ── DRAWER PANELS: height container, clips children ─────────── */
    .silure-cart-panel,
    .silure-wishlist-panel,
    .silure-search-panel,
    .silure-acct-drawer {
        position: absolute !important;
        top: 0 !important;
        right: 0 !important;
        height: 100% !important;
        overflow: hidden !important;
        display: flex !important;
        flex-direction: column !important;
    }

    /* ── SCROLLABLE ZONES: flex + min-height:0 is the key ─────────
       Without min-height:0, flex children expand past their container
       and overflow:scroll has nothing to scroll against.           */
    .silure-cart-left,
    .silure-wl-items,
    .silure-wl-guest,
    .silure-search-results,
    .silure-acct-drawer-inner,
    .silure-acct-drawer-body {
        overflow-y: scroll !important;
        overscroll-behavior-y: contain !important;
        -webkit-overflow-scrolling: touch !important;
        min-height: 0 !important;
        flex: 1 1 auto !important;
    }
    #silure-cart-checkout {
        flex: 0 0 auto !important;
        min-height: 0 !important;
    }
    .silure-cart-right {
        overflow-y: visible !important;
        max-height: none !important;
    }
    .silure-acct-modal {
        overflow-y: auto !important;
        overscroll-behavior: contain !important;
        -webkit-overflow-scrolling: touch !important;
    }
    .silure-cart-items {
        flex: 1 1 auto !important;
        min-height: 0 !important;
        overflow-y: scroll !important;
        overscroll-behavior-y: contain !important;
        -webkit-overflow-scrolling: touch !important;
    }

    /* Session 59 fixed a real items-list squeeze bug here (full writeup
       kept in MASTER_CONTEXT.md and git history). Session 61 found a
       further, later section of this same file (git 7e0c977, "match
       account animation" — predates Session 59, was not found during
       that session own audit) that makes .silure-cart-drawer itself the
       real scroll container and .silure-cart-panel position:relative —
       meaning the overflow-y:auto this block used to set on
       .silure-cart-panel created a SECOND, ambiguous scrolling context
       instead of one clear one, which is genuinely why a sticky
       Checkout button real position became unreliable on a real device.
       Superseded below (see the block right after "Mobile: all drawers
       full-screen") rather than layered on top of — this file already
       has enough of that pattern, that IS how bugs like this happen. */

    /* ALL drawer overlays — fixed to viewport */
    .silure-drawer-overlay,
    .silure-cart-overlay,
    .silure-search-overlay-bg,
    .silure-wishlist-overlay,
    .silure-acct-overlay {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        width: 100vw !important;
        height: 100vh !important;
        background: rgba(0, 0, 0, 0.45) !important;
    }

    /* Standardised dim — single source of truth */
    .silure-acct-overlay,
    .silure-drawer-overlay,
    .silure-cart-overlay,
    .silure-search-overlay-bg,
    .silure-wishlist-overlay {
        background: rgba(0, 0, 0, 0.45) !important;
    }

    /* Z-index stack: overlays sit below drawers */
    .silure-drawer-overlay    { z-index: 2998 !important; }
    .silure-cart-overlay      { z-index: 2998 !important; }
    .silure-search-overlay-bg { z-index: 2998 !important; }
    .silure-wishlist-overlay  { z-index: 2998 !important; }
    .silure-acct-overlay      { z-index: 2998 !important; }

    /* All drawers must sit above their overlays */
    .silure-cart-drawer,
    .silure-search-drawer,
    .silure-wishlist-drawer {
        z-index: 3000 !important;
    }
    .silure-acct-drawer,
    .silure-account-drawer,
    [class*="silure-acct-panel"],
    [class*="silure-account-panel"] {
        position: fixed !important;
        z-index: 3000 !important;
        top: 0 !important;
        right: 0 !important;
        height: 100vh !important;
    }

    /* Header sits below overlays so drawer open dims it correctly */
    .silure-header {
        z-index: 1000 !important;
    }

    /* Overlays — hidden by default, shown via is-open class.
       Session 145 — real, deterministic (NOT cache-dependent) bug found
       and fixed: this exact pattern already covers pointer-events,
       background, and z-index with !important (see the "Standardised
       dim" / "Z-index stack" blocks above), added specifically because
       cart-checkout.css's OLDER #silure-cart-overlay (an ID selector,
       specificity 1,0,0) competes with this file's own
       .silure-cart-overlay.is-open (two classes, specificity 0,2,0) on
       the exact same element (real markup: one div, both the class and
       the id) — ID beats two-class regardless of which state class is
       toggled, so whichever property THIS pass forgot to also patch
       with !important stays permanently won by the older ID rule.
       `opacity` was the one property never added here — confirmed live
       via getComputedStyle(): even with .is-open correctly applied by
       the real JS, computed opacity stayed "0", because
       cart-checkout.css's own unconditional `#silure-cart-overlay {
       opacity: 0; }` (no !important, but ID-specificity alone already
       beats the 2-class .is-open rule) never actually loses. Real
       consequence, confirmed: the dark dimming scrim behind the cart
       drawer never became visible AT ALL, on any load, so the actual
       page content/background to the drawer's own left (this site's
       real, intentional light background) always showed through
       completely undimmed — not a caching artifact, a permanent,
       deterministic rendering bug, present on 100% of loads including
       a genuinely fresh one. Fixed the same way every other property
       here already was: add it to this shared !important pass. */
    .silure-cart-overlay,
    .silure-search-overlay-bg,
    .silure-wishlist-overlay,
    .silure-drawer-overlay,
    .silure-acct-overlay:not(.is-open) {
        pointer-events: none !important;
        opacity: 0 !important;
    }
    .silure-cart-overlay.is-open,
    .silure-search-overlay-bg.is-open,
    .silure-wishlist-overlay.is-open,
    body.silure-drawer-open .silure-drawer-overlay {
        pointer-events: auto !important;
        opacity: 1 !important;
    }

    /* All drawer body text: match account drawer 13px */
    .silure-cart-drawer p,
    .silure-cart-drawer span,
    .silure-cart-drawer li,
    .silure-wishlist-drawer p,
    .silure-wishlist-drawer span,
    .silure-wishlist-drawer li,
    .silure-search-drawer p,
    .silure-search-drawer span {
        font-family: "DM Mono", monospace !important;
        font-size: 13px !important;
        font-weight: 300 !important;
    }

    /* All drawer titles: match account drawer */
    .silure-cart-drawer h2,
    .silure-cart-drawer h3,
    .silure-cart-drawer [class*="title"],
    .silure-cart-drawer [class*="heading"],
    .silure-wishlist-drawer h2,
    .silure-wishlist-drawer h3,
    .silure-wishlist-drawer [class*="title"],
    .silure-wishlist-drawer [class*="heading"],
    .silure-search-drawer h2,
    .silure-search-drawer h3,
    .silure-search-drawer [class*="title"] {
        font-family: "Mulish", sans-serif !important;
        font-size: 20px !important;
        font-weight: 700 !important;
        text-transform: uppercase !important;
        letter-spacing: 0.5px !important;
        color: #050505 !important;
    }

    /* All drawer section labels */
    .silure-cart-drawer [class*="label"],
    .silure-cart-drawer [class*="section-title"],
    .silure-wishlist-drawer [class*="label"],
    .silure-search-drawer [class*="label"] {
        font-family: "DM Mono", monospace !important;
        font-size: 10px !important;
        font-weight: 300 !important;
        letter-spacing: 2px !important;
        text-transform: uppercase !important;
        color: #7A7672 !important;
    }

    /* Acct overlay: only visible when drawer is open.
       Ties overlay state to drawer — JS-independent fix. */
    .silure-acct-drawer:not(.is-open) ~ .silure-acct-overlay,
    body:not(:has(.silure-acct-drawer.is-open)) .silure-acct-overlay {
        opacity: 0 !important;
        pointer-events: none !important;
    }

    /* ── CART DRAWER: match account animation ──────── */
    .silure-cart-drawer {
        width: 560px !important;
        max-width: 100vw !important;
        position: fixed !important;
        top: 0 !important;
        right: 0 !important;
        left: auto !important;
        height: 100vh !important;
        height: 100dvh !important; /* Session 61 — real bug, confirmed on
            a real iOS device (screenshot evidence): plain vh resolves
            against the viewport with Safari own chrome (address bar +
            bottom toolbar) hidden, taller than what is genuinely visible
            while that chrome is showing — same exact bug already fixed
            once for quick-checkout (Session 55), never applied here.
            This drawer wrapper is a position:fixed box and the true real
            scroll container (overflow-y: auto below) — its own height
            being wrong is why a sticky Checkout button, correctly pinned
            per CSS own math, could still render behind Safari own real
            UI: the box itself extended past what was actually visible. */
        transform: translateX(560px) !important;
        transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), visibility 0s linear 0.35s !important;
        z-index: 3000 !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        background: #FBF9F6 !important;
        will-change: transform !important;
        backface-visibility: hidden !important;
    }
    .silure-cart-drawer.is-open {
        transform: translateX(0) !important;
        transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), visibility 0s linear 0s !important;
    }
    /* ── SEARCH DRAWER: match account animation ─────── */
    .silure-search-drawer {
        width: 560px !important;
        max-width: 100vw !important;
        position: fixed !important;
        top: 0 !important;
        right: 0 !important;
        left: auto !important;
        height: 100vh !important;
        height: 100dvh !important; /* Session 61 — same real-viewport fix
            as the cart drawer above, applied for consistency (this
            drawer shares the identical position:fixed/height:100vh
            pattern, so it carries the identical risk even though it
            was not the one shown in Manish own screenshot). */
        transform: translateX(560px) !important;
        transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), visibility 0s linear 0.35s !important;
        z-index: 3000 !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        background: #FBF9F6 !important;
        will-change: transform !important;
        backface-visibility: hidden !important;
    }
    .silure-search-drawer.is-open {
        transform: translateX(0) !important;
        transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), visibility 0s linear 0s !important;
    }
    /* ── WISHLIST DRAWER: match account animation ───── */
    .silure-wishlist-drawer {
        width: 560px !important;
        max-width: 100vw !important;
        position: fixed !important;
        top: 0 !important;
        right: 0 !important;
        left: auto !important;
        height: 100vh !important;
        height: 100dvh !important; /* Session 61 — same real-viewport fix
            as the cart drawer above, applied for consistency. */
        transform: translateX(560px) !important;
        transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), visibility 0s linear 0.35s !important;
        z-index: 3000 !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        background: #FBF9F6 !important;
        will-change: transform !important;
        backface-visibility: hidden !important;
    }
    .silure-wishlist-drawer.is-open {
        transform: translateX(0) !important;
        transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), visibility 0s linear 0s !important;
    }
    /* Inner panels: fill the 560px drawer fully, no independent animation */
    .silure-cart-panel,
    .silure-wishlist-panel,
    .silure-search-panel {
        position: relative !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        min-height: 100vh !important;
        box-sizing: border-box !important;
        transform: none !important;
        transition: none !important;
    }

    /* Mobile: all drawers full-screen */
    @media (max-width: 768px) {
        .silure-cart-drawer,
        .silure-search-drawer,
        .silure-wishlist-drawer {
            width: 100vw !important;
            max-width: 100vw !important;
            transform: translateX(100vw) !important;
        }
        .silure-cart-drawer.is-open,
        .silure-search-drawer.is-open,
        .silure-wishlist-drawer.is-open {
            transform: translateX(0) !important;
        }
        .silure-acct-drawer {
            width: 100vw !important;
            max-width: 100vw !important;
        }
    }

    /* Session 61 — cart drawer Checkout button, real fix. Confirmed on a
       real iOS device (Manish own screenshot): Order Summary rendered in
       full down to ESTIMATED TOTAL, no Checkout button anywhere — Safari
       own bottom toolbar was physically covering where it should have
       been. Two real causes, both fixed:
       1. .silure-cart-drawer above is height:100dvh now (was 100vh only
          — see that rule, earlier in this same function) — the drawer
          box itself was taller than what was genuinely visible while
          Safari chrome was showing, same category of bug already fixed
          once for quick-checkout (Session 55).
       2. This exact drawer wrapper is ALSO the real scroll container
          (overflow-y: auto, set unconditionally where this drawer is
          first declared) while .silure-cart-panel is position:relative
          (not absolute) with only a min-height floor — Session 59 did
          not know this when it made .silure-cart-panel independently
          overflow-y:auto too, creating a second, ambiguous scrolling
          context that made a sticky element real anchor genuinely
          unclear. Resolved here to ONE unambiguous scroll container
          (.silure-cart-drawer, now correctly dvh-sized) with everything
          else simply flowing to whatever height it needs inside it —
          nothing here can clip content that does not fit, so scrolling
          the drawer to its real end always reaches Checkout regardless
          of what any individual browser does with sticky positioning.
       Checkout originally kept position: sticky here as an enhancement
       on top of that guaranteed fallback — Session 62 removed it: real
       device testing found sticky itself was the cause of a second,
       real bug (touch on a stuck sticky element not routing to the
       actual scrolling ancestor — see .silure-cart-right below for the
       full writeup). The guaranteed-reachable-by-scrolling behavior
       described above is now the ONLY mechanism in play, deliberately,
       not one of two. */
    @media (max-width: 768px) {
        .silure-cart-panel,
        .silure-wishlist-panel,
        .silure-search-panel {
            height: auto !important;
            min-height: 100vh !important;
            min-height: 100dvh !important;
            overflow: visible !important;
        }
        .silure-cart-left,
        .silure-cart-items {
            overflow-y: visible !important;
            flex: 0 0 auto !important;
            min-height: 0 !important;
        }
        .silure-cart-right {
            /* Session 62 — real, precise root cause found from Manish own
               exact reproduction: touch/swipe inside the ITEMS area
               scrolled the drawer correctly; touch/swipe directly on
               ORDER SUMMARY did nothing at all. Ruled out an overflow
               conflict first, directly, not by guessing — computed style
               confirmed every element in this chain (drawer, panel,
               left, items, right) has overflow-y: visible except the one
               real scroll container (.silure-cart-drawer, overflow-y:
               auto) — there is no second CSS scroll region competing
               here. The actual cause is position: sticky itself: once a
               sticky element reaches its stuck/pinned state, real iOS
               Safari (this has recurred every round this exact element
               has been touched — first the shine/border work, then the
               Safari-chrome-hidden-behind-toolbar bug, now this) can
               render it in its own compositor layer and fail to route a
               touch-scroll gesture that starts ON that stuck element
               back to the actual scrolling ancestor — the element LOOKS
               like normal content in the CSS/DOM model (confirmed above:
               no second overflow region) but behaves like an isolated
               touch surface on the real device, exactly matching "two
               separate scroll contexts that are not unified." This
               cannot be verified from this tooling (no real Safari
               touch/compositor behavior to inspect), which is exactly
               why it kept surviving emulated/scripted checks — removing
               the mechanism entirely, rather than trying to patch sticky
               positioning again, is the fix Manish own standing
               instruction already permitted: "make the drawer genuinely
               scrollable" as the one remaining acceptable outcome, no
               longer split against "keep trying to make sticky work." */
            position: static !important;
            flex-shrink: 0 !important;
            /* Session 144 — same fix as the base rule above, reinforced
               here at mobile width since this !important override would
               otherwise keep re-applying the old, inconsistent color. */
            background: #FFFFFF !important;
        }
    }

    /* ════════════════════════════════════════════════
       SILURE CHECKOUT — MEJURI LAYOUT REPLICA
       Mejuri reference (1710px viewport):
         Left form col: 905px white
         Right order col: 805px #f5f5f5
         Form content: 580px centered in left col
         Input height: 49px, border-radius: 5px
         Primary button: 49px, black, letter-spacing 1.75px
       ════════════════════════════════════════════════ */

    /* 1. Minimal checkout header — hide nav, keep logo + cart
       (header icons audit, 2026-08-06 round -- two of these three hides
       were silently never working. (a) the class ".silure-acct-btn"
       does not exist in header.php at all -- the real markup is
       ".silure-account-btn" (confirmed via live DOM), so that selector
       matched nothing, ever. (b) the wishlist hide DID target the right
       class, but lost anyway: the "Header wishlist: hard reset" rule
       further down this same function sets display:flex !important on
       "#silure-header .silure-wishlist-btn" -- an ID-anchored selector,
       which outranks any number of classes regardless of !important or
       source order. A live DOM check confirmed both were rendering at
       full size, not display:none, just invisible from color matching
       the header background -- easy to mistake for "hidden" without
       checking computed display directly. Every hide/color rule below
       is now anchored on #silure-header too, matching the hard-reset
       block own specificity level, so this problem does not return the
       next time either block is edited. */
    body.woocommerce-checkout .silure-announcement,
    body.woocommerce-checkout .silure-nav,
    body.woocommerce-checkout #silure-header .silure-header-actions .silure-search-btn,
    body.woocommerce-checkout #silure-header .silure-header-actions .silure-account-btn,
    body.woocommerce-checkout #silure-header .silure-header-actions .silure-wishlist-btn {
        display: none !important;
    }
    body.woocommerce-checkout #silure-header {
        position: relative !important;
        top: auto !important;
        background: #FBF9F6 !important;
        border-bottom: 0.5px solid #E8E4DF !important;
        padding: 0 48px !important;
        height: 64px !important;
    }
    body.woocommerce-checkout .silure-logo svg,
    body.woocommerce-checkout .silure-logo img {
        filter: invert(1) !important;
    }
    body.woocommerce-checkout .silure-logo svg path,
    body.woocommerce-checkout .silure-logo svg rect {
        fill: #050505 !important;
        stroke: #050505 !important;
    }
    /* Cart icon contrast, root cause (not a patch) -- the header icon
       color has always been the sitewide #FBF9F6 "always dark header"
       default (see "Header search + cart" hard-reset above), which is
       correct everywhere the header is actually dark or transparent
       over a dark hero. Checkout is the one context that deliberately
       overrides the header to a light #FBF9F6 background (directly
       above) without ever giving its icons a matching override -- same
       literal hex value on both fill and background by coincidence of
       both being this site own cream token, hence total invisibility
       rather than a missing icon. Dark icon color here matches the
       logo own already-correct dark treatment two rules up, so both
       follow the same light-header contrast logic instead of only one
       of them being fixed. #silure-header anchor matches the
       hard-reset rule own specificity so this reliably wins regardless
       of file order. */
    body.woocommerce-checkout #silure-header .silure-header-actions .silure-cart-btn {
        color: #050505 !important;
    }
    /* Order Received specifically (not Checkout) hides the cart icon
       too -- the two pages share body.woocommerce-checkout (order-
       received is a checkout sub-endpoint) but only Order Received
       also carries its own .woocommerce-order-received body class, so
       this stays scoped to that one page without touching the Checkout
       cart icon above. */
    body.woocommerce-order-received #silure-header .silure-header-actions .silure-cart-btn {
        display: none !important;
    }
    /* order-pay gets the same treatment, same reasoning (Session 30
       close-out, 2026-08-10) -- Manish explicit direction: the cart icon
       should only show on the real Checkout page itself, never on a
       page that logically comes after it. order-pay shares
       body.woocommerce-checkout with the real Checkout form (same
       is_checkout() mechanism documented above) but carries its own
       .woocommerce-order-pay body class, so this stays scoped to that
       one page only, same pattern as the Order Received rule directly
       above -- confirmed live before this fix: computed display was
       flex, not none, on this page specifically. */
    body.woocommerce-order-pay #silure-header .silure-header-actions .silure-cart-btn {
        display: none !important;
    }

    /* 2. Remove default page padding */
    body.woocommerce-checkout #main,
    body.woocommerce-checkout .site-main,
    body.woocommerce-checkout .woocommerce {
        max-width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    /* 3. Two-column layout — form left, order summary right */
    body.woocommerce-checkout form.woocommerce-checkout {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    /* Notices span full width above the form */
    body.woocommerce-checkout .woocommerce-notices-wrapper {
        width: 100% !important;
    }

    /* Checkout grid wrapper — full width, two columns */
    body.woocommerce-checkout .silure-checkout-grid {
        display: grid !important;
        grid-template-columns: 53% 47% !important;
        gap: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        min-height: calc(100vh - 64px) !important;
        align-items: start !important;
    }

    /* Left col — form, white bg */
    body.woocommerce-checkout .silure-checkout-col--form {
        background: #FBF9F6 !important;
        padding: 48px 80px 64px !important;
        box-sizing: border-box !important;
        width: 100% !important;
    }

    /* Right col — order summary, grey bg */
    body.woocommerce-checkout .silure-checkout-col--summary {
        background: #F0EDE8 !important;
        padding: 48px 40px !important;
        box-sizing: border-box !important;
        min-height: calc(100vh - 64px) !important;
        width: 100% !important;
        position: sticky !important;
        top: 0 !important;
    }

    /* 4. Left column — #customer_details inside col wrapper */
    body.woocommerce-checkout #customer_details {
        grid-column: unset !important;
        grid-row: unset !important;
        background: #FBF9F6 !important;
        padding: 0 !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    /* 5. Right column — #order_review inside col wrapper */
    body.woocommerce-checkout #order_review_heading,
    body.woocommerce-checkout #order_review {
        grid-column: unset !important;
        grid-row: unset !important;
        background: none !important;
        padding: 0 !important;
        min-height: unset !important;
        box-sizing: border-box !important;
        position: static !important;
        top: unset !important;
    }
    body.woocommerce-checkout #order_review_heading {
        display: none !important;
    }

    /* 6. Section headings */
    body.woocommerce-checkout h3,
    body.woocommerce-checkout .woocommerce-billing-fields h3,
    body.woocommerce-checkout .woocommerce-shipping-fields h3,
    body.woocommerce-checkout .woocommerce-account-fields h3 {
        font-family: "Mulish", sans-serif !important;
        font-size: 22px !important;
        font-weight: 700 !important;
        color: #050505 !important;
        text-transform: none !important;
        letter-spacing: 0.5px !important;
        margin: 0 0 24px !important;
        border: none !important;
        padding: 0 !important;
    }

    /* 7. Field labels */
    body.woocommerce-checkout .woocommerce-input-wrapper label,
    body.woocommerce-checkout label {
        font-family: "DM Mono", monospace !important;
        font-size: 10px !important;
        font-weight: 300 !important;
        letter-spacing: 2px !important;
        text-transform: uppercase !important;
        color: #7A7672 !important;
        margin-bottom: 6px !important;
        display: block !important;
    }

    /* 8. Input fields — 49px, border-radius 5px */
    /* Underline style (Session 30) -- was still the pre-redesign box
       (1px #E8E4DF border, 5px radius, white fill, fixed 49px height)
       despite cart-checkout.css already having the correct underline
       version: that file own enqueue had a dead silure-child
       dependency and was never actually loading (see
       silure_enqueue_cart_assets), so this !important rule was the
       only one actually in the cascade. Fixed at the source too now,
       but updated here as well rather than relying solely on that,
       since three separate copies of this same rule already exist
       across three files -- matching all of them removes the fragility
       that caused this in the first place. Height removed (was a fixed
       49px box-derived value; underline fields size naturally from
       padding, same as every other form). */
    body.woocommerce-checkout input[type="text"],
    body.woocommerce-checkout input[type="email"],
    body.woocommerce-checkout input[type="tel"],
    body.woocommerce-checkout input[type="password"],
    body.woocommerce-checkout input[type="number"],
    body.woocommerce-checkout textarea,
    body.woocommerce-checkout select,
    body.woocommerce-checkout .select2-container--default .select2-selection--single {
        border: none !important;
        border-bottom: 1px solid #050505 !important;
        border-radius: 0 !important;
        background: transparent !important;
        font-family: "DM Mono", monospace !important;
        font-size: 13px !important;
        font-weight: 300 !important;
        color: #050505 !important;
        padding: 13px 0 !important;
        width: 100% !important;
        box-sizing: border-box !important;
        outline: none !important;
        /* Select2 bundled CSS hardcodes height:28px on
           .select2-selection--single -- never overridden here before, so
           with padding:13px 0 also applying (border-box, 26px of that
           28px used by padding alone) the inner .select2-selection__rendered
           text span (own line-height:28px from the same bundled CSS)
           had nowhere near enough room and overflowed straight through the
           middle of this element, landing almost exactly on the border-bottom
           line above -- looked exactly like a text-decoration
           strikethrough through "Uttar Pradesh" etc, confirmed live, but
           computed text-decoration was genuinely "none" the whole time.
           height:auto lets padding determine the real height instead,
           matching every plain input on this same form (and matching the
           already-correct My Account equivalent of this rule). */
        height: auto !important;
    }
    /* The nested text span inside .select2-selection--single carries a
       separate line-height:28px and padding-left:8px/padding-right:20px
       from Select2 bundled CSS, independent of the container fix above --
       resetting both so it sits flush within the now auto-sized container,
       matching every plain input on this form. */
    body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
        line-height: normal !important;
        padding: 0 !important;
    }
    /* Select2 own arrow positioning (top:1px, height:26px) assumed the
       old fixed 28px container height -- with height now auto (~46.5px,
       matching a plain input), that left the arrow sitting near the top
       of a visibly taller field instead of centered. */
    body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
        height: auto !important;
        top: 50% !important;
        transform: translateY(-50%);
        right: 0 !important;
    }
    body.woocommerce-checkout input:focus,
    body.woocommerce-checkout select:focus {
        border-color: #050505 !important;
        outline: none !important;
        box-shadow: none !important;
    }

    /* 9. Place order button — 49px (Session 30: font-size/letter-spacing
       brought in line with the sitewide 13px/0.5px text-button standard;
       this body-prefixed #place_order rule is the real winning
       declaration, confirmed live -- the cart-checkout.css copy of this
       selector and the generic "ALL WC BUTTONS" 13px rule both lose to
       it regardless, on specificity and !important respectively). */
    body.woocommerce-checkout #place_order,
    body.woocommerce-checkout input#place_order {
        width: 100% !important;
        height: 49px !important;
        font-family: "DM Mono", monospace !important;
        font-size: 13px !important;
        font-weight: 300 !important;
        letter-spacing: 0.5px !important;
        text-transform: uppercase !important;
        cursor: pointer !important;
        display: block !important;
        margin-top: 24px !important;
    }
    /* color/background/border/radius (base + hover) now come from the
       single sitewide button hover standard block at the end of
       silure_kill_pink_late(). */

    /* 9b. Privacy policy notice, directly above the Place Order button
       (Session 30, checkout redesign Pass A) -- WooCommerce own
       .woocommerce-privacy-policy-text had no size rule anywhere on this
       page at all, so it rendered at the browser default 16px against
       every other small-print notice on Checkout (coupon toggle,
       returning-customer notice, order review table) sitting at 12px --
       flagged by Manish. Matched to that same 12px standard rather than
       CLAUDE.md own sitewide 15px body-text spec, which is for main content
       paragraphs, not compact form disclaimers like this one. */
    body.woocommerce-checkout .woocommerce-privacy-policy-text,
    body.woocommerce-checkout .woocommerce-privacy-policy-text p {
        font-family: "DM Mono", monospace !important;
        font-size: 12px !important;
        font-weight: 300 !important;
        line-height: 1.6 !important;
        color: #444444 !important;
    }

    /* 10. Coupon field */
    body.woocommerce-checkout .woocommerce-form-coupon-toggle,
    body.woocommerce-checkout .checkout_coupon {
        font-family: "DM Mono", monospace !important;
        font-size: 12px !important;
        font-weight: 300 !important;
        color: #444444 !important;
        background: none !important;
        border: none !important;
        border-radius: 0 !important;
        padding: 0 0 24px !important;
        margin-bottom: 24px !important;
        border-bottom: 0.5px solid #E8E4DF !important;
    }

    /* 11. Returning customer notice */
    /* Session 30 (checkout redesign Pass A): border + border-radius
       removed per explicit request -- was a bordered card look, now a
       plain-text notice matching the rest of the page own line-based
       (not boxed) visual language. background was already none. */
    /* Session 30 (checkout redesign follow-up): the 12px 16px padding
       above was left over from when this was still a bordered box --
       once the border went, that padding just pushed the text 16px to
       the right of everything else on the page (confirmed live:
       .woocommerce-info at the same left offset as the rest of the
       column, but its own internal padding indenting the actual text
       past it) instead of sitting flush like the surrounding
       plain-text content. Zeroed out so the text itself is what
       actually aligns, not just its container. */
    body.woocommerce-checkout .woocommerce-info {
        background: none !important;
        border: 0 none !important;
        border-radius: 0 !important;
        font-family: "DM Mono", monospace !important;
        font-size: 12px !important;
        padding: 0 !important;
        margin-bottom: 16px !important;
        color: #444 !important;
    }

    /* 12. Order review table */
    body.woocommerce-checkout table.shop_table {
        width: 100% !important;
        border: none !important;
        background: none !important;
    }
    body.woocommerce-checkout table.shop_table td,
    body.woocommerce-checkout table.shop_table th {
        font-family: "DM Mono", monospace !important;
        font-size: 12px !important;
        font-weight: 300 !important;
        color: #050505 !important;
        padding: 12px 0 !important;
        border-color: #E8E4DF !important;
        background: none !important;
        /* Session 30 (checkout redesign Pass A) -- browsers default
           <th> to text-align:center and nothing here overrode it, so
           the Subtotal/Shipment/Total row labels sat visibly indented
           toward the middle of their column while the product row title
           stayed flush-left directly above them -- confirmed live
           via getBoundingClientRect (shorter words like "Total" sat even
           further right than "Subtotal"/"Shipment", the exact signature
           of center-alignment, not a coincidence). thead th (Product/
           Subtotal header labels) is already display:none via FIX 5
           below, so this only visibly affects the real row labels. */
        text-align: left !important;
    }
    body.woocommerce-checkout .order-total td,
    body.woocommerce-checkout .order-total th {
        font-size: 16px !important;
        font-weight: 700 !important;
        padding-top: 16px !important;
    }

    /* 13. Discount code in order review -- removed (checkout redesign
       round 2). This #order_review-scoped rule was written long before
       the coupon ever actually rendered inside #order_review (it did
       not, until the review-order.php table-split for item 1 of this
       round made it a genuine descendant for the first time) -- always
       dormant, confirmed matching nothing, until today. Its ID
       specificity then made it silently win over the newer, more
       complete .silure-checkout-col--summary .checkout_coupon rule
       further down (display:flex, width:100%, alignment), which has no
       ID and could not out-specify it despite both being !important and
       the newer rule appearing later in source order. Removed outright
       rather than patched -- fully superseded, nothing else depends on
       it, and leaving it in place risks the exact same silent collision
       again the next time this element DOM position changes. */

    /* 14. Payment section */
    body.woocommerce-checkout #payment {
        background: none !important;
        border-radius: 0 !important;
        padding: 0 !important;
        margin-top: 24px !important;
    }
    /* Session 30 (checkout redesign Pass A): bottom border removed per
       explicit request. */
    body.woocommerce-checkout #payment ul.payment_methods {
        border-bottom: 0 none !important;
        padding: 0 0 16px !important;
    }
    body.woocommerce-checkout #payment ul.payment_methods li label {
        font-family: "DM Mono", monospace !important;
        font-size: 12px !important;
        font-weight: 300 !important;
    }
    body.woocommerce-checkout #payment .payment_box {
        background: #f5f5f0 !important;
        border-radius: 5px !important;
    }
    /* Session 30 (checkout redesign Pass A): WooCommerce core itself
       ships .payment_box::before, a decorative CSS-triangle "speech
       bubble" arrow pointing from the radio up into the box, hardcoded
       to WC own purple-grey (#dcd7e2) -- never matched this box actual
       cream background (#f5f5f0) above, a mismatch flagged during the original
       recon and left for this pass to resolve. Neutralized rather than
       recolored -- the payment section is being rebuilt with a different
       visual treatment in Pass C anyway, so a color-matched arrow now
       would just need removing again shortly. */
    body.woocommerce-checkout #payment .payment_box::before {
        content: none !important;
    }

    /* 14b. Three-radio payment method list (Session 30, checkout
       redesign Pass C) -- replaces the native per-gateway <li> loop,
       see checkout/payment.php. No .payment_box anywhere in this new
       markup, so the two rules above are now dormant (Razorpay never
       renders one here to begin with -- its popup only ever opens after
       redirecting to order-pay) rather than actively needed, but left in
       place since they are harmless and still correct if a future
       gateway ever does render one. */
    body.woocommerce-checkout .silure-payment-methods {
        list-style: none !important;
        margin: 0 !important;
        padding: 0 0 16px !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 12px !important;
    }
    body.woocommerce-checkout .silure-payment-option {
        margin: 0 !important;
        padding: 16px !important;
        border: 1px solid #E8E4DF !important;
        border-radius: 0 !important;
        display: flex !important;
        align-items: flex-start !important;
        gap: 12px !important;
        cursor: pointer !important;
        transition: border-color 0.2s !important;
    }
    /* Selected-state highlight -- JS-toggled (silure_checkout_payment_flow_js(),
       wp_footer), not CSS :has(). :has(input:checked) looked correct for
       the default-checked option on initial load but confirmed live not
       to re-evaluate reliably once JS changes which radio is checked --
       the radio own .checked property updated correctly, this selector
       styling did not follow it. The radio itself remains fully
       functional (native checked dot, keyboard/screen-reader
       accessible) regardless of this class. */
    body.woocommerce-checkout .silure-payment-option.is-selected {
        border-color: #050505 !important;
    }
    /* Session 30 (checkout redesign follow-up) -- mobile-ux.css ships a
       sitewide WCAG 2.5.5 tap-target rule
       (input[type="radio"] { min-width/min-height: 44px }), the same
       one already found and fixed once for the register modal
       checkboxes. min-width/min-height always wins over width/height on
       the same box regardless of selector specificity or !important,
       since they are not the same property -- confirmed live the radios
       were rendering far larger than intended because only margin/
       accent-color/cursor were set here, nothing overriding the actual
       min-* values the 44px rule controls. Restyled to match the
       already-standardized checkboxes (appearance:none, custom border +
       solid-fill checked state) -- accent-color is dropped since it has
       no effect once appearance is none.
       border-radius is round (50%), not the sitewide "border-radius: 0
       throughout" (checkout redesign round 2, reversing the square
       styling from the prior round on explicit direction) -- radio
       inputs are treated as a documented exception to that rule: a
       circular radio is the standard UI convention this control type is
       recognized by, unlike buttons/checkboxes/fields where CLAUDE.md
       own flat-corner rule actually applies. Everything else about this
       styling (18x18 size, black checked fill) is unchanged. */
    body.woocommerce-checkout .silure-payment-option input[type="radio"] {
        width: 18px !important;
        height: 18px !important;
        min-width: 18px !important;
        min-height: 18px !important;
        margin: 3px 0 0 !important;
        border: 1px solid #C8C4BF !important;
        border-radius: 50% !important;
        appearance: none !important;
        -webkit-appearance: none !important;
        background: transparent !important;
        cursor: pointer !important;
        flex-shrink: 0 !important;
        position: relative !important;
    }
    body.woocommerce-checkout .silure-payment-option input[type="radio"]:checked {
        background: #050505 !important;
        border-color: #050505 !important;
    }
    /* "You may also like" add button (Session 30) -- same class of
       conflict as the radio fix directly above, different source:
       Elementor own generated global button style (post-5.css, not a
       theme file we control -- same generator responsible for the
       documented sitewide h1/h2 letter-spacing override) ships a bare
       button { padding: 8px 16px; ... } !important rule. Confirmed
       live: cart-checkout.css own plain (non-!important) width/height/
       min-width/min-height/box-sizing/display declarations on
       .silure-checkout-upsell-add had no effect at all -- not even a
       specificity contest, Elementor own rule out-prioritises any
       plain author rule regardless of selector, including display
       (Elementor own rule resolves to block, silently un-centering the
       plus icon since flex/align-items/justify-content never took
       effect either). Only !important here, in this already-proven-to-
       win block, actually overrides any of it. */
    body.woocommerce-checkout .silure-checkout-upsell-add {
        width: 36px !important;
        height: 36px !important;
        min-width: 36px !important;
        min-height: 36px !important;
        padding: 0 !important;
        box-sizing: border-box !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }
    body.woocommerce-checkout .silure-payment-option label {
        display: flex !important;
        flex-direction: column !important;
        gap: 4px !important;
        margin: 0 !important;
        padding: 0 !important;
        flex: 1 !important;
        cursor: pointer !important;
        font-family: "DM Mono", monospace !important;
        font-size: 13px !important;
        font-weight: 400 !important;
        letter-spacing: normal !important;
        text-transform: none !important;
        color: #050505 !important;
    }
    body.woocommerce-checkout .silure-payment-option-title {
        display: flex !important;
        align-items: center !important;
        flex-wrap: wrap !important;
        gap: 8px !important;
        font-family: "DM Mono", monospace !important;
        font-size: 13px !important;
        font-weight: 400 !important;
        letter-spacing: 0.3px !important;
        text-transform: uppercase !important;
        color: #050505 !important;
    }
    /* Payment method icon (Session 30, checkout redesign follow-up) --
       stroke="currentColor" inline SVGs matching the sitewide icon
       convention, colored to match the surrounding text so the icon
       darkens/lightens the same way the label would on its own. */
    body.woocommerce-checkout .silure-payment-option-icon {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 20px !important;
        height: 20px !important;
        flex-shrink: 0 !important;
        color: #050505 !important;
    }
    body.woocommerce-checkout .silure-payment-option-icon svg {
        width: 20px !important;
        height: 20px !important;
        display: block !important;
    }
    body.woocommerce-checkout .silure-payment-option-tag {
        font-family: "DM Mono", monospace !important;
        font-size: 10px !important;
        font-weight: 300 !important;
        letter-spacing: 0.5px !important;
        text-transform: uppercase !important;
        color: #7A7672 !important;
    }
    body.woocommerce-checkout .silure-payment-option-sub {
        font-family: "DM Mono", monospace !important;
        font-size: 12px !important;
        font-weight: 300 !important;
        letter-spacing: 0.3px !important;
        text-transform: none !important;
        color: #7A7672 !important;
    }

    /* 15. Half-width fields side by side */
    body.woocommerce-checkout .woocommerce-billing-fields .form-row-first,
    body.woocommerce-checkout .woocommerce-billing-fields .form-row-last,
    body.woocommerce-checkout .woocommerce-shipping-fields .form-row-first,
    body.woocommerce-checkout .woocommerce-shipping-fields .form-row-last {
        width: 48% !important;
        float: left !important;
        clear: none !important;
    }
    body.woocommerce-checkout .woocommerce-billing-fields .form-row-last,
    body.woocommerce-checkout .woocommerce-shipping-fields .form-row-last {
        float: right !important;
    }
    body.woocommerce-checkout .form-row {
        margin-bottom: 16px !important;
    }

    /* FIX 1 — Force full width, kill 1290px container */
    body.woocommerce-checkout .woocommerce,
    body.woocommerce-checkout form.woocommerce-checkout,
    body.woocommerce-checkout .silure-checkout-grid {
        width: 100% !important;
        max-width: 100% !important;
    }

    /* FIX 2 — Returning customer / coupon notices above grid */
    body.woocommerce-checkout .woocommerce-form-login-toggle,
    body.woocommerce-checkout .woocommerce-form-coupon-toggle {
        background: none !important;
        border: none !important;
        border-bottom: 0.5px solid #E8E4DF !important;
        padding: 14px 48px !important;
        font-family: "DM Mono", monospace !important;
        font-size: 11px !important;
        font-weight: 300 !important;
        letter-spacing: 2px !important;
        color: #444444 !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }
    body.woocommerce-checkout .woocommerce-form-login-toggle a,
    body.woocommerce-checkout .woocommerce-form-coupon-toggle a {
        color: #050505 !important;
        text-decoration: underline !important;
        text-underline-offset: 3px !important;
    }

    /* FIX 3 — Login form: removed (Session 30) -- the native
       .woocommerce-form-login fields no longer render at all (see the
       checkout/form-login.php theme override), so this styling had
       nothing left to match. .woocommerce-form-login-toggle (the
       "Returning customer?" link itself) is untouched and still styled
       further down. */

    /* FIX 4 — Dark logo on cream checkout header */
    body.woocommerce-checkout #silure-header .silure-logo-link svg,
    body.woocommerce-checkout #silure-header img[src*="light"],
    body.woocommerce-checkout #silure-header .silure-logo {
        filter: invert(1) brightness(0) !important;
    }

    /* FIX 5 — Order summary table */
    body.woocommerce-checkout table.shop_table thead {
        display: none !important;
    }
    body.woocommerce-checkout table.shop_table .product-name {
        font-family: "DM Mono", monospace !important;
        font-size: 12px !important;
        font-weight: 300 !important;
        color: #050505 !important;
    }
    body.woocommerce-checkout #order_review h3 {
        font-family: "Mulish", sans-serif !important;
        font-size: 18px !important;
        font-weight: 700 !important;
        color: #050505 !important;
        margin-bottom: 24px !important;
        text-transform: uppercase !important;
        letter-spacing: 0.5px !important;
    }

    /* FIX 1 — Bust max-width on checkout main container */
    body.woocommerce-checkout #main,
    body.woocommerce-checkout .site-main,
    body.woocommerce-checkout #silure-main {
        max-width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    /* FIX 2 — Grey right column full page height via pseudo-element */
    body.woocommerce-checkout {
        background: #FBF9F6 !important;
    }
    body.woocommerce-checkout #silure-main,
    body.woocommerce-checkout .silure-main {
        position: relative !important;
    }
    body.woocommerce-checkout .silure-main::after {
        content: "" !important;
        position: absolute !important;
        top: 0 !important;
        right: 0 !important;
        width: 47% !important;
        height: 100% !important;
        background: #F0EDE8 !important;
        z-index: 0 !important;
        pointer-events: none !important;
    }
    /* Ensure grid content sits above the pseudo bg */
    body.woocommerce-checkout .woocommerce,
    body.woocommerce-checkout form.woocommerce-checkout,
    body.woocommerce-checkout .silure-checkout-grid {
        position: relative !important;
        z-index: 1 !important;
    }
    /* Summary col bg transparent — let pseudo-element show through */
    body.woocommerce-checkout .silure-checkout-col--summary {
        background: transparent !important;
    }

    /* FIX 3 — Constrain notices to left 53%, close gap above form */
    body.woocommerce-checkout .woocommerce-form-login-toggle,
    body.woocommerce-checkout .woocommerce-form-coupon-toggle,
    body.woocommerce-checkout .checkout_coupon {
        width: 53% !important;
        max-width: 53% !important;
        box-sizing: border-box !important;
        padding-left: 80px !important;
        padding-right: 80px !important;
    }
    /* Remove extra top margin on the grid to close the gap */
    body.woocommerce-checkout .silure-checkout-grid {
        margin-top: 0 !important;
    }
    /* Stack notices compactly */
    body.woocommerce-checkout .woocommerce-form-login-toggle {
        padding-top: 16px !important;
        padding-bottom: 16px !important;
        border-bottom: 0.5px solid #E8E4DF !important;
    }
    body.woocommerce-checkout .woocommerce-form-coupon-toggle {
        padding-top: 16px !important;
        padding-bottom: 16px !important;
        border-bottom: 0.5px solid #E8E4DF !important;
        margin-bottom: 0 !important;
    }

    /* FIX 1 — Form stuck at 1290px — definitive override */
    body.woocommerce-checkout form.checkout,
    body.woocommerce-checkout form.woocommerce-checkout {
        width: 100% !important;
        max-width: none !important;
        min-width: 100% !important;
        box-sizing: border-box !important;
    }

    /* FIX 2 — Body gradient: cream left 53%, grey right 47% */
    body.woocommerce-checkout {
        background: linear-gradient(
            to right,
            #FBF9F6 0%,
            #FBF9F6 53%,
            #F0EDE8 53%,
            #F0EDE8 100%
        ) !important;
        min-height: 100vh !important;
    }
    body.woocommerce-checkout .silure-checkout-col--summary {
        background: transparent !important;
    }
    body.woocommerce-checkout .silure-main::after {
        display: none !important;
    }

    /* FIX 3 — RETURNING CUSTOMER notice: left column, no float */
    body.woocommerce-checkout .woocommerce-form-login-toggle {
        float: none !important;
        position: static !important;
        clear: both !important;
        width: 53% !important;
        max-width: 53% !important;
        padding: 14px 80px !important;
        box-sizing: border-box !important;
        border-bottom: 0.5px solid #E8E4DF !important;
        background: transparent !important;
        font-family: "DM Mono", monospace !important;
        font-size: 11px !important;
        font-weight: 300 !important;
        letter-spacing: 2px !important;
        color: #7A7672 !important;
        margin: 0 !important;
    }
    body.woocommerce-checkout .woocommerce-form-login-toggle a {
        color: #050505 !important;
        text-decoration: underline !important;
        text-underline-offset: 3px !important;
    }

    /* FIX 4 — HAVE A COUPON notice: left column, no float */
    body.woocommerce-checkout .woocommerce-form-coupon-toggle {
        float: none !important;
        position: static !important;
        width: 53% !important;
        max-width: 53% !important;
        padding: 14px 80px !important;
        box-sizing: border-box !important;
        border-bottom: 0.5px solid #E8E4DF !important;
        background: transparent !important;
        font-family: "DM Mono", monospace !important;
        font-size: 11px !important;
        font-weight: 300 !important;
        letter-spacing: 2px !important;
        color: #7A7672 !important;
        margin: 0 !important;
    }
    body.woocommerce-checkout .woocommerce-form-coupon-toggle a {
        color: #050505 !important;
        text-decoration: underline !important;
        text-underline-offset: 3px !important;
    }

    /* FIX 5 — Login/coupon forms: left column, no gap */
    body.woocommerce-checkout .checkout_coupon {
        width: 53% !important;
        max-width: 53% !important;
        padding: 16px 80px !important;
        box-sizing: border-box !important;
        margin: 0 !important;
        background: transparent !important;
        border: none !important;
        border-bottom: 0.5px solid #E8E4DF !important;
    }
    body.woocommerce-checkout .silure-checkout-grid {
        margin-top: 0 !important;
    }

    /* Login toggle — now inside left col via JS */
    /* Session 30 (checkout redesign Pass A): border-bottom removed per
       explicit request -- this is the line that was sitting directly
       above "Contact & Delivery" (this toggle is JS-moved to the very
       top of the left column, see silure_checkout_dom_fix()). Confirmed
       via specificity that THIS rule (two classes) is the one actually
       winning over the several other, lower-specificity border-bottom
       declarations for the same bare .woocommerce-form-login-toggle
       selector still elsewhere in this file (pre-JS-move era styling,
       now superseded) -- removing it here is what actually takes visual
       effect regardless of those other still-present declarations. */
    body.woocommerce-checkout .silure-checkout-col--form
      .woocommerce-form-login-toggle {
        float: none !important;
        position: static !important;
        width: 100% !important;
        padding: 16px 0 !important;
        margin: 0 0 24px !important;
        border-bottom: 0 none !important;
        background: transparent !important;
        font-family: "DM Mono", monospace !important;
        font-size: 11px !important;
        font-weight: 300 !important;
        letter-spacing: 2px !important;
        color: #7A7672 !important;
        box-sizing: border-box !important;
    }
    body.woocommerce-checkout .silure-checkout-col--form
      .woocommerce-form-login-toggle a {
        color: #050505 !important;
        text-decoration: underline !important;
        text-underline-offset: 3px !important;
        font-weight: 300 !important;
    }

    /* Coupon toggle — now inside right/summary col via JS */
    body.woocommerce-checkout .silure-checkout-col--summary
      .woocommerce-form-coupon-toggle {
        float: none !important;
        position: static !important;
        width: 100% !important;
        padding: 16px 0 !important;
        margin: 0 0 16px !important;
        border-bottom: 0.5px solid #C8C4BE !important;
        background: transparent !important;
        font-family: "DM Mono", monospace !important;
        font-size: 11px !important;
        font-weight: 300 !important;
        letter-spacing: 2px !important;
        color: #7A7672 !important;
        box-sizing: border-box !important;
    }
    body.woocommerce-checkout .silure-checkout-col--summary
      .woocommerce-form-coupon-toggle a {
        color: #050505 !important;
        text-decoration: underline !important;
        text-underline-offset: 3px !important;
    }

    /* Reset old width constraints on original notice positions */
    body.woocommerce-checkout .woocommerce-form-login-toggle,
    body.woocommerce-checkout .woocommerce-form-coupon-toggle {
        float: none !important;
        width: auto !important;
        max-width: none !important;
        padding: 0 !important;
    }

    /* FIX 1 — Close 108px gap: remove .woocommerce top padding */
    body.woocommerce-checkout .woocommerce {
        padding-top: 0 !important;
        margin-top: 0 !important;
    }
    body.woocommerce-checkout .silure-checkout-col--form {
        padding-top: 24px !important;
    }
    body.woocommerce-checkout .silure-checkout-col--summary {
        padding-top: 24px !important;
    }

    /* FIX 2 — Remove card border from order summary table */
    /* Second selector removed (checkout redesign, duplicate-Total-row
       fix) -- it targeted .woocommerce-checkout-review-order-table,
       already fully covered by the plain table.shop_table selector
       above it and, since that class was removed from both split
       tables entirely (see review-order.php own header comment), had
       become permanently dead weight rather than just redundant. */
    body.woocommerce-checkout table.shop_table {
        border: none !important;
        border-collapse: collapse !important;
        background: transparent !important;
        box-shadow: none !important;
        border-radius: 0 !important;
        width: 100% !important;
    }
    body.woocommerce-checkout table.shop_table td,
    body.woocommerce-checkout table.shop_table th,
    body.woocommerce-checkout table.shop_table tr {
        border: none !important;
        background: transparent !important;
        padding: 8px 0 !important;
    }
    /* border-top removed per explicit request (checkout redesign round 2).
       font-weight:700 added HERE, not just on the earlier .order-total
       td/th rule (section 12) -- confirmed live that earlier rule was
       never actually winning: body.woocommerce-checkout table.shop_table
       td/th/tr above (2 classes, 3 tag selectors) has higher specificity
       than body.woocommerce-checkout .order-total td/th (2 classes, 2 tag
       selectors) purely on tag-selector count, once class count ties --
       its own font-weight:300 !important was silently beating the
       .order-total font-weight:700 !important regardless of source
       order, a pre-existing bug independent of anything else in this
       round. This rule already has table.shop_table AND .order-total in
       its own selector, matching or exceeding that specificity, so
       adding font-weight here is what actually wins. */
    body.woocommerce-checkout table.shop_table .order-total td,
    body.woocommerce-checkout table.shop_table .order-total th {
        font-weight: 700 !important;
        padding-top: 16px !important;
        border-top: 0 none !important;
    }
    /* Shipment row bullet (checkout redesign round 2) -- "Free shipping"
       renders inside WooCommerce own native
       <ul id="shipping_method"><li> list (wc_cart_totals_shipping_html()),
       which carries the browser default disc bullet and the default
       ul/li margin/padding -- confirmed live. Both zeroed so the text
       sits flush, matching every other value in this row (Subtotal,
       Total) which are plain text with no list markup at all. */
    body.woocommerce-checkout #shipping_method,
    body.woocommerce-checkout ul.woocommerce-shipping-methods {
        list-style: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    body.woocommerce-checkout #shipping_method li,
    body.woocommerce-checkout ul.woocommerce-shipping-methods li {
        list-style: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    body.woocommerce-checkout #order_review > div,
    body.woocommerce-checkout #order_review .woocommerce-checkout-review-order {
        background: transparent !important;
        border: none !important;
        box-shadow: none !important;
        border-radius: 0 !important;
        padding: 0 !important;
    }

    /* FIX 3 — Always-visible coupon input in summary col */
    /* Session 30 (checkout redesign Pass A): border-bottom removed per
       explicit request, same as the login toggle border above -- this
       is the winning declaration for the coupon form divider line
       (highest-specificity match, confirmed the same way). */
    /* Session 30 (checkout follow-up): display changed block -> flex on
       the FORM itself, not just each .form-row individually. The coupon
       form real markup is two separate sibling <p class="form-row">
       elements (one holding the input, one the button) plus a trailing
       clearfix div -- flexing each .form-row internally (kept below)
       only lays out that paragraph own single child, it does nothing
       to make the two paragraphs sit next to each other, so input and
       button were stacking vertically instead of sharing one row.
       Flexing the form itself makes its direct children -- the two
       .form-row paragraphs -- the actual flex items. */
    /* width:100% added (checkout redesign round 2) -- confirmed live the
       form was only 251px inside a 513px-wide column despite already
       being display:flex; a block-level flex container should span its
       parent full width by default, so an explicit width here is what
       actually guarantees it regardless of that. box-sizing so the
       column own padding is not doubled into this element too. */
    /* max-width:100% added (checkout redesign round 3) -- width:100%
       above was already winning against the old, lower-specificity
       "FIX 3/FIX 5" .checkout_coupon rules further up this file
       (max-width: 53%, from a pre-grid single-column layout draft), but
       max-width is a separate property that only those old rules were
       setting -- unopposed, it still clamped the rendered box to 53% of
       its container regardless of width:100% winning, confirmed live
       via getComputedStyle (width: 330px, maxWidth: 53%). Same class of
       bug as the min-width/width precedent elsewhere on this page --
       fixed the same way, by setting the competing property here rather
       than hunting down every old rule that still touches this
       selector. */
    body.woocommerce-checkout .silure-checkout-col--summary
      .checkout_coupon {
        display: flex !important;
        align-items: center !important;
        flex-wrap: wrap !important;
        gap: 8px !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        background: transparent !important;
        border: none !important;
        padding: 0 0 16px !important;
        margin: 0 0 24px !important;
        border-bottom: 0 none !important;
    }
    body.woocommerce-checkout .silure-checkout-col--summary
      .woocommerce-form-coupon-toggle {
        display: none !important;
    }
    body.woocommerce-checkout .silure-checkout-col--summary
      .checkout_coupon .clear {
        display: none !important;
    }
    body.woocommerce-checkout .silure-checkout-col--summary
      .checkout_coupon .form-row {
        display: flex !important;
        gap: 8px !important;
        align-items: center !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    body.woocommerce-checkout .silure-checkout-col--summary
      .checkout_coupon .form-row-first {
        flex: 1 1 auto !important;
        min-width: 140px !important;
    }
    body.woocommerce-checkout .silure-checkout-col--summary
      .checkout_coupon .form-row-last {
        flex: 0 0 auto !important;
    }
    body.woocommerce-checkout .silure-checkout-col--summary
      .checkout_coupon input[type="text"] {
        width: 100% !important;
        height: 44px !important;
        border: 1px solid #C8C4BE !important;
        border-radius: 0 !important;
        background: transparent !important;
        font-family: "DM Mono", monospace !important;
        font-size: 12px !important;
        padding: 0 12px !important;
        box-sizing: border-box !important;
    }
    body.woocommerce-checkout .silure-checkout-col--summary
      .checkout_coupon button[type="submit"] {
        height: 44px !important;
        padding: 0 20px !important;
        font-family: "DM Mono", monospace !important;
        font-size: 13px !important;
        font-weight: 300 !important;
        letter-spacing: 0.5px !important;
        text-transform: uppercase !important;
        cursor: pointer !important;
        white-space: nowrap !important;
    }
    /* color/background/border/radius (base + hover) now come from the
       single sitewide button hover standard block at the end of
       silure_kill_pink_late(). */

    /* FIX 4 — Hide duplicate price note and verbose tax rows */
    /* Retargeted to .silure-order-totals-table (checkout redesign,
       duplicate-Total-row fix) -- .woocommerce-checkout-review-order-table
       now lives on the items table only, see review-order.php own
       header comment. */
    body.woocommerce-checkout .silure-order-totals-table
      tfoot .fee + tr,
    body.woocommerce-checkout p.woocommerce-notices-wrapper + p,
    body.woocommerce-checkout .shop_table tfoot tr.tax-rate + tr.tax-rate {
        display: none !important;
    }
    body.woocommerce-checkout #order_review > p:last-of-type {
        display: none !important;
    }
    body.woocommerce-checkout .shop_table tfoot .tax-rate:not(:last-child) {
        display: none !important;
    }

    /* FIX 5 — Body gradient fallback (JS overrides with exact px at runtime) */
    body.woocommerce-checkout {
        background: linear-gradient(
            to right,
            #FBF9F6 0px, #FBF9F6 684px,
            #F0EDE8 684px, #F0EDE8 100%
        ) !important;
        min-height: 100vh !important;
        width: 100% !important;
        overflow-x: hidden !important;
    }

    /* FIX 1 — Login form: removed (Session 30) -- the native
       .woocommerce-form-login fields (p, .form-row, input[type=...],
       label, submit button, .lost_password link) no longer render;
       checkout/form-login.php theme override drops the
       woocommerce_login_form() call entirely, keeping only the toggle
       notice. This block (and its .form-row/input/label/button/
       lost_password sub-rules) styled fields that no longer exist. */

    /* FIX 2 — Hide CGST/SGST rows + duplicate paragraphs */
    body.woocommerce-checkout .shop_table tfoot tr.tax-rate {
        display: none !important;
    }
    body.woocommerce-checkout .shop_table tfoot tr td.amount small {
        display: none !important;
    }
    /* Coupon-invisible fix (checkout redesign follow-up) -- the
       unscoped descendant rule that used to sit here
       ("#order_review p", no ">") was written back when the only real
       <p> tags anywhere near #order_review were direct-child stray
       disclaimer paragraphs -- confirmed dormant for anything else at
       the time. Once the coupon form got JS-moved to sit inside
       #order_review (checkout redesign, coupon reposition round), its
       own native <p class="form-row"> elements became genuine, nested
       #order_review descendants too, and this rule silently started
       matching and hiding them -- confirmed live (getComputedStyle:
       display none, height 0, on both form-row paragraphs), same
       ID-beats-any-number-of-classes specificity pattern as the
       earlier coupon max-width bug (#order_review has ID specificity,
       beating the coupon own 4-class rule regardless of class count).
       The direct-child version immediately below already covers the
       original "stray disclaimer paragraph" intent without this
       collateral hit, so the unscoped duplicate was removed outright
       rather than patched. */
    body.woocommerce-checkout #order_review > p,
    body.woocommerce-checkout .silure-checkout-col--summary > p {
        display: none !important;
    }

    /* Session 30 (checkout redesign Pass A): removed a dead flexbox
       "order" block that used to live here (display:flex on the summary
       column + order:1/2/3/4 on the coupon toggle/form/#order_review_
       heading/#order_review). Its own comment said "coupon below order
       table" -- stale, from an earlier design where the coupon sat
       below the totals, before silure_checkout_dom_fix() (wp_footer JS)
       started inserting the coupon toggle+form at the TOP of this
       column instead. #order_review_heading does not exist in this
       template at all (confirmed) so that part of the rule matched
       nothing regardless. The rest was fully redundant with plain DOM
       order once the JS insertion already places the coupon
       toggle/form ahead of #order_review in the actual document --
       removing the flex context changes nothing visually, confirmed
       live before deploy. */

    /* FIX 1 — Hide CGST/SGST breakdown inside Total row */
    body.woocommerce-checkout .order-total .amount small,
    body.woocommerce-checkout .order-total td small,
    body.woocommerce-checkout .order-total .woocommerce-Price-amount small {
        display: none !important;
    }

    /* FIX 2 — Hide "All prices reflect today&#39;s silver market rate" row */
    body.woocommerce-checkout .silure-rate-row {
        display: none !important;
    }

    /* Remove woocommerce container padding on checkout —
       fills 1710px so grid 53% split matches body gradient exactly */
    body.woocommerce-checkout .woocommerce {
        padding-left: 0 !important;
        padding-right: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    /* ================================================================
       CHECKOUT REDESIGN: 50/50 BODY BG + CENTRED 1400px GRID
       All rules use !important to override earlier scattered blocks.
    ================================================================ */

    /* Body: true 50/50 split — no JS needed */
    body.woocommerce-checkout {
        background: linear-gradient(to right, #FBF9F6 0% 50%, #F0EDE8 50% 100%) !important;
        background-attachment: fixed !important;
        min-height: 100vh !important;
    }

    /* Order Received page fix -- WooCommerce gives this page the same
       "woocommerce-checkout" body class as the real two-column Checkout
       form (confirmed live: both "woocommerce-checkout" and
       "woocommerce-order-received" are present together in the body
       class list), so it was inheriting the 50/50 split gradient above
       too, even though thankyou.php is a single centred column with no
       .silure-checkout-col--form/--summary to visually justify a split.
       Result was a plain, unexplained two-tone background behind a
       centred receipt -- confirmed live via screenshot, a real bug, not
       a content-structure difference. The compound selector below (both
       classes) is more specific than the plain rule above regardless of
       source order, so it wins outright on this page only; the real
       Checkout form page (which never carries "woocommerce-order-received")
       is completely unaffected. */
    body.woocommerce-checkout.woocommerce-order-received {
        background: #FBF9F6 !important;
    }

    /* Order-pay page fix (Session 30 close-out, 2026-08-10) -- identical
       bug, same root cause, confirmed live: order-pay (/checkout/order-pay/
       {id}/) also carries the bare "woocommerce-checkout" body class
       (WooCommerce own wc_body_class() gives every checkout-page
       endpoint that class, since is_checkout() itself is true for both
       order-pay and order-received, not just the real Checkout page),
       so it inherited the same 50/50 split gradient meant only for the
       real two-column form. order-receipt.php (the actual content
       template for this page, themed the same day) is a single centred
       column with no .silure-checkout-col--form/--summary either, same
       as thankyou.php. Checked whether any THIRD checkout-page endpoint
       shares this same collision risk: confirmed directly in
       WooCommerce core own endpoint registration
       (class-wc-query.php) that only "order-pay" and "order-received"
       are registered under the checkout page itself
       (woocommerce_checkout_pay_endpoint / woocommerce_checkout_
       order_received_endpoint) -- "add-payment-method" is a My Account
       endpoint (woocommerce_myaccount_add_payment_method_endpoint), so
       it gets "woocommerce-account", never "woocommerce-checkout", and
       was never at risk. Both real checkout-page endpoints are now
       covered; there is no third. */
    body.woocommerce-checkout.woocommerce-order-pay {
        background: #FBF9F6 !important;
    }

    /* Columns: transparent — body supplies the colour */
    body.woocommerce-checkout .silure-checkout-col--form,
    body.woocommerce-checkout .silure-checkout-col--summary {
        background: transparent !important;
    }

    /* Grid: centered 1400px, equal 1fr/1fr */
    body.woocommerce-checkout .silure-checkout-grid {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        max-width: 1400px !important;
        width: 100% !important;
        margin: 0 auto !important;
        gap: 0 !important;
        align-items: start !important;
    }

    /* Bust Hello Elementor container and form width constraints */
    body.woocommerce-checkout .woocommerce,
    body.woocommerce-checkout form.woocommerce-checkout {
        max-width: none !important;
        width: 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    /* Left column */
    body.woocommerce-checkout .silure-checkout-col--form {
        padding: 40px 60px 64px 60px !important;
        box-sizing: border-box !important;
        width: 100% !important;
        min-height: 100vh !important;
    }

    /* Right column — sticky so it stays visible as form scrolls */
    body.woocommerce-checkout .silure-checkout-col--summary {
        padding: 40px 48px 64px 48px !important;
        box-sizing: border-box !important;
        width: 100% !important;
        min-height: 100vh !important;
        position: sticky !important;
        top: 0 !important;
        align-self: start !important;
    }

    /* Notices: constrained to align with form content */
    body.woocommerce-checkout .woocommerce-notices-wrapper,
    body.woocommerce-checkout .woocommerce-form-login-toggle,
    body.woocommerce-checkout .woocommerce-form-coupon-toggle {
        max-width: 700px !important;
        padding: 0 60px !important;
        box-sizing: border-box !important;
    }

    /* ── Responsive: tablet ─────────────────────────────────── */
    @media (max-width: 768px) {
        body.woocommerce-checkout {
            background: #FBF9F6 !important;
        }
        body.woocommerce-checkout .silure-checkout-grid {
            grid-template-columns: 1fr !important;
            max-width: 100% !important;
        }
        body.woocommerce-checkout .silure-checkout-col--form {
            padding: 32px 24px !important;
            min-height: auto !important;
        }
        body.woocommerce-checkout .silure-checkout-col--summary {
            background: #F0EDE8 !important;
            padding: 32px 24px !important;
            position: static !important;
            min-height: auto !important;
        }
        body.woocommerce-checkout .woocommerce-notices-wrapper,
        body.woocommerce-checkout .woocommerce-form-login-toggle,
        body.woocommerce-checkout .woocommerce-form-coupon-toggle {
            padding: 0 24px !important;
            max-width: 100% !important;
        }
    }

    /* ── Responsive: phone ──────────────────────────────────── */
    @media (max-width: 480px) {
        body.woocommerce-checkout .silure-checkout-col--form {
            padding: 24px 16px !important;
        }
        body.woocommerce-checkout .silure-checkout-col--summary {
            padding: 24px 16px !important;
        }
        body.woocommerce-checkout .woocommerce-notices-wrapper,
        body.woocommerce-checkout .woocommerce-form-login-toggle,
        body.woocommerce-checkout .woocommerce-form-coupon-toggle {
            padding: 0 16px !important;
        }
    }

    /* ================================================================
       CHECKOUT PADDING — 38px MEJURI UNIFORM + CENTRED GRID
       Grid is 1400px centered in viewport; 50/50 body bg splits at
       exactly the column midpoint. 38px inner padding on both cols.
    ================================================================ */

    body.woocommerce-checkout .silure-checkout-col--form {
        padding: 40px 38px 64px 38px !important;
        background: transparent !important;
        box-sizing: border-box !important;
    }

    body.woocommerce-checkout .silure-checkout-col--summary {
        padding: 40px 38px 64px 38px !important;
        background: transparent !important;
        box-sizing: border-box !important;
        min-height: calc(100vh - 64px) !important;
    }

    /* Full-width breakout for the Returning Customer notice, coupon,
       and Subtotal/Shipment/Total table -- moved to JS
       (silure_checkout_width_breakout_js(), wp_footer). A pure-CSS
       calc(100% + 76px) + negative-margin version was tried here first
       and DID move these three from 623px to ~699px (real progress,
       not nothing), but never reliably closed the last ~1px against
       the column own live-measured width even after ruling out every
       specificity/cascade explanation (confirmed live: bumping the
       calc offset, hardcoding a literal px value, even stacking a
       second later !important stylesheet rule on top all produced the
       identical result -- getComputedStyle kept reporting a value 1px
       under whatever was declared). A genuine inline style.setProperty
       call using the important priority flag, applied directly to the
       element itself, by contrast, hit the column own live width
       exactly every time it was tested. The real
       fix reads each column own actual rendered width + padding at
       runtime and applies it the same way -- also more correct than a
       fixed calc() offset, since it stays exact across the responsive
       breakpoints below instead of assuming a fixed 38px padding. */

    /* Grid centered so column split aligns with background */
    body.woocommerce-checkout .silure-checkout-grid {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        width: 100% !important;
        max-width: 1400px !important;
        margin: 0 auto !important;
        align-items: start !important;
    }

    /* Notices match left col padding */
    body.woocommerce-checkout .woocommerce-form-login-toggle,
    body.woocommerce-checkout .woocommerce-form-coupon-toggle {
        float: none !important;
        position: static !important;
        padding: 16px 38px !important;
        max-width: 700px !important;
        width: 100% !important;
        box-sizing: border-box !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    /* Mobile */
    @media (max-width: 768px) {
        body.woocommerce-checkout .silure-checkout-grid {
            grid-template-columns: 1fr !important;
            max-width: 100% !important;
        }
        body.woocommerce-checkout .silure-checkout-col--form,
        body.woocommerce-checkout .silure-checkout-col--summary {
            padding: 24px 20px !important;
        }
        body.woocommerce-checkout .silure-checkout-col--summary {
            background: #F0EDE8 !important;
            min-height: auto !important;
        }
        body.woocommerce-checkout .woocommerce-form-login-toggle {
            padding: 16px 20px !important;
            max-width: 100% !important;
        }
    }

    /* Kill Elementor woocommerce grid — form fills full 1710px parent */
    body.woocommerce-checkout .woocommerce {
        display: block !important;
        grid-template-columns: none !important;
    }

    /* Panel width: parent+panel specificity beats all old 1-class width:40% rules */
    .silure-cart-drawer .silure-cart-panel,
    .silure-wishlist-drawer .silure-wishlist-panel,
    .silure-search-drawer .silure-search-panel {
        width: 100% !important;
        max-width: 100% !important;
        position: relative !important;
        left: 0 !important;
        right: 0 !important;
        box-sizing: border-box !important;
    }

    /* Panel z-index above overlay — panel selectors only, no broad > * */
    .silure-cart-drawer .silure-cart-panel     { z-index: 3001 !important; }
    .silure-wishlist-drawer .silure-wishlist-panel { z-index: 3001 !important; }
    .silure-search-drawer .silure-search-panel { z-index: 3001 !important; }

    /* ── WooCommerce lost-password page ─────────────────────────────── */
    body.woocommerce-account.woocommerce-lost-password #main,
    body.woocommerce-account.woocommerce-lost-password .site-main {
        max-width: 560px !important;
        margin: 80px auto !important;
        padding: 0 24px !important;
    }
    body.woocommerce-account.woocommerce-lost-password h1,
    body.woocommerce-account.woocommerce-lost-password h2 {
        font-family: "Mulish", sans-serif !important;
        font-size: 22px !important;
        font-weight: 700 !important;
        color: #050505 !important;
        margin-bottom: 24px !important;
        text-transform: uppercase !important;
    }
    body.woocommerce-account.woocommerce-lost-password .woocommerce-ResetPassword p {
        font-family: "DM Mono", monospace !important;
        font-size: 13px !important;
        font-weight: 300 !important;
        color: #7A7672 !important;
        margin-bottom: 24px !important;
        line-height: 1.7 !important;
    }
    body.woocommerce-account.woocommerce-lost-password label {
        font-family: "DM Mono", monospace !important;
        font-size: 10px !important;
        font-weight: 300 !important;
        letter-spacing: 2px !important;
        text-transform: uppercase !important;
        color: #7A7672 !important;
        display: block !important;
        margin-bottom: 6px !important;
    }
    body.woocommerce-account.woocommerce-lost-password input[type="text"],
    body.woocommerce-account.woocommerce-lost-password input[type="email"] {
        width: 100% !important;
        border: none !important;
        border-bottom: 1px solid #050505 !important;
        border-radius: 0 !important;
        background: transparent !important;
        font-family: "DM Mono", monospace !important;
        font-size: 13px !important;
        font-weight: 300 !important;
        padding: 13px 0 !important;
        box-sizing: border-box !important;
        margin-bottom: 16px !important;
    }
    body.woocommerce-account.woocommerce-lost-password input[type="submit"],
    body.woocommerce-account.woocommerce-lost-password button[type="submit"] {
        width: 100% !important;
        height: 49px !important;
        background: #050505 !important;
        color: #FBF9F6 !important;
        border: none !important;
        border-radius: 0 !important;
        font-family: "DM Mono", monospace !important;
        font-size: 13px !important;
        font-weight: 300 !important;
        letter-spacing: 2px !important;
        text-transform: uppercase !important;
        cursor: pointer !important;
    }

    /* [Session 22] 5 text-editor widgets: standardise to 13px/1.7 DM Mono.
       Overrides Elementor per-widget font-size/line-height (post-4240.css,
       post-69.css). Font-family and letter-spacing come from the global p reset. */
    .elementor-element-brdtxt01 p,
    .elementor-element-abtsttx1 p,
    .elementor-element-abtvtx1 p,
    .elementor-element-abtvtx2 p,
    .elementor-element-abtvtx3 p {
        font-size: 13px !important;
        line-height: 1.7 !important;
    }

/* ── FILTERS DRAWER (Session 136, exact mockup spec) ────────────────────
   Deliberately mirrors .silure-cart-drawer/.silure-cart-overlay/
   .silure-cart-panel's own mechanism exactly (same z-index scheme, same
   transition timing/easing, same overlay colour/opacity) — genuinely
   the same drawer pattern under a new component name, sliding from the
   LEFT instead of the right, registered into the same shared JS
   controller (window.silureDrawer, silure-drawers.js) rather than a
   one-off reimplementation.
   Background — verified live via getComputedStyle() against the real
   .silure-cart-panel on production (rgb(255, 255, 255)), not assumed
   from the design-system's own --silure-bg token: the real cart drawer
   is genuinely white, not cream, so this panel matches that confirmed
   real value rather than the token, per explicit instruction to defer
   to whichever is actually true. */
.silure-filters-drawer {
    position: fixed;
    inset: 0;
    z-index: 3000;
    visibility: hidden;
    pointer-events: none;
}
.silure-filters-drawer.is-open {
    visibility: visible;
    pointer-events: all;
}
.silure-filters-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    z-index: 2998;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.35s ease;
}
.silure-filters-overlay.is-open {
    opacity: 1;
    pointer-events: all;
}
.silure-filters-panel {
    /* Session 138 — width/max-width removed from here: now comes from
       the real UNIVERSAL DRAWER WIDTH shared rule this panel joined
       (see that rule's own comment) — one source of truth instead of a
       second, driftable number in this file. */
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
    background: #FFFFFF;
    transform: translateX(-100%);
    transition: transform 0.4s cubic-bezier(0.4,0,0.2,1);
    overflow: hidden;
}
.silure-filters-drawer.is-open .silure-filters-panel {
    transform: translateX(0);
}
/* Header — its own real flex row now (title + close together), not an
   absolutely-positioned close button floating over scrollable content.
   Exact mockup spec: padding 22px 26px. */
.silure-filters-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 22px 26px;
    flex-shrink: 0;
}
.silure-filters-close {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
}
/* Session 138 — was a font-size "×" glyph; now the identical SVG the
   Account drawer's own close button uses (same path, 14x14, stroke-
   width 1.5), per this session's explicit "match the Account drawer
   exactly" call. Color lives on the SVG itself, not the button — same
   reason as .silure-jump-icon above: silure-core.php's sitewide "kill
   button pink" rule forces `color: inherit !important` on every real
   button/[type=button] and never touches descendants (an SVG child is
   neither a button nor a [type=button] itself), so this is the one
   place real color reliably applies. */
/* Session 138 — real bug found via getComputedStyle(): the Account
   drawer's own close button DECLARES color:#050505 in its source
   (.silure-acct-close), but that's set on the BUTTON element itself,
   which is subject to the same sitewide "!important color:inherit"
   rule diagnosed elsewhere this session — its real, live computed
   color is #444444 (rgb(68,68,68)), not #050505. Matched to that real,
   actual value here (not the source's stated-but-never-applied one),
   per the explicit instruction to mirror Account's real current
   values. Not fixed on the Account drawer itself — out of this
   session's scope, flagged for Manish separately rather than changed
   here without being asked. */
.silure-filters-close svg {
    display: block;
    color: #444444;
}
.silure-filters-body {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 0 26px;
}
/* Session 136 — deliberately NO border-top/line here: the explicit
   requirement was no divider lines anywhere in this drawer. The sticky
   footer is separated from the scrollable content purely by a soft
   upward shadow + its own background, not a hard rule. */
.silure-filters-footer {
    flex-shrink: 0;
    padding: 20px 26px;
    background: #FFFFFF;
    box-shadow: 0 -8px 16px -8px rgba(5, 5, 5, 0.08);
    position: relative;
    z-index: 1;
}

@media (max-width: 768px) {
    /* Session 139 — real bug, confirmed via source read against the
       real Account/cart mobile rule ("Mobile: all drawers full-screen",
       earlier in this file): this override was `width:100%;
       max-width:none;`, with no `!important` — but the shared desktop
       "UNIVERSAL DRAWER WIDTH" rule this panel joined (Session 138) is
       `width:40% !important; max-width:560px !important;`, and that
       rule is NOT conditioned to desktop only, so it still matches at
       mobile widths too. A non-important rule can never override an
       already-applied !important one, at any media width, regardless
       of load order or specificity — so this override was silently
       never taking effect at all, leaving the drawer stuck at ~40% of
       the viewport (a real, narrow sliver) on every real mobile
       device, not the full-screen width every other drawer correctly
       gets there. Account/cart's own real mobile value is `100vw
       !important; max-width:100vw !important;` (not `100%`, and
       genuinely !important) — matched here exactly, same technique,
       same values; their own rule is untouched. */
    .silure-filters-panel {
        width: 100vw !important;
        max-width: 100vw !important;
    }
    .silure-filters-body {
        padding: 0 20px;
    }
    .silure-filters-footer {
        padding: 16px 20px;
    }
}

    