.button, .schulz-site .woocommerce a.button, .schulz-site .woocommerce button.button,
.schulz-site .woocommerce input.button, .schulz-site.woocommerce button.button, .schulz-site.woocommerce input.button, .schulz-site a.button, .product-search button,
.schulz-site.woocommerce ul.products li.product a.lumise-list-button {
    display: inline-flex; justify-content: center; align-items: center; min-height: 2.75rem;
    padding: .875rem var(--space-6); border: 1px solid var(--color-primary); border-radius: var(--radius-control);
    color: #fff; background: var(--color-primary); font-size: 1rem; font-weight: 700; line-height: 1.4; text-align: center; text-decoration: none; white-space: normal;
}
.button:hover, .schulz-site .woocommerce a.button:hover, .schulz-site .woocommerce button.button:hover, .schulz-site a.button:hover, .schulz-site.woocommerce button.button:hover, .product-search button:hover { color: #fff; background: var(--color-primary-hover); }
.schulz-site.woocommerce ul.products li.product a.lumise-list-button:hover { color: #fff; background: var(--color-primary-hover); }
.schulz-site a.button.button--secondary { color: var(--color-primary); background: var(--color-background); }
.schulz-site a.button.button--secondary:hover { background: var(--color-surface); }
button:disabled { cursor: not-allowed; opacity: .65; }
.card { border: 1px solid var(--color-border); border-radius: var(--radius-card); padding: var(--panel-padding); background: var(--color-background); gap: var(--space-4); height: 100%; }
.card > .button { margin-block-start: auto; }
.grid--two .card { border: 0; background: var(--color-surface); }
.card--step { border: 1px solid var(--color-border); border-radius: var(--radius-feature); background: var(--color-background); }
.feature { padding: var(--panel-padding); border-radius: var(--radius-feature); background: var(--color-surface); width: 100%; }
.cta-panel { display: grid; gap: var(--space-4); }
.cta-panel > p { max-width: 65ch; }
.cta-panel > .button { justify-self: start; }
@media (max-width: 478px) { .card > .button { align-self: stretch; } .cta-panel > .button { justify-self: stretch; } }
@media (min-width: 992px) {
    .cta-panel { grid-template-columns: minmax(0, 1fr) auto; column-gap: var(--space-8); }
    .cta-panel > h2, .cta-panel > p { grid-column: 1; }
    .cta-panel > .button { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
}
.product-search { display: flex; align-items: stretch; flex: 1; min-width: 12rem; gap: var(--space-2); }
.product-search input[type=search] { width: 100%; min-width: 0; }
.product-search button { flex-shrink: 0; padding-inline: 1rem; }
.faq { width: 100%; }
.faq details { border-bottom: 1px solid var(--color-border); }
.faq summary { font-size: var(--heading-h3); font-weight: 700; padding: var(--space-4); cursor: pointer; }
.faq summary::marker { color: var(--color-primary); }
.faq summary:hover { background: var(--color-surface-neutral); }
.faq details p { padding: 0 var(--space-4) var(--space-4); max-width: 75ch; }
.shop-content .woocommerce-breadcrumb { margin-block-end: var(--space-6); }
.shop-content .woocommerce-products-header { margin-block-end: var(--space-6); }
.shop-content .woocommerce-products-header__title { margin-block-end: var(--space-6); }
.schulz-site.woocommerce ul.products { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); }
.schulz-site.woocommerce ul.products::before, .schulz-site.woocommerce ul.products::after { display: none; }
.schulz-site.woocommerce ul.products li.product { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-3); min-width: 0; float: none; width: auto; margin: 0; padding: var(--space-6); border: 1px solid var(--color-border); border-radius: var(--radius-card); }
.schulz-site.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link { width: 100%; }
.schulz-site.woocommerce ul.products li.product :is(.button, .lumise-list-button) { margin-block: auto 0; margin-inline: 0; align-self: stretch; }
.schulz-site.woocommerce ul.products li.product .onsale { inset-block-start: .75rem; inset-inline-end: .75rem; inset-inline-start: auto; margin: 0; }
.schulz-site.woocommerce ul.products li.product a img { border-radius: var(--radius-control); }
.schulz-site.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: var(--heading-h3); }
.schulz-site.woocommerce ul.products li.product .price { font-size: 1.125rem; font-weight: 700; line-height: 1.4; margin: 0; }
.schulz-site.woocommerce ul.products li.product .price del { font-size: .875em; color: var(--color-text-muted); }
.schulz-site.woocommerce ul.products li.product .wgm-info { font-size: .875rem; line-height: 1.5; }
.schulz-site .woocommerce-product-details__short-description, .product-print, .schulz-site .summary .price { margin-block: var(--space-6); }
.schulz-site .woocommerce-product-details__short-description > * + * { margin-block-start: var(--space-4); }
.schulz-site .woocommerce-tabs h2 { margin-block: var(--space-6); }
.schulz-site .woocommerce-tabs p + p { margin-block-start: var(--space-4); }
.schulz-site .woocommerce-message, .schulz-site .woocommerce-info { border-top-color: var(--color-primary); }
.schulz-site .woocommerce-error { border-top-color: var(--color-error); }
.schulz-site .woocommerce form .form-row label { display: block; }
@media (max-width: 478px) { .schulz-site.woocommerce ul.products { grid-template-columns: 1fr; } }
@media (min-width: 992px) { .schulz-site.woocommerce ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.schulz-site.woocommerce div.product p.price,
.schulz-site.woocommerce div.product span.price,
.schulz-site.woocommerce ul.products li.product .price { color: var(--color-text); }

/* Catalogue: filter controls remain available for both populated and empty loops. */
.catalog-intro { padding: var(--panel-padding); margin-block-end: var(--space-8); background: var(--color-surface); border-radius: var(--radius-feature); }
.catalog-intro .term-description > * + * { margin-block-start: var(--space-4); }
.catalog-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-8); align-items: start; }
.catalog-filters { min-width: 0; padding: var(--space-6); border: 1px solid var(--color-border); border-radius: var(--radius-card); }
.catalog-filters h2 { margin-block-end: var(--space-6); }
.catalog-filters form, .catalog-filter, .catalog-filter input, .catalog-filter select { width: 100%; min-width: 0; }
.catalog-filter { display: flex; flex-direction: column; gap: var(--space-2); }
.catalog-filter label { font-weight: 700; }
.catalog-notice { margin-block-end: var(--space-6); }
.catalog-results { display: flex; flex-wrap: wrap; align-items: start; align-content: start; gap: var(--space-4); min-width: 0; }
.schulz-site.woocommerce .catalog-results .woocommerce-result-count { float: none; flex: 1; margin: 0; align-self: center; }
.schulz-site.woocommerce .catalog-results .woocommerce-ordering { float: none; margin: 0; max-width: 100%; }
.schulz-site.woocommerce .catalog-results .woocommerce-notices-wrapper,
.schulz-site.woocommerce .catalog-results ul.products,
.schulz-site.woocommerce .catalog-results .woocommerce-pagination { width: 100%; }
.catalog-empty { width: 100%; }
.schulz-site.woocommerce .catalog-results ul.products { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 768px) {
    .schulz-site.woocommerce .catalog-results ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1100px) {
    .schulz-site.woocommerce .catalog-results ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Native WooCommerce detail markup with its own grid class, including plugin hooks. */
.schulz-product-detail { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-8); position: relative; }
.schulz-site.woocommerce .schulz-product-detail .woocommerce-product-gallery,
.schulz-site.woocommerce .schulz-product-detail .summary { float: none; width: 100%; min-width: 0; margin: 0; }
.schulz-site.woocommerce .schulz-product-detail .woocommerce-product-gallery img { border-radius: var(--radius-card); }
.schulz-product-detail .woocommerce-product-gallery { align-self: start; }
.schulz-product-detail .woocommerce-product-gallery__wrapper { margin: 0; }
.schulz-product-detail .product_title { margin-block-end: var(--space-6); }
.schulz-product-detail .summary .product-selection-heading { margin-block: var(--space-8) var(--space-4); }
.schulz-site.woocommerce .schulz-product-detail .summary .price { font-size: 1.5rem; font-weight: 700; margin-block: var(--space-4); }
.schulz-product-detail .summary form.cart { display: flex; flex-wrap: wrap; gap: var(--space-4); align-items: center; margin-block: var(--space-6); }
.schulz-product-detail .summary form.variations_form { display: block; }
.schulz-product-detail .summary table.variations { width: 100%; }
.schulz-product-detail .summary table.variations th { text-align: start; padding-inline-end: var(--space-4); }
.schulz-product-detail .summary table.variations select { width: 100%; }
.schulz-product-detail .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: var(--space-4); align-items: center; }
.schulz-product-detail .product_meta > span { display: block; }
.schulz-product-detail > .woocommerce-tabs,
.schulz-product-detail > .product-process,
.schulz-product-detail > .related,
.schulz-product-detail > .upsells { grid-column: 1 / -1; min-width: 0; width: 100%; }
.schulz-product-detail > .product-process { padding: var(--panel-padding); border-radius: var(--radius-feature); }
.schulz-product-detail .woocommerce-tabs .panel > * + * { margin-block-start: var(--space-4); }
.schulz-product-detail .woocommerce-tabs .shop_attributes { width: 100%; }
@media (min-width: 992px) {
    .schulz-product-detail { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-12); }
}
.catalog-filters select, .catalog-results .orderby, .schulz-product-detail .variations select {
    appearance: none;
    background-image: linear-gradient(45deg, transparent 50%, var(--color-text) 50%), linear-gradient(135deg, var(--color-text) 50%, transparent 50%);
    background-position: calc(100% - 1.25rem) center, calc(100% - 1rem) center;
    background-size: .25rem .25rem;
    background-repeat: no-repeat;
    padding-inline-end: 2.5rem;
}
.schulz-site.woocommerce span.onsale { background: var(--color-primary); border-radius: var(--radius-control); min-width: 0; min-height: 0; padding: .5rem .75rem; line-height: 1.4; }

@media (min-width: 992px) { .catalog-layout { grid-template-columns: minmax(14rem, 1fr) minmax(0, 3fr); } }
