/*
Theme Name: TBM
Theme URI: https://thriftbymail.com
Author: TBM
Description: Thrift By Mail (thriftbymail.com) — a custom block theme. Paper / panel / champagne neutrals, deep brand green, lime accent.
Version: 1.2.59
Requires at least: 6.4
Requires PHP: 8.0
License: GPL-2.0-or-later
Text Domain: tbm
*/

/* Tokens (mirrored from theme.json):
   paper      #fbfcfa  page bg
   panel      #ffffff  cards / raised
   champagne  #f5efe2  warm accent regions
   line       #dfe7e2  borders, dividers
   ink        #101312  body text
   muted      #5c6662  secondary text
   brand      #103629  primary green
   brand-2    #1d553f  hover green
   lime       #b5e853  spot accent
*/

* { box-sizing: border-box; }

body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    -webkit-font-smoothing: antialiased;
    background: var(--wp--preset--color--paper);
    color: var(--wp--preset--color--ink);
    margin: 0;
}

a { color: inherit; }
img { max-width: 100%; height: auto; display: block; }

/* ============================================================ *
 *  SOLD POPUP — recent sales notification (live from vfas)
 * ============================================================ */
.tbm-sold-popup {
    position: fixed;
    bottom: 1.25rem;
    left: 1.25rem;
    z-index: 80;
    width: 340px;
    max-width: calc(100vw - 2.5rem);
    background: var(--wp--preset--color--panel);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: 14px;
    box-shadow: 0 14px 36px -12px rgba(16, 19, 18, 0.28);
    padding: .65rem .65rem .65rem .7rem;
    opacity: 0;
    transform: translateY(16px);
    transition: opacity .35s ease, transform .35s ease;
    pointer-events: none;
}
.tbm-sold-popup.is-visible { opacity: 1; transform: translateY(0); pointer-events: auto; }
.tbm-sold-close {
    position: absolute;
    top: 6px; right: 6px;
    width: 22px; height: 22px;
    border-radius: 50%;
    background: var(--wp--preset--color--champagne);
    border: 0;
    color: var(--wp--preset--color--muted);
    cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
    padding: 0;
    transition: background .15s ease, color .15s ease;
}
.tbm-sold-close:hover { background: var(--wp--preset--color--brand); color: var(--wp--preset--color--paper); }
.tbm-sold-link { display: flex; gap: .7rem; align-items: center; text-decoration: none; color: inherit; padding-right: 1rem; }
.tbm-sold-img {
    width: 58px; height: 58px;
    border-radius: 9px;
    object-fit: cover;
    flex: 0 0 auto;
    background: var(--wp--preset--color--champagne);
    border: 1px solid var(--wp--preset--color--line);
}
.tbm-sold-body { flex: 1; min-width: 0; }
.tbm-sold-title {
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    font-size: 0.82rem;
    color: var(--wp--preset--color--ink);
    line-height: 1.3;
    margin: 0 0 .15rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.tbm-sold-prices { display: flex; align-items: center; gap: .4rem; margin: 0 0 .15rem; font-family: 'Inter', sans-serif; }
.tbm-sold-orig { text-decoration: line-through; color: var(--wp--preset--color--muted); font-size: 0.78rem; font-weight: 500; }
.tbm-sold-sale { color: var(--wp--preset--color--brand); font-size: 0.92rem; font-weight: 800; }
.tbm-sold-pct {
    background: var(--wp--preset--color--lime);
    color: var(--wp--preset--color--ink);
    font-size: 0.62rem;
    font-weight: 800;
    padding: .15rem .5rem;
    border-radius: 999px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    line-height: 1.4;
}
.tbm-sold-meta { font-size: 0.7rem; color: var(--wp--preset--color--muted); margin: 0; display: flex; align-items: center; gap: .4rem; letter-spacing: 0.02em; }
.tbm-sold-dot {
    width: 6px; height: 6px;
    border-radius: 50%;
    background: var(--wp--preset--color--lime);
    box-shadow: 0 0 0 0 rgba(181, 232, 83, .8);
    animation: tbm-pulse 2.4s ease-out infinite;
}
@media (max-width: 480px) {
    .tbm-sold-popup { left: .75rem; right: .75rem; bottom: .75rem; width: auto; }
    .tbm-sold-img { width: 50px; height: 50px; }
    .tbm-sold-title { font-size: 0.78rem; }
}

/* ============================================================ *
 * 3. BUTTONS
 * ============================================================ */
.tbm-btn,
a.tbm-btn {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    background: var(--wp--preset--color--brand);
    color: var(--wp--preset--color--paper);
    text-decoration: none;
    padding: 0.7rem 1.3rem;
    border-radius: 999px;
    font-weight: 700;
    font-size: 0.85rem;
    letter-spacing: 0.02em;
    border: 0;
    cursor: pointer;
    transition: background .2s ease, transform .2s ease;
}
.tbm-btn:hover,
a.tbm-btn:hover {
    background: var(--wp--preset--color--brand-2);
    color: var(--wp--preset--color--paper);
    transform: translateY(-1px);
}
.tbm-btn--ghost {
    background: transparent;
    color: var(--wp--preset--color--brand);
    border: 1.5px solid var(--wp--preset--color--brand);
}
.tbm-btn--ghost:hover {
    background: var(--wp--preset--color--brand);
    color: var(--wp--preset--color--paper);
}

/* ============================================================ *
 * 4. HERO
 * ============================================================ */
.tbm-hero {
    max-width: 1280px;
    margin: 0 auto;
    padding: 5rem 2rem 3rem;
}
.tbm-hero--centered { text-align: center; }
.tbm-hero-eyebrow {
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    font-size: 0.78rem;
    margin: 0 0 1.5rem;
    color: var(--wp--preset--color--muted);
}
.tbm-hero-logo {
    display: block;
    width: 92%;
    max-width: 720px;
    height: auto;
    margin: 0 auto 1.5rem;
}
.tbm-hero-headline {
    font-family: 'Inter', sans-serif;
    font-weight: 800;
    color: var(--wp--preset--color--brand);
    font-size: clamp(2.6rem, 6.5vw, 5rem);
    line-height: 1;
    margin: 0 0 1.5rem;
    letter-spacing: -0.01em;
    max-width: 820px;
}
.tbm-hero--centered .tbm-hero-headline { margin-left: auto; margin-right: auto; }
.tbm-hero-headline em {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic;
    font-weight: 700;
    color: var(--wp--preset--color--brand-2);
}
.tbm-hero-desc {
    max-width: 620px;
    font-size: 1.02rem;
    line-height: 1.65;
    color: var(--wp--preset--color--muted);
    margin: 0 0 2rem;
}
.tbm-hero--centered .tbm-hero-desc { margin-left: auto; margin-right: auto; }
.tbm-hero-cta { display: inline-flex; gap: .75rem; flex-wrap: wrap; }
.tbm-hero--centered .tbm-hero-cta { justify-content: center; }

/* ============================================================ *
 * 5. SECTION HEADERS
 * ============================================================ */
.tbm-section {
    max-width: 1280px;
    margin: 0 auto;
    padding: 4rem 2rem 1.5rem;
}
.tbm-section--center { text-align: center; }
.tbm-section-label {
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.22em;
    font-size: 0.74rem;
    margin: 0 0 .9rem;
    color: var(--wp--preset--color--muted);
}
.tbm-section-headline {
    font-family: 'Inter', sans-serif;
    font-weight: 800;
    color: var(--wp--preset--color--brand);
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1.05;
    margin: 0 0 1rem;
    letter-spacing: -0.01em;
    max-width: 820px;
}
.tbm-section--center .tbm-section-headline { margin-left: auto; margin-right: auto; }
.tbm-section-headline em {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic;
    font-weight: 700;
    color: var(--wp--preset--color--brand-2);
}
.tbm-section-desc {
    max-width: 700px;
    font-size: 1rem;
    line-height: 1.6;
    margin: 0 0 1rem;
    color: var(--wp--preset--color--muted);
}
.tbm-section--center .tbm-section-desc { margin-left: auto; margin-right: auto; }

/* legacy heading style for /about/, /contact/, etc. */
.tbm-section-heading {
    font-family: 'Inter', sans-serif;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--wp--preset--color--brand);
    font-size: clamp(1.6rem, 3.5vw, 2.4rem);
    margin: 0 0 .6rem;
}
.tbm-section-rule {
    width: 36px;
    height: 2px;
    background: var(--wp--preset--color--brand);
    margin: .25rem 0 1rem;
    border: 0;
}
.tbm-section--center .tbm-section-rule { margin-left: auto; margin-right: auto; }
.tbm-section-sub {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic;
    color: var(--wp--preset--color--brand-2);
    font-size: 1.05rem;
    margin: 0 0 2rem;
}

/* ============================================================ *
 * 6. CATEGORY GRID (transparent + full image)
 * ============================================================ */
.tbm-cat-grid {
    max-width: 1280px;
    margin: 0 auto;
    padding: 1rem 2rem 4rem;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.25rem;
}
.tbm-cat-card {
    display: block;
    text-decoration: none;
    color: inherit;
    background: transparent;
    transition: transform .35s ease;
}
.tbm-cat-card:hover { transform: translateY(-6px); }
.tbm-cat-card img { width: 100%; height: auto; display: block; }

/* ============================================================ *
 *  INVENTORY NAV — appears on shop, category, and dynamic pages
 *  Horizontal pill bar of all browse lanes, mobile-scrollable.
 * ============================================================ */
.tbm-inventory-nav {
    max-width: 1280px;
    margin: 0 auto 2rem;
    padding: 0 1.5rem;
    text-align: center;
}
.tbm-inventory-nav-inner {
    display: inline-flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .55rem .65rem;
    padding: 1rem 1.25rem;
    background: var(--wp--preset--color--panel);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: 999px;
}
.tbm-inventory-pill {
    display: inline-block;
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    font-size: 0.82rem;
    letter-spacing: 0.02em;
    color: var(--wp--preset--color--ink);
    background: transparent;
    border: 1px solid transparent;
    padding: .55rem 1.05rem;
    border-radius: 999px;
    text-decoration: none;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
    white-space: nowrap;
}
.tbm-inventory-pill:hover {
    background: var(--wp--preset--color--champagne);
    color: var(--wp--preset--color--brand);
}
.tbm-inventory-pill.is-active {
    background: var(--wp--preset--color--brand);
    color: var(--wp--preset--color--paper);
    border-color: var(--wp--preset--color--brand);
}
.tbm-inventory-pill.is-active:hover {
    background: var(--wp--preset--color--brand-2);
    color: var(--wp--preset--color--paper);
}
.tbm-inventory-more {
    position: relative;
}
.tbm-inventory-more::after {
    content: "";
    position: absolute;
    top: 100%;
    left: -14px;
    right: -14px;
    height: 18px;
    z-index: 29;
}
.tbm-inventory-pill--more {
    appearance: none;
    cursor: pointer;
}
.tbm-inventory-pill--more::after {
    content: "\25BE";
    display: inline-block;
    margin-left: .45rem;
    font-size: .8em;
}
.tbm-inventory-more-menu {
    position: absolute;
    top: calc(100% + .3rem);
    right: 0;
    min-width: 240px;
    display: none;
    padding: .65rem;
    background: #fff;
    border: 1px solid var(--wp--preset--color--line);
    border-radius: 18px;
    box-shadow: 0 14px 34px rgba(17, 17, 17, .10);
    z-index: 31;
}
.tbm-inventory-more:hover .tbm-inventory-more-menu,
.tbm-inventory-more:focus-within .tbm-inventory-more-menu {
    display: grid;
    gap: .2rem;
}
.tbm-inventory-more-link {
    display: block;
    padding: .85rem 1rem;
    border-radius: 12px;
    color: var(--wp--preset--color--ink);
    font-family: 'Inter', sans-serif;
    font-size: 0.82rem;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
}
.tbm-inventory-more-link:hover {
    background: var(--wp--preset--color--champagne);
    color: var(--wp--preset--color--brand);
}
.tbm-inventory-more-link.is-active {
    background: rgba(15, 59, 46, .08);
    color: var(--wp--preset--color--brand);
}
.tbm-subcategory-nav {
    max-width: 1180px;
    margin: -1rem auto 1.5rem;
    padding: 0 1.5rem;
    text-align: center;
}
.tbm-subcategory-nav__label {
    display: block;
    margin: 0 0 .6rem;
    font-family: 'Oswald', sans-serif;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .14em;
    line-height: 1;
    text-transform: uppercase;
    color: var(--wp--preset--color--muted);
}
.tbm-subcategory-nav__scroll {
    display: inline-flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .45rem;
}
.tbm-subcategory-pill {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: .48rem .85rem;
    border: 1px solid var(--wp--preset--color--line);
    border-radius: 999px;
    background: rgba(255, 255, 255, .72);
    color: var(--wp--preset--color--ink);
    font-family: 'Oswald', sans-serif;
    font-size: .78rem;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
    box-shadow: 0 6px 20px rgba(17, 17, 17, .04);
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.tbm-subcategory-pill em {
    font-style: normal;
    font-size: .68rem;
    color: var(--wp--preset--color--muted);
}
.tbm-subcategory-pill:hover {
    background: var(--wp--preset--color--champagne);
    color: var(--wp--preset--color--brand);
}
.tbm-subcategory-pill.is-active {
    background: var(--wp--preset--color--brand);
    border-color: var(--wp--preset--color--brand);
    color: var(--wp--preset--color--paper);
}
.tbm-subcategory-pill.is-active em {
    color: rgba(255, 255, 255, .72);
}
@media (max-width: 720px) {
    .tbm-inventory-nav { padding: 0 .75rem; }
    .tbm-inventory-nav-inner {
        flex-wrap: nowrap;
        justify-content: flex-start;
        overflow-x: auto;
        scrollbar-width: none;
        -ms-overflow-style: none;
        border-radius: 14px;
        padding: .65rem .85rem;
    }
    .tbm-inventory-nav-inner::-webkit-scrollbar { display: none; }
    .tbm-inventory-pill { flex: 0 0 auto; font-size: 0.78rem; padding: .5rem .9rem; }
    .tbm-inventory-more-menu {
        right: auto;
        left: 0;
        min-width: 200px;
    }
    .tbm-subcategory-nav {
        margin-top: -.75rem;
        padding: 0 .75rem;
        text-align: left;
    }
    .tbm-subcategory-nav__scroll {
        display: flex;
        flex-wrap: nowrap;
        justify-content: flex-start;
        overflow-x: auto;
        padding-bottom: .25rem;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }
    .tbm-subcategory-nav__scroll::-webkit-scrollbar { display: none; }
    .tbm-subcategory-pill { flex: 0 0 auto; }
}

/* ============================================================ *
 * 7. CHIPS
 * ============================================================ */
.tbm-chip-row {
    max-width: 980px;
    margin: 0 auto;
    padding: .5rem 2rem 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .65rem;
}
.tbm-chip {
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    font-size: 0.85rem;
    color: var(--wp--preset--color--brand);
    background: var(--wp--preset--color--panel);
    border: 1px solid var(--wp--preset--color--line);
    padding: 0.65rem 1.15rem;
    border-radius: 999px;
    cursor: pointer;
    transition: all .2s ease;
    text-decoration: none;
    display: inline-block;
}
.tbm-chip:hover {
    background: var(--wp--preset--color--brand);
    color: var(--wp--preset--color--paper);
    border-color: var(--wp--preset--color--brand);
}
.tbm-chip.is-active {
    background: var(--wp--preset--color--brand);
    color: var(--wp--preset--color--paper);
    border-color: var(--wp--preset--color--brand);
}

/* ============================================================ *
 * 8. STATS / CARDS / PILLARS / REVIEWS / WHY / GUIDES
 *    (kept available for future use; current homepage doesn't use them all)
 * ============================================================ */
.tbm-stats {
    max-width: 1280px;
    margin: 0 auto;
    padding: 1rem 2rem 4rem;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
}
.tbm-stat {
    background: var(--wp--preset--color--panel);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: 14px;
    padding: 1.4rem 1.5rem;
}
.tbm-stat-num {
    font-family: 'Inter', sans-serif;
    font-weight: 800;
    font-size: 2.1rem;
    color: var(--wp--preset--color--brand);
    margin: 0 0 .35rem;
    letter-spacing: -0.02em;
}
.tbm-stat-label { font-size: 0.85rem; line-height: 1.5; color: var(--wp--preset--color--muted); margin: 0; }

.tbm-pillars {
    max-width: 1280px;
    margin: 0 auto;
    padding: 2rem 2rem;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    border-top: 1px solid var(--wp--preset--color--line);
    border-bottom: 1px solid var(--wp--preset--color--line);
}
.tbm-pillar { text-align: center; padding: 0 1rem; }
.tbm-pillar-title {
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-size: 0.85rem;
    margin: 0 0 .55rem;
    color: var(--wp--preset--color--brand);
}
.tbm-pillar-body { font-size: 0.88rem; line-height: 1.55; margin: 0; color: var(--wp--preset--color--muted); }

.tbm-reviews {
    max-width: 1280px;
    margin: 0 auto;
    padding: 4rem 2rem;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
}
.tbm-review {
    background: var(--wp--preset--color--panel);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: 14px;
    padding: 1.2rem 1.3rem;
    font-size: 0.9rem;
    line-height: 1.55;
}
.tbm-review-stars { color: var(--wp--preset--color--brand); letter-spacing: 0.1em; font-size: 0.9rem; margin-bottom: .55rem; }
.tbm-review-quote { margin: 0 0 .8rem; font-style: italic; }
.tbm-review-author { font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em; color: var(--wp--preset--color--muted); }

.tbm-why {
    max-width: 1280px;
    margin: 0 auto;
    padding: 1rem 2rem 4rem;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
}
.tbm-why-card {
    background: var(--wp--preset--color--panel);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: 16px;
    padding: 2rem 2rem;
}
.tbm-why-label { font-family: 'Inter', sans-serif; font-weight: 700; text-transform: uppercase; letter-spacing: 0.18em; font-size: 0.72rem; margin: 0 0 .8rem; color: var(--wp--preset--color--muted); }
.tbm-why-headline { font-family: 'Inter', sans-serif; font-weight: 800; font-size: clamp(1.4rem, 2.2vw, 1.85rem); line-height: 1.1; margin: 0 0 1rem; color: var(--wp--preset--color--brand); letter-spacing: -0.01em; }
.tbm-why-headline em { font-family: 'Playfair Display', Georgia, serif; font-style: italic; font-weight: 700; color: var(--wp--preset--color--brand-2); }
.tbm-why-body { font-size: 0.95rem; line-height: 1.6; margin: 0 0 1rem; color: var(--wp--preset--color--ink); }
.tbm-why-list { margin: 0; padding: 0 0 0 1.1rem; font-size: 0.92rem; line-height: 1.7; }
.tbm-why-list li { margin-bottom: .25rem; }

/* ============================================================ *
 * 9. PRODUCTS WRAP (used by [tbm_dynamic_grid])
 * ============================================================ */
.tbm-products-wrap {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 2rem 4rem;
}
.tbm-empty {
    text-align: center;
    font-family: 'Playfair Display', serif;
    font-style: italic;
    font-size: 1.1rem;
    padding: 4rem 1rem;
    color: var(--wp--preset--color--muted);
}

/* ============================================================ *
 * 10. FOOTER
 * ============================================================ */
.tbm-footer {
    background: var(--wp--preset--color--brand);
    color: var(--wp--preset--color--paper);
    padding: 3.5rem 2rem 2rem;
    text-align: center;
}
.tbm-footer a { color: var(--wp--preset--color--paper); }
.tbm-footer-tagline {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic;
    font-size: clamp(1.4rem, 2.5vw, 1.9rem);
    margin: 0 0 .4rem;
    line-height: 1;
}
.tbm-footer-body {
    max-width: 720px;
    margin: 0 auto 1.6rem;
    font-size: 0.88rem;
    line-height: 1.6;
    opacity: .85;
}
.tbm-footer-nav {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .8rem 1.4rem;
    margin: 1.2rem auto;
    max-width: 920px;
    padding: 0 1rem;
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.13em;
    font-size: 0.74rem;
}
.tbm-footer-nav a {
    color: var(--wp--preset--color--paper);
    text-decoration: none;
    opacity: 0.85;
    transition: opacity .2s ease, color .2s ease;
}
.tbm-footer-nav a:hover { opacity: 1; color: var(--wp--preset--color--lime); }
.tbm-footer-meta {
    font-size: 0.74rem;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    opacity: 0.5;
    margin-top: 1.6rem;
}

/* ============================================================ *
 * RESPONSIVE
 * ============================================================ */
@media (max-width: 1100px) {
    .tbm-stats        { grid-template-columns: repeat(2, 1fr); }
    .tbm-cat-grid     { grid-template-columns: repeat(2, 1fr); }
    .tbm-pillars      { grid-template-columns: repeat(2, 1fr); gap: 1.5rem; }
    .tbm-reviews      { grid-template-columns: repeat(2, 1fr); }
    .tbm-why          { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
    .tbm-hero             { padding: 3rem 1.25rem 2rem; }
    .tbm-stats            { padding: 1rem 1.25rem 3rem; gap: .75rem; }
    .tbm-section          { padding: 3rem 1.25rem 1.5rem; }
    .tbm-pillars          { padding: 1.5rem 1.25rem; }
    .tbm-reviews          { padding: 3rem 1.25rem; grid-template-columns: 1fr; }
    .tbm-cat-grid         { padding: 1rem 1.25rem 4rem; grid-template-columns: 1fr; gap: 1rem; }
    .tbm-why              { padding: 1rem 1.25rem 4rem; }
}

/* ============================================================ *
 * WOOCOMMERCE — product grid + cards
 * ============================================================ */
.woocommerce ul.products,
ul.products,
ul.tbm-products {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 1.5rem !important;
}
@media (max-width: 1100px) { .woocommerce ul.products, ul.products, ul.tbm-products { grid-template-columns: repeat(3, 1fr) !important; } }
@media (max-width: 760px)  { .woocommerce ul.products, ul.products, ul.tbm-products { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 460px)  { .woocommerce ul.products, ul.products, ul.tbm-products { grid-template-columns: 1fr !important; } }

/* Card */
.woocommerce ul.products li.product,
ul.products li.product,
li.tbm-product {
    background: var(--wp--preset--color--panel) !important;
    border: 1px solid var(--wp--preset--color--line) !important;
    border-radius: 12px !important;
    padding: .9rem .9rem 1rem !important;
    margin: 0 !important;
    width: auto !important;
    float: none !important;
    text-align: left !important;
    list-style: none !important;
    display: flex !important;
    flex-direction: column !important;
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
    position: relative;
}
li.tbm-product:hover,
.woocommerce ul.products li.product:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 30px -16px rgba(16, 19, 18, 0.22);
    border-color: var(--wp--preset--color--brand) !important;
}

/* Image+title+price link (no underline, inherit color) */
li.tbm-product .tbm-product-link,
.woocommerce ul.products li.product > a,
.woocommerce ul.products li.product .woocommerce-LoopProduct-link {
    display: block !important;
    text-decoration: none !important;
    color: inherit !important;
}

/* Kill WC's clearfix pseudo-elements — in a grid they steal cells and offset the first row */
.woocommerce ul.products::before,
.woocommerce ul.products::after,
ul.products::before,
ul.products::after {
    display: none !important;
    content: none !important;
}

/* Image wrapper — keep simple. No forced aspect-ratio on the link/img
   (that broke the add-to-cart button which is also a direct <a> child). */
li.tbm-product .tbm-product-img-wrap {
    margin: 0 0 .75rem !important;
    line-height: 0;
}
li.tbm-product img,
.woocommerce ul.products li.product img {
    width: 100% !important;
    height: auto !important;
    border-radius: 8px !important;
    display: block !important;
    margin: 0 0 .75rem !important;
}
li.tbm-product .tbm-product-img-wrap img { margin: 0 !important; }

/* Title — override theme.json's giant h2 */
li.tbm-product .tbm-product-title,
.woocommerce ul.products li.product h2,
.woocommerce ul.products li.product h3,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-family: 'Inter', sans-serif !important;
    font-weight: 700 !important;
    font-size: 0.95rem !important;
    line-height: 1.35 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    color: var(--wp--preset--color--ink) !important;
    margin: 0 0 .4rem !important;
    padding: 0 !important;
    text-decoration: none !important;
    /* clamp long titles to 2 lines */
    display: -webkit-box !important;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Price */
li.tbm-product .tbm-product-price,
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product span.price {
    font-family: 'Inter', sans-serif !important;
    color: var(--wp--preset--color--brand) !important;
    font-weight: 800 !important;
    font-size: 1.1rem !important;
    text-decoration: none !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.2 !important;
}
li.tbm-product .tbm-product-price .woocommerce-Price-amount,
li.tbm-product .tbm-product-price bdi,
.woocommerce ul.products li.product .price ins,
.woocommerce ul.products li.product .price bdi {
    color: var(--wp--preset--color--brand) !important;
    font-weight: 800 !important;
    text-decoration: none !important;
    background: transparent !important;
}
.woocommerce ul.products li.product .price del,
li.tbm-product .tbm-product-price del {
    opacity: .55;
    margin-right: .4rem;
    font-weight: 500;
    text-decoration: line-through;
}

/* Add to cart button */
li.tbm-product .tbm-product-button,
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .add_to_cart_button,
.woocommerce a.button,
.woocommerce button.button {
    background: var(--wp--preset--color--brand) !important;
    color: var(--wp--preset--color--paper) !important;
    border-radius: 999px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    font-weight: 700 !important;
    font-size: 0.74rem !important;
    padding: 0.65rem 1.15rem !important;
    margin: .85rem 0 0 !important;
    border: 0 !important;
    text-decoration: none !important;
    display: inline-block !important;
    align-self: flex-start;
    line-height: 1 !important;
    transition: background .2s ease, transform .2s ease;
}
li.tbm-product .tbm-product-button:hover,
.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product .add_to_cart_button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover {
    background: var(--wp--preset--color--brand-2) !important;
    color: var(--wp--preset--color--paper) !important;
    transform: translateY(-1px);
}
.woocommerce ul.products li.product .added_to_cart {
    display: inline-block;
    margin-top: .4rem !important;
    font-size: 0.78rem !important;
    text-decoration: none !important;
    color: var(--wp--preset--color--muted) !important;
}

/* Neutralize wpautop's stray <p> wrappers inside cards */
li.tbm-product > p,
li.tbm-product p,
.woocommerce ul.products li.product > p,
.woocommerce ul.products li.product p {
    display: contents !important;
    margin: 0 !important;
    padding: 0 !important;
}
li.tbm-product > br,
.woocommerce ul.products li.product br { display: none !important; }

/* WC sale badge — lime accent */
.woocommerce ul.products li.product .onsale,
.woocommerce span.onsale,
li.tbm-product .onsale {
    background: var(--wp--preset--color--lime) !important;
    color: var(--wp--preset--color--ink) !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    border-radius: 999px !important;
    padding: .25rem .7rem !important;
    font-size: 0.7rem !important;
    border: 0 !important;
    min-height: 0 !important;
    line-height: 1 !important;
    position: absolute !important;
    top: 1rem !important;
    right: 1rem !important;
    left: auto !important;
}

/* ============================================================ *
 * WC SINGLE PRODUCT PAGE
 * ============================================================ */
.woocommerce .woocommerce-breadcrumb {
    font-family: 'Inter', sans-serif;
    font-size: 0.76rem;
    color: var(--wp--preset--color--muted);
    margin: 0 0 1.5rem;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    font-weight: 600;
}
.woocommerce .woocommerce-breadcrumb a {
    color: var(--wp--preset--color--muted);
    text-decoration: none;
}
.woocommerce .woocommerce-breadcrumb a:hover { color: var(--wp--preset--color--brand); }

/* HERO: gallery left + summary right (both row 1 only).
   DETAILS: description tabs SPAN FULL WIDTH on row 2. */
.woocommerce div.product {
    display: grid !important;
    grid-template-columns: minmax(0, 1.15fr) minmax(340px, 1fr) !important;
    column-gap: 3rem !important;
    row-gap: 3.5rem !important;
    align-items: start;
}
.woocommerce div.product > .images,
.woocommerce div.product div.images {
    grid-column: 1 !important;
    grid-row: 1 !important;
    align-self: start !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    float: none !important;
    opacity: 1 !important;
}
.woocommerce div.product > .summary,
.woocommerce div.product div.summary {
    grid-column: 2 !important;
    grid-row: 1 !important;
    align-self: start !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    float: none !important;
    background: var(--wp--preset--color--panel);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: 18px;
    padding: 1.75rem 1.75rem !important;
    box-shadow: 0 2px 0 var(--wp--preset--color--line);
}
.woocommerce div.product > .woocommerce-tabs {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    width: 100% !important;
    max-width: 1100px !important;
    margin: 0 auto !important;
    padding: 3rem 0 0 !important;
    float: none !important;
    background: transparent !important;
    border: 0 !important;
    border-top: 1px solid var(--wp--preset--color--line) !important;
    border-radius: 0 !important;
}
.woocommerce div.product > .woocommerce-product-rating {
    grid-column: 2 !important;
    grid-row: auto !important;
}
@media (max-width: 900px) {
    .woocommerce div.product {
        grid-template-columns: 1fr !important;
        row-gap: 2rem !important;
    }
    .woocommerce div.product > .images,
    .woocommerce div.product div.images,
    .woocommerce div.product > .summary,
    .woocommerce div.product div.summary,
    .woocommerce div.product > .woocommerce-tabs {
        grid-column: 1 !important;
        grid-row: auto !important;
    }
    .woocommerce div.product > .summary,
    .woocommerce div.product div.summary {
        padding: 1.5rem !important;
    }
    .woocommerce div.product > .woocommerce-tabs {
        padding: 2rem 0 0 !important;
    }
}

/* DETAILS section — clean section header with eyebrow label, content in 2-col layout */
.woocommerce div.product > .woocommerce-tabs::before {
    content: "Details";
    display: block;
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.22em;
    font-size: 0.74rem;
    color: var(--wp--preset--color--muted);
    text-align: center;
    margin: 0 auto .8rem;
}
.woocommerce div.product > .woocommerce-tabs > ul.tabs.wc-tabs {
    justify-content: center !important;
    display: flex !important;
    border-bottom: 1px solid var(--wp--preset--color--line) !important;
    margin: 0 0 2rem !important;
    padding: 0 !important;
}
/* Hide redundant tab content h2 ("Description") since the eyebrow label covers it */
.woocommerce div.product .woocommerce-Tabs-panel > h2:first-child {
    display: none !important;
}
/* 2-column layout for the description bullet content */
.woocommerce-Tabs-panel--description {
    column-count: 2;
    column-gap: 3rem;
    column-fill: balance;
}
.woocommerce-Tabs-panel--description > * {
    break-inside: avoid;
}
.woocommerce-Tabs-panel--description > p,
.woocommerce-Tabs-panel--description .tbm-prod-desc-list {
    margin-bottom: 1.25rem !important;
}
.woocommerce-Tabs-panel--description .tbm-imported-template {
    column-span: all;
    display: block;
    width: 100%;
    margin: 0;
}
.woocommerce-Tabs-panel--description .tbm-imported-template--trimmed {
    max-width: 920px;
    margin: 0 auto;
}
.woocommerce-Tabs-panel--description .tbm-imported-template--trimmed .tbm-section {
    margin-bottom: 1.25rem !important;
}
.woocommerce-Tabs-panel--description .tbm-imported-template#tbm-wrapper {
    background: transparent !important;
    padding: 0 !important;
}
.woocommerce-Tabs-panel--description .tbm-imported-template #tbm-container {
    max-width: none !important;
}
@media (max-width: 760px) {
    .woocommerce-Tabs-panel--description { column-count: 1; }
}

/* ===== Trust strip (full-width section below related products) ===== */
.tbm-trust-strip {
    max-width: 1280px;
    margin: 4rem auto 1rem;
    padding: 0 1.5rem;
}
.tbm-trust-strip-inner {
    background: var(--wp--preset--color--panel);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: 18px;
    padding: 2.25rem 1.5rem;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.5rem;
    text-align: center;
}
.tbm-trust-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .5rem;
    padding: 0 .75rem;
    border-right: 1px solid var(--wp--preset--color--line);
}
.tbm-trust-card:last-child { border-right: 0; }
.tbm-trust-card svg {
    color: var(--wp--preset--color--brand);
    margin-bottom: .25rem;
}
.tbm-trust-card strong {
    font-family: 'Inter', sans-serif;
    font-weight: 800;
    font-size: 0.9rem;
    color: var(--wp--preset--color--ink);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    line-height: 1.2;
}
.tbm-trust-card span {
    font-size: 0.82rem;
    color: var(--wp--preset--color--muted);
    line-height: 1.45;
    max-width: 220px;
}
@media (max-width: 900px) {
    .tbm-trust-strip-inner { grid-template-columns: repeat(2, 1fr); padding: 1.75rem 1rem; }
    .tbm-trust-card:nth-child(2) { border-right: 0; }
}
@media (max-width: 480px) {
    .tbm-trust-strip-inner { grid-template-columns: 1fr; gap: 1.25rem; }
    .tbm-trust-card { border-right: 0; padding-bottom: 1.25rem; border-bottom: 1px solid var(--wp--preset--color--line); }
    .tbm-trust-card:last-child { border-bottom: 0; padding-bottom: 0; }
}

/* FORCE gallery to be visible regardless of JS state (overrides inline style="opacity:0") */
.woocommerce-product-gallery,
.woocommerce-product-gallery--with-images,
.woocommerce-product-gallery--columns-3,
.woocommerce-product-gallery--columns-4,
.woocommerce-product-gallery--columns-5 {
    opacity: 1 !important;
}

/* When JS hasn't loaded, gallery images would normally stack vertically.
   Make them a clean 1-column stack with proper sizing. */
body.woocommerce-no-js .woocommerce-product-gallery__wrapper {
    display: grid;
    grid-template-columns: 1fr;
    gap: .85rem;
}
body.woocommerce-no-js .woocommerce-product-gallery__image,
body.woocommerce-no-js .woocommerce-product-gallery__image:nth-child(n+2) {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
}

/* Title */
.woocommerce div.product .product_title,
.woocommerce div.product h1 {
    font-family: 'Inter', sans-serif !important;
    font-weight: 800 !important;
    font-size: clamp(1.5rem, 2.8vw, 2.1rem) !important;
    line-height: 1.2 !important;
    text-transform: none !important;
    letter-spacing: -0.005em !important;
    color: var(--wp--preset--color--brand) !important;
    margin: 0 0 .9rem !important;
}

/* Price */
.woocommerce div.product p.price,
.woocommerce div.product span.price {
    font-family: 'Inter', sans-serif !important;
    color: var(--wp--preset--color--brand) !important;
    font-weight: 800 !important;
    font-size: 1.65rem !important;
    margin: 0 0 .85rem !important;
}
.woocommerce div.product .price del { opacity: .55; margin-right: .4rem; font-weight: 500; }
.woocommerce div.product .price ins { background: transparent !important; text-decoration: none !important; }

/* Stock */
.woocommerce div.product p.stock {
    color: var(--wp--preset--color--brand-2) !important;
    font-size: 0.78rem !important;
    margin: 0 0 1.25rem !important;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    display: inline-flex;
    align-items: center;
    gap: .5rem;
}
.woocommerce div.product p.stock::before {
    content: "";
    display: inline-block;
    width: 8px;
    height: 8px;
    background: var(--wp--preset--color--lime);
    border-radius: 50%;
}
.woocommerce div.product p.stock.out-of-stock { color: var(--wp--preset--color--muted) !important; }
.woocommerce div.product p.stock.out-of-stock::before { background: var(--wp--preset--color--muted); }

/* Cart form (quantity + add-to-cart) */
.woocommerce div.product form.cart {
    margin: .5rem 0 1rem !important;
    display: flex !important;
    align-items: stretch !important;
    gap: .6rem !important;
    flex-wrap: wrap;
}
.woocommerce div.product form.cart .quantity {
    display: inline-flex;
    align-items: center;
}
.woocommerce div.product form.cart .quantity .qty,
.woocommerce div.product .quantity .qty {
    width: 70px !important;
    padding: .75rem .5rem !important;
    border: 1px solid var(--wp--preset--color--line) !important;
    border-radius: 999px !important;
    text-align: center !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 700 !important;
    color: var(--wp--preset--color--ink) !important;
    background: var(--wp--preset--color--panel) !important;
}
.woocommerce div.product form.cart button.single_add_to_cart_button {
    background: var(--wp--preset--color--brand) !important;
    color: var(--wp--preset--color--paper) !important;
    border-radius: 999px !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 700 !important;
    font-size: 0.85rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    padding: .85rem 1.85rem !important;
    border: 0 !important;
    box-shadow: none !important;
    transition: background .2s ease, transform .2s ease;
}
.woocommerce div.product form.cart button.single_add_to_cart_button:hover {
    background: var(--wp--preset--color--brand-2) !important;
    transform: translateY(-1px);
}

/* Product meta (SKU, category, tags) */
.woocommerce div.product .product_meta {
    margin-top: 1.5rem !important;
    padding-top: 1.25rem !important;
    border-top: 1px solid var(--wp--preset--color--line);
    font-size: 0.82rem;
    color: var(--wp--preset--color--muted);
    line-height: 1.8;
}
.woocommerce div.product .product_meta > span {
    display: block !important;
}
.woocommerce div.product .product_meta a {
    color: var(--wp--preset--color--brand);
    text-decoration: none;
    font-weight: 600;
}
.woocommerce div.product .product_meta a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* Gallery image polish — cap height so portrait card images don't dominate the page */
.woocommerce div.product div.images .woocommerce-product-gallery__image img,
.woocommerce div.product div.images img.wp-post-image,
.woocommerce div.product div.images img {
    width: 100% !important;
    height: auto !important;
    max-height: 620px !important;
    object-fit: contain !important;
    background: var(--wp--preset--color--panel);
    border-radius: 16px !important;
    box-shadow: 0 1px 0 var(--wp--preset--color--line);
    display: block;
    margin: 0 auto;
}
.woocommerce div.product div.images .woocommerce-product-gallery__trigger {
    background: var(--wp--preset--color--panel) !important;
    border: 1px solid var(--wp--preset--color--line) !important;
    border-radius: 50%;
    color: var(--wp--preset--color--brand) !important;
    box-shadow: 0 4px 12px -6px rgba(16, 19, 18, 0.18);
    right: 1rem !important;
    top: 1rem !important;
}

/* Flexslider thumb nav (when JS active) — also handles the moved thumbs under summary */
.woocommerce div.product div.images .flex-control-thumbs,
.woocommerce div.product div.images ol.flex-control-nav,
.summary .flex-control-thumbs,
.summary ol.flex-control-nav {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: .65rem !important;
    margin: .85rem 0 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

/* When thumbs are moved into the summary panel, set them apart with a divider */
.summary.tbm-has-gallery-thumbs .flex-control-thumbs {
    margin: 1.4rem 0 0 !important;
    padding: 1.4rem 0 0 !important;
    border-top: 1px solid var(--wp--preset--color--line);
    grid-template-columns: repeat(5, 1fr) !important;
}
.summary.tbm-has-gallery-thumbs .flex-control-thumbs::before {
    content: "Photos";
    display: block;
    grid-column: 1 / -1;
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    font-size: 0.7rem;
    color: var(--wp--preset--color--muted);
    margin-bottom: .25rem;
}
.woocommerce div.product div.images .flex-control-thumbs li,
.woocommerce div.product div.images ol.flex-control-nav li {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    list-style: none !important;
}
.woocommerce div.product div.images .flex-control-thumbs img,
.woocommerce div.product div.images ol.flex-control-nav img {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1 !important;
    object-fit: cover !important;
    border-radius: 10px !important;
    cursor: pointer;
    border: 2px solid var(--wp--preset--color--line);
    transition: border-color .2s ease, transform .2s ease;
    opacity: 1 !important;
}
.woocommerce div.product div.images .flex-control-thumbs img:hover,
.woocommerce div.product div.images .flex-control-thumbs .flex-active {
    border-color: var(--wp--preset--color--brand) !important;
    transform: translateY(-2px);
}

/* Tabs */
.woocommerce div.product .woocommerce-tabs {
    margin-top: 3rem !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs.wc-tabs {
    border: 0 !important;
    border-bottom: 1px solid var(--wp--preset--color--line) !important;
    padding: 0 !important;
    margin: 0 0 1.5rem !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs::after { display: none !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
    background: transparent !important;
    border: 0 !important;
    border-bottom: 2px solid transparent !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin: 0 1.5rem 0 0 !important;
    box-shadow: none !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
    border-bottom-color: var(--wp--preset--color--brand) !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
    display: inline-block;
    font-family: 'Inter', sans-serif !important;
    font-weight: 700 !important;
    font-size: 0.78rem !important;
    color: var(--wp--preset--color--muted) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.13em !important;
    text-decoration: none !important;
    padding: .85rem 0 !important;
    background: transparent !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
    color: var(--wp--preset--color--brand) !important;
}
.woocommerce div.product .woocommerce-tabs .panel {
    font-size: 0.95rem !important;
    line-height: 1.7 !important;
    color: var(--wp--preset--color--ink) !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
}
.woocommerce div.product .woocommerce-tabs .panel h2 {
    font-family: 'Inter', sans-serif !important;
    font-size: 1.35rem !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    font-weight: 700 !important;
    margin: 0 0 1rem !important;
    color: var(--wp--preset--color--brand) !important;
}

/* TBM-rendered description bullets (from the markdown-bullet filter) */
.tbm-prod-desc-list {
    margin: .5rem 0 1.5rem !important;
    padding: 0 0 0 1.3rem !important;
    color: var(--wp--preset--color--ink);
    list-style: disc;
}
.tbm-prod-desc-list li {
    margin: 0 0 .35rem !important;
    line-height: 1.55;
}
.tbm-prod-desc-list li:empty { display: none; }

/* Related / upsells (now sibling of .product, not child) */
.woocommerce .related.products,
.woocommerce .upsells.products,
.woocommerce-page .related.products,
.woocommerce-page .upsells.products {
    border-top: 1px solid var(--wp--preset--color--line);
    padding-top: 3rem !important;
    margin: 3rem 0 0 !important;
    max-width: 100%;
    clear: both;
}
.woocommerce .related.products > h2,
.woocommerce .upsells.products > h2,
.woocommerce-page .related.products > h2,
.woocommerce-page .upsells.products > h2 {
    font-family: 'Inter', sans-serif !important;
    font-size: clamp(1.3rem, 2.2vw, 1.7rem) !important;
    font-weight: 800 !important;
    text-transform: none !important;
    letter-spacing: -0.005em !important;
    color: var(--wp--preset--color--brand) !important;
    margin: 0 0 1.5rem !important;
}
/* Auto-fill grid so cards always fill the row */
.woocommerce .related.products ul.products,
.woocommerce .upsells.products ul.products {
    grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)) !important;
}

/* Description tab content - subtle panel feel */
.woocommerce div.product .woocommerce-tabs .panel {
    font-size: 0.95rem !important;
    line-height: 1.7 !important;
    color: var(--wp--preset--color--ink) !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    max-width: 760px;
}

/* WC notices */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
    background: var(--wp--preset--color--champagne) !important;
    border-top-color: var(--wp--preset--color--brand) !important;
    color: var(--wp--preset--color--ink) !important;
}

/* TroCuri product content should use the full tab lane, not the narrow description column rules */
.woocommerce div.product .woocommerce-tabs .panel.woocommerce-Tabs-panel--description:has(.tbm-trocuri-description),
.woocommerce div.product .woocommerce-tabs .panel#tab-tbm_trocuri_details,
.woocommerce div.product .woocommerce-tabs .panel#tab-tbm_trocuri_notes {
    max-width: 100% !important;
    width: 100% !important;
}
.woocommerce-Tabs-panel--description:has(.tbm-trocuri-description) {
    column-count: 1 !important;
    column-gap: 0 !important;
    column-fill: initial !important;
}
.woocommerce-Tabs-panel--description:has(.tbm-trocuri-description) > * {
    break-inside: auto !important;
}
.woocommerce-Tabs-panel--description .tbm-trocuri-description,
.woocommerce div.product .woocommerce-tabs .panel#tab-tbm_trocuri_details .tbm-trocuri-panel,
.woocommerce div.product .woocommerce-tabs .panel#tab-tbm_trocuri_notes .tbm-trocuri-panel {
    width: 100% !important;
    max-width: none !important;
}
.woocommerce-Tabs-panel--description .tbm-trocuri-description {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    gap: 32px !important;
    align-items: start !important;
    margin: 0 !important;
}
.woocommerce-Tabs-panel--description .tbm-trocuri-description .tbm-trocuri-panel,
.woocommerce div.product .woocommerce-tabs .panel#tab-tbm_trocuri_details .tbm-trocuri-panel,
.woocommerce div.product .woocommerce-tabs .panel#tab-tbm_trocuri_notes .tbm-trocuri-panel {
    min-width: 0 !important;
    height: 100%;
    padding: 28px !important;
}
.woocommerce-Tabs-panel--description .tbm-trocuri-overview {
    width: 100%;
    max-width: 980px;
    margin: 0 0 24px !important;
}
@media (max-width: 900px) {
    .woocommerce-Tabs-panel--description .tbm-trocuri-description {
        grid-template-columns: 1fr !important;
    }
}
.woocommerce-message::before,
.woocommerce-info::before { color: var(--wp--preset--color--brand) !important; }

/* page wrapper for non-front pages */
.entry-content {
    max-width: 1100px;
    margin: 0 auto;
    padding: 1rem 2rem 3rem;
}
::selection { background: var(--wp--preset--color--brand); color: var(--wp--preset--color--paper); }

/* ============================================================ *
 * UTILITY PAGE TITLES (cart/checkout/account/shop)
 * ============================================================ */
.woocommerce-cart h1,
.woocommerce-checkout h1,
.woocommerce-account h1,
.woocommerce.archive .wp-block-query-title,
.woocommerce.archive h1,
.post-type-archive-product h1,
.tax-product_cat h1,
.tax-product_tag h1 {
    font-family: 'Inter', sans-serif !important;
    font-weight: 800 !important;
    font-size: clamp(1.9rem, 3.5vw, 2.8rem) !important;
    line-height: 1.1 !important;
    text-transform: none !important;
    letter-spacing: -0.01em !important;
    color: var(--wp--preset--color--brand) !important;
    margin: 0 0 2rem !important;
}

/* ============================================================ *
 * GLOBAL FORM INPUTS
 * ============================================================ */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page form .form-row input.input-text,
.woocommerce-page form .form-row textarea,
.woocommerce input[type="text"],
.woocommerce input[type="email"],
.woocommerce input[type="tel"],
.woocommerce input[type="number"],
.woocommerce input[type="password"],
.woocommerce input[type="search"],
.woocommerce textarea,
.woocommerce select,
.tbm input[type="text"],
.tbm input[type="email"],
.tbm input[type="tel"],
.tbm input[type="number"],
.tbm input[type="password"],
.tbm select,
.tbm textarea {
    background: var(--wp--preset--color--panel) !important;
    border: 1px solid var(--wp--preset--color--line) !important;
    border-radius: 10px !important;
    padding: .8rem 1rem !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 0.95rem !important;
    color: var(--wp--preset--color--ink) !important;
    box-shadow: none !important;
    transition: border-color .2s ease, box-shadow .2s ease;
    width: 100%;
    line-height: 1.4 !important;
}
.woocommerce form .form-row input:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus,
.woocommerce input:focus,
.woocommerce textarea:focus,
.woocommerce select:focus {
    outline: none !important;
    border-color: var(--wp--preset--color--brand) !important;
    box-shadow: 0 0 0 3px rgba(16, 54, 41, 0.12) !important;
}
.woocommerce form .form-row label,
.woocommerce-page form .form-row label,
.woocommerce form label {
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    font-size: 0.85rem;
    color: var(--wp--preset--color--ink);
    margin-bottom: .35rem;
    display: block;
    letter-spacing: 0.02em;
}
.woocommerce form .form-row .required {
    color: var(--wp--preset--color--brand-2);
    text-decoration: none;
}

/* Generic WC button overrides (apply when not in product loop) */
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce-page #respond input#submit,
.woocommerce-page a.button.alt,
.woocommerce-page button.button.alt,
.woocommerce-page input.button.alt {
    background: var(--wp--preset--color--brand) !important;
    color: var(--wp--preset--color--paper) !important;
    border-radius: 999px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    font-weight: 700 !important;
    font-size: 0.85rem !important;
    padding: .85rem 1.85rem !important;
    border: 0 !important;
    box-shadow: none !important;
    transition: background .2s ease, transform .2s ease;
}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
    background: var(--wp--preset--color--brand-2) !important;
    color: var(--wp--preset--color--paper) !important;
    transform: translateY(-1px);
}

/* ============================================================ *
 * CART PAGE
 * ============================================================ */
.woocommerce-cart .woocommerce {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 1.5rem;
}
.woocommerce-cart table.shop_table {
    border: 1px solid var(--wp--preset--color--line) !important;
    border-radius: 14px !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    overflow: hidden;
    background: var(--wp--preset--color--panel);
    margin-bottom: 2rem !important;
}
.woocommerce-cart table.shop_table th {
    background: var(--wp--preset--color--champagne) !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.12em !important;
    font-size: 0.74rem !important;
    color: var(--wp--preset--color--muted) !important;
    padding: 1rem 1.2rem !important;
    border: 0 !important;
    border-bottom: 1px solid var(--wp--preset--color--line) !important;
}
.woocommerce-cart table.shop_table td {
    padding: 1.25rem 1.2rem !important;
    border-top: 1px solid var(--wp--preset--color--line) !important;
    vertical-align: middle !important;
    background: var(--wp--preset--color--panel) !important;
}
.woocommerce-cart table.shop_table tr:first-child td { border-top: 0 !important; }
.woocommerce-cart table.shop_table .product-thumbnail img {
    width: 64px !important;
    height: 64px !important;
    object-fit: cover !important;
    border-radius: 8px !important;
    border: 1px solid var(--wp--preset--color--line);
}
.woocommerce-cart table.shop_table .product-name a {
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    color: var(--wp--preset--color--brand);
    text-decoration: none;
    font-size: 0.95rem;
}
.woocommerce-cart table.shop_table .product-price,
.woocommerce-cart table.shop_table .product-subtotal {
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    color: var(--wp--preset--color--brand);
}
.woocommerce-cart .quantity input.qty {
    width: 70px !important;
    padding: .65rem .5rem !important;
    border: 1px solid var(--wp--preset--color--line) !important;
    border-radius: 999px !important;
    text-align: center !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 700 !important;
    background: var(--wp--preset--color--panel) !important;
}
.woocommerce-cart .product-remove a.remove {
    width: 32px;
    height: 32px;
    line-height: 30px !important;
    text-align: center;
    border-radius: 50%;
    color: var(--wp--preset--color--muted) !important;
    background: var(--wp--preset--color--champagne) !important;
    font-size: 1.2rem !important;
    transition: all .2s ease;
}
.woocommerce-cart .product-remove a.remove:hover {
    color: var(--wp--preset--color--paper) !important;
    background: var(--wp--preset--color--brand) !important;
}

.woocommerce-cart .cart-collaterals,
.woocommerce-cart .cart_totals {
    background: var(--wp--preset--color--panel);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: 16px;
    padding: 1.75rem 1.75rem !important;
}
.woocommerce-cart .cart_totals h2 {
    font-family: 'Inter', sans-serif !important;
    font-size: 0.8rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.18em !important;
    color: var(--wp--preset--color--muted) !important;
    font-weight: 700 !important;
    margin: 0 0 1rem !important;
}
.woocommerce-cart .cart_totals table.shop_table {
    border: 0 !important;
    margin: 0 0 1.25rem !important;
    background: transparent !important;
}
.woocommerce-cart .cart_totals table.shop_table th,
.woocommerce-cart .cart_totals table.shop_table td {
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px solid var(--wp--preset--color--line) !important;
    padding: .85rem 0 !important;
    color: var(--wp--preset--color--ink) !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    font-size: 0.95rem !important;
    font-weight: 600;
}
.woocommerce-cart .cart_totals .order-total th,
.woocommerce-cart .cart_totals .order-total td {
    font-size: 1.15rem !important;
    font-weight: 800 !important;
    color: var(--wp--preset--color--brand) !important;
    border-bottom: 0 !important;
    padding-top: 1.2rem !important;
}
.woocommerce-cart .wc-proceed-to-checkout {
    padding: 0 !important;
    margin: 0 !important;
}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
    display: block !important;
    text-align: center !important;
    width: 100% !important;
}

.woocommerce-cart .coupon {
    margin: 0 0 1.5rem !important;
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
}
.woocommerce-cart .coupon input[type="text"] { flex: 1; min-width: 180px; }

/* WC cart block (new) variants */
.wc-block-cart .wc-block-components-product-name {
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    color: var(--wp--preset--color--brand);
    text-decoration: none;
}
.wc-block-cart .wc-block-components-totals-wrapper {
    border-color: var(--wp--preset--color--line) !important;
}
.wc-block-cart .wc-block-components-product-price__value,
.wc-block-cart .wc-block-formatted-money-amount {
    font-family: 'Inter', sans-serif !important;
    font-weight: 700 !important;
    color: var(--wp--preset--color--brand) !important;
}
.wc-block-cart-items__row {
    border-bottom-color: var(--wp--preset--color--line) !important;
}
.wc-block-components-quantity-selector {
    border-color: var(--wp--preset--color--line) !important;
    border-radius: 999px !important;
}
.wc-block-components-quantity-selector__input {
    color: var(--wp--preset--color--ink) !important;
    font-weight: 700 !important;
}
.wc-block-components-quantity-selector__button {
    color: var(--wp--preset--color--brand) !important;
}
.wc-block-components-totals-item__value {
    color: var(--wp--preset--color--ink) !important;
    font-weight: 700;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    color: var(--wp--preset--color--brand) !important;
    font-size: 1.15rem !important;
}

/* ============================================================ *
 * MY ACCOUNT / LOGIN + REGISTER
 * ============================================================ */
.woocommerce-account .woocommerce,
.woocommerce-account.woocommerce-page .woocommerce {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 1.5rem 3rem;
}
.woocommerce-account .u-columns,
.woocommerce-account .col2-set,
.woocommerce-page .u-columns,
.woocommerce-page .col2-set {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 1.5rem !important;
    width: 100% !important;
    max-width: 1100px !important;
    margin: 0 auto !important;
    float: none !important;
}
.woocommerce-account .u-columns::before,
.woocommerce-account .u-columns::after,
.woocommerce-account .col2-set::before,
.woocommerce-account .col2-set::after,
.woocommerce-page .u-columns::before,
.woocommerce-page .u-columns::after,
.woocommerce-page .col2-set::before,
.woocommerce-page .col2-set::after {
    display: none !important;
}
.woocommerce-account .u-column1,
.woocommerce-account .u-column2,
.woocommerce-account .col-1,
.woocommerce-account .col-2,
.woocommerce-page .u-column1,
.woocommerce-page .u-column2,
.woocommerce-page .col-1,
.woocommerce-page .col-2 {
    background: var(--wp--preset--color--panel);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: 16px;
    padding: 2rem !important;
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    margin: 0 !important;
    box-sizing: border-box;
}
@media (max-width: 760px) {
    .woocommerce-account .u-columns,
    .woocommerce-account .col2-set,
    .woocommerce-page .u-columns,
    .woocommerce-page .col2-set {
        grid-template-columns: 1fr !important;
    }
}
.woocommerce-account .u-column1 h2,
.woocommerce-account .u-column2 h2 {
    font-family: 'Inter', sans-serif !important;
    font-size: 1.4rem !important;
    font-weight: 800 !important;
    color: var(--wp--preset--color--brand) !important;
    text-transform: none !important;
    letter-spacing: -0.005em !important;
    margin: 0 0 1.25rem !important;
}
.woocommerce-account form.login,
.woocommerce-account form.register {
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}
.woocommerce-account form.login p,
.woocommerce-account form.register p { margin-bottom: 1rem !important; }
.woocommerce-account .lost_password a,
.woocommerce-account .privacy-policy-link {
    color: var(--wp--preset--color--brand);
    font-weight: 600;
    text-decoration: none;
    font-size: 0.85rem;
}
.woocommerce-account .lost_password a:hover { text-decoration: underline; text-underline-offset: 3px; }
.woocommerce-account form.login .button,
.woocommerce-account form.register .button {
    background: var(--wp--preset--color--brand) !important;
    color: var(--wp--preset--color--paper) !important;
    border-radius: 999px !important;
    padding: .8rem 1.75rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    font-size: 0.8rem !important;
    border: 0 !important;
}
.woocommerce-account form.login .button:hover,
.woocommerce-account form.register .button:hover {
    background: var(--wp--preset--color--brand-2) !important;
}
/* Account dashboard nav (after login) */
.woocommerce-MyAccount-navigation ul {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
.woocommerce-MyAccount-navigation ul li a {
    display: block;
    padding: .85rem 1rem;
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.8rem;
    color: var(--wp--preset--color--ink);
    text-decoration: none;
    border-radius: 10px;
    transition: background .2s ease, color .2s ease;
}
.woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-MyAccount-navigation ul li a:hover {
    background: var(--wp--preset--color--champagne);
    color: var(--wp--preset--color--brand);
}
.woocommerce-MyAccount-content {
    background: var(--wp--preset--color--panel);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: 16px;
    padding: 2rem;
}

/* ============================================================ *
 * CHECKOUT POLISH (WC blocks checkout)
 * ============================================================ */
.wc-block-checkout .wc-block-components-text-input input,
.wc-block-checkout .wc-block-components-textarea,
.wc-block-checkout .wc-block-components-combobox input {
    border: 1px solid var(--wp--preset--color--line) !important;
    border-radius: 10px !important;
    background: var(--wp--preset--color--panel) !important;
    font-family: 'Inter', sans-serif !important;
}
.wc-block-checkout .wc-block-components-text-input input:focus,
.wc-block-checkout .wc-block-components-textarea:focus {
    border-color: var(--wp--preset--color--brand) !important;
    box-shadow: 0 0 0 3px rgba(16, 54, 41, 0.12) !important;
}
.wc-block-checkout .wc-block-checkout__form h2,
.wc-block-checkout-step__title {
    font-family: 'Inter', sans-serif !important;
    font-weight: 800 !important;
    color: var(--wp--preset--color--brand) !important;
    text-transform: none !important;
    letter-spacing: -0.005em !important;
    font-size: 1.15rem !important;
}
.wc-block-components-checkout-place-order-button {
    background: var(--wp--preset--color--brand) !important;
    color: var(--wp--preset--color--paper) !important;
    border-radius: 999px !important;
    padding: 1rem 2rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    font-size: 0.9rem !important;
}
.wc-block-components-checkout-place-order-button:hover {
    background: var(--wp--preset--color--brand-2) !important;
}
.wc-block-components-totals-footer-item {
    color: var(--wp--preset--color--brand) !important;
    font-weight: 800 !important;
}
.wp-block-woocommerce-checkout-order-summary-block {
    border: 1px solid var(--wp--preset--color--line) !important;
    border-radius: 16px !important;
    background: var(--wp--preset--color--panel) !important;
}

/* ============================================================ *
 * SHOP ARCHIVE / PRODUCT CATEGORY HEADER
 * ============================================================ */
.woocommerce.archive .woocommerce-products-header,
.woocommerce.post-type-archive-product .woocommerce-products-header,
.tax-product_cat .woocommerce-products-header,
.tax-product_tag .woocommerce-products-header {
    text-align: center;
    padding: 1.5rem 0 1rem;
    margin: 0 auto 1.5rem;
    max-width: 800px;
}
/* Reorder children so the eyebrow (rendered AFTER h1 via WP hook) appears ABOVE it */
.woocommerce.archive .woocommerce-products-header,
.woocommerce.post-type-archive-product .woocommerce-products-header,
.tax-product_cat .woocommerce-products-header,
.tax-product_tag .woocommerce-products-header {
    display: flex;
    flex-direction: column;
    align-items: center;
}
.woocommerce-products-header__title { order: 2; }
.tbm-archive-eyebrow { order: 1; }
.tbm-archive-subtitle { order: 3; }
.term-description,
.woocommerce-products-header .term-description { order: 4; }

/* Editable eyebrow (replaces the old CSS-injected "Browse") */
.tbm-archive-eyebrow {
    display: block;
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.22em;
    font-size: 0.74rem;
    color: var(--wp--preset--color--muted);
    margin: 0 0 .8rem;
    text-align: center;
}

/* Subtitle (italic tagline below the headline) */
.tbm-archive-subtitle {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic;
    font-size: 1.1rem;
    color: var(--wp--preset--color--brand-2);
    margin: .35rem 0 1rem;
    text-align: center;
}
.woocommerce-products-header__title {
    font-family: 'Inter', sans-serif !important;
    font-weight: 800 !important;
    color: var(--wp--preset--color--brand) !important;
    font-size: clamp(2rem, 4vw, 3rem) !important;
    letter-spacing: -0.01em !important;
    text-transform: none !important;
    line-height: 1.05 !important;
    margin: 0 !important;
}
.woocommerce .term-description,
.woocommerce-products-header .term-description {
    font-family: 'Inter', sans-serif;
    font-size: 0.92rem;
    color: var(--wp--preset--color--ink);
    max-width: 760px;
    margin: 1.25rem auto 0;
    text-align: left;
    background: var(--wp--preset--color--champagne);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: 12px;
    padding: 1.25rem 1.5rem;
}
.woocommerce .term-description p,
.woocommerce-products-header .term-description p { margin: 0 0 .6rem; }
.woocommerce .term-description p:last-child,
.woocommerce-products-header .term-description p:last-child { margin-bottom: 0; }
.woocommerce .term-description ul,
.woocommerce-products-header .term-description ul {
    margin: .5rem 0 0;
    padding: 0 0 0 1.25rem;
    list-style: disc;
    line-height: 1.6;
}
.woocommerce .term-description li,
.woocommerce-products-header .term-description li { margin: 0 0 .25rem; }
.woocommerce .term-description strong,
.woocommerce-products-header .term-description strong {
    color: var(--wp--preset--color--brand);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-size: 0.82rem;
    display: block;
    margin-bottom: .4rem;
}

/* Sort dropdown + result count */
.woocommerce .woocommerce-result-count {
    font-family: 'Inter', sans-serif;
    font-size: 0.78rem;
    color: var(--wp--preset--color--muted);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-weight: 600;
    margin: 0 !important;
}
.woocommerce .woocommerce-ordering select {
    background: var(--wp--preset--color--panel) !important;
    border: 1px solid var(--wp--preset--color--line) !important;
    border-radius: 999px !important;
    padding: .55rem 2rem .55rem 1rem !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
    font-size: 0.82rem !important;
    color: var(--wp--preset--color--ink) !important;
    cursor: pointer;
}

/* Pagination */
.woocommerce nav.woocommerce-pagination ul {
    border: 0 !important;
    margin: 2rem 0 !important;
    display: flex;
    justify-content: center;
    gap: .35rem;
}
.woocommerce nav.woocommerce-pagination ul li {
    border: 0 !important;
    margin: 0 !important;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
    border: 1px solid var(--wp--preset--color--line) !important;
    background: var(--wp--preset--color--panel) !important;
    color: var(--wp--preset--color--ink) !important;
    border-radius: 999px !important;
    min-width: 40px;
    height: 40px;
    line-height: 38px !important;
    padding: 0 .85rem !important;
    font-weight: 600 !important;
    font-size: 0.85rem !important;
}
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover {
    background: var(--wp--preset--color--brand) !important;
    color: var(--wp--preset--color--paper) !important;
    border-color: var(--wp--preset--color--brand) !important;
}

/* === Product page: shipping options panel === */
.tbm-product-shipping {
    margin: 1rem 0 1.25rem;
    padding: .85rem 1rem .95rem;
    background: #f7f6f3;
    border: 1px solid rgba(16, 19, 18, .07);
    border-radius: .8rem;
    font-size: .9rem;
    color: var(--ink, #101312);
}
.tbm-product-shipping__head {
    display: flex;
    align-items: center;
    gap: .45rem;
    font-weight: 700;
    font-size: .72rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--muted, #5c6662);
    margin: 0 0 .55rem;
}
.tbm-product-shipping__head svg { flex: 0 0 auto; }
.tbm-product-shipping__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .15rem;
    border-top: 1px solid rgba(16, 19, 18, .08);
    padding-top: .45rem;
}
.tbm-product-shipping__row {
    display: grid;
    grid-template-columns: 18px 1fr auto;
    align-items: center;
    gap: .6rem;
    padding: .25rem 0;
    line-height: 1.3;
}
.tbm-product-shipping__icon {
    display: inline-flex;
    color: var(--muted, #5c6662);
}
.tbm-product-shipping__label {
    font-size: .88rem;
}
.tbm-product-shipping__cost {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.tbm-product-shipping__cost.is-free {
    color: #1b6a3a;
    letter-spacing: .04em;
    font-size: .78rem;
    background: #e2f1e7;
    padding: .15rem .45rem;
    border-radius: 999px;
}
.tbm-product-shipping__note {
    margin: .6rem 0 0;
    padding-top: .5rem;
    border-top: 1px solid rgba(16, 19, 18, .08);
    font-size: .76rem;
    color: var(--muted, #5c6662);
    line-height: 1.45;
}

/* === Mobile inventory nav: fade affordance + smoother scroll === */
@media (max-width: 720px) {
    .tbm-inventory-nav {
        position: relative;
        padding-right: 0 !important;
    }
    .tbm-inventory-nav::after {
        content: '';
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        width: 2.25rem;
        pointer-events: none;
        background: linear-gradient(to right, rgba(247, 246, 243, 0), rgba(247, 246, 243, .98));
        z-index: 1;
    }
    .tbm-inventory-nav-inner {
        scroll-snap-type: x proximity;
        -webkit-overflow-scrolling: touch;
        padding-right: 2.5rem !important;
    }
    .tbm-inventory-pill { scroll-snap-align: start; }
}

/* === Archive header: view-mode toggle (single vs. compact grid) === */
.tbm-archive-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin: 0 0 1rem;
    flex-wrap: wrap;
}
.tbm-archive-toolbar .woocommerce-result-count { margin: 0 !important; }
.tbm-archive-toolbar .woocommerce-ordering { margin: 0 !important; }
.tbm-archive-toolbar__right {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    margin-left: auto;
}
.tbm-view-toggle {
    display: inline-flex;
    gap: 2px;
    background: var(--wp--preset--color--panel);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: 10px;
    padding: 3px;
}
.tbm-view-toggle button {
    background: transparent;
    border: 0;
    padding: .4rem .55rem;
    cursor: pointer;
    border-radius: 7px;
    color: var(--wp--preset--color--muted);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background .15s ease, color .15s ease;
    line-height: 0;
}
.tbm-view-toggle button:hover {
    color: var(--wp--preset--color--ink);
}
.tbm-view-toggle button.is-active {
    background: var(--wp--preset--color--ink);
    color: var(--wp--preset--color--paper);
}
.tbm-view-toggle button svg { width: 16px; height: 16px; }

/* === Compact view mode: smaller cards, more per row === */
.woocommerce ul.products.tbm-products--compact,
ul.products.tbm-products--compact {
    gap: .75rem !important;
    grid-template-columns: repeat(5, 1fr) !important;
}
@media (max-width: 1100px) {
    .woocommerce ul.products.tbm-products--compact,
    ul.products.tbm-products--compact { grid-template-columns: repeat(4, 1fr) !important; }
}
@media (max-width: 760px) {
    .woocommerce ul.products.tbm-products--compact,
    ul.products.tbm-products--compact { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 460px) {
    .woocommerce ul.products.tbm-products--compact,
    ul.products.tbm-products--compact { grid-template-columns: repeat(2, 1fr) !important; gap: .55rem !important; }
}

.woocommerce ul.products.tbm-products--compact li.product,
ul.products.tbm-products--compact li.product {
    padding: .5rem .5rem .6rem !important;
    border-radius: 9px !important;
}
.woocommerce ul.products.tbm-products--compact li.product img,
ul.products.tbm-products--compact li.product img {
    margin: 0 0 .4rem !important;
    border-radius: 6px !important;
}
.woocommerce ul.products.tbm-products--compact li.product h2,
.woocommerce ul.products.tbm-products--compact li.product h3,
.woocommerce ul.products.tbm-products--compact li.product .woocommerce-loop-product__title,
ul.products.tbm-products--compact li.product .tbm-product-title {
    font-size: .78rem !important;
    line-height: 1.25 !important;
    margin: .25rem 0 .15rem !important;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.woocommerce ul.products.tbm-products--compact li.product .price,
.woocommerce ul.products.tbm-products--compact li.product span.price,
ul.products.tbm-products--compact li.product .price {
    font-size: .85rem !important;
    margin: .1rem 0 .4rem !important;
}
.woocommerce ul.products.tbm-products--compact li.product .button,
.woocommerce ul.products.tbm-products--compact li.product .add_to_cart_button,
ul.products.tbm-products--compact li.product .button,
ul.products.tbm-products--compact li.product .add_to_cart_button {
    font-size: .72rem !important;
    padding: .4rem .55rem !important;
    margin-top: auto !important;
}
ul.products.tbm-products--compact .tbm-card-watermark,
ul.products.tbm-products--compact .tbm-loop-watermark {
    display: none !important;
}
@media (max-width: 460px) {
    .woocommerce ul.products.tbm-products--compact li.product,
    ul.products.tbm-products--compact li.product {
        padding: .4rem .4rem .5rem !important;
    }
    .woocommerce ul.products.tbm-products--compact li.product h2,
    .woocommerce ul.products.tbm-products--compact li.product h3,
    .woocommerce ul.products.tbm-products--compact li.product .woocommerce-loop-product__title,
    ul.products.tbm-products--compact li.product .tbm-product-title {
        font-size: .72rem !important;
    }
    .woocommerce ul.products.tbm-products--compact li.product .price,
    ul.products.tbm-products--compact li.product .price {
        font-size: .78rem !important;
    }
}

/* === Mobile: prevent horizontal scroll + tighter padding for product grid === */
/* tbm-mobile-overflow-guard */
html, body { overflow-x: hidden; }
@media (max-width: 760px) {
    .tbm-products-wrap { padding-left: 1rem !important; padding-right: 1rem !important; }
    .woocommerce-page main .woocommerce ul.products,
    .woocommerce-page main .products {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}
@media (max-width: 460px) {
    .tbm-products-wrap { padding-left: .65rem !important; padding-right: .65rem !important; }
}

/* Inventory pills go AFTER the title on archive pages (was rendering first due to flex order:0) */
.woocommerce-products-header .tbm-inventory-nav { order: 5; }

/* === Newsletter signup (footer) === */
.tbm-newsletter {
    max-width: 480px;
    margin: 0 auto 1.5rem;
    padding: 0 1rem;
    font-family: 'Inter', sans-serif;
}
.tbm-newsletter__pitch {
    text-align: center;
    font-size: 1.05rem;
    margin: 0 0 .7rem;
    opacity: 0.92;
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic;
}
.tbm-newsletter__row {
    display: flex;
    gap: .5rem;
    align-items: stretch;
}
.tbm-newsletter input[type=email] {
    flex: 1 1 auto;
    border: 0;
    border-radius: 999px;
    padding: .75rem 1.1rem;
    font-size: .95rem;
    background: rgba(255, 255, 255, .92);
    color: var(--wp--preset--color--ink, #101312);
    outline: none;
}
.tbm-newsletter input[type=email]:focus {
    box-shadow: 0 0 0 3px var(--wp--preset--color--lime, #c5f25b);
}
.tbm-newsletter__btn {
    border: 0;
    border-radius: 999px;
    padding: .75rem 1.2rem;
    background: var(--wp--preset--color--lime, #c5f25b);
    color: var(--wp--preset--color--ink, #101312);
    font-weight: 700;
    cursor: pointer;
    transition: transform .15s ease, background .15s ease;
    white-space: nowrap;
}
.tbm-newsletter__btn:hover { transform: translateY(-1px); background: #d6ff7a; }
.tbm-newsletter__btn:disabled { opacity: 0.6; cursor: not-allowed; transform: none; }
.tbm-newsletter__status {
    text-align: center;
    margin: .65rem 0 0;
    font-size: .85rem;
    min-height: 1.2em;
    opacity: 0.88;
}
.tbm-newsletter__status.is-error { color: #ffb4b4; }
.tbm-newsletter__status.is-success { color: #b7ffba; }
@media (max-width: 480px) {
    .tbm-newsletter__row { flex-direction: column; }
    .tbm-newsletter__btn { width: 100%; }
}

/* tbm-cat-grid mobile horizontal-scroll override
   At mobile widths, the 4 category cards become a side-scroll lane with snap. */
@media (max-width: 1100px) {
    .tbm-cat-grid {
        display: flex !important;
        grid-template-columns: none !important;
        overflow-x: auto;
        gap: 0.9rem;
        padding: 1rem 1.25rem 2.5rem;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }
    .tbm-cat-grid::-webkit-scrollbar { display: none; }
    .tbm-cat-card {
        flex: 0 0 65%;
        max-width: 280px;
        scroll-snap-align: start;
    }
}
@media (max-width: 720px) {
    .tbm-cat-grid { padding: 1rem 1.25rem 2.5rem; gap: 0.75rem; }
    .tbm-cat-card { flex: 0 0 72%; max-width: 260px; }
}
@media (max-width: 480px) {
    .tbm-cat-card { flex: 0 0 78%; max-width: 240px; }
}

/* Category archive hero: echoes the homepage card on its category page. */
.woocommerce-products-header .tbm-archive-hero {
    order: 0;                   /* first inside the flex-column header */
    display: block;
    width: auto;
    max-width: min(420px, 80vw);
    max-height: 320px;
    height: auto;
    margin: 0 auto 1.25rem;
    border-radius: 18px;
    background: transparent;
}
@media (max-width: 720px) {
    .woocommerce-products-header .tbm-archive-hero {
        max-width: 75vw;
        max-height: 280px;
        margin-bottom: 1rem;
    }
}
@media (max-width: 480px) {
    .woocommerce-products-header .tbm-archive-hero {
        max-width: 78vw;
        max-height: 240px;
    }
}

/* tbm-archive-hero side-by-side
   Two-column layout on the category archive header at desktop widths:
   hero image on the left, eyebrow/title/subtitle/description on the right.
   Falls back to stacked (image on top, text below) below 720px. */
@media (min-width: 721px) {
    .woocommerce.archive .woocommerce-products-header,
    .woocommerce.post-type-archive-product .woocommerce-products-header,
    .tax-product_cat .woocommerce-products-header,
    .tax-product_tag .woocommerce-products-header {
        display: grid !important;
        grid-template-columns: auto minmax(0, 1fr);
        align-items: center;
        justify-items: start;
        column-gap: 2.5rem;
        text-align: left;
        max-width: 1000px;
        padding: 2rem 1.25rem 1.5rem;
    }
    .woocommerce-products-header .tbm-archive-hero {
        grid-column: 1;
        grid-row: 1 / span 10;     /* span all sibling rows on the right */
        margin: 0;                  /* kill the auto centering */
        max-width: min(360px, 38vw);
        max-height: 380px;
        align-self: center;
    }
    .woocommerce-products-header .tbm-archive-eyebrow,
    .woocommerce-products-header__title,
    .woocommerce-products-header .tbm-archive-subtitle,
    .woocommerce-products-header .term-description {
        grid-column: 2;
        justify-self: start;
        text-align: left;
        max-width: 100%;
    }
    .woocommerce-products-header__title {
        margin: 0.25rem 0 0.75rem;
    }
    .woocommerce-products-header .term-description {
        margin: 0;
        background: transparent;
        padding: 0;
    }
    .woocommerce-products-header .term-description p {
        margin: 0;
    }
}

/* category hero polish v1
   Premium editorial framing for category archive pages that have a card image.
   Adds a champagne backdrop card, soft shadow on the hero image, clean typography
   on the right column, and strips the boxy description. */
.woocommerce-products-header:has(.tbm-archive-hero) {
    background: linear-gradient(180deg, #faf6ec 0%, #f5efe2 100%);
    border-radius: 28px;
    box-shadow:
        0 1px 0 rgba(223, 231, 226, 0.8) inset,
        0 24px 56px -32px rgba(16, 54, 41, 0.14);
    max-width: 1100px !important;
    margin: 1.5rem auto 2.5rem !important;
}

@media (min-width: 721px) {
    .woocommerce-products-header:has(.tbm-archive-hero) {
        padding: 3rem 3.25rem !important;
        column-gap: 3.25rem !important;
        align-items: center;
    }
    .woocommerce-products-header:has(.tbm-archive-hero) .tbm-archive-hero {
        max-width: min(340px, 36vw);
        max-height: 420px;
        border-radius: 20px;
        box-shadow:
            0 18px 44px -18px rgba(16, 54, 41, 0.28),
            0 4px 14px -4px rgba(16, 19, 18, 0.08);
    }
    .woocommerce-products-header:has(.tbm-archive-hero) .tbm-archive-eyebrow {
        color: var(--wp--preset--color--brand-2);
        font-size: 0.78rem;
        letter-spacing: 0.28em;
        margin: 0 0 0.6rem;
    }
    .woocommerce-products-header:has(.tbm-archive-hero) .woocommerce-products-header__title {
        font-size: clamp(2.4rem, 5vw, 3.5rem) !important;
        margin: 0 0 1.1rem !important;
        letter-spacing: -0.025em !important;
        line-height: 1 !important;
    }
    .woocommerce-products-header:has(.tbm-archive-hero) .term-description {
        background: transparent !important;
        border: none !important;
        padding: 0 !important;
        margin: 0 !important;
        max-width: 44ch;
        font-size: 1.0625rem;
        line-height: 1.6;
        color: var(--wp--preset--color--ink);
        opacity: 0.78;
    }
    .woocommerce-products-header:has(.tbm-archive-hero) .term-description p {
        margin: 0 0 0.5rem;
    }
    .woocommerce-products-header:has(.tbm-archive-hero) .term-description p:last-child {
        margin-bottom: 0;
    }
}

@media (max-width: 720px) {
    .woocommerce-products-header:has(.tbm-archive-hero) {
        padding: 2rem 1.5rem !important;
        border-radius: 22px;
        margin: 1rem 0.75rem 1.5rem !important;
    }
    .woocommerce-products-header:has(.tbm-archive-hero) .tbm-archive-hero {
        max-width: 70vw;
        max-height: 320px;
        border-radius: 18px;
        box-shadow:
            0 12px 32px -16px rgba(16, 54, 41, 0.24),
            0 4px 10px -4px rgba(16, 19, 18, 0.06);
    }
    .woocommerce-products-header:has(.tbm-archive-hero) .term-description {
        background: transparent !important;
        border: none !important;
        padding: 0 !important;
        margin: 0.75rem auto 0 !important;
        max-width: 90%;
        text-align: center;
        font-size: 0.98rem;
        line-height: 1.55;
        color: var(--wp--preset--color--ink);
        opacity: 0.78;
    }
}

/* category hero banner layout v1
   Banner-format hero (1916x821, ~2.33:1). Replaces the earlier side-by-side
   grid: now the banner spans full width on top, with BROWSE/title/description
   centered below it. The cream backdrop "card" is preserved. */
.woocommerce-products-header:has(.tbm-archive-hero) {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    text-align: center;
    grid-template-columns: none !important;
    column-gap: 0 !important;
    padding: 0 !important;
    overflow: hidden;
}

/* Banner image: full-width, no rounded inner corners — it bleeds to the card edges */
.woocommerce-products-header:has(.tbm-archive-hero) .tbm-archive-hero {
    order: 0;
    grid-column: auto !important;
    grid-row: auto !important;
    width: 100%;
    max-width: 100% !important;
    max-height: none !important;
    height: auto !important;
    margin: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    display: block;
    aspect-ratio: 1916 / 821;
    object-fit: cover;
    align-self: stretch !important;
}

/* Text block below the banner: centered, comfortably padded */
.woocommerce-products-header:has(.tbm-archive-hero) .tbm-archive-eyebrow,
.woocommerce-products-header:has(.tbm-archive-hero) .woocommerce-products-header__title,
.woocommerce-products-header:has(.tbm-archive-hero) .tbm-archive-subtitle,
.woocommerce-products-header:has(.tbm-archive-hero) .term-description {
    grid-column: auto !important;
    justify-self: center !important;
    text-align: center !important;
    max-width: 720px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

@media (min-width: 721px) {
    .woocommerce-products-header:has(.tbm-archive-hero) {
        align-items: center !important;
    }
    .woocommerce-products-header:has(.tbm-archive-hero) .tbm-archive-eyebrow {
        margin: 1.75rem 0 0.6rem !important;
    }
    .woocommerce-products-header:has(.tbm-archive-hero) .woocommerce-products-header__title {
        margin: 0 0 1rem !important;
        font-size: clamp(2.4rem, 5vw, 3.5rem) !important;
        letter-spacing: -0.025em !important;
        line-height: 1.02 !important;
    }
    .woocommerce-products-header:has(.tbm-archive-hero) .term-description {
        padding: 0 1.5rem 2rem !important;
        font-size: 1.0625rem;
        line-height: 1.6;
    }
}

@media (max-width: 720px) {
    .woocommerce-products-header:has(.tbm-archive-hero) {
        margin: 1rem 0.75rem 1.5rem !important;
    }
    .woocommerce-products-header:has(.tbm-archive-hero) .tbm-archive-eyebrow {
        margin: 1.25rem 0 0.45rem !important;
    }
    .woocommerce-products-header:has(.tbm-archive-hero) .woocommerce-products-header__title {
        margin: 0 0 0.6rem !important;
    }
    .woocommerce-products-header:has(.tbm-archive-hero) .term-description {
        padding: 0 1.25rem 1.5rem !important;
        font-size: 0.98rem;
    }
}

/* hide redundant header text v1
   Banner already has BROWSE + category name baked into the artwork.
   Hide the eyebrow + h1 on category pages that render the hero banner. */
.woocommerce-products-header:has(.tbm-archive-hero) .tbm-archive-eyebrow,
.woocommerce-products-header:has(.tbm-archive-hero) .woocommerce-products-header__title {
    display: none !important;
}

/* shrink hero subtitle + description v1 — text below the banner is overpowering */
.woocommerce-products-header:has(.tbm-archive-hero) .tbm-archive-subtitle {
    font-size: 0.88rem !important;
    margin: 1.25rem 0 0.4rem !important;
    line-height: 1.3;
}
.woocommerce-products-header:has(.tbm-archive-hero) .term-description {
    font-size: 0.86rem !important;
    line-height: 1.5 !important;
    max-width: 560px !important;
    padding: 0 1.5rem 1.5rem !important;
}
.woocommerce-products-header:has(.tbm-archive-hero) .term-description strong {
    font-size: 0.7rem !important;
    letter-spacing: 0.08em;
    margin-bottom: 0.25rem !important;
}
@media (max-width: 720px) {
    .woocommerce-products-header:has(.tbm-archive-hero) .tbm-archive-subtitle {
        font-size: 0.82rem !important;
        margin: 1rem 0 0.3rem !important;
    }
    .woocommerce-products-header:has(.tbm-archive-hero) .term-description {
        font-size: 0.8rem !important;
        padding: 0 1rem 1.25rem !important;
    }
}

/* ============================================================
 * TBM .com next-level v1 — magazine-style enhancements
 *   matches thriftbymail.shop's editorial polish
 * ============================================================ */

/* Shared eyebrow/headline/section-header tokens for new sections */
.tbm-eyebrow {
    color: var(--wp--preset--color--brand);
    text-transform: uppercase;
    font-weight: 900;
    letter-spacing: 0.08em;
    font-size: 0.78rem;
    margin: 0 0 12px;
    font-family: 'Inter', sans-serif;
}
.tbm-section-header {
    text-align: center;
    max-width: 760px;
    margin: 0 auto 28px;
    padding: 0 1rem;
}
.tbm-section-headline {
    margin: 0;
    font-size: clamp(2rem, 4.5vw, 3.4rem) !important;
    line-height: 1.02 !important;
    font-weight: 900 !important;
    color: var(--wp--preset--color--ink) !important;
    font-family: 'Inter', sans-serif !important;
    letter-spacing: -0.015em;
}
.tbm-section-headline em,
.tbm-confidence-headline em,
.tbm-why-headline em,
.tbm-why-subhead em {
    color: var(--wp--preset--color--brand);
    font-family: 'Cormorant Garamond', 'Playfair Display', serif;
    font-style: italic;
    font-weight: 700;
    font-size: 1.15em;
    letter-spacing: -0.02em;
    line-height: 0.95;
    display: inline-block;
}

/* ----- Trust stats row ----- */
.tbm-trust-row {
    width: min(1180px, calc(100% - 32px));
    margin: 0 auto 64px;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}
.tbm-trust-item {
    background: var(--wp--preset--color--panel);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: 14px;
    padding: 18px 20px;
    text-align: left;
    transition: transform 160ms ease, box-shadow 160ms ease;
}
.tbm-trust-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 28px -16px rgba(16, 54, 41, 0.18);
}
.tbm-trust-item strong {
    display: block;
    font-family: 'Inter', sans-serif;
    font-size: clamp(1.5rem, 2.4vw, 1.85rem);
    font-weight: 900;
    color: var(--wp--preset--color--ink);
    letter-spacing: -0.02em;
    line-height: 1.1;
}
.tbm-trust-item span {
    display: block;
    margin-top: 4px;
    font-size: 0.86rem;
    color: var(--wp--preset--color--muted);
    font-weight: 500;
}
@media (max-width: 720px) {
    .tbm-trust-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        margin-bottom: 40px;
    }
}

/* ----- Buyer confidence + promisbanner ----- */
.tbm-confidence {
    width: min(1180px, calc(100% - 32px));
    margin: 0 auto 64px;
    padding: 48px 0;
}
.tbm-confidence-headline {
    margin: 0;
    font-size: clamp(2rem, 4.5vw, 3.4rem) !important;
    line-height: 1.02 !important;
    font-weight: 900 !important;
    color: var(--wp--preset--color--ink) !important;
    text-align: center;
    font-family: 'Inter', sans-serif !important;
    letter-spacing: -0.015em;
}
.tbm-seller-bio {
    max-width: 780px;
    margin: 24px auto 32px;
    text-align: center;
    color: var(--wp--preset--color--muted);
    font-size: clamp(0.98rem, 1.6vw, 1.1rem);
    line-height: 1.6;
    font-weight: 500;
}
.tbm-promis-strip {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 0 -16px;
    padding: 0 16px;
    scrollbar-width: none;
}
.tbm-promis-strip::-webkit-scrollbar { display: none; }
.tbm-promis-img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
    border-radius: 16px;
}

/* ----- Testimonials ----- */
.tbm-testimonials-section {
    width: min(1180px, calc(100% - 32px));
    margin: 0 auto 80px;
    padding: 24px 0 48px;
}
.tbm-testimonials-row {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}
.tbm-testimonial-card {
    background: var(--wp--preset--color--panel);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: 16px;
    padding: 22px 22px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    text-align: left;
}
.tbm-stars {
    color: #ffba2a;
    letter-spacing: 2px;
    font-size: 0.95rem;
}
.tbm-quote {
    margin: 0;
    color: var(--wp--preset--color--ink);
    font-size: 0.94rem;
    line-height: 1.55;
    font-weight: 540;
}
.tbm-author {
    color: var(--wp--preset--color--muted);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-top: auto;
}
@media (max-width: 960px) {
    .tbm-testimonials-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 540px) {
    .tbm-testimonials-row { grid-template-columns: 1fr; }
}

/* ----- Why buy direct (two-panel) ----- */
.tbm-why {
    width: min(1180px, calc(100% - 32px));
    margin: 0 auto 64px;
}
.tbm-why-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
}
.tbm-why-panel {
    background: linear-gradient(180deg, #faf6ec 0%, #f5efe2 100%);
    border-radius: 22px;
    padding: 36px 36px;
}
.tbm-why-panel:nth-child(2) {
    background: var(--wp--preset--color--panel);
    border: 1px solid var(--wp--preset--color--line);
}
.tbm-why-headline,
.tbm-why-subhead {
    margin: 0 0 14px;
    color: var(--wp--preset--color--ink) !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 900 !important;
    letter-spacing: -0.015em;
}
.tbm-why-headline {
    font-size: clamp(1.6rem, 3vw, 2.2rem);
    line-height: 1.08 !important;
}
.tbm-why-subhead {
    font-size: clamp(1.3rem, 2.4vw, 1.7rem);
    line-height: 1.1 !important;
}
.tbm-why-body {
    margin: 0 0 16px;
    color: var(--wp--preset--color--muted);
    font-size: 0.98rem;
    line-height: 1.6;
    font-weight: 500;
}
.tbm-check-list {
    margin: 14px 0 0;
    padding: 0;
    list-style: none;
}
.tbm-check-list li {
    position: relative;
    padding-left: 24px;
    margin-bottom: 10px;
    color: var(--wp--preset--color--ink);
    font-size: 0.94rem;
    line-height: 1.55;
    font-weight: 500;
}
.tbm-check-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.6rem;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--wp--preset--color--brand);
    box-shadow: 0 0 0 3px rgba(16, 54, 41, 0.12);
}
.tbm-check-list strong {
    color: var(--wp--preset--color--brand);
    font-weight: 800;
}
@media (max-width: 820px) {
    .tbm-why-grid { grid-template-columns: 1fr; }
    .tbm-why-panel { padding: 28px 24px; }
}

/* ----- FAQ accordion ----- */
.tbm-faq-section {
    width: min(820px, calc(100% - 32px));
    margin: 0 auto 80px;
    padding: 24px 0 32px;
}
.tbm-faq-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 8px;
}
.tbm-faq-item {
    background: var(--wp--preset--color--panel);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: 14px;
    padding: 0;
    transition: border-color 160ms ease, box-shadow 160ms ease;
}
.tbm-faq-item[open] {
    border-color: var(--wp--preset--color--brand);
    box-shadow: 0 10px 24px -16px rgba(16, 54, 41, 0.22);
}
.tbm-faq-item summary {
    list-style: none;
    cursor: pointer;
    padding: 18px 56px 18px 22px;
    font-weight: 700;
    font-size: 1rem;
    color: var(--wp--preset--color--ink);
    position: relative;
}
.tbm-faq-item summary::-webkit-details-marker { display: none; }
.tbm-faq-item summary::after {
    content: '+';
    position: absolute;
    right: 22px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--wp--preset--color--brand);
    font-weight: 800;
    font-size: 1.5rem;
    line-height: 1;
    transition: transform 200ms ease;
}
.tbm-faq-item[open] summary::after {
    content: '−';
}
.tbm-faq-item p {
    margin: 0;
    padding: 0 22px 18px;
    color: var(--wp--preset--color--muted);
    font-size: 0.95rem;
    line-height: 1.6;
    font-weight: 500;
}

/* ----- Email signup with mailbox illustration ----- */
.tbm-email-section {
    width: min(1100px, calc(100% - 32px));
    margin: 0 auto 80px;
}
.tbm-email-panel {
    position: relative;
    background: linear-gradient(180deg, #faf6ec 0%, #f5efe2 100%);
    border: 1.5px solid var(--wp--preset--color--brand);
    border-radius: 24px;
    overflow: hidden;
    isolation: isolate;
}
.tbm-email-art {
    display: block;
    width: 100%;
    height: auto;
    max-width: 100%;
}
.tbm-email-form {
    position: absolute;
    left: 6.5%;
    top: 75%;
    width: 38%;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    align-items: center;
}
.tbm-email-form input[type="email"] {
    width: 100%;
    padding: 12px 16px;
    border-radius: 999px;
    border: 1px solid var(--wp--preset--color--line);
    background: rgba(255, 255, 255, 0.92);
    font-size: 0.92rem;
    outline: none;
    transition: border-color 160ms ease;
}
.tbm-email-form input[type="email"]:focus {
    border-color: var(--wp--preset--color--brand);
}
.tbm-email-form .tbm-btn {
    border-radius: 999px;
    padding: 12px 20px;
    font-size: 0.86rem;
    font-weight: 800;
}
.tbm-email-status {
    grid-column: 1 / -1;
    margin: 4px 0 0;
    font-size: 0.78rem;
    color: var(--wp--preset--color--brand);
    font-weight: 700;
}
@media (max-width: 820px) {
    .tbm-email-form {
        position: static;
        width: auto;
        margin: -24px 24px 24px;
        background: rgba(255, 255, 255, 0.92);
        padding: 16px;
        border-radius: 16px;
        box-shadow: 0 12px 28px -16px rgba(16, 54, 41, 0.18);
    }
}

/* tbm-trust-row — exact 1:1 match with thriftbymail.shop .trust-row */
.tbm-trust-row {
    width: min(1180px, calc(100% - 32px));
    margin: 0 auto 64px !important;
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 12px !important;
}
.tbm-trust-item {
    position: relative;
    overflow: hidden;
    background:
        linear-gradient(135deg, rgba(20, 68, 55, 0.055), rgba(255, 255, 255, 0.74)),
        rgba(255, 255, 255, 0.78) !important;
    border: 1px solid rgba(20, 68, 55, 0.16) !important;
    border-radius: 8px !important;
    padding: 16px !important;
    box-shadow: 0 0 18px rgba(20, 68, 55, 0.055) !important;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    transition: transform 160ms ease, box-shadow 160ms ease;
}
.tbm-trust-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(20, 68, 55, 0.12) !important;
}
.tbm-trust-item::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    height: 3px;
    width: 100%;
    background: var(--wp--preset--color--brand);
    opacity: 0.95;
}
.tbm-trust-item strong {
    display: inline-flex !important;
    align-items: baseline;
    gap: 6px;
    font-size: clamp(1.5rem, 3.2vw, 2.3rem) !important;
    line-height: 1 !important;
    font-weight: 950 !important;
    color: var(--wp--preset--color--ink) !important;
    letter-spacing: -0.01em !important;
    margin: 0 !important;
}
.tbm-trust-item strong::after {
    content: '';
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--wp--preset--color--brand);
    display: inline-block;
    align-self: center;
    transform: translateY(2px);
}
.tbm-trust-item span {
    display: block !important;
    color: var(--wp--preset--color--brand) !important;
    margin-top: 8px !important;
    font-family: 'Cormorant Garamond', 'Times New Roman', serif !important;
    font-style: italic !important;
    font-weight: 600 !important;
    font-size: 1.08rem !important;
    letter-spacing: 0 !important;
    line-height: 1.2 !important;
}
@media (max-width: 720px) {
    .tbm-trust-row {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        margin-bottom: 40px !important;
    }
}

/* TBM .com next-level v2 — tighten typography to better match .shop's compact editorial scale */
.tbm-section-headline,
.tbm-confidence-headline {
    font-size: clamp(1.65rem, 3.6vw, 2.6rem) !important;
    line-height: 1.06 !important;
}
.tbm-section-header {
    margin-bottom: 22px !important;
}
.tbm-section-header p:last-child {
    font-size: 0.92rem;
    color: var(--wp--preset--color--muted);
    margin-top: 8px;
}
.tbm-confidence {
    padding: 32px 0 !important;
    margin-bottom: 48px !important;
}
.tbm-seller-bio {
    font-size: 0.95rem !important;
    line-height: 1.55 !important;
    max-width: 720px !important;
    margin: 18px auto 24px !important;
}
.tbm-testimonials-section {
    padding: 8px 0 32px !important;
    margin-bottom: 56px !important;
}
.tbm-testimonial-card {
    padding: 18px !important;
    gap: 8px !important;
}
.tbm-stars { font-size: 0.85rem !important; }
.tbm-quote { font-size: 0.88rem !important; line-height: 1.5 !important; }
.tbm-author { font-size: 0.72rem !important; }

.tbm-why {
    margin-bottom: 48px !important;
}
.tbm-why-panel { padding: 28px 28px !important; }
.tbm-why-headline { font-size: clamp(1.4rem, 2.6vw, 1.85rem) !important; }
.tbm-why-subhead { font-size: clamp(1.15rem, 2.1vw, 1.45rem) !important; }
.tbm-why-body { font-size: 0.92rem !important; line-height: 1.55 !important; }
.tbm-check-list li { font-size: 0.88rem !important; padding-left: 22px !important; margin-bottom: 8px !important; }
.tbm-check-list li::before { width: 8px !important; height: 8px !important; }

.tbm-faq-section {
    margin-bottom: 56px !important;
    padding: 8px 0 24px !important;
}
.tbm-faq-item summary { font-size: 0.92rem !important; padding: 14px 50px 14px 18px !important; }
.tbm-faq-item summary::after { font-size: 1.3rem !important; right: 18px !important; }
.tbm-faq-item p { font-size: 0.88rem !important; padding: 0 18px 14px !important; line-height: 1.55 !important; }

.tbm-trust-row {
    margin-bottom: 48px !important;
}

/* New section-headline scope for the added Staff Picks / Under 10 sections */
.tbm-section-headline em { font-size: 1.1em !important; }

/* On the home page the fancy mailbox-illustration signup (.tbm-email-section) is
   used instead — hide the simpler footer .tbm-newsletter to avoid the duplicate. */
body.home form.tbm-newsletter,
body.home .tbm-newsletter {
    display: none !important;
}
/* Defensive: ensure any stray sr-only also hides */
.tbm-email-section .sr-only,
h2.sr-only {
    position: absolute !important;
    left: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
}

/* email-section form: keep ABSOLUTE positioning at all viewports.
   My earlier mobile media query set position:static which floated the form
   BELOW the image — that made it look like 2 forms because the image has
   a painted form inside it. Match .shop's behavior: always overlay. */
.tbm-email-form {
    position: absolute !important;
    left: 6.5% !important;
    top: 75% !important;
    width: 38% !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 0 !important;
}
@media (max-width: 820px) {
    .tbm-email-form {
        grid-template-columns: minmax(0, 1fr) 32% !important;
        gap: 4px !important;
    }
    .tbm-email-form input[type="email"] {
        padding: 8px 12px !important;
        font-size: 0.78rem !important;
    }
    .tbm-email-form .tbm-btn {
        padding: 8px 12px !important;
        font-size: 0.72rem !important;
    }
}
@media (max-width: 480px) {
    .tbm-email-form input[type="email"] {
        padding: 6px 10px !important;
        font-size: 0.7rem !important;
    }
    .tbm-email-form .tbm-btn {
        padding: 6px 10px !important;
        font-size: 0.66rem !important;
    }
}

/* Make email form input + button invisible so the painted form in the
   mailcardsignup.png shows through. The form stays fully functional —
   clicks land on the transparent input/button underneath. */
.tbm-email-form input[type="email"] {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    color: var(--wp--preset--color--ink) !important;
}
.tbm-email-form input[type="email"]::placeholder {
    color: transparent !important;
}
.tbm-email-form input[type="email"]:focus {
    outline: none !important;
    border: none !important;
}
.tbm-email-form .tbm-btn {
    background: transparent !important;
    color: transparent !important;
    box-shadow: none !important;
    border: none !important;
}
.tbm-email-form .tbm-btn:hover {
    background: transparent !important;
    color: transparent !important;
    transform: none !important;
}
/* Keep the status message visible (success/error feedback) */
.tbm-email-status {
    color: var(--wp--preset--color--brand) !important;
    background: rgba(245, 239, 226, 0.9);
    padding: 4px 8px;
    border-radius: 6px;
    margin-top: 6px !important;
}
.tbm-email-status:empty { display: none; }

/* Pixel-perfect alignment of invisible form to painted form in mailcardsignup.png (1550x900).
   Painted input field: left 4%, right 21%, top 82%, bottom 90%.
   Painted button: left 22%, right 29%, same vertical band. */
.tbm-email-form {
    position: absolute !important;
    left: 4% !important;
    top: 82% !important;
    width: 25.2% !important;
    height: 8% !important;
    grid-template-columns: 70% 28% !important;
    gap: 2% !important;
    padding: 0 !important;
    margin: 0 !important;
    align-items: stretch !important;
}
.tbm-email-form input[type="email"] {
    height: 100% !important;
    padding: 0 8% !important;
    font-size: clamp(0.55rem, 1vw, 0.95rem) !important;
    box-sizing: border-box !important;
    width: 100% !important;
}
.tbm-email-form .tbm-btn {
    height: 100% !important;
    padding: 0 !important;
    font-size: clamp(0.5rem, 0.9vw, 0.85rem) !important;
    width: 100% !important;
    box-sizing: border-box !important;
    min-height: 0 !important;
}
.tbm-email-status {
    position: absolute;
    top: 100%;
    left: 0;
    margin-top: 4px !important;
}

/* Lock panel to image aspect-ratio so % offsets stay consistent
   across desktop + mobile. Image is 1550x900 (1.722:1). */
section.tbm-email-section .tbm-email-panel {
    position: relative !important;
    aspect-ratio: 1550 / 900 !important;
    overflow: hidden !important;
}
section.tbm-email-section .tbm-email-panel .tbm-email-art {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
}
section.tbm-email-section .tbm-email-panel .tbm-email-form {
    position: absolute !important;
    left: 4.5% !important;
    top: 82.5% !important;
    width: 25% !important;
    height: 7.5% !important;
    display: grid !important;
    grid-template-columns: 70% 30% !important;
    gap: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    align-items: stretch !important;
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
    border-radius: 0 !important;
}
section.tbm-email-section .tbm-email-panel .tbm-email-form input[type="email"] {
    position: relative !important;
    height: 100% !important;
    width: 100% !important;
    padding: 0 6% 0 14% !important;
    font-size: clamp(0.5rem, 1.05vw, 0.95rem) !important;
    box-sizing: border-box !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    color: var(--wp--preset--color--ink) !important;
    margin: 0 !important;
}
section.tbm-email-section .tbm-email-panel .tbm-email-form .tbm-btn {
    position: relative !important;
    height: 100% !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    min-height: 0 !important;
    background: transparent !important;
    color: transparent !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
}
section.tbm-email-section .tbm-email-panel .tbm-email-form input[type="email"]::placeholder {
    color: transparent !important;
}
.tbm-email-status {
    position: static !important;
    margin-top: 8px !important;
    padding: 0 16px !important;
}
.tbm-email-status:empty { display: none !important; }

/* email signup clean v6 — two-column layout, no overlay nonsense */
section.tbm-email-section {
    width: min(1100px, calc(100% - 32px)) !important;
    margin: 0 auto 80px !important;
}
section.tbm-email-section .tbm-email-panel {
    position: relative !important;
    background: linear-gradient(180deg, #faf6ec 0%, #f5efe2 100%) !important;
    border: 1.5px solid var(--wp--preset--color--brand) !important;
    border-radius: 24px !important;
    overflow: hidden !important;
    display: grid !important;
    grid-template-columns: 1.2fr 1fr !important;
    align-items: center !important;
    aspect-ratio: auto !important;
    padding: 0 !important;
}
section.tbm-email-section .tbm-email-copy {
    padding: 44px 44px 44px 48px !important;
    text-align: left !important;
}
section.tbm-email-section .tbm-eyebrow {
    color: var(--wp--preset--color--brand) !important;
    text-transform: uppercase !important;
    font-weight: 900 !important;
    letter-spacing: 0.08em !important;
    font-size: 0.74rem !important;
    margin: 0 0 14px !important;
    font-family: 'Inter', sans-serif !important;
}
section.tbm-email-section .tbm-email-headline {
    margin: 0 0 16px !important;
    font-size: clamp(1.5rem, 3vw, 2.2rem) !important;
    line-height: 1.05 !important;
    font-weight: 900 !important;
    color: var(--wp--preset--color--ink) !important;
    font-family: 'Inter', sans-serif !important;
    letter-spacing: -0.015em !important;
}
section.tbm-email-section .tbm-email-headline em {
    color: var(--wp--preset--color--brand);
    font-family: 'Cormorant Garamond', 'Playfair Display', serif;
    font-style: italic;
    font-weight: 700;
    font-size: 1.12em;
    letter-spacing: -0.02em;
    line-height: 0.95;
    display: inline-block;
}
section.tbm-email-section .tbm-email-body {
    margin: 0 0 20px !important;
    color: var(--wp--preset--color--muted) !important;
    font-size: 0.94rem !important;
    line-height: 1.55 !important;
    max-width: 420px !important;
    font-weight: 500 !important;
}
section.tbm-email-section .tbm-email-form {
    position: static !important;
    display: flex !important;
    gap: 8px !important;
    align-items: stretch !important;
    width: 100% !important;
    max-width: 420px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
    height: auto !important;
    top: auto !important;
    left: auto !important;
    grid-template-columns: none !important;
}
section.tbm-email-section .tbm-email-form input[type="email"] {
    position: static !important;
    flex: 1 1 auto !important;
    width: auto !important;
    height: auto !important;
    padding: 12px 16px !important;
    font-size: 0.92rem !important;
    color: var(--wp--preset--color--ink) !important;
    background: rgba(255, 255, 255, 0.92) !important;
    border: 1px solid var(--wp--preset--color--line) !important;
    border-radius: 999px !important;
    box-shadow: none !important;
    outline: none !important;
    transition: border-color 160ms ease !important;
}
section.tbm-email-section .tbm-email-form input[type="email"]:focus {
    border-color: var(--wp--preset--color--brand) !important;
    outline: none !important;
}
section.tbm-email-section .tbm-email-form input[type="email"]::placeholder {
    color: var(--wp--preset--color--muted) !important;
}
section.tbm-email-section .tbm-email-form .tbm-btn {
    position: static !important;
    flex: 0 0 auto !important;
    width: auto !important;
    height: auto !important;
    padding: 12px 22px !important;
    font-size: 0.86rem !important;
    font-weight: 800 !important;
    background: var(--wp--preset--color--brand) !important;
    color: var(--wp--preset--color--paper) !important;
    border: 0 !important;
    border-radius: 999px !important;
    box-shadow: none !important;
    min-height: 0 !important;
    transition: background 160ms ease !important;
}
section.tbm-email-section .tbm-email-form .tbm-btn:hover {
    background: var(--wp--preset--color--brand-2) !important;
    color: var(--wp--preset--color--paper) !important;
}
section.tbm-email-section .tbm-email-art-wrap {
    position: relative !important;
    height: 100% !important;
    min-height: 280px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}
section.tbm-email-section .tbm-email-art {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-height: 360px !important;
    object-fit: contain !important;
    object-position: center right !important;
    margin: 0 !important;
    position: relative !important;
    inset: auto !important;
}
section.tbm-email-section .tbm-email-status {
    position: static !important;
    margin: 12px 0 0 !important;
    padding: 0 !important;
    background: transparent !important;
    font-size: 0.82rem !important;
    color: var(--wp--preset--color--brand) !important;
    font-weight: 700 !important;
}
section.tbm-email-section .tbm-email-status:empty {
    display: none !important;
}
@media (max-width: 720px) {
    section.tbm-email-section .tbm-email-panel {
        grid-template-columns: 1fr !important;
    }
    section.tbm-email-section .tbm-email-copy {
        padding: 32px 24px 24px !important;
    }
    section.tbm-email-section .tbm-email-art-wrap {
        min-height: 200px !important;
        padding: 0 24px 24px !important;
    }
    section.tbm-email-section .tbm-email-art {
        max-height: 220px !important;
    }
    section.tbm-email-section .tbm-email-form {
        flex-direction: column !important;
    }
    section.tbm-email-section .tbm-email-form .tbm-btn {
        width: 100% !important;
        justify-content: center !important;
    }
}

/* email signup hero-banner v7 — full-bleed mailbox image as background,
   text + form sits in the cream space on the left. No painted form to align with,
   so positioning is reliable. */
section.tbm-email-section .tbm-email-panel--hero {
    position: relative !important;
    display: block !important;
    grid-template-columns: none !important;
    background-image: url('/wp-content/themes/tbm/assets/mailbox-hero.png') !important;
    background-size: cover !important;
    background-position: center right !important;
    background-repeat: no-repeat !important;
    aspect-ratio: 1672 / 941 !important;
    border: 1.5px solid var(--wp--preset--color--brand) !important;
    border-radius: 24px !important;
    overflow: hidden !important;
    min-height: 0 !important;
}
section.tbm-email-section .tbm-email-panel--hero .tbm-email-copy {
    position: absolute !important;
    top: 50% !important;
    left: 5% !important;
    transform: translateY(-50%) !important;
    width: 48% !important;
    max-width: 520px !important;
    padding: 0 !important;
    text-align: left !important;
}
section.tbm-email-section .tbm-email-panel--hero .tbm-email-headline {
    font-size: clamp(1.4rem, 3.4vw, 2.6rem) !important;
}
section.tbm-email-section .tbm-email-panel--hero .tbm-email-body {
    max-width: 100% !important;
    font-size: clamp(0.82rem, 1.2vw, 1rem) !important;
}
section.tbm-email-section .tbm-email-panel--hero .tbm-email-form {
    max-width: 100% !important;
}
@media (max-width: 720px) {
    section.tbm-email-section .tbm-email-panel--hero {
        aspect-ratio: auto !important;
        background-position: bottom right !important;
        background-size: 65% auto !important;
        padding: 28px 24px 240px !important;
        min-height: 480px !important;
    }
    section.tbm-email-section .tbm-email-panel--hero .tbm-email-copy {
        position: static !important;
        transform: none !important;
        width: 100% !important;
        max-width: 100% !important;
    }
    section.tbm-email-section .tbm-email-panel--hero .tbm-email-form {
        flex-direction: column !important;
    }
    section.tbm-email-section .tbm-email-panel--hero .tbm-email-form .tbm-btn {
        width: 100% !important;
        justify-content: center !important;
    }
}

/* Restore email form visibility for the hero-banner layout — undo the leftover
   invisible-overlay rules from the painted-form attempt. */
section.tbm-email-section .tbm-email-panel--hero .tbm-email-form {
    display: flex !important;
    gap: 8px !important;
    align-items: stretch !important;
    height: auto !important;
    max-width: 100% !important;
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    grid-template-columns: none !important;
}
section.tbm-email-section .tbm-email-panel--hero .tbm-email-form input[type="email"] {
    position: static !important;
    flex: 1 1 auto !important;
    width: auto !important;
    height: auto !important;
    padding: 12px 16px !important;
    font-size: 0.92rem !important;
    color: var(--wp--preset--color--ink) !important;
    background: rgba(255, 255, 255, 0.96) !important;
    border: 1px solid var(--wp--preset--color--line) !important;
    border-radius: 999px !important;
    box-shadow: 0 2px 8px rgba(16, 54, 41, 0.06) !important;
    outline: none !important;
}
section.tbm-email-section .tbm-email-panel--hero .tbm-email-form input[type="email"]::placeholder {
    color: var(--wp--preset--color--muted) !important;
    opacity: 1 !important;
}
section.tbm-email-section .tbm-email-panel--hero .tbm-email-form input[type="email"]:focus {
    border-color: var(--wp--preset--color--brand) !important;
}
section.tbm-email-section .tbm-email-panel--hero .tbm-email-form .tbm-btn {
    position: static !important;
    flex: 0 0 auto !important;
    width: auto !important;
    height: auto !important;
    padding: 12px 24px !important;
    margin: 0 !important;
    font-size: 0.86rem !important;
    font-weight: 800 !important;
    color: var(--wp--preset--color--paper) !important;
    background: var(--wp--preset--color--brand) !important;
    border: 0 !important;
    border-radius: 999px !important;
    box-shadow: 0 4px 14px rgba(16, 54, 41, 0.25) !important;
    min-height: 0 !important;
    cursor: pointer !important;
    transition: background 160ms ease, transform 160ms ease !important;
}
section.tbm-email-section .tbm-email-panel--hero .tbm-email-form .tbm-btn:hover {
    background: var(--wp--preset--color--brand-2) !important;
    color: var(--wp--preset--color--paper) !important;
    transform: translateY(-1px) !important;
}
section.tbm-email-section .tbm-email-panel--hero .tbm-email-status {
    position: static !important;
    margin: 10px 0 0 !important;
    padding: 0 !important;
    background: transparent !important;
    color: var(--wp--preset--color--brand) !important;
    font-size: 0.82rem !important;
    font-weight: 700 !important;
}


/* ============================================================
 * Email signup section — fresh class names, no inherited rules.
 * Layout: image LEFT (mailbox illustration), text+form RIGHT,
 * stacked on mobile. No absolute positioning, no aspect-ratio
 * lock, no overlay tricks. Just a simple grid.
 * ============================================================ */
.tbm-mail {
    width: min(1100px, calc(100% - 32px));
    margin: 0 auto 80px;
}
.tbm-mail-card {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: 0;
    align-items: stretch;
    background: linear-gradient(180deg, #faf6ec 0%, #f5efe2 100%);
    border: 1.5px solid var(--wp--preset--color--brand);
    border-radius: 24px;
    overflow: hidden;
}
.tbm-mail-text {
    padding: 48px 48px 48px 52px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    text-align: left;
}
.tbm-mail-eyebrow {
    color: var(--wp--preset--color--brand);
    text-transform: uppercase;
    font-weight: 900;
    letter-spacing: 0.08em;
    font-size: 0.74rem;
    margin: 0 0 14px;
    font-family: 'Inter', sans-serif;
}
.tbm-mail-headline {
    margin: 0 0 16px;
    font-size: clamp(1.5rem, 3vw, 2.2rem);
    line-height: 1.05;
    font-weight: 900;
    color: var(--wp--preset--color--ink);
    font-family: 'Inter', sans-serif;
    letter-spacing: -0.015em;
}
.tbm-mail-headline em {
    color: var(--wp--preset--color--brand);
    font-family: 'Cormorant Garamond', 'Playfair Display', serif;
    font-style: italic;
    font-weight: 700;
    font-size: 1.15em;
    letter-spacing: -0.02em;
    line-height: 0.95;
    display: inline-block;
}
.tbm-mail-body {
    margin: 0 0 24px;
    color: var(--wp--preset--color--muted);
    font-size: 0.94rem;
    line-height: 1.55;
    max-width: 440px;
    font-weight: 500;
}
.tbm-mail-form {
    display: flex;
    gap: 8px;
    align-items: stretch;
    width: 100%;
    max-width: 440px;
}
.tbm-mail-form input[type="email"] {
    flex: 1 1 auto;
    min-width: 0;
    padding: 13px 18px;
    font-size: 0.92rem;
    color: var(--wp--preset--color--ink);
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: 999px;
    outline: none;
    box-shadow: 0 2px 8px rgba(16, 54, 41, 0.06);
    transition: border-color 160ms ease;
}
.tbm-mail-form input[type="email"]:focus {
    border-color: var(--wp--preset--color--brand);
}
.tbm-mail-form input[type="email"]::placeholder {
    color: var(--wp--preset--color--muted);
    opacity: 1;
}
.tbm-mail-btn {
    flex: 0 0 auto;
    padding: 13px 26px;
    font-size: 0.86rem;
    font-weight: 800;
    color: var(--wp--preset--color--paper);
    background: var(--wp--preset--color--brand);
    border: 0;
    border-radius: 999px;
    cursor: pointer;
    box-shadow: 0 4px 14px rgba(16, 54, 41, 0.22);
    transition: background 160ms ease, transform 160ms ease;
    white-space: nowrap;
    font-family: 'Inter', sans-serif;
}
.tbm-mail-btn:hover {
    background: var(--wp--preset--color--brand-2);
    transform: translateY(-1px);
}
.tbm-mail-status {
    margin: 12px 0 0;
    color: var(--wp--preset--color--brand);
    font-size: 0.82rem;
    font-weight: 700;
}
.tbm-mail-status:empty {
    display: none;
}
.tbm-mail-art {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 320px;
    max-height: 480px;
    object-fit: cover;
    object-position: center right;
}

/* Mobile: stack vertically — text first, image below */
@media (max-width: 720px) {
    .tbm-mail-card {
        grid-template-columns: 1fr;
    }
    .tbm-mail-text {
        padding: 32px 28px 28px;
        order: 1;
    }
    .tbm-mail-art {
        order: 2;
        min-height: 220px;
        max-height: 280px;
        object-position: center;
    }
    .tbm-mail-form {
        flex-direction: column;
    }
    .tbm-mail-btn {
        width: 100%;
        justify-content: center;
    }
}

/* Override mobile stacking — keep desktop side-by-side layout, just scaled down */
@media (max-width: 720px) {
    .tbm-mail-card {
        grid-template-columns: 1.1fr 1fr !important;
    }
    .tbm-mail-text {
        padding: 24px 18px 24px 22px !important;
        order: 0 !important;
    }
    .tbm-mail-art {
        order: 0 !important;
        min-height: 0 !important;
        max-height: none !important;
        height: 100% !important;
    }
    .tbm-mail-eyebrow {
        font-size: 0.62rem !important;
        margin-bottom: 8px !important;
    }
    .tbm-mail-headline {
        font-size: 1.05rem !important;
        line-height: 1.05 !important;
        margin-bottom: 8px !important;
    }
    .tbm-mail-body {
        font-size: 0.74rem !important;
        line-height: 1.4 !important;
        margin-bottom: 12px !important;
    }
    .tbm-mail-form {
        flex-direction: row !important;
        gap: 5px !important;
    }
    .tbm-mail-form input[type="email"] {
        padding: 8px 12px !important;
        font-size: 0.72rem !important;
        min-width: 0 !important;
    }
    .tbm-mail-btn {
        width: auto !important;
        padding: 8px 14px !important;
        font-size: 0.7rem !important;
        box-shadow: 0 2px 8px rgba(16, 54, 41, 0.2) !important;
    }
}
@media (max-width: 480px) {
    .tbm-mail-text { padding: 18px 12px 18px 16px !important; }
    .tbm-mail-headline { font-size: 0.92rem !important; }
    .tbm-mail-body { font-size: 0.66rem !important; margin-bottom: 8px !important; }
    .tbm-mail-form input[type="email"] { padding: 6px 10px !important; font-size: 0.66rem !important; }
    .tbm-mail-btn { padding: 6px 10px !important; font-size: 0.64rem !important; }
}

/* Show the full mailbox without cropping */
.tbm-mail-art {
    object-fit: contain !important;
    object-position: center !important;
    padding: 12px !important;
}
@media (max-width: 720px) {
    .tbm-mail-art {
        padding: 8px !important;
    }
}


/* ============================================================
 * Sales-alerts section (mailbox footer) — FINAL CLEAN BUILD
 * Requirements:
 *   - Full mailbox-hero.png as background (no crop, no distort)
 *   - Card aspect-ratio locked to image's 1672:941 ratio
 *   - Text + form overlays the cream space on the LEFT
 *   - SAME horizontal layout desktop & mobile, just scaled via clamp()
 *   - Fresh class prefix .tbm-salert-* — zero overlap with prior rules
 * ============================================================ */
.tbm-salert {
    width: min(1100px, calc(100% - 32px));
    margin: 0 auto 80px;
}
.tbm-salert-card {
    position: relative;
    aspect-ratio: 1672 / 941;
    background-image: url('/wp-content/themes/tbm/assets/mailbox-hero.png');
    background-size: 100% 100%;
    background-repeat: no-repeat;
    background-position: center;
    border-radius: clamp(10px, 1.8vw, 24px);
    border: 1.5px solid var(--wp--preset--color--brand);
    overflow: hidden;
}
.tbm-salert-copy {
    position: absolute;
    top: 50%;
    left: 5%;
    transform: translateY(-50%);
    width: 48%;
    max-width: 480px;
    display: flex;
    flex-direction: column;
}
.tbm-salert-eyebrow {
    color: var(--wp--preset--color--brand);
    text-transform: uppercase;
    font-weight: 900;
    letter-spacing: 0.08em;
    font-size: clamp(0.42rem, 1vw, 0.78rem);
    margin: 0 0 clamp(3px, 1vw, 14px);
    font-family: 'Inter', sans-serif;
}
.tbm-salert-headline {
    margin: 0 0 clamp(3px, 1.2vw, 16px);
    font-size: clamp(0.78rem, 2.8vw, 2.2rem);
    line-height: 1.05;
    font-weight: 900;
    color: var(--wp--preset--color--ink);
    font-family: 'Inter', sans-serif;
    letter-spacing: -0.015em;
}
.tbm-salert-headline em {
    color: var(--wp--preset--color--brand);
    font-family: 'Cormorant Garamond', 'Playfair Display', serif;
    font-style: italic;
    font-weight: 700;
    font-size: 1.15em;
    letter-spacing: -0.02em;
    line-height: 0.95;
    display: inline-block;
}
.tbm-salert-body {
    margin: 0 0 clamp(4px, 1.4vw, 22px);
    color: var(--wp--preset--color--muted);
    font-size: clamp(0.46rem, 1.1vw, 0.94rem);
    line-height: 1.5;
    font-weight: 500;
}
.tbm-salert-form {
    display: flex;
    gap: clamp(2px, 0.7vw, 8px);
    align-items: stretch;
    width: 100%;
}
.tbm-salert-form input[type="email"] {
    flex: 1 1 auto;
    min-width: 0;
    padding: clamp(4px, 1.1vw, 13px) clamp(7px, 1.5vw, 18px);
    font-size: clamp(0.5rem, 1vw, 0.92rem);
    color: var(--wp--preset--color--ink);
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: 999px;
    outline: none;
    box-shadow: 0 2px 8px rgba(16, 54, 41, 0.06);
    transition: border-color 160ms ease;
    font-family: 'Inter', sans-serif;
}
.tbm-salert-form input[type="email"]::placeholder {
    color: var(--wp--preset--color--muted);
    opacity: 1;
}
.tbm-salert-form input[type="email"]:focus {
    border-color: var(--wp--preset--color--brand);
}
.tbm-salert-btn {
    flex: 0 0 auto;
    padding: clamp(4px, 1.1vw, 13px) clamp(8px, 2vw, 26px);
    font-size: clamp(0.5rem, 1vw, 0.86rem);
    font-weight: 800;
    color: var(--wp--preset--color--paper);
    background: var(--wp--preset--color--brand);
    border: 0;
    border-radius: 999px;
    cursor: pointer;
    white-space: nowrap;
    font-family: 'Inter', sans-serif;
    box-shadow: 0 4px 14px rgba(16, 54, 41, 0.22);
    transition: background 160ms ease;
}
.tbm-salert-btn:hover {
    background: var(--wp--preset--color--brand-2);
}
.tbm-salert-status {
    margin: clamp(3px, 0.8vw, 10px) 0 0;
    color: var(--wp--preset--color--brand);
    font-size: clamp(0.45rem, 0.9vw, 0.8rem);
    font-weight: 700;
}
.tbm-salert-status:empty {
    display: none;
}

/* === TBM category/shop/archive header — mockup hero style (no image) === */
.woocommerce-products-header__title {
    font-family: 'Oswald', 'Arial Narrow', sans-serif !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: -0.5px !important;
    color: #111 !important;
    font-size: clamp(2.4rem, 6vw, 4.4rem) !important;
    line-height: .95 !important;
}
.tbm-archive-eyebrow {
    font-family: 'Oswald', sans-serif !important;
    font-weight: 600 !important;
    color: #b97517 !important;
    letter-spacing: 3px !important;
    text-transform: uppercase !important;
    font-size: 0.78rem !important;
    margin-bottom: .7rem !important;
}
.tbm-archive-subtitle {
    font-family: 'Playfair Display', Georgia, serif !important;
    font-style: italic !important;
    font-weight: 700 !important;
    color: #1c4631 !important;
    font-size: clamp(1.15rem, 2.2vw, 1.7rem) !important;
    margin-top: .4rem !important;
}
.woocommerce-products-header {
    padding: 2.4rem 1rem 1.2rem !important;
}

/* TBM archive header — left-align like the mockup hero */
.woocommerce.post-type-archive-product .woocommerce-products-header,
.tax-product_cat .woocommerce-products-header,
.tax-product_tag .woocommerce-products-header {
    align-items: flex-start !important;
    text-align: left !important;
    max-width: 1280px;
    margin: 0 auto;
}
.tbm-archive-eyebrow,
.woocommerce-products-header__title,
.tbm-archive-subtitle {
    text-align: left !important;
}

/* TBM archive title — bulletproof override (covers legacy class, query-title block, or plain h1) */
body.post-type-archive-product .woocommerce-products-header__title,
body.tax-product_cat .woocommerce-products-header__title,
body.tax-product_tag .woocommerce-products-header__title,
body.post-type-archive-product .woocommerce-products-header h1,
body.tax-product_cat .woocommerce-products-header h1,
body.tax-product_tag .woocommerce-products-header h1,
body.post-type-archive-product .wp-block-query-title,
body.tax-product_cat .wp-block-query-title,
body.tax-product_tag .wp-block-query-title {
    font-family: 'Oswald', 'Arial Narrow', sans-serif !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: -0.5px !important;
    color: #111 !important;
    font-size: clamp(2.4rem, 6vw, 4.4rem) !important;
    line-height: .95 !important;
    text-align: left !important;
}

/* TBM store background — match the main site cream + dot texture */
body {
    background-color: #f6f1e3 !important;
    background-image: radial-gradient(rgba(28,70,49,.045) 1px, transparent 1px) !important;
    background-size: 22px 22px !important;
}

/* === TBM store typography — match the main site === */
body { font-family: 'Source Serif 4', Georgia, serif !important; }
h1, h2, h3, h4, h5, h6,
.woocommerce-loop-product__title,
.product_title {
    font-family: 'Playfair Display', Georgia, serif !important;
}
.tbm-btn, .tbm-shop-now, .button,
button.single_add_to_cart_button,
.tbm-inventory-pill,
.tbm-archive-eyebrow,
.woocommerce-result-count,
.added_to_cart {
    font-family: 'Oswald', sans-serif !important;
}

/* === TBM sold popup — match the homepage sold ticker === */
.tbm-sold-popup {
    background: #fffdf6 !important;
    border: 3px solid #111 !important;
    border-radius: 10px !important;
    box-shadow: 6px 6px 0 #111 !important;
    padding: 0 !important;
    overflow: hidden !important;
    width: 330px !important;
    max-width: calc(100vw - 40px) !important;
}
.tbm-sold-link { position: relative !important; gap: 0 !important; align-items: stretch !important; padding: 0 !important; }
.tbm-sold-img {
    width: 84px !important; height: 84px !important; flex: 0 0 84px !important;
    border-radius: 0 !important; border-right: 2px solid #d8d0ba !important;
    object-fit: cover !important;
}
.tbm-sold-link::before {
    content: 'Sold'; position: absolute; left: 0; bottom: 0; z-index: 2;
    background: #1c4631; color: #fff; font-family: 'Oswald', sans-serif;
    font-size: 9px; letter-spacing: 1px; text-transform: uppercase; padding: 2px 6px;
}
.tbm-sold-body { padding: 9px 12px !important; }
.tbm-sold-body::before {
    content: '\2605 Just sold'; display: block; font-family: 'Oswald', sans-serif;
    font-size: 10px; letter-spacing: 2px; text-transform: uppercase; color: #b97517;
    font-weight: 600; margin-bottom: 3px;
}
.tbm-sold-title { font-family: 'Source Serif 4', Georgia, serif !important; font-weight: 600 !important; color: #111 !important; }
.tbm-sold-prices { font-family: 'Oswald', sans-serif !important; }
.tbm-sold-orig { color: #a09a89 !important; }
.tbm-sold-sale { color: #1c4631 !important; font-weight: 600 !important; font-size: 1rem !important; }
.tbm-sold-pct {
    background: #b97517 !important; color: #fff !important; border: 1.5px solid #111 !important;
    border-radius: 3px !important; font-size: 10px !important; padding: 2px 6px !important; font-weight: 600 !important;
}
.tbm-sold-meta { font-family: 'Oswald', sans-serif !important; text-transform: uppercase !important; letter-spacing: 1px !important; color: #6b6553 !important; }
.tbm-sold-dot { display: none !important; }

/* Shop homepage hero — closer to main site rhythm */
body.post-type-archive-product .woocommerce-products-header {
    max-width: 1180px;
    margin: 0 auto;
    padding: 1.2rem 1rem 0.7rem !important;
}
body.post-type-archive-product .woocommerce-products-header__title.page-title {
    display: none !important;
}
.tbm-shop-home-hero {
    width: 100%;
}
.tbm-shop-home-hero__copy {
    max-width: 780px;
    margin: 0 0 1.2rem;
}
.tbm-shop-home-hero__eyebrow {
    color: #1c4631;
    text-transform: uppercase;
    font-family: 'Oswald', sans-serif;
    font-weight: 700;
    letter-spacing: 0.08em;
    font-size: 0.78rem;
    margin: 0 0 12px;
}
.tbm-shop-home-hero__title {
    margin: 0;
    font-family: 'Inter', sans-serif;
    font-size: clamp(2.55rem, 7vw, 5.9rem);
    line-height: 0.94;
    letter-spacing: 0;
    font-weight: 950;
    color: #111;
}
.tbm-shop-home-hero__accent {
    color: #1c4631;
    font-family: "Cormorant Garamond", "Times New Roman", serif;
    font-style: italic;
    font-weight: 700;
    font-size: 1.35em;
    letter-spacing: -0.02em;
    line-height: 0.9;
    display: inline-block;
}
.tbm-shop-home-hero__lede {
    max-width: 710px;
    margin: 22px 0 0;
    color: #3d403a;
    font-size: clamp(1.02rem, 2vw, 1.22rem);
    font-weight: 580;
    line-height: 1.6;
}
.tbm-shop-home-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 24px;
}
.tbm-shop-home-hero__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0 18px;
    border-radius: 10px;
    border: 1px solid #d4d1c6;
    background: #fff;
    color: #111 !important;
    font-family: 'Inter', sans-serif;
    font-size: 0.95rem;
    font-weight: 800;
    text-decoration: none !important;
    box-shadow: 0 10px 22px rgba(20, 68, 55, 0.06);
}
.tbm-shop-home-hero__button--primary {
    background: #1c4631;
    border-color: #1c4631;
    color: #fff !important;
}
.tbm-shop-home-hero__button:hover {
    transform: translateY(-1px);
}
.tbm-shop-home-hero__quick-shop {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin: 0 0 0.8rem;
}
.tbm-shop-home-hero__quick-link {
    display: block;
    padding: 16px 18px;
    border-radius: 12px;
    border: 1px solid rgba(20, 68, 55, 0.14);
    background:
        linear-gradient(135deg, rgba(20, 68, 55, 0.055), rgba(255, 255, 255, 0.74)),
        rgba(255, 255, 255, 0.82);
    box-shadow: 0 0 18px rgba(20, 68, 55, 0.055);
    text-decoration: none !important;
    transition: border-color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}
.tbm-shop-home-hero__quick-link:hover {
    transform: translateY(-1px);
    border-color: rgba(20, 68, 55, 0.28);
    box-shadow: 0 10px 24px rgba(20, 68, 55, 0.08);
}
.tbm-shop-home-hero__quick-link strong {
    display: block;
    margin: 0 0 6px;
    font-family: 'Playfair Display', Georgia, serif;
    font-size: clamp(1.15rem, 1.8vw, 1.45rem);
    line-height: 1.08;
    color: #111;
}
.tbm-shop-home-hero__quick-link span {
    display: block;
    color: #4a4d46;
    line-height: 1.45;
    font-size: 0.96rem;
}
@media (max-width: 980px) {
    .tbm-shop-home-hero__quick-shop {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 640px) {
    .tbm-shop-home-hero__quick-shop {
        grid-template-columns: 1fr;
    }
    .tbm-shop-home-hero__button {
        width: 100%;
    }
}


/* ============================================================ *
 * TBM SHOP SKIN — neobrutalist thrift (matches .com landing)
 * Scoped to product archive surfaces only: /shop/, category, tag.
 * Cream + green + black hard-border / offset-shadow language.
 * Appended 2026-06-18. Safe to remove as a block.
 * ============================================================ */
body.post-type-archive-product,
body.tax-product_cat,
body.tax-product_tag {
    --tbm-green: #1c4631;
    --tbm-green-dark: #143524;
    --tbm-black: #111111;
    --tbm-cream: #f6f1e3;
    --tbm-cream-2: #efe7d6;
    --tbm-card: #fffdf6;
    --tbm-card-border: #d8d0ba;
    --tbm-mint: #9fc7a8;
    --tbm-amber: #b97517;
    --tbm-muted: #6b6553;
    --tbm-sans: 'Oswald', 'Arial Narrow', sans-serif;
    --tbm-serif: 'Playfair Display', Georgia, serif;
    --tbm-body: 'Source Serif 4', Georgia, serif;
    background-color: var(--tbm-cream) !important;
    background-image: radial-gradient(rgba(28, 70, 49, .05) 1px, transparent 1px) !important;
    background-size: 22px 22px !important;
    color: var(--tbm-black);
}
body.post-type-archive-product .wp-site-blocks,
body.tax-product_cat .wp-site-blocks,
body.tax-product_tag .wp-site-blocks,
body.post-type-archive-product main.wp-block-group,
body.tax-product_cat main.wp-block-group,
body.tax-product_tag main.wp-block-group {
    background: transparent !important;
}

/* ---- HERO ---- */
body.post-type-archive-product .tbm-shop-home-hero__eyebrow {
    font-family: var(--tbm-sans);
    color: var(--tbm-amber);
    letter-spacing: .22em;
    font-weight: 600;
}
body.post-type-archive-product .tbm-shop-home-hero__title {
    font-family: var(--tbm-sans) !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: -0.5px;
    color: var(--tbm-black) !important;
    line-height: .9 !important;
}
body.post-type-archive-product .tbm-shop-home-hero__accent {
    font-family: var(--tbm-serif) !important;
    font-style: italic;
    font-weight: 900 !important;
    text-transform: none;
    color: var(--tbm-green) !important;
}
body.post-type-archive-product .tbm-shop-home-hero__lede {
    font-family: var(--tbm-body);
    color: #4a4636;
    font-weight: 400;
}

/* Hero buttons → hard-shadow blocks */
body.post-type-archive-product .tbm-shop-home-hero__button {
    font-family: var(--tbm-sans);
    letter-spacing: .18em;
    text-transform: uppercase;
    font-weight: 500;
    border-radius: 3px;
    border: 3px solid var(--tbm-black);
    box-shadow: 5px 5px 0 var(--tbm-black);
    background: #fff;
    color: var(--tbm-black) !important;
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
body.post-type-archive-product .tbm-shop-home-hero__button--primary {
    background: var(--tbm-green);
    border-color: var(--tbm-black);
    color: var(--tbm-cream) !important;
}
body.post-type-archive-product .tbm-shop-home-hero__button:hover {
    transform: translate(2px, 2px);
    box-shadow: 2px 2px 0 var(--tbm-black);
}
body.post-type-archive-product .tbm-shop-home-hero__button--primary:hover {
    background: var(--tbm-green-dark);
    color: #fff !important;
}

/* Hero quick-shop category tiles → cream cards w/ hard shadow */
body.post-type-archive-product .tbm-shop-home-hero__quick-link {
    background: var(--tbm-card);
    border: 3px solid var(--tbm-black);
    border-radius: 10px;
    box-shadow: 5px 5px 0 var(--tbm-black);
    transition: transform .15s ease, box-shadow .15s ease;
}
body.post-type-archive-product .tbm-shop-home-hero__quick-link:hover {
    transform: translate(-2px, -2px);
    box-shadow: 7px 7px 0 var(--tbm-black);
    border-color: var(--tbm-black);
}
body.post-type-archive-product .tbm-shop-home-hero__quick-link strong {
    font-family: var(--tbm-serif);
    font-weight: 700;
    color: var(--tbm-black);
}
body.post-type-archive-product .tbm-shop-home-hero__quick-link span {
    font-family: var(--tbm-body);
    color: var(--tbm-muted);
}

/* ---- INVENTORY NAV (Apparel / Cards / Shoes / Collectibles / More) ---- */
body.post-type-archive-product .tbm-inventory-nav-inner,
body.tax-product_cat .tbm-inventory-nav-inner,
body.tax-product_tag .tbm-inventory-nav-inner {
    background: var(--tbm-card);
    border: 3px solid var(--tbm-black);
    border-radius: 40px;
    box-shadow: 5px 5px 0 var(--tbm-black);
    gap: .4rem .5rem;
}
body.post-type-archive-product .tbm-inventory-pill,
body.tax-product_cat .tbm-inventory-pill,
body.tax-product_tag .tbm-inventory-pill {
    font-family: var(--tbm-sans);
    font-weight: 500;
    letter-spacing: .12em;
    text-transform: uppercase;
    font-size: .76rem;
    color: var(--tbm-black);
    border-radius: 30px;
}
body.post-type-archive-product .tbm-inventory-pill:hover,
body.tax-product_cat .tbm-inventory-pill:hover,
body.tax-product_tag .tbm-inventory-pill:hover {
    background: var(--tbm-cream-2);
    color: var(--tbm-green);
}
body.post-type-archive-product .tbm-inventory-pill.is-active,
body.tax-product_cat .tbm-inventory-pill.is-active,
body.tax-product_tag .tbm-inventory-pill.is-active {
    background: var(--tbm-green);
    border-color: var(--tbm-black);
    color: var(--tbm-cream);
}
body.post-type-archive-product .tbm-inventory-pill.is-active:hover,
body.tax-product_cat .tbm-inventory-pill.is-active:hover,
body.tax-product_tag .tbm-inventory-pill.is-active:hover {
    background: var(--tbm-green-dark);
    color: #fff;
}
body.post-type-archive-product .tbm-inventory-more-menu,
body.tax-product_cat .tbm-inventory-more-menu,
body.tax-product_tag .tbm-inventory-more-menu {
    background: var(--tbm-card);
    border: 3px solid var(--tbm-black);
    border-radius: 12px;
    box-shadow: 5px 5px 0 var(--tbm-black);
}
body.post-type-archive-product .tbm-inventory-more-link,
body.tax-product_cat .tbm-inventory-more-link,
body.tax-product_tag .tbm-inventory-more-link {
    font-family: var(--tbm-sans);
    letter-spacing: .08em;
    text-transform: uppercase;
    font-size: .76rem;
}
body.post-type-archive-product .tbm-inventory-more-link:hover,
body.tax-product_cat .tbm-inventory-more-link:hover,
body.tax-product_tag .tbm-inventory-more-link:hover,
body.post-type-archive-product .tbm-inventory-more-link.is-active,
body.tax-product_cat .tbm-inventory-more-link.is-active,
body.tax-product_tag .tbm-inventory-more-link.is-active {
    background: var(--tbm-cream-2);
    color: var(--tbm-green);
}

/* ---- SUBCATEGORY PILLS (Tees / Outerwear / Denim ...) ---- */
body.post-type-archive-product .tbm-subcategory-nav__label,
body.tax-product_cat .tbm-subcategory-nav__label,
body.tax-product_tag .tbm-subcategory-nav__label {
    font-family: var(--tbm-sans);
    color: var(--tbm-muted);
}
body.post-type-archive-product .tbm-subcategory-pill,
body.tax-product_cat .tbm-subcategory-pill,
body.tax-product_tag .tbm-subcategory-pill {
    background: #fff;
    border: 2px solid var(--tbm-black);
    border-radius: 30px;
    box-shadow: 3px 3px 0 var(--tbm-black);
    font-family: var(--tbm-sans);
    font-weight: 500;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--tbm-black);
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease, color .15s ease;
}
body.post-type-archive-product .tbm-subcategory-pill:hover,
body.tax-product_cat .tbm-subcategory-pill:hover,
body.tax-product_tag .tbm-subcategory-pill:hover {
    background: var(--tbm-green);
    color: var(--tbm-cream);
    transform: translate(2px, 2px);
    box-shadow: 1px 1px 0 var(--tbm-black);
}
body.post-type-archive-product .tbm-subcategory-pill:hover em,
body.tax-product_cat .tbm-subcategory-pill:hover em,
body.tax-product_tag .tbm-subcategory-pill:hover em {
    color: rgba(255, 255, 255, .72);
}
body.post-type-archive-product .tbm-subcategory-pill.is-active,
body.tax-product_cat .tbm-subcategory-pill.is-active,
body.tax-product_tag .tbm-subcategory-pill.is-active {
    background: var(--tbm-green);
    border-color: var(--tbm-black);
    color: var(--tbm-cream);
}

/* ---- TOOLBAR (result count + sort + view toggle) ---- */
body.post-type-archive-product .woocommerce-result-count,
body.tax-product_cat .woocommerce-result-count,
body.tax-product_tag .woocommerce-result-count {
    font-family: var(--tbm-sans) !important;
    letter-spacing: .14em !important;
    color: var(--tbm-muted) !important;
}
body.post-type-archive-product .woocommerce-ordering select,
body.tax-product_cat .woocommerce-ordering select,
body.tax-product_tag .woocommerce-ordering select {
    font-family: var(--tbm-sans) !important;
    text-transform: uppercase !important;
    letter-spacing: .08em !important;
    font-size: .76rem !important;
    background: #fff !important;
    border: 2px solid var(--tbm-black) !important;
    border-radius: 3px !important;
    box-shadow: 3px 3px 0 var(--tbm-black) !important;
    color: var(--tbm-black) !important;
}
body.post-type-archive-product .tbm-view-toggle,
body.tax-product_cat .tbm-view-toggle,
body.tax-product_tag .tbm-view-toggle {
    background: #fff;
    border: 2px solid var(--tbm-black);
    border-radius: 6px;
    box-shadow: 3px 3px 0 var(--tbm-black);
}
body.post-type-archive-product .tbm-view-toggle button.is-active,
body.tax-product_cat .tbm-view-toggle button.is-active,
body.tax-product_tag .tbm-view-toggle button.is-active {
    background: var(--tbm-green);
    color: var(--tbm-cream);
}

/* ---- PRODUCT CARDS ---- */
body.post-type-archive-product ul.products li.product,
body.tax-product_cat ul.products li.product,
body.tax-product_tag ul.products li.product,
body.post-type-archive-product li.tbm-product,
body.tax-product_cat li.tbm-product,
body.tax-product_tag li.tbm-product {
    background: var(--tbm-card) !important;
    border: 3px solid var(--tbm-black) !important;
    border-radius: 10px !important;
    box-shadow: 5px 5px 0 var(--tbm-black) !important;
    transition: transform .15s ease, box-shadow .15s ease !important;
}
body.post-type-archive-product ul.products li.product:hover,
body.tax-product_cat ul.products li.product:hover,
body.tax-product_tag ul.products li.product:hover,
body.post-type-archive-product li.tbm-product:hover,
body.tax-product_cat li.tbm-product:hover,
body.tax-product_tag li.tbm-product:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 8px 8px 0 var(--tbm-black) !important;
    border-color: var(--tbm-black) !important;
}
body.post-type-archive-product ul.products li.product img,
body.tax-product_cat ul.products li.product img,
body.tax-product_tag ul.products li.product img,
body.post-type-archive-product li.tbm-product img,
body.tax-product_cat li.tbm-product img,
body.tax-product_tag li.tbm-product img {
    border: 2px solid var(--tbm-black) !important;
    border-radius: 6px !important;
    background: var(--tbm-cream-2) !important;
}
body.post-type-archive-product li.tbm-product .tbm-product-title,
body.tax-product_cat li.tbm-product .tbm-product-title,
body.tax-product_tag li.tbm-product .tbm-product-title,
body.post-type-archive-product ul.products li.product h2,
body.tax-product_cat ul.products li.product h2,
body.tax-product_tag ul.products li.product h2,
body.post-type-archive-product ul.products li.product .woocommerce-loop-product__title,
body.tax-product_cat ul.products li.product .woocommerce-loop-product__title,
body.tax-product_tag ul.products li.product .woocommerce-loop-product__title {
    font-family: var(--tbm-body) !important;
    font-weight: 600 !important;
    color: var(--tbm-black) !important;
}
body.post-type-archive-product li.tbm-product .tbm-product-price,
body.tax-product_cat li.tbm-product .tbm-product-price,
body.tax-product_tag li.tbm-product .tbm-product-price,
body.post-type-archive-product ul.products li.product .price,
body.tax-product_cat ul.products li.product .price,
body.tax-product_tag ul.products li.product .price,
body.post-type-archive-product li.tbm-product .tbm-product-price bdi,
body.tax-product_cat li.tbm-product .tbm-product-price bdi,
body.tax-product_tag li.tbm-product .tbm-product-price bdi,
body.post-type-archive-product ul.products li.product .price bdi,
body.tax-product_cat ul.products li.product .price bdi,
body.tax-product_tag ul.products li.product .price bdi {
    font-family: var(--tbm-sans) !important;
    font-weight: 600 !important;
    color: var(--tbm-green) !important;
}

/* Add-to-cart → hard-shadow green block */
body.post-type-archive-product li.tbm-product .tbm-product-button,
body.tax-product_cat li.tbm-product .tbm-product-button,
body.tax-product_tag li.tbm-product .tbm-product-button,
body.post-type-archive-product ul.products li.product .button,
body.tax-product_cat ul.products li.product .button,
body.tax-product_tag ul.products li.product .button,
body.post-type-archive-product ul.products li.product .add_to_cart_button,
body.tax-product_cat ul.products li.product .add_to_cart_button,
body.tax-product_tag ul.products li.product .add_to_cart_button {
    background: var(--tbm-green) !important;
    color: var(--tbm-cream) !important;
    font-family: var(--tbm-sans) !important;
    letter-spacing: .14em !important;
    text-transform: uppercase !important;
    border: 2px solid var(--tbm-black) !important;
    border-radius: 3px !important;
    box-shadow: 3px 3px 0 var(--tbm-black) !important;
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease !important;
}
body.post-type-archive-product li.tbm-product .tbm-product-button:hover,
body.tax-product_cat li.tbm-product .tbm-product-button:hover,
body.tax-product_tag li.tbm-product .tbm-product-button:hover,
body.post-type-archive-product ul.products li.product .button:hover,
body.tax-product_cat ul.products li.product .button:hover,
body.tax-product_tag ul.products li.product .button:hover,
body.post-type-archive-product ul.products li.product .add_to_cart_button:hover,
body.tax-product_cat ul.products li.product .add_to_cart_button:hover,
body.tax-product_tag ul.products li.product .add_to_cart_button:hover {
    background: var(--tbm-green-dark) !important;
    transform: translate(2px, 2px) !important;
    box-shadow: 1px 1px 0 var(--tbm-black) !important;
}

/* Sale badge → amber w/ black border */
body.post-type-archive-product ul.products li.product .onsale,
body.tax-product_cat ul.products li.product .onsale,
body.tax-product_tag ul.products li.product .onsale,
body.post-type-archive-product li.tbm-product .onsale,
body.tax-product_cat li.tbm-product .onsale,
body.tax-product_tag li.tbm-product .onsale {
    background: var(--tbm-amber) !important;
    color: #fff !important;
    border: 2px solid var(--tbm-black) !important;
    border-radius: 3px !important;
    font-family: var(--tbm-sans) !important;
    letter-spacing: .08em !important;
    box-shadow: 2px 2px 0 var(--tbm-black) !important;
}

/* ---- PAGINATION ---- */
body.post-type-archive-product nav.woocommerce-pagination ul li a,
body.tax-product_cat nav.woocommerce-pagination ul li a,
body.tax-product_tag nav.woocommerce-pagination ul li a,
body.post-type-archive-product nav.woocommerce-pagination ul li span,
body.tax-product_cat nav.woocommerce-pagination ul li span,
body.tax-product_tag nav.woocommerce-pagination ul li span {
    font-family: var(--tbm-sans) !important;
    background: #fff !important;
    border: 2px solid var(--tbm-black) !important;
    border-radius: 4px !important;
    box-shadow: 3px 3px 0 var(--tbm-black) !important;
    color: var(--tbm-black) !important;
}
body.post-type-archive-product nav.woocommerce-pagination ul li span.current,
body.tax-product_cat nav.woocommerce-pagination ul li span.current,
body.tax-product_tag nav.woocommerce-pagination ul li span.current,
body.post-type-archive-product nav.woocommerce-pagination ul li a:hover,
body.tax-product_cat nav.woocommerce-pagination ul li a:hover,
body.tax-product_tag nav.woocommerce-pagination ul li a:hover {
    background: var(--tbm-green) !important;
    color: var(--tbm-cream) !important;
    border-color: var(--tbm-black) !important;
}

/* ---- ARCHIVE TITLE / BREADCRUMB (category & tag pages) ---- */
body.tax-product_cat .woocommerce-products-header__title,
body.tax-product_tag .woocommerce-products-header__title {
    font-family: var(--tbm-sans) !important;
    text-transform: uppercase !important;
    letter-spacing: -0.5px !important;
    color: var(--tbm-black) !important;
}
body.post-type-archive-product .woocommerce-breadcrumb,
body.tax-product_cat .woocommerce-breadcrumb,
body.tax-product_tag .woocommerce-breadcrumb {
    font-family: var(--tbm-sans) !important;
    letter-spacing: .14em !important;
    color: var(--tbm-muted) !important;
}


/* ============================================================ *
 * TBM SHOP SKIN — SUBPAGES (single product, cart, checkout, account)
 * Same neobrutalist thrift language: cream + green + black hard
 * borders / offset shadows, Oswald / Playfair / Source Serif.
 * Scoped strictly to these surfaces. Appended 2026-06-18.
 * Safe to remove as a block.
 * ============================================================ */
body.single-product,
body.woocommerce-cart,
body.woocommerce-checkout,
body.woocommerce-account {
    --tbm-green: #1c4631;
    --tbm-green-dark: #143524;
    --tbm-black: #111111;
    --tbm-cream: #f6f1e3;
    --tbm-cream-2: #efe7d6;
    --tbm-card: #fffdf6;
    --tbm-card-border: #d8d0ba;
    --tbm-mint: #9fc7a8;
    --tbm-amber: #b97517;
    --tbm-muted: #6b6553;
    --tbm-sans: 'Oswald', 'Arial Narrow', sans-serif;
    --tbm-serif: 'Playfair Display', Georgia, serif;
    --tbm-body: 'Source Serif 4', Georgia, serif;
    background-color: var(--tbm-cream) !important;
    background-image: radial-gradient(rgba(28, 70, 49, .05) 1px, transparent 1px) !important;
    background-size: 22px 22px !important;
    color: var(--tbm-black);
}
body.single-product .wp-site-blocks,
body.woocommerce-cart .wp-site-blocks,
body.woocommerce-checkout .wp-site-blocks,
body.woocommerce-account .wp-site-blocks,
body.single-product main.wp-block-group,
body.woocommerce-cart main.wp-block-group,
body.woocommerce-checkout main.wp-block-group,
body.woocommerce-account main.wp-block-group {
    background: transparent !important;
}

/* Shared: breadcrumb */
body.single-product .woocommerce-breadcrumb,
body.woocommerce-cart .woocommerce-breadcrumb,
body.woocommerce-checkout .woocommerce-breadcrumb,
body.woocommerce-account .woocommerce-breadcrumb {
    font-family: var(--tbm-sans) !important;
    letter-spacing: .14em !important;
    color: var(--tbm-muted) !important;
}

/* ============================================================ *
 * SINGLE PRODUCT
 * ============================================================ */
body.single-product .woocommerce div.product .product_title,
body.single-product .woocommerce div.product h1 {
    font-family: var(--tbm-sans) !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: -0.3px !important;
    color: var(--tbm-black) !important;
}
body.single-product .woocommerce div.product p.price,
body.single-product .woocommerce div.product span.price,
body.single-product .woocommerce div.product p.price bdi,
body.single-product .woocommerce div.product span.price bdi {
    font-family: var(--tbm-sans) !important;
    font-weight: 600 !important;
    color: var(--tbm-green) !important;
}

/* Summary panel → cream card, hard shadow */
body.single-product .woocommerce div.product > .summary,
body.single-product .woocommerce div.product div.summary {
    background: var(--tbm-card) !important;
    border: 3px solid var(--tbm-black) !important;
    border-radius: 12px !important;
    box-shadow: 6px 6px 0 var(--tbm-black) !important;
}

/* Gallery image → black border + hard shadow */
body.single-product .woocommerce div.product div.images img.wp-post-image,
body.single-product .woocommerce div.product div.images .woocommerce-product-gallery__image img,
body.single-product .woocommerce div.product div.images img {
    border: 3px solid var(--tbm-black) !important;
    border-radius: 10px !important;
    box-shadow: 6px 6px 0 var(--tbm-black) !important;
    background: var(--tbm-cream-2) !important;
}
body.single-product .woocommerce div.product div.images .flex-control-thumbs img,
body.single-product .summary .flex-control-thumbs img {
    border: 2px solid var(--tbm-black) !important;
    border-radius: 6px !important;
    box-shadow: 2px 2px 0 var(--tbm-black) !important;
}
body.single-product .woocommerce div.product div.images .flex-control-thumbs .flex-active,
body.single-product .woocommerce div.product div.images .flex-control-thumbs img:hover {
    border-color: var(--tbm-green) !important;
}

/* Stock pill */
body.single-product .woocommerce div.product p.stock {
    font-family: var(--tbm-sans) !important;
    color: var(--tbm-green) !important;
}

/* Quantity input → black border */
body.single-product .woocommerce div.product form.cart .quantity .qty,
body.single-product .woocommerce div.product .quantity .qty {
    border: 2px solid var(--tbm-black) !important;
    border-radius: 4px !important;
    font-family: var(--tbm-sans) !important;
    color: var(--tbm-black) !important;
    box-shadow: 3px 3px 0 var(--tbm-black) !important;
}

/* Add to cart → green hard-shadow block */
body.single-product .woocommerce div.product form.cart button.single_add_to_cart_button {
    background: var(--tbm-green) !important;
    color: var(--tbm-cream) !important;
    font-family: var(--tbm-sans) !important;
    letter-spacing: .14em !important;
    text-transform: uppercase !important;
    border: 3px solid var(--tbm-black) !important;
    border-radius: 4px !important;
    box-shadow: 5px 5px 0 var(--tbm-black) !important;
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease !important;
}
body.single-product .woocommerce div.product form.cart button.single_add_to_cart_button:hover {
    background: var(--tbm-green-dark) !important;
    transform: translate(2px, 2px) !important;
    box-shadow: 2px 2px 0 var(--tbm-black) !important;
}

/* Product meta */
body.single-product .woocommerce div.product .product_meta {
    font-family: var(--tbm-body) !important;
}
body.single-product .woocommerce div.product .product_meta a {
    color: var(--tbm-green) !important;
}

/* Tabs */
body.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li a {
    font-family: var(--tbm-sans) !important;
    letter-spacing: .12em !important;
    color: var(--tbm-muted) !important;
}
body.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li.active {
    border-bottom-color: var(--tbm-green) !important;
}
body.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
    color: var(--tbm-green) !important;
}
body.single-product .woocommerce div.product > .woocommerce-tabs::before {
    font-family: var(--tbm-sans) !important;
    color: var(--tbm-muted) !important;
}
body.single-product .woocommerce div.product .woocommerce-tabs .panel,
body.single-product .woocommerce div.product .woocommerce-tabs .panel p,
body.single-product .woocommerce div.product .woocommerce-tabs .panel li {
    font-family: var(--tbm-body) !important;
}
body.single-product .woocommerce div.product .woocommerce-tabs .panel h2 {
    font-family: var(--tbm-serif) !important;
    font-weight: 700 !important;
    color: var(--tbm-green) !important;
}

/* Trust strip cards → cream cards w/ hard shadow */
body.single-product .tbm-trust-strip-inner {
    background: var(--tbm-card) !important;
    border: 3px solid var(--tbm-black) !important;
    border-radius: 14px !important;
    box-shadow: 6px 6px 0 var(--tbm-black) !important;
}
body.single-product .tbm-trust-card svg {
    color: var(--tbm-green) !important;
}
body.single-product .tbm-trust-card strong {
    font-family: var(--tbm-sans) !important;
    color: var(--tbm-black) !important;
}
body.single-product .tbm-trust-card span {
    font-family: var(--tbm-body) !important;
    color: var(--tbm-muted) !important;
}

/* Related / upsell heading + cards reuse the card skin */
body.single-product .related.products > h2,
body.single-product .upsells.products > h2 {
    font-family: var(--tbm-serif) !important;
    font-weight: 900 !important;
    color: var(--tbm-green) !important;
}
body.single-product ul.products li.product {
    background: var(--tbm-card) !important;
    border: 3px solid var(--tbm-black) !important;
    border-radius: 10px !important;
    box-shadow: 5px 5px 0 var(--tbm-black) !important;
    transition: transform .15s ease, box-shadow .15s ease !important;
}
body.single-product ul.products li.product:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 8px 8px 0 var(--tbm-black) !important;
}
body.single-product ul.products li.product img {
    border: 2px solid var(--tbm-black) !important;
    border-radius: 6px !important;
    background: var(--tbm-cream-2) !important;
}
body.single-product ul.products li.product h2,
body.single-product ul.products li.product .woocommerce-loop-product__title {
    font-family: var(--tbm-body) !important;
    font-weight: 600 !important;
    color: var(--tbm-black) !important;
}
body.single-product ul.products li.product .price,
body.single-product ul.products li.product .price bdi {
    font-family: var(--tbm-sans) !important;
    font-weight: 600 !important;
    color: var(--tbm-green) !important;
}
body.single-product ul.products li.product .button,
body.single-product ul.products li.product .add_to_cart_button {
    background: var(--tbm-green) !important;
    color: var(--tbm-cream) !important;
    font-family: var(--tbm-sans) !important;
    letter-spacing: .14em !important;
    text-transform: uppercase !important;
    border: 2px solid var(--tbm-black) !important;
    border-radius: 3px !important;
    box-shadow: 3px 3px 0 var(--tbm-black) !important;
}
body.single-product ul.products li.product .onsale,
body.single-product .woocommerce span.onsale {
    background: var(--tbm-amber) !important;
    color: #fff !important;
    border: 2px solid var(--tbm-black) !important;
    border-radius: 3px !important;
    font-family: var(--tbm-sans) !important;
    box-shadow: 2px 2px 0 var(--tbm-black) !important;
}

/* ============================================================ *
 * SHARED: buttons, inputs across cart / checkout / account
 * ============================================================ */
body.woocommerce-cart .woocommerce a.button,
body.woocommerce-cart .woocommerce button.button,
body.woocommerce-cart .woocommerce input.button,
body.woocommerce-cart .woocommerce a.button.alt,
body.woocommerce-cart .woocommerce button.button.alt,
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
body.woocommerce-account .woocommerce a.button,
body.woocommerce-account .woocommerce button.button,
body.woocommerce-account .woocommerce input.button {
    background: var(--tbm-green) !important;
    color: var(--tbm-cream) !important;
    font-family: var(--tbm-sans) !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
    border: 3px solid var(--tbm-black) !important;
    border-radius: 4px !important;
    box-shadow: 5px 5px 0 var(--tbm-black) !important;
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease !important;
}
body.woocommerce-cart .woocommerce a.button:hover,
body.woocommerce-cart .woocommerce button.button:hover,
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
body.woocommerce-account .woocommerce a.button:hover,
body.woocommerce-account .woocommerce button.button:hover {
    background: var(--tbm-green-dark) !important;
    transform: translate(2px, 2px) !important;
    box-shadow: 2px 2px 0 var(--tbm-black) !important;
}
body.woocommerce-cart input[type="text"],
body.woocommerce-cart input[type="email"],
body.woocommerce-cart input[type="tel"],
body.woocommerce-cart input.input-text,
body.woocommerce-account input[type="text"],
body.woocommerce-account input[type="email"],
body.woocommerce-account input[type="password"],
body.woocommerce-account input[type="tel"],
body.woocommerce-account input.input-text {
    border: 2px solid var(--tbm-black) !important;
    border-radius: 4px !important;
    background: #fff !important;
    font-family: var(--tbm-body) !important;
}

/* ============================================================ *
 * CART
 * ============================================================ */
body.woocommerce-cart table.shop_table {
    border: 3px solid var(--tbm-black) !important;
    border-radius: 12px !important;
    box-shadow: 6px 6px 0 var(--tbm-black) !important;
    background: var(--tbm-card) !important;
}
body.woocommerce-cart table.shop_table th {
    font-family: var(--tbm-sans) !important;
    letter-spacing: .12em !important;
    background: var(--tbm-cream-2) !important;
    color: var(--tbm-muted) !important;
}
body.woocommerce-cart table.shop_table td {
    background: var(--tbm-card) !important;
}
body.woocommerce-cart table.shop_table .product-thumbnail img {
    border: 2px solid var(--tbm-black) !important;
    border-radius: 6px !important;
}
body.woocommerce-cart table.shop_table .product-name a {
    font-family: var(--tbm-body) !important;
    color: var(--tbm-green) !important;
}
body.woocommerce-cart table.shop_table .product-price,
body.woocommerce-cart table.shop_table .product-subtotal {
    font-family: var(--tbm-sans) !important;
    color: var(--tbm-green) !important;
}
body.woocommerce-cart .quantity input.qty {
    border: 2px solid var(--tbm-black) !important;
    border-radius: 4px !important;
    font-family: var(--tbm-sans) !important;
}
body.woocommerce-cart .cart_totals,
body.woocommerce-cart .cart-collaterals {
    background: var(--tbm-card) !important;
    border: 3px solid var(--tbm-black) !important;
    border-radius: 12px !important;
    box-shadow: 6px 6px 0 var(--tbm-black) !important;
}
body.woocommerce-cart .cart_totals h2 {
    font-family: var(--tbm-sans) !important;
    letter-spacing: .16em !important;
    color: var(--tbm-muted) !important;
}
body.woocommerce-cart .cart_totals .order-total th,
body.woocommerce-cart .cart_totals .order-total td {
    font-family: var(--tbm-sans) !important;
    color: var(--tbm-green) !important;
}

/* ============================================================ *
 * CHECKOUT (WC blocks)
 * ============================================================ */
body.woocommerce-checkout .wc-block-checkout__form h2,
body.woocommerce-checkout .wc-block-checkout-step__title {
    font-family: var(--tbm-sans) !important;
    text-transform: uppercase !important;
    letter-spacing: .04em !important;
    color: var(--tbm-green) !important;
}
body.woocommerce-checkout .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-textarea,
body.woocommerce-checkout .wc-block-components-combobox input {
    border: 2px solid var(--tbm-black) !important;
    border-radius: 4px !important;
    background: #fff !important;
    font-family: var(--tbm-body) !important;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block {
    background: var(--tbm-card) !important;
    border: 3px solid var(--tbm-black) !important;
    border-radius: 12px !important;
    box-shadow: 6px 6px 0 var(--tbm-black) !important;
}
body.woocommerce-checkout .wc-block-components-checkout-place-order-button,
body.woocommerce-checkout button.wc-block-components-checkout-place-order-button {
    background: var(--tbm-green) !important;
    color: var(--tbm-cream) !important;
    font-family: var(--tbm-sans) !important;
    text-transform: uppercase !important;
    letter-spacing: .12em !important;
    border: 3px solid var(--tbm-black) !important;
    border-radius: 4px !important;
    box-shadow: 5px 5px 0 var(--tbm-black) !important;
}
body.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover {
    background: var(--tbm-green-dark) !important;
}
body.woocommerce-checkout .wc-block-formatted-money-amount,
body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    font-family: var(--tbm-sans) !important;
    color: var(--tbm-green) !important;
}

/* ============================================================ *
 * MY ACCOUNT
 * ============================================================ */
body.woocommerce-account .u-column1,
body.woocommerce-account .u-column2,
body.woocommerce-account .col-1,
body.woocommerce-account .col-2,
body.woocommerce-account .woocommerce-MyAccount-content {
    background: var(--tbm-card) !important;
    border: 3px solid var(--tbm-black) !important;
    border-radius: 12px !important;
    box-shadow: 6px 6px 0 var(--tbm-black) !important;
}
body.woocommerce-account h1,
body.woocommerce-account .u-column1 h2,
body.woocommerce-account .u-column2 h2 {
    font-family: var(--tbm-sans) !important;
    text-transform: uppercase !important;
    letter-spacing: -0.3px !important;
    color: var(--tbm-green) !important;
}
body.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
    font-family: var(--tbm-sans) !important;
    letter-spacing: .08em !important;
    color: var(--tbm-black) !important;
}
body.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a,
body.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
    background: var(--tbm-cream-2) !important;
    color: var(--tbm-green) !important;
}
/* ============================================================ *
 * SHOP HEADER: CLEAN COPY OF THRIFTBYMAIL.COM LANDING HEADER
 * ============================================================ */
:root {
    --tbm-landing-green: #1c4631;
    --tbm-landing-green-dark: #143524;
    --tbm-landing-black: #111;
    --tbm-landing-cream: #f6f1e3;
    --tbm-landing-mint: #9fc7a8;
    --tbm-landing-sans: 'Oswald', 'Arial Narrow', sans-serif;
}

body,
body.home {
    padding-top: 0 !important;
}

.wp-site-blocks > header.wp-block-template-part {
    position: sticky !important;
    top: 0 !important;
    z-index: 50 !important;
    margin: 0 !important;
    margin-block-start: 0 !important;
    margin-block-end: 0 !important;
    padding: 0 !important;
    background: transparent !important;
}

.announce {
    background: var(--tbm-landing-black) !important;
    color: #fff !important;
    text-align: center !important;
    font-family: var(--tbm-landing-sans) !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    line-height: 1.5 !important;
    letter-spacing: 3px !important;
    text-transform: uppercase !important;
    padding: 9px 14px !important;
    display: block !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: background .15s !important;
}
.announce:hover {
    background: var(--tbm-landing-green) !important;
    color: #fff !important;
}
.announce .st {
    color: var(--tbm-landing-mint) !important;
}

.tbm-header {
    background: var(--tbm-landing-green) !important;
    border-bottom: 4px solid var(--tbm-landing-black) !important;
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
}

.tbm-header-inner {
    max-width: 1180px !important;
    margin: 0 auto !important;
    display: flex !important;
    align-items: center !important;
    gap: 28px !important;
    padding: 12px 24px !important;
}

.tbm-header-logo {
    display: inline-block !important;
    line-height: 0 !important;
    margin-right: auto !important;
    background: transparent !important;
    padding: 0 !important;
    border-radius: 0 !important;
}
.tbm-header-logo img,
.tbm-header.is-scrolled .tbm-header-logo img {
    width: 250px !important;
    height: auto !important;
    max-width: 250px !important;
    max-height: none !important;
    border-radius: 10px !important;
    transform: none !important;
    transition: none !important;
}

.tbm-nav--primary {
    display: flex !important;
    align-items: center !important;
    gap: 0 !important;
    margin-left: auto !important;
}
.tbm-nav--primary ul {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: 26px !important;
}
.tbm-nav--primary > ul > li > a,
.tbm-nav-dropdown-toggle {
    color: var(--tbm-landing-cream) !important;
    font-family: var(--tbm-landing-sans) !important;
    font-weight: 500 !important;
    font-size: 14px !important;
    letter-spacing: 2.5px !important;
    line-height: 1.5 !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    padding: 6px 2px !important;
    border: 0 !important;
    border-bottom: 2px solid transparent !important;
    border-radius: 0 !important;
    background: transparent !important;
    cursor: pointer !important;
    transition: .18s !important;
}
.tbm-nav--primary > ul > li > a:hover,
.tbm-nav-dropdown-toggle:hover,
.tbm-nav-has-dropdown:focus-within .tbm-nav-dropdown-toggle {
    color: #fff !important;
    border-bottom-color: var(--tbm-landing-mint) !important;
}

.tbm-nav-has-dropdown {
    position: relative !important;
}
.tbm-nav-dropdown-toggle {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.35rem !important;
}
.tbm-nav-dropdown-toggle svg {
    transition: transform .18s ease !important;
}
.tbm-nav-has-dropdown:hover .tbm-nav-dropdown-toggle svg,
.tbm-nav-has-dropdown:focus-within .tbm-nav-dropdown-toggle svg {
    transform: rotate(180deg) !important;
}
.tbm-nav--primary .tbm-nav-dropdown {
    position: absolute !important;
    top: calc(100% + 14px) !important;
    left: 50% !important;
    transform: translateX(-50%) translateY(-4px) !important;
    min-width: 205px !important;
    margin: 0 !important;
    padding: 14px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
    background: #fffdf6 !important;
    border: 3px solid var(--tbm-landing-black) !important;
    border-radius: 18px !important;
    box-shadow: 6px 6px 0 var(--tbm-landing-black) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    z-index: 80 !important;
    transition: opacity .18s ease, transform .18s ease, visibility .18s ease !important;
}
.tbm-nav-has-dropdown:hover .tbm-nav-dropdown,
.tbm-nav-has-dropdown:focus-within .tbm-nav-dropdown {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateX(-50%) translateY(0) !important;
}
.tbm-nav-has-dropdown::after {
    content: '' !important;
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    right: 0 !important;
    height: 14px !important;
}
.tbm-nav--primary .tbm-nav-dropdown li {
    margin: 0 !important;
}
.tbm-nav--primary .tbm-nav-dropdown a {
    display: block !important;
    padding: 10px 12px !important;
    color: var(--tbm-landing-black) !important;
    font-family: var(--tbm-landing-sans) !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    letter-spacing: 1.8px !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    white-space: nowrap !important;
    border-radius: 10px !important;
}
.tbm-nav--primary .tbm-nav-dropdown a:hover,
.tbm-nav--primary .tbm-nav-dropdown a:focus-visible {
    background: var(--tbm-landing-cream) !important;
    color: var(--tbm-landing-green) !important;
}

.tbm-header-actions {
    display: flex !important;
    align-items: center !important;
    gap: 0.35rem !important;
    margin-left: 0 !important;
}
.tbm-icon-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 40px !important;
    height: 40px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: transparent !important;
    color: var(--tbm-landing-cream) !important;
    cursor: pointer !important;
    text-decoration: none !important;
    position: relative !important;
}
.tbm-icon-btn:hover {
    background: rgba(246, 241, 227, .12) !important;
    color: #fff !important;
}
.tbm-icon-btn svg {
    display: block !important;
}
.tbm-menu-toggle {
    display: none !important;
}
.tbm-header .tbm-shop-now {
    display: none !important;
}
.tbm-cart-count {
    position: absolute !important;
    top: 4px !important;
    right: 4px !important;
    min-width: 18px !important;
    height: 18px !important;
    padding: 0 5px !important;
    border-radius: 999px !important;
    background: var(--tbm-landing-mint) !important;
    color: var(--tbm-landing-black) !important;
    font-family: var(--tbm-landing-sans) !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    line-height: 18px !important;
    text-align: center !important;
    transform: translate(25%, -25%) !important;
}
.tbm-cart-count.is-empty {
    opacity: 0 !important;
    transform: translate(25%, -25%) scale(.6) !important;
    pointer-events: none !important;
}

.tbm-search-overlay {
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    top: 100% !important;
    display: none !important;
    background: var(--tbm-landing-cream) !important;
    border-bottom: 4px solid var(--tbm-landing-black) !important;
    padding: 16px 24px !important;
    z-index: 70 !important;
}
.tbm-search-overlay.is-open {
    display: block !important;
}
.tbm-search-form {
    max-width: 1180px !important;
    margin: 0 auto !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    background: #fffdf6 !important;
    border: 3px solid var(--tbm-landing-black) !important;
    border-radius: 999px !important;
    padding: 6px 8px 6px 18px !important;
}
.tbm-search-form input[type='search'] {
    flex: 1 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    outline: none !important;
    color: var(--tbm-landing-black) !important;
    font-size: 16px !important;
}

.tbm-drawer {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    bottom: 0 !important;
    width: min(360px, 88vw) !important;
    background: var(--tbm-landing-cream) !important;
    z-index: 100 !important;
    transform: translateX(-100%) !important;
    transition: transform .3s cubic-bezier(.2,.7,.2,1) !important;
    overflow-y: auto !important;
}
.tbm-drawer.is-open {
    transform: translateX(0) !important;
}
.tbm-drawer-scrim {
    position: fixed !important;
    inset: 0 !important;
    background: rgba(17, 17, 17, .55) !important;
    z-index: 90 !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transition: opacity .25s ease !important;
}
.tbm-drawer-scrim.is-open {
    opacity: 1 !important;
    pointer-events: auto !important;
}
.tbm-drawer-inner {
    padding: 22px 24px 30px !important;
    display: flex !important;
    flex-direction: column !important;
    min-height: 100% !important;
}
.tbm-drawer-head {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 16px !important;
    margin-bottom: 22px !important;
    padding-bottom: 18px !important;
    border-bottom: 3px solid var(--tbm-landing-black) !important;
}
.tbm-drawer-logo img {
    width: 220px !important;
    height: auto !important;
    max-width: 220px !important;
    max-height: none !important;
    border-radius: 10px !important;
}
.tbm-drawer-nav {
    flex: 1 !important;
    overflow-y: auto !important;
}
.tbm-drawer-section {
    font-family: var(--tbm-landing-sans) !important;
    font-weight: 500 !important;
    text-transform: uppercase !important;
    letter-spacing: 2.5px !important;
    font-size: 12px !important;
    color: #b97517 !important;
    margin: 22px 0 8px !important;
}
.tbm-drawer-nav ul {
    list-style: none !important;
    margin: 0 0 10px !important;
    padding: 0 !important;
}
.tbm-drawer-nav a {
    display: block !important;
    padding: 12px 2px !important;
    color: var(--tbm-landing-black) !important;
    font-family: var(--tbm-landing-sans) !important;
    font-weight: 500 !important;
    font-size: 15px !important;
    letter-spacing: 1.5px !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    border-bottom: 2px solid rgba(17,17,17,.14) !important;
}
.tbm-drawer-nav a:hover {
    color: var(--tbm-landing-green) !important;
}
.tbm-drawer-cta {
    margin-top: 24px !important;
    text-align: center !important;
    justify-content: center !important;
    width: 100% !important;
}
body.tbm-no-scroll {
    overflow: hidden !important;
}

@media (max-width: 980px) {
    .tbm-header-inner {
        padding: 12px 16px !important;
    }
    .tbm-header-logo img,
    .tbm-header.is-scrolled .tbm-header-logo img {
        width: 210px !important;
        max-width: 210px !important;
    }
    .tbm-nav--primary {
        display: none !important;
    }
    .tbm-menu-toggle {
        display: inline-flex !important;
    }
    .tbm-header-actions {
        margin-left: auto !important;
    }
}

@media (max-width: 560px) {
    .announce {
        font-size: 11px !important;
        letter-spacing: 2px !important;
        padding: 8px 10px !important;
    }
    .tbm-header-logo img,
    .tbm-header.is-scrolled .tbm-header-logo img {
        width: 180px !important;
        max-width: 180px !important;
    }
    .tbm-header-actions .tbm-icon-btn:not(.tbm-menu-toggle) {
        display: none !important;
    }
}
