.bd-category-grid,
.bd-products {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(18px, 2.2vw, 28px);
}

.bd-products {
    grid-template-columns: 1fr;
}

.bd-category-card,
.bd-product-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    border: 1px solid var(--bd-border-soft);
    background: var(--bd-surface-panel);
}

.bd-category-card {
    min-height: 100%;
    padding-bottom: 24px;
}

.bd-category-card img {
    width: 100%;
    aspect-ratio: 5 / 4;
    object-fit: cover;
    background: var(--bd-surface);
}

.bd-category-card span {
    display: block;
    margin: 24px 24px 0;
    color: var(--bd-primary);
    font-family: var(--bd-serif);
    font-size: clamp(24px, 3vw, 36px);
    line-height: 1.1;
}

.bd-category-card p {
    margin: 14px 24px 0;
    color: var(--bd-muted);
    font-size: 15px;
    line-height: 1.65;
}

.bd-product-card {
    background: transparent;
    border: 0;
}

.bd-product-card__image {
    display: block;
    overflow: hidden;
    background: var(--bd-surface-low);
}

.bd-product-card__image img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: contain;
    transition: transform var(--bd-duration) var(--bd-ease);
}

.bd-product-card:hover img {
    transform: scale(1.02);
}

.bd-product-card h3 {
    display: -webkit-box;
    min-height: 4.05em;
    overflow: hidden;
    margin-top: 18px;
    font-family: var(--bd-sans);
    font-size: 18px;
    font-weight: 600;
    line-height: 1.35;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.bd-product-card__price {
    margin-top: 8px;
    color: var(--bd-gold-ink);
    font-weight: 700;
}

.bd-product-card__meta {
    margin-top: 8px;
    color: var(--bd-muted);
    font-size: 12px;
    line-height: 1.5;
}

@media (min-width: 520px) {
    .bd-products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 768px) {
    .bd-products {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 1200px) {
    .bd-products {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 780px) {
    .bd-category-grid {
        grid-template-columns: 1fr;
    }
}

.bd-commerce .site-content {
    width: min(var(--bd-content), calc(100% - (var(--bd-gutter) * 2)));
    margin: 0 auto;
    padding: 112px 0 clamp(72px, 9vw, 120px);
}

/* GeneratePress and WooCommerce both ship late, equally-specific layout rules.
 * Keep the project-owned commerce shell authoritative on transactional pages. */
.bd-global-header.bd-commerce.one-container .site-content {
    padding: 112px 0 clamp(72px, 9vw, 120px);
}

.bd-commerce .content-area,
.bd-commerce .site-main,
.bd-commerce .inside-article {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

.bd-commerce .entry-header {
    margin: 0 0 clamp(30px, 5vw, 52px);
}

.bd-commerce .entry-title {
    margin: 0;
    color: var(--bd-primary);
    font-family: var(--bd-serif);
    font-size: clamp(38px, 6vw, 72px);
    font-weight: 600;
    line-height: 1.08;
}

.bd-commerce .woocommerce-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
    margin: 0 0 28px;
    color: var(--bd-muted);
    font: 400 12px/1.4 var(--bd-sans);
    letter-spacing: 0.02em;
}

.bd-commerce .woocommerce-breadcrumb a {
    color: var(--bd-muted);
}

.bd-commerce .woocommerce-breadcrumb a:hover {
    color: var(--bd-gold-ink);
}

.bd-shop-intro {
    max-width: 860px;
    margin-bottom: clamp(34px, 5vw, 58px);
}

.bd-shop-intro h1,
.bd-commerce.woocommerce-shop .woocommerce-products-header__title,
.bd-commerce.tax-product_cat .woocommerce-products-header__title,
.bd-commerce.single-product .product_title {
    margin: 14px 0 0;
    color: var(--bd-primary);
    font-family: var(--bd-serif);
    font-size: clamp(38px, 6vw, 72px);
    font-weight: 600;
    line-height: 1.08;
}

.bd-shop-intro p {
    max-width: 680px;
    margin-top: 18px;
    color: var(--bd-muted);
    font-size: 17px;
    line-height: 1.7;
}

.bd-product-category-guide {
    width: min(860px, 100%);
    margin: clamp(52px, 7vw, 88px) auto 0;
    padding: clamp(28px, 4vw, 48px);
    border: 1px solid var(--bd-border);
    background: var(--bd-surface);
    color: var(--bd-text);
}

.bd-product-category-guide > :first-child {
    margin-top: 0;
}

.bd-product-category-guide > :last-child {
    margin-bottom: 0;
}

.bd-product-category-guide :where(h2, h3) {
    color: var(--bd-primary);
}

.bd-product-category-guide a {
    color: var(--bd-primary) !important;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 0.18em;
}

.bd-product-category-guide a:hover,
.bd-product-category-guide a:focus-visible {
    color: var(--bd-gold-ink) !important;
}

.bd-commerce .woocommerce-result-count,
.bd-commerce .woocommerce-ordering {
    margin-bottom: 28px;
}

.bd-commerce .woocommerce-ordering select,
.bd-commerce input.input-text,
.bd-commerce textarea,
.bd-commerce select {
    min-height: 44px;
    border: 1px solid var(--bd-border);
    background: #fff;
    color: var(--bd-primary);
    padding: 10px 12px;
    font: 400 15px/1.4 var(--bd-sans);
}

.bd-commerce ul.products,
.bd-global-header.bd-commerce.woocommerce .wc-columns-container .products,
.bd-global-header.bd-commerce.woocommerce .related ul.products,
.bd-global-header.bd-commerce.woocommerce .up-sells ul.products {
    display: grid;
    grid-template-columns: 1fr !important;
    gap: clamp(22px, 3vw, 34px);
    margin: 0;
}

@media (min-width: 520px) {
    .bd-commerce ul.products,
    .bd-global-header.bd-commerce.woocommerce .wc-columns-container .products,
    .bd-global-header.bd-commerce.woocommerce .related ul.products,
    .bd-global-header.bd-commerce.woocommerce .up-sells ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 519px) {
    .bd-global-header.bd-commerce.single-product .related ul.products,
    .bd-global-header.bd-commerce.single-product .up-sells ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 16px;
    }
}

@media (min-width: 768px) {
    .bd-commerce ul.products,
    .bd-global-header.bd-commerce.woocommerce .wc-columns-container .products,
    .bd-global-header.bd-commerce.woocommerce .related ul.products,
    .bd-global-header.bd-commerce.woocommerce .up-sells ul.products {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

@media (min-width: 1200px) {
    .bd-commerce ul.products,
    .bd-global-header.bd-commerce.woocommerce .wc-columns-container .products,
    .bd-global-header.bd-commerce.woocommerce .related ul.products,
    .bd-global-header.bd-commerce.woocommerce .up-sells ul.products {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }
}

.bd-commerce.woocommerce-shop .site.grid-container,
.bd-commerce.tax-product_cat .site.grid-container,
.bd-commerce.search .site.grid-container,
.bd-commerce.search-results .site.grid-container {
    width: 100%;
    max-width: none;
}

.bd-commerce.woocommerce-shop .site-content,
.bd-commerce.tax-product_cat .site-content,
.bd-commerce.search .site-content,
.bd-commerce.search-results .site-content {
    width: calc(100% - (var(--bd-gutter) * 2));
    max-width: 1680px;
}

/* Catalogue filters remain inside the full-width GeneratePress commerce shell.
 * The official WooCommerce Product Filters block owns filtering and its mobile
 * dialog; the child theme owns only the surrounding layout and presentation. */
.bd-commerce .bd-catalog-layout {
    display: grid;
    grid-template-columns: 288px minmax(0, 1fr);
    gap: clamp(32px, 3vw, 40px);
    align-items: start;
    width: 100%;
    min-width: 0;
}

.bd-commerce .bd-catalog-layout--single {
    grid-template-columns: 1fr;
}

.bd-commerce .bd-catalog-router-region {
    min-width: 0;
}

.bd-commerce .bd-catalog-router-region.is-loading {
    cursor: progress;
}

.bd-commerce .bd-catalog-router-region[aria-busy="true"] .bd-catalog-results {
    opacity: 0.62;
}

.bd-commerce .bd-catalog-discovery {
    display: grid;
    gap: clamp(20px, 2.4vw, 30px);
    width: 100%;
    min-width: 0;
    margin: 0 0 clamp(24px, 3.5vw, 42px);
    padding-bottom: clamp(20px, 2.5vw, 30px);
    border-bottom: 1px solid var(--bd-border-soft);
}

.bd-commerce .bd-catalog-filters,
.bd-commerce .bd-catalog-results {
    min-width: 0;
}

.bd-commerce .bd-catalog-filters {
    display: grid;
    gap: 24px;
    padding: 22px;
    border: 1px solid var(--bd-border-soft);
    border-radius: 0;
    background: var(--bd-surface);
    box-shadow: none;
}

.bd-commerce .bd-catalog-filters__heading {
    margin: 0 0 12px;
    color: var(--bd-primary);
    font: 700 12px/1.35 var(--bd-sans);
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.bd-commerce .bd-catalog-search {
    margin: 0;
}

.bd-commerce .bd-catalog-search__field {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 44px;
    align-items: stretch;
}

.bd-commerce .bd-catalog-search__input {
    width: 100%;
    min-width: 0;
    min-height: 44px;
    margin: 0;
    border: 1px solid var(--bd-border);
    border-right: 0;
    border-radius: 2px 0 0 2px;
    background: var(--bd-surface-lowest);
    color: var(--bd-primary);
    padding: 10px 12px;
    font: 400 14px/1.4 var(--bd-sans);
}

.bd-commerce .bd-catalog-search__submit {
    display: inline-flex;
    width: 44px;
    min-width: 44px;
    min-height: 44px;
    margin: 0;
    padding: 0;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--bd-primary);
    border-radius: 0 2px 2px 0;
    background: var(--bd-primary);
    color: var(--bd-on-primary);
    box-shadow: none;
}

.bd-commerce .bd-catalog-search__submit:hover {
    border-color: var(--bd-primary-deep);
    background: var(--bd-primary-deep);
    color: var(--bd-on-primary);
}

.bd-commerce .bd-catalog-search__submit svg {
    width: 20px;
    height: 20px;
    fill: currentColor;
}

.bd-commerce .bd-catalog-categories__list {
    display: grid;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.bd-commerce .bd-catalog-categories__item {
    min-width: 0;
    margin: 0;
    border-bottom: 1px solid var(--bd-border-soft);
}

.bd-commerce .bd-catalog-categories__item:first-child {
    border-top: 1px solid var(--bd-border-soft);
}

.bd-commerce .bd-catalog-categories__link {
    display: flex;
    min-height: 44px;
    padding: 9px 10px;
    align-items: center;
    border-left: 2px solid transparent;
    color: var(--bd-primary);
    font: 600 13px/1.4 var(--bd-sans);
    text-decoration: none;
}

.bd-commerce .bd-catalog-categories__link:hover,
.bd-commerce .bd-catalog-categories__link:focus-visible,
.bd-commerce .bd-catalog-categories__link[aria-current="page"],
.bd-commerce .bd-catalog-categories__item.is-current .bd-catalog-categories__link {
    border-left-color: var(--bd-gold);
    background: var(--bd-surface-low);
    color: var(--bd-primary);
}

.bd-commerce .bd-catalog-product-filters,
.bd-commerce .bd-catalog-product-filters .wc-block-product-filters,
.bd-commerce .bd-catalog-product-filters .wc-block-product-filters__overlay,
.bd-commerce .bd-catalog-product-filters .wc-block-product-filters__overlay-wrapper,
.bd-commerce .bd-catalog-product-filters .wc-block-product-filters__overlay-dialog {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    border-radius: 0;
    box-shadow: none;
}

.bd-commerce .bd-catalog-product-filters .wc-block-product-filters {
    --wc-product-filters-background-color: var(--bd-surface);
    --wc-product-filters-text-color: var(--bd-primary);
    --wc-product-filters-overlay-background-color: var(--bd-surface);
    --wc-product-filters-overlay-text-color: var(--bd-primary);
    --wc-product-filter-block-spacing: 22px;
    --wc-product-filter-checkbox-list-option-element: var(--bd-surface-lowest);
    --wc-product-filter-checkbox-list-option-element-border: var(--bd-primary);
    --wc-product-filter-checkbox-list-option-element-selected: var(--bd-primary);
    --wc-product-filter-price-slider: var(--bd-gold);
    --wc-product-filter-price-slider-handle: var(--bd-surface-lowest);
    --wc-product-filter-price-slider-handle-border: var(--bd-primary);
    display: flex;
}

.bd-commerce .bd-catalog-product-filters .wc-block-product-filters__overlay-content {
    gap: 22px;
}

.bd-commerce .bd-catalog-product-filters .wc-block-product-filters__overlay-content > * {
    min-width: 0;
    margin: 0;
}

.bd-commerce .bd-catalog-product-filters :where(
    .wp-block-heading,
    .wc-block-product-filter__title,
    legend
) {
    margin: 0 0 10px;
    color: var(--bd-primary);
    font: 700 12px/1.35 var(--bd-sans);
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.bd-commerce .bd-catalog-product-filters :where(
    .wc-block-product-filter-checkbox-list__items,
    .wc-block-product-filter-removable-chips__items
) {
    margin: 0;
    padding: 0;
}

.bd-commerce .bd-catalog-product-filters .wc-block-product-filter-checkbox-list__item {
    min-width: 0;
    margin: 0;
}

.bd-commerce .bd-catalog-product-filters .wc-block-product-filter-checkbox-list__label {
    display: flex;
    width: 100%;
    min-height: 44px;
    gap: 10px;
    align-items: center;
    color: var(--bd-primary);
    cursor: pointer;
}

.bd-commerce .bd-catalog-product-filters .wc-block-product-filter-checkbox-list__input-wrapper {
    flex: 0 0 auto;
    font-size: 20px;
}

.bd-commerce .bd-catalog-product-filters input[type="checkbox"].wc-block-product-filter-checkbox-list__input {
    border-color: var(--bd-primary);
    background: var(--bd-surface-lowest);
}

.bd-commerce .bd-catalog-product-filters .wc-block-product-filter-checkbox-list__text-wrapper {
    min-width: 0;
    flex: 1 1 auto;
    justify-content: space-between;
    color: var(--bd-primary);
    font: 600 13px/1.4 var(--bd-sans);
}

.bd-commerce .bd-catalog-product-filters :where(
    .wc-block-product-filter-checkbox-list__show-more,
    .wc-block-product-filters__open-overlay,
    .wc-block-product-filters__close-overlay,
    .wc-block-product-filter-removable-chips__remove
) {
    min-width: 44px;
    min-height: 44px;
    border-radius: 2px;
    color: var(--bd-primary);
    box-shadow: none;
}

.bd-commerce .bd-catalog-product-filters .wc-block-product-filter-checkbox-list__show-more {
    width: 100%;
    padding: 9px 0;
    text-align: left;
    text-underline-offset: 0.2em;
}

.bd-commerce .bd-catalog-product-filters .wc-block-product-filter-price-slider__content {
    gap: 10px;
}

.bd-commerce .bd-catalog-product-filters .wc-block-product-filter-price-slider .text input[type="text"] {
    width: 76px;
    max-width: 76px;
    min-height: 44px;
    border-color: var(--bd-border);
    border-radius: 2px;
    background: var(--bd-surface-lowest);
    color: var(--bd-primary);
    padding: 8px;
}

.bd-commerce .bd-catalog-product-filters .wc-block-product-filter-price-slider__range {
    color: var(--bd-gold);
}

.bd-commerce .bd-catalog-product-filters .wc-block-product-filter-price-slider__range {
    margin-block: 22px;
}

.bd-commerce .bd-catalog-product-filters .wc-block-product-filter-price-slider__range input[type="range"]::-webkit-slider-thumb {
    width: 44px;
    height: 44px;
    margin-top: -21px;
    box-sizing: border-box;
    border: 8px solid transparent;
    background: var(--wc-product-filter-price-slider-handle, var(--bd-surface-lowest));
    background-clip: padding-box;
    box-shadow: inset 0 0 0 2px var(--wc-product-filter-price-slider-handle-border, var(--bd-primary));
}

.bd-commerce .bd-catalog-product-filters .wc-block-product-filter-price-slider__range input[type="range"]::-moz-range-thumb {
    width: 44px;
    height: 44px;
    box-sizing: border-box;
    border: 8px solid transparent;
    background: var(--wc-product-filter-price-slider-handle, var(--bd-surface-lowest));
    background-clip: padding-box;
    box-shadow: inset 0 0 0 2px var(--wc-product-filter-price-slider-handle-border, var(--bd-primary));
}

.bd-commerce .bd-catalog-product-filters .wc-block-product-filter-price-slider__range input[type="range"]:focus-visible::-webkit-slider-thumb,
.bd-commerce .bd-catalog-product-filters .wc-block-product-filter-price-slider__range input[type="range"]:focus-visible::-moz-range-thumb {
    outline: 2px solid var(--bd-gold);
    outline-offset: 2px;
}

.bd-commerce .bd-catalog-product-filters .wc-block-product-filter-removable-chips__items {
    gap: 8px;
}

.bd-commerce .bd-catalog-product-filters .wc-block-product-filter-removable-chips__items .wc-block-product-filter-removable-chips__item {
    min-height: 44px;
    border-color: var(--bd-border-soft);
    border-radius: 2px;
    background: var(--bd-surface-lowest);
    color: var(--bd-primary);
    box-shadow: none;
}

.bd-commerce .bd-catalog-product-filters .wp-block-woocommerce-product-filter-clear-button .wp-element-button,
.bd-commerce .bd-catalog-product-filters .wc-block-product-filters__apply {
    display: inline-flex;
    min-height: 44px;
    padding: 10px 16px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--bd-primary);
    border-radius: 2px;
    background: var(--bd-primary);
    color: var(--bd-on-primary);
    font: 700 12px/1.3 var(--bd-sans);
    letter-spacing: 0.06em;
    text-decoration: none;
    text-transform: uppercase;
    box-shadow: none;
}

.bd-commerce .bd-catalog-product-filters .wp-block-woocommerce-product-filter-clear-button .wp-element-button:hover,
.bd-commerce .bd-catalog-product-filters .wp-block-woocommerce-product-filter-clear-button .wp-element-button:focus-visible,
.bd-commerce .bd-catalog-product-filters .wc-block-product-filters__apply:hover,
.bd-commerce .bd-catalog-product-filters .wc-block-product-filters__apply:focus-visible {
    border-color: var(--bd-primary-deep);
    background: var(--bd-primary-deep);
    color: var(--bd-on-primary);
}

.bd-commerce .bd-catalog-filters :where(
    a,
    button,
    input,
    select
):focus-visible {
    outline: 2px solid var(--bd-gold);
    outline-offset: 3px;
}

.bd-commerce .bd-catalog-results {
    container: bd-catalog-results / inline-size;
}

.bd-commerce .bd-catalog-results #wc-column-container {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 24px;
    width: 100%;
    min-width: 0;
    align-items: center;
}

.bd-commerce .bd-catalog-results #wc-column-container > .woocommerce-result-count,
.bd-commerce .bd-catalog-results #wc-column-container > .woocommerce-ordering {
    float: none;
    margin: 0;
}

.bd-commerce .bd-catalog-results #wc-column-container > .woocommerce-result-count {
    grid-column: 1;
    grid-row: 1;
}

.bd-commerce .bd-catalog-results #wc-column-container > .woocommerce-ordering {
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
}

.bd-commerce .bd-catalog-results #wc-column-container > :where(
    ul.products,
    .products,
    .woocommerce-notices-wrapper
) {
    grid-column: 1 / -1;
}

.bd-commerce .bd-catalog-results #wc-column-container ul.products {
    grid-template-columns: 1fr !important;
}

.bd-commerce .bd-catalog-results > .woocommerce-info {
    margin: 0;
}

.bd-commerce .bd-catalog-results > nav.woocommerce-pagination {
    margin-top: clamp(30px, 4vw, 48px);
}

@container bd-catalog-results (min-width: 480px) {
    .bd-commerce .bd-catalog-results #wc-column-container ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@container bd-catalog-results (min-width: 720px) {
    .bd-commerce .bd-catalog-results #wc-column-container ul.products {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

@container bd-catalog-results (min-width: 1040px) {
    .bd-commerce .bd-catalog-results #wc-column-container ul.products {
        grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    }
}

@media (min-width: 1024px) {
    .bd-commerce .bd-catalog-layout {
        grid-template-columns: minmax(280px, 320px) minmax(0, 1fr);
        gap: clamp(28px, 2.6vw, 42px);
    }

    .bd-commerce .bd-catalog-layout--single {
        grid-template-columns: 1fr;
    }

    .bd-commerce .bd-catalog-filters {
        position: sticky;
        top: 92px;
        display: block;
        max-height: calc(100vh - 116px);
        max-height: calc(100dvh - 116px);
        overflow-y: auto;
        overscroll-behavior: contain;
        padding: 22px;
        align-items: start;
        border: 1px solid var(--bd-border-soft);
        background: var(--bd-surface);
    }

    .bd-commerce .bd-catalog-discovery {
        grid-template-columns: minmax(280px, 440px) minmax(0, 1fr);
        align-items: start;
    }

    .bd-commerce .bd-catalog-discovery > .bd-catalog-categories {
        grid-column: 1 / -1;
    }

    .bd-commerce .bd-catalog-discovery > .bd-catalog-search,
    .bd-commerce .bd-catalog-discovery > .bd-catalog-categories,
    .bd-commerce .bd-catalog-product-filters {
        min-width: 0;
    }

    .bd-commerce .bd-catalog-product-filters + .bd-catalog-product-filters {
        margin-top: 22px;
    }

    .bd-commerce .bd-catalog-product-filters,
    .bd-commerce .bd-catalog-product-filters .wc-block-product-filters,
    .bd-commerce .bd-catalog-product-filters .wc-block-product-filters__overlay,
    .bd-commerce .bd-catalog-product-filters .wc-block-product-filters__overlay-wrapper,
    .bd-commerce .bd-catalog-product-filters .wc-block-product-filters__overlay-dialog,
    .bd-commerce .bd-catalog-product-filters .wc-block-product-filters__overlay-content {
        width: 100%;
    }

    .bd-commerce .bd-catalog-product-filters .wc-block-product-filters__overlay-content {
        display: grid;
        gap: 22px;
        overflow: visible;
    }

    .bd-commerce .bd-catalog-categories__list {
        display: grid;
        gap: 0 22px;
        overflow: visible;
    }

    .bd-commerce .bd-catalog-discovery > .bd-catalog-categories .bd-catalog-categories__list {
        grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    }

    .bd-commerce .bd-catalog-product-filters .wc-block-product-filters__overlay-content > * {
        min-width: 0;
    }

    .bd-commerce .bd-catalog-product-filters .wc-block-product-filters__overlay-content {
        align-items: start;
    }

    .bd-commerce .bd-catalog-product-filters .wc-block-product-filter-price-slider .text input[type="text"] {
        width: 96px;
        max-width: 96px;
    }

    .bd-commerce .bd-catalog-results #wc-column-container {
        gap: 20px clamp(18px, 1.4vw, 24px);
    }

    .bd-commerce .bd-catalog-results #wc-column-container ul.products {
        grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
        gap: clamp(16px, 1.35vw, 24px);
    }
}

@media (min-width: 601px) and (max-width: 1023px) {
    .bd-commerce .bd-catalog-layout {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .bd-commerce .bd-catalog-filters {
        gap: 20px;
        padding: 0;
        border: 0;
        background: transparent;
    }

    .bd-commerce .bd-catalog-discovery,
    .bd-commerce .bd-catalog-product-filters {
        grid-column: 1 / -1;
    }

    .bd-commerce .bd-catalog-product-filters .wc-block-product-filters__overlay-content {
        display: block;
    }

    .bd-commerce .bd-catalog-results #wc-column-container ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

}

@media (max-width: 1023px) {
    .bd-commerce .bd-catalog-layout {
        gap: 28px;
    }

    .bd-commerce .bd-catalog-filters {
        gap: 20px;
        padding: 0;
        border: 0;
        background: transparent;
    }

    .bd-commerce .bd-catalog-categories {
        min-width: 0;
    }

    .bd-commerce .bd-catalog-categories__list {
        display: flex;
        gap: 8px;
        padding: 0 0 8px;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scrollbar-gutter: stable;
        scroll-snap-type: inline proximity;
    }

    .bd-commerce .bd-catalog-categories__item,
    .bd-commerce .bd-catalog-categories__item:first-child {
        flex: 0 0 auto;
        border: 0;
        scroll-snap-align: start;
    }

    .bd-commerce .bd-catalog-categories__link {
        min-height: 44px;
        padding: 9px 14px;
        border: 1px solid var(--bd-border-soft);
        border-radius: 2px;
        background: var(--bd-surface-lowest);
        white-space: nowrap;
    }

    .bd-commerce .bd-catalog-categories__link:hover,
    .bd-commerce .bd-catalog-categories__link:focus-visible,
    .bd-commerce .bd-catalog-categories__link[aria-current="page"],
    .bd-commerce .bd-catalog-categories__item.is-current .bd-catalog-categories__link {
        border-color: var(--bd-gold);
        background: var(--bd-surface-low);
    }

    .bd-commerce .bd-catalog-product-filters .wc-block-product-filters {
        display: flex;
        width: 100%;
    }

    .bd-commerce .bd-catalog-product-filters .wc-block-product-filters__open-overlay {
        display: flex !important;
        width: 100%;
        min-height: 44px;
        padding: 10px 14px;
        justify-content: center;
        border: 1px solid var(--bd-primary);
        background: var(--bd-primary);
        color: var(--bd-on-primary);
        font: 700 12px/1.3 var(--bd-sans);
        letter-spacing: 0.08em;
        text-transform: uppercase;
    }

    .bd-commerce .bd-catalog-product-filters .wc-block-product-filters__overlay {
        position: fixed !important;
        inset: 0;
        z-index: 100000;
        width: 100vw;
        height: 100dvh;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity 180ms ease;
    }

    .bd-commerce .bd-catalog-product-filters .wc-block-product-filters.is-overlay-opened .wc-block-product-filters__overlay {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }

    .bd-commerce .bd-catalog-product-filters .wc-block-product-filters__overlay-dialog {
        display: flex;
        flex-direction: column;
        width: 100%;
        height: 100%;
        max-height: 100dvh;
        min-height: 0;
        overflow: hidden;
        background: var(--bd-surface);
        color: var(--bd-primary);
    }

    .bd-commerce .bd-catalog-product-filters .wc-block-product-filters__overlay-header {
        display: flex !important;
        min-height: 64px;
        padding: 10px 16px 0;
        align-items: center;
        border-bottom: 1px solid var(--bd-border-soft);
    }

    .bd-commerce .bd-catalog-product-filters .wc-block-product-filters__close-overlay {
        min-width: 44px;
        min-height: 44px;
        padding: 0;
        justify-content: center;
    }

    .bd-commerce .bd-catalog-product-filters .wc-block-product-filters__overlay-content {
        flex: 1 1 auto;
        min-height: 0;
        overflow-y: auto;
        padding: 20px;
    }

    .bd-commerce .bd-catalog-product-filters .wc-block-product-filters__overlay-footer {
        display: flex !important;
        gap: 12px;
        padding: 16px 20px max(16px, env(safe-area-inset-bottom));
        align-items: center;
        border-top: 1px solid var(--bd-border-soft);
        background: var(--bd-surface);
        box-shadow: none;
    }

    .bd-commerce .bd-catalog-product-filters .wc-block-product-filters__overlay-footer button,
    .bd-commerce .bd-catalog-product-filters .wc-block-product-filters__overlay-footer a,
    .bd-commerce .bd-catalog-product-filters .wc-block-product-filters__apply {
        min-height: 44px;
    }
}

@media (max-width: 600px) {
    .bd-commerce .bd-catalog-layout {
        grid-template-columns: 1fr;
    }

    .bd-commerce .bd-catalog-results #wc-column-container {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .bd-commerce .bd-catalog-results #wc-column-container > .woocommerce-result-count,
    .bd-commerce .bd-catalog-results #wc-column-container > .woocommerce-ordering {
        grid-column: 1;
        justify-self: stretch;
    }

    .bd-commerce .bd-catalog-results #wc-column-container > .woocommerce-result-count {
        grid-row: 1;
    }

    .bd-commerce .bd-catalog-results #wc-column-container > .woocommerce-ordering,
    .bd-commerce .bd-catalog-results #wc-column-container > .woocommerce-ordering select {
        width: 100%;
    }

    .bd-commerce .bd-catalog-results #wc-column-container > .woocommerce-ordering {
        grid-row: 2;
    }

    .bd-commerce .bd-catalog-results #wc-column-container ul.products {
        grid-template-columns: 1fr !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .bd-commerce .bd-catalog-categories__list {
        scroll-behavior: auto;
    }

    .bd-commerce .bd-catalog-product-filters :where(
        .wc-block-product-filters__overlay,
        .wc-block-product-filters__overlay-dialog
    ) {
        transition: none !important;
    }
}

.bd-commerce.woocommerce ul.products::before,
.bd-commerce.woocommerce ul.products::after {
    display: none;
}

.bd-commerce.woocommerce ul.products li.product,
.bd-commerce.woocommerce-page ul.products li.product {
    display: flex;
    float: none;
    width: auto;
    min-width: 0;
    margin: 0;
    padding: 0;
    flex-direction: column;
    border: 1px solid var(--bd-border-soft);
    background: var(--bd-surface-panel);
    box-shadow: none;
}

.bd-commerce ul.products li.product a img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: contain;
    margin: 0;
    background: var(--bd-surface-low);
}

.bd-commerce ul.products li.product .woocommerce-LoopProduct-link,
.bd-commerce ul.products li.product .woocommerce-loop-product__link {
    color: var(--bd-primary);
}

.bd-commerce ul.products li.product .woocommerce-loop-product__title {
    display: -webkit-box;
    min-height: 4.05em;
    overflow: hidden;
    padding: 20px 20px 0;
    color: var(--bd-primary);
    font: 600 18px/1.35 var(--bd-sans);
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.bd-commerce ul.products li.product .bd-product-card__meta {
    margin: 9px 20px 0;
    color: var(--bd-muted);
    font: 600 12px/1.5 var(--bd-sans);
    letter-spacing: 0.03em;
}

.bd-commerce ul.products li.product .price {
    display: block;
    padding: 10px 20px 0;
    color: var(--bd-gold-ink);
    font: 700 16px/1.3 var(--bd-sans);
}

.bd-commerce ul.products li.product .bd-loop-availability {
    min-height: 20px;
    margin: 9px 20px 0;
    color: var(--bd-muted);
    font: 700 11px/1.35 var(--bd-sans);
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.bd-commerce ul.products li.product .bd-loop-availability--out-of-stock {
    color: #8b2e2e;
}

.bd-commerce ul.products li.product .star-rating,
.bd-commerce ul.products li.product .star-rating span,
.bd-commerce ul.products li.product .star-rating strong {
    color: var(--bd-secondary);
}

.bd-commerce.woocommerce nav.woocommerce-pagination ul,
.bd-commerce.woocommerce nav.woocommerce-pagination ul li {
    border-color: var(--bd-border);
}

.bd-commerce.woocommerce nav.woocommerce-pagination ul li a,
.bd-commerce.woocommerce nav.woocommerce-pagination ul li span {
    min-width: 44px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--bd-surface-lowest);
    color: var(--bd-primary);
    font: 700 13px/1 var(--bd-sans);
}

.bd-commerce.woocommerce nav.woocommerce-pagination ul li a:hover,
.bd-commerce.woocommerce nav.woocommerce-pagination ul li a:focus-visible,
.bd-commerce.woocommerce nav.woocommerce-pagination ul li span.current {
    background: var(--bd-primary);
    color: var(--bd-on-primary);
}

.bd-commerce ul.products li.product .button,
.bd-commerce .single_add_to_cart_button,
.bd-commerce .checkout-button,
.bd-commerce button.button,
.bd-commerce a.button,
.bd-commerce input.button {
    border-radius: 0;
    border: 1px solid var(--bd-primary);
    background: var(--bd-primary);
    color: var(--bd-on-primary);
    padding: 13px 18px;
    font: 700 11px/1.2 var(--bd-sans);
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.bd-global-header.bd-commerce.woocommerce-account button.button,
.bd-global-header.bd-commerce.woocommerce-cart button.button,
.bd-global-header.bd-commerce.woocommerce-checkout button.button,
.bd-global-header.bd-commerce.woocommerce-cart a.button,
.bd-global-header.bd-commerce.woocommerce-checkout a.button {
    border-color: var(--bd-primary);
    background: var(--bd-primary);
    color: var(--bd-on-primary);
}

.bd-global-header.bd-commerce :where(.woocommerce-privacy-policy-text, .woocommerce-terms-and-conditions-wrapper) a {
    color: var(--bd-gold-ink);
    text-decoration: underline;
    text-underline-offset: 0.18em;
}

.bd-commerce ul.products li.product .button {
    margin: 18px 20px 22px;
}

.bd-commerce.woocommerce-shop ul.products li.product .woocommerce-loop-product__title,
.bd-commerce.tax-product_cat ul.products li.product .woocommerce-loop-product__title,
.bd-commerce.search ul.products li.product .woocommerce-loop-product__title {
    min-height: 3.9em;
    padding: 16px 16px 0;
    font-size: 15px;
    line-height: 1.3;
}

.bd-commerce.woocommerce-shop ul.products li.product .bd-product-card__meta,
.bd-commerce.tax-product_cat ul.products li.product .bd-product-card__meta,
.bd-commerce.search ul.products li.product .bd-product-card__meta {
    margin: 8px 16px 0;
    font-size: 11px;
    line-height: 1.45;
}

.bd-commerce.woocommerce-shop ul.products li.product .price,
.bd-commerce.tax-product_cat ul.products li.product .price,
.bd-commerce.search ul.products li.product .price {
    padding: 9px 16px 0;
    font-size: 15px;
}

.bd-commerce.woocommerce-shop ul.products li.product .bd-loop-availability,
.bd-commerce.tax-product_cat ul.products li.product .bd-loop-availability,
.bd-commerce.search ul.products li.product .bd-loop-availability {
    margin: 8px 16px 0;
    font-size: 10px;
}

.bd-commerce.woocommerce-shop ul.products li.product .button,
.bd-commerce.tax-product_cat ul.products li.product .button,
.bd-commerce.search ul.products li.product .button {
    min-height: 44px;
    margin: 16px 16px 18px;
    padding-right: 12px;
    padding-left: 12px;
    text-align: center;
}

.bd-commerce ul.products li.product .button:hover,
.bd-commerce .single_add_to_cart_button:hover,
.bd-commerce .checkout-button:hover,
.bd-commerce button.button:hover,
.bd-commerce a.button:hover,
.bd-commerce input.button:hover {
    background: var(--bd-primary-deep);
    border-color: var(--bd-primary-deep);
    color: var(--bd-on-primary);
}

.bd-commerce.single-product div.product .bd-product-top {
    display: grid;
    grid-template-columns: minmax(0, 14fr) minmax(320px, 11fr);
    gap: clamp(34px, 6vw, 82px);
    align-items: start;
}

.bd-commerce.single-product div.product::before,
.bd-commerce.single-product div.product::after {
    display: none;
}

.bd-commerce.single-product div.product .bd-product-top > div.images,
.bd-commerce.single-product div.product .bd-product-top > div.summary {
    float: none;
    width: auto;
}

/* GP Premium's Woo stylesheet is enqueued after the child asset and restores
 * percentage floats. Keep the CSS-grid columns authoritative. Woo initially
 * hides galleries inline until its slider JS runs, so expose the first image
 * immediately while retaining zoom, thumbnails and Photoswipe enhancement. */
.bd-global-header.bd-commerce.single-product.woocommerce-page div.product .bd-product-top > div.images,
.bd-global-header.bd-commerce.single-product.woocommerce-page div.product .bd-product-top > div.summary {
    float: none;
    width: 100%;
    max-width: none;
}

/* GP Premium prints a second, page-specific Woo rule after enqueued assets.
 * The declaration is intentionally important and scoped to the direct grid
 * children so it cannot affect loops, related products or transactional views. */
.bd-global-header.bd-commerce.single-product.woocommerce-page .entry-content > div.product > .bd-product-top > div.images,
.bd-global-header.bd-commerce.single-product.woocommerce-page .entry-content > div.product > .bd-product-top > div.summary {
    float: none !important;
    width: 100% !important;
    max-width: none !important;
    margin-right: 0 !important;
}

.bd-global-header.bd-commerce.single-product.woocommerce-page .entry-content > div.product > .bd-product-top > div.images {
    justify-self: stretch;
}

.bd-global-header.bd-commerce.single-product .woocommerce-product-gallery {
    opacity: 1 !important;
}

/* The Silent Curator gallery: every product image renders as a full,
 * square panel in normal document flow. Desktop stacks the panels
 * vertically with generous breathing room; mobile switches to a
 * horizontal snap-scroll filmstrip (see the max-width query below).
 * Core WooCommerce CSS (woocommerce.css) sets a `width:25%` fallback
 * layout on every image after the first — built for a below-the-fold
 * thumbnail strip when FlexSlider is disabled — so every gallery panel
 * needs an explicit override back to a full-width stacked block. */
.bd-global-header.bd-commerce.single-product .woocommerce-product-gallery__wrapper {
    display: flex;
    flex-direction: column;
    gap: clamp(28px, 3.4vw, 48px);
}

.bd-global-header.bd-commerce.single-product .woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image:nth-child(n+2) {
    display: block;
    width: 100%;
}

.bd-global-header.bd-commerce.single-product .woocommerce-product-gallery__image:first-child {
    position: relative;
}

.bd-commerce.single-product div.product div.images img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: contain;
    background: transparent;
    transition: transform var(--bd-duration-slow) var(--bd-ease);
}

.bd-commerce.single-product div.product div.images .woocommerce-product-gallery__image:hover img {
    transform: none;
}

/* Native thumbnail rail (WooCommerce still renders it for zoom/lightbox
 * bookkeeping) is redundant next to a fully visible image stack. */
.bd-global-header.bd-commerce.single-product .woocommerce-product-gallery .flex-control-thumbs {
    display: none;
}

.bd-gallery-progress {
    display: none;
}

.bd-commerce.single-product .summary .price {
    color: var(--bd-secondary);
    font-family: var(--bd-serif);
    font-size: clamp(26px, 3vw, 38px);
    font-weight: 600;
    line-height: 1.2;
}

.bd-commerce.single-product .woocommerce-product-details__short-description {
    max-width: 56ch;
    color: var(--bd-muted);
    font-size: 16px;
    line-height: 1.7;
}

.bd-commerce.single-product .woocommerce-product-details__short-description p {
    color: inherit;
}

.bd-commerce.single-product .product_title {
    font-size: clamp(36px, 4.4vw, 52px);
    line-height: 1.04;
}

@media (min-width: 981px) {
    .bd-commerce.single-product div.product .bd-product-top > div.summary {
        position: sticky;
        top: 104px;
    }
}

/* Variation table: hide WooCommerce's default label/select rows for the
 * metal-colour attribute (enhanced into swatches by JS) while keeping the
 * table's native structure — and the size <select> — fully intact. */
.bd-commerce.single-product table.variations {
    width: 100%;
    margin: 8px 0 0;
}

.bd-commerce.single-product table.variations tr {
    display: flex;
    flex-direction: column;
    margin-bottom: 24px;
}

.bd-commerce.single-product table.variations tr:last-child {
    margin-bottom: 0;
}

.bd-commerce.single-product table.variations th.label {
    padding: 0 0 12px;
    color: var(--bd-primary);
    font: 700 11px/1.2 var(--bd-sans);
    letter-spacing: 0.16em;
    text-transform: uppercase;
    text-align: left;
}

.bd-commerce.single-product table.variations td.value {
    padding: 0;
}

.bd-commerce.single-product table.variations td.value select {
    width: 100%;
    border: 0;
    border-bottom: 1px solid var(--bd-outline-variant);
    border-radius: 0;
    background: transparent;
    padding: 12px 0;
    color: var(--bd-primary);
    font: 400 15px/1.3 var(--bd-sans);
}

.bd-commerce.single-product table.variations td.value select.bd-visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
    padding: 0;
}

.bd-commerce.single-product table.variations .reset_variations {
    display: inline-block;
    margin-top: 10px;
    color: var(--bd-muted);
    font: 700 10px/1 var(--bd-sans);
    letter-spacing: 0.1em;
    text-decoration: underline;
    text-underline-offset: 3px;
    text-transform: uppercase;
}

/* Metal-colour swatch picker (JS-built, mirrors the native select). */
.bd-swatch-row {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.bd-swatch {
    width: 40px;
    height: 40px;
    min-width: 40px;
    min-height: 40px;
    border: 1px solid var(--bd-border);
    background: transparent;
    padding: 4px;
    cursor: pointer;
    transition: border-color var(--bd-duration-fast) var(--bd-ease);
}

.bd-swatch:hover {
    border-color: var(--bd-outline);
}

.bd-swatch.is-selected {
    border-color: var(--bd-gold-ink);
}

.bd-swatch__chip {
    display: block;
    width: 100%;
    height: 100%;
}

@media (max-width: 680px) {
    .bd-swatch {
        width: 44px;
        height: 44px;
        min-width: 44px;
        min-height: 44px;
        border-radius: 50%;
        padding: 5px;
    }

    .bd-swatch__chip {
        border-radius: 50%;
    }
}

.bd-commerce.woocommerce div.product form.cart .single_add_to_cart_button.button.alt,
.bd-commerce.woocommerce-page div.product form.cart .single_add_to_cart_button.button.alt {
    border-color: var(--bd-primary);
    background: var(--bd-primary);
    color: var(--bd-on-primary);
}

.bd-commerce.woocommerce div.product form.cart .single_add_to_cart_button.button.alt:hover,
.bd-commerce.woocommerce-page div.product form.cart .single_add_to_cart_button.button.alt:hover {
    border-color: var(--bd-primary-deep);
    background: var(--bd-primary-deep);
    color: var(--bd-on-primary);
}

.bd-commerce .woocommerce-tabs {
    grid-column: 1 / -1;
    margin-top: 34px;
}

.bd-commerce.single-product :where(.related, .upsells) {
    grid-column: 1 / -1;
    width: 100%;
    min-width: 0;
}

.bd-commerce .woocommerce-tabs ul.tabs {
    padding: 0;
    border-bottom: 1px solid var(--bd-border);
}

.bd-commerce .woocommerce-tabs ul.tabs li {
    border-radius: 0;
    border-color: var(--bd-border);
    background: var(--bd-surface);
}

.bd-merchant-data ul {
    margin: 16px 0 0;
}

.bd-commerce table.shop_table {
    border-collapse: collapse;
    border-color: var(--bd-border);
    background: #fff;
}

.bd-commerce table.shop_table th,
.bd-commerce table.shop_table td {
    border-color: var(--bd-border);
    padding: 16px;
}

.bd-commerce .cart-collaterals .cart_totals,
.bd-commerce.woocommerce-page .cart-collaterals .cart_totals {
    float: none;
    width: min(460px, 100%);
    margin-left: auto;
}

.bd-commerce .woocommerce-checkout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 0.72fr);
    gap: clamp(28px, 5vw, 64px);
}

.bd-commerce .woocommerce-checkout::before,
.bd-commerce .woocommerce-checkout::after {
    display: none;
}

.bd-commerce #customer_details,
.bd-commerce #order_review_heading,
.bd-commerce #order_review {
    float: none;
    width: auto;
}

.bd-commerce #order_review_heading,
.bd-commerce #order_review {
    grid-column: 2;
}

.bd-commerce #order_review {
    position: sticky;
    top: 104px;
    align-self: start;
}

.bd-commerce #customer_details {
    grid-row: 1 / span 2;
}

.bd-commerce .woocommerce-mini-cart {
    padding: 0;
}

/* GP Premium native sticky add-to-cart, enabled only for supported products. */
.single-product #wc-sticky-cart-panel.add-to-cart-panel {
    border-bottom: 1px solid var(--bd-outline-variant);
    border-radius: 0;
    background: var(--bd-surface);
    color: var(--bd-text);
    box-shadow: none;
}

.single-product #wc-sticky-cart-panel .inside-add-to-cart-panel {
    width: min(var(--bd-content), 100%);
    margin-inline: auto;
}

.single-product #wc-sticky-cart-panel .product-title {
    color: var(--bd-primary);
    font-family: var(--bd-serif);
}

.single-product #wc-sticky-cart-panel :where(.button, input.qty) {
    min-height: 44px;
    border-radius: var(--bd-radius);
}

.single-product #wc-sticky-cart-panel .button {
    border: 1px solid var(--bd-primary);
    background: var(--bd-primary);
    color: var(--bd-on-primary);
}

.single-product #wc-sticky-cart-panel :where(a, button, input):focus-visible {
    outline: 2px solid var(--bd-gold);
    outline-offset: 3px;
}

@media (max-width: 768px) {
    .single-product #wc-sticky-cart-panel.add-to-cart-panel {
        padding: 12px max(16px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
    }

    .single-product #wc-sticky-cart-panel .product-image {
        display: none;
    }

    .single-product #wc-sticky-cart-panel .product-title {
        min-width: 0;
        padding-right: 12px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .single-product #wc-sticky-cart-panel.add-to-cart-panel {
        transition: none !important;
    }
}

@media (max-width: 980px) {
    .bd-commerce.single-product div.product .bd-product-top,
    .bd-commerce .woocommerce-checkout {
        grid-template-columns: 1fr;
    }

    .bd-commerce.single-product div.product .bd-product-top > div.summary {
        position: static;
    }

    .bd-commerce #order_review_heading,
    .bd-commerce #order_review,
    .bd-commerce #customer_details {
        position: static;
        grid-column: auto;
        grid-row: auto;
    }

    /* Mobile gallery: horizontal snap-scroll filmstrip instead of the
     * desktop vertical stack, matching the Stitch mobile reference. */
    body.bd-global-header.bd-commerce.single-product .woocommerce-product-gallery__wrapper {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        gap: 0;
        overflow-x: auto !important;
        overflow-y: hidden;
        scroll-snap-type: x mandatory;
        scroll-behavior: smooth;
        overscroll-behavior-inline: contain;
        touch-action: pan-x;
        scrollbar-width: none;
        margin-inline: calc(-1 * var(--bd-gutter)) !important;
        width: calc(100% + var(--bd-gutter) + var(--bd-gutter)) !important;
        max-width: none !important;
    }

    .bd-global-header.bd-commerce.single-product .woocommerce-product-gallery__wrapper::-webkit-scrollbar {
        display: none;
    }

    .bd-global-header.bd-commerce.single-product .woocommerce-product-gallery__image {
        flex: 0 0 100%;
        width: 100%;
        scroll-snap-align: center;
        padding: 0;
    }

    .bd-commerce.single-product div.product div.images img {
        aspect-ratio: 1 / 1;
    }

    .bd-commerce.single-product div.product form.cart .single_add_to_cart_button.button.alt {
        width: 100%;
        min-width: 0;
    }

    .bd-gallery-progress {
        display: flex;
        width: 72px;
        height: 1px;
        justify-content: center;
        gap: 0;
        margin: 14px auto 0;
        background: color-mix(in srgb, var(--bd-outline-variant) 45%, transparent);
    }

    .bd-gallery-progress__dot {
        flex: 1 1 0;
        height: 1px;
        background: transparent;
        transition: background-color var(--bd-duration) var(--bd-ease);
    }

    .bd-gallery-progress__dot.is-active {
        background: var(--bd-gold-ink);
    }
}

@media (max-width: 680px) {
    .bd-commerce .site-content,
    .bd-global-header.bd-commerce.one-container .site-content {
        padding-top: 92px;
    }

    /* The mobile Stitch composition starts with the media. Keep the
     * breadcrumb navigation available to assistive technology without
     * inserting a visual block between the app bar and gallery. */
    .bd-commerce.single-product .woocommerce-breadcrumb {
        position: absolute;
        width: 1px;
        height: 1px;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
    }

    .bd-commerce table.shop_table th,
    .bd-commerce table.shop_table td {
        padding: 12px;
    }
}

.bd-commerce.woocommerce ul.products li.product,
.bd-commerce.woocommerce-page ul.products li.product {
}

.bd-commerce.woocommerce ul.products li.product:hover,
.bd-commerce.woocommerce-page ul.products li.product:hover {
    border-color: var(--bd-outline-variant);
    background: var(--bd-surface-lowest);
}

.bd-commerce ul.products li.product a img {
    transition: transform var(--bd-duration) var(--bd-ease);
}

.bd-commerce ul.products li.product:hover a img {
    transform: scale(1.02);
}

.bd-commerce span.onsale,
.bd-commerce ul.products li.product .onsale {
    top: 14px;
    right: 14px;
    left: auto;
    min-width: auto;
    min-height: auto;
    border-radius: 0;
    background: var(--bd-secondary);
    color: var(--bd-primary-deep);
    padding: 8px 10px;
    font: 700 10px/1 var(--bd-sans);
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.bd-commerce .woocommerce-message,
.bd-commerce .woocommerce-info,
.bd-commerce .woocommerce-error {
    border-top: 0;
    border-left: 3px solid var(--bd-secondary);
    background: var(--bd-surface-low);
    color: var(--bd-primary);
    font: 400 15px/1.6 var(--bd-sans);
}

.bd-commerce .woocommerce-error {
    border-left-color: #ba1a1a;
}

/* Native Woo notices remain the source of truth. On catalogue and product
 * routes the mini-cart controller moves them into this accessible toast stack;
 * Cart, Checkout and My Account keep their contextual inline notices. */
.bd-commerce-toasts {
    --bd-commerce-toast-top: 88px;
    position: fixed;
    top: var(--bd-commerce-toast-top);
    right: max(16px, env(safe-area-inset-right));
    z-index: 1400;
    display: grid;
    width: min(420px, calc(100vw - 32px));
    max-height: calc(100vh - var(--bd-commerce-toast-top) - 16px);
    max-height: calc(100dvh - var(--bd-commerce-toast-top) - 16px);
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    gap: 12px;
    pointer-events: none;
}

.admin-bar.bd-commerce .bd-commerce-toasts {
    --bd-commerce-toast-top: 120px;
}

.bd-commerce .woocommerce-notices-wrapper:empty {
    display: none;
}

.bd-commerce-toast {
    position: relative;
    box-sizing: border-box;
    width: 100%;
    overflow-wrap: anywhere;
    border: 1px solid var(--bd-outline-variant);
    border-left: 3px solid var(--bd-gold);
    border-radius: var(--bd-radius);
    background: var(--bd-surface);
    color: var(--bd-primary);
    padding: 16px 60px 16px 18px;
    box-shadow: none;
    font: 500 14px/1.55 var(--bd-sans);
    opacity: 1;
    transform: translateY(0);
    transition: opacity 220ms var(--bd-ease), transform 220ms var(--bd-ease);
    pointer-events: auto;
}

.bd-commerce-toast * {
    box-sizing: border-box;
}

.bd-commerce-toast--error {
    border-left-color: #8b2e2e;
}

.bd-commerce-toast.is-preparing,
.bd-commerce-toast.is-leaving {
    opacity: 0;
    transform: translateY(-8px);
}

.bd-commerce-toast__message {
    margin: 0;
    color: var(--bd-primary);
}

.bd-global-header.bd-commerce .bd-commerce-toast > :where(
    .woocommerce-message,
    .woocommerce-info,
    .woocommerce-error
) {
    min-height: 0;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--bd-primary) !important;
    padding: 0 !important;
    box-shadow: none !important;
    font: inherit;
    list-style: none;
}

.bd-global-header.bd-commerce .bd-commerce-toast > :where(
    .woocommerce-message,
    .woocommerce-info,
    .woocommerce-error
)::before {
    display: none !important;
}

.bd-global-header.bd-commerce .bd-commerce-toast .woocommerce-error li {
    margin: 0;
    color: var(--bd-primary);
    padding: 0;
}

.bd-global-header.bd-commerce .bd-commerce-toast :where(
    .bd-commerce-toast__action,
    .woocommerce-error a.button,
    .woocommerce-message a.button,
    .woocommerce-info a.button
),
.bd-global-header.bd-commerce .bd-commerce-toast :where(
    .bd-commerce-toast__action,
    .woocommerce-error a.button,
    .woocommerce-message a.button,
    .woocommerce-info a.button
):visited {
    float: none !important;
    display: flex !important;
    width: max-content;
    max-width: 100%;
    min-height: 44px;
    margin: 12px 0 0 !important;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--bd-primary) !important;
    border-radius: var(--bd-radius) !important;
    background: var(--bd-primary) !important;
    color: var(--bd-on-primary) !important;
    padding: 10px 14px !important;
    font: 700 11px/1.25 var(--bd-sans) !important;
    letter-spacing: 0.1em;
    text-decoration: none !important;
    text-transform: uppercase;
}

.bd-global-header.bd-commerce .bd-commerce-toast :where(
    .bd-commerce-toast__action,
    .woocommerce-error a.button,
    .woocommerce-message a.button,
    .woocommerce-info a.button
):hover,
.bd-global-header.bd-commerce .bd-commerce-toast :where(
    .bd-commerce-toast__action,
    .woocommerce-error a.button,
    .woocommerce-message a.button,
    .woocommerce-info a.button
):focus-visible,
.bd-global-header.bd-commerce .bd-commerce-toast :where(
    .bd-commerce-toast__action,
    .woocommerce-error a.button,
    .woocommerce-message a.button,
    .woocommerce-info a.button
):active {
    border-color: var(--bd-primary-deep) !important;
    background: var(--bd-primary-deep) !important;
    color: var(--bd-on-primary) !important;
}

.bd-global-header.bd-commerce button.bd-commerce-toast__close,
.bd-global-header.bd-commerce button.bd-commerce-toast__close:hover,
.bd-global-header.bd-commerce button.bd-commerce-toast__close:focus-visible,
.bd-global-header.bd-commerce button.bd-commerce-toast__close:active {
    position: absolute;
    top: 8px;
    right: 8px;
    display: inline-grid;
    width: 44px;
    min-width: 44px;
    height: 44px;
    min-height: 44px;
    place-items: center;
    border: 0 !important;
    border-radius: var(--bd-radius) !important;
    background: transparent !important;
    color: var(--bd-primary) !important;
    padding: 0 !important;
    font: 400 24px/1 var(--bd-sans) !important;
    box-shadow: none !important;
}

.bd-global-header.bd-commerce button.bd-commerce-toast__close:hover,
.bd-global-header.bd-commerce button.bd-commerce-toast__close:focus-visible,
.bd-global-header.bd-commerce button.bd-commerce-toast__close:active {
    background: var(--bd-surface-low) !important;
}

@media (max-width: 600px) {
    .bd-commerce-toasts {
        --bd-commerce-toast-top: 80px;
        right: max(16px, env(safe-area-inset-right));
        left: max(16px, env(safe-area-inset-left));
        width: auto;
    }

    .admin-bar.bd-commerce .bd-commerce-toasts {
        --bd-commerce-toast-top: 126px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .bd-commerce.single-product div.product div.images img,
    .bd-commerce-toast,
    .bd-commerce-toast.is-preparing,
    .bd-commerce-toast.is-leaving {
        transform: none;
        transition: none;
    }
}

.bd-commerce.single-product .summary .stock {
    color: var(--bd-primary-container);
    font: 700 11px/1.2 var(--bd-sans);
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.bd-commerce .product_meta {
    display: grid;
    gap: 10px;
    border-top: 1px solid var(--bd-border);
    margin-top: 28px;
    padding-top: 22px;
    color: var(--bd-muted);
    font-size: 14px;
}

.bd-commerce .woocommerce-tabs ul.tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    border-bottom: 0;
    margin: 0 0 28px;
}

.bd-commerce .woocommerce-tabs ul.tabs::before,
.bd-commerce .woocommerce-tabs ul.tabs li::before,
.bd-commerce .woocommerce-tabs ul.tabs li::after {
    display: none;
}

.bd-commerce .woocommerce-tabs ul.tabs li {
    border: 1px solid var(--bd-border);
    background: transparent;
    margin: 0;
    padding: 0;
}

.bd-commerce .woocommerce-tabs ul.tabs li a {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    padding: 12px 16px;
    color: var(--bd-primary);
    font: 700 11px/1 var(--bd-sans);
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.bd-commerce .woocommerce-tabs ul.tabs li.active {
    background: var(--bd-primary);
}

.bd-commerce .woocommerce-tabs ul.tabs li.active a {
    color: var(--bd-on-primary);
}

.bd-commerce.single-product .woocommerce-tabs ul.tabs.bd-accordion__native-tabs {
    display: none;
}

/* Accordion enhancement (JS-enabled): the single-product tabs become
 * expandable sections, matching the Stitch product-detail reference. The
 * native ul.tabs / li markup above stays in the DOM (li hidden inline by
 * the script) so a JS failure falls back to fully working horizontal tabs. */
.bd-commerce.single-product .woocommerce-tabs.bd-accordion {
    margin-top: clamp(48px, 6vw, 80px);
    border-top: 1px solid var(--bd-border);
}

.bd-accordion__item {
    border-bottom: 1px solid var(--bd-border);
}

.bd-accordion__trigger {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 22px 4px;
    background: transparent;
    border: 0;
    color: var(--bd-primary);
    font: 700 11px/1.2 var(--bd-sans);
    letter-spacing: 0.16em;
    text-transform: uppercase;
    text-align: left;
    cursor: pointer;
}

.bd-accordion__trigger:hover {
    color: var(--bd-gold-ink);
}

.bd-accordion__icon {
    position: relative;
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
}

.bd-accordion__icon::before,
.bd-accordion__icon::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    background: currentColor;
    transform: translate(-50%, -50%);
    transition: transform var(--bd-duration) var(--bd-ease);
}

.bd-accordion__icon::before {
    width: 12px;
    height: 1.5px;
}

.bd-accordion__icon::after {
    width: 1.5px;
    height: 12px;
}

.bd-accordion__trigger[aria-expanded="true"] .bd-accordion__icon::after {
    transform: translate(-50%, -50%) rotate(90deg) scale(0);
}

.bd-accordion__item .woocommerce-Tabs-panel {
    padding: 0 4px 26px;
    color: var(--bd-muted);
    font-size: 15px;
    line-height: 1.75;
}

.bd-accordion__item .woocommerce-Tabs-panel[hidden] {
    display: none !important;
}

.bd-accordion__item .woocommerce-Tabs-panel h2 {
    margin: 0 0 14px;
    color: var(--bd-primary);
    font-family: var(--bd-serif);
    font-size: 22px;
}

.bd-commerce :where(.woocommerce-cart-form, .cart-collaterals, .checkout, .woocommerce-checkout, .woocommerce-MyAccount-content, .woocommerce-MyAccount-navigation, .woocommerce-order, .woocommerce-customer-details, .woocommerce-billing-fields, .woocommerce-shipping-fields, .woocommerce-additional-fields, .woocommerce-form, .woocommerce-Reviews, .woocommerce-tabs, .related, .upsells) {
    color: var(--bd-primary);
}

.bd-commerce :where(.woocommerce-cart-form, .cart-collaterals, .checkout, .woocommerce-checkout, .woocommerce-MyAccount-content, .woocommerce-order, .woocommerce-customer-details, .woocommerce-billing-fields, .woocommerce-shipping-fields, .woocommerce-additional-fields, .woocommerce-form, .woocommerce-Reviews, .woocommerce-tabs, .related, .upsells) :where(p, li, td, label, address, small, span) {
    color: var(--bd-muted);
}

.bd-commerce :where(.woocommerce-cart-form, .cart-collaterals, .checkout, .woocommerce-checkout, .woocommerce-MyAccount-content, .woocommerce-order, .woocommerce-customer-details, .woocommerce-billing-fields, .woocommerce-shipping-fields, .woocommerce-additional-fields, .woocommerce-form, .woocommerce-Reviews, .woocommerce-tabs, .related, .upsells) :where(h1, h2, h3, h4, th, strong, legend) {
    color: var(--bd-primary);
}

.bd-commerce :where(input, textarea, select, .select2-selection) {
    background: var(--bd-surface-lowest);
    color: var(--bd-primary);
}

.bd-commerce :where(input::placeholder, textarea::placeholder) {
    color: rgba(66, 72, 68, 0.72);
}

.bd-commerce :where(.quantity .qty, .coupon .input-text) {
    color: var(--bd-primary);
}

.bd-commerce :where(.woocommerce-message, .woocommerce-info, .woocommerce-error) :where(a, .button) {
    color: var(--bd-primary);
}

/* Classic checkout coupon notice. GP Premium outputs a late white link rule;
 * the scoped important override keeps this action readable on the ivory notice
 * background while preserving the gold accent used by the theme. */
.bd-commerce .woocommerce-form-coupon-toggle .showcoupon,
.bd-commerce .woocommerce-form-coupon-toggle .showcoupon:visited {
    color: var(--bd-gold-ink) !important;
    text-decoration: underline;
    text-decoration-color: currentColor;
    text-underline-offset: 0.16em;
}

.bd-commerce .woocommerce-form-coupon-toggle .showcoupon:hover,
.bd-commerce .woocommerce-form-coupon-toggle .showcoupon:focus-visible,
.bd-commerce .woocommerce-form-coupon-toggle .showcoupon:active {
    color: var(--bd-gold) !important;
}

.bd-merchant-data dl {
    display: grid;
    margin: 18px 0 0;
    border-top: 1px solid var(--bd-border);
}

.bd-merchant-data dl div {
    display: grid;
    grid-template-columns: minmax(120px, 0.32fr) minmax(0, 1fr);
    gap: 18px;
    padding: 14px 0;
    border-bottom: 1px solid var(--bd-border);
}

.bd-merchant-data dt {
    color: var(--bd-gold-ink);
    font: 700 10px/1.2 var(--bd-sans);
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.bd-merchant-data dd {
    margin: 0;
}

.bd-commerce table.shop_table {
    border: 1px solid var(--bd-border);
    border-radius: 0;
    background: var(--bd-surface-lowest);
}

.bd-commerce .cart_totals,
.bd-commerce #customer_details,
.bd-commerce #order_review {
    border: 1px solid var(--bd-border);
    background: var(--bd-surface-lowest);
    padding: clamp(18px, 3vw, 28px);
}

.bd-commerce .cart_totals h2,
.bd-commerce .woocommerce-billing-fields h3,
.bd-commerce .woocommerce-shipping-fields h3,
.bd-commerce #order_review_heading {
    color: var(--bd-primary);
    font-family: var(--bd-serif);
    font-weight: 600;
}

.bd-commerce .quantity .qty {
    width: 76px;
    text-align: center;
}

.bd-commerce .coupon {
    display: flex;
    gap: 10px;
}

.bd-commerce .coupon .input-text {
    min-width: min(260px, 100%);
}

/* WooCommerce Blocks: cart is intentionally block-based; these selectors also
 * keep a future checkout-block migration visually compatible. */
.bd-commerce :where(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) {
    --wp--preset--color--contrast: var(--bd-primary);
    --wp--preset--color--base: var(--bd-surface-lowest);
    color: var(--bd-primary);
}

.bd-commerce :where(.wc-block-cart, .wc-block-checkout) {
    margin: 0;
    font-family: var(--bd-sans);
}

.bd-commerce :where(.wc-block-cart__main, .wc-block-cart__sidebar, .wc-block-checkout__main, .wc-block-checkout__sidebar) {
    min-width: 0;
}

.bd-commerce :where(.wc-block-components-sidebar, .wc-block-components-main) {
    box-sizing: border-box;
}

.bd-commerce :where(.wc-block-components-sidebar, .wc-block-components-order-summary, .wc-block-cart__totals-title) {
    color: var(--bd-primary);
}

.bd-commerce :where(.wc-block-components-product-name, .wc-block-components-title, .wc-block-components-checkout-step__title) {
    color: var(--bd-primary);
    font-weight: 600;
}

.bd-commerce :where(.wc-block-components-text-input input, .wc-block-components-textarea, .wc-block-components-combobox-control input, .wc-block-components-form .wc-block-components-select__select) {
    min-height: 48px;
    border-radius: 0;
    border-color: var(--bd-border);
    background: var(--bd-surface-lowest);
    color: var(--bd-primary);
}

.bd-commerce :where(.wc-block-components-button, .wc-block-cart__submit-button) {
    min-height: 48px;
    border-radius: 0;
    border: 1px solid var(--bd-primary);
    background: var(--bd-primary);
    color: var(--bd-on-primary);
    font: 700 11px/1.2 var(--bd-sans);
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

/* The Cart Block renders checkout as a dedicated link rather than the
 * legacy `.checkout-button`. Keep it unmistakable and full-width in the
 * summary column, even when WooCommerce's block stylesheet supplies inline
 * color variables. */
.bd-commerce .wc-block-cart__submit {
    margin-top: 24px;
}

.bd-commerce .wc-block-cart__submit-button,
.bd-commerce .wc-block-cart__submit-button:visited {
    box-sizing: border-box;
    display: flex !important;
    width: 100% !important;
    min-height: 56px;
    margin: 0;
    padding: 16px 24px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--bd-primary) !important;
    border-radius: 0;
    background: var(--bd-primary) !important;
    color: var(--bd-on-primary) !important;
    font: 700 12px/1.25 var(--bd-sans);
    letter-spacing: 0.12em;
    text-align: center;
    text-transform: uppercase;
    text-decoration: none;
}

.bd-commerce .wc-block-cart__submit-button .wc-block-components-button__text {
    color: inherit !important;
}

.bd-commerce .wc-block-cart__submit-button:hover,
.bd-commerce .wc-block-cart__submit-button:focus-visible,
.bd-commerce .wc-block-cart__submit-button:active {
    border-color: var(--bd-primary-deep) !important;
    background: var(--bd-primary-deep) !important;
    color: var(--bd-on-primary) !important;
}

/* Cart and checkout transaction surfaces share the same quiet, editorial
 * treatment as the rest of the storefront. These rules style the public
 * WooCommerce block classes only; totals, shipping and payment behavior stay
 * fully native. */
.bd-commerce :where(.wc-block-cart__sidebar, .wc-block-checkout__sidebar) {
    align-self: start;
    box-sizing: border-box;
    padding: clamp(22px, 3vw, 34px);
    border: 1px solid var(--bd-border);
    background: var(--bd-surface-lowest);
}

.bd-commerce :where(.wc-block-cart__sidebar, .wc-block-checkout__sidebar) :where(
    .wc-block-components-sidebar,
    .wc-block-components-order-summary,
    .wc-block-components-totals-wrapper
) {
    max-width: none;
    margin: 0;
}

.bd-commerce :where(.wc-block-cart__sidebar, .wc-block-checkout__sidebar) :where(
    .wc-block-cart__totals-title,
    .wc-block-components-order-summary__title,
    .wc-block-components-checkout-step__title
) {
    margin: 0 0 18px;
    color: var(--bd-primary);
    font-family: var(--bd-serif);
    font-size: clamp(21px, 2vw, 28px);
    font-weight: 600;
    line-height: 1.15;
}

.bd-commerce :where(.wc-block-cart__sidebar, .wc-block-checkout__sidebar) :where(
    .wc-block-components-totals-item,
    .wc-block-components-totals-shipping,
    .wc-block-components-totals-fee,
    .wc-block-components-totals-discount
) {
    padding-block: 13px;
    border-top: 1px solid var(--bd-border);
}

.bd-commerce :where(.wc-block-cart__sidebar, .wc-block-checkout__sidebar) :where(
    .wc-block-components-totals-item__label,
    .wc-block-components-totals-item__value
) {
    color: var(--bd-primary);
}

.bd-commerce :where(.wc-block-cart-items, .wc-block-checkout__order-summary) {
    border-top: 1px solid var(--bd-border);
    border-bottom: 1px solid var(--bd-border);
}

.bd-commerce .wc-block-cart-item__image img,
.bd-commerce .wc-block-components-order-summary-item__image img {
    border-radius: 0;
    object-fit: contain;
}

.bd-commerce :where(.wc-block-cart-item__product, .wc-block-components-order-summary-item__description) :where(
    .wc-block-components-product-name,
    .wc-block-components-product-price,
    .wc-block-components-product-metadata
) {
    color: var(--bd-primary);
}

.bd-commerce :where(.wc-block-cart__sidebar, .wc-block-checkout__sidebar) :where(
    .wc-block-components-totals-wrapper,
    .wc-block-components-order-summary
) {
    padding-block: 0;
    background: transparent;
}

.bd-commerce :where(.wc-block-components-panel__button, .wc-block-components-totals-coupon__button) {
    min-height: 44px;
    color: var(--bd-primary);
    text-decoration: underline;
    text-underline-offset: 0.16em;
}

.bd-commerce .wc-block-components-totals-coupon__button,
.bd-commerce .wc-block-components-totals-coupon__button:visited {
    color: var(--bd-gold-ink) !important;
}

.bd-commerce .wc-block-components-totals-coupon__button:hover,
.bd-commerce .wc-block-components-totals-coupon__button:focus-visible,
.bd-commerce .wc-block-components-totals-coupon__button:active {
    color: var(--bd-gold) !important;
}

/* Final order/payment action: keep both the classic checkout button and the
 * WooCommerce Checkout Block action on the BigDIAMOND green palette. */
.bd-commerce :where(
    #place_order,
    button[name="woocommerce_checkout_place_order"],
    .wc-block-components-checkout-place-order-button
) {
    min-height: 56px;
    border: 1px solid var(--bd-primary) !important;
    border-radius: 0;
    background: var(--bd-primary) !important;
    color: var(--bd-on-primary) !important;
    font: 700 12px/1.25 var(--bd-sans);
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.bd-commerce :where(
    #place_order,
    button[name="woocommerce_checkout_place_order"],
    .wc-block-components-checkout-place-order-button
):hover,
.bd-commerce :where(
    #place_order,
    button[name="woocommerce_checkout_place_order"],
    .wc-block-components-checkout-place-order-button
):focus-visible,
.bd-commerce :where(
    #place_order,
    button[name="woocommerce_checkout_place_order"],
    .wc-block-components-checkout-place-order-button
):active {
    border-color: var(--bd-primary-deep) !important;
    background: var(--bd-primary-deep) !important;
    color: var(--bd-on-primary) !important;
}

.bd-commerce :where(
    #place_order,
    button[name="woocommerce_checkout_place_order"],
    .wc-block-components-checkout-place-order-button
):disabled,
.bd-commerce :where(
    #place_order,
    button[name="woocommerce_checkout_place_order"],
    .wc-block-components-checkout-place-order-button
).disabled {
    border-color: var(--bd-outline-variant) !important;
    background: var(--bd-outline-variant) !important;
    color: var(--bd-primary) !important;
    opacity: 0.72;
}

@media (min-width: 981px) {
    .bd-commerce :where(.wc-block-cart__sidebar, .wc-block-checkout__sidebar) {
        position: sticky;
        top: 104px;
    }
}

@media (max-width: 980px) {
    .bd-commerce :where(.wc-block-cart__sidebar, .wc-block-checkout__sidebar) {
        position: static;
    }
}

@media (max-width: 600px) {
    .bd-commerce .wc-block-cart__submit-button,
    .bd-commerce .wc-block-cart__submit-button:visited {
        min-height: 52px;
        padding-inline: 16px;
        font-size: 11px;
    }

    .bd-commerce :where(.wc-block-cart__sidebar, .wc-block-checkout__sidebar) {
        padding: 20px;
    }
}

.bd-commerce :where(.wc-block-components-button, .wc-block-cart__submit-button):hover,
.bd-commerce :where(.wc-block-components-button, .wc-block-cart__submit-button):focus-visible {
    border-color: var(--bd-primary-deep);
    background: var(--bd-primary-deep);
    color: var(--bd-on-primary);
}

.bd-commerce :where(.wc-block-cart-items, .wc-block-components-totals-wrapper, .wc-block-components-order-summary) {
    border-color: var(--bd-border);
}

.bd-commerce :where(.wc-block-cart-item__image img, .wc-block-components-order-summary-item__image img) {
    height: auto;
    background: var(--bd-surface-low);
}

.bd-commerce :where(.wc-block-components-validation-error, .wc-block-components-notice-banner) {
    color: var(--bd-primary);
}

/* The empty-cart recommendations still use the legacy wc-block-grid markup.
 * Override transparent link/button colors inherited from the old customizer. */
.bd-global-header.bd-commerce .wp-block-woocommerce-empty-cart-block a:not(.wp-block-button__link),
.bd-global-header.bd-commerce .wc-block-grid__product-link,
.bd-global-header.bd-commerce .wc-block-grid__product-title {
    color: var(--bd-primary);
}

.bd-global-header.bd-commerce .wp-block-woocommerce-empty-cart-block > p a {
    color: var(--bd-gold-ink);
    text-decoration: underline;
    text-underline-offset: 0.18em;
}

.bd-global-header.bd-commerce .wc-block-grid__product-add-to-cart .wp-block-button__link {
    min-height: 44px;
    border: 1px solid var(--bd-primary);
    background: var(--bd-primary);
    color: var(--bd-on-primary);
    align-items: center;
}

.bd-global-header.bd-commerce .wc-block-grid__product-add-to-cart .wp-block-button__link:hover,
.bd-global-header.bd-commerce .wc-block-grid__product-add-to-cart .wp-block-button__link:focus-visible {
    border-color: var(--bd-primary-deep);
    background: var(--bd-primary-deep);
    color: var(--bd-on-primary);
}

@media (max-width: 640px) {
    .bd-commerce .site-content {
        width: calc(100% - 40px);
    }

    .bd-commerce .coupon {
        display: grid;
    }

    .bd-commerce table.shop_table_responsive tr td::before {
        color: var(--bd-gold-ink);
        font: 700 10px/1.2 var(--bd-sans);
        letter-spacing: 0.12em;
        text-transform: uppercase;
    }

    .bd-merchant-data dl div {
        grid-template-columns: 1fr;
        gap: 6px;
    }

    .bd-commerce :where(.wc-block-cart__main, .wc-block-cart__sidebar, .wc-block-checkout__main, .wc-block-checkout__sidebar) {
        width: 100%;
        padding-inline: 0;
    }
}

/* Final ownership layer: accessibility, visible commerce facts and overflow. */
.bd-global-header.bd-commerce {
    overflow-x: clip;
}

.bd-commerce ul.products li.product,
.bd-commerce .wc-product-image,
.bd-commerce .inside-wc-product-image,
.bd-commerce :where(.related, .upsells) {
    max-width: 100%;
    overflow: hidden;
}

.bd-commerce .wc-has-gallery .secondary-image,
.bd-commerce .wc-has-gallery picture.secondary-image {
    left: 0;
    width: 100%;
    max-width: 100%;
    height: 100%;
    transform: none;
}

.bd-commerce .wc-has-gallery .secondary-image img,
.bd-commerce .wc-has-gallery picture.secondary-image img {
    width: 100%;
    max-width: 100%;
    height: 100%;
    object-fit: contain;
}

.bd-global-header.bd-commerce.single-product :where(.summary, .product_meta, .woocommerce-product-details__short-description) a:not(.button),
.bd-global-header.bd-commerce.woocommerce-account :where(.lost_password, .woocommerce-LostPassword, .woocommerce-form-login, .woocommerce-MyAccount-content) a:not(.button) {
    color: var(--bd-primary) !important;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.bd-global-header.bd-commerce.single-product .woocommerce-product-gallery,
.bd-global-header.bd-commerce.single-product .woocommerce-product-gallery__wrapper,
.bd-global-header.bd-commerce.single-product .woocommerce-product-gallery .flex-viewport {
    width: 100%;
    max-width: 100%;
    overflow: hidden !important;
}

.bd-commerce ul.products li.product .button,
.bd-commerce .single_add_to_cart_button,
.bd-commerce .checkout-button,
.bd-commerce button.button,
.bd-commerce button,
.bd-commerce a.button,
.bd-commerce input.button,
.bd-commerce input[type="submit"],
.bd-commerce input[type="button"],
.bd-commerce input[type="reset"],
.bd-commerce .show-password-input,
.bd-commerce .password-input .show-password-input {
    min-height: 44px;
}

.bd-commerce :where(.added_to_cart, .reset_variations, .woocommerce-Address-title .edit) {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
}

.bd-global-header.bd-commerce.woocommerce a.added_to_cart {
    display: inline-flex !important;
}

/* Woo 10.8 adds a live variation-reset alert next to the visible reset link.
 * Preserve it for assistive technology without its 100% width extending the
 * product summary beyond the viewport. */
.bd-commerce .reset_variations_alert.screen-reader-text {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    clip-path: inset(50%) !important;
    margin: -1px !important;
    padding: 0 !important;
    border: 0 !important;
    white-space: nowrap !important;
}

.bd-commerce :where(
    .select2-container .select2-selection--single,
    .select2-container .select2-selection--multiple,
    .woocommerce-MyAccount-navigation a,
    .shipping-calculator-button
) {
    min-height: 44px;
    display: flex;
    align-items: center;
}

.bd-commerce .select2-container .select2-selection--single {
    height: 44px;
}

.bd-commerce .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 44px;
}

.bd-commerce :where(
    a.remove,
    .wc-block-components-quantity-selector__button,
    .quantity .minus,
    .quantity .plus,
    .comment-form-rating .stars a
) {
    min-width: 44px;
    min-height: 44px;
    display: inline-grid;
    place-items: center;
}

.bd-commerce :where(.wc-block-components-quantity-selector__input, .quantity .qty) {
    min-height: 44px;
}

.bd-commerce .password-input .show-password-input {
    min-width: 44px;
    display: grid;
    place-items: center;
}

.bd-commerce :where(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout, .wp-block-woocommerce-empty-cart-block, .wc-block-grid.alignwide) {
    width: 100%;
    max-width: 100%;
    margin-inline: 0;
}

.bd-global-header.bd-commerce .entry-content > :where(.wp-block-woocommerce-cart.alignwide, .wp-block-woocommerce-checkout.alignwide) {
    width: 100% !important;
    max-width: 100% !important;
    margin-inline: 0 !important;
}

.bd-global-header.bd-commerce .wp-block-woocommerce-empty-cart-block,
.bd-global-header.bd-commerce .wp-block-woocommerce-empty-cart-block .wc-block-grid,
.bd-global-header.bd-commerce .wp-block-woocommerce-empty-cart-block .wc-block-grid__products {
    width: 100% !important;
    max-width: 100% !important;
    margin-inline: 0 !important;
}

.bd-global-header.bd-commerce .wp-block-woocommerce-empty-cart-block .wc-block-grid__product {
    width: 100% !important;
    max-width: 100% !important;
    margin-inline: 0 !important;
}

@media (max-width: 680px) {
    .bd-commerce ul.products,
    .bd-commerce :where(.related, .upsells) ul.products {
        width: 100%;
        max-width: 100%;
        overflow: clip;
    }
}

/* Storefront UX ownership: keep transaction controls native, accessible and
 * visually consistent without depending on WooCommerce's private DOM nesting. */
.bd-commerce :where(
    .woocommerce-cart-form,
    .woocommerce-checkout,
    .woocommerce-MyAccount-navigation,
    .woocommerce-MyAccount-content,
    .wc-block-components-main,
    .wc-block-components-sidebar,
    .wc-block-components-order-summary,
    .wc-block-components-totals-wrapper
) {
    min-width: 0;
    max-width: 100%;
    box-shadow: none;
}

.bd-commerce .woocommerce-cart-form {
    overflow-x: auto;
    overscroll-behavior-inline: contain;
}

.bd-commerce :where(
    .wc-block-components-quantity-selector,
    .wc-block-components-text-input input,
    .wc-block-components-combobox-control input,
    .wc-block-components-form .wc-block-components-select__select
) {
    min-height: 44px;
    border-radius: 0;
}

.bd-commerce .wc-block-components-quantity-selector {
    border-color: var(--bd-border);
    background: var(--bd-surface-lowest);
}

.bd-commerce :where(
    .wc-block-components-product-name,
    .wc-block-components-totals-item__label,
    .wc-block-components-totals-item__value
) {
    color: var(--bd-primary);
}

.bd-commerce :where(
    .wc-block-components-notice-banner,
    .wc-block-components-validation-error
) {
    border-radius: 0;
    box-shadow: none;
}

.bd-commerce :where(
    .wc-block-components-product-image img,
    .wc-block-components-order-summary-item__image img,
    .wc-block-grid__product-image img
) {
    width: 100%;
    aspect-ratio: 1 / 1;
    background: var(--bd-surface-low);
    object-fit: contain;
}

.bd-commerce.woocommerce-account .woocommerce > .u-columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(28px, 5vw, 64px);
}

.bd-commerce.woocommerce-account .woocommerce > .u-columns::before,
.bd-commerce.woocommerce-account .woocommerce > .u-columns::after {
    display: none;
}

.bd-commerce.woocommerce-account .woocommerce > .u-columns > :where(.u-column1, .u-column2) {
    float: none;
    width: auto;
    min-width: 0;
}

.bd-commerce.woocommerce-account :where(
    .woocommerce-form-login,
    .woocommerce-form-register,
    .woocommerce-ResetPassword
) {
    border: 1px solid var(--bd-border);
    border-radius: 0;
    background: var(--bd-surface-lowest);
    padding: clamp(20px, 3vw, 32px);
    box-shadow: none;
}

.bd-commerce.woocommerce-account .woocommerce-MyAccount-navigation ul {
    margin: 0;
    padding: 0;
    border: 1px solid var(--bd-border);
    list-style: none;
}

.bd-commerce.woocommerce-account .woocommerce-MyAccount-navigation li + li {
    border-top: 1px solid var(--bd-border);
}

.bd-commerce.woocommerce-account .woocommerce-MyAccount-navigation a {
    width: 100%;
    padding: 11px 14px;
    color: var(--bd-primary);
    text-decoration: none;
}

.bd-commerce.woocommerce-account .woocommerce-MyAccount-navigation .is-active a,
.bd-commerce.woocommerce-account .woocommerce-MyAccount-navigation a:hover,
.bd-commerce.woocommerce-account .woocommerce-MyAccount-navigation a:focus-visible {
    background: var(--bd-primary);
    color: var(--bd-on-primary);
}

.bd-commerce :where(
    .woocommerce-form__label-for-checkbox,
    .woocommerce-form-login__rememberme,
    label.checkbox
) {
    display: inline-flex;
    min-height: 44px;
    gap: 10px;
    align-items: center;
    cursor: pointer;
}

.bd-commerce :where(input[type="checkbox"], input[type="radio"]) {
    width: 20px;
    min-width: 20px;
    height: 20px;
    accent-color: var(--bd-primary);
}

.bd-commerce :where(.form-row.woocommerce-invalid, .woocommerce-invalid-required-field) :where(input, select, textarea) {
    border-color: #ba1a1a;
}

.bd-commerce :where(input, select, textarea):focus-visible {
    border-color: var(--bd-primary);
}

@media (max-width: 767px) {
    .bd-commerce.woocommerce-account .woocommerce > .u-columns {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    .bd-product-card__image img,
    .bd-commerce ul.products li.product a img {
        transition: none;
    }

    .bd-product-card:hover img,
    .bd-commerce ul.products li.product:hover a img {
        transform: none;
    }
}

.bd-commerce .bd-menu-toggle {
    display: none;
}

@media (max-width: 980px) {
    .bd-commerce .bd-nav {
        height: 72px;
    }

    .bd-commerce .bd-menu-toggle {
        display: inline-flex;
    }

    .bd-commerce .bd-nav__links {
        display: none;
    }
}

@media (max-width: 680px) {
    .bd-commerce .bd-nav {
        padding-inline: 20px;
    }

    .bd-commerce .bd-nav__brand {
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        font-size: 22px;
    }

    .bd-commerce .bd-nav__search input {
        display: none;
    }
}

/* Desktop product detail: the Stitch reference treats the product view as a
 * full-bleed two-column composition. Scope this to Woo single products so
 * GeneratePress container widths remain unchanged on editorial pages and on
 * the checkout/account transaction surfaces. The gallery uses its natural
 * square source ratio (no crop) while the right panel keeps all product facts
 * in view and anchors WooCommerce's native purchase form at the bottom. */
@media (min-width: 981px) {
    .bd-global-header.bd-commerce.single-product .site.grid-container,
    .bd-global-header.bd-commerce.single-product .site-content,
    .bd-global-header.bd-commerce.single-product .content-area,
    .bd-global-header.bd-commerce.single-product .inside-article,
    .bd-global-header.bd-commerce.single-product .entry-content,
    .bd-global-header.bd-commerce.single-product div.product {
        width: 100%;
        max-width: none;
    }

    .bd-global-header.bd-commerce.single-product .site.grid-container {
        margin-inline: 0;
    }

    .bd-global-header.bd-commerce.single-product .site-content {
        margin-inline: 0;
        padding: clamp(28px, 3.5vw, 64px) 0 clamp(56px, 6vw, 112px);
    }

    .bd-global-header.bd-commerce.single-product .woocommerce-breadcrumb {
        margin: 0 clamp(24px, 4vw, 72px) clamp(20px, 2.5vw, 40px);
    }

    .bd-commerce.single-product div.product .bd-product-top {
        grid-template-columns: minmax(0, 55fr) minmax(0, 45fr);
        gap: 0;
        align-items: stretch;
    }

    .bd-global-header.bd-commerce.single-product.woocommerce-page .entry-content > div.product > .bd-product-top > div.images {
        min-width: 0;
    }

    .bd-global-header.bd-commerce.single-product.woocommerce-page .entry-content > div.product > .bd-product-top > div.summary {
        position: sticky;
        top: 76px;
        align-self: start;
        box-sizing: border-box;
        display: flex;
        flex-direction: column;
        min-height: calc(100vh - 76px);
        max-height: calc(100vh - 76px);
        overflow-y: auto;
        margin: 0;
        padding: clamp(32px, 4.5vw, 88px) clamp(28px, 5.5vw, 104px);
        background: var(--bd-surface);
    }

    .bd-commerce.single-product .summary .product_title {
        font-size: clamp(30px, 2.75vw, 44px);
        line-height: 1.08;
    }

    .bd-commerce.single-product .summary .woocommerce-product-details__short-description {
        max-width: 48ch;
        font-size: 15px;
        line-height: 1.6;
    }

    .bd-commerce.single-product .summary form.cart {
        margin-top: auto;
        margin-bottom: 0;
    }

    .bd-commerce.single-product .summary form.cart .single_add_to_cart_button {
        flex: 1 1 auto;
    }
}
