/* Bridges WooCommerce's own markup to the site's visual language.
   The live site's stylesheets know nothing about WooCommerce class names, so
   anything Woo generates - cart, checkout, account, notices - is styled here
   using the same tokens read off the live site. */
:root {
    --tbds-black: #000;
    --tbds-ink: #181616;
    --tbds-grey: #5d5c5c;
    --tbds-amber: #febd59;
    --tbds-amber-strong: #febd59;
    --tbds-white: #fff;
    --tbds-font: Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    --tbds-display: "Bebas Neue", Impact, sans-serif;
}

/* Canonical TBDS palette, shared with the migrated site's original tokens. */
:root:root {
    --charcoal: #181616;
    --golden-yellow: #febd59;
}

/* Keep the brand highlight beneath the primary header identical on every
   storefront page. Page-specific layouts must inherit this shared rule. */
.header_navbar__HyRkS {
    box-sizing: border-box;
    border-bottom: 3px solid var(--tbds-amber);
}

.tbds-container { max-width: 1280px; margin-inline: auto; padding-inline: 1rem; }
.tbds-main { min-height: 50vh; }

.woocommerce .button,
.woocommerce button.button,
.woocommerce a.button,
.woocommerce input.button {
    background: var(--tbds-amber);
    color: var(--tbds-ink);
    font-family: var(--tbds-font);
    font-weight: 700;
    border-radius: 4px;
    border: 0;
}
.woocommerce .button:hover,
.woocommerce a.button:hover { background: var(--tbds-amber-strong); color: var(--tbds-ink); }

.woocommerce div.product .price,
.woocommerce ul.products li.product .price { color: var(--tbds-ink); font-weight: 700; }
.woocommerce div.product .price del,
.woocommerce ul.products li.product .price del { color: var(--tbds-grey); font-weight: 400; }

.woocommerce-message, .woocommerce-info { border-top-color: var(--tbds-amber); }
.woocommerce-error { border-top-color: #b00020; }

.tbds-cart-count {
    background: var(--tbds-amber); color: var(--tbds-ink);
    border-radius: 999px; padding: 0 .4em; font-size: .7rem; font-weight: 700;
    position: relative; top: -.6em; left: -.4em;
}

/* The live site hangs the hamburger class straight on the <svg>; here it sits
   on a real <button> so the control is focusable and announced, which means the
   icon has to be sized to that button rather than carrying its own width. It
   was hard-coded to 24px inside a 20px button and spilled 4px out of it. */
.header_hamburger_menu__4_ipW svg { display: block; width: 100%; height: 100%; }
.header_mobile_nav_close_icon__XMiP_ svg { display: block; width: 1em; height: 1em; }

/* Mobile menu, replacing the React drawer behaviour.
   The legacy Next.js CSS parks this drawer at left:-300px and slides it in
   with a class of its own, .header_show_mobile_navbar___XGwk; our JS toggles
   .is-open instead. This block used to map .is-open to display:block and
   nothing else, so the drawer was displayed but still sitting 300px off the
   left edge - tapping the burger appeared to do nothing at all. .is-open has
   to move it too; the legacy `transition: left .4s linear` does the slide. */
.header_mobile_navbar__9Dosk { display: none; }
.header_mobile_navbar__9Dosk.is-open { display: block; left: 0; }
body.tbds-menu-open { overflow: hidden; }
/* The burger is hidden above 1000px, so the drawer has to be gone above it
   too. Displayed, it sat off-screen with 50+ links still in the tab order,
   and a drawer opened on a narrow window stranded itself open on resize. */
@media (min-width: 1024px) {
    .header_mobile_navbar__9Dosk,
    .header_mobile_navbar__9Dosk.is-open { display: none; }
}

/* Fit the logo to whatever width the live CSS gives its container (150px in
   the header) rather than imposing a fixed size of my own. */
.header_navbar_logo__C27Y7 img { max-width: 100%; height: auto; display: block; }
#footer_footer__zL2zm .footer_logo_container__ElZBO img { max-width: 240px; height: auto; }
#footer_footer__zL2zm address { font-style: normal; }

/* Brand tiles. The live site renders these through next/image, which emits an
   inline "position:absolute;width:100%;height:100%" style. Plain <img> tags
   have no such style, so the SVGs drew at their natural size and overflowed
   the 170x135 tile. This reproduces what next/image was doing. */
.home_brand_image__MWRaG { position: relative; overflow: hidden; }
.home_brand_image__MWRaG > a { display: block; width: 100%; height: 100%; }
.home_brand_image__MWRaG img {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: fill;           /* matches the live site */
    color: transparent;
}

/* Category tiles use next/image the same way. */
.home_category__53RFO { position: relative; }
.home_category__53RFO img { max-width: 100%; height: auto; }

/* Carousel. Embla positions slides with transforms on a flex track; this
   reproduces that without the library. */
.adsCarousel_embla_viewport__Jb_FQ { overflow: hidden; }
.adsCarousel_embla_container__WP12o { display: flex; }
.adsCarousel_embla_slide__vTadK {
    flex: 0 0 100%; min-width: 0;
    transition: transform .45s ease;
}
.adsCarousel_embla_slide__vTadK picture,
.adsCarousel_embla_slide__vTadK img { display: block; width: 100%; height: 100%; object-fit: cover; }
.adsCarousel_embla__dots__yArHV button {
    width: 10px; height: 10px; padding: 0; margin: 0 4px;
    border: 0; border-radius: 50%; cursor: pointer;
    background: rgba(255, 255, 255, .5);
}
.adsCarousel_embla__dots__yArHV button.is-selected { background: var(--tbds-amber, #febd59); }

/* The header logo is another next/image: absolutely filling a 200x75 box. */
.header_navbar_logo__C27Y7 { position: relative; }
.header_navbar_logo__C27Y7 img {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: contain; max-width: none;
}

/* ---------------------------------------------------------------------------
   Product page, laid out like the YMS product page: gallery left, a single
   summary column right reading brand -> title -> tagline -> features ->
   price -> quantity -> buttons -> pickup.
   Brand colours are TBDS's own, not Shopify's purple and green.
   --------------------------------------------------------------------------- */
.woocommerce .tbds-container > div.product { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: start; }
.woocommerce div.product > .woocommerce-product-gallery { grid-column: 1; margin: 0; width: 100% !important; }
.woocommerce div.product > .summary { grid-column: 2; margin: 0; width: 100% !important; max-width: 34rem; }
.woocommerce div.product > .woocommerce-tabs,
.woocommerce div.product > .related,
.woocommerce div.product > .upsells { grid-column: 1 / -1; }
@media (max-width: 900px) {
    .woocommerce .tbds-container > div.product { grid-template-columns: 1fr; gap: 1.5rem; }
    .woocommerce div.product > .woocommerce-product-gallery,
    .woocommerce div.product > .summary { grid-column: 1; }
    .woocommerce div.product > .woocommerce-product-gallery { grid-row: 1; }
    .woocommerce div.product > .summary { grid-row: 2; max-width: none; }
}

.tbds-brand {
    font-size: .72rem; letter-spacing: .11em; text-transform: uppercase;
    color: var(--tbds-grey, #5d5c5c); margin: 0 0 .35rem;
}
.woocommerce div.product .product_title {
    font-size: 2.1rem; line-height: 1.15; font-weight: 400;
    margin: 0 0 .9rem; color: var(--tbds-ink, #181616);
}

.tbds-product-intro { margin: 0; }
.tbds-tagline {
    font-size: 1rem; line-height: 1.5; margin: 0 0 1rem;
    color: var(--tbds-grey, #5d5c5c); max-width: 46ch;
}
.tbds-key-features { list-style: disc; margin: 0; padding-left: 1.15rem; }
.tbds-key-features li {
    font-size: .92rem; line-height: 1.45; margin-bottom: .42rem;
    color: var(--tbds-ink, #181616);
}
.tbds-key-features li::marker { color: var(--tbds-ink, #181616); }

.tbds-price {
    margin: 1.15rem 0 1.25rem;
    padding: 1rem 1rem .85rem;
    border: 1px solid rgba(246, 185, 59, .52);
    border-left: 4px solid var(--tbds-amber, #febd59);
    border-radius: 6px;
    background: linear-gradient(135deg, rgba(254, 189, 89, .24), rgba(254, 189, 89, .08));
}
.tbds-price-row { display: flex; align-items: baseline; gap: .6rem; margin-bottom: .15rem; }
.tbds-price-label {
    min-width: 5.5rem; font-size: .72rem; letter-spacing: .06em;
    text-transform: uppercase; color: var(--tbds-grey, #5d5c5c);
}
.tbds-mrp { font-size: .9rem; color: var(--tbds-grey, #5d5c5c); text-decoration: line-through; }
.tbds-mrp del, .tbds-mrp ins { text-decoration: inherit; background: none; }
.tbds-now { font-size: 1.45rem; font-weight: 700; color: var(--tbds-ink, #181616); }
.tbds-now del { display: none; }
.tbds-now ins { text-decoration: none; background: none; }
.tbds-off {
    background: var(--tbds-amber, #febd59); color: var(--tbds-ink, #181616);
    font-size: .7rem; font-weight: 700; letter-spacing: .03em;
    padding: .2em .5em; border-radius: 3px; white-space: nowrap;
}
.tbds-tax-note { font-size: .78rem; color: var(--tbds-grey, #5d5c5c); margin: .3rem 0 0; }

/* Quantity and the two buttons, stacked full width like the reference. */
.woocommerce div.product form.cart { margin: 0; display: block; }
.woocommerce div.product form.cart .quantity { display: block; margin: 0 0 .75rem; }
.woocommerce div.product form.cart .quantity::before {
    content: "Quantity"; display: block; font-size: .78rem;
    color: var(--tbds-grey, #5d5c5c); margin-bottom: .35rem;
}
.woocommerce div.product form.cart .quantity input {
    width: 8rem; height: 2.9rem; text-align: center;
    border: 1px solid rgba(0,0,0,.25); border-radius: 4px; background: #fff;
}
.woocommerce div.product form.cart button.single_add_to_cart_button,
.woocommerce div.product .tbds-buy-now {
    display: block; width: 100%; height: 3rem; margin: 0 0 .7rem;
    font-size: .95rem; font-weight: 600; border-radius: 4px; cursor: pointer;
    font-family: inherit; transition: background .15s, border-color .15s;
}
.woocommerce div.product form.cart button.single_add_to_cart_button {
    background: #fff; color: var(--tbds-ink, #181616);
    border: 1px solid rgba(0,0,0,.3);
}
.woocommerce div.product form.cart button.single_add_to_cart_button:hover {
    background: #fff; border-color: var(--tbds-ink, #181616);
}
.woocommerce div.product .tbds-buy-now {
    background: var(--tbds-amber, #febd59); color: var(--tbds-ink, #181616);
    border: 1px solid var(--tbds-amber, #febd59); font-weight: 700;
}
.woocommerce div.product .tbds-buy-now:hover {
    background: var(--tbds-amber-strong, #febd59);
    border-color: var(--tbds-amber-strong, #febd59);
}
.woocommerce div.product .tbds-buy-now:focus-visible {
    outline: 3px solid rgba(246, 185, 59, .45);
    outline-offset: 2px;
}

.tbds-pickup { margin-top: 1.25rem; font-size: .85rem; }
.tbds-pickup-title { margin: 0 0 .15rem; color: var(--tbds-ink, #181616); }
.tbds-pickup-title::before { content: "\2713\00a0"; color: #2e7d32; }
.tbds-pickup-note { margin: 0 0 .35rem; font-size: .78rem; color: var(--tbds-grey, #5d5c5c); }
.tbds-pickup-link { font-size: .78rem; color: var(--tbds-grey, #5d5c5c); text-decoration: underline; }

/* WooCommerce extras the reference page doesn't have: its own "Sale!" flash
   (the % OFF badge already says this) and the "In stock" line, which is only
   meaningful when something is OUT of stock. */
.woocommerce div.product span.onsale { display: none; }
.woocommerce div.product .summary p.stock.in-stock { display: none; }
.woocommerce div.product .summary p.stock.out-of-stock {
    color: #b00020; font-size: .85rem; font-weight: 600; margin: 0 0 1rem;
}

/* Gallery: square main image with the thumbnail strip beneath, as in the
   reference, rather than a tall column. */
.woocommerce div.product .woocommerce-product-gallery__wrapper { margin: 0; }
.woocommerce div.product .woocommerce-product-gallery__image img {
    aspect-ratio: 1 / 1; object-fit: contain; background: #fff;
}
.woocommerce div.product .flex-control-thumbs { margin-top: .75rem; gap: .5rem; display: flex; }
.woocommerce div.product .flex-control-thumbs li { width: 88px; margin: 0; }
.woocommerce div.product .flex-control-thumbs img {
    border: 1px solid rgba(0,0,0,.14); border-radius: 4px; padding: 2px;
    aspect-ratio: 1 / 1; object-fit: contain;
}
.woocommerce div.product .flex-control-thumbs img.flex-active {
    border-color: var(--tbds-ink, #181616);
}

/* ---------------------------------------------------------------------------
   Proportions.
   The YMS reference centres its product area in ~1100px at a 1440 viewport,
   leaving ~160px of margin each side. Ours was running nearly edge to edge,
   which is what made the image feel imposing - it was the missing whitespace,
   not the image size. Content is now centred and the media column is given
   slightly less weight than the reference so it reads calmer still.
   --------------------------------------------------------------------------- */
.woocommerce .tbds-container > div.product {
    max-width: 1120px;
    margin-inline: auto;
    grid-template-columns: 1.1fr 1fr;
    gap: 3.5rem;
}

/* A square image that never dominates the fold. */
.woocommerce div.product .woocommerce-product-gallery__image img {
    max-height: 520px;
    width: 100%;
    margin-inline: auto;
}

/* Smaller thumbnails, closer to a strip than a second gallery. */
.woocommerce div.product .flex-control-thumbs li { width: 76px; }

/* The title was heavier than the reference's 40px on a narrower column. */
.woocommerce div.product .product_title { font-size: 1.9rem; }

@media (max-width: 1100px) {
    .woocommerce .tbds-container > div.product { max-width: none; gap: 2.5rem; }
}

/* The thumbnails were still stretching to fill the row: they are flex items,
   so a width alone doesn't hold them - the flex basis has to be fixed too. */
.woocommerce div.product .flex-control-thumbs { flex-wrap: wrap; }
.woocommerce div.product .flex-control-thumbs li { flex: 0 0 76px; width: 76px; }


/* NOTE: wc_product_class() puts the class `product` on every product CARD as
   well as on the single product, so a rule that sets a property directly on
   `div.product` reaches the cards in the Similar / Frequently-bought rows too.
   The single product is the only `div.product` that is a direct child of
   .tbds-container, so layout rules are anchored there. Descendant rules
   (.summary, .flex-control-thumbs, form.cart) are safe as they are - cards have
   no such children. */

/* ===========================================================================
   The lower half of the product page: the tab strip and its panels.

   The bar itself is the live site's own - product_menu_container__RcDZ7 and
   product_active_menu_option__xLNbi - so its rules and colours come from the
   site's stylesheets. The declarations are repeated here only so the bar can
   stay usable below 700px, where the live site hides it (it has no tabs to
   drive there). Nothing sets a font-family: everything inherits Inter from
   the site's own :root, which is what keeps the type identical.
   =========================================================================== */

.woocommerce div.product > .tbds-product-sections { grid-column: 1 / -1; margin-top: 3.5rem; }

.tbds-tabs {
    display: flex;
    justify-content: space-evenly;
    border-top: 2px solid var(--tone-black, #5d5c5c);
    border-bottom: 2px solid var(--tone-black, #5d5c5c);
    position: sticky;
    top: 0;
    z-index: 10;
    background-color: #fff;
}
.tbds-tabs .tbds-tab {
    display: inline-block;
    padding: 10px 30px;
    cursor: pointer;
    font-size: .95rem;
    letter-spacing: .01em;
    color: var(--tone-black, #5d5c5c);
    border-bottom: 4px solid transparent;
    margin-bottom: -2px;
    white-space: nowrap;
    user-select: none;
}
.tbds-tabs .tbds-tab:hover { color: var(--tbds-ink, #181616); }
.tbds-tabs .tbds-tab.is-active {
    color: var(--tbds-ink, #181616);
    font-weight: 600;
    border-bottom-color: var(--tone-black, #5d5c5c);
}
.tbds-tabs .tbds-tab:focus-visible { outline: 2px solid var(--tbds-amber, #febd59); outline-offset: -4px; }

/* Below 700px the live site drops the bar entirely. Here it has panels to
   switch, so it scrolls sideways instead of disappearing. */
@media (max-width: 700px) {
    .tbds-tabs { justify-content: flex-start; overflow-x: auto; scrollbar-width: none; }
    .tbds-tabs::-webkit-scrollbar { display: none; }
    .tbds-tabs .tbds-tab { padding: 10px 18px; }
}

.tbds-tab-panel[hidden] { display: none; }

/* --- Tab 1: description --------------------------------------------------- */

/* The one-line model description, above the rich content. */
.tbds-description .tbds-model-line {
    font-size: 1.9rem;
    font-weight: 700;
    line-height: 1.15;
    color: var(--tbds-ink, #181616);
    width: fit-content;
    max-width: 38ch;
    margin: 3rem 0 0;
    padding: 0 .08em .04em;
    border: 0;
    text-wrap: balance;
    background: linear-gradient(
        to bottom,
        transparent 58%,
        var(--tbds-amber, #febd59) 58%,
        var(--tbds-amber, #febd59) 92%,
        transparent 92%
    );
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
}

.tbds-description .tbds-rich { max-width: 78ch; }
.tbds-description .tbds-rich img { height: auto; }

/* The first heading inside the rich content already carries a large top
   margin from the site's own rules; it does not need a second one here. */
.tbds-description .tbds-rich > :first-child { margin-top: 2rem; }

/* Structured long-form modules. Copy and rendering are intentionally
   separate: each SKU supplies data; every product uses this one layout. */
.tbds-modular-features { max-width: 1120px; margin-top: .75rem; }
.tbds-feature {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 440px);
    align-items: center;
    gap: clamp(2rem, 4vw, 3.25rem);
    padding: clamp(2rem, 4vw, 2.75rem) 0;
    border-bottom: 1px solid rgba(24, 22, 22, .14);
}
.tbds-feature.is-reversed { grid-template-columns: minmax(320px, 440px) minmax(0, 1fr); }
.tbds-feature.is-reversed .tbds-feature-media { order: -1; }
.tbds-feature:last-child { border-bottom: 0; }
.tbds-feature-copy { max-width: 34rem; align-self: center; }
.tbds-feature:not(.is-reversed) .tbds-feature-copy { justify-self: start; }
.tbds-feature.is-reversed .tbds-feature-copy { justify-self: end; }
.tbds-feature h3 {
    margin: 0 0 .75rem;
    color: var(--tbds-ink, #181616);
    font-size: clamp(1.35rem, 2vw, 1.75rem);
    font-weight: 500;
    line-height: 1.15;
    text-wrap: balance;
}
.tbds-feature-body { color: var(--tbds-grey, #5d5c5c); font-size: .95rem; line-height: 1.62; }
.tbds-feature-body p { margin: 0; }
.tbds-feature-media {
    width: 100%;
    max-width: 440px;
    margin: 0;
    overflow: hidden;
    border-radius: 6px;
    background: #f5f5f5;
    justify-self: end;
}
.tbds-feature.is-reversed .tbds-feature-media { justify-self: start; }
.tbds-feature-media img {
    display: block;
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: contain;
    object-position: center;
}

@media (max-width: 700px) {
    .tbds-description .tbds-model-line { font-size: 1.65rem; margin-top: 2.25rem; }
    .tbds-modular-features { margin-top: .5rem; }
    .tbds-feature,
    .tbds-feature.is-reversed { grid-template-columns: 1fr; gap: 1.5rem; padding: 2.5rem 0; }
    .tbds-feature.is-reversed .tbds-feature-media { order: initial; }
    .tbds-feature-copy,
    .tbds-feature:not(.is-reversed) .tbds-feature-copy,
    .tbds-feature.is-reversed .tbds-feature-copy,
    .tbds-feature-media,
    .tbds-feature.is-reversed .tbds-feature-media { justify-self: stretch; max-width: none; }
    .tbds-feature h3 { font-size: 1.4rem; }
}

.tbds-section-heading {
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1.1;
    margin: 3rem 0 0;
    padding-bottom: .6rem;
    border-bottom: 2px solid var(--tbds-ink, #181616);
    max-width: 78ch;
}

/* --- Collapsible rows (FAQ and Why buy) ----------------------------------- */

.tbds-faq, .tbds-why-buy { max-width: 78ch; }

.tbds-disclosure { border-bottom: 1px solid rgba(0, 0, 0, .12); }
.tbds-disclosure > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 0;
    cursor: pointer;
    list-style: none;
}
.tbds-disclosure > summary::-webkit-details-marker { display: none; }
.tbds-disclosure > summary:focus-visible { outline: 2px solid var(--tbds-amber, #febd59); outline-offset: 2px; }

.tbds-disclosure .tbds-q {
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.4;
    color: var(--tbds-ink, #181616);
}

.tbds-disclosure .tbds-chevron {
    flex: 0 0 auto;
    width: 9px;
    height: 9px;
    border-right: 2px solid var(--tone-black, #5d5c5c);
    border-bottom: 2px solid var(--tone-black, #5d5c5c);
    transform: rotate(45deg) translate(-2px, -2px);
    transition: transform .18s ease;
}
.tbds-disclosure[open] .tbds-chevron { transform: rotate(-135deg) translate(-3px, -3px); }

.tbds-disclosure-body {
    padding: 0 0 1.25rem;
    font-size: .95rem;
    line-height: 1.65;
    color: var(--tone-black, #5d5c5c);
}
.tbds-disclosure-body p { margin: 0 0 .75rem; }
.tbds-disclosure-body p:last-child { margin-bottom: 0; }

/* Why buy sits in a tinted card rather than on the page background, so it
   reads as the shop speaking rather than as more product copy. */
.tbds-why-buy { margin: 2.5rem 0 0; }
.tbds-why-buy .tbds-disclosure {
    border: 1px solid rgba(0, 0, 0, .1);
    border-radius: 10px;
    background: #faf9f7;
    padding: 0 1.25rem;
}
.tbds-why-buy .tbds-q { font-size: 1.15rem; font-weight: 700; }

.tbds-why-list { list-style: none; margin: 0; padding: 0; }
.tbds-why-list li { display: flex; gap: .6rem; margin: 0 0 .8rem; align-items: flex-start; }
.tbds-why-list li:last-child { margin-bottom: 0; }
.tbds-why-list strong { color: var(--tbds-ink, #181616); }
.tbds-tick {
    flex: 0 0 auto;
    color: var(--tbds-ink, #181616);
    background: var(--tbds-amber, #febd59);
    width: 20px; height: 20px;
    border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: .7rem; line-height: 1;
    margin-top: .15rem;
}

/* --- Tab 2: specifications ------------------------------------------------ */

/* The migrated tables carry inline min-widths from the old editor; on a
   narrow screen the panel scrolls rather than the page. */
.tbds-tab-panel .tbds-specification > div { overflow-x: auto; }
.tbds-tab-panel .tbds-specification {
    padding: 2rem 0 3rem;
    border: 0;
}
.tbds-spec-accordion {
    width: min(100%, 980px);
    overflow: visible !important;
}
.tbds-spec-group {
    border-top: 1px solid rgba(24, 22, 22, .14);
    background: #fff;
}
.tbds-spec-group:last-child { border-bottom: 1px solid rgba(24, 22, 22, .14); }
.tbds-spec-group > summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto 18px;
    gap: .9rem;
    align-items: center;
    padding: 1rem 1rem 1rem .9rem;
    border-left: 3px solid transparent;
    cursor: pointer;
    list-style: none;
    transition: background .16s ease, border-color .16s ease;
}
.tbds-spec-group > summary::-webkit-details-marker { display: none; }
.tbds-spec-group > summary:hover { background: var(--tbds-surface); }
.tbds-spec-group > summary:focus-visible {
    outline: 3px solid rgba(254, 189, 89, .5);
    outline-offset: 2px;
}
.tbds-spec-group[open] > summary {
    border-left-color: var(--tbds-orange);
    background: var(--tbds-surface);
}
.tbds-spec-group-title {
    color: var(--tbds-ink);
    font-family: var(--tbds-display);
    font-size: 1.35rem;
    font-weight: 400;
    line-height: 1;
    letter-spacing: .035em;
    text-transform: uppercase;
}
.tbds-spec-count {
    color: rgba(24, 22, 22, .5);
    font-size: .68rem;
    font-weight: 500;
}
.tbds-spec-chevron {
    width: 9px;
    height: 9px;
    transform: rotate(45deg) translate(-2px, -2px);
    border-right: 2px solid var(--tbds-ink);
    border-bottom: 2px solid var(--tbds-ink);
    transition: transform .18s ease;
}
.tbds-spec-group[open] .tbds-spec-chevron { transform: rotate(225deg) translate(-1px, -1px); }
.tbds-tab-panel .tbds-spec-table-wrap {
    overflow-x: auto;
    border-top: 1px solid rgba(24, 22, 22, .1);
}
.tbds-spec-table {
    width: 100%;
    min-width: 680px;
    margin: 0;
    border: 0;
    border-collapse: collapse;
    table-layout: fixed;
}
.tbds-spec-table th,
.tbds-spec-table td {
    padding: .78rem .9rem;
    border: 0;
    border-bottom: 1px solid rgba(24, 22, 22, .08);
    color: #454242;
    font-size: .78rem;
    line-height: 1.4;
    text-align: left;
    vertical-align: top;
}
.tbds-spec-table th {
    background: var(--tbds-ink);
    color: #fff;
    font-size: .66rem;
    font-weight: 700;
    letter-spacing: .055em;
    text-transform: uppercase;
}
.tbds-spec-table th:first-child,
.tbds-spec-table td:first-child { width: 24%; }
.tbds-spec-table th:nth-child(2),
.tbds-spec-table td:nth-child(2) { width: 31%; }
.tbds-spec-table tbody tr:nth-child(even) { background: #faf9f7; }
.tbds-spec-table td:first-child {
    color: var(--tbds-ink);
    font-weight: 650;
}
.tbds-spec-table p { margin: 0; }

@media (max-width: 700px) {
    .tbds-spec-group > summary {
        grid-template-columns: minmax(0, 1fr) 16px;
        gap: .6rem;
        padding: .9rem .75rem;
    }
    .tbds-spec-count { display: none; }
    .tbds-spec-group-title { font-size: 1.15rem; }
    .tbds-spec-table { min-width: 610px; }
    .tbds-spec-table th,
    .tbds-spec-table td { padding: .7rem .75rem; }
}

/* --- Tab 3: reviews ------------------------------------------------------- */

.tbds-reviews { padding: 2rem 0 3rem; max-width: 78ch; }
.tbds-reviews #reviews h2 { font-size: 1.4rem; font-weight: 700; }
.tbds-review-empty {
    margin-bottom: 1.4rem;
    padding: clamp(1.2rem, 3vw, 2rem);
    border: 1px solid rgba(24, 22, 22, .1);
    border-left: 4px solid var(--tbds-amber, #febd59);
    border-radius: 10px;
    background: var(--tbds-surface, #f8f7f4);
}
.tbds-review-stars {
    color: #a5670c;
    font-size: 1.35rem;
    letter-spacing: .12em;
    line-height: 1;
}
.tbds-review-kicker {
    margin: .75rem 0 .3rem;
    color: #6a6666;
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .11em;
    text-transform: uppercase;
}
.tbds-review-empty h2 { margin: 0 0 .45rem; color: var(--tbds-ink); }
.tbds-review-empty > p:last-of-type { max-width: 55ch; margin: 0; color: #555252; line-height: 1.55; }
.tbds-review-cta {
    display: inline-flex;
    min-height: 42px;
    margin-top: 1rem;
    padding: .65rem 1rem;
    align-items: center;
    border-radius: 6px;
    background: var(--tbds-ink);
    color: #fff;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .045em;
    text-transform: uppercase;
}
.tbds-review-cta:hover { background: var(--tbds-amber); color: var(--tbds-ink); }
.tbds-reviews.has-no-reviews .woocommerce-noreviews { display: none; }

/* ===========================================================================
   Below the tabs: video, Frequently bought together, Similar products.
   The containers are the live site's own; only the click-to-play facade and
   the width cap are added here.
   =========================================================================== */

.woocommerce div.product > .tbds-extras {
    grid-column: 1 / -1;
    width: 100%;
    min-width: 0;
    max-width: 100%;
}

/* --- Video ---------------------------------------------------------------- */

/* Full container width would make a 630px-tall frame on a 1120px column,
   which dominates everything under it. Capped and centred instead. */
.tbds-video-section {
    /* width must be definite: a grid item with `margin-inline:auto` and a
       percentage-width child shrink-to-fits, and `width:100%` of an indefinite
       parent resolves to 0 - which collapsed the 16:9 frame to nothing. */
    width: min(100%, 900px);
    margin: 5rem auto 0;
}

.tbds-video .tbds-video-play {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    padding: 0; margin: 0; border: 0;
    background: #000;
    cursor: pointer;
    display: block;
}
.tbds-video .tbds-video-play img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
    transition: opacity .2s ease;
}
.tbds-video .tbds-video-play:hover img { opacity: .82; }

/* The play button: a rounded rectangle with a triangle, drawn rather than
   loaded, so the facade costs one thumbnail and nothing else. */
.tbds-video-btn {
    position: absolute; top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    width: 72px; height: 50px;
    border-radius: 12px;
    /* Amber at rest, not a dark pill: these thumbnails are mostly dark stage
       shots, and a translucent dark button vanished into them. It also matches
       the amber add-to-cart button the site uses everywhere else. */
    background: var(--tbds-amber, #febd59);
    box-shadow: 0 3px 16px rgba(0, 0, 0, .45);
    transition: transform .18s ease, box-shadow .18s ease;
}
.tbds-video-btn::after {
    content: "";
    position: absolute; top: 50%; left: 52%;
    transform: translate(-50%, -50%);
    border-style: solid;
    border-width: 10px 0 10px 17px;
    border-color: transparent transparent transparent var(--tbds-ink, #181616);
}
.tbds-video .tbds-video-play:hover .tbds-video-btn {
    transform: translate(-50%, -50%) scale(1.08);
    box-shadow: 0 5px 22px rgba(0, 0, 0, .55);
}
.tbds-video .tbds-video-play:focus-visible { outline: 3px solid var(--tbds-amber, #febd59); outline-offset: 3px; }

/* --- The two product rows ------------------------------------------------- */

/* The live scroller has no visible affordance at this width; a thin bar makes
   it obvious there is more to the right. */
.tbds-extras .productList_product_list_container__z__rv {
    scrollbar-width: thin;
    scroll-snap-type: x proximity;
    scroll-behavior: smooth;
}
.tbds-extras .productList_product_list_container__z__rv > * { scroll-snap-align: start; }

.tbds-scroller-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-inline: 10px;
}
.tbds-scroller-heading h2 {
    margin: 0;
    text-align: left;
}
.tbds-scroller-controls {
    display: flex;
    flex: 0 0 auto;
    gap: .45rem;
}
.tbds-scroller-controls button {
    width: 40px;
    height: 40px;
    border: 1px solid var(--tbds-ink, #181616);
    border-radius: 50%;
    background: var(--tbds-ink, #181616);
    color: #fff;
    font: 700 1.15rem/1 var(--tbds-body, Inter, sans-serif);
    cursor: pointer;
    transition: background .16s ease, color .16s ease, opacity .16s ease, transform .16s ease;
}
.tbds-scroller-controls button:hover:not(:disabled),
.tbds-scroller-controls button:focus-visible {
    background: var(--tbds-amber, #febd59);
    color: var(--tbds-ink, #181616);
    transform: translateY(-1px);
}
.tbds-scroller-controls button:focus-visible {
    outline: 2px solid var(--tbds-amber, #febd59);
    outline-offset: 2px;
}
.tbds-scroller-controls button:disabled {
    opacity: .28;
    cursor: default;
}

/* A rule between the tab block and what follows, as the live site has under
   its accessories row. */
.tbds-bought-together, .tbds-similar-products { padding-bottom: 1rem; }
.tbds-similar-products { border-bottom: 2px solid var(--tone-black, #5d5c5c); }

@media (max-width: 700px) {
    .tbds-video-section { margin-top: 3rem; }
    .tbds-extras.productList_category_list_container__hTe3e { margin: 3.5rem 0; }
    .tbds-scroller-controls button { width: 36px; height: 36px; }
}

/* ===========================================================================
   Product page visual system — compact, studio-grade and unmistakably TBDS.
   The layout and content order stay intact; this layer tightens proportions,
   strengthens hierarchy and uses the exact orange and near-black from the logo.
   =========================================================================== */

body.single-product {
    --tbds-orange: #febd59;
    --tbds-orange-dark: #febd59;
    --tbds-surface: #f6f5f2;
    --tbds-line: rgba(24, 22, 22, .14);
    --tbds-amber: var(--tbds-orange);
    --tbds-amber-strong: var(--tbds-orange-dark);
    color: var(--tbds-ink, #181616);
    background: var(--tbds-white, #fff);
}

body.single-product .header_navbar__HyRkS {
    min-height: 70px;
    padding-block: 7px;
    box-shadow: 0 6px 24px rgba(24, 22, 22, .12);
}
body.single-product .header_navbar_logo__C27Y7 { height: 54px; }
body.single-product .header_search_outer_container__mTWUX {
    border-radius: 6px;
    overflow: hidden;
}
body.single-product .header_nav_links__ZqahD a,
body.single-product .header_last_user_icons__JjJ5G a {
    letter-spacing: .035em;
}
body.single-product .topBand_band_outer_container__n1pma {
    min-height: 42px;
    align-items: center;
    padding-inline: clamp(1rem, 4vw, 4rem);
    border-bottom-color: var(--tbds-line);
}
body.single-product .topBand_band_entry___g7FF { padding-block: .65rem; }

body.single-product .tbds-main > .tbds-container {
    max-width: 1240px;
    padding-inline: clamp(1rem, 3vw, 2rem);
}
body.single-product .woocommerce-breadcrumb {
    margin: .8rem 0 1.15rem;
    color: #777;
    font-size: .76rem;
    letter-spacing: .015em;
}
body.single-product .woocommerce-breadcrumb a {
    color: var(--tbds-ink);
    text-decoration: none;
}
body.single-product .woocommerce-breadcrumb a:hover { color: var(--tbds-orange-dark); }

body.single-product.woocommerce .tbds-container > div.product {
    max-width: 1200px;
    grid-template-columns: minmax(0, 1.12fr) minmax(400px, .88fr);
    column-gap: clamp(2rem, 3vw, 3.5rem);
    row-gap: 0;
}
body.single-product.woocommerce div.product > .woocommerce-product-gallery {
    padding: 1rem;
    border: 1px solid rgba(24, 22, 22, .09);
    border-radius: 16px;
    background: var(--tbds-surface);
    box-shadow: 0 12px 36px rgba(24, 22, 22, .06);
}
body.single-product.woocommerce div.product .woocommerce-product-gallery__image img {
    max-height: 600px;
    border-radius: 10px;
    background: #fff;
}
body.single-product.woocommerce div.product .flex-control-thumbs {
    gap: .55rem;
    margin-top: .85rem;
    flex-wrap: nowrap;
    overflow-x: auto;
    padding: .1rem .1rem .4rem;
    scrollbar-width: thin;
    scrollbar-color: var(--tbds-orange) transparent;
}
body.single-product.woocommerce div.product .flex-control-thumbs li {
    flex: 0 0 108px;
    width: 108px;
}
body.single-product.woocommerce div.product .flex-control-thumbs img {
    border-color: transparent;
    border-radius: 7px;
    background: #fff;
    opacity: .6;
    transition: opacity .16s ease, border-color .16s ease, transform .16s ease;
}
body.single-product.woocommerce div.product .flex-control-thumbs img:hover { opacity: 1; }
body.single-product.woocommerce div.product .flex-control-thumbs img.flex-active {
    border: 2px solid var(--tbds-orange);
    opacity: 1;
    transform: translateY(-1px);
}
body.single-product.woocommerce div.product .flex-control-thumbs li.tbds-gallery-video-thumb {
    position: relative;
    flex: 0 0 108px;
    width: 108px;
    overflow: hidden;
    border-radius: 7px;
    background: var(--tbds-ink);
}
body.single-product .tbds-gallery-video-thumb button {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 2px solid transparent;
    border-radius: 7px;
    background: var(--tbds-ink);
    cursor: pointer;
}
body.single-product .tbds-gallery-video-thumb button:hover,
body.single-product .tbds-gallery-video-thumb button:focus-visible {
    border-color: var(--tbds-orange);
}
body.single-product .tbds-gallery-video-thumb img {
    width: 100%;
    height: 100%;
    border: 0;
    border-radius: 5px;
    object-fit: cover;
    opacity: .58;
}
body.single-product .tbds-gallery-video-thumb-play {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 32px;
    height: 24px;
    transform: translate(-50%, -62%);
    border-radius: 5px;
    background: var(--tbds-orange);
}
body.single-product .tbds-gallery-video-thumb-play::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 53%;
    transform: translate(-50%, -50%);
    border-style: solid;
    border-width: 5px 0 5px 8px;
    border-color: transparent transparent transparent var(--tbds-ink);
}
body.single-product .tbds-gallery-video-thumb-label {
    position: absolute;
    right: 3px;
    bottom: 3px;
    left: 3px;
    padding: 2px;
    border-radius: 2px;
    background: rgba(24, 22, 22, .9);
    color: #fff;
    font-size: .48rem;
    font-weight: 800;
    letter-spacing: .05em;
    line-height: 1;
    text-align: center;
    pointer-events: none;
}

body.single-product.woocommerce div.product > .summary {
    max-width: none;
    padding-top: .35rem;
}
body.single-product .tbds-brand {
    display: inline-flex;
    align-items: center;
    min-height: 25px;
    margin: 0 0 .45rem;
    padding: .25rem .65rem;
    border-radius: 999px;
    color: var(--tbds-orange);
    background: var(--tbds-ink);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .14em;
}
body.single-product.woocommerce div.product .product_title {
    max-width: none;
    margin: 0 0 .45rem;
    color: var(--tbds-ink);
    font-family: var(--tbds-display);
    font-size: clamp(2.25rem, 3vw, 2.65rem);
    font-weight: 400;
    line-height: .98;
    letter-spacing: .018em;
    text-wrap: balance;
}
body.single-product .tbds-tagline {
    max-width: 50ch;
    margin-bottom: .65rem;
    color: #555252;
    font-size: .96rem;
    line-height: 1.5;
}
body.single-product .tbds-key-features {
    display: grid;
    gap: .25rem;
    padding: 0;
    list-style: none;
}
body.single-product .tbds-key-features li {
    position: relative;
    margin: 0;
    padding-left: 1.05rem;
    color: #302e2e;
    font-size: .86rem;
    line-height: 1.34;
}
body.single-product .tbds-key-features li::before {
    content: "";
    position: absolute;
    top: .53em;
    left: 0;
    width: 6px;
    height: 6px;
    border-radius: 1px;
    background: var(--tbds-orange);
}

body.single-product .tbds-price {
    margin: .7rem 0 .75rem;
    padding: .72rem 1rem .66rem;
    border: 0;
    border-left: 4px solid var(--tbds-orange);
    border-radius: 8px;
    background: var(--tbds-ink);
    box-shadow: 0 10px 28px rgba(24, 22, 22, .13);
}
body.single-product .tbds-price-row { gap: .65rem; margin-bottom: .1rem; }
body.single-product .tbds-price-label {
    color: var(--tbds-orange);
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .09em;
}
body.single-product .tbds-mrp { color: rgba(255, 255, 255, .58); }
body.single-product .tbds-now { color: #fff; font-size: 1.5rem; letter-spacing: -.02em; }
body.single-product .tbds-off {
    background: var(--tbds-orange);
    color: var(--tbds-ink);
    font-weight: 800;
}
body.single-product .tbds-tax-note { color: rgba(255, 255, 255, .56); }

/* Official Razorpay Affordability Widget. It sits between the TBDS price card
   and the purchase controls, matching the live-store buying flow. */
body.single-product #razorpay-affordability-widget,
body.single-product .tbds-razorpay-setup {
    width: 100%;
    margin: 0 0 .85rem;
    box-sizing: border-box;
}
body.single-product #razorpay-affordability-widget {
    min-height: 76px;
    overflow: hidden;
    border: 1px solid rgba(82, 143, 240, .55);
    border-left: 4px solid var(--tbds-orange);
    border-radius: 7px;
    background: #fff;
}
body.single-product #razorpay-affordability-widget:empty { display: none !important; }
body.single-product #razorpay-affordability-widget iframe {
    display: block;
    width: 100% !important;
    max-width: 100%;
    border: 0;
}
body.single-product .tbds-razorpay-setup {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: .2rem 1rem;
    padding: .75rem .9rem;
    border: 1px dashed rgba(24, 22, 22, .3);
    border-left: 4px solid var(--tbds-orange);
    border-radius: 7px;
    background: #faf9f7;
    color: var(--tbds-ink);
    font-size: .76rem;
    line-height: 1.4;
}
body.single-product .tbds-razorpay-setup strong,
body.single-product .tbds-razorpay-setup span,
body.single-product .tbds-razorpay-setup small { grid-column: 1; }
body.single-product .tbds-razorpay-setup a {
    grid-column: 2;
    grid-row: 1 / 3;
    align-self: center;
    color: #276ef1;
    font-weight: 750;
    text-decoration: underline;
    text-underline-offset: 2px;
}
body.single-product .tbds-razorpay-setup small { color: #777272; }

body.single-product.woocommerce div.product form.cart .quantity {
    margin: 0;
}
body.single-product.woocommerce div.product form.cart .quantity::before {
    margin-bottom: .3rem;
    color: #5d5a5a;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
}
body.single-product.woocommerce div.product form.cart .quantity input {
    width: 7rem;
    height: 2.75rem;
    border-color: rgba(24, 22, 22, .2);
    border-radius: 6px;
    font-weight: 700;
}
body.single-product.woocommerce div.product form.cart button.single_add_to_cart_button,
body.single-product.woocommerce div.product .tbds-buy-now {
    height: 2.9rem;
    margin-bottom: .55rem;
    border-radius: 6px;
    font-size: .88rem;
    font-weight: 800;
    letter-spacing: .025em;
    text-transform: uppercase;
    transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
}
body.single-product.woocommerce div.product form.cart {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .55rem .65rem;
    align-items: end;
}
body.single-product.woocommerce div.product form.cart .quantity {
    grid-column: 1 / -1;
    justify-self: start;
}
body.single-product.woocommerce div.product form.cart button.single_add_to_cart_button {
    grid-column: 1;
    margin: 0;
    border: 1.5px solid var(--tbds-ink);
    background: #fff;
}
body.single-product.woocommerce div.product form.cart button.single_add_to_cart_button:hover {
    background: var(--tbds-ink);
    color: #fff;
}
body.single-product.woocommerce div.product .tbds-buy-now {
    grid-column: 2;
    margin: 0;
    border-color: var(--tbds-orange);
    background: var(--tbds-orange);
    box-shadow: 0 7px 18px rgba(254, 189, 89, .24);
}
body.single-product.woocommerce div.product .tbds-buy-now:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 24px rgba(254, 189, 89, .32);
}

/* Variable products: native WooCommerce variation logic with a compact,
   musician-friendly selector layout. */
body.single-product.woocommerce div.product form.variations_form.cart {
    display: block;
    margin-top: .85rem;
}
body.single-product.woocommerce div.product form.variations_form table.variations {
    display: block;
    width: 100%;
    margin: 0 0 .9rem;
    border: 0;
}
body.single-product.woocommerce div.product form.variations_form .variations tbody {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .7rem;
}
body.single-product.woocommerce div.product form.variations_form .variations tr {
    display: block;
    min-width: 0;
}
body.single-product.woocommerce div.product form.variations_form .variations th,
body.single-product.woocommerce div.product form.variations_form .variations td {
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    text-align: left;
}
body.single-product.woocommerce div.product form.variations_form .variations th.label {
    margin-bottom: .3rem;
}
body.single-product.woocommerce div.product form.variations_form .variations label {
    color: #5d5a5a;
    font-size: .69rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}
body.single-product.woocommerce div.product form.variations_form .variations select {
    width: 100%;
    min-width: 0;
    height: 2.75rem;
    margin: 0;
    padding: 0 2.15rem 0 .75rem;
    border: 1px solid rgba(24, 22, 22, .2);
    border-radius: 6px;
    background-color: #fff;
    color: var(--tbds-ink);
    font: inherit;
    font-size: .82rem;
    cursor: pointer;
}
body.single-product.woocommerce div.product form.variations_form .variations select:focus {
    border-color: var(--tbds-orange-dark);
    outline: 3px solid rgba(254, 189, 89, .28);
    outline-offset: 1px;
}
body.single-product.woocommerce div.product form.variations_form .reset_variations {
    display: inline-block;
    margin-top: .38rem;
    color: #716d6d;
    font-size: .68rem;
    text-decoration: underline;
    text-decoration-color: var(--tbds-orange);
    text-underline-offset: 2px;
}
body.single-product.woocommerce div.product form.variations_form .single_variation_wrap {
    margin-top: .4rem;
}
body.single-product.woocommerce div.product form.variations_form .woocommerce-variation-price {
    display: none !important;
}
body.single-product.woocommerce div.product form.variations_form .woocommerce-variation-description {
    margin-bottom: .65rem;
    color: #555252;
    font-size: .78rem;
    line-height: 1.45;
}
body.single-product.woocommerce div.product form.variations_form .woocommerce-variation-availability {
    margin-bottom: .65rem;
    font-size: .78rem;
}
body.single-product.woocommerce div.product form.variations_form .woocommerce-variation-add-to-cart {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .55rem .65rem;
    align-items: end;
}
body.single-product.woocommerce div.product form.variations_form .woocommerce-variation-add-to-cart .quantity {
    grid-column: 1 / -1;
    justify-self: start;
}
body.single-product.woocommerce div.product form.variations_form .woocommerce-variation-add-to-cart-disabled {
    opacity: .58;
}
body.single-product .tbds-variant-strip {
    margin-top: 1rem;
    padding: .9rem 0 .75rem;
    border-top: 1px solid rgba(24, 22, 22, .14);
    border-bottom: 1px solid rgba(24, 22, 22, .14);
}
body.single-product .tbds-variant-strip h2 {
    margin: 0 0 .68rem;
    color: #666161;
    font-family: var(--tbds-font);
    font-size: .7rem;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: .08em;
    text-transform: uppercase;
}
body.single-product .tbds-variant-strip h2 strong {
    color: var(--tbds-ink);
    font-weight: 800;
}
body.single-product .tbds-variant-track {
    display: flex;
    gap: .58rem;
    padding: .08rem .08rem .4rem;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: x proximity;
    scrollbar-color: rgba(24, 22, 22, .25) transparent;
    scrollbar-width: thin;
}
body.single-product .tbds-variant-option {
    flex: 0 0 76px;
    min-width: 0;
    color: #555252;
    text-align: center;
    text-decoration: none;
    scroll-snap-align: start;
}
body.single-product .tbds-variant-thumb {
    display: flex;
    width: 76px;
    height: 76px;
    padding: .3rem;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border: 1px solid rgba(24, 22, 22, .16);
    border-radius: 7px;
    background: #f8f7f4;
    transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
body.single-product .tbds-variant-thumb img {
    width: 100%;
    height: 100%;
    margin: 0;
    object-fit: contain;
}
body.single-product .tbds-variant-option-label {
    display: -webkit-box;
    margin-top: .38rem;
    overflow: hidden;
    font-size: .64rem;
    font-weight: 500;
    line-height: 1.25;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
body.single-product .tbds-variant-option:hover .tbds-variant-thumb {
    border-color: var(--tbds-orange-dark);
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(24, 22, 22, .1);
}
body.single-product .tbds-variant-option.is-current .tbds-variant-thumb {
    border: 2px solid var(--tbds-orange);
    box-shadow: 0 0 0 2px rgba(254, 189, 89, .2);
}
body.single-product .tbds-variant-option.is-current .tbds-variant-option-label {
    color: var(--tbds-ink);
    font-weight: 750;
}
body.single-product .tbds-variant-option:focus-visible {
    border-radius: 7px;
    outline: 2px solid var(--tbds-orange-dark);
    outline-offset: 3px;
}
body.single-product .tbds-ask-expert {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr);
    min-height: 116px;
    margin-top: .85rem;
    overflow: hidden;
    border: 1.5px solid var(--tbds-ink);
    border-radius: 8px;
    background: #fff;
}
body.single-product .tbds-ask-expert-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--tbds-ink);
    color: var(--tbds-orange);
}
body.single-product .tbds-ask-expert-icon svg {
    width: 48px;
    height: 48px;
    fill: none;
    stroke: currentColor;
    stroke-width: 4;
    stroke-linecap: round;
    stroke-linejoin: round;
}
body.single-product .tbds-ask-expert-copy {
    padding: .78rem 1rem .72rem;
}
body.single-product .tbds-ask-expert-copy h2 {
    margin: 0 0 .25rem;
    color: var(--tbds-ink);
    font-family: var(--tbds-display);
    font-size: 1.42rem;
    font-weight: 400;
    line-height: 1;
    letter-spacing: .035em;
    text-transform: uppercase;
}
body.single-product .tbds-ask-expert-copy p {
    max-width: 48ch;
    margin: 0;
    color: #555252;
    font-size: .76rem;
    line-height: 1.4;
}
body.single-product .tbds-ask-expert-copy a {
    display: inline-block;
    margin-top: .32rem;
    color: #a5670c;
    font-size: .96rem;
    font-weight: 700;
    letter-spacing: .02em;
}
body.single-product .tbds-ask-expert-copy a:hover {
    color: var(--tbds-ink);
    text-decoration: underline;
    text-decoration-color: var(--tbds-orange);
    text-underline-offset: 3px;
}
body.single-product .tbds-pickup {
    margin-top: .85rem;
    padding: .72rem .85rem;
    border: 1px solid var(--tbds-line);
    border-radius: 7px;
    background: var(--tbds-surface);
}
body.single-product .tbds-pickup-title { font-size: .8rem; font-weight: 700; }
body.single-product .tbds-pickup-title::before { color: var(--tbds-orange-dark); }
body.single-product .tbds-pickup-note,
body.single-product .tbds-pickup-link { font-size: .72rem; }

body.single-product.woocommerce div.product > .tbds-product-sections {
    margin-top: 2.75rem;
}
body.single-product .tbds-tabs {
    justify-content: center;
    gap: clamp(1rem, 5vw, 4.5rem);
    top: 0;
    padding-inline: .75rem;
    border: 0;
    border-radius: 9px;
    background: var(--tbds-ink);
    box-shadow: 0 8px 24px rgba(24, 22, 22, .14);
}
body.single-product .tbds-tabs .tbds-tab {
    margin: 0;
    padding: .85rem .7rem .72rem;
    border-bottom: 3px solid transparent;
    color: rgba(255, 255, 255, .62);
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
}
body.single-product .tbds-tabs .tbds-tab:hover { color: #fff; }
body.single-product .tbds-tabs .tbds-tab.is-active {
    border-bottom-color: var(--tbds-orange);
    color: #fff;
}

body.single-product .tbds-description .tbds-model-line {
    width: auto;
    max-width: 64ch;
    margin: 1.8rem 0 .65rem;
    padding: .08rem 0 .08rem .75rem;
    border: 0;
    border-left: 4px solid var(--tbds-orange);
    background: none;
    font-family: var(--tbds-font);
    font-size: clamp(1.3rem, 1.8vw, 1.7rem);
    font-weight: 700;
    line-height: 1.24;
    letter-spacing: -.015em;
    text-wrap: pretty;
}
body.single-product .tbds-modular-features {
    display: grid;
    gap: .9rem;
    margin-top: 1.25rem;
}
body.single-product .tbds-feature,
body.single-product .tbds-feature.is-reversed {
    min-height: 310px;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 400px);
    gap: clamp(1.5rem, 3vw, 2.75rem);
    padding: 1.25rem;
    border: 1px solid rgba(24, 22, 22, .08);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 8px 28px rgba(24, 22, 22, .045);
}
body.single-product .tbds-feature:nth-child(even) { background: var(--tbds-surface); }
body.single-product .tbds-feature-copy { max-width: 32rem; }
body.single-product .tbds-feature.no-media,
body.single-product .tbds-feature.no-media.is-reversed {
    min-height: 0;
    grid-template-columns: minmax(0, 1fr);
}
body.single-product .tbds-feature.no-media .tbds-feature-copy,
body.single-product .tbds-feature.no-media.is-reversed .tbds-feature-copy {
    width: 100%;
    max-width: 52rem;
    justify-self: start;
}
body.single-product .tbds-feature h3 {
    position: relative;
    margin-bottom: .65rem;
    padding-top: .7rem;
    font-size: clamp(1.2rem, 2vw, 1.55rem);
    font-weight: 750;
    line-height: 1.14;
}
body.single-product .tbds-feature h3::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 34px;
    height: 4px;
    border-radius: 99px;
    background: var(--tbds-orange);
}
body.single-product .tbds-feature-body {
    color: #5a5757;
    font-size: .88rem;
    line-height: 1.57;
}
body.single-product .tbds-feature-media {
    max-width: 400px;
    border: 1px solid rgba(24, 22, 22, .08);
    border-radius: 9px;
    background: #fff;
}

body.single-product .tbds-section-heading {
    max-width: none;
    margin-top: 2.5rem;
    padding-bottom: .55rem;
    border-bottom: 1px solid var(--tbds-line);
    font-family: var(--tbds-display);
    font-size: 2rem;
    font-weight: 400;
    letter-spacing: .035em;
}
body.single-product .tbds-section-heading::after {
    content: "";
    display: block;
    width: 42px;
    height: 4px;
    margin-top: .5rem;
    border-radius: 99px;
    background: var(--tbds-orange);
}
body.single-product .tbds-faq,
body.single-product .tbds-why-buy { max-width: 920px; }
body.single-product .tbds-faq .tbds-disclosure {
    margin-top: .55rem;
    padding: 0 1rem;
    border: 1px solid rgba(24, 22, 22, .1);
    border-radius: 7px;
    background: #fff;
}
body.single-product .tbds-faq .tbds-disclosure > summary { padding-block: .82rem; }
body.single-product .tbds-disclosure .tbds-q { font-size: .9rem; }
body.single-product .tbds-disclosure .tbds-chevron {
    border-color: var(--tbds-orange-dark);
}
body.single-product .tbds-disclosure-body { font-size: .87rem; line-height: 1.58; }
body.single-product .tbds-why-buy { margin-top: 2rem; }
body.single-product .tbds-why-buy .tbds-disclosure {
    border: 0;
    border-left: 4px solid var(--tbds-orange);
    border-radius: 9px;
    background: var(--tbds-ink);
    box-shadow: 0 12px 32px rgba(24, 22, 22, .14);
}
body.single-product .tbds-why-buy .tbds-q,
body.single-product .tbds-why-buy .tbds-disclosure-body,
body.single-product .tbds-why-buy .tbds-why-list strong { color: #fff; }
body.single-product .tbds-why-buy .tbds-disclosure-body { color: rgba(255, 255, 255, .7); }
body.single-product .tbds-tick { background: var(--tbds-orange); color: var(--tbds-ink); }

body.single-product .tbds-video-section {
    width: min(100%, 820px);
    margin-top: 3.5rem;
}
body.single-product .tbds-video-heading {
    margin-top: 0;
    margin-bottom: 1rem;
}
body.single-product .tbds-video {
    overflow: hidden;
    border: 6px solid var(--tbds-ink);
    border-radius: 14px;
    box-shadow: 0 16px 40px rgba(24, 22, 22, .18);
}
body.single-product .tbds-video-btn {
    width: 66px;
    height: 46px;
    border-radius: 9px;
    background: var(--tbds-orange);
}
body.single-product .tbds-extras.productList_category_list_container__hTe3e {
    margin-block: 4rem;
}
body.single-product .tbds-extras.productList_category_list_container__hTe3e > .tbds-scroller-heading > h2 {
    font-family: var(--tbds-display);
    font-size: 2.25rem;
    letter-spacing: .045em;
    text-align: left;
}
body.single-product .tbds-extras [class*="product_product_container__"] {
    flex: 0 0 250px;
    overflow: hidden;
    border: 1px solid rgba(24, 22, 22, .08);
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(24, 22, 22, .08);
    transition: transform .18s ease, box-shadow .18s ease;
}
body.single-product .tbds-extras [class*="product_product_container__"]:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 32px rgba(24, 22, 22, .12);
}
body.single-product .tbds-extras [class*="product_product_image_container__"] {
    background: var(--tbds-surface);
}
body.single-product #footer_footer__zL2zm { border-top: 4px solid var(--tbds-orange); }

@media (max-width: 1100px) {
    body.single-product.woocommerce .tbds-container > div.product {
        grid-template-columns: minmax(0, 1.06fr) minmax(370px, .94fr);
        column-gap: 2rem;
    }
    body.single-product.woocommerce div.product .woocommerce-product-gallery__image img { max-height: 540px; }
    body.single-product.woocommerce div.product .flex-control-thumbs li,
    body.single-product.woocommerce div.product .flex-control-thumbs li.tbds-gallery-video-thumb {
        flex-basis: 90px;
        width: 90px;
    }
    body.single-product.woocommerce div.product .product_title { font-size: 2.3rem; }
    body.single-product .tbds-feature,
    body.single-product .tbds-feature.is-reversed {
        grid-template-columns: minmax(0, 1fr) minmax(260px, 360px);
    }
}

@media (max-width: 900px) {
    body.single-product.woocommerce .tbds-container > div.product {
        width: 100%;
        max-width: 100%;
        grid-template-columns: minmax(0, 1fr) !important;
        row-gap: 0;
    }
    body.single-product .tbds-main { overflow-x: clip; }
    body.single-product.woocommerce div.product > * { min-width: 0; }
    body.single-product.woocommerce div.product > .woocommerce-product-gallery {
        grid-column: 1 !important;
        grid-row: 1 !important;
        width: 100% !important;
        max-width: 100%;
    }
    body.single-product.woocommerce div.product > .summary {
        grid-column: 1 !important;
        grid-row: 2 !important;
        width: 100% !important;
        max-width: 100%;
        padding: 0;
        border: 0;
    }
    body.single-product.woocommerce div.product > .tbds-product-sections,
    body.single-product.woocommerce div.product > .tbds-extras {
        grid-column: 1 !important;
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }
    body.single-product.woocommerce div.product > .tbds-product-sections {
        margin-top: 0 !important;
    }
    body.single-product.woocommerce div.product form.cart,
    body.single-product.woocommerce div.product form.variations_form .woocommerce-variation-add-to-cart {
        width: 100%;
        min-width: 0;
    }
    body.single-product.woocommerce div.product form.cart > *,
    body.single-product.woocommerce div.product form.variations_form .woocommerce-variation-add-to-cart > * {
        min-width: 0;
        max-width: 100%;
    }
    body.single-product.woocommerce div.product .product_title { max-width: none; }
    body.single-product.woocommerce div.product > .woocommerce-product-gallery { padding: .85rem; }
}

@media (max-width: 700px) {
    body.single-product .header_navbar__HyRkS {
        min-height: 62px;
        padding-block: 4px;
    }
    body.single-product .header_navbar_logo__C27Y7 { height: 47px; }
    body.single-product .tbds-main > .tbds-container { padding-inline: .85rem; }
    body.single-product .woocommerce-breadcrumb {
        margin-block: .65rem .9rem;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    body.single-product.woocommerce div.product .product_title {
        max-width: none;
        font-size: 2.15rem;
    }
    body.single-product .tbds-tagline { font-size: .9rem; }
    body.single-product .tbds-key-features li { font-size: .82rem; }
    body.single-product.woocommerce div.product > .woocommerce-product-gallery { border-radius: 11px; }
    body.single-product.woocommerce div.product .woocommerce-product-gallery__image img { max-height: 420px; }
    body.single-product.woocommerce div.product .flex-control-thumbs li {
        flex-basis: 72px;
        width: 72px;
    }
    body.single-product.woocommerce div.product .flex-control-thumbs li.tbds-gallery-video-thumb {
        flex-basis: 72px;
        width: 72px;
    }
    body.single-product .tbds-tabs {
        justify-content: flex-start;
        gap: .4rem;
        border-radius: 7px;
    }
    body.single-product .tbds-tabs .tbds-tab { padding-inline: .8rem; }
    body.single-product.woocommerce div.product form.cart {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    body.single-product.woocommerce div.product form.cart .quantity { grid-column: 1 / -1; }
    body.single-product.woocommerce div.product form.cart button.single_add_to_cart_button { grid-column: 1; }
    body.single-product.woocommerce div.product .tbds-buy-now { grid-column: 2; }
    body.single-product .tbds-description .tbds-model-line {
        max-width: none;
        margin-top: 1.35rem;
        padding-left: .6rem;
        border-left-width: 3px;
        font-size: 1.2rem;
        line-height: 1.3;
    }
    body.single-product .tbds-feature,
    body.single-product .tbds-feature.is-reversed {
        min-height: 0;
        grid-template-columns: 1fr;
        gap: 1.1rem;
        padding: 1rem;
    }
    body.single-product .tbds-feature.is-reversed .tbds-feature-media { order: initial; }
    body.single-product .tbds-feature-media,
    body.single-product .tbds-feature.is-reversed .tbds-feature-media { max-width: none; }
    body.single-product .tbds-section-heading { margin-top: 2rem; }
    body.single-product .tbds-video-section { margin-top: 2.75rem; }
    body.single-product .tbds-video { border-width: 4px; border-radius: 10px; }
    body.single-product .tbds-extras.productList_category_list_container__hTe3e { margin-block: 3rem; }
}

@media (max-width: 520px) {
    body.single-product.woocommerce div.product form.cart { grid-template-columns: 1fr; }
    body.single-product.woocommerce div.product form.cart .quantity,
    body.single-product.woocommerce div.product form.cart button.single_add_to_cart_button,
    body.single-product.woocommerce div.product .tbds-buy-now { grid-column: 1; }
    body.single-product .tbds-ask-expert { grid-template-columns: 68px minmax(0, 1fr); }
    body.single-product .tbds-ask-expert-icon svg { width: 40px; height: 40px; }
    body.single-product .tbds-ask-expert-copy { padding-inline: .8rem; }
    body.single-product .tbds-variant-strip { margin-top: .85rem; }
    body.single-product .tbds-variant-track { gap: .5rem; }
    body.single-product .tbds-variant-option { flex-basis: 68px; }
    body.single-product .tbds-variant-thumb { width: 68px; height: 68px; }
    body.single-product.woocommerce div.product form.variations_form .variations tbody,
    body.single-product.woocommerce div.product form.variations_form .woocommerce-variation-add-to-cart {
        grid-template-columns: 1fr;
    }
    body.single-product.woocommerce div.product form.variations_form .woocommerce-variation-add-to-cart .quantity,
    body.single-product.woocommerce div.product form.variations_form .woocommerce-variation-add-to-cart button.single_add_to_cart_button,
    body.single-product.woocommerce div.product form.variations_form .woocommerce-variation-add-to-cart .tbds-buy-now {
        grid-column: 1;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.single-product *,
    body.single-product *::before,
    body.single-product *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
}

/* -------------------------------------------------------------------------
   Cart and checkout
   ------------------------------------------------------------------------- */
body.woocommerce-cart .tbds-container,
body.woocommerce-checkout .tbds-container {
    max-width: 1240px;
    padding-top: 1.7rem;
    padding-bottom: 4rem;
}
body.woocommerce-cart article > h1,
body.woocommerce-checkout article > h1 {
    margin: 0 0 1.4rem;
    color: var(--tbds-ink);
    font-family: var(--tbds-display);
    font-size: clamp(2.25rem, 4vw, 3.5rem);
    font-weight: 400;
    line-height: .95;
    letter-spacing: .025em;
    text-transform: uppercase;
}
body.woocommerce-cart .wp-block-woocommerce-cart,
body.woocommerce-checkout .wp-block-woocommerce-checkout {
    margin-inline: 0;
}

/* Cart: keep products and checkout action dominant. */
body.woocommerce-cart .wc-block-cart-items {
    border-collapse: separate;
    border-spacing: 0;
}
body.woocommerce-cart .wc-block-cart-items__header th {
    padding: 0 0 .8rem;
    color: #777272;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}
body.woocommerce-cart .wc-block-cart-items__row td {
    padding-top: 1.15rem;
    padding-bottom: 1.15rem;
    border-color: #e4e1dc;
}
body.woocommerce-cart .wc-block-cart-item__image img {
    aspect-ratio: 1;
    border: 1px solid #ece9e4;
    border-radius: 7px;
    background: #fff;
    object-fit: contain;
}
body.woocommerce-cart .wc-block-components-product-name {
    color: var(--tbds-ink);
    font-size: .93rem;
    font-weight: 650;
    line-height: 1.35;
}
body.woocommerce-cart .wc-block-components-product-metadata__description,
body.woocommerce-checkout .wc-block-components-product-metadata__description {
    display: none;
}
body.woocommerce-cart .wc-block-components-product-price,
body.woocommerce-checkout .wc-block-components-product-price {
    color: var(--tbds-ink);
    font-size: .84rem;
    line-height: 1.35;
}
body.woocommerce-cart .wc-block-components-product-badge,
body.woocommerce-checkout .wc-block-components-product-badge {
    width: fit-content;
    margin-top: .35rem;
    padding: .2rem .42rem;
    border: 0;
    border-radius: 4px;
    background: #fff1d8;
    color: #70500f;
    font-size: .65rem;
    font-weight: 700;
}
body.woocommerce-cart .wc-block-components-quantity-selector {
    height: 34px;
    border-color: #cbc7c1;
    border-radius: 5px;
}
body.woocommerce-cart .wc-block-cart-item__remove-link {
    color: #777272 !important;
    font-size: .7rem !important;
    text-decoration: underline !important;
    text-underline-offset: 2px;
}
body.woocommerce-cart .wp-block-woocommerce-cart-totals-block {
    align-self: start;
    overflow: hidden;
    border: 1px solid #dedbd6;
    border-top: 4px solid var(--tbds-amber);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 12px 32px rgba(24, 22, 22, .06);
}
body.woocommerce-cart .wc-block-cart__totals-title {
    padding: 1.15rem 1rem .85rem;
    font-family: var(--tbds-display);
    font-size: 1.45rem;
    font-weight: 400;
    letter-spacing: .04em;
}
body.woocommerce-cart .wc-block-components-totals-wrapper {
    border-color: #e8e5e0;
}
/* Prices are tax-inclusive; a separate GST row suggests it is added again. */
body.woocommerce-cart .wc-block-components-totals-taxes,
body.woocommerce-checkout .wc-block-components-totals-taxes {
    display: none !important;
}
/* Checkout confirms the basket, but presents only the tax-inclusive payable amount. */
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-subtotal-block,
body.woocommerce-checkout .wc-block-components-order-summary-item__individual-prices,
body.woocommerce-checkout .wc-block-components-order-summary-item__total-price,
body.woocommerce-checkout .wc-block-components-order-summary-item .wc-block-components-product-badge,
body.woocommerce-checkout .wc-block-components-order-summary-item > .screen-reader-text {
    display: none !important;
}
body.woocommerce-cart .wc-block-cart__submit-container {
    padding: 1rem;
}
body.woocommerce-cart .wc-block-cart__submit-button,
body.woocommerce-checkout .wc-block-components-checkout-place-order-button {
    min-height: 52px;
    border: 0;
    border-radius: 6px;
    background: var(--tbds-amber);
    color: var(--tbds-ink);
    font-size: .95rem;
    font-weight: 750;
    letter-spacing: .025em;
    text-transform: uppercase;
}
body.woocommerce-cart .wc-block-cart__submit-button:hover,
body.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover {
    background: var(--tbds-ink);
    color: #fff;
}

/* Deliberately quieter than the main cart: compact accessory suggestions. */
.tbds-cart-fbt {
    margin-top: 2rem;
    padding: 1.15rem 1.25rem 1.25rem;
    border: 1px solid #e4e1dc;
    border-radius: 8px;
    background: #faf9f7;
}
.tbds-cart-fbt-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: .85rem;
}
.tbds-cart-fbt-heading p {
    margin: 0 0 .16rem;
    color: #946217;
    font-size: .63rem;
    font-weight: 750;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.tbds-cart-fbt-heading h2 {
    margin: 0;
    color: var(--tbds-ink);
    font-family: var(--tbds-display);
    font-size: 1.42rem;
    font-weight: 400;
    line-height: 1;
    letter-spacing: .025em;
    text-transform: uppercase;
}
.tbds-cart-fbt-heading > span {
    color: #777272;
    font-size: .72rem;
}
.tbds-cart-fbt-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
}
.tbds-cart-fbt-item {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr) auto;
    align-items: center;
    gap: .7rem;
    min-width: 0;
    padding: .55rem;
    border: 1px solid #ebe8e3;
    border-radius: 6px;
    background: #fff;
}
.tbds-cart-fbt-image {
    display: block;
    width: 58px;
    height: 58px;
}
.tbds-cart-fbt-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.tbds-cart-fbt-copy {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: .22rem;
}
.tbds-cart-fbt-copy a {
    overflow: hidden;
    color: var(--tbds-ink);
    font-size: .76rem;
    font-weight: 600;
    line-height: 1.3;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.tbds-cart-fbt-copy > span {
    color: #5f5b57;
    font-size: .72rem;
    font-weight: 650;
}
.tbds-cart-fbt-action {
    padding: .42rem .6rem;
    border: 1px solid var(--tbds-ink);
    border-radius: 4px;
    color: var(--tbds-ink);
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
}
.tbds-cart-fbt-action:hover {
    border-color: var(--tbds-amber);
    background: var(--tbds-amber);
    color: var(--tbds-ink);
}

/* Checkout: clear steps with a stable, easy-to-scan order summary. */
body.woocommerce-checkout .wc-block-components-checkout-step {
    margin: 0 0 .9rem;
    padding: 1.15rem 1.2rem;
    border: 1px solid #e4e1dc;
    border-radius: 8px;
    background: #fff;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-additional-information-block {
    border-left: 4px solid var(--tbds-amber);
    background: #fffaf2;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-additional-information-block .wc-block-components-checkbox {
    margin-bottom: .35rem;
}
body.woocommerce-checkout .wc-block-components-checkout-step__heading {
    margin-bottom: .85rem;
}

/* Live-site legal page: keep the WooCommerce build visually identical. */
.tnc_TandC_header_container__GYEyc {
    width: 100%;
    height: 170px;
    border-radius: 0 0 100% 100%;
    background: var(--charcoal);
    text-align: center;
    color: #fff;
    padding: 50px 0 0;
    margin: 0 0 2rem;
}
.tnc_TandC_header_container__GYEyc h1 {
    margin: 1rem auto;
    font-size: 2.3rem;
    font-family: var(--font-bebas-neue);
}
.tnc_TandC_info_wrapper_container__0Oez7 {
    width: 90%;
    display: flex;
    align-items: flex-start;
    margin: 0 auto 3rem;
}
.tnc_TandC_shortcut_container__Nqusr {
    width: 350px;
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
    padding: 8px;
    border-radius: 8px;
    background: #fff;
    box-shadow: 1px 1px 4px rgb(0 0 0 / 25%);
    position: sticky;
    top: 60px;
    left: 20px;
}
.tnc_TandC_shortcut__D3gi_ {
    display: flex;
    align-items: center;
    height: 40px;
    padding: 5px 20px;
}
.tnc_TandC_shortcut__D3gi_ a { font-size: 1rem; }
.tnc_TandC_shortcut__D3gi_:hover { text-decoration: underline; }
.tnc_TandC_info_container__FHTkm {
    display: flex;
    width: 100%;
    padding: 20px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background: #fff;
    box-shadow: 1px 1px 4px rgb(0 0 0 / 25%);
    margin-left: 1.4rem;
}
.tnc_TandC_info_section__XXaTq {
    width: 100%;
    margin: 1rem 0;
    scroll-margin-top: 90px;
}
.tnc_TandC_info_section__XXaTq p { margin: 1rem 0; line-height: 1.55; }
.tnc_TandC_info_section__XXaTq ul { margin-left: 20px; }
.tnc_TandC_info_section__XXaTq li { margin: .45rem 0; line-height: 1.5; }
.tnc_TandC_section_header__p645W {
    color: var(--tone-black);
    font-family: Inter, sans-serif;
    font-size: 24px;
    font-weight: 700;
    margin: 0 0 .8rem;
    width: 100%;
}
.tnc_TandC_info_section__XXaTq h4 { margin: 1rem 0; }
.tbds-footer-copyright-icon { flex: 0 0 15px; }

@media screen and (max-width: 850px) {
    .tnc_TandC_shortcut_container__Nqusr { width: 35%; }
}
@media screen and (max-width: 700px) {
    .tnc_TandC_shortcut_container__Nqusr { display: none; }
    .tnc_TandC_info_container__FHTkm { margin-left: 0; }
}
body.woocommerce-checkout .wc-block-components-checkout-step__title,
body.woocommerce-checkout .wc-block-components-title {
    color: var(--tbds-ink);
    font-size: 1.08rem;
    font-weight: 700;
}
body.woocommerce-checkout .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-combobox .wc-block-components-combobox-control input {
    min-height: 50px;
    border-color: #c9c5bf;
    border-radius: 6px;
    box-shadow: none;
}
body.woocommerce-checkout .wc-block-components-text-input input:focus,
body.woocommerce-checkout .wc-block-components-combobox .wc-block-components-combobox-control input:focus {
    border-color: #a86e17;
    box-shadow: 0 0 0 1px #a86e17;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-totals-block {
    align-self: start;
    position: sticky;
    top: 1.25rem;
    overflow: hidden;
    border: 1px solid #dedbd6;
    border-top: 4px solid var(--tbds-amber);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 12px 32px rgba(24, 22, 22, .06);
}
body.woocommerce-checkout .wc-block-components-checkout-order-summary__title {
    padding: 1rem 1.1rem;
    font-family: var(--tbds-display);
    font-size: 1.5rem;
    font-weight: 400;
    letter-spacing: .035em;
    text-transform: uppercase;
}
body.woocommerce-checkout .wc-block-components-order-summary-item__image img {
    border: 1px solid #ece9e4;
    border-radius: 6px;
    background: #fff;
    object-fit: contain;
}
body.woocommerce-checkout .wc-block-checkout__actions {
    padding-top: .5rem;
}

@media (max-width: 700px) {
    body.woocommerce-cart .tbds-container,
    body.woocommerce-checkout .tbds-container {
        padding: 1.15rem .85rem 3rem;
    }
    body.woocommerce-cart article > h1,
    body.woocommerce-checkout article > h1 {
        margin-bottom: 1rem;
        font-size: 2.35rem;
    }
    body.woocommerce-cart .wc-block-cart-items__row {
        grid-template-columns: 76px minmax(0, 1fr) !important;
        column-gap: .75rem;
        padding: 1rem 0;
    }
    body.woocommerce-cart .wc-block-cart-item__image {
        grid-column: 1;
        width: 76px !important;
    }
    body.woocommerce-cart .wc-block-cart-item__product {
        grid-column: 2;
        min-width: 0;
    }
    body.woocommerce-cart .wc-block-cart-item__total {
        display: none !important;
    }
    body.woocommerce-cart .wc-block-cart-items__header-total { display: none !important; }
    body.woocommerce-cart .wc-block-cart-item__total-price-and-sale-badge-wrapper {
        align-items: flex-start;
    }
    body.woocommerce-cart .wp-block-woocommerce-cart-totals-block {
        margin-top: 1rem;
    }
    .tbds-cart-fbt {
        margin-top: 1.35rem;
        padding: .9rem;
    }
    .tbds-cart-fbt-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: .35rem;
    }
    .tbds-cart-fbt-grid {
        grid-template-columns: 1fr;
    }
    .tbds-cart-fbt-copy a {
        white-space: normal;
    }
    body.woocommerce-checkout .wc-block-components-checkout-step {
        padding: 1rem;
    }
    body.woocommerce-checkout .wp-block-woocommerce-checkout-totals-block {
        position: static;
        margin-bottom: 1rem;
    }
}

/* ===========================================================================
   Catalogue archives — dense, consistent tiles for working musicians.
   =========================================================================== */

ul.tbds-product-row { list-style: none; }
ul.productList_product_list_container__z__rv { margin: 0; padding: 1.5rem 10px; }
ul.categoryList_product_list_container__TX5oP { margin: 0; padding-left: 0; }
.tbds-card-action > span { display: none; }
.tbds-card-brand {
    margin: 0 0 .42rem;
    color: #8a611f;
    font-size: .67rem;
    font-weight: 600;
    letter-spacing: .105em;
    line-height: 1;
    text-transform: uppercase;
}
.tbds-card-title {
    margin: 0;
    font-family: var(--tbds-font);
    font-size: .96rem;
    font-weight: 600;
    line-height: 1.35;
}
/* Homepage rows use the legacy 250px card shell. Give the image and copy a
   shared inset so neither sits directly against the card edge. */
body.home .home_store_product_container__P_sNc ul.tbds-product-row {
    gap: 6px;
}
body.home .home_store_product_container__P_sNc .tbds-card {
    box-sizing: border-box;
    flex: 0 0 256px;
    width: 256px;
    min-width: 256px;
    margin-right: 0;
    padding: .75rem .75rem 1rem !important;
    gap: .85rem;
    overflow: hidden;
    border: 1px solid rgba(24, 22, 22, .1);
    border-radius: 10px;
}
body.home .home_store_product_container__P_sNc .tbds-card-media {
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    border-radius: 7px;
    background: #f7f6f3;
}
body.home .home_store_product_container__P_sNc .tbds-card-image {
    display: flex;
    width: 100%;
    height: 100%;
    padding: .35rem;
    align-items: center;
    justify-content: center;
}
body.home .home_store_product_container__P_sNc .tbds-card-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}
body.home .home_store_product_container__P_sNc .tbds-card-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-width: 0;
    padding: 0 .15rem;
}
body.home .home_store_product_container__P_sNc .tbds-card-category {
    margin: .5rem 0 0;
    padding: 0;
}
body.home .home_store_product_container__P_sNc .tbds-card-footer {
    margin-top: auto;
    padding-top: .9rem;
}
/* The legacy homepage row selector styles every nested h2 as a 2.5rem row
   heading. Product names are h2s too, so explicitly restore the card scale. */
body.home .home_store_product_container__P_sNc .tbds-card-title {
    display: -webkit-box;
    min-height: 2.7em;
    margin: 0;
    overflow: hidden;
    color: var(--tbds-ink);
    font-family: var(--tbds-font);
    font-size: .96rem;
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: -.012em;
    text-align: left;
    text-wrap: pretty;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
@media (max-width: 600px) {
    body.home .home_store_product_container__P_sNc .tbds-card {
        flex-basis: 242px;
        width: 242px;
        min-width: 242px;
    }
    body.home .home_store_product_container__P_sNc .tbds-card {
        padding: .65rem .65rem .85rem !important;
        gap: .7rem;
    }
    body.home .home_store_product_container__P_sNc .tbds-card-title {
        font-size: .9rem;
    }
}
.tbds-card-price {
    font-size: .76rem;
    font-weight: 400;
    line-height: 1.25;
}
.tbds-card-price-line {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: .28rem .38rem;
}
.tbds-card-price-line + .tbds-card-price-line { margin-top: .32rem; }
.tbds-card-price-label {
    color: rgba(24, 22, 22, .54);
    font-size: .58rem;
    font-weight: 500;
    letter-spacing: .055em;
    white-space: nowrap;
}
.tbds-card-current-price {
    color: var(--tbds-ink);
    font-size: 1.08rem;
    font-weight: 700;
    white-space: nowrap;
}
.tbds-card-mrp-value,
.tbds-card-price del {
    color: rgba(24, 22, 22, .5);
    font-size: .7rem;
    font-weight: 400;
}
.tbds-card-discount {
    padding: .2rem .34rem;
    border-radius: 3px;
    background: rgba(254, 189, 89, .42);
    color: var(--tbds-ink);
    font-size: .6rem;
    font-weight: 650;
    line-height: 1;
    white-space: nowrap;
}

/* The same card partial is used inside product-page scrollers. Keep the
   catalogue hierarchy intact instead of inheriting the scroller's display H2. */
body.single-product .tbds-extras .tbds-card-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-width: 0;
    padding: .85rem .9rem .9rem;
}
body.single-product .tbds-extras .tbds-card-title {
    display: -webkit-box;
    min-height: 2.7em;
    margin: 0;
    overflow: hidden;
    color: var(--tbds-ink);
    font-family: var(--tbds-font);
    font-size: .92rem;
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: -.01em;
    text-align: left;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
body.single-product .tbds-extras .tbds-card-category {
    margin: .5rem 0 0;
    padding: 0;
    overflow: hidden;
    color: rgba(24, 22, 22, .54);
    font-size: .7rem;
    line-height: 1.3;
    text-overflow: ellipsis;
    white-space: nowrap;
}
body.single-product .tbds-extras .tbds-card-footer {
    display: block;
    margin-top: auto;
    padding-top: .9rem;
}
body.single-product .tbds-extras .tbds-card-price {
    min-width: 0;
    margin: 0;
    font-size: .72rem;
    font-weight: 400;
}
body.single-product .tbds-extras .tbds-card-current-price { font-size: 1rem; }
body.single-product .tbds-extras .tbds-card-action,
body.single-product .tbds-extras .tbds-card-view {
    position: static;
    display: inline-flex;
    width: 40px;
    height: 40px;
    min-width: 40px;
    margin: 0;
    padding: 0;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--tbds-ink);
    border-radius: 6px;
    background: var(--tbds-amber);
    color: var(--tbds-ink);
    font-size: 1rem;
}
body.single-product .tbds-extras .tbds-card-action svg { width: 21px; height: 21px; }

body.woocommerce.archive {
    --tbds-catalogue-surface: #f5f4f1;
    --tbds-catalogue-line: rgba(24, 22, 22, .12);
}
body.woocommerce.archive .tbds-main > .tbds-container {
    max-width: 1320px;
    padding-top: .65rem;
    padding-bottom: 5rem;
}
body.woocommerce.archive .woocommerce-breadcrumb {
    margin: 0 0 1rem;
    color: rgba(24, 22, 22, .58);
    font-size: .75rem;
}
body.woocommerce.archive .woocommerce-breadcrumb a {
    color: var(--tbds-ink);
    font-weight: 550;
}
body.woocommerce.archive .woocommerce-products-header__title,
body.woocommerce.archive .page-title {
    margin: 0;
    color: var(--tbds-ink);
    font-family: var(--tbds-display);
    font-size: clamp(2.75rem, 5vw, 4.25rem);
    font-weight: 400;
    line-height: .95;
    letter-spacing: .025em;
    text-transform: uppercase;
}
body.woocommerce.archive .woocommerce-products-header__title::after,
body.woocommerce.archive .page-title::after {
    content: "";
    display: block;
    width: 68px;
    height: 5px;
    margin-top: .7rem;
    background: var(--tbds-amber);
}
body.woocommerce.archive .term-description {
    max-width: none;
    margin: .8rem 0 1.35rem;
    color: rgba(24, 22, 22, .68);
    font-size: .9rem;
    line-height: 1.5;
}
body.woocommerce.archive .tbds-category-description p { margin: 0; }

body.woocommerce.archive .tbds-shop-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 1.75rem 0 1.25rem;
    padding: .75rem .9rem;
    border: 1px solid var(--tbds-catalogue-line);
    border-radius: 8px;
    background: var(--tbds-catalogue-surface);
}

/* Context-aware catalogue filters. */
.tbds-catalogue-layout {
    display: grid;
    grid-template-columns: 250px minmax(0, 1fr);
    gap: 1.35rem;
    align-items: start;
}
.tbds-catalogue-main { min-width: 0; }
body.tbds-filterable-catalogue .tbds-catalogue-main > .tbds-shop-toolbar {
    margin-top: 0;
}
.tbds-filter-panel {
    overflow: hidden;
    border: 1px solid rgba(24, 22, 22, .14);
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 6px 20px rgba(24, 22, 22, .055);
}
.tbds-filter-panel > summary {
    min-height: 46px;
    display: flex;
    align-items: center;
    gap: .55rem;
    padding: .7rem .9rem;
    border-left: 3px solid var(--tbds-amber);
    border-bottom: 1px solid rgba(24, 22, 22, .1);
    background: #f7f6f3;
    color: rgba(24, 22, 22, .78);
    cursor: pointer;
    font-family: var(--tbds-font);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .075em;
    list-style: none;
}
.tbds-filter-panel > summary::-webkit-details-marker { display: none; }
.tbds-filter-panel > summary::after {
    content: '+';
    margin-left: auto;
    color: var(--tbds-amber);
    font-family: var(--tbds-font);
    font-size: .9rem;
    font-weight: 600;
}
.tbds-filter-panel[open] > summary::after { content: '–'; }
.tbds-filter-count {
    min-width: 21px;
    height: 21px;
    padding: 0 .32rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 20px;
    background: var(--tbds-amber);
    color: var(--tbds-ink);
    font-family: var(--tbds-font);
    font-size: .67rem;
    font-weight: 700;
}
.tbds-filter-form {
    padding: .25rem 1rem 1rem;
}
.tbds-filter-group {
    margin: 0;
    padding: .95rem 0;
    border: 0;
    border-bottom: 1px solid rgba(24, 22, 22, .1);
}
.tbds-filter-group legend {
    width: 100%;
    margin: 0 0 .68rem;
    padding: 0;
    color: var(--tbds-ink);
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .035em;
    text-transform: uppercase;
}
.tbds-filter-options {
    display: grid;
    gap: .42rem;
}
.tbds-filter-options label {
    display: grid;
    grid-template-columns: 17px minmax(0, 1fr) auto;
    align-items: center;
    gap: .48rem;
    margin: 0;
    color: rgba(24, 22, 22, .78);
    font-size: .78rem;
    font-weight: 450;
    line-height: 1.3;
    cursor: pointer;
}
.tbds-filter-options input[type='checkbox'] {
    width: 16px;
    height: 16px;
    margin: 0;
    accent-color: var(--tbds-amber);
}
.tbds-filter-options small {
    color: rgba(24, 22, 22, .42);
    font-size: .66rem;
}
.tbds-price-inputs {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: end;
    gap: .35rem;
}
.tbds-price-inputs label > span:first-child {
    display: block;
    margin-bottom: .28rem;
    color: rgba(24, 22, 22, .5);
    font-size: .61rem;
}
.tbds-price-field {
    height: 36px;
    display: flex;
    align-items: center;
    border: 1px solid rgba(24, 22, 22, .18);
    border-radius: 5px;
    background: #fff;
}
.tbds-price-field b {
    padding-left: .45rem;
    color: rgba(24, 22, 22, .55);
    font-size: .72rem;
    font-weight: 500;
}
.tbds-price-field input {
    width: 100%;
    min-width: 0;
    height: 34px;
    padding: 0 .35rem;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--tbds-ink);
    font: 500 .72rem/1 var(--tbds-font);
}
.tbds-price-field:focus-within {
    border-color: var(--tbds-amber);
    box-shadow: 0 0 0 2px rgba(254, 189, 89, .28);
}
.tbds-filter-actions {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding-top: 1rem;
}
.tbds-filter-actions button {
    min-height: 39px;
    padding: .65rem .85rem;
    border: 1px solid var(--tbds-ink);
    border-radius: 5px;
    background: var(--tbds-amber);
    color: var(--tbds-ink);
    font-size: .72rem;
    font-weight: 700;
    cursor: pointer;
}
.tbds-filter-actions button:hover { background: #fff; }
.tbds-filter-actions a {
    color: var(--tbds-ink);
    font-size: .69rem;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.tbds-filter-no-results {
    width: min(100%, 420px);
    margin: 1.25rem 0;
}
.tbds-filterable-catalogue .tbds-catalogue-main ul.products {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
@media (min-width: 1540px) {
    .tbds-catalogue-layout { grid-template-columns: 265px minmax(0, 1fr); }
    .tbds-filterable-catalogue .tbds-catalogue-main ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 980px) {
    .tbds-catalogue-layout { grid-template-columns: 220px minmax(0, 1fr); gap: 1rem; }
    .tbds-filterable-catalogue .tbds-catalogue-main ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    .tbds-catalogue-layout { display: block; }
    .tbds-catalogue-filters { margin-bottom: .85rem; }
    .tbds-filter-panel > summary { min-height: 44px; }
}
body.woocommerce.archive .tbds-shop-toolbar::before,
body.woocommerce.archive .tbds-shop-toolbar::after { display: none; }
body.woocommerce.archive .woocommerce-result-count,
body.woocommerce.archive .woocommerce-ordering {
    float: none;
    margin: 0;
}
body.woocommerce.archive .woocommerce-result-count {
    color: rgba(24, 22, 22, .66);
    font-size: .78rem;
    font-weight: 500;
    letter-spacing: .04em;
    text-transform: uppercase;
}
body.woocommerce.archive .woocommerce-ordering select {
    min-width: 190px;
    height: 40px;
    padding: 0 2.25rem 0 .85rem;
    border: 1px solid rgba(24, 22, 22, .24);
    border-radius: 6px;
    background-color: #fff;
    color: var(--tbds-ink);
    font: 500 .78rem/1 var(--tbds-font);
    cursor: pointer;
}
body.woocommerce.archive .woocommerce-ordering select:focus-visible {
    outline: 3px solid rgba(254, 189, 89, .48);
    outline-offset: 1px;
}

body.woocommerce.archive ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.35rem;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none;
}
body.woocommerce.archive ul.products::before,
body.woocommerce.archive ul.products::after { display: none !important; }
body.woocommerce.archive ul.products li.product.tbds-card {
    float: none !important;
    width: auto !important;
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--tbds-catalogue-line);
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 7px 22px rgba(24, 22, 22, .065);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
body.woocommerce.archive ul.products li.product.tbds-card:hover {
    transform: translateY(-4px);
    border-color: rgba(24, 22, 22, .22);
    box-shadow: 0 16px 36px rgba(24, 22, 22, .12);
}

/* The carried-over Next.js stylesheet hard-codes
   .product_product_image_container to a fixed 250x250 box. That is invisible
   while the grid track is wider than 250px, but at 2-up mobile the track is
   ~168px: the square then overflowed its card, and overflow:hidden on the card
   cropped ~41px off each side of the product image. Every tile on the site
   carries that legacy class, so the override is global rather than per-screen.
   (0,2,0) beats the single-class legacy rule wherever a card appears. */
.tbds-card .tbds-card-media {
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
}

body.woocommerce.archive .tbds-card-media {
    position: relative;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: var(--tbds-catalogue-surface);
}
body.woocommerce.archive .tbds-card-image {
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    padding: .7rem;
}
body.woocommerce.archive ul.products li.product .tbds-card-image img {
    width: 100%;
    height: 100%;
    margin: 0;
    object-fit: contain;
    image-rendering: auto;
    mix-blend-mode: multiply;
    transition: transform .28s ease;
}
body.woocommerce.archive ul.products li.product:hover .tbds-card-image img {
    transform: scale(1.035);
}
body.woocommerce.archive .tbds-card-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: .9rem 1rem 1rem;
}
body.woocommerce.archive .tbds-card-brand {
    margin: 0 0 .42rem;
    color: #8a611f;
    font-size: .67rem;
    font-weight: 600;
    letter-spacing: .105em;
    line-height: 1;
    text-transform: uppercase;
}
body.woocommerce.archive .tbds-card-title-link { color: var(--tbds-ink); }
body.woocommerce.archive ul.products li.product .tbds-card-title {
    display: -webkit-box;
    min-height: 2.7em;
    margin: 0;
    overflow: hidden;
    color: var(--tbds-ink);
    font-family: var(--tbds-font);
    font-size: .96rem;
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: -.012em;
    text-wrap: pretty;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
body.woocommerce.archive .tbds-card-title-link:hover .tbds-card-title {
    text-decoration: underline;
    text-decoration-color: var(--tbds-amber);
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
}
body.woocommerce.archive .tbds-card-category {
    display: block;
    margin: .55rem 0 0;
    overflow: hidden;
    color: rgba(24, 22, 22, .54);
    font-size: .72rem;
    line-height: 1.3;
    text-overflow: ellipsis;
    white-space: nowrap;
}
body.woocommerce.archive .tbds-card-rating {
    display: flex;
    align-items: center;
    gap: .25rem;
    margin-top: .62rem;
    color: var(--tbds-ink);
    font-size: .72rem;
}
body.woocommerce.archive .tbds-card-rating > span:first-child { color: #a66b12; }
body.woocommerce.archive .tbds-card-rating strong { font-weight: 600; }
body.woocommerce.archive .tbds-card-review-count {
    margin-left: .15rem;
    color: rgba(24, 22, 22, .5);
}
body.woocommerce.archive .tbds-card-footer {
    display: block;
    margin-top: auto;
    padding-top: 1.1rem;
}
body.woocommerce.archive ul.products li.product .tbds-card-price {
    min-width: 0;
    margin: 0;
    color: var(--tbds-ink);
    font-size: .76rem;
    font-weight: 400;
    line-height: 1.25;
}
body.woocommerce.archive .tbds-card-price-line {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: .28rem .38rem;
}
body.woocommerce.archive .tbds-card-price-line + .tbds-card-price-line { margin-top: .32rem; }
body.woocommerce.archive .tbds-card-price-label {
    color: rgba(24, 22, 22, .54);
    font-size: .58rem;
    font-weight: 500;
    letter-spacing: .055em;
    white-space: nowrap;
}
body.woocommerce.archive .tbds-card-current-price {
    color: var(--tbds-ink);
    font-size: 1.08rem;
    font-weight: 700;
    white-space: nowrap;
}
body.woocommerce.archive .tbds-card-mrp-value {
    color: rgba(24, 22, 22, .55);
    font-size: .7rem;
}
body.woocommerce.archive ul.products li.product .tbds-card-price del {
    display: inline;
    margin: 0;
    color: rgba(24, 22, 22, .48);
    font-size: .7rem;
    font-weight: 400;
    opacity: 1;
}
body.woocommerce.archive .tbds-card-discount {
    padding: .2rem .34rem;
    border-radius: 3px;
    background: rgba(254, 189, 89, .42);
    color: var(--tbds-ink);
    font-size: .6rem;
    font-weight: 650;
    line-height: 1;
    white-space: nowrap;
}
body.woocommerce.archive ul.products li.product .tbds-card-price ins {
    text-decoration: none;
}
body.woocommerce.archive .tbds-card-action,
body.woocommerce.archive .tbds-card-view {
    position: static;
    width: 44px;
    height: 44px;
    min-width: 44px;
    margin: 0;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--tbds-ink);
    border-radius: 6px;
    background: var(--tbds-amber);
    color: var(--tbds-ink);
    font-size: 1rem;
    box-shadow: none;
    transition: background .16s ease, color .16s ease, transform .16s ease;
}
body.woocommerce.archive .tbds-card-action svg { width: 23px; height: 23px; }
body.woocommerce.archive .tbds-card-action:hover,
body.woocommerce.archive .tbds-card-action:focus-visible,
body.woocommerce.archive .tbds-card-view:hover,
body.woocommerce.archive .tbds-card-view:focus-visible {
    background: var(--tbds-ink);
    color: #fff;
    transform: translateY(-1px);
}
body.woocommerce.archive .tbds-card-action:focus-visible,
body.woocommerce.archive .tbds-card-view:focus-visible {
    outline: 3px solid rgba(254, 189, 89, .5);
    outline-offset: 2px;
}
body.woocommerce.archive .tbds-card-view > span {
    display: block;
    white-space: nowrap;
}
body.woocommerce.archive .tbds-card-view {
    width: auto;
    padding-inline: .72rem;
    font-size: .66rem;
    font-weight: 650;
    letter-spacing: .035em;
}
body.woocommerce.archive ul.products li.product a.added_to_cart {
    grid-column: 1 / -1;
    margin-top: .5rem;
    color: var(--tbds-ink);
    font-size: .7rem;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}

body.woocommerce.archive .woocommerce-pagination { margin-top: 2.5rem; }
body.woocommerce.archive .woocommerce-pagination ul.page-numbers {
    overflow: hidden;
    border: 1px solid var(--tbds-catalogue-line);
    border-radius: 7px;
}
body.woocommerce.archive .woocommerce-pagination ul.page-numbers li { border-color: var(--tbds-catalogue-line); }
body.woocommerce.archive .woocommerce-pagination .page-numbers a,
body.woocommerce.archive .woocommerce-pagination .page-numbers span {
    min-width: 42px;
    padding: .75rem;
    color: var(--tbds-ink);
    font-weight: 700;
}
body.woocommerce.archive .woocommerce-pagination .page-numbers .current,
body.woocommerce.archive .woocommerce-pagination .page-numbers a:hover {
    background: var(--tbds-amber);
    color: var(--tbds-ink);
}

@media (max-width: 1080px) {
    body.woocommerce.archive ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    body.woocommerce.archive .tbds-main > .tbds-container { padding-inline: .85rem; }
    body.woocommerce.archive .tbds-shop-toolbar {
        align-items: stretch;
        flex-direction: column;
    }
    body.woocommerce.archive .woocommerce-ordering select { width: 100%; }
    body.woocommerce.archive ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .75rem;
    }
    body.woocommerce.archive .tbds-card-body { padding: .8rem; }
    body.woocommerce.archive ul.products li.product .tbds-card-title {
        min-height: 3.9em;
        font-size: .86rem;
        -webkit-line-clamp: 3;
    }
    body.woocommerce.archive .tbds-card-category { font-size: .66rem; }
    body.woocommerce.archive .tbds-card-footer {
        align-items: end;
        gap: .45rem;
        padding-top: .8rem;
    }
    body.woocommerce.archive ul.products li.product .tbds-card-price { font-size: .7rem; }
    body.woocommerce.archive .tbds-card-current-price { font-size: .96rem; }
    body.woocommerce.archive .tbds-card-price-label { font-size: .53rem; }
    body.woocommerce.archive .tbds-card-action,
    body.woocommerce.archive .tbds-card-view {
        width: 40px;
        height: 40px;
        min-width: 40px;
    }
    body.woocommerce.archive .tbds-card-view {
        width: auto;
        padding-inline: .55rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.woocommerce.archive *,
    body.woocommerce.archive *::before,
    body.woocommerce.archive *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
}

/* Keep long purchase panels from pushing the description below empty gallery space. */
@media (min-width: 901px) {
    body.single-product.woocommerce div.product > .summary {
        max-height: min(760px, calc(100vh - 2rem));
        max-height: min(760px, calc(100dvh - 2rem));
        overflow-y: auto;
        overscroll-behavior-y: auto;
        padding-right: .7rem;
        scrollbar-width: thin;
        scrollbar-color: rgba(24, 22, 22, .25) transparent;
    }
    body.single-product.woocommerce div.product > .summary::-webkit-scrollbar {
        width: 7px;
    }
    body.single-product.woocommerce div.product > .summary::-webkit-scrollbar-track {
        background: transparent;
    }
    body.single-product.woocommerce div.product > .summary::-webkit-scrollbar-thumb {
        border-radius: 999px;
        background: rgba(24, 22, 22, .22);
    }
    body.single-product.woocommerce div.product > .summary::-webkit-scrollbar-thumb:hover {
        background: var(--tbds-orange-dark);
    }
}
/* TBDS mobile navigation refresh 2026-09-14 */
.header_hamburger_menu__4_ipW {
    appearance: none;
    -webkit-appearance: none;
    display: none;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--tbds-white);
    line-height: 0;
}
.header_hamburger_menu__4_ipW svg {
    display: block;
    width: 24px;
    height: 24px;
    overflow: visible;
    color: inherit;
}
.header_hamburger_menu__4_ipW svg path { fill: currentColor; }
.header_mobile_nav_close_icon__XMiP_ svg { display: block; width: 1em; height: 1em; }

/* Mobile menu, replacing the React drawer behaviour.
   The legacy Next.js CSS parks this drawer at left:-300px and slides it in
   with a class of its own, .header_show_mobile_navbar___XGwk; our JS toggles
   .is-open instead. This block used to map .is-open to display:block and
   nothing else, so the drawer was displayed but still sitting 300px off the
   left edge - tapping the burger appeared to do nothing at all. .is-open has
   to move it too; the legacy `transition: left .4s linear` does the slide. */
.header_mobile_navbar__9Dosk { display: none; }
.header_mobile_navbar__9Dosk.is-open { display: block; left: 0; }
body.tbds-menu-open { overflow: hidden; }
/* The burger is hidden above 1000px, so the drawer has to be gone above it
   too. Displayed, it sat off-screen with 50+ links still in the tab order,
   and a drawer opened on a narrow window stranded itself open on resize. */
@media (min-width: 1024px) {
    .header_mobile_navbar__9Dosk,
    .header_mobile_navbar__9Dosk.is-open { display: none; }
}

/* Mobile navigation: a compact, instrument-panel-inspired TBDS drawer. */
@media (max-width: 1023px) {
    .header_hamburger_menu__4_ipW {
        display: inline-flex;
        flex: 0 0 42px;
        width: 42px;
        height: 42px;
        border: 1px solid rgba(255, 255, 255, .18);
        border-radius: 9px;
        background: rgba(255, 255, 255, .055);
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08);
        transition: border-color .18s ease, background .18s ease, transform .18s ease;
    }
    .header_hamburger_menu__4_ipW:hover,
    .header_hamburger_menu__4_ipW:focus-visible {
        border-color: var(--tbds-amber);
        background: rgba(254, 189, 89, .12);
        outline: none;
    }
    .header_hamburger_menu__4_ipW:active { transform: scale(.96); }

    .header_mobile_navbar__9Dosk {
        display: block;
        visibility: hidden;
        left: 0;
        width: min(86vw, 340px);
        height: 100dvh;
        padding: 4.6rem 1.15rem 1.25rem;
        overflow: hidden;
        border-right: 3px solid var(--tbds-amber);
        background:
            radial-gradient(circle at 12% 0, rgba(254, 189, 89, .14), transparent 28%),
            linear-gradient(155deg, #211f1f 0%, var(--tbds-ink) 48%, #0d0c0c 100%);
        box-shadow: 18px 0 48px rgba(0, 0, 0, .36);
        text-align: left;
        transform: translateX(-105%);
        transition: transform .28s cubic-bezier(.22, .75, .2, 1), visibility 0s linear .28s;
        pointer-events: none;
    }
    .header_mobile_navbar__9Dosk::before {
        content: "THE BANGALORE DRUM SHOP";
        position: absolute;
        top: 1.3rem;
        left: 1.15rem;
        max-width: calc(100% - 5rem);
        color: var(--tbds-amber);
        font-family: var(--tbds-display);
        font-size: 1.05rem;
        letter-spacing: .09em;
        line-height: 1;
    }
    .header_mobile_navbar__9Dosk.is-open {
        display: block;
        visibility: visible;
        left: 0;
        transform: translateX(0);
        transition-delay: 0s;
        pointer-events: auto;
    }
    body.tbds-menu-open::after {
        content: "";
        position: fixed;
        inset: 0;
        z-index: 999;
        background: rgba(0, 0, 0, .48);
        backdrop-filter: blur(2px);
        pointer-events: none;
    }
    .header_mobile_nav_close_icon__XMiP_ {
        top: 1rem;
        right: 1rem;
        display: grid;
        place-items: center;
        width: 36px;
        height: 36px;
        border: 1px solid rgba(254, 189, 89, .52);
        border-radius: 50%;
        background: rgba(254, 189, 89, .1);
        color: var(--tbds-amber);
        font-size: 1.15rem;
    }
    .header_mobile_links__Y0zPd {
        gap: .05rem;
        padding: .2rem .4rem 0 0;
        scrollbar-color: var(--tbds-amber) transparent;
    }
    .header_mobile_links__Y0zPd::-webkit-scrollbar { width: 5px; }
    .header_mobile_links__Y0zPd::-webkit-scrollbar-track { background: transparent; }
    .header_mobile_links__Y0zPd::-webkit-scrollbar-thumb {
        border: 0;
        border-radius: 999px;
        background: var(--tbds-amber);
    }
    .header_header_entry__Vu4Oz {
        margin: 0;
        padding: 0;
        border-bottom: 1px solid rgba(255, 255, 255, .11);
    }
    .header_header_entry__Vu4Oz > a,
    .header_header_entry__Vu4Oz > span,
    .header_header_entry__Vu4Oz > p,
    .header_mobile_links__Y0zPd > ul a {
        display: block;
        width: 100%;
        padding: .82rem .25rem;
        color: #fff;
        font-size: .95rem;
        font-weight: 600;
        letter-spacing: .045em;
        line-height: 1.25;
        text-decoration: none;
    }
    .headeer_header_entry__Vu4Oz:first-child {
        border-top: 1px solid rgba(254, 189, 89, .42);
    }
    .header_mobile_links__Y0zPd > ul {
        margin-top: 1.25rem;
        padding-top: .65rem;
        border-top: 1px solid rgba(254, 189, 89, .42);
    }
    .header_mobile_links__Y0zPd > ul a {
        padding: .6rem .25rem !important;
        color: rgba(255, 255, 255, .72);
        font-size: .78rem;
        font-weight: 500;
        letter-spacing: .08em;
    }
    .header_mobile_links__Y0zPd a:hover,
    .header_mobile_links__Y0zPd a:focus-visible {
        color: var(--tbds-amber);
        outline: none;
    }
    .header_header_entry_options__8hkqR {
        padding-left: .55rem;
        border-left: 2px solid rgba(254, 189, 89, .48);
    }
    .header_header_entry_options__8hkqR > a,
    .header_header_entry_options__8hkqR > div {
        border-bottom-color: rgba(255, 255, 255, .08);
    }
}



/* TBDS product carousel card normalization 2026-09-14
 * Keep accessory photography from changing the height of an entire product row. */
body.single-product .tbds-extras .productList_product_list_container__z__rv {
    align-items: stretch;
}
body.single-product .tbds-extras .tbds-card-media {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
}
body.single-product .tbds-extras .tbds-card-image {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}
body.single-product .tbds-extras .tbds-card-image img {
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
    object-fit: contain;
}


/* TBDS_RC_DESCRIPTION_IMAGE_FILL_START
   Recording Custom editorial assets contain oversized blank canvases. Crop only
   that baked-in padding inside rich-description panels; product galleries stay untouched. */
body.single-product .tbds-feature-media img[src*="yamaha-recording-custom-"] {
    transform: scale(4);
    transform-origin: center;
}

body.single-product .tbds-feature-media img[src*="68aac559f477b817af38aba0_"] {
    transform: scale(1.55);
    transform-origin: center;
}
/* TBDS_RC_DESCRIPTION_IMAGE_FILL_END */
