/*
 * WooCommerce (Figma: 09 Shop und Plugins).
 * Wird nur geladen, wenn WooCommerce aktiv ist. Hinweise (.woocommerce-message …) stehen in components.css.
 */

.woocommerce,
.woocommerce-page {
    color: var(--white);
}

.woocommerce .woocommerce-breadcrumb {
    margin: 0 0 24px;
    font-size: 14px;
    color: var(--text-secondary);
}
.woocommerce .woocommerce-breadcrumb a {
    color: var(--blue);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.woocommerce-products-header__title,
.woocommerce .page-title,
.woocommerce-cart .entry-title,
.woocommerce-checkout .entry-title {
    margin: 0 0 32px;
    font-size: 48px;
    line-height: 1.08;
    letter-spacing: -1.8px;
    max-width: none;
}
.woocommerce-result-count {
    float: left;
    margin: 0 0 24px;
    font-size: 14px;
    color: var(--muted);
}
.woocommerce-ordering {
    float: right;
    margin: 0 0 24px;
}
.woocommerce-ordering select {
    min-height: 40px;
}

/* ---------- Buttons ---------- */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 36px;
    padding: 0 24px;
    border: 0;
    border-radius: var(--radius-pill);
    background: var(--lime);
    color: var(--ink);
    font-size: 16px;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
}
.woocommerce a.button.alt,
.woocommerce button.button.alt {
    background: var(--lime);
    color: var(--ink);
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
    background: var(--lime);
    color: var(--ink);
}
.woocommerce a.button.disabled,
.woocommerce button.button:disabled {
    opacity: 0.4;
    pointer-events: none;
}
.woocommerce a.button.loading::before {
    content: "";
    width: 14px;
    height: 14px;
    margin-right: 8px;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: gd-spin 0.8s linear infinite;
}

/* Buttons in Hinweisen: Outline */
.woocommerce .woocommerce-message a.button,
.woocommerce .woocommerce-info a.button,
.woocommerce .woocommerce-error a.button {
    order: 2;
    height: 28px;
    margin-left: auto;
    padding: 0 14px;
    border: 1.5px solid var(--white);
    background: transparent;
    color: var(--white);
    font-size: 14px;
    font-weight: 400;
}

/* ---------- Produktliste ---------- */
.woocommerce ul.products {
    clear: both;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 32px;
    margin: 0 0 48px;
    padding: 0;
    list-style: none;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after {
    display: none;
}
.woocommerce ul.products li.product {
    position: relative;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    margin: 0;
    padding: 0;
    border: 1px solid var(--line);
    border-radius: var(--radius-card);
    background: var(--card);
    transition: transform 0.25s cubic-bezier(.2, .8, .2, 1), border-color 0.2s ease;
}
.woocommerce ul.products li.product:hover {
    transform: translateY(-3px);
    border-color: var(--card-line);
}
.woocommerce ul.products li.product a:not(.button) {
    color: inherit;
    text-decoration: none;
}
.woocommerce ul.products li.product img {
    display: block;
    width: 100%;
    height: 240px;
    margin: 0;
    padding: 12px;
    object-fit: contain;
    border-radius: 0;
    background: var(--top);
}
.woocommerce-loop-product__title {
    margin: 0;
    padding: 18px 18px 0;
    font-size: 17.6px;
    font-weight: 600;
    letter-spacing: 0;
}
.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
    display: block;
    padding: 8px 18px 0;
    font-size: 30.4px;
    font-weight: 600;
    letter-spacing: -0.76px;
    color: var(--white);
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
    padding: 0;
    margin: 0 0 20px;
}
.woocommerce .price del {
    margin-right: 6px;
    font-size: 14px;
    letter-spacing: 0;
    color: var(--muted);
}
.woocommerce .price ins {
    background: none;
    color: inherit;
    text-decoration: none;
}
.woocommerce ul.products li.product .button {
    margin: 16px 18px 18px;
    width: auto;
}
.woocommerce span.onsale {
    position: absolute;
    top: 14px;
    left: 14px;
    z-index: 2;
    min-height: 0;
    min-width: 0;
    margin: 0;
    padding: 3px 10px;
    border-radius: var(--radius-pill);
    background: var(--red);
    color: var(--white);
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}
.woocommerce ul.products li.product.outofstock .woocommerce-loop-product__title,
.woocommerce ul.products li.product.outofstock .price {
    color: var(--muted);
}
.woocommerce ul.products li.product .added_to_cart {
    display: inline-block;
    margin: 0 18px 18px;
    font-size: 14px;
    color: var(--lime);
    text-decoration: underline;
}
.woocommerce .star-rating {
    color: var(--gold);
}

/* ---------- Einzelprodukt ---------- */
.woocommerce div.product {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 48px;
    align-items: start;
}
.woocommerce div.product div.images {
    float: none;
    width: 100%;
    margin: 0;
}
.woocommerce div.product div.images img {
    width: 100%;
    height: auto;
    border-radius: var(--radius-card);
    background: var(--top);
}
.woocommerce div.product div.summary {
    float: none;
    width: 100%;
    margin: 0;
}
.woocommerce div.product .product_title {
    margin: 0 0 12px;
    font-size: 48px;
    line-height: 1.08;
    letter-spacing: -1.8px;
    max-width: none;
}
.woocommerce div.product .woocommerce-product-details__short-description {
    margin: 0 0 24px;
    color: var(--text-secondary);
    line-height: 1.6;
}
.woocommerce div.product form.cart {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin: 0 0 24px;
}
.woocommerce div.product .product_meta {
    font-size: 14px;
    color: var(--muted);
}
.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .related,
.woocommerce div.product .upsells {
    grid-column: 1 / -1;
}
.woocommerce div.product .woocommerce-tabs ul.tabs {
    display: flex;
    gap: 24px;
    margin: 0 0 24px;
    padding: 0;
    border-bottom: 1px solid var(--divider);
    list-style: none;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li {
    margin: 0 0 -1px;
    padding: 0 0 12px;
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    background: none;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
    color: var(--muted);
    font-weight: 600;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
    display: block;
    padding: 0;
    background: none;
    transition: color 0.2s ease;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
    color: var(--white);
}
/* WooCommerce gibt dem aktiven Tab einen weißen Hintergrund (li.active), hier ausdrücklich zurücknehmen */
.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
    background: none;
    border-color: transparent transparent var(--lime);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
    color: var(--white);
    background: none;
}
/* woocommerce-layout.css nutzt #content in der Selektorkette, deshalb hier auch */
body.woocommerce #content div.product .woocommerce-tabs ul.tabs::before,
body.woocommerce #content div.product .woocommerce-tabs ul.tabs::after,
body.woocommerce #content div.product .woocommerce-tabs ul.tabs li::before,
body.woocommerce #content div.product .woocommerce-tabs ul.tabs li::after {
    display: none;
}

/* Tabelle "Zusätzliche Informationen": Zeilen mittig, ohne die kursive Plugin-Schrift */
body.woocommerce table.shop_attributes {
    width: 100%;
    margin: 0 0 24px;
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    font-size: 15px;
}
/* WooCommerce stapelt die Zeilen auf dem Handy (tr: block), hier bleiben es zwei Spalten */
body.woocommerce table.shop_attributes tr {
    display: table-row;
}
body.woocommerce table.shop_attributes th,
body.woocommerce table.shop_attributes td {
    display: table-cell;
    margin: 0;
    padding: 14px 18px;
    border: 0;
    border-top: 1px solid var(--divider);
    background: none;
    font-style: normal;
    line-height: 1.5;
    text-align: left;
    vertical-align: middle;
}
body.woocommerce table.shop_attributes tr:first-child th,
body.woocommerce table.shop_attributes tr:first-child td {
    border-top: 0;
}
body.woocommerce table.shop_attributes th {
    width: 200px;
    background: var(--card);
    color: var(--white);
    font-weight: 600;
}
body.woocommerce table.shop_attributes td {
    color: var(--text-secondary);
}
body.woocommerce table.shop_attributes td p {
    margin: 0;
    padding: 0;
}
@media (max-width: 600px) {
    body.woocommerce table.shop_attributes th {
        width: 40%;
    }
}

/* Menge */
.woocommerce .quantity .qty {
    width: 72px;
    min-height: 36px;
    padding: 0 8px;
    text-align: center;
}

/* ---------- Warenkorb ---------- */
.woocommerce table.shop_table {
    width: 100%;
    margin: 0 0 24px;
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    font-size: 14px;
}
.woocommerce table.shop_table th {
    padding: 12px 16px;
    background: var(--card-strong);
    font-size: 14px;
    text-align: left;
}
.woocommerce table.shop_table td {
    padding: 16px;
    border-top: 1px solid var(--divider);
    vertical-align: middle;
    color: var(--text-secondary);
}
.woocommerce table.shop_table .product-thumbnail img {
    width: 64px;
    height: 64px;
    object-fit: contain;
    border-radius: var(--radius-sm);
    background: var(--top);
}
.woocommerce table.shop_table .product-name a {
    color: var(--white);
}
.woocommerce a.remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    color: var(--muted) !important;
    font-size: 20px;
    line-height: 1;
}
.woocommerce a.remove:hover {
    background: var(--red) !important;
    color: var(--white) !important;
}
.woocommerce-cart table.cart td.actions {
    padding: 16px;
}
.woocommerce-cart table.cart td.actions .coupon {
    display: flex;
    gap: 10px;
    float: left;
}
.woocommerce-cart table.cart td.actions .coupon input {
    min-height: 48px;
    width: 220px;
}
.woocommerce-cart table.cart td.actions > .button {
    float: right;
}
.woocommerce .cart-collaterals {
    display: flex;
    justify-content: flex-end;
}
.woocommerce .cart-collaterals .cart_totals {
    width: 100%;
    max-width: 440px;
    padding: 20px;
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    background: var(--card);
}
.woocommerce .cart_totals h2 {
    margin: 0 0 12px;
    font-size: 17.6px;
    font-weight: 600;
    letter-spacing: 0;
}
.woocommerce .cart_totals table.shop_table {
    border: 0;
    border-radius: 0;
    background: none;
}
.woocommerce .cart_totals table.shop_table th,
.woocommerce .cart_totals table.shop_table td {
    padding: 10px 0;
    background: none;
    border-top: 1px solid var(--divider);
    color: var(--text-secondary);
}
.woocommerce .cart_totals .order-total th,
.woocommerce .cart_totals .order-total td {
    color: var(--white);
    font-size: 17.6px;
    font-weight: 600;
}
.woocommerce .wc-proceed-to-checkout .checkout-button,
.woocommerce #place_order {
    display: flex;
    width: 100%;
    height: 56px;
    margin: 0;
    padding: 0 24px;
    font-size: 30.4px;
    letter-spacing: -0.76px;
    background: var(--lime);
    color: var(--ink);
}
.woocommerce #place_order {
    height: 56px;
}

/* ---------- Checkout ---------- */
.woocommerce form.checkout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 40px;
    align-items: start;
}
.woocommerce form.checkout .col2-set {
    float: none;
    width: 100%;
}
.woocommerce form.checkout .col2-set .col-1,
.woocommerce form.checkout .col2-set .col-2 {
    float: none;
    width: 100%;
    max-width: none;
    margin-bottom: 24px;
    padding: 24px;
    border: 1px solid var(--line);
    border-radius: var(--radius-card);
    background: var(--card);
}
.woocommerce form.checkout h3 {
    margin: 0 0 16px;
    font-size: 17.6px;
    font-weight: 600;
    letter-spacing: 0;
}
.woocommerce form .form-row {
    margin: 0 0 14px;
    padding: 0;
}
.woocommerce form .form-row-first,
.woocommerce form .form-row-last {
    width: calc(50% - 7px);
}
.woocommerce form .form-row-first { float: left; }
.woocommerce form .form-row-last { float: right; }
.woocommerce form .form-row-wide { clear: both; }
.woocommerce form .form-row .required {
    color: var(--lime);
    text-decoration: none;
}
.woocommerce form .select2-container .select2-selection--single {
    height: 55px;
    border: 1px solid var(--card-line);
    border-radius: var(--radius-input);
    background: var(--field);
}
.woocommerce form .select2-container .select2-selection__rendered {
    line-height: 53px;
    padding: 0 16px;
    color: var(--white);
}
.woocommerce form .select2-container .select2-selection__arrow {
    height: 53px;
}
.woocommerce-checkout #order_review_heading {
    margin-top: 0;
}
.woocommerce-checkout #payment {
    border-radius: var(--radius-card);
    background: var(--card);
    border: 1px solid var(--line);
}
.woocommerce-checkout #payment ul.payment_methods {
    margin: 0;
    padding: 12px 24px;
    border: 0;
    list-style: none;
}
.woocommerce-checkout #payment ul.payment_methods li {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin: 0;
    padding: 12px 0;
    border-bottom: 1px solid var(--divider);
    font-size: 14px;
}
.woocommerce-checkout #payment ul.payment_methods li label {
    margin: 0;
}
.woocommerce-checkout #payment div.payment_box {
    flex: 1 1 100%;
    margin: 0;
    padding: 12px 16px;
    border-radius: var(--radius-sm);
    background: var(--field);
    color: var(--text-secondary);
}
.woocommerce-checkout #payment div.payment_box::before {
    display: none;
}
.woocommerce-checkout #payment div.form-row {
    padding: 24px;
}
.woocommerce-privacy-policy-text,
.woocommerce-terms-and-conditions-wrapper {
    margin: 0 0 16px;
    font-size: 14px;
    color: var(--muted);
}

/* ---------- Mein Konto ---------- */
.woocommerce-account .woocommerce-MyAccount-navigation ul {
    margin: 0 0 24px;
    padding: 0;
    list-style: none;
}
.woocommerce-account .woocommerce-MyAccount-navigation li a {
    display: block;
    padding: 10px 0;
    border-bottom: 1px solid var(--divider);
    color: var(--text-secondary);
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
    color: var(--lime);
}

@media (max-width: 900px) {
    .woocommerce div.product,
    .woocommerce form.checkout {
        grid-template-columns: minmax(0, 1fr);
    }
    /* Tabs umbrechen statt die Seite breiter zu machen */
    .woocommerce div.product .woocommerce-tabs ul.tabs {
        flex-wrap: wrap;
        gap: 8px 24px;
    }
    .woocommerce form .form-row-first,
    .woocommerce form .form-row-last {
        float: none;
        width: 100%;
    }
    .woocommerce-products-header__title,
    .woocommerce div.product .product_title {
        font-size: 36px;
        letter-spacing: -1.35px;
    }
    .woocommerce-cart table.cart td.actions .coupon {
        float: none;
        flex-wrap: wrap;
    }
    .woocommerce-cart table.cart td.actions > .button {
        float: none;
        margin-top: 12px;
    }
}

/* Warenkorb, Kasse und Konto laufen über page.php: breiter als normale Textseiten */
body.woocommerce-cart .text-page__inner,
body.woocommerce-checkout .text-page__inner,
body.woocommerce-account .text-page__inner {
    max-width: 1104px;
}
.woocommerce table.shop_table .product-name a,
.woocommerce a.remove {
    text-decoration: none;
}

/* Header-Button bleibt blau, auch wenn <body> die Klasse "woocommerce" trägt */
.header a.button.contact,
body .header a.button.contact:hover {
    background: var(--blue);
    color: var(--ink);
}
/* WooCommerce setzt .woocommerce a.button auf position: relative und Padding 24 px: Position und Maße des Header-Buttons zurücksetzen */
body .header a.button.contact {
    position: static;
    padding: 0 16px;
}
@media (max-width: 900px) {
    body .header a.button.contact {
        position: absolute;
        top: 70px;
        right: 58px;
        padding: 0 17px;
    }
}

/* Eingabefelder: WooCommerce setzt weiße Felder, hier wieder auf Gear-Dock-Stil */
body:is(.woocommerce, .woocommerce-page) .form-row :is(input.input-text, textarea, select),
body:is(.woocommerce, .woocommerce-page) form :is(input.input-text, input[type="password"], input[type="email"], input[type="text"], input[type="tel"], input[type="number"], textarea, select),
body.woocommerce-account .woocommerce-form-login :is(input.input-text, input[type="password"]) {
    min-height: 55px;
    padding: 0 16px;
    border: 1px solid var(--card-line);
    border-radius: var(--radius-input);
    background-color: var(--field);
    color: var(--white);
    font-size: 14px;
    box-shadow: none;
}
body:is(.woocommerce, .woocommerce-page) form textarea {
    padding: 16px;
}
body:is(.woocommerce, .woocommerce-page) .form-row :is(input.input-text, textarea, select):focus {
    border-color: var(--lime);
    box-shadow: 0 0 0 1px var(--lime);
    outline: 0;
}
body:is(.woocommerce, .woocommerce-page) .woocommerce-form-login,
body:is(.woocommerce, .woocommerce-page) .woocommerce-form-register,
body:is(.woocommerce, .woocommerce-page) .woocommerce-ResetPassword {
    padding: 24px;
    border: 1px solid var(--line);
    border-radius: var(--radius-card);
    background: var(--card);
}
.woocommerce .show-password-input {
    top: 0.9em;
}
.woocommerce form .woocommerce-form__label-for-checkbox {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-left: 14px;
}

.woocommerce form .show-password-input {
    filter: invert(0.75);
}

/* ---------- WooCommerce Blöcke (Warenkorb und Kasse als Block-Seiten) ---------- */
body .wc-block-components-button:not(.is-link),
body .wc-block-cart__submit-button,
body .wc-block-components-checkout-place-order-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 0 24px;
    border: 0;
    border-radius: var(--radius-pill);
    background: var(--lime);
    color: var(--ink);
    font: inherit;
    font-size: 16px;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    box-shadow: none;
    transition: filter 0.15s ease, transform 0.15s ease;
}
body .wc-block-components-button:not(.is-link):hover,
body .wc-block-components-button:not(.is-link):focus {
    background: var(--lime);
    color: var(--ink);
    text-decoration: none;
    filter: brightness(1.1);
}
body .wc-block-components-button:not(.is-link):focus-visible {
    outline: 2px solid var(--white);
    outline-offset: 3px;
}
body .wc-block-components-button:not(.is-link):active {
    background: var(--lime-dark);
    color: var(--lime);
    filter: none;
}
body .wc-block-components-button .wc-block-components-button__text {
    color: inherit;
    text-decoration: none;
}
body .wc-block-components-button:disabled,
body .wc-block-components-button[aria-disabled="true"] {
    opacity: 0.4;
    pointer-events: none;
}
body .wc-block-components-button.outlined:not(.is-link) {
    border: 1.5px solid var(--white);
    background: transparent;
    color: var(--white);
}
body .wc-block-components-button.wc-block-cart__submit-button:not(.is-link),
body .wc-block-components-button.wc-block-components-checkout-place-order-button:not(.is-link) {
    width: 100%;
    min-height: 56px;
    font-size: 30.4px;
    letter-spacing: -0.76px;
}
body .wc-block-cart__submit-button .wc-block-components-button__text,
body .wc-block-components-checkout-place-order-button .wc-block-components-button__text {
    font-size: inherit;
}
body .wc-block-components-button.is-link,
body .wc-block-cart-item__remove-link {
    color: var(--muted);
    font-size: 14px;
    text-decoration: underline;
    background: none;
}
body .wc-block-components-button.is-link:hover,
body .wc-block-cart-item__remove-link:hover {
    color: var(--lime);
}

/* Felder */
body .wc-block-components-text-input input:is([type="text"], [type="email"], [type="tel"], [type="number"], [type="password"], [type="url"]),
body .wc-block-components-textarea,
body .wc-blocks-components-select__select,
body .wc-block-components-country-input select,
body .wc-block-components-state-input select,
body .wc-block-components-combobox .components-combobox-control__input {
    min-height: 55px;
    border: 1px solid var(--card-line);
    border-radius: var(--radius-input);
    background-color: var(--field);
    color: var(--white);
    box-shadow: none;
}
body .wc-block-components-text-input label,
body .wc-blocks-components-select__label {
    color: var(--muted);
}
body .wc-block-components-text-input input:focus,
body .wc-block-components-textarea:focus,
body .wc-blocks-components-select__select:focus {
    border-color: var(--lime);
    box-shadow: 0 0 0 1px var(--lime);
    outline: 0;
}
body .wc-block-components-text-input.has-error input,
body .wc-block-components-text-input.has-error input:focus {
    border-color: var(--red);
    box-shadow: 0 0 0 1px var(--red);
}
body .wc-block-components-text-input.has-error input:focus {
    box-shadow: 0 0 0 1px var(--red), 0 0 0 4px rgb(251 54 64 / 0.3);
}
body .wc-block-components-validation-error {
    color: var(--red);
    font-size: 14px;
}

/* Checkbox und Radio */
body .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"],
body .wc-block-components-radio-control .wc-block-components-radio-control__input {
    border: 1px solid var(--card-line);
    background: var(--field);
}
body .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked {
    border-color: var(--lime);
    background: var(--lime);
}
body .wc-block-components-checkbox .wc-block-components-checkbox__mark {
    fill: var(--ink);
}
body .wc-block-components-radio-control .wc-block-components-radio-control__input:checked {
    border: 2px solid var(--lime);
}
body .wc-block-components-radio-control .wc-block-components-radio-control__input:checked::before {
    background: var(--lime);
}

/* Warenkorb-Tabelle, Menge, Summen */
body .wc-block-cart-items {
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    overflow: hidden;
}
body .wc-block-cart-items .wc-block-cart-items__header th {
    padding: 12px 16px;
    background: var(--card-strong);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
}
body .wc-block-cart-items .wc-block-cart-items__row td {
    border-color: var(--divider);
}
body .wc-block-components-product-name {
    color: var(--white);
    text-decoration: none;
}
body .wc-block-components-product-name:hover {
    color: var(--lime);
}
body .wc-block-components-quantity-selector {
    border: 1px solid var(--card-line);
    border-radius: var(--radius-input);
    background: var(--field);
}
body .wc-block-components-quantity-selector::after {
    border: 0;
}
body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__input,
body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button {
    color: var(--white);
    background: transparent;
    box-shadow: none;
}
body .wc-block-components-totals-wrapper {
    border-color: var(--divider);
}
body .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    font-size: 24px;
    font-weight: 600;
}
body .wc-block-components-checkout-step__title,
body .wc-block-components-title {
    font-size: 17.6px;
    font-weight: 600;
    letter-spacing: 0;
}

/* Hinweise der Blöcke */
body .wc-block-components-notice-banner {
    --notice: var(--lime);
    --notice-bg: var(--lime-dark);
    border: 0;
    border-left: 5px solid var(--notice);
    border-radius: var(--radius-sm);
    background: var(--notice-bg);
    color: var(--white);
    font-size: 14px;
}
body .wc-block-components-notice-banner.is-info {
    --notice: var(--blue);
    --notice-bg: var(--blue-dark);
}
body .wc-block-components-notice-banner.is-warning {
    --notice: var(--orange);
    --notice-bg: var(--orange-dark);
}
body .wc-block-components-notice-banner.is-error {
    --notice: var(--red);
    --notice-bg: var(--red-dark);
}
body .wc-block-components-notice-banner > svg {
    background: var(--notice);
    fill: var(--ink);
}

/* Produktliste: WooCommerce gibt den Karten 22 % Breite und Float, hier übernimmt das Raster */
.woocommerce ul.products[class*="columns-"] li.product,
.woocommerce-page ul.products[class*="columns-"] li.product {
    float: none;
    clear: none;
    width: auto;
    margin: 0;
}

/* Produktkarte: Abstände innen (WooCommerce und Germanized setzen eigene Werte) */
body.woocommerce ul.products li.product .woocommerce-loop-product__title,
body.woocommerce ul.products li.product .price,
body.woocommerce ul.products li.product .wc-gzd-additional-info,
body.woocommerce ul.products li.product .star-rating {
    margin-left: 0;
    margin-right: 0;
    padding-left: 18px;
    padding-right: 18px;
}
body.woocommerce ul.products li.product .woocommerce-loop-product__title {
    padding-top: 18px;
    padding-bottom: 0;
    font-size: 17.6px;
}
body.woocommerce ul.products li.product .wc-gzd-additional-info {
    margin-top: 6px;
    margin-bottom: 0;
    font-size: 14px;
    line-height: 1.4;
    color: var(--muted);
}
body.woocommerce ul.products li.product .wc-gzd-additional-info a {
    color: var(--muted);
    text-decoration: underline;
}
body.woocommerce ul.products li.product .delivery-time-info {
    margin-bottom: 16px;
}
body.woocommerce ul.products li.product a.button {
    display: inline-flex;
    align-self: center;
    margin: auto 18px 18px;
}
/* Sterne: Das Sternsymbol ist absolut im Element positioniert, ein Innenabstand schiebt es daher nicht ein.
   Mit Außenabstand fluchten die Sterne mit dem Titel. */
body.woocommerce ul.products li.product .star-rating {
    margin: 8px 18px 0;
    padding-left: 0;
    padding-right: 0;
}

/* Einzelprodukt: Variantenauswahl und Kauf-Zeile */
.woocommerce div.product form.cart .variations {
    width: 100%;
    margin: 0 0 16px;
    border: 0;
}
.woocommerce div.product form.cart .variations tr,
.woocommerce div.product form.cart .variations th,
.woocommerce div.product form.cart .variations td {
    display: block;
    padding: 0;
    border: 0;
    background: none;
}
.woocommerce div.product form.cart .variations th.label label {
    display: block;
    margin: 0 0 8px;
    font-size: 14px;
    font-weight: 400;
}
.woocommerce div.product form.cart .variations select {
    width: 100%;
    max-width: 360px;
}
.woocommerce div.product form.cart .reset_variations {
    display: inline-block;
    margin-top: 8px;
    font-size: 14px;
    color: var(--muted);
    text-decoration: underline;
}
.woocommerce div.product form.cart .single_variation_wrap,
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    width: 100%;
}
.woocommerce div.product form.cart .single_variation_wrap > .woocommerce-variation {
    flex: 1 1 100%;
}
.woocommerce div.product form.cart .single_add_to_cart_button {
    height: 40px;
    padding: 0 28px;
}
.woocommerce div.product form.cart .quantity .qty {
    min-height: 40px;
}

/* Kasse (Block): WooCommerce setzt weiße Felder über .wc-block-components-form, hier mit höherer Spezifität übersteuert */
body .wc-block-components-form .wc-block-components-text-input input:is([type="text"], [type="email"], [type="tel"], [type="number"], [type="password"], [type="url"]),
body .wc-block-components-form .wc-block-components-textarea,
body .wc-block-components-form .wc-blocks-components-select .wc-blocks-components-select__select,
body .wc-block-components-form .wc-block-components-combobox .components-combobox-control__input {
    min-height: 55px;
    border: 1px solid var(--card-line);
    border-radius: var(--radius-input);
    background-color: var(--field);
    color: var(--white);
    box-shadow: none;
}
body .wc-block-components-form .wc-block-components-text-input input:is([type="text"], [type="email"], [type="tel"], [type="number"], [type="password"], [type="url"]):focus,
body .wc-block-components-form .wc-blocks-components-select .wc-blocks-components-select__select:focus {
    border-color: var(--lime);
    box-shadow: 0 0 0 1px var(--lime);
    outline: 0;
}
body .wc-block-components-form .wc-block-components-text-input.has-error input:is([type="text"], [type="email"], [type="tel"], [type="number"], [type="password"], [type="url"]) {
    border-color: var(--red);
    box-shadow: 0 0 0 1px var(--red);
}
body .wc-block-components-form .wc-block-components-text-input.has-error input:focus {
    box-shadow: 0 0 0 1px var(--red), 0 0 0 4px rgb(251 54 64 / 0.3);
}
body .wc-blocks-components-select .wc-blocks-components-select__container {
    border-radius: var(--radius-input);
    background: var(--field);
}
body .wc-block-components-form .wc-block-components-text-input label,
body .wc-block-components-form .wc-blocks-components-select__label {
    color: var(--muted);
}
body .wc-block-components-form .wc-block-components-text-input.is-active label {
    color: var(--muted);
}

/* Bestellübersicht */
body .wc-block-components-order-summary,
body .wc-block-components-order-summary.is-large {
    background: transparent;
    color: var(--white);
}
body .wc-block-components-order-summary .wc-block-components-order-summary-item__quantity {
    border: 2px solid var(--top);
    background: var(--lime);
    color: var(--ink);
    box-shadow: none;
}
body .wc-block-components-order-summary .wc-block-components-product-name,
body .wc-block-components-order-summary .wc-block-components-product-price,
body .wc-block-components-order-summary .wc-block-components-product-metadata,
body .wc-block-components-order-summary .wc-block-components-product-metadata__description {
    color: var(--white);
}
body .wc-block-components-order-summary .wc-block-components-product-metadata,
body .wc-block-components-order-summary .wc-block-components-product-metadata__description {
    color: var(--muted);
    font-size: 14px;
}
body .wc-block-components-order-summary-item__image > img {
    border-radius: var(--radius-sm);
    background: var(--top);
}
body .wc-block-components-title.wc-block-components-checkout-step__title {
    font-size: 17.6px;
    font-weight: 600;
    letter-spacing: 0;
}
body .wc-block-components-checkout-step__description,
body .wc-block-components-checkbox__label {
    font-size: 14px;
}

/* Germanized färbt die Bestellübersicht grau (.wc-gzd-checkout …): übersteuern */
body .wc-gzd-checkout .wc-block-components-order-summary,
body .wc-gzd-checkout .wc-block-components-order-summary.is-large {
    background: transparent;
    color: var(--white);
}
body .wc-gzd-checkout .wc-block-components-order-summary .wc-block-components-product-name,
body .wc-gzd-checkout .wc-block-components-order-summary .wc-block-components-product-price {
    color: var(--white);
}

/* Lange Beschriftung („Zahlungspflichtig bestellen“) darf umbrechen statt abgeschnitten zu werden */
body .wc-block-components-button.wc-block-components-checkout-place-order-button:not(.is-link) {
    height: auto;
    padding: 12px 24px;
    line-height: 1.1;
    white-space: normal;
    text-align: center;
}

/* Primäre Woo-Buttons (.alt) bekommen von WooCommerce ein Violett: Gear-Dock-Limette erzwingen */
body.woocommerce a.button.alt,
body.woocommerce button.button.alt,
body.woocommerce input.button.alt,
body.woocommerce #respond input#submit.alt,
body.woocommerce a.button.alt:hover,
body.woocommerce button.button.alt:hover,
body.woocommerce input.button.alt:hover {
    background-color: var(--lime);
    color: var(--ink);
}
body.woocommerce button.button.alt.disabled,
body.woocommerce button.button.alt:disabled,
body.woocommerce button.button.alt.wc-variation-selection-needed {
    background-color: var(--lime);
    color: var(--ink);
    opacity: 0.4;
}

/* ---------- Kasse (Block): Fokus, Zahlungs- und Versandoptionen, Fehlerzustände ---------- */

/* Fokus: Hintergrund bleibt dunkel (WooCommerce setzt hier wieder Weiß) */
body .wc-block-components-form .wc-block-components-text-input input:is([type="text"], [type="email"], [type="tel"], [type="number"], [type="password"], [type="url"]):focus,
body .wc-block-components-form .wc-block-components-text-input.is-active input:is([type="text"], [type="email"], [type="tel"], [type="number"], [type="password"], [type="url"]),
body .wc-block-components-form .wc-blocks-components-select .wc-blocks-components-select__select:focus,
body .wc-block-components-form .wc-block-components-textarea:focus {
    background-color: var(--field);
    color: var(--white);
}
body .wc-block-components-form .wc-block-components-text-input input:-webkit-autofill {
    -webkit-text-fill-color: var(--white);
    box-shadow: 0 0 0 1000px var(--field) inset;
}

/* Optionen (Versand, Zahlung): Karten mit Rahmen, gewählt = Limette */
body .wc-block-components-radio-control .wc-block-components-radio-control__option {
    margin: 0 0 10px;
    padding: 16px 16px 16px 52px;
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    background: var(--card);
    box-shadow: none;
}
body .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control__option-checked,
body .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control__option-checked::after {
    border-color: var(--lime);
    box-shadow: none;
}
body .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control__option-checked {
    border-color: var(--lime);
}
body .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control__option::after {
    display: none;
}
body .wc-block-components-radio-control .wc-block-components-radio-control__input {
    left: 16px;
}
body .wc-block-components-radio-control .wc-block-components-radio-control__label,
body .wc-block-components-radio-control .wc-block-components-radio-control__secondary-label {
    color: var(--white);
    font-size: 14px;
}
body .wc-block-components-radio-control .wc-block-components-radio-control__description,
body .wc-block-components-radio-control .wc-block-components-radio-control-accordion-content {
    color: var(--text-secondary);
    font-size: 14px;
}
body .wc-block-components-radio-control-accordion-option,
body .wc-block-components-radio-control-accordion-content {
    border-color: var(--line);
    background: transparent;
}

/* Bestätigungstexte (AGB, Datenschutz) */
body .wc-block-checkout__terms,
body .wc-block-checkout__terms a {
    font-size: 14px;
    color: var(--muted);
}
body .wc-block-checkout__terms a {
    color: var(--white);
    text-decoration: underline;
}

/* Fehlertext unter dem Feld: Icon und Text in Rot */
body .wc-block-components-validation-error,
body .wc-block-components-validation-error > p {
    color: var(--red);
    font-size: 14px;
}
body .wc-block-components-validation-error svg {
    fill: var(--red);
}
body .wc-block-components-form .wc-block-components-text-input.has-error label,
body .wc-block-components-form .wc-blocks-components-select.has-error .wc-blocks-components-select__label {
    color: var(--red);
}
body .wc-block-components-form .wc-blocks-components-select.has-error .wc-blocks-components-select__select {
    border-color: var(--red);
    box-shadow: 0 0 0 1px var(--red);
}
body .wc-block-components-checkbox.has-error .wc-block-components-checkbox__input[type="checkbox"] {
    border-color: var(--red);
}
body .wc-block-components-checkbox.has-error .wc-block-components-checkbox__label {
    color: var(--red);
}
/* Fehlerbanner oben auf der Kasse */
body .wc-block-components-notice-banner.is-error > .wc-block-components-notice-banner__content {
    color: var(--white);
}
body .wc-block-components-notice-banner a {
    color: var(--white);
    text-decoration: underline;
}
body .wc-block-components-notice-banner .wc-block-components-button.wc-block-components-notice-banner__dismiss {
    background: transparent;
    color: var(--white);
}

/* Zahlungsarten als Akkordeon: ein Rahmen um Option und Inhalt, gewählt = Limette */
body .wc-block-components-radio-control-accordion-option {
    margin: 0 0 10px;
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    background: var(--card);
    box-shadow: none;
    overflow: hidden;
}
body .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
body .wc-block-components-radio-control-accordion-option.wc-block-components-radio-control-accordion-option--checked-option-highlighted {
    border-color: var(--lime);
    box-shadow: none;
}
body .wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__option {
    margin: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
body .wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__option::after,
body .wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__option-checked::after {
    display: none;
}
body .wc-block-components-radio-control-accordion-content {
    padding: 0 16px 16px 52px;
    border: 0;
    color: var(--text-secondary);
}

/* ---------- Bestellbestätigung (order-received) und Bestelldetails ---------- */
body.woocommerce-page .woocommerce table.shop_table,
body.woocommerce-page .woocommerce table.woocommerce-table--order-details,
body .woocommerce-order table.shop_table {
    background: transparent;
    color: var(--text-secondary);
}
body.woocommerce-page .woocommerce table.shop_table tr,
body.woocommerce-page .woocommerce table.shop_table td,
body.woocommerce-page .woocommerce table.shop_table tbody th {
    background: transparent;
}
body.woocommerce-page .woocommerce table.shop_table tbody th,
body.woocommerce-page .woocommerce table.shop_table tfoot th {
    background: var(--card);
    color: var(--white);
    font-weight: 600;
}
body.woocommerce-page .woocommerce table.shop_table thead th {
    background: var(--card-strong);
}
body.woocommerce-page .woocommerce table.shop_table .product-name,
body.woocommerce-page .woocommerce table.shop_table .product-name a {
    color: var(--white);
}
body.woocommerce-page .woocommerce table.shop_table .wc-item-meta,
body.woocommerce-page .woocommerce table.shop_table .product-name .wc-gzd-item-desc {
    color: var(--muted);
    font-size: 14px;
}

.woocommerce ul.order_details,
.woocommerce-order-overview {
    display: flex;
    flex-wrap: wrap;
    gap: 16px 40px;
    margin: 0 0 32px;
    padding: 0;
    list-style: none;
}
.woocommerce ul.order_details li,
.woocommerce-order-overview li {
    float: none;
    margin: 0;
    padding: 0;
    border: 0;
    font-family: var(--font-mono);
    font-size: 12.5px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--muted);
}
.woocommerce ul.order_details li strong,
.woocommerce-order-overview li strong {
    display: block;
    margin-top: 4px;
    font-family: var(--font-sans);
    font-size: 17.6px;
    letter-spacing: 0;
    text-transform: none;
    color: var(--white);
}
.woocommerce-notice--success.woocommerce-thankyou-order-received {
    margin: 0 0 24px;
}

.woocommerce-customer-details address,
.woocommerce-Address address {
    padding: 16px 20px;
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    background: var(--card);
    font-style: normal;
    line-height: 1.7;
    color: var(--text-secondary);
}
.woocommerce-columns--addresses,
.woocommerce-Addresses {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 24px;
}
.woocommerce-columns--addresses::before,
.woocommerce-columns--addresses::after,
.woocommerce-Addresses::before,
.woocommerce-Addresses::after {
    display: none;
}
.woocommerce-columns--addresses .woocommerce-column,
.woocommerce-Addresses .woocommerce-Address {
    float: none;
    width: auto;
}
.woocommerce-order-details__title,
.woocommerce-column__title,
.woocommerce-Address-title h3 {
    margin: 0 0 14px;
    font-size: 17.6px;
    font-weight: 600;
    letter-spacing: 0;
    max-width: none;
}

/* ---------- Mein Konto: Menü und Inhalt ---------- */
body.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) {
    display: grid;
    grid-template-columns: 240px minmax(0, 1fr);
    gap: 48px;
    align-items: start;
}
body.woocommerce-account .woocommerce-MyAccount-navigation,
body.woocommerce-account .woocommerce-MyAccount-content {
    float: none;
    width: auto;
}
body.woocommerce-account .woocommerce-MyAccount-navigation ul {
    margin: 0;
    padding: 0;
    list-style: none;
    border-top: 1px solid var(--divider);
}
body.woocommerce-account .woocommerce-MyAccount-navigation li {
    margin: 0;
    padding: 0;
    border-bottom: 1px solid var(--divider);
}
body.woocommerce-account .woocommerce-MyAccount-navigation li a {
    position: relative;
    display: block;
    padding: 12px 0 12px 16px;
    border: 0;
    color: var(--text-secondary);
    text-decoration: none;
    transition: color 0.2s ease;
}
body.woocommerce-account .woocommerce-MyAccount-navigation li a:hover {
    color: var(--white);
}
body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
    color: var(--lime);
    font-weight: 600;
}
body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a::before {
    content: "";
    position: absolute;
    left: 0;
    top: 10px;
    bottom: 10px;
    width: 3px;
    border-radius: 2px;
    background: var(--lime);
}
body.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a {
    color: var(--muted);
}
body.woocommerce-account .woocommerce-MyAccount-content > :first-child {
    margin-top: 0;
}
body.woocommerce-account .woocommerce-MyAccount-content a:not(.button) {
    color: var(--blue);
    text-decoration: underline;
    text-underline-offset: 3px;
}
body.woocommerce-account table.my_account_orders .button {
    height: 30px;
    padding: 0 16px;
    font-size: 14px;
}
body.woocommerce-account .woocommerce-MyAccount-content fieldset {
    margin: 24px 0;
}
/* Konto-Tabellen auf dem Handy: vier Spalten statt fünf (wie im Figma-Entwurf „… Mobil“).
   Bestellungen: ohne Spalte „Ansehen“ (die Bestellnummer ist der Link). Meine Anfragen: Dateilinks unter der Nummer statt eigener Spalte. */
.gda-requests .gda-files-inline { display: none; }
@media (max-width: 640px) {
    body.woocommerce-account table.my_account_orders .woocommerce-orders-table__header-order-actions,
    body.woocommerce-account table.my_account_orders .woocommerce-orders-table__cell-order-actions {
        display: none;
    }
    body.woocommerce-account table.gda-requests .gda-col-files { display: none; }
    body.woocommerce-account table.gda-requests .gda-files-inline {
        display: block;
        margin-top: 6px;
        font-size: 13px;
        line-height: 1.5;
        overflow-wrap: anywhere;
    }
}
@media (max-width: 900px) {
    body.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) {
        grid-template-columns: 1fr;
        gap: 24px;
    }
}
body.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation)::before,
body.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation)::after {
    display: none;
}

/* ---------- Select2 (Länder- und Bundesland-Auswahl, klassische Kasse) ---------- */
body .select2-dropdown {
    border: 1px solid var(--card-line);
    border-radius: var(--radius-sm);
    background: var(--card-strong);
    color: var(--white);
    overflow: hidden;
}
body .select2-container--default .select2-search--dropdown .select2-search__field {
    min-height: 40px;
    border: 1px solid var(--card-line);
    border-radius: var(--radius-input);
    background: var(--field);
    color: var(--white);
}
body .select2-container--default .select2-results__option {
    padding: 9px 16px;
    color: var(--white);
    font-size: 14px;
}
body .select2-container--default .select2-results__option--highlighted[aria-selected],
body .select2-container--default .select2-results__option--highlighted[data-selected] {
    background: var(--hover);
    color: var(--white);
}
body .select2-container--default .select2-results__option[aria-selected="true"],
body .select2-container--default .select2-results__option[data-selected="true"] {
    background: var(--field);
    color: var(--lime);
}
body .select2-container--default .select2-selection--single .select2-selection__arrow b {
    border-color: var(--text-secondary) transparent transparent;
}

/* ---------- Passwortstärke (Registrierung, Passwort ändern) ---------- */
body .woocommerce-password-strength {
    margin: 8px 0 0;
    padding: 8px 12px;
    border-radius: var(--radius-sm);
    background: var(--card);
    color: var(--white);
    font-size: 14px;
    text-align: left;
}
body .woocommerce-password-strength.bad,
body .woocommerce-password-strength.short {
    background: var(--red-dark);
    color: var(--white);
}
body .woocommerce-password-strength.good {
    background: var(--orange-dark);
    color: var(--white);
}
body .woocommerce-password-strength.strong {
    background: var(--lime-dark);
    color: var(--white);
}
body .woocommerce-password-hint {
    margin: 8px 0 0;
    font-size: 14px;
    color: var(--muted);
}

/* ---------- Shop-Hinweis (Demo-/Wartungsleiste) ---------- */
body .woocommerce-store-notice,
body p.demo_store {
    padding: 12px 24px;
    background: var(--lime-dark);
    color: var(--white);
    font-size: 14px;
    text-align: center;
}
body .woocommerce-store-notice a.woocommerce-store-notice__dismiss-link,
body p.demo_store a {
    color: var(--lime);
    text-decoration: underline;
}

/* ---------- Block-Hinweise: WooCommerce färbt je Typ hell, hier pro Typ im Gear-Dock-Stil ---------- */
body .wc-block-components-notice-banner.is-success {
    --notice: var(--lime);
    --notice-bg: var(--lime-dark);
}
body .wc-block-components-notice-banner.is-info,
body .wc-block-components-notice-banner.is-default {
    --notice: var(--blue);
    --notice-bg: var(--blue-dark);
}
body .wc-block-components-notice-banner.is-warning {
    --notice: var(--orange);
    --notice-bg: var(--orange-dark);
}
body .wc-block-components-notice-banner.is-error {
    --notice: var(--red);
    --notice-bg: var(--red-dark);
}
body .wc-block-components-notice-banner:is(.is-success, .is-info, .is-default, .is-warning, .is-error) {
    align-items: center;
    padding: 14px 20px;
    border: 0;
    border-left: 5px solid var(--notice);
    border-radius: var(--radius-sm);
    background-color: var(--notice-bg);
    color: var(--white);
    font-size: 14px;
    line-height: 1.5;
}
body .wc-block-components-notice-banner:is(.is-success, .is-info, .is-default, .is-warning, .is-error) > svg {
    flex: none;
    width: 24px;
    height: 24px;
    padding: 2px;
    border-radius: 50%;
    background-color: var(--notice);
    fill: var(--ink);
}
body .wc-block-components-notice-banner.is-error > svg {
    fill: var(--white);
}
body .wc-block-components-notice-banner:is(.is-success, .is-info, .is-default, .is-warning, .is-error) .wc-block-components-notice-banner__content {
    color: var(--white);
}
body .wc-block-components-notice-banner .wc-block-components-notice-banner__content a,
body .wc-block-components-notice-banner .wc-block-components-notice-banner__content a.wp-element-button {
    background: none;
    color: var(--white);
    text-decoration: underline;
    text-underline-offset: 3px;
}
body .wc-block-components-notice-banner .wc-block-components-notice-banner__dismiss,
body .wc-block-components-notice-banner .wc-block-components-notice-banner__dismiss:hover {
    min-height: 0;
    width: 28px;
    height: 28px;
    padding: 0;
    background: transparent;
    color: var(--white);
}
body .wc-block-components-notice-banner .wc-block-components-notice-banner__dismiss svg {
    width: 20px;
    height: 20px;
    fill: var(--white);
}

/* Leerer Warenkorb: Symbol gedämpft statt hellweiß */
body .wc-block-cart__empty-cart__title.with-empty-cart-icon::before {
    background-color: var(--muted);
}

/* Link und Schließen-Button in Block-Hinweisen: WooCommerce setzt dunkle Farbe und Deckkraft 0,6 */
body .wc-block-components-notice-banner:is(.is-success, .is-info, .is-default, .is-warning, .is-error) :is(.wc-block-components-notice-banner__dismiss, .wc-block-components-notice-banner__content a, .wc-block-components-notice-banner__content a.wp-element-button) {
    color: var(--white);
    opacity: 1;
}
body .wc-block-components-notice-banner:is(.is-success, .is-info, .is-default, .is-warning, .is-error) .wc-block-components-notice-banner__dismiss svg {
    fill: var(--white);
}
body .wc-block-components-notice-banner:is(.is-success, .is-info, .is-default, .is-warning, .is-error) .wc-block-components-notice-banner__dismiss:hover svg {
    fill: var(--lime);
}

/* WooCommerce erzwingt hier eine dunkle Linkfarbe mit !important: nur an dieser Stelle gleichziehen */
body .wc-block-components-notice-banner > .wc-block-components-notice-banner__content .wc-forward {
    color: var(--white) !important;
    opacity: 1;
    font-weight: 600;
}
body .wc-block-components-notice-banner > .wc-block-components-notice-banner__content .wc-forward:hover {
    color: var(--lime) !important;
}


/* ---------- Leerer Warenkorb: Trennlinie statt Punkte, "Neu im Shop" als Karten wie im Shop ---------- */
body .wp-block-woocommerce-empty-cart-block .wp-block-separator.is-style-dots {
    height: 1px;
    margin: 48px 0;
    border: 0;
    background: rgba(247, 247, 248, 0.18) !important;
}
body .wp-block-woocommerce-empty-cart-block .wp-block-separator.is-style-dots::before {
    display: none;
}
body .wp-block-woocommerce-empty-cart-block .wp-block-heading:not(.wc-block-cart__empty-cart__title) {
    margin: 0 0 28px;
    text-align: left;
}

body .wc-block-grid.wc-block-grid .wc-block-grid__products {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 32px;
    margin: 0 0 48px;
    padding: 0;
    list-style: none;
}
body .wc-block-grid.wc-block-grid .wc-block-grid__products > li.wc-block-grid__product {
    position: relative;
    display: flex;
    flex-direction: column;
    flex: none;
    width: auto;
    max-width: none;
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: var(--radius-card);
    background: var(--card);
    text-align: left;
    transition: transform 0.25s cubic-bezier(.2, .8, .2, 1), border-color 0.2s ease;
}
body .wc-block-grid.wc-block-grid .wc-block-grid__products > li.wc-block-grid__product:hover {
    transform: translateY(-3px);
    border-color: var(--card-line);
}
body .wc-block-grid.wc-block-grid .wc-block-grid__products > li.wc-block-grid__product .wc-block-grid__product-link {
    display: block;
    color: inherit;
    text-decoration: none;
}
body .wc-block-grid.wc-block-grid .wc-block-grid__products > li.wc-block-grid__product .wc-block-grid__product-image {
    display: block;
    width: 100%;
    margin: 0;
    background: var(--top);
}
body .wc-block-grid.wc-block-grid .wc-block-grid__products > li.wc-block-grid__product .wc-block-grid__product-image img {
    display: block;
    width: 100%;
    height: 240px;
    margin: 0;
    padding: 12px;
    object-fit: contain;
}
body .wc-block-grid.wc-block-grid .wc-block-grid__products > li.wc-block-grid__product .wc-block-grid__product-title {
    margin: 0;
    padding: 18px 18px 0;
    font-size: 17.6px;
    font-weight: 600;
    line-height: 1.3;
    color: var(--white);
}
body .wc-block-grid.wc-block-grid .wc-block-grid__products > li.wc-block-grid__product .wc-block-grid__product-price {
    width: auto;
    margin: 0;
    padding: 8px 18px 0;
    font-size: 30.4px;
    font-weight: 600;
    letter-spacing: -0.76px;
    text-align: left;
    color: var(--white);
}
/* Weniger Infos als im Shop: nur Bild, Titel, Preis und Button.
   Die Pflichtangabe zu MwSt. und Versand bleibt, klein und in zwei Zeilen. */
body .wc-block-grid.wc-block-grid .wc-block-grid__products > li.wc-block-grid__product .wc-gzd-additional-info {
    display: block;
    margin: 2px 0 0;
    padding: 0 18px;
    font-size: 13px;
    line-height: 1.4;
    text-align: left;
    color: var(--muted);
}
body .wc-block-grid.wc-block-grid .wc-block-grid__products > li.wc-block-grid__product .wc-gzd-additional-info a {
    color: var(--muted);
    text-decoration: underline;
}
body .wc-block-grid.wc-block-grid .wc-block-grid__products > li.wc-block-grid__product .wc-block-grid__product-price + .wc-gzd-additional-info {
    margin-top: 6px;
}
body .wc-block-grid.wc-block-grid .wc-block-grid__products > li.wc-block-grid__product .wc-block-grid__product-rating,
body .wc-block-grid.wc-block-grid .wc-block-grid__products > li.wc-block-grid__product .wc-gzd-additional-info.wc-gzd-rating-authenticity-status,
body .wc-block-grid.wc-block-grid .wc-block-grid__products > li.wc-block-grid__product .wc-gzd-additional-info.delivery-time-info,
body .wc-block-grid.wc-block-grid .wc-block-grid__products > li.wc-block-grid__product .wc-gzd-additional-info.unit-price,
body .wc-block-grid.wc-block-grid .wc-block-grid__products > li.wc-block-grid__product .wc-gzd-additional-info.product-units {
    display: none;
}
body .wc-block-grid.wc-block-grid .wc-block-grid__products > li.wc-block-grid__product .wc-block-grid__product-add-to-cart {
    display: flex;
    justify-content: center;
    margin: auto 0 0;
    padding: 16px 18px 18px;
}
body .wc-block-grid.wc-block-grid .wc-block-grid__products > li.wc-block-grid__product .wc-block-grid__product-add-to-cart .wp-block-button__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    height: 36px;
    padding: 0 24px;
    border: 0;
    border-radius: var(--radius-pill);
    background: var(--lime);
    color: var(--ink);
    font-size: 16px;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
}
body .wc-block-grid.wc-block-grid .wc-block-grid__products > li.wc-block-grid__product .wc-block-grid__product-add-to-cart .wp-block-button__link:hover {
    background: var(--lime-hover);
    color: var(--ink);
}
