/*
 Theme Name:   Storefront BMS Child
 Theme URI:    https://bps-bms.de
 Description:  Storefront Child Theme für die Bundesmaterialstelle – modernes, ruhiges Shop-Design mit tonalen Abstufungen der Akzentfarbe, Mega-Menü und durchgängigem Look für Shop, Warenkorb, Kasse und Konto.
 Author:       BMS
 Author URI:   https://bps-bms.de
 Template:     storefront
 Version:      3.0.16
 License:      GNU General Public License v2 or later
 License URI:  http://www.gnu.org/licenses/gpl-2.0.html
 Text Domain:  storefront-bms-child
*/

/* ==========================================================================
   INHALT
   0. Design-Tokens
   1. Grundlagen (Typografie, Seite, Container)
   2. Buttons
   3. Formularfelder
   4. Header
   5. Mega-Menü (Desktop) & mobiles Menü
   6. Hinweisbalken
   7. Seitentitel, Breadcrumbs, "Zurück"-Link
   8. Shop: Werkzeugleiste, Chips, Blättern
   9. Produktkarten (Shop, Blöcke, Empfehlungen)
   10. Produktseite
   11. Hinweise (Notices)
   12. Mini-Warenkorb
   13. Warenkorb & Kasse (Blöcke)
   14. Mein Konto
   15. Textseiten & Rechtstexte
   16. Startseite & Suche/404
   17. Footer
   18. Lightbox, Fokus, Kleinkram
   19. Responsive
   ========================================================================== */

/* ==========================================================================
   Schriften (selbst gehostet, assets/fonts/, OFL – siehe README dort)
   ========================================================================== */

@font-face {
    font-family: "Zilla Slab";
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url("assets/fonts/zilla-slab-500.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: "Zilla Slab";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("assets/fonts/zilla-slab-700.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: "Zilla Slab";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("assets/fonts/zilla-slab-400.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: "Zilla Slab";
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url("assets/fonts/zilla-slab-600.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: "Kalam";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("assets/fonts/kalam-700.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ==========================================================================
   0. Design-Tokens
   Die Akzent-Skala (--bms-accent, --bms-accent-25 … -900, --bms-accent-rgb)
   wird per PHP aus Storefronts Link/Akzentfarbe erzeugt und darf hier NICHT
   auf :root gesetzt werden (diese Datei lädt nach dem Inline-CSS).
   ========================================================================== */

:root {
    /* Warme Grundfarben (Entwurf „BMS Startseite Vorschau“) */
    --bms-leinen: #f1efea;        /* Seitenhintergrund: Leinen/Kohtenstoff hell */
    --bms-papier: #fcfbf8;        /* Karten, Header, Mega-Menü, Felder */
    --bms-kluft: #2e333a;         /* Text, Footer, Zähler */
    --bms-kluft-weich: #62676e;   /* Sekundärtext */
    --bms-glut: #9a6448;          /* Primär-Buttons (Kaufen) */
    --bms-glut-dunkel: #7d4f38;   /* Button-Hover, Eyebrows */
    --bms-wald: #4d5a52;          /* Moosgrün: Flächen, Marker, Hinweisbalken */
    --bms-linie: #e0ddd5;         /* Rahmen, Trennlinien */
    --bms-nacht: #16181b;         /* hinter dem Hero-Foto */
    --bms-sand-hell: #d9cfc2;     /* Akzente auf dunklen Flächen */
    --bms-stufe-biber: #9b5a55;
    --bms-stufe-woelflinge: #6b7f69;
    --bms-stufe-jungpfadfinder: #7d8f6e;
    --bms-stufe-pfadfinder: #45474a;

    --bms-ink: var(--bms-kluft);
    --bms-text: var(--bms-kluft);
    --bms-muted: var(--bms-kluft-weich);
    --bms-subtle: #8c9096;
    --bms-border: var(--bms-linie);
    --bms-border-strong: #cfcabf;
    --bms-bg: var(--bms-leinen);
    --bms-surface: var(--bms-papier);
    --bms-well: #f6f4ef;

    --bms-success: #3f7a4f;
    --bms-success-bg: #eef5ef;
    --bms-success-border: #c9dccd;
    --bms-danger: #b4433a;
    --bms-danger-bg: #f9eeec;
    --bms-danger-border: #ecc8c3;

    --bms-radius-sm: 8px;
    --bms-radius: 10px;
    --bms-radius-lg: 16px;
    --bms-radius-pill: 999px;

    --bms-shadow-sm: 0 1px 2px rgba(43, 38, 30, 0.06);
    --bms-shadow: 0 1px 2px rgba(43, 38, 30, 0.05), 0 6px 20px rgba(43, 38, 30, 0.08);
    --bms-shadow-lg: 0 2px 6px rgba(43, 38, 30, 0.06), 0 20px 44px rgba(43, 38, 30, 0.16);
    --bms-ring: 0 0 0 3px rgba(154, 100, 72, 0.22);

    --bms-container: 1320px;
    /* Einzug, mit dem vollbreite Bänder ihren Inhalt auf die Containerbreite bringen */
    --bms-inset: max(var(--bms-gutter), calc((100% - var(--bms-container)) / 2 + var(--bms-gutter)));
    --bms-gutter: 24px;
    --bms-gutter-wide: var(--bms-gutter); /* Seitenrand für Header und Startseite in voller Breite – gleich dem Inhalt, damit bis 1320 px alles fluchtet */
    --bms-header-h: 76px;
    --bms-control-h: 46px; /* einheitliche Höhe aller Header-Elemente */
    --bms-ease: cubic-bezier(0.2, 0.7, 0.2, 1);

    /* Schriftgrößen-Skala – überall nur diese Stufen verwenden */
    --fs-2xs: 0.6875rem;  /* 11px  Zähler, Badges */
    --fs-xs: 0.75rem;     /* 12px  Meta, MwSt.-Hinweis, Labels in Versalien */
    --fs-sm: 0.8125rem;   /* 13px  Sekundärtext, kleine Buttons */
    --fs-ui: 0.875rem;    /* 14px  Navigation, Chips, Formular-Labels */
    --fs-base: 0.9375rem; /* 15px  Fließtext */
    --fs-md: 1rem;        /* 16px  hervorgehobener Text, Eingabefelder mobil */
    --fs-lg: 1.125rem;    /* 18px  Karten-Überschriften */
    --fs-xl: 1.25rem;     /* 20px  Abschnitts-Überschriften */
    --fs-2xl: 1.5rem;     /* 24px  Sektionstitel, Summen */
    --fs-display: 1.75rem;/* 28px  Produktpreis */
    --fs-3xl: 2rem;       /* 32px  Seitentitel */

    --bms-font: "Zilla Slab", Rockwell, "Roboto Slab", Georgia, serif; /* Grundschrift (Nutzerwunsch Nov 2026) */
    --bms-font-display: "Zilla Slab", Rockwell, "Roboto Slab", Georgia, serif;
    --bms-font-hand: "Kalam", "Segoe Print", "Bradley Hand", cursive;

    /* Icons (CSS-Masken) */
    --bms-icon-bag: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 7V5a4 4 0 0 1 8 0v2'/%3E%3Cpath d='M5 9a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2z'/%3E%3Cpath d='M8 13h8v4H8z'/%3E%3C/svg%3E"); /* Rucksack */
    --bms-icon-sliders: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 6h10M18 6h2M4 12h4M12 12h8M4 18h12M20 18h0'/%3E%3Ccircle cx='16' cy='6' r='2'/%3E%3Ccircle cx='10' cy='12' r='2'/%3E%3Ccircle cx='18' cy='18' r='2'/%3E%3C/svg%3E");
    --bms-icon-eye: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E");
    --bms-icon-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E");
    --bms-icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E");
    --bms-icon-info: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cpath d='M12 16v-4M12 8h.01'/%3E%3C/svg%3E");
    --bms-icon-alert: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cpath d='M12 7.5v5M12 16h.01'/%3E%3C/svg%3E");
    --bms-icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
}

/* ==========================================================================
   1. Grundlagen
   ========================================================================== */

body,
button,
input,
select,
textarea,
.main-navigation ul li a,
.site-title,
.site-description,
.widget-title,
h1, h2, h3, h4, h5, h6 {
    font-family: var(--bms-font);
}

body {
    background-color: var(--bms-bg);
    color: var(--bms-text);
    font-weight: 400;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    letter-spacing: -0.003em;
    text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6,
.site-title,
.widget-title,
.wc-block-grid__product-title {
    font-family: var(--bms-font-display);
    color: var(--bms-ink);
    font-weight: 700;
    letter-spacing: 0;
}

a {
    color: var(--bms-accent);
    transition: color 0.15s ease;
}

a:hover {
    color: var(--bms-accent-800, var(--bms-accent));
}

::selection {
    background: var(--bms-accent-100, #dbe4f2);
    color: var(--bms-ink);
}

/* Container: breiter und mit einheitlichem Rand auf allen Seiten */
.col-full {
    box-sizing: border-box !important;
    max-width: var(--bms-container) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: var(--bms-gutter) !important;
    padding-right: var(--bms-gutter) !important;
}

.site-header .col-full::before,
.site-header .col-full::after,
.site-footer .col-full::before,
.site-footer .col-full::after {
    display: none;
}

/* Storefront setzt overflow-x: hidden auf body/.site – das macht beide zu Scroll-Containern
   und schaltet den Sticky-Header ab. "clip" schneidet genauso ab, ohne Sticky zu brechen. */
html body,
body #page.site {
    overflow-x: clip !important;
    overflow-y: visible !important;
}

/* Footer bleibt auch auf kurzen Seiten unten */
#page {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

#page > .site-content,
#page > #content {
    flex: 1 0 auto;
}

body.admin-bar #page {
    min-height: calc(100vh - 32px);
}

.site-content {
    padding-top: 2rem;
    padding-bottom: 3.5rem; /* einziger Abstand zwischen Inhalt und Footer */
}

/* Storefront stapelt sonst mehrere Außenabstände am Seitenende (site-main, content-area, hentry) */
.site-main,
.content-area,
.site-main > :last-child,
.site-main > .hentry:last-child {
    margin-bottom: 0 !important;
}

.hentry {
    margin-bottom: 2.5rem;
}

/* Gutenberg "weit"-Blöcke (Warenkorb, Kasse) nicht breiter als der Container */
.storefront-align-wide .alignwide,
.storefront-align-wide .alignfull {
    margin-left: 0 !important;
    margin-right: 0 !important;
    max-width: 100% !important;
    width: auto !important;
}

/* Sekundäre Navigation wandert in den Footer */
.secondary-navigation {
    display: none !important;
}

/* ==========================================================================
   2. Buttons
   Primär = volle Akzentfarbe (Kaufen, Kasse, Speichern)
   Tonal  = zarter Akzent-Ton (Karten "In den Warenkorb", sekundäre Aktionen)
   Neutral = weiß mit Rahmen (Optionen wählen, Details ansehen)
   ========================================================================== */

body .button,
body a.button,
body button.button,
body input[type="submit"],
body input[type="button"],
body .woocommerce #respond input#submit,
body .wp-block-button__link,
body .wc-block-components-button:not(.is-link),
body .wc-block-components-product-button__button,
body .checkout-button,
body .single_add_to_cart_button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5em;
    background-color: var(--bms-glut);
    color: #fff;
    border: 1px solid transparent;
    border-radius: var(--bms-radius);
    font-weight: 600;
    font-size: var(--fs-base);
    line-height: 1.2;
    padding: 0.8em 1.4em;
    text-decoration: none;
    box-shadow: none;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.2s ease, transform 0.15s ease;
}

body .button:hover,
body a.button:hover,
body button.button:hover,
body input[type="submit"]:hover,
body input[type="button"]:hover,
body .wp-block-button__link:hover,
body .wc-block-components-button:not(.is-link):hover,
body .wc-block-components-product-button__button:hover,
body .checkout-button:hover,
body .single_add_to_cart_button:hover {
    background-color: var(--bms-glut-dunkel);
    color: #fff;
    box-shadow: 0 6px 18px rgba(154, 100, 72, 0.28);
}

body .button:active,
/* Storefronts Customizer-CSS färbt .button.alt (Produktseiten-Button) mit höherer Spezifität ein */
body .button.alt,
body button.button.alt,
body a.button.alt,
body input.button.alt {
    background-color: var(--bms-glut) !important;
    border-color: var(--bms-glut) !important;
    color: #fff !important;
}

body .button.alt:hover,
body button.button.alt:hover,
body a.button.alt:hover,
body input.button.alt:hover {
    background-color: var(--bms-glut-dunkel) !important;
    border-color: var(--bms-glut-dunkel) !important;
    color: #fff !important;
}

body .single_add_to_cart_button:active {
    transform: translateY(1px);
}

/* WooCommerce-Blocks setzen Farbe/Radius mit hoher Spezifität – hier erzwingen */
body .wc-block-components-product-button .wc-block-components-product-button__button,
body .wc-block-components-button:not(.is-link),
body .wc-block-cart__submit-button,
body .wc-block-components-checkout-place-order-button {
    background-color: var(--bms-glut) !important;
    color: #fff !important;
    border: 0 !important;
    border-radius: var(--bms-radius) !important;
    font-weight: 600;
}

body .wc-block-components-button:not(.is-link):hover,
body .wc-block-cart__submit-button:hover,
body .wc-block-components-checkout-place-order-button:hover {
    background-color: var(--bms-glut-dunkel) !important;
}

body .button.disabled,
body .button:disabled,
body .single_add_to_cart_button.disabled {
    opacity: 0.45;
    box-shadow: none;
    cursor: not-allowed;
}

/* Tonal: sekundäre Aktionen */
body .woocommerce-orders-table a.button,
body .woocommerce-MyAccount-content table a.button,
body .woocommerce-MyAccount-content .woocommerce-Button--previous,
body .woocommerce-MyAccount-content .woocommerce-Button--next {
    background: var(--bms-accent-50, #f3f6fa);
    color: var(--bms-accent-800, var(--bms-accent));
    border-color: var(--bms-accent-100, #e3eaf4);
    font-size: var(--fs-sm);
    padding: 0.55em 1em;
    white-space: nowrap;
}

body .woocommerce-orders-table a.button:hover,
body .woocommerce-MyAccount-content table a.button:hover {
    background: var(--bms-accent-100, #e3eaf4);
    color: var(--bms-accent-800, var(--bms-accent));
    box-shadow: none;
}

/* Gutenberg-Buttons im Inhalt: Variante "Kontur" */
body .is-style-outline > .wp-block-button__link {
    background: transparent;
    color: var(--bms-accent);
    border: 1px solid var(--bms-accent-300, var(--bms-accent));
}

/* ==========================================================================
   3. Formularfelder – überall gleich
   ========================================================================== */

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="date"],
select,
textarea,
.woocommerce form .input-text,
.woocommerce form select,
.woocommerce form textarea,
.woocommerce form .password-input input,
.input-text {
    background-color: #fff;
    border: 1px solid var(--bms-border-strong);
    border-radius: var(--bms-radius);
    box-shadow: none;
    color: var(--bms-text);
    font-size: var(--fs-base);
    padding: 0.7em 0.9em;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}

input[type="text"]:hover,
input[type="email"]:hover,
input[type="tel"]:hover,
input[type="password"]:hover,
input[type="number"]:hover,
select:hover,
textarea:hover {
    border-color: var(--bms-subtle);
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="number"]:focus,
select:focus,
textarea:focus,
.woocommerce form .input-text:focus,
.woocommerce form select:focus,
.woocommerce form textarea:focus {
    background-color: #fff;
    border-color: var(--bms-accent);
    box-shadow: var(--bms-ring);
    outline: none;
}

select {
    appearance: none;
    -webkit-appearance: none;
    padding-right: 2.4em;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.85em center;
    background-size: 12px;
    cursor: pointer;
}

.woocommerce form .form-row label,
.woocommerce-form-row label {
    font-weight: 600;
    font-size: var(--fs-ui);
    color: var(--bms-text);
    margin-bottom: 0.35rem;
}

.woocommerce form .form-row .required {
    color: var(--bms-danger);
    text-decoration: none;
}

input[type="checkbox"],
input[type="radio"] {
    accent-color: var(--bms-accent);
}

/* WooCommerce-Blöcke (Kasse) */
.wc-block-components-text-input input,
.wc-block-components-textarea textarea,
.wc-blocks-components-select__select,
.wc-block-components-combobox .components-combobox-control__input {
    border: 1px solid var(--bms-border-strong) !important;
    border-radius: var(--bms-radius) !important;
    background: #fff !important;
    box-shadow: none !important;
}

.wc-block-components-text-input input:focus,
.wc-block-components-textarea textarea:focus,
.wc-blocks-components-select__select:focus,
.wc-block-components-combobox .components-combobox-control__input:focus {
    border-color: var(--bms-accent) !important;
    box-shadow: var(--bms-ring) !important;
    outline: none !important;
}

.wc-block-components-text-input.is-active label,
.wc-block-components-text-input label {
    color: var(--bms-muted);
}

.wc-block-components-quantity-selector {
    border-radius: var(--bms-radius) !important;
    border-color: var(--bms-border-strong) !important;
    overflow: hidden;
}

.wc-block-components-quantity-selector::after {
    border-color: var(--bms-border-strong) !important;
    border-radius: var(--bms-radius) !important;
}

.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"] {
    border-radius: 5px;
    border-color: var(--bms-border-strong);
}

.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked {
    background: var(--bms-accent);
    border-color: var(--bms-accent);
}

.wc-block-components-checkbox .wc-block-components-checkbox__mark {
    fill: #fff;
}

/* ==========================================================================
   4. Header
   ========================================================================== */

.site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    padding: 0 !important;
    margin-bottom: 0 !important;
    background-color: rgba(252, 251, 248, 0.94) !important; /* --bms-papier */
    -webkit-backdrop-filter: saturate(160%) blur(10px);
    backdrop-filter: saturate(160%) blur(10px);
    border-bottom: 1px solid var(--bms-border) !important;
    transition: box-shadow 0.2s ease;
}

body.admin-bar .site-header {
    top: 32px;
}

body.bms-scrolled .site-header {
    box-shadow: 0 6px 24px rgba(43, 38, 30, 0.09);
}

.site-header .col-full {
    display: flex;
    align-items: center;
    gap: 1rem; /* einheitlicher Abstand zwischen allen Header-Elementen */
    min-height: var(--bms-header-h);
}

/* Storefront-Floats/-Breiten im Flex-Header neutralisieren */
.site-header .site-branding,
.site-header .main-navigation,
.site-header .site-search,
.site-header .site-header-cart {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
    clear: none !important;
}

/* --- Marke --------------------------------------------------------------- */
.site-branding {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    align-self: center;
    height: var(--bms-control-h);
    padding: 0 !important;
}

.site-header .bms-brand {
    height: 100%;
}

.bms-brand {
    display: inline-flex;
    align-items: center;
    line-height: 1;
    gap: 0.7rem;
    color: inherit;
    text-decoration: none !important;
}

.bms-brand__logo {
    display: block;
    width: 46px !important;
    height: 46px !important;
    max-width: none !important;
    object-fit: contain;
    margin: 0 !important;
}

.bms-brand__text {
    display: flex;
    flex-direction: column;
    margin: 0;
    font-family: var(--bms-font-display);
    font-size: var(--fs-md);
    line-height: 1.15;
    letter-spacing: 0;
    color: var(--bms-accent);
}

/* Titel und Unterzeile: eine Schrift, eine Farbe – nur die Größe unterscheidet */
.bms-brand__title {
    font-size: var(--fs-md);
    font-weight: 700;
    color: inherit;
}

.bms-brand__subtitle {
    font-size: var(--fs-xs);
    font-weight: 500;
    color: inherit;
    margin-top: 2px;
}

.bms-brand:hover .bms-brand__text {
    color: var(--bms-accent-800, var(--bms-accent));
}

/* mehr Luft zwischen Marke und Menü (zusätzlich zum gap) */
@media (min-width: 768px) {
    .site-header .site-branding {
        margin-right: 1.5rem !important;
    }
}

/* --- Sortiment (Mega-Menü-Auslöser) ------------------------------------ */
.site-header .main-navigation {
    flex: 0 0 auto;
    position: static !important;
    padding: 0 !important;
    z-index: auto;
}

.main-navigation ul.menu > li {
    position: static;
}

@media (min-width: 768px) {
    .main-navigation > *:not(.primary-navigation):not(.menu-toggle) {
        display: none !important;
    }

    body .site-header .main-navigation ul.menu,
    body .site-header .main-navigation ul.nav-menu {
        margin: 0;
        display: flex;
        gap: 0.25rem;
    }

    body .site-header .main-navigation ul.menu > li > a,
    body .site-header .main-navigation ul.nav-menu > li > a {
        display: inline-flex !important;
        align-items: center;
        gap: 0.5rem;
        box-sizing: border-box;
        height: var(--bms-control-h);
        padding: 0 1rem;
        border-radius: 12px;
        background: var(--bms-accent-50, #f3f6fa);
        color: var(--bms-ink);
        font-size: var(--fs-ui);
        font-weight: 600;
        line-height: 1.2;
        white-space: nowrap;
        transition: background-color 0.15s ease, color 0.15s ease;
    }

    body .site-header .main-navigation ul.menu > li > a:hover,
    body .site-header .main-navigation ul.menu > li:hover > a,
    body .site-header .main-navigation ul.menu > li.mega-menu-open > a,
    body .site-header .main-navigation ul.menu > li:focus-within > a {
        background: var(--bms-accent-100, #e3eaf4);
        color: var(--bms-accent-800, var(--bms-accent));
    }

    /* Storefront-Hover-Pfeil unter Menüpunkten entfernen */
    .main-navigation ul.menu > li.menu-item-has-children:hover::after {
        display: none;
    }
}

.has-mega-menu .menu-grid {
    flex-shrink: 0;
    color: var(--bms-accent);
}

.has-mega-menu .menu-arrow {
    flex-shrink: 0;
    opacity: 0.6;
    transition: transform 0.2s ease;
}

.has-mega-menu:hover .menu-arrow,
.has-mega-menu.mega-menu-open .menu-arrow {
    transform: rotate(180deg);
}

/* --- Suche ---------------------------------------------------------------- */
.site-header .site-search {
    display: block !important;
    flex: 1 1 auto;
    max-width: none;
    min-width: 0;
    margin: 0 !important;
    font-size: var(--fs-md);
}

.site-search .widget_product_search {
    display: block !important;
    margin: 0 !important;
}

.site-search .woocommerce-product-search {
    position: relative;
    display: flex !important;
    align-items: center;
    margin: 0;
}

/* Storefront-Font-Icon durch SVG ersetzen */
.site-search .widget_product_search form::before,
.site-search .woocommerce-product-search::before {
    content: "" !important;
    position: absolute;
    left: 15px !important;
    top: 50% !important;
    width: 18px;
    height: 18px;
    transform: translateY(-50%);
    background: var(--bms-muted);
    -webkit-mask: var(--bms-icon-search) center / contain no-repeat;
    mask: var(--bms-icon-search) center / contain no-repeat;
    pointer-events: none;
    z-index: 1;
}

.site-search .search-field,
.site-search .widget_product_search input[type="search"] {
    display: block !important;
    width: 100% !important;
    height: var(--bms-control-h) !important;
    padding: 0 1rem 0 2.75rem !important;
    border: 1px solid transparent !important;
    border-radius: 12px !important;
    background: var(--bms-accent-50, #f3f6fa) !important;
    font-size: var(--fs-base) !important;
    line-height: var(--bms-control-h) !important;
    color: var(--bms-text);
    box-shadow: none !important;
}

.site-search .search-field::placeholder {
    color: var(--bms-muted);
    opacity: 1;
}

.site-search .search-field:hover {
    border-color: var(--bms-accent-100, #e3eaf4) !important;
}

/* Fokus: gleiche (höhere) Spezifität wie die Grundregel, sonst greift er nicht */
.site-search .search-field:hover,
.site-search .widget_product_search input[type="search"]:hover {
    border-color: var(--bms-accent-200, #c9d6ea) !important;
}

.site-search .search-field:focus,
.site-search .widget_product_search input[type="search"]:focus {
    background: #fff !important;
    border-color: var(--bms-accent) !important;
    box-shadow: var(--bms-ring) !important;
    outline: none !important;
}

.site-search .woocommerce-product-search:focus-within::before {
    background: var(--bms-accent);
}

/* --- Live-Suche (Trefferliste unter dem Suchfeld) ------------------------ */
.bms-ls {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    right: 0;
    z-index: 1001;
    max-height: min(70vh, 560px);
    overflow-y: auto;
    padding: 0.4rem;
    background: #fff;
    border: 1px solid var(--bms-border);
    border-radius: var(--bms-radius-lg);
    box-shadow: var(--bms-shadow-lg);
    overscroll-behavior: contain;
    animation: bms-ls-in 0.16s var(--bms-ease);
}

.bms-ls[hidden] {
    display: none;
}

@keyframes bms-ls-in {
    from { opacity: 0; transform: translateY(-4px); }
}

.bms-ls__item {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.85rem;
    padding: 0.5rem 0.6rem;
    border-radius: var(--bms-radius);
    color: var(--bms-text) !important;
    text-decoration: none !important;
}

.bms-ls__item.is-active {
    background: var(--bms-accent-50, #f3f6fa);
}

.bms-ls__img {
    display: block;
    width: 48px;
    height: 48px;
    overflow: hidden;
    background: var(--bms-well);
    border-radius: var(--bms-radius-sm);
    isolation: isolate;
}

.bms-ls__img img {
    display: block;
    width: 100%;
    height: 100%;
    padding: 3px;
    box-sizing: border-box;
    object-fit: contain;
    mix-blend-mode: multiply;
}

.bms-ls__text {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}

.bms-ls__name {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: var(--fs-ui);
    font-weight: 600;
    line-height: 1.3;
    color: var(--bms-ink);
}

.bms-ls__name mark {
    padding: 0;
    background: var(--bms-accent-100, #e3eaf4);
    border-radius: 3px;
    color: inherit;
}

.bms-ls__cat {
    font-size: var(--fs-xs);
    color: var(--bms-muted);
}

.bms-ls__price {
    font-size: var(--fs-ui);
    font-weight: 700;
    color: var(--bms-ink);
    white-space: nowrap;
}

.bms-ls__price .bms-price-meta,
.bms-ls__price del {
    display: none;
}

.bms-ls__price ins {
    text-decoration: none;
}

.bms-ls__empty {
    padding: 1rem 0.75rem;
    font-size: var(--fs-ui);
    color: var(--bms-muted);
}

.bms-ls__empty strong {
    color: var(--bms-ink);
}

.bms-ls__all {
    display: block;
    margin-top: 0.25rem;
    padding: 0.7rem 0.75rem;
    border-top: 1px solid var(--bms-border);
    font-size: var(--fs-ui);
    font-weight: 600;
    color: var(--bms-accent) !important;
    text-decoration: none !important;
}

.bms-ls__all:hover {
    color: var(--bms-accent-700, var(--bms-accent)) !important;
}

/* Ladeindikator rechts im Feld */
.site-search .woocommerce-product-search.bms-ls-loading::after {
    content: "";
    position: absolute;
    right: 14px;
    top: 50%;
    width: 16px;
    height: 16px;
    margin-top: -8px;
    border: 2px solid var(--bms-accent-100, #e3eaf4);
    border-top-color: var(--bms-accent);
    border-radius: 50%;
    animation: bms-spin 0.7s linear infinite;
}

@keyframes bms-spin {
    to { transform: rotate(360deg); }
}

.site-search button[type="submit"] {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    border: 0 !important;
}

/* --- Konto & Warenkorb -------------------------------------------------- */
.bms-account-link,
.site-header-cart .cart-contents.bms-cart {
    display: inline-flex !important;
    align-items: center;
    gap: 0.6rem;
    flex-shrink: 0;
    box-sizing: border-box;
    height: var(--bms-control-h);
    padding: 0 0.85rem 0 0.3rem !important;
    border-radius: 12px;
    color: var(--bms-text) !important;
    text-decoration: none !important;
    transition: background-color 0.15s ease, color 0.15s ease;
}

.bms-account-link:hover,
.bms-account-link.is-current {
    background: var(--bms-accent-50, #f3f6fa);
    color: var(--bms-accent) !important;
}

.bms-header-icon {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 9px;
    color: var(--bms-ink);
    flex-shrink: 0;
}

.bms-header-label,
.site-header-cart .cart-contents span.bms-header-label {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    line-height: 1.2;
    white-space: nowrap;
}

.site-header-cart .cart-contents span.bms-header-icon {
    display: inline-flex;
}

.site-header-cart .cart-contents span.bms-cart__badge {
    display: block;
}

.bms-header-label small {
    font-size: var(--fs-xs);
    font-weight: 500;
    color: var(--bms-muted);
}

.bms-header-label strong {
    font-size: var(--fs-ui);
    font-weight: 650;
    color: var(--bms-ink);
}

.bms-header-label strong .amount,
.bms-header-label strong bdi {
    color: inherit !important;
    font-weight: inherit;
}

.site-header-cart {
    flex-shrink: 0;
    position: relative;
    list-style: none;
    margin: 0 !important;
    padding: 0;
}

.site-header-cart > li {
    list-style: none;
}

.site-header-cart .cart-contents.bms-cart {
    min-width: 184px;
    padding-right: 1.1rem !important;
    background: var(--bms-accent-50, #f3f6fa);
}

.site-header-cart .cart-contents.bms-cart:hover,
.site-header-cart:hover .cart-contents.bms-cart,
.site-header-cart .current-menu-item .cart-contents.bms-cart {
    background: var(--bms-accent-100, #e3eaf4);
}

.site-header-cart .cart-contents.bms-cart .bms-header-icon {
    background: #fff;
    color: var(--bms-accent);
    box-shadow: var(--bms-shadow-sm);
}

/* Storefront-Korb-Icon (::after) aus */
.site-header-cart .cart-contents::after,
.site-header-cart .cart-contents::before {
    content: none !important;
    display: none !important;
}

.site-header-cart .cart-contents .count {
    display: none;
}

.bms-cart__badge {
    position: absolute;
    top: -6px;
    right: -6px;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    box-sizing: border-box;
    border-radius: var(--bms-radius-pill);
    background: var(--bms-kluft);
    color: #fff;
    border: 2px solid var(--bms-papier);
    font-size: 0.625rem;
    font-weight: 700;
    line-height: 14px;
    text-align: center;
    transition: transform 0.2s var(--bms-ease);
}

.bms-cart__badge.is-empty {
    background: var(--bms-subtle);
}

/* ==========================================================================
   5. Mega-Menü (Desktop) & mobiles Menü
   ========================================================================== */

/* Storefronts versteckte Untermenüs im Mega-Menü sichtbar machen */
.main-navigation ul .mega-menu-dropdown ul {
    position: static !important;
    left: auto !important;
    visibility: visible !important;
    opacity: 1 !important;
    box-shadow: none !important;
    border: none !important;
    background: transparent !important;
    float: none !important;
    width: auto !important;
    padding: 0 !important;
    margin: 0 !important;
}

.main-navigation ul .mega-menu-dropdown ul.mega-menu-list {
    display: block !important;
}

.main-navigation ul .mega-menu-dropdown ul.mega-menu-list[data-columns="2"] {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    column-gap: 1.5rem;
}

.mega-menu-dropdown {
    position: absolute;
    top: calc(100% + 1px);
    left: 0;
    right: 0;
    margin: 0 auto;
    width: min(calc(100vw - 2 * var(--bms-gutter)), 1000px);
    background: var(--bms-papier);
    border: 1px solid var(--bms-border);
    border-top: 0;
    border-radius: 0 0 var(--bms-radius-lg) var(--bms-radius-lg);
    box-shadow: var(--bms-shadow-lg);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-6px);
    transition: opacity 0.2s ease, transform 0.2s var(--bms-ease), visibility 0.2s;
    z-index: 9999;
}

/* unsichtbare Brücke zwischen Button und Panel */
.mega-menu-dropdown::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -20px;
    height: 20px;
}

.has-mega-menu:hover .mega-menu-dropdown,
.has-mega-menu:focus-within .mega-menu-dropdown,
.has-mega-menu.mega-menu-open .mega-menu-dropdown {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}

.mega-menu-content {
    /* unten Innenabstand: die Stufen-Spalte ragt mit -0.5rem über das Raster hinaus,
       ohne Polster wäre der Inhalt immer 8 px zu hoch und das Menü stets scrollbar */
    padding: 1.75rem 2rem 1.75rem;
    max-height: calc(100vh - var(--bms-header-h) - 40px);
    overflow-y: auto;
    overflow-x: hidden;
}

.mega-menu-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 1.5rem 2rem;
    align-items: start;
}

.mega-menu-column {
    min-width: 0;
}

.mega-menu-column.wide {
    grid-column: span 2;
}

.mega-menu-heading {
    margin: 0 0 0.6rem;
    padding: 0 0 0.6rem;
    line-height: 1.35;
    white-space: normal !important; /* lange Namen wie „Liederbücher und Arbeitshilfen“ umbrechen */
    border-bottom: 1px solid var(--bms-border);
    font-size: var(--fs-sm);
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    white-space: nowrap;
}

.mega-menu-heading a {
    display: block;
    color: var(--bms-accent) !important;
    font-weight: inherit !important;
    text-decoration: none;
}

.mega-menu-heading a:hover {
    color: var(--bms-accent-800, var(--bms-accent)) !important;
}

/* Hervorgehobener erster Block (Pfadfinderstufen): bündelt Produkte aus allen Bereichen */
.mega-menu-column.is-featured {
    align-self: stretch;
    margin: -0.5rem 0;
    padding: 1rem 1.1rem 0.9rem;
    background: var(--bms-leinen);
    border: 1px solid var(--bms-linie);
    border-radius: var(--bms-radius-lg);
}

.mega-menu-column.is-featured .mega-menu-heading {
    margin-bottom: 0.35rem;
    padding-bottom: 0;
    border-bottom: 0;
}

.mega-menu-intro {
    margin: 0 0 0.75rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--bms-accent-100, #e3eaf4);
    font-size: var(--fs-xs);
    line-height: 1.45;
    color: var(--bms-muted);
    white-space: normal;
}

.main-navigation ul .mega-menu-dropdown .mega-menu-column.is-featured ul.mega-menu-list a:hover,
.mega-menu-column.is-featured .mega-menu-list a:hover {
    background: #fff !important;
}

.mega-menu-column.is-featured .mega-menu-count {
    background: #fff;
}

/* mobil: Stufen-Gruppe ebenfalls abgesetzt */
.bms-mobile-cats__group.is-featured {
    margin: 0 0 0.5rem;
    padding: 0 0.75rem;
    background: var(--bms-leinen);
    border: 1px solid var(--bms-linie) !important;
    border-radius: var(--bms-radius-lg);
}

.bms-mobile-cats__group.is-featured .bms-mobile-cats__count {
    background: #fff;
}

/* Kategorien ohne Unterkategorien: normale Spalte, Überschrift ohne Trennlinie-Sonderfall */
.mega-menu-column.no-children .mega-menu-heading {
    border-bottom: 1px solid var(--bms-border);
}

.main-navigation ul .mega-menu-dropdown .mega-menu-column.no-children ul.mega-menu-list a {
    justify-content: flex-start;
    gap: 0.35rem;
    color: var(--bms-accent) !important;
    font-weight: 600 !important;
}

.mega-menu-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.mega-menu-list li {
    margin: 0;
    padding: 0;
    break-inside: avoid;
}

.main-navigation ul .mega-menu-dropdown ul.mega-menu-list a,
.mega-menu-list a {
    display: flex !important;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    width: auto !important;
    padding: 0.4rem 0.6rem !important;
    margin: 0 -0.6rem;
    border-radius: var(--bms-radius-sm);
    font-size: var(--fs-ui) !important;
    font-weight: 400 !important;
    line-height: 1.35;
    color: var(--bms-text) !important;
    white-space: nowrap;
    transition: background-color 0.15s ease, color 0.15s ease;
}

.main-navigation ul .mega-menu-dropdown ul.mega-menu-list a:hover,
.mega-menu-list a:hover {
    background: var(--bms-accent-50, #f3f6fa) !important;
    color: var(--bms-accent) !important;
}

.mega-menu-count {
    flex-shrink: 0;
    padding: 0 0.5em;
    border-radius: var(--bms-radius-pill);
    background: var(--bms-leinen);
    color: var(--bms-muted);
    font-size: var(--fs-2xs);
    line-height: 1.6;
}

.mega-menu-list a:hover .mega-menu-count {
    background: #fff;
    color: var(--bms-accent);
}

/* Gesamtes Sortiment: Zeile über dem Raster */
.main-navigation ul .mega-menu-dropdown a.mega-menu-all {
    display: flex !important;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.25rem 1rem;
    margin: 0 0 1.25rem;
    padding: 0.9rem 1.1rem !important;
    background: var(--bms-papier);
    border: 1px solid var(--bms-border);
    border-radius: var(--bms-radius);
    text-decoration: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.main-navigation ul .mega-menu-dropdown a.mega-menu-all:hover {
    border-color: var(--bms-accent);
    box-shadow: var(--bms-shadow-sm);
    background: var(--bms-papier);
}

.mega-menu-all__title {
    font-family: var(--bms-font-display);
    font-size: var(--fs-lg);
    font-weight: 700;
    color: var(--bms-kluft);
}

.mega-menu-all__sub {
    font-size: var(--fs-ui);
    font-weight: 600;
    color: var(--bms-accent);
}

.mega-menu-all:hover .mega-menu-all__sub {
    color: var(--bms-accent-800, var(--bms-accent));
}

/* Stufen: Farbpunkt und Name links, Zähler rechts */
.main-navigation ul .mega-menu-dropdown .mega-menu-column.is-featured ul.mega-menu-list a {
    justify-content: flex-start;
    align-items: center;
    gap: 0;
}

.mega-menu-column.is-featured .mega-menu-list .mega-menu-count {
    margin-left: auto;
}

/* Halstuch-Farbpunkt vor den Stufen */
.mega-menu-dot {
    display: inline-block;
    width: 10px;
    height: 10px;
    margin-right: 0.45em;
    border-radius: 50%;
    background: var(--dot, var(--bms-kluft));
    vertical-align: 0;
}

.mega-menu-content::-webkit-scrollbar {
    width: 6px;
}

.mega-menu-content::-webkit-scrollbar-thumb {
    background: var(--bms-border-strong);
    border-radius: 999px;
}

/* Festes Raster: Stufen-Karte links, rechts je Hauptkategorie eine Spalte (--mega-cols aus PHP);
   Kategorien ohne Unterkategorien stehen als flache Karte darunter */
.mega-menu-column:not(.is-featured) .mega-menu-heading {
    display: flex;
    align-items: flex-end;
    min-height: 2.7em; /* Trennlinien bleiben auf einer Höhe, auch bei zweizeiligen Namen */
}

.main-navigation ul .mega-menu-dropdown ul.mega-menu-list a,
.mega-menu-list a {
    white-space: normal !important;
}

@media (min-width: 1025px) {
    body .site-header .mega-menu-dropdown {
        width: min(calc(100vw - 2 * var(--bms-gutter)), 1120px);
    }

    body .site-header .mega-menu-grid {
        grid-template-columns: 230px repeat(var(--mega-cols, 3), minmax(0, 1fr));
        column-gap: 2rem;
    }

    body .site-header .mega-menu-column.is-featured {
        grid-row: span 2;
    }

    body .site-header .mega-menu-column.no-children {
        grid-column: span 2;
    }
}

.mega-menu-column.no-children {
    order: 1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.25rem 1.5rem;
    align-self: start;
    padding: 0.85rem 1.1rem;
    background: var(--bms-accent-25);
    border: 1px solid var(--bms-accent-100);
    border-radius: var(--bms-radius-lg);
}

.mega-menu-grid .mega-menu-column.no-children .mega-menu-heading {
    min-height: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.mega-menu-column.no-children .mega-menu-list li {
    margin: 0;
}

.main-navigation ul .mega-menu-dropdown .mega-menu-column.no-children ul.mega-menu-list a {
    margin: 0 !important;
    padding: 0 !important;
    white-space: nowrap !important;
}

@media (min-width: 768px) and (max-width: 1024px) {
    body .site-header .mega-menu-grid {
        grid-template-columns: 200px repeat(2, minmax(0, 1fr));
    }

    body .site-header .mega-menu-column.no-children {
        grid-column: 2 / -1;
    }
}

/* --- Mobiles Menü (Hamburger) ------------------------------------------- */
.bms-mobile-cats {
    display: none;
}

/* ==========================================================================
   6. Hinweisbalken (über dem Header)
   ========================================================================== */

.bms-infobar {
    background: var(--bms-wald);
    color: #fff;
    border-bottom: 1px solid rgba(0, 0, 0, 0.15);
    overflow: hidden;
    max-height: 200px;
    transition: max-height 0.25s ease, opacity 0.25s ease;
}

.bms-infobar.has-custom-bg {
    border-bottom-color: rgba(0, 0, 0, 0.08);
}

/* Schriftfarbe je nach Helligkeit der eigenen Hintergrundfarbe (Klasse aus PHP) */
.bms-infobar.is-dark,
.bms-infobar.is-dark .bms-infobar__text,
.bms-infobar.is-dark .bms-infobar__close {
    color: #fff;
}

.bms-infobar.is-light,
.bms-infobar.is-light .bms-infobar__text,
.bms-infobar.is-light .bms-infobar__close {
    color: var(--bms-ink);
}

.bms-infobar.has-custom-bg a.bms-infobar__text {
    text-decoration-color: currentColor;
    text-decoration-thickness: 1px;
}

.bms-infobar.is-dark .bms-infobar__close:hover,
.bms-infobar:not(.has-custom-bg) .bms-infobar__close:hover {
    background: rgba(255, 255, 255, 0.15) !important;
    color: #fff;
}

.bms-infobar.is-dismissed {
    max-height: 0;
    opacity: 0;
}

.bms-infobar__inner {
    position: relative;
    max-width: var(--bms-container);
    margin: 0 auto;
    padding: 0.65rem 3rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    box-sizing: border-box;
}

.bms-infobar__icon {
    flex-shrink: 0;
    color: inherit;
}

.bms-infobar.has-custom-bg .bms-infobar__icon {
    color: inherit;
}

.bms-infobar__text {
    color: inherit;
    font-size: var(--fs-ui);
    font-weight: 600;
    line-height: 1.45;
    text-align: center;
}

a.bms-infobar__text {
    text-decoration: underline;
    text-decoration-color: rgba(255, 255, 255, 0.5);
    text-underline-offset: 3px;
}

a.bms-infobar__text:hover {
    text-decoration-color: #fff;
}

a.bms-infobar__text:hover {
    color: inherit;
    text-decoration-color: currentColor;
}

.bms-infobar__close {
    position: absolute;
    right: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    width: 28px;
    height: 28px;
    padding: 0 !important;
    border: 0;
    border-radius: 8px;
    background: transparent !important;
    color: inherit !important;
    font-size: 1.3rem;
    line-height: 1;
    cursor: pointer;
    opacity: 0.6;
    transition: opacity 0.15s ease, background-color 0.15s ease;
}

.bms-infobar__close:hover {
    opacity: 1;
    background: rgba(var(--bms-accent-rgb, 17, 67, 146), 0.08) !important;
}

/* ==========================================================================
   7. Seitentitel, Breadcrumbs, "Zurück"-Link
   ========================================================================== */

.entry-title,
.page-title,
.woocommerce-products-header__title {
    margin: 0;
    font-size: var(--fs-3xl);
    font-weight: 750;
    line-height: 1.15;
    letter-spacing: -0.025em;
    color: var(--bms-ink);
}

.hentry.type-page .entry-header,
.page .entry-header,
.woocommerce-products-header {
    margin: 0 0 1.75rem !important;
    padding: 0 !important;
    border: 0 !important;
    text-align: left;
}

.storefront-full-width-content .woocommerce-products-header {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.25rem 0.75rem;
    padding-bottom: 1.25rem !important;
    margin-bottom: 1.25rem !important;
    border-bottom: 1px solid var(--bms-border) !important;
}

.bms-title-count {
    margin: 0;
    font-size: var(--fs-ui);
    color: var(--bms-muted);
}

.term-description,
.woocommerce-products-header .page-description {
    flex-basis: 100%;
    margin: 0.5rem 0 0;
    max-width: 52rem;
    color: var(--bms-muted);
}

.term-description p:last-child {
    margin-bottom: 0;
}

/* Breadcrumbs */
.storefront-breadcrumb {
    margin: 0 !important;
    padding: 1.1rem 0 0 !important;
}

.storefront-breadcrumb + .site-content,
.storefront-breadcrumb ~ .site-content {
    padding-top: 1.25rem;
}

.woocommerce-breadcrumb {
    margin: 0;
    padding: 0;
    font-size: var(--fs-sm);
    color: var(--bms-subtle);
}

.woocommerce-breadcrumb a {
    color: var(--bms-muted) !important;
    text-decoration: none;
}

.woocommerce-breadcrumb a:hover {
    color: var(--bms-accent) !important;
}

.woocommerce-breadcrumb .breadcrumb-separator {
    padding: 0 0.4em;
    opacity: 0.6;
}

/* "Zurück zu …" auf der Produktseite */
.bms-back-to-shop {
    margin-bottom: 1.25rem;
}

.bms-back-to-shop a {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.4rem 0.75rem 0.4rem 0.5rem;
    border-radius: var(--bms-radius-pill);
    background: #fff;
    border: 1px solid var(--bms-border);
    font-size: var(--fs-sm);
    font-weight: 500;
    color: var(--bms-muted);
    text-decoration: none;
    transition: color 0.15s ease, border-color 0.15s ease;
}

.bms-back-to-shop a:hover {
    color: var(--bms-accent);
    border-color: var(--bms-accent-200, #c9d6ea);
}

/* ==========================================================================
   8. Shop: Werkzeugleiste, Chips, Blättern
   ========================================================================== */

.bms-shop-toolbar {
    margin: 0 0 1.75rem;
}

/* Sortierung rechts in der Titelzeile */
.bms-shop-sort {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-left: auto;
}

.bms-shop-sort__label {
    font-size: var(--fs-sm);
    color: var(--bms-muted);
    white-space: nowrap;
}

.bms-shop-sort .woocommerce-ordering {
    margin: 0 !important;
    float: none !important;
}

body .woocommerce-ordering select {
    min-height: 40px;
    width: auto;
    padding: 0.45em 2.4em 0.45em 0.9em;
    border: 1px solid var(--bms-border);
    border-radius: var(--bms-radius);
    background-color: #fff;
    font-size: var(--fs-ui);
    font-weight: 500;
    color: var(--bms-text);
}

.storefront-full-width-content .woocommerce-products-header {
    align-items: center !important;
}

/* Hauptkategorien als Segment-Leiste (wie ein Umschalter) */
.bms-category-nav,
.bms-subchips {
    display: inline-flex;
    flex-wrap: nowrap;
    gap: 2px;
    max-width: 100%;
    margin: 0;
    padding: 4px;
    overflow-x: auto;
    scrollbar-width: none;
    background: var(--bms-accent-50, #f3f6fa);
    border: 1px solid var(--bms-accent-100, #e3eaf4);
    border-radius: 12px;
    -webkit-overflow-scrolling: touch;
}

.bms-category-nav::-webkit-scrollbar,
.bms-subchips::-webkit-scrollbar {
    display: none;
}

.bms-cat-link {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    padding: 0.55em 1.05em;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: var(--bms-text) !important;
    font-family: inherit;
    font-size: var(--fs-ui);
    font-weight: 500;
    line-height: 1.25;
    white-space: nowrap;
    text-decoration: none !important;
    cursor: pointer;
    transition: background-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.bms-cat-link:hover {
    background: rgba(255, 255, 255, 0.7);
    color: var(--bms-accent) !important;
}

.bms-cat-link.active,
.bms-cat-link.active:hover {
    background: #fff;
    color: var(--bms-ink) !important;
    font-weight: 600;
    box-shadow: 0 1px 2px rgba(43, 38, 30, 0.08), 0 0 0 1px var(--bms-accent-100, #e3eaf4);
}

/* Unterkategorien: zweite, leichtere Leiste darunter */
.bms-subchips-wrap {
    margin: -1rem 0 1.75rem;
}

.bms-subchips {
    background: #fff;
    border-color: var(--bms-border);
}

.bms-subchips .bms-cat-link {
    padding: 0.42em 0.9em;
    font-size: var(--fs-sm);
}

.bms-subchips .bms-cat-link:hover {
    background: var(--bms-accent-50, #f3f6fa);
}

.bms-subchips .bms-cat-link.active,
.bms-subchips .bms-cat-link.active:hover {
    background: var(--bms-accent-50, #f3f6fa);
    color: var(--bms-accent-800, var(--bms-accent)) !important;
    box-shadow: inset 0 0 0 1px var(--bms-accent-200, #c9d6ea);
}

/* Untere Leiste: Ergebnis links, Blättern rechts */
body .storefront-sorting {
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 2.5rem 0 0 !important;
    padding: 1.5rem 0 0;
    border-top: 1px solid var(--bms-border);
    overflow: visible !important;
}

body .storefront-sorting::before,
body .storefront-sorting::after {
    content: none !important;
    display: none !important;
}

body .storefront-sorting .woocommerce-result-count {
    margin: 0 !important;
    float: none !important;
    font-size: var(--fs-ui);
    color: var(--bms-muted);
}

body .storefront-sorting .woocommerce-result-count strong {
    color: var(--bms-ink);
    font-weight: 600;
}

body .storefront-sorting .woocommerce-ordering {
    display: none;
}

body nav.woocommerce-pagination {
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important; /* Storefront: Striche ober- und unterhalb */
    width: auto;
}

body nav.woocommerce-pagination ul.page-numbers {
    display: inline-flex !important;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin: 0;
    padding: 0;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: visible;
}

body nav.woocommerce-pagination ul.page-numbers li {
    display: block;
    float: none;
    margin: 0 !important;
    border: 0 !important;
}

body nav.woocommerce-pagination ul.page-numbers li .page-numbers {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px !important;
    padding: 0 0.6rem !important;
    margin: 0 !important;
    box-sizing: border-box;
    border: 1px solid var(--bms-border) !important;
    border-radius: var(--bms-radius) !important;
    background: #fff !important;
    color: var(--bms-text) !important;
    font-size: var(--fs-ui) !important;
    font-weight: 500;
    line-height: 1 !important;
    text-decoration: none;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

body nav.woocommerce-pagination ul.page-numbers li a.page-numbers:hover {
    background: var(--bms-accent-50, #f3f6fa) !important;
    border-color: var(--bms-accent-200, #c9d6ea) !important;
    color: var(--bms-accent) !important;
}

body nav.woocommerce-pagination ul.page-numbers li .page-numbers.current {
    background: var(--bms-accent) !important;
    border-color: var(--bms-accent) !important;
    color: #fff !important;
    font-weight: 600;
}

body nav.woocommerce-pagination ul.page-numbers li .page-numbers.dots {
    min-width: 24px;
    border-color: transparent !important;
    background: transparent !important;
    color: var(--bms-muted) !important;
}

body nav.woocommerce-pagination ul.page-numbers li .page-numbers::after,
body nav.woocommerce-pagination ul.page-numbers li .page-numbers::before {
    content: none !important;
}

/* ==========================================================================
   9. Produktkarten
   ========================================================================== */

ul.products {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1.25rem !important;
    margin: 0 !important;
    padding: 0;
}

ul.products::before,
ul.products::after {
    display: none !important;
    content: none !important;
}

@media (min-width: 1700px) {
    ul.products {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }
}

ul.products.columns-1 { grid-template-columns: minmax(0, 1fr); }
ul.products.columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
ul.products.columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

ul.products li.product,
.wc-block-grid__products .wc-block-grid__product,
.wp-block-woocommerce-cart-cross-sells-block .cross-sells-product {
    position: relative;
    display: flex;
    flex-direction: column;
    width: auto !important;
    max-width: none !important;
    float: none !important;
    margin: 0 !important;
    padding: 0.75rem !important;
    box-sizing: border-box;
    text-align: left;
    background: var(--bms-surface);
    border: 1px solid var(--bms-border);
    border-radius: var(--bms-radius-lg);
    box-shadow: var(--bms-shadow-sm);
    transition: border-color 0.2s ease, box-shadow 0.25s var(--bms-ease), transform 0.25s var(--bms-ease);
}

ul.products li.product:hover,
.wc-block-grid__products .wc-block-grid__product:hover,
.wp-block-woocommerce-cart-cross-sells-block .cross-sells-product:hover {
    border-color: var(--bms-accent-200, #c9d6ea);
    box-shadow: var(--bms-shadow);
    transform: translateY(-2px);
}

ul.products li.product a.woocommerce-LoopProduct-link,
.wc-block-grid__product .wc-block-grid__product-link {
    display: flex;
    flex-direction: column;
    flex: 1;
    color: inherit;
    text-decoration: none !important;
}

/* Bild in zart getönter Fläche – weiße Produktfotos verschmelzen per multiply
   mit dem Hintergrund der umgebenden Fläche */
.bms-card-media,
.wc-block-grid__product .wc-block-grid__product-image,
.wp-block-woocommerce-cart-cross-sells-block .wc-block-components-product-image {
    display: block;
    margin: 0 0 0.9rem !important;
    background: var(--bms-well);
    border-radius: var(--bms-radius);
    overflow: hidden;
    isolation: isolate;
}

ul.products li.product a img,
.wc-block-grid__product .wc-block-grid__product-image img,
.wp-block-woocommerce-cart-cross-sells-block .wc-block-components-product-image img {
    display: block;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1;
    object-fit: contain !important;
    margin: 0 !important;
    padding: 9%;
    box-sizing: border-box;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0;
    mix-blend-mode: multiply;
    transition: transform 0.35s var(--bms-ease);
}

ul.products li.product:hover .bms-card-media img {
    transform: scale(1.03);
}

ul.products li.product .woocommerce-loop-product__title,
ul.products li.product h2,
.wc-block-grid__product .wc-block-grid__product-title,
.wp-block-woocommerce-cart-cross-sells-block .wc-block-components-product-title {
    font-family: var(--bms-font);
    min-height: 2.7em;
    margin: 0 0 0.15rem !important;
    padding: 0 0.25rem !important;
    font-size: var(--fs-ui) !important;
    font-weight: 600 !important;
    line-height: 1.35;
    letter-spacing: -0.005em;
    color: var(--bms-ink) !important;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    hyphens: auto;
    -webkit-hyphens: auto;
    overflow-wrap: break-word;
}

ul.products li.product .price,
.wc-block-grid__product .wc-block-grid__product-price,
.wp-block-woocommerce-cart-cross-sells-block .wc-block-components-product-price {
    display: block;
    margin: 0 0 auto !important;
    padding: 0.35rem 0.25rem 0.85rem !important;
    font-size: var(--fs-md) !important;
    font-weight: 700 !important;
    letter-spacing: -0.01em;
    color: var(--bms-ink) !important;
}

ul.products li.product .price del {
    color: var(--bms-subtle);
    font-size: var(--fs-sm);
    font-weight: 400;
}

ul.products li.product .price ins {
    color: var(--bms-danger);
    font-weight: 700;
    text-decoration: none;
}

.bms-price-meta {
    font-family: var(--bms-font);
    display: block;
    margin-top: 0.15em;
    font-size: var(--fs-xs);
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: 0;
    color: var(--bms-muted);
}

/* Karten-Buttons: tonal statt vollflächig blau */
body ul.products li.product .button,
body .wc-block-grid__product .wp-block-button__link,
body .wp-block-woocommerce-cart-cross-sells-block .wc-block-components-product-button__button {
    display: flex !important;
    width: 100%;
    margin: 0 !important;
    padding: 0.7em 0.5em !important;
    box-sizing: border-box;
    background: #f5ece6 !important; /* Glut, sehr hell */
    color: var(--bms-glut-dunkel) !important;
    border: 1px solid #ead8cc !important;
    border-radius: var(--bms-radius) !important;
    font-size: var(--fs-sm) !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    white-space: nowrap;
    box-shadow: none !important;
}

body ul.products li.product .button:hover,
body .wc-block-grid__product .wp-block-button__link:hover,
body .wp-block-woocommerce-cart-cross-sells-block .wc-block-components-product-button__button:hover {
    background: var(--bms-glut) !important;
    border-color: var(--bms-glut) !important;
    color: #fff !important;
}

body ul.products li.product .button::before {
    content: "";
    display: inline-block;
    flex-shrink: 0;
    width: 15px;
    height: 15px;
    background: currentColor;
    -webkit-mask: var(--bms-icon-bag) center / contain no-repeat;
    mask: var(--bms-icon-bag) center / contain no-repeat;
}

/* "Optionen wählen" / "Details ansehen": neutral */
body ul.products li.product .button.product_type_variable,
body ul.products li.product .button.product_type_grouped,
body ul.products li.product .button.product_type_external,
body ul.products li.product .button:not(.add_to_cart_button) {
    background: #fff !important;
    border-color: var(--bms-border-strong) !important;
    color: var(--bms-text) !important;
}

body ul.products li.product .button.product_type_variable:hover,
body ul.products li.product .button.product_type_grouped:hover,
body ul.products li.product .button:not(.add_to_cart_button):hover {
    background: var(--bms-papier) !important;
    border-color: var(--bms-glut) !important;
    color: var(--bms-glut-dunkel) !important;
}

body ul.products li.product .button.product_type_variable::before,
body ul.products li.product .button.product_type_grouped::before {
    -webkit-mask-image: var(--bms-icon-sliders);
    mask-image: var(--bms-icon-sliders);
}

body ul.products li.product .button:not(.add_to_cart_button):not(.product_type_variable):not(.product_type_grouped)::before {
    -webkit-mask-image: var(--bms-icon-eye);
    mask-image: var(--bms-icon-eye);
}

/* Ladezustand + "hinzugefügt" */
body ul.products li.product .button.loading {
    opacity: 0.7;
    padding-right: 0.5em !important;
}

body ul.products li.product .button.loading::after {
    position: static !important;
    margin-left: 0.25em;
    color: currentColor !important;
}

body ul.products li.product .button.added::after {
    display: none !important;
}

body ul.products li.product .button.added::before {
    -webkit-mask-image: var(--bms-icon-check);
    mask-image: var(--bms-icon-check);
}

body ul.products li.product .added_to_cart,
body .wc-block-grid__product .added_to_cart {
    display: block !important;
    width: 100%;
    margin: 0.5rem 0 0 !important;
    padding: 0.2rem 0 0 !important;
    background: transparent !important;
    border: 0 !important;
    color: var(--bms-accent) !important;
    font-size: var(--fs-sm) !important;
    font-weight: 600 !important;
    text-align: center;
    box-shadow: none !important;
}

body ul.products li.product .added_to_cart:hover {
    text-decoration: underline !important;
}

body .added_to_cart::after,
body .added_to_cart::before {
    content: none !important;
    display: none !important;
}

/* Germanized: Pflichtangaben (Versandkosten, Lieferzeit) kompakt direkt unter dem Preis.
   „inkl. MwSt.“ von Germanized ausblenden – unsere Preiszeile nennt bereits „inkl. x % MwSt.“ */
.wc-gzd-additional-info.tax-info {
    display: none !important;
}

/* Kacheln: Versandkosten und Lieferzeit stehen auf der Produktseite (Nutzerwunsch, Nov 2026) */
ul.products li.product .wc-gzd-additional-info.shipping-costs-info,
ul.products li.product .wc-gzd-additional-info.delivery-time-info,
.wc-block-grid__product .wc-gzd-additional-info.shipping-costs-info,
.wc-block-grid__product .wc-gzd-additional-info.delivery-time-info,
.wp-block-woocommerce-cart-cross-sells-block .wc-gzd-additional-info.shipping-costs-info,
.wp-block-woocommerce-cart-cross-sells-block .wc-gzd-additional-info.delivery-time-info {
    display: none !important;
}

ul.products li.product a.woocommerce-LoopProduct-link {
    flex: 0 0 auto;
}

ul.products li.product .price {
    padding-bottom: 0.85rem !important;
}

ul.products li.product .wc-gzd-additional-info,
.wc-block-grid__product .wc-gzd-additional-info {
    margin: 0 !important;
    padding: 0 0.25rem;
    font-size: var(--fs-xs);
    line-height: 1.45;
    color: var(--bms-muted);
}

ul.products li.product .wc-gzd-additional-info a,
.single-product .wc-gzd-additional-info a {
    color: var(--bms-muted) !important;
    text-decoration: underline;
    text-decoration-color: var(--bms-border-strong);
    text-underline-offset: 2px;
}

ul.products li.product .wc-gzd-additional-info a:hover,
.single-product .wc-gzd-additional-info a:hover {
    color: var(--bms-accent) !important;
}

/* Button bleibt unten bündig, egal wie viele Zeilen darüber stehen */
body ul.products li.product .button {
    margin-top: auto !important;
}

ul.products li.product .wc-gzd-additional-info + .button,
ul.products li.product .wc-gzd-additional-info:last-of-type {
    margin-bottom: 0.85rem !important;
}

.single-product div.product .summary .wc-gzd-additional-info {
    margin: -0.75rem 0 1rem;
    font-size: var(--fs-sm);
    color: var(--bms-muted);
}

.single-product div.product .summary .delivery-time-info {
    margin-top: -0.6rem;
}

/* Germanized-Kasse: mitlaufender Kaufen-Block unter dem Sticky-Header, Rechts-Checkbox als Karte */
body .wc-gzd-checkout .is-large .wc-gzd-checkout-submit {
    top: calc(var(--bms-header-h) + 1.5rem);
}

body.admin-bar .wc-gzd-checkout .is-large .wc-gzd-checkout-submit {
    top: calc(var(--bms-header-h) + 1.5rem + 32px);
}

body .wc-gzd-checkout-submit .wc-block-checkout__actions {
    padding: 1rem 0 0 !important;
}

body .wc-gzd-checkboxes {
    margin: 0 0 1rem;
    padding: 1.25rem 1.5rem;
    background: #fff;
    border: 1px solid var(--bms-accent-200, #c9d6ea);
    border-radius: var(--bms-radius-lg);
    font-size: var(--fs-ui);
    line-height: 1.55;
}

body .wc-gzd-checkboxes a {
    color: var(--bms-accent);
}

body .wc-gzd-checkboxes .wc-block-components-checkbox {
    margin: 0;
}

/* Germanized: EU-Hinweis zur gesetzlichen Gewährleistung – in der Kasse als kompakte Zeile,
   Klick/Tipp aufs Vorschaubild öffnet die Großansicht */
body .wc-gzd-block-checkout__legal-guarantee .wc-gzd-legal-guarantee-label,
body .wc-gzd-legal-guarantee-checkout .wc-gzd-legal-guarantee-label {
    display: flex;
    align-items: center;
    gap: 1rem;
}

body .wc-gzd-block-checkout__legal-guarantee .wc-gzd-legal-guarantee-label::after,
body .wc-gzd-legal-guarantee-checkout .wc-gzd-legal-guarantee-label::after {
    content: "Hinweis zu deinen gesetzlichen Gewährleistungsrechten – zum Vergrößern auf das Bild tippen.";
    font-size: var(--fs-sm);
    line-height: 1.5;
    color: var(--bms-muted);
}

body .wc-gzd-popover-wrapper .wc-gzd-popover-trigger img.wc-gzd-legal-guarantee-image-preview {
    display: block;
    width: 88px !important;
    min-width: 0 !important;
    max-width: 88px !important;
    height: auto !important;
    border: 1px solid var(--bms-border);
    border-radius: var(--bms-radius-sm);
}

/* Großansicht */
body .wc-gzd-popover:popover-open {
    width: min(92vw, 560px) !important;
    max-width: 92vw !important;
    padding: 0.75rem 1rem 1.25rem !important;
    border: 0;
    border-radius: var(--bms-radius-lg);
    box-shadow: var(--bms-shadow-lg);
}

body .wc-gzd-popover .wc-gzd-popover-content img {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: 75vh;
    margin: 0 auto;
    object-fit: contain;
}

body .wc-gzd-popover p.wc-gzd-popover-caption,
body .wc-gzd-popover p.wc-gzd-popover-caption a {
    margin-top: 0.75rem;
    font-size: var(--fs-sm) !important;
    color: var(--bms-accent) !important;
    text-align: center;
}

body .wc-gzd-popover .wc-gzd-popover-close {
    width: 36px;
    height: 36px;
    padding: 0 !important;
    border-radius: 50%;
    background: var(--bms-accent-50, #f3f6fa) !important;
    color: var(--bms-ink) !important;
}

/* Sale-Badge */
ul.products li.product .onsale,
.onsale,
span.onsale,
.wc-block-grid__product-onsale {
    position: absolute;
    top: 1.25rem;
    left: 1.25rem;
    z-index: 2;
    margin: 0;
    padding: 0.3em 0.7em;
    border: 0;
    border-radius: var(--bms-radius-pill);
    background: var(--bms-danger);
    color: #fff !important;
    font-size: var(--fs-2xs);
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

ul.products li.product .star-rating {
    margin: 0 0.25rem 0.4rem;
    font-size: var(--fs-xs);
}

/* Kategorie-Karten (falls doch einmal aktiv) */
ul.products li.product-category {
    padding: 0 !important;
    overflow: hidden;
}

ul.products li.product-category > a {
    display: flex;
    flex-direction: column;
    align-items: center;
    height: 100%;
    padding: 1.5rem 1rem;
    text-align: center;
    text-decoration: none;
    background: linear-gradient(160deg, #fff 0%, var(--bms-accent-50, #f3f6fa) 100%);
}

ul.products li.product-category a img {
    width: 84px !important;
    height: 84px !important;
    padding: 6px !important;
    border-radius: 50% !important;
    background: #fff !important;
    mix-blend-mode: normal;
    box-shadow: var(--bms-shadow-sm);
}

ul.products li.product-category mark.count {
    background: transparent;
    color: var(--bms-muted);
    font-weight: 500;
}

/* WooCommerce-Block-Raster (z. B. "Neu im Shop" im leeren Warenkorb) */
.wc-block-grid__products {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.25rem;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none;
}

.wc-block-grid.has-5-columns .wc-block-grid__products { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.wc-block-grid.has-3-columns .wc-block-grid__products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.wc-block-grid.has-2-columns .wc-block-grid__products { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.wc-block-grid__product .wc-block-grid__product-image {
    margin: 0 !important;
}

.wc-block-grid__product .wc-block-grid__product-add-to-cart {
    margin: 0 !important;
    padding: 0 !important;
}

/* ==========================================================================
   10. Produktseite
   ========================================================================== */

.single-product div.product {
    position: relative;
    max-width: 1440px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 2.5rem 3.5rem;
    align-items: start;
}

.single-product div.product::before,
.single-product div.product::after {
    content: none !important;
    display: none !important;
}

.single-product div.product > * {
    grid-column: 1 / -1;
}

.single-product div.product .woocommerce-product-gallery {
    grid-column: 1;
    width: auto !important;
    float: none !important;
    margin: 0 !important;
    padding: 1.25rem;
    background: #fff;
    border: 1px solid var(--bms-border);
    border-radius: var(--bms-radius-lg);
    box-sizing: border-box;
}

.single-product div.product .woocommerce-product-gallery .woocommerce-product-gallery__image,
.single-product div.product .woocommerce-product-gallery .flex-viewport {
    border-radius: var(--bms-radius);
    overflow: hidden;
}

.single-product div.product .woocommerce-product-gallery .woocommerce-product-gallery__image {
    background: var(--bms-well);
    isolation: isolate;
}

/* Hauptbild (nicht das Zoom-Bild, das braucht seine echte Größe) */
.single-product div.product .woocommerce-product-gallery .woocommerce-product-gallery__image img:not(.zoomImg) {
    display: block;
    width: 100% !important;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: contain;
    mix-blend-mode: multiply;
}

.single-product div.product .woocommerce-product-gallery .woocommerce-product-gallery__image img.zoomImg {
    background: #fff;
}

.single-product div.product .summary {
    grid-column: 2;
    width: auto !important;
    float: none !important;
    margin: 0 !important;
    padding: 0.5rem 0 0;
}

.single-product div.product .onsale {
    top: 1.75rem;
    left: 1.75rem;
}

.single-product div.product .product_title {
    margin: 0 0 0.75rem;
    font-size: var(--fs-3xl);
    font-weight: 750 !important;
    line-height: 1.15;
    letter-spacing: -0.025em;
    color: var(--bms-ink);
}

.single-product div.product p.price,
.single-product div.product span.price {
    font-family: var(--bms-font-display);
    margin: 0 0 1.25rem;
    font-size: var(--fs-display);
    font-weight: 700 !important;
    letter-spacing: -0.02em;
    color: var(--bms-ink);
}

.single-product div.product .price del {
    color: var(--bms-subtle);
    font-size: var(--fs-lg);
}

.single-product div.product .price ins {
    color: var(--bms-danger);
    text-decoration: none;
}

.single-product div.product .price .bms-price-meta {
    margin-top: 0.3rem;
    font-size: var(--fs-sm);
}

.single-product div.product .woocommerce-product-details__short-description {
    margin-bottom: 1.25rem;
    font-size: var(--fs-base);
    line-height: 1.7;
    color: var(--bms-text);
}

.single-product div.product .stock {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin: 0 0 1.25rem;
    padding: 0.35rem 0.8rem;
    border-radius: var(--bms-radius-pill);
    background: var(--bms-success-bg);
    color: var(--bms-success);
    font-size: var(--fs-sm);
    font-weight: 600;
}

.single-product div.product .stock::before {
    content: "" !important;
    width: 8px;
    height: 8px;
    margin: 0 !important;
    border-radius: 50%;
    background: currentColor;
    font-family: inherit !important;
}

.single-product div.product .stock.out-of-stock {
    background: var(--bms-danger-bg);
    color: var(--bms-danger);
}

/* Kaufen-Bereich als ruhige Karte */
.single-product div.product form.cart {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 0.75rem;
    margin: 0 0 1.5rem;
    padding: 1.25rem;
    background: #fff;
    border: 1px solid var(--bms-border);
    border-radius: var(--bms-radius-lg);
}

.single-product div.product form.cart::before,
.single-product div.product form.cart::after {
    content: none;
}

.single-product div.product form.cart.variations_form {
    display: block;
}

.single-product div.product form.cart .woocommerce-variation-add-to-cart {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.single-product div.product form.cart .quantity {
    float: none;
    margin: 0 !important;
}

.single-product div.product .quantity .qty {
    width: 4.5rem;
    height: 50px;
    padding: 0 0.5rem;
    border-radius: var(--bms-radius);
    border: 1px solid var(--bms-border-strong);
    background: #fff;
    text-align: center;
    font-size: var(--fs-md);
    font-weight: 600;
}

.single-product div.product .single_add_to_cart_button {
    flex: 1 1 auto;
    float: none !important;
    height: 50px;
    margin: 0 !important;
    padding: 0 2rem;
    font-size: var(--fs-md);
}

.single-product div.product .single_add_to_cart_button::before {
    content: "";
    width: 18px;
    height: 18px;
    background: currentColor;
    -webkit-mask: var(--bms-icon-bag) center / contain no-repeat;
    mask: var(--bms-icon-bag) center / contain no-repeat;
}

.single-product div.product .variations {
    width: 100%;
    margin: 0 0 1rem;
    border: 0;
}

.single-product div.product .variations th,
.single-product div.product .variations td {
    display: block;
    padding: 0 !important;
    background: transparent !important;
    border: 0;
    text-align: left;
}

.single-product div.product .variations th.label label,
.single-product div.product .variations td.label label {
    display: block;
    margin: 0 0 0.4rem;
    font-size: var(--fs-ui);
    font-weight: 600;
    color: var(--bms-text);
}

.single-product div.product .variations tr + tr th,
.single-product div.product .variations tr + tr td.label {
    padding-top: 0.9rem !important;
}

.single-product div.product .variations select {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    height: 48px;
}

.single-product div.product form.cart .woocommerce-variation-add-to-cart::before,
.single-product div.product form.cart .woocommerce-variation-add-to-cart::after {
    content: none !important;
    display: none !important;
}

.single-product div.product .reset_variations[style*="hidden"] {
    display: none; /* unsichtbar, aber sonst mit Platz – Lücke unter der Größenauswahl */
}

/* Germanized „Produktsicherheit“: bei Variantenartikeln bis zur Auswahl nur leere Platzhalter */
body.single-product .woocommerce-tabs .woocommerce-Tabs-panel--product_safety:not(:has(> :not(.wc-gzd-additional-info-placeholder))) {
    display: none !important;
}

.single-product div.product .reset_variations {
    display: inline-block;
    margin-top: 0.5rem;
    font-size: var(--fs-sm);
    color: var(--bms-muted);
}

.single-product div.product .woocommerce-variation-price {
    margin-bottom: 0.75rem;
}

.single-product div.product .woocommerce-variation-price .price {
    font-size: var(--fs-2xl);
    margin: 0;
}

.single-product div.product .woocommerce-variation-availability .stock {
    margin-bottom: 0.75rem;
}

/* Artikelnummer, Kategorien */
.single-product div.product .product_meta {
    display: grid;
    gap: 0.35rem;
    margin: 0;
    padding: 1rem 0 0;
    border-top: 1px solid var(--bms-border);
    font-size: var(--fs-sm);
    color: var(--bms-muted);
}

.single-product div.product .product_meta > span {
    display: block;
}

.single-product div.product .product_meta a {
    color: var(--bms-text) !important;
    font-weight: 500;
    text-decoration: none;
}

.single-product div.product .product_meta a:hover {
    color: var(--bms-accent) !important;
}

/* Beschreibung + Zusatzinfos nebeneinander statt Tabs */
body.single-product .woocommerce-tabs {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.5rem;
    margin: 0;
    padding: 0;
    border: 0;
}

body.single-product .woocommerce-tabs::before,
body.single-product .woocommerce-tabs::after {
    content: none !important;
    display: none !important;
}

body.single-product .woocommerce-tabs ul.tabs {
    display: none !important;
}

body.single-product .woocommerce-tabs .woocommerce-Tabs-panel {
    display: block !important;
    width: auto !important;
    float: none !important;
    margin: 0 !important;
    padding: 1.5rem 1.75rem !important;
    background: #fff;
    border: 1px solid var(--bms-border);
    border-radius: var(--bms-radius-lg);
}

body.single-product .woocommerce-tabs .woocommerce-Tabs-panel > h2,
body.single-product .woocommerce-tabs .woocommerce-Tabs-panel--description::before {
    display: block;
    margin: 0 0 0.75rem !important;
    padding: 0 !important;
    font-size: var(--fs-md) !important;
    font-weight: 700;
    line-height: 1.3 !important;
    color: var(--bms-ink);
}

body.single-product .woocommerce-tabs .woocommerce-Tabs-panel--description::before {
    content: "Beschreibung";
}

body.single-product .woocommerce-tabs .woocommerce-Tabs-panel--description {
    font-size: var(--fs-base);
    line-height: 1.75;
}

body.single-product .woocommerce-tabs .woocommerce-Tabs-panel--description > :last-child {
    margin-bottom: 0;
}

@media (min-width: 768px) {
    body.single-product .woocommerce-tabs:has(.wc-tab:nth-of-type(2)) {
        grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
        align-items: start;
    }
}

body.single-product table.shop_attributes {
    width: 100%;
    margin: 0;
    border: 0;
    border-collapse: collapse;
}

body.single-product table.shop_attributes th,
body.single-product table.shop_attributes td {
    padding: 0.55rem 0 !important;
    border: 0 !important;
    border-bottom: 1px solid var(--bms-border) !important;
    background: transparent !important;
    font-size: var(--fs-ui) !important;
    font-style: normal;
    line-height: 1.45;
    vertical-align: top;
}

body.single-product table.shop_attributes tr:last-child th,
body.single-product table.shop_attributes tr:last-child td {
    border-bottom: 0 !important;
}

body.single-product table.shop_attributes th {
    width: 8rem;
    padding-right: 1rem !important;
    color: var(--bms-muted);
    font-weight: 500;
    text-align: left;
}

body.single-product table.shop_attributes td p {
    margin: 0;
}

/* Ähnliche Produkte / Upsells */
.single-product .related.products,
.single-product .up-sells {
    clear: both;
    margin-top: 1.5rem;
}

.single-product .related.products > h2,
.single-product .up-sells > h2,
.wp-block-woocommerce-cart-cross-sells-block > h2,
.storefront-product-section .section-title {
    margin: 0 0 1.25rem !important;
    font-size: var(--fs-2xl) !important;
    font-weight: 700 !important;
    text-align: left !important;
    letter-spacing: -0.02em;
    color: var(--bms-ink) !important;
}

.single-product .related.products ul.products,
.single-product .up-sells ul.products {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* Galerie-Vorschaubilder */
body.single-product .flex-control-thumbs {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(64px, 1fr));
    gap: 0.5rem;
    margin: 0.75rem 0 0 !important;
    padding: 0;
    list-style: none;
}

body.single-product .flex-control-thumbs li {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
}

body.single-product .flex-control-thumbs li img {
    display: block;
    width: 100% !important;
    height: auto;
    aspect-ratio: 1;
    object-fit: cover;
    border: 1px solid var(--bms-border);
    border-radius: var(--bms-radius-sm);
    background: #fff;
    opacity: 0.65;
    cursor: pointer;
    transition: opacity 0.15s ease, border-color 0.15s ease;
}

body.single-product .flex-control-thumbs li img:hover,
body.single-product .flex-control-thumbs li img.flex-active {
    opacity: 1;
}

body.single-product .flex-control-thumbs li img.flex-active {
    border-color: var(--bms-accent);
}

/* Keine Lupe: das ganze Bild ist anklickbar und öffnet die Großansicht */
.woocommerce-product-gallery__trigger {
    display: none !important;
}

.woocommerce-product-gallery__image a {
    display: block;
    cursor: zoom-in;
}

.woocommerce-product-gallery__image img:not(.zoomImg) {
    transition: transform 0.4s var(--bms-ease);
}

.woocommerce-product-gallery__image a:hover img:not(.zoomImg) {
    transform: scale(1.025);
}

/* Sticky "In den Warenkorb"-Leiste von Storefront: fährt UNTER dem Header heraus */
body.admin-bar .storefront-sticky-add-to-cart {
    top: calc(var(--bms-header-h) + 33px) !important;
}

.storefront-sticky-add-to-cart {
    top: calc(var(--bms-header-h) + 1px) !important;
    z-index: 990 !important;
    background: rgba(255, 255, 255, 0.96) !important;
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--bms-border);
    box-shadow: var(--bms-shadow) !important;
}

/* ==========================================================================
   11. Hinweise (Notices)
   ========================================================================== */

body .woocommerce-info,
body .woocommerce-message,
body .woocommerce-error,
body .woocommerce-noreviews,
body p.no-comments {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1rem;
    margin: 0 0 1.5rem;
    padding: 1rem 1.25rem 1rem 3.25rem;
    border: 1px solid var(--bms-accent-100, #e3eaf4);
    border-radius: var(--bms-radius-lg);
    background: var(--bms-accent-50, #f3f6fa);
    color: var(--bms-text);
    font-size: var(--fs-base);
    list-style: none;
}

body .woocommerce-message {
    border-color: var(--bms-success-border);
    background: var(--bms-success-bg);
}

body .woocommerce-error {
    border-color: var(--bms-danger-border);
    background: var(--bms-danger-bg);
}

body .woocommerce-error li {
    margin: 0;
}

body .woocommerce-info::before,
body .woocommerce-message::before,
body .woocommerce-error::before,
body .woocommerce-noreviews::before {
    content: "" !important;
    position: absolute;
    left: 1.1rem;
    top: 50%;
    width: 20px;
    height: 20px;
    transform: translateY(-50%);
    background: var(--bms-accent);
    -webkit-mask: var(--bms-icon-info) center / contain no-repeat;
    mask: var(--bms-icon-info) center / contain no-repeat;
    font-family: inherit !important;
}

body .woocommerce-message::before {
    background: var(--bms-success);
    -webkit-mask-image: var(--bms-icon-check);
    mask-image: var(--bms-icon-check);
}

body .woocommerce-error::before {
    background: var(--bms-danger);
    -webkit-mask-image: var(--bms-icon-alert);
    mask-image: var(--bms-icon-alert);
}

body .woocommerce-info a:not(.button),
body .woocommerce-message a:not(.button),
body .woocommerce-error a:not(.button) {
    color: var(--bms-accent);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Storefront macht Buttons in Hinweisen transparent/unterstrichen – hier zurücksetzen */
body .woocommerce-info .button,
body .woocommerce-message .button,
body .woocommerce-error .button {
    order: 2;
    float: none;
    margin: 0 0 0 auto;
    padding: 0.6em 1.1em !important;
    background: var(--bms-glut) !important;
    color: #fff !important;
    border: 0 !important;
    border-radius: var(--bms-radius) !important;
    font-size: var(--fs-ui);
    text-decoration: none !important;
    white-space: nowrap;
    flex-shrink: 0;
}

body .woocommerce-info .button:hover,
body .woocommerce-message .button:hover,
body .woocommerce-error .button:hover {
    background: var(--bms-glut-dunkel) !important;
}

/* WooCommerce fokussiert Hinweise per Skript (tabindex="-1") – kein Fokusrahmen */
body .woocommerce-info:focus,
body .woocommerce-message:focus,
body .woocommerce-error:focus,
body .woocommerce-notices-wrapper:focus,
body [tabindex="-1"]:focus {
    outline: none !important;
}

body .woocommerce-message .button::after,
body .woocommerce-message .button::before {
    content: none !important;
    display: none !important;
}

/* WooCommerce-Block-Hinweise */
body .wc-block-components-notice-banner {
    border-radius: var(--bms-radius-lg) !important;
    border-width: 1px !important;
    font-size: var(--fs-base);
}

body .wc-block-components-notice-banner.is-info {
    background: var(--bms-accent-50, #f3f6fa) !important;
    border-color: var(--bms-accent-100, #e3eaf4) !important;
}

body .wc-block-components-notice-banner.is-info > svg {
    background: var(--bms-accent) !important;
}

/* ==========================================================================
   12. Mini-Warenkorb (Header-Popup)
   Aufbau: Kopfzeile · Artikelliste · Summe · Buttons · Hinweis (PHP-Hooks in functions.php)
   ========================================================================== */

@media (min-width: 768px) {
    body .site-header .site-header-cart .widget_shopping_cart {
        position: absolute;
        top: calc(100% + 0.75rem);
        left: -999em;
        right: auto;
        width: 380px;
        min-width: 380px;
        padding: 0;
        overflow: hidden;
        background: #fff !important;
        border: 1px solid var(--bms-border);
        border-radius: var(--bms-radius-lg);
        box-shadow: var(--bms-shadow-lg);
        color: var(--bms-text) !important;
        font-size: var(--fs-ui);
        opacity: 0;
        transform: translateY(-4px);
        /* beim Verlassen kurz verzögert ausblenden */
        transition: opacity 0.18s ease 0.3s, transform 0.18s ease 0.3s, left 0s linear 0.5s;
    }

    body .site-header .site-header-cart:hover .widget_shopping_cart,
    body .site-header .site-header-cart.focus .widget_shopping_cart,
    body .site-header .site-header-cart:focus-within .widget_shopping_cart {
        left: auto;
        right: 0;
        opacity: 1;
        transform: translateY(0);
        transition: opacity 0.15s ease, transform 0.2s var(--bms-ease), left 0s;
    }

    /* unsichtbare Brücke, damit die Maus beim Hinüberfahren nicht aus dem Hover fällt */
    body .site-header .site-header-cart .widget_shopping_cart::before {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        top: -0.9rem;
        height: 0.9rem;
    }
}

body .site-header-cart .widget_shopping_cart_content {
    padding: 0;
}

/* Kopfzeile */
.bms-minicart-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.25rem 0.85rem;
    border-bottom: 1px solid var(--bms-border);
}

.bms-minicart-head strong {
    font-size: var(--fs-md);
    font-weight: 700;
    color: var(--bms-ink);
}

.bms-minicart-head span {
    padding: 0.1rem 0.55rem;
    border-radius: var(--bms-radius-pill);
    background: var(--bms-accent-50, #f3f6fa);
    color: var(--bms-accent-800, var(--bms-accent));
    font-size: var(--fs-xs);
    font-weight: 600;
}

/* Artikelliste */
body .site-header-cart .woocommerce-mini-cart {
    max-height: 320px;
    overflow-y: auto;
    margin: 0;
    padding: 0.25rem 1.25rem;
    list-style: none;
    overscroll-behavior: contain;
}

body .site-header-cart .woocommerce-mini-cart-item {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    margin: 0;
    padding: 0.75rem 0 !important;
    border-bottom: 1px solid var(--bms-border);
}

body .site-header-cart .woocommerce-mini-cart-item:last-child {
    border-bottom: 0;
}

body .site-header-cart .woocommerce-mini-cart-item > a:not(.remove) {
    grid-column: 1;
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding-right: 2.25rem;
    font-size: var(--fs-ui);
    font-weight: 600;
    line-height: 1.35;
    color: var(--bms-ink) !important;
    text-decoration: none;
}

body .site-header-cart .woocommerce-mini-cart-item > a:not(.remove):hover {
    color: var(--bms-accent) !important;
}

body .site-header-cart .woocommerce-mini-cart-item img {
    float: none;
    width: 56px !important;
    height: 56px;
    flex: 0 0 56px;
    margin: 0 !important;
    padding: 4px;
    box-sizing: border-box;
    object-fit: contain;
    background: #fff;
    border: 1px solid var(--bms-border);
    border-radius: var(--bms-radius);
}

body .site-header-cart .woocommerce-mini-cart-item .variation {
    grid-column: 1;
    margin: 0.2rem 0 0 calc(56px + 0.85rem);
    padding: 0;
    border: 0;
    font-size: var(--fs-xs);
    color: var(--bms-muted);
}

body .site-header-cart .woocommerce-mini-cart-item .variation dt,
body .site-header-cart .woocommerce-mini-cart-item .variation dd,
body .site-header-cart .woocommerce-mini-cart-item .variation p {
    display: inline;
    margin: 0;
    font-weight: 400;
}

/* Name + "Menge × Preis" stehen gemeinsam neben dem Bild (PHP-Filter), Original-Zeile aus */
body .site-header-cart .woocommerce-mini-cart-item > .quantity {
    display: none !important;
}

.bms-mc-text {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

.bms-mc-name {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.bms-mc-qty {
    font-size: var(--fs-sm);
    font-weight: 400;
    color: var(--bms-muted);
}

.bms-mc-qty .amount {
    color: var(--bms-ink);
    font-weight: 600;
}

body .site-header-cart .woocommerce-mini-cart-item a.remove {
    position: absolute !important;
    top: 50% !important;
    right: 0 !important;
    left: auto !important;
    transform: translateY(-50%);
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 28px !important;
    height: 28px !important;
    padding: 0 0 2px;
    box-sizing: border-box;
    text-indent: 0 !important;
    border-radius: 50%;
    background: var(--bms-accent-50, #f3f6fa) !important;
    color: var(--bms-muted) !important;
    font-size: var(--fs-lg) !important;
    font-weight: 400;
    line-height: 1 !important;
    text-decoration: none;
    overflow: visible;
    transition: background-color 0.15s ease, color 0.15s ease;
}

body .site-header-cart .woocommerce-mini-cart-item a.remove::before,
body .site-header-cart .woocommerce-mini-cart-item a.remove::after {
    content: none !important;
    display: none !important;
}

body .site-header-cart .woocommerce-mini-cart-item a.remove:hover {
    background: var(--bms-danger-bg) !important;
    color: var(--bms-danger) !important;
}

/* Summe + Buttons + Hinweis auf zart getönter Fußfläche */
body .site-header-cart .woocommerce-mini-cart__total,
body .site-header-cart .woocommerce-mini-cart__buttons,
.bms-minicart-note {
    background: var(--bms-accent-25, #f8fafd) !important;
}

body .site-header-cart .woocommerce-mini-cart__total {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin: 0;
    padding: 0.9rem 1.25rem 0.75rem !important;
    border-top: 1px solid var(--bms-border) !important;
    font-size: var(--fs-ui);
    color: var(--bms-muted);
}

body .site-header-cart .woocommerce-mini-cart__total strong {
    font-weight: 500;
}

body .site-header-cart .woocommerce-mini-cart__total .amount {
    color: var(--bms-ink);
    font-size: var(--fs-lg);
    font-weight: 700;
    letter-spacing: -0.01em;
}

body .site-header-cart .woocommerce-mini-cart__buttons {
    display: grid;
    grid-template-columns: 1fr 1.4fr;
    gap: 0.5rem;
    margin: 0;
    padding: 0 1.25rem 0.75rem !important;
    border: 0 !important;
}

body .site-header-cart .woocommerce-mini-cart__buttons a {
    display: flex !important;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    margin: 0 !important;
    padding: 0 0.75rem !important;
    height: 44px;
    line-height: 1.2 !important;
    font-size: var(--fs-ui);
    white-space: nowrap;
}

body .site-header-cart .woocommerce-mini-cart__buttons a::after,
body .site-header-cart .woocommerce-mini-cart__buttons a::before {
    content: none !important;
    display: none !important;
}

body .site-header-cart .widget_shopping_cart a.button:not(.checkout) {
    background: #fff !important;
    border: 1px solid var(--bms-border-strong) !important;
    color: var(--bms-text) !important;
}

body .site-header-cart .widget_shopping_cart a.button:not(.checkout):hover {
    border-color: var(--bms-accent-200, #c9d6ea) !important;
    color: var(--bms-accent) !important;
    box-shadow: none;
}

body .site-header-cart .widget_shopping_cart a.button.checkout {
    background: var(--bms-glut) !important;
    border: 1px solid var(--bms-glut) !important;
    color: #fff !important;
}

body .site-header-cart .widget_shopping_cart a.button.checkout:hover {
    background: var(--bms-glut-dunkel) !important;
}

.bms-minicart-note {
    margin: 0;
    padding: 0 1.25rem 1rem;
    font-size: var(--fs-xs);
    color: var(--bms-muted);
    text-align: center;
}

/* Leerer Mini-Warenkorb */
body .site-header-cart .woocommerce-mini-cart__empty-message {
    margin: 0;
    padding: 1.75rem 1.25rem 0.75rem;
    text-align: center;
    font-size: var(--fs-base);
    color: var(--bms-muted);
}

body .site-header-cart .woocommerce-mini-cart__empty-message::before {
    content: "";
    display: block;
    width: 44px;
    height: 44px;
    margin: 0 auto 0.75rem;
    border-radius: 50%;
    background: var(--bms-accent-50, #f3f6fa) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2362676e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 7V5a4 4 0 0 1 8 0v2'/%3E%3Cpath d='M5 9a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2z'/%3E%3Cpath d='M8 13h8v4H8z'/%3E%3C/svg%3E") center / 20px no-repeat;
}

.bms-minicart-empty {
    padding: 0 1.25rem 1.25rem;
    text-align: center;
}

.bms-minicart-empty .button {
    min-width: 160px;
}

/* ==========================================================================
   13. Warenkorb & Kasse (WooCommerce-Blöcke)
   ========================================================================== */

body .wp-block-woocommerce-cart,
body .wp-block-woocommerce-checkout {
    margin-top: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* mobil: schwebender "Weiter zur Kasse"-Balken braucht einen Hintergrund */
body .wc-block-cart__submit-container--sticky {
    background: rgba(255, 255, 255, 0.96) !important;
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    border-top: 1px solid var(--bms-border);
}

body .wc-block-cart__submit-container--sticky::before {
    display: none !important;
}

body .wc-block-cart,
body .wc-block-checkout {
    margin-top: 0 !important;
}

/* Hauptspalte und Seitenspalte als Karten */
body .wc-block-cart .wc-block-cart__main,
body .wc-block-checkout__main {
    box-sizing: border-box;
}

body .wc-block-cart .wc-block-cart__main {
    padding: 0.5rem 1.5rem 1rem !important;
    background: #fff;
    border: 1px solid var(--bms-border);
    border-radius: var(--bms-radius-lg);
}

body .wc-block-cart__sidebar,
body .wp-block-woocommerce-checkout-order-summary-block {
    align-self: flex-start;
    box-sizing: border-box;
    background: #fff !important;
    border: 1px solid var(--bms-border) !important;
    border-radius: var(--bms-radius-lg) !important;
    box-shadow: var(--bms-shadow-sm);
    overflow-wrap: break-word;
    min-width: 0;
}

body .wc-block-cart__sidebar {
    position: sticky;
    top: calc(var(--bms-header-h) + 1.5rem);
    padding: 1.25rem 1.5rem !important;
}

body .wp-block-woocommerce-checkout-order-summary-block {
    padding: 0 1.25rem 0.75rem !important;
}

body .wc-block-components-sidebar-layout .wc-block-components-sidebar {
    min-width: 0;
}

body .wc-block-checkout__sidebar.is-sticky {
    top: calc(var(--bms-header-h) + 1.5rem) !important;
}

/* Tabellenkopf ruhiger */
body .wc-block-cart-items thead th,
body .wc-block-cart .wc-block-cart-items__header {
    font-size: var(--fs-xs) !important;
    font-weight: 600 !important;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--bms-muted) !important;
}

body .wc-block-cart-items,
body .wc-block-cart-items th,
body .wc-block-cart-items td {
    border-color: var(--bms-border) !important;
}

body .wc-block-cart-items .wc-block-cart-items__row:last-child td {
    border-bottom: 0 !important;
}

/* Produktzeilen */
body .wc-block-cart-items .wc-block-cart-item__image {
    width: 96px;
}

body .wc-block-cart-items .wc-block-cart-item__image a,
body .wc-block-components-order-summary-item__image {
    display: inline-block;
    background: var(--bms-well);
    border-radius: var(--bms-radius);
    isolation: isolate;
}

body .wc-block-cart-items .wc-block-cart-item__image img,
body .wc-block-components-order-summary-item__image img {
    display: block;
    width: 80px;
    height: 80px;
    max-width: none;
    padding: 6px;
    box-sizing: border-box;
    object-fit: contain;
    background: transparent;
    border: 0;
    mix-blend-mode: multiply;
}

body .wc-block-components-order-summary-item__image img {
    width: 52px;
    height: 52px;
    padding: 3px;
}

body .wc-block-components-product-name,
body .wc-block-cart-items a {
    color: var(--bms-ink) !important;
    font-weight: 600;
    text-decoration: none !important;
}

body .wc-block-components-product-name:hover,
body .wc-block-cart-items a:hover {
    color: var(--bms-accent) !important;
}

body .wc-block-cart-items .wc-block-components-product-name {
    font-size: var(--fs-md);
}

body .wc-block-components-product-metadata,
body .wc-block-components-product-metadata__description {
    font-size: var(--fs-sm);
    color: var(--bms-muted);
}

body .wc-block-cart-item__remove-link {
    color: var(--bms-muted) !important;
}

body .wc-block-cart-item__remove-link:hover {
    color: var(--bms-danger) !important;
}

/* Bestellübersicht (Kasse) */
body .wc-block-components-checkout-order-summary__title {
    margin: 0 !important;
    padding: 1rem 0 !important;
}

body .wc-block-components-checkout-order-summary__title-text,
body .wc-block-cart__totals-title {
    font-size: var(--fs-base) !important;
    font-weight: 700 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    color: var(--bms-ink) !important;
}

body .wc-block-components-order-summary-item__quantity {
    background: var(--bms-accent) !important;
    border: 2px solid #fff !important;
    box-shadow: none !important;
    color: #fff !important;
    font-weight: 700;
}

/* Summen */
body .wc-block-components-totals-item {
    color: var(--bms-text);
}

body .wc-block-components-totals-item__description {
    color: var(--bms-muted);
}

body .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
    font-size: var(--fs-md);
    font-weight: 700;
    color: var(--bms-ink);
}

body .wc-block-components-totals-footer-item > .wc-block-components-totals-item__value,
body .wc-block-components-totals-footer-item > .wc-block-components-totals-item__value .wc-block-components-formatted-money-amount {
    font-size: var(--fs-2xl);
    font-weight: 750;
    letter-spacing: -0.02em;
    color: var(--bms-ink);
}

body .wc-block-components-totals-footer-item-tax,
body .wc-block-components-totals-footer-item .wc-block-components-totals-item__description {
    display: block !important;
    margin-top: 0.25rem;
    font-size: var(--fs-sm);
    line-height: 1.5;
    color: var(--bms-muted);
    white-space: normal;
    overflow-wrap: anywhere;
}

body .wc-block-components-totals-footer-item-tax * {
    display: inline;
    font-size: inherit !important;
    font-weight: 400 !important;
    color: inherit !important;
    white-space: normal !important;
}

body .wc-block-cart__submit-container {
    background: transparent !important;
}

body .wc-block-cart__submit-button,
body .wc-block-components-checkout-place-order-button {
    min-height: 52px;
    font-size: var(--fs-md) !important;
}

/* Kasse: Abschnitte als Karten */
body .wc-block-checkout__main .wc-block-components-checkout-step {
    margin: 0 0 1rem !important;
    padding: 1.5rem 1.5rem 1.25rem !important;
    background: #fff;
    border: 1px solid var(--bms-border);
    border-radius: var(--bms-radius-lg);
}

body .wc-block-checkout__main .wc-block-components-checkout-step::after {
    display: none !important;
}

body .wc-block-components-checkout-step__heading {
    margin: 0 0 1rem !important;
}

body .wc-block-components-checkout-step__title {
    font-size: var(--fs-lg) !important;
    font-weight: 700 !important;
    color: var(--bms-ink);
}

body .wc-block-components-checkout-step__container::after,
body .wc-block-checkout__main .wc-block-components-checkout-step::before {
    display: none !important;
}

body .wc-block-components-checkout-step__description {
    color: var(--bms-muted);
    font-size: var(--fs-ui);
}

/* Liefer-/Abholoption, Versand- und Zahlungsarten */
body .wc-block-checkout__shipping-method-container {
    gap: 0.5rem;
    background: transparent !important;
}

body .wc-block-checkout__shipping-method-option {
    border: 1px solid var(--bms-border-strong) !important;
    border-radius: var(--bms-radius) !important;
    background: #fff !important;
    box-shadow: none !important;
    outline: none !important;
    color: var(--bms-text) !important;
}

body .wc-block-checkout__shipping-method-option--selected,
body .wc-block-checkout__shipping-method-option.wc-block-checkout__shipping-method-option--selected {
    border-color: var(--bms-accent) !important;
    background: var(--bms-accent-50, #f3f6fa) !important;
    color: var(--bms-accent-800, var(--bms-accent)) !important;
    box-shadow: inset 0 0 0 1px var(--bms-accent) !important;
}

body .wc-block-checkout__shipping-method-option:focus,
body .wc-block-checkout__shipping-method-option:focus-visible {
    outline: none !important;
}

body .wc-block-components-radio-control__option,
body .wc-block-components-radio-control-accordion-option,
body .wc-block-components-address-card {
    border-radius: var(--bms-radius) !important;
}

body .wc-block-components-radio-control--highlight-checked,
body .wc-block-components-radio-control-accordion-option,
body .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control__option {
    box-shadow: none !important;
}

body .wc-block-components-radio-control--highlight-checked::after,
body .wc-block-components-radio-control-accordion-option::after {
    border-color: var(--bms-border-strong) !important;
    border-radius: var(--bms-radius) !important;
}

body .wc-block-components-radio-control__option--checked-option-highlighted,
body .wc-block-components-radio-control-accordion-option--checked-option-highlighted {
    background: var(--bms-accent-50, #f3f6fa);
    box-shadow: inset 0 0 0 2px var(--bms-accent) !important;
    border-radius: var(--bms-radius) !important;
}

body .wc-block-components-radio-control__input:checked {
    border-color: var(--bms-accent) !important;
}

body .wc-block-components-radio-control__input:checked::before {
    background: var(--bms-accent) !important;
}

body .wc-block-checkout__terms {
    font-size: var(--fs-sm);
    color: var(--bms-muted);
}

body .wc-block-checkout__terms a,
body .wc-block-components-checkout-step a {
    color: var(--bms-accent);
}

body .wc-block-components-checkout-return-to-cart-button {
    color: var(--bms-muted) !important;
    font-weight: 500;
}

body .wc-block-components-checkout-return-to-cart-button:hover {
    color: var(--bms-accent) !important;
}

/* Empfehlungen im Warenkorb ("Das interessiert dich vielleicht") */
body .wp-block-woocommerce-cart-cross-sells-block > h2 + div {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 1rem;
}

body .wp-block-woocommerce-cart-cross-sells-block .cross-sells-product > div:first-child {
    display: flex;
    flex-direction: column;
    flex: 1;
}

body .wp-block-woocommerce-cart-cross-sells-block .wc-block-components-product-image {
    margin: 0 !important;
}

body .wp-block-woocommerce-cart-cross-sells-block .wc-block-components-product-button {
    align-items: stretch !important;
    margin: 0 !important;
    padding: 0 !important;
}

body .wp-block-woocommerce-cart-cross-sells-block .cross-sells-product,
body .wp-block-woocommerce-cart-cross-sells-block .cross-sells-product * {
    text-align: left !important;
}

body .wp-block-woocommerce-cart-cross-sells-block .wc-block-components-product-button__button {
    justify-content: center;
    text-align: center !important;
}

body .wp-block-woocommerce-cart-cross-sells-block {
    margin-top: 2rem;
}

/* Leerer Warenkorb */
body .wp-block-woocommerce-empty-cart-block {
    padding: 2.5rem 1.5rem;
    background: #fff;
    border: 1px solid var(--bms-border);
    border-radius: var(--bms-radius-lg);
}

body .wc-block-cart__empty-cart__title {
    font-size: var(--fs-2xl) !important;
    color: var(--bms-ink);
}

body .wc-block-cart__empty-cart__title.with-empty-cart-icon::before {
    width: 4.5rem !important;
    height: 4.5rem !important;
    background-color: var(--bms-sand-hell) !important;
    margin-bottom: 1rem !important;
}

body .wp-block-woocommerce-empty-cart-block .wp-block-separator {
    max-width: 120px;
    margin: 2rem auto;
    border-color: var(--bms-border);
}

body .wp-block-woocommerce-empty-cart-block h2:not(.wc-block-cart__empty-cart__title) {
    font-size: var(--fs-xl);
    text-align: center;
}

/* Klassischer Warenkorb/Kasse (Fallback, falls ohne Blöcke) */
.woocommerce table.shop_table {
    border: 1px solid var(--bms-border);
    border-radius: var(--bms-radius-lg);
    border-collapse: separate;
    overflow: hidden;
    background: #fff;
}

.woocommerce table.shop_table th {
    font-size: var(--fs-xs);
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--bms-muted);
    background: var(--bms-accent-25, #f8fafd) !important;
}

.woocommerce table.shop_table td {
    background: #fff !important;
    border-color: var(--bms-border);
}

/* Bestellbestätigung */
.woocommerce-order .woocommerce-thankyou-order-received,
.woocommerce-order .woocommerce-notice--success {
    padding: 1.25rem 1.5rem;
    border: 1px solid var(--bms-success-border);
    border-radius: var(--bms-radius-lg);
    background: var(--bms-success-bg);
    color: var(--bms-success);
    font-weight: 600;
}

.woocommerce-order ul.order_details {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 1rem;
    margin: 1.5rem 0 2rem;
    padding: 1.25rem 1.5rem;
    list-style: none;
    background: #fff !important;
    border: 1px solid var(--bms-border);
    border-radius: var(--bms-radius-lg);
}

.woocommerce-order ul.order_details::before,
.woocommerce-order ul.order_details::after {
    content: none !important;
    display: none !important;
}

.woocommerce-order ul.order_details li {
    float: none;
    margin: 0;
    padding: 0;
    border: 0 !important;
    font-size: var(--fs-xs);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--bms-muted);
}

.woocommerce-order ul.order_details li strong {
    display: block;
    margin-top: 0.25rem;
    font-size: var(--fs-base);
    text-transform: none;
    letter-spacing: 0;
    color: var(--bms-ink);
}

.woocommerce-order .woocommerce-customer-details address {
    padding: 1.25rem 1.5rem;
    border: 1px solid var(--bms-border) !important;
    border-radius: var(--bms-radius-lg);
    background: #fff;
    font-style: normal;
}

/* ==========================================================================
   14. Mein Konto
   ========================================================================== */

/* Anmelden / Registrieren als Karten */
.woocommerce-account .u-columns.col2-set {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
    max-width: 980px;
}

.woocommerce-account .u-columns.col2-set::before,
.woocommerce-account .u-columns.col2-set::after,
.woocommerce-account .woocommerce-Addresses::before,
.woocommerce-account .woocommerce-Addresses::after,
.woocommerce-account .entry-content > .woocommerce::before,
.woocommerce-account .entry-content > .woocommerce::after {
    display: none;
}

.woocommerce-account .u-columns.col2-set > .u-column1,
.woocommerce-account .u-columns.col2-set > .u-column2 {
    float: none !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0;
    padding: 2rem;
    box-sizing: border-box;
    background: #fff;
    border: 1px solid var(--bms-border);
    border-radius: var(--bms-radius-lg);
    box-shadow: var(--bms-shadow-sm);
}

.woocommerce-account .u-columns.col2-set h2 {
    margin: 0 0 1.25rem;
    font-size: var(--fs-xl);
    font-weight: 700;
    color: var(--bms-ink);
}

.woocommerce-account form.woocommerce-form-login,
.woocommerce-account form.woocommerce-form-register,
.woocommerce-account form.lost_reset_password {
    margin: 0;
    padding: 0;
    border: 0;
}

.woocommerce-account .u-columns.col2-set .woocommerce-form-row,
.woocommerce-account .u-columns.col2-set .form-row {
    margin-bottom: 1rem;
}

.woocommerce-account .woocommerce-form-login__rememberme {
    display: flex !important;
    align-items: center;
    gap: 0.5rem;
    margin: 0.25rem 0 1.1rem;
    font-weight: 500 !important;
}

.woocommerce-account .woocommerce-form-login__rememberme input {
    margin: 0;
}

.woocommerce-account .woocommerce-form-login__submit,
.woocommerce-account .woocommerce-form-register__submit {
    width: 100%;
    float: none;
    margin: 0;
    min-height: 48px;
}

.woocommerce-account .lost_password {
    margin: 1rem 0 0;
    text-align: center;
    font-size: var(--fs-ui);
}

.woocommerce-account .woocommerce-privacy-policy-text,
.woocommerce-account .woocommerce-form-register > p:not(.form-row) {
    font-size: var(--fs-sm);
    line-height: 1.55;
    color: var(--bms-muted);
}

.woocommerce-account:not(.logged-in) #customer_login:not(.u-columns) {
    max-width: 440px;
}

/* Passwort-Auge */
.woocommerce form .password-input .show-password-input,
.woocommerce-page form .password-input .show-password-input {
    top: 50%;
    right: 0.4rem;
    transform: translateY(-50%);
    width: 36px;
    height: 36px;
    border-radius: var(--bms-radius-sm);
    background: transparent !important;
    color: var(--bms-muted);
}

.woocommerce form .password-input .show-password-input:hover {
    background: var(--bms-accent-50, #f3f6fa) !important;
}

/* Eingeloggt: Navigation links, Inhalt rechts */
.woocommerce-account.logged-in .entry-content > .woocommerce {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 2rem;
    align-items: start;
}

.woocommerce-account.logged-in .woocommerce-MyAccount-navigation,
.woocommerce-account.logged-in .woocommerce-MyAccount-content {
    float: none;
    width: auto;
    margin: 0;
    min-width: 0;
}

.woocommerce-account.logged-in .woocommerce-MyAccount-navigation {
    position: sticky;
    top: calc(var(--bms-header-h) + 1.5rem);
}

.woocommerce-account.logged-in .woocommerce-MyAccount-content {
    padding: 1.75rem 2rem;
    background: #fff;
    border: 1px solid var(--bms-border);
    border-radius: var(--bms-radius-lg);
}

.woocommerce-MyAccount-navigation ul {
    list-style: none;
    margin: 0;
    padding: 0.5rem;
    background: #fff;
    border: 1px solid var(--bms-border);
    border-radius: var(--bms-radius-lg);
}

/* WooCommerce setzt Abstände mit hoher Spezifität – daher dieselbe Kette + body */
body.woocommerce-account .hentry .entry-content .woocommerce-MyAccount-navigation ul li {
    margin: 0.125rem 0;
    padding: 0;
    border: 0;
}

body.woocommerce-account .hentry .entry-content .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.7em 0.9em;
    border-radius: var(--bms-radius);
    font-size: var(--fs-base);
    font-weight: 500;
    line-height: 1.3;
    color: var(--bms-text);
    text-decoration: none;
    white-space: nowrap;
    transition: background-color 0.15s ease, color 0.15s ease;
}

body.woocommerce-account .hentry .entry-content .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link a:hover {
    background: var(--bms-accent-50, #f3f6fa);
    color: var(--bms-accent);
}

body.woocommerce-account .hentry .entry-content .woocommerce-MyAccount-navigation ul li.is-active a {
    background: var(--bms-accent-50, #f3f6fa);
    color: var(--bms-accent-800, var(--bms-accent));
    font-weight: 600;
    box-shadow: inset 3px 0 0 var(--bms-accent);
}

/* Icon rechts, dezent */
body.woocommerce-account .hentry .entry-content .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link a::before {
    float: none;
    position: static;
    order: 2;
    width: 1.25rem;
    margin: 0;
    font-size: var(--fs-base);
    text-align: center;
    flex-shrink: 0;
    opacity: 0.45;
}

body.woocommerce-account .hentry .entry-content .woocommerce-MyAccount-navigation ul li.is-active a::before {
    opacity: 0.9;
}

body.woocommerce-account .hentry .entry-content .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout a {
    color: var(--bms-muted);
}

.woocommerce-MyAccount-content > p {
    max-width: 46rem;
}

.woocommerce-account .woocommerce-MyAccount-content > p:first-child {
    font-size: var(--fs-md);
    color: var(--bms-text);
}

/* Dashboard-Kacheln */
.bms-account-tiles {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 1rem;
    margin-top: 1.75rem;
}

.bms-account-tile {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    padding: 1.25rem;
    background: var(--bms-accent-25, #f8fafd);
    border: 1px solid var(--bms-border);
    border-radius: var(--bms-radius-lg);
    color: var(--bms-text);
    text-decoration: none !important;
    transition: border-color 0.15s ease, box-shadow 0.25s var(--bms-ease), transform 0.25s var(--bms-ease), background-color 0.15s ease;
}

.bms-account-tile__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    margin-bottom: 0.4rem;
    border-radius: 12px;
    background: #fff;
    color: var(--bms-accent);
    box-shadow: var(--bms-shadow-sm);
}

.bms-account-tile strong {
    font-size: var(--fs-base);
    color: var(--bms-ink);
}

.bms-account-tile span:not(.bms-account-tile__icon) {
    font-size: var(--fs-sm);
    line-height: 1.45;
    color: var(--bms-muted);
}

.bms-account-tile:hover {
    background: #fff;
    border-color: var(--bms-accent-200, #c9d6ea);
    box-shadow: var(--bms-shadow);
    transform: translateY(-2px);
}

/* Adressen */
body.woocommerce-account .woocommerce-Addresses {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
    width: 100%;
    margin-top: 1rem;
}

body.woocommerce-account .woocommerce-Addresses .u-column1,
body.woocommerce-account .woocommerce-Addresses .u-column2,
body.woocommerce-account .woocommerce-Address {
    float: none;
    width: auto;
    min-width: 0;
    min-height: 0 !important;
    height: auto;
    margin: 0;
    padding: 1.25rem !important;
    background: var(--bms-accent-25, #f8fafd);
    border: 1px solid var(--bms-border);
    border-radius: var(--bms-radius-lg);
}

body.woocommerce-account .woocommerce-Address-title {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.25rem 1rem;
    margin-bottom: 0.75rem;
}

body.woocommerce-account .woocommerce-Address-title h2,
body.woocommerce-account .woocommerce-Address-title h3 {
    margin: 0;
    font-size: var(--fs-md);
    hyphens: manual;
    word-break: normal;
}

body.woocommerce-account .woocommerce-Address-title a.edit {
    float: none;
    font-size: var(--fs-ui);
    font-weight: 600;
    white-space: nowrap;
    color: var(--bms-accent);
}

body.woocommerce-account .woocommerce-Address address {
    font-style: normal;
    line-height: 1.6;
    color: var(--bms-text);
}

/* Tabellen im Konto */
.woocommerce-account table.shop_table {
    border: 1px solid var(--bms-border);
    border-radius: var(--bms-radius-lg);
}

.woocommerce-account fieldset {
    margin: 1.5rem 0 0;
    padding: 1.25rem 1.5rem;
    background: var(--bms-accent-25, #f8fafd) !important;
    border: 1px solid var(--bms-border);
    border-radius: var(--bms-radius-lg);
}

.woocommerce-account fieldset legend {
    padding: 0 0.5rem;
    background: transparent !important;
    font-weight: 700;
    color: var(--bms-ink);
}


/* --- Mein Konto: Dashboard-Begrüßung ----------------------------------- */
.bms-account-hello {
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--bms-border);
}

.bms-account-hello h2 {
    margin: 0 0 0.35rem !important;
    font-size: var(--fs-2xl) !important;
}

.bms-account-hello p {
    margin: 0;
    font-size: var(--fs-base);
    color: var(--bms-muted);
}

.bms-account-hello .bms-account-hello__switch {
    margin-top: 0.75rem;
    font-size: var(--fs-sm);
}

.bms-account-hello__switch a {
    font-weight: 600;
}

.bms-account-hello + .bms-account-tiles {
    margin-top: 1.5rem;
}

/* --- Mein Konto: Navigation-Icons dezenter ---------------------------- */
body.woocommerce-account .hentry .entry-content .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link a::before {
    font-size: var(--fs-ui);
    color: var(--bms-subtle);
    opacity: 1;
}

body.woocommerce-account .hentry .entry-content .woocommerce-MyAccount-navigation ul li.is-active a::before {
    color: var(--bms-accent);
}

/* --- Überschriften in Konto, Bestellbestätigung, Bestellansicht -------- */
.woocommerce-MyAccount-content h2,
.woocommerce-MyAccount-content h3,
.woocommerce-order h2,
.woocommerce-order h3,
.woocommerce-order-details h2,
.woocommerce-customer-details h2,
.woocommerce-edit-address .woocommerce-MyAccount-content form > h2,
.woocommerce-account .woocommerce-form h2 {
    margin: 2rem 0 0.9rem;
    font-size: var(--fs-xl) !important;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -0.015em;
    color: var(--bms-ink);
}

.woocommerce-MyAccount-content > :first-child,
.woocommerce-MyAccount-content form > h2:first-child,
.woocommerce-MyAccount-content form > h3:first-child {
    margin-top: 0 !important;
}

.woocommerce-order .wc-bacs-bank-details-account-name {
    margin: 1.25rem 0 0.6rem;
    font-size: var(--fs-md) !important;
}

.woocommerce-order .wc-bacs-bank-details-heading {
    margin-top: 2.25rem;
}

/* --- Adressen-Übersicht ------------------------------------------------- */
body.woocommerce-account .woocommerce-MyAccount-content > p:first-child {
    font-size: var(--fs-base);
    color: var(--bms-muted);
}

body.woocommerce-account .woocommerce-Address {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    background: #fff !important;
}

body.woocommerce-account .woocommerce-Address .woocommerce-Address-title {
    display: contents;
}

body.woocommerce-account .woocommerce-Address-title h2,
body.woocommerce-account .woocommerce-Address-title h3 {
    order: 1;
    margin: 0 !important;
    font-size: var(--fs-lg) !important;
    text-align: left;
}

body.woocommerce-account .woocommerce-Address address {
    order: 2;
    margin: 0;
    font-size: var(--fs-base);
    color: var(--bms-text);
}

body.woocommerce-account .woocommerce-Address-title a.edit {
    order: 3;
    width: auto !important;
    height: auto !important;
    overflow: visible !important;
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-top: 0.5rem;
    padding: 0.55rem 0.9rem;
    border: 1px solid var(--bms-accent-100, #e3eaf4);
    border-radius: var(--bms-radius);
    background: var(--bms-accent-50, #f3f6fa);
    color: var(--bms-accent-800, var(--bms-accent)) !important;
    font-size: var(--fs-sm) !important;
    font-weight: 600;
    line-height: 1.2;
    text-indent: 0;
    text-decoration: none !important;
    white-space: nowrap;
}

body.woocommerce-account .woocommerce-Address-title a.edit::before,
body.woocommerce-account .woocommerce-Address-title a.edit::after {
    content: none !important;
    display: none !important;
}

body.woocommerce-account .woocommerce-Address-title a.edit:hover {
    background: var(--bms-accent-100, #e3eaf4);
}

/* --- Formulare im Konto: Hilfetexte, Zweispalter ----------------------- */
.woocommerce-MyAccount-content form .form-row em,
.woocommerce-MyAccount-content form #account_display_name_description em {
    display: block;
    margin-top: 0.35rem;
    font-size: var(--fs-sm);
    font-style: normal;
    color: var(--bms-muted);
}

.woocommerce-MyAccount-content form .form-row {
    margin-bottom: 1.1rem;
}

.woocommerce-MyAccount-content form button[type="submit"] {
    margin-top: 0.5rem;
    min-height: 46px;
}

/* --- Leere Zustände (keine Bestellungen etc.) --------------------------- */
.woocommerce-MyAccount-content .woocommerce-info,
.woocommerce-MyAccount-content .woocommerce-message {
    margin-bottom: 1rem;
}

/* --- Bestell-Tabelle (Bestätigung & Bestellansicht) --------------------- */
.woocommerce table.shop_table.order_details,
.woocommerce table.shop_table.woocommerce-table--order-details {
    width: 100%;
    margin: 0 0 1.5rem;
}

.woocommerce table.shop_table.order_details th,
.woocommerce table.shop_table.order_details td {
    padding: 0.85rem 1.25rem !important;
    border-color: var(--bms-border) !important;
    vertical-align: top;
}

.woocommerce table.shop_table.order_details thead th:last-child,
.woocommerce table.shop_table.order_details td.product-total,
.woocommerce table.shop_table.order_details tfoot td {
    text-align: right;
}

.woocommerce table.shop_table.order_details tbody td {
    font-size: var(--fs-base);
}

.woocommerce table.shop_table.order_details td.product-name a {
    color: var(--bms-ink);
    font-weight: 600;
    text-decoration: none;
}

.woocommerce table.shop_table.order_details td.product-name a:hover {
    color: var(--bms-accent);
}

.woocommerce table.shop_table.order_details td.product-name .product-quantity {
    color: var(--bms-muted);
    font-weight: 500;
}

.woocommerce table.shop_table.order_details tfoot th,
.woocommerce table.shop_table.order_details tfoot td {
    background: #fff !important;
    border-top: 1px solid var(--bms-border) !important;
    font-size: var(--fs-ui);
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
    color: var(--bms-text);
}

.woocommerce table.shop_table.order_details tfoot th {
    color: var(--bms-muted);
}

.woocommerce table.shop_table.order_details tfoot td small,
.woocommerce table.shop_table.order_details tfoot td .shipped_via,
.woocommerce table.shop_table.order_details tfoot td .includes_tax {
    display: block;
    font-size: var(--fs-xs);
    color: var(--bms-muted);
}

/* Weitere Tabellen in Bestellungen (z. B. Zusatzfelder der Kasse): gleiche ruhige Optik */
.woocommerce-order table.shop_table:not(.order_details) th,
.woocommerce-order table.shop_table:not(.order_details) td,
.woocommerce-MyAccount-content table.shop_table:not(.order_details):not(.woocommerce-orders-table) th,
.woocommerce-MyAccount-content table.shop_table:not(.order_details):not(.woocommerce-orders-table) td {
    padding: 0.85rem 1.25rem !important;
    background: #fff !important;
    border-color: var(--bms-border) !important;
    font-size: var(--fs-ui);
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
    color: var(--bms-text);
}

.woocommerce-order table.shop_table:not(.order_details) tbody th,
.woocommerce-MyAccount-content table.shop_table:not(.order_details):not(.woocommerce-orders-table) tbody th {
    width: 40%;
    color: var(--bms-muted);
}

.woocommerce-order table.shop_table:not(.order_details) thead th {
    background: var(--bms-accent-25, #f8fafd) !important;
    font-size: var(--fs-xs);
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--bms-muted);
}

/* Rechnungs- / Lieferadresse nebeneinander, gleich breit */
.woocommerce-customer-details .col2-set,
.woocommerce-customer-details .woocommerce-columns--addresses {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
}

.woocommerce-customer-details .col2-set::before,
.woocommerce-customer-details .col2-set::after {
    content: none !important;
    display: none !important;
}

.woocommerce-customer-details .woocommerce-column {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
}

.woocommerce-customer-details .woocommerce-column h2 {
    margin-top: 0;
}

.woocommerce-customer-details address {
    height: calc(100% - 3rem);
    box-sizing: border-box;
    font-size: var(--fs-base);
    line-height: 1.65;
}

.woocommerce-customer-details address p {
    margin: 0.75rem 0 0;
}

/* Bestellstatus in der Bestellansicht ("Bestellung #771 wurde am … aufgegeben …") */
.woocommerce-MyAccount-content > p mark,
.woocommerce-order > p mark {
    padding: 0.05rem 0.45rem;
    border-radius: var(--bms-radius-sm);
    background: var(--bms-accent-50, #f3f6fa);
    color: var(--bms-ink);
    font-weight: 600;
}

/* Native Zusatzfelder (z. B. Stamm/Siedlung) als Liste in Bestätigung & Bestellansicht */
.wc-block-components-additional-fields-list {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    margin: 0 0 1.5rem;
    padding: 0;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--bms-border);
    border-radius: var(--bms-radius-lg);
}

.wc-block-components-additional-fields-list dt,
.wc-block-components-additional-fields-list dd {
    margin: 0;
    padding: 0.85rem 1.25rem;
    border-top: 1px solid var(--bms-border);
    font-size: var(--fs-ui);
}

.wc-block-components-additional-fields-list dt:first-of-type,
.wc-block-components-additional-fields-list dd:first-of-type {
    border-top: 0;
}

.wc-block-components-additional-fields-list dt {
    font-weight: 500;
    color: var(--bms-muted);
}

.wc-block-components-additional-fields-list dt::after {
    content: none;
}

.wc-block-components-additional-fields-list dd {
    color: var(--bms-text);
    font-weight: 500;
}

/* Zusatzfelder der Kasse in der Bestellübersicht */
.wc-block-order-confirmation-additional-fields-wrapper,
.woocommerce-order .wc-block-order-confirmation-additional-fields-wrapper {
    margin: 0 0 1.5rem;
}

/* --- Admin-Link "bearbeiten" in Shop-Seiten ausblenden ------------------- */
.woocommerce-account .edit-link,
.bms-cart-page .edit-link,
.bms-checkout-page .edit-link,
.woocommerce-cart .edit-link,
.woocommerce-checkout .edit-link {
    display: none !important;
}

/* --- Auswahlfelder (select2/selectWoo) wie normale Felder ---------------- */
.select2-container--default .select2-selection--single {
    height: 46px;
    border: 1px solid var(--bms-border-strong) !important;
    border-radius: var(--bms-radius) !important;
    background: #fff;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
    padding-left: 0.9em;
    padding-right: 2.4em;
    line-height: 44px !important;
    font-size: var(--fs-base);
    color: var(--bms-text);
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
    top: 0 !important;
    right: 0.6em !important;
    height: 44px !important;
}

.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single {
    border-color: var(--bms-accent) !important;
    box-shadow: var(--bms-ring);
}

.select2-dropdown {
    overflow: hidden;
    border: 1px solid var(--bms-border) !important;
    border-radius: var(--bms-radius) !important;
    box-shadow: var(--bms-shadow-lg);
}

.select2-container--default .select2-search--dropdown .select2-search__field {
    border: 1px solid var(--bms-border-strong);
    border-radius: var(--bms-radius-sm);
}

.select2-results__option {
    padding: 0.5rem 0.9rem;
    font-size: var(--fs-ui);
}

.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[data-selected] {
    background: var(--bms-accent-50, #f3f6fa) !important;
    color: var(--bms-accent-800, var(--bms-accent)) !important;
}

/* --- Storefront-Pfeil-Icons an Buttons entfernen ------------------------- */
body .button.wc-forward::after,
body .woocommerce-info .button::after,
body .woocommerce-error .button::after {
    content: none !important;
    display: none !important;
}

/* --- Kasse: Fehlerzustand sichtbar (roter Rahmen) ------------------------ */
body .wc-block-components-text-input.has-error input,
body .wc-block-components-textarea.has-error textarea,
body .wc-block-components-combobox.has-error input,
body .wc-blocks-components-select.has-error select,
.woocommerce form .form-row.woocommerce-invalid input.input-text,
.woocommerce form .form-row.woocommerce-invalid select {
    border-color: var(--bms-danger) !important;
    box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.12) !important;
}

body .wc-block-components-validation-error {
    font-size: var(--fs-sm);
}

/* ==========================================================================
   15. Textseiten & Rechtstexte (Impressum, AGB, Datenschutz)
   Überschreibt die Inline-Styles der importierten Texte (Arial, 12px, rote Links)
   ========================================================================== */

.single-post .entry-header .posted-on,
.single-post .entry-header .post-author,
.single-post .entry-header .post-comments,
.single-post .cat-links,
.single-post .post-navigation,
.single-post .comments-area,
.single-post #respond {
    display: none !important;
}

.single-post .hentry .entry-header {
    margin-bottom: 1.75rem;
    padding: 0;
    border: 0;
}

.bms-textpage .hentry,
.single-post .hentry {
    max-width: 52rem;
}

.bms-textpage .entry-content,
.single-post .entry-content {
    padding: 2rem 2.25rem;
    background: #fff;
    border: 1px solid var(--bms-border);
    border-radius: var(--bms-radius-lg);
    color: var(--bms-text);
    font-size: var(--fs-base);
    line-height: 1.7;
}

.single-post .entry-content *,
.bms-textpage .entry-content * {
    font-family: inherit !important;
    background-color: transparent !important;
}

.single-post .entry-content p,
.single-post .entry-content li,
.single-post .entry-content td,
.single-post .entry-content span,
.bms-textpage .entry-content p,
.bms-textpage .entry-content li,
.bms-textpage .entry-content td,
.bms-textpage .entry-content span {
    font-size: var(--fs-base) !important;
    line-height: 1.7 !important;
    color: var(--bms-text) !important;
}

.single-post .entry-content p,
.bms-textpage .entry-content p {
    margin: 0 0 1rem !important;
}

.single-post .entry-content h1,
.single-post .entry-content h2,
.single-post .entry-content h3,
.single-post .entry-content h4,
.bms-textpage .entry-content h1,
.bms-textpage .entry-content h2,
.bms-textpage .entry-content h3,
.bms-textpage .entry-content h4 {
    margin: 2rem 0 0.6rem !important;
    font-family: var(--bms-font-display) !important;
    color: var(--bms-ink) !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
}

.single-post .entry-content h1,
.single-post .entry-content h2,
.bms-textpage .entry-content h1,
.bms-textpage .entry-content h2 {
    padding-top: 1.5rem;
    border-top: 1px solid var(--bms-border);
    font-size: var(--fs-xl) !important;
}

.single-post .entry-content > :first-child,
.bms-textpage .entry-content > :first-child {
    margin-top: 0 !important;
    padding-top: 0;
    border-top: 0;
}

.single-post .entry-content h3,
.bms-textpage .entry-content h3 {
    font-size: var(--fs-md) !important;
}

.single-post .entry-content h4,
.bms-textpage .entry-content h4 {
    font-size: var(--fs-base) !important;
}

.single-post .entry-content ul,
.single-post .entry-content ol,
.bms-textpage .entry-content ul,
.bms-textpage .entry-content ol {
    margin: 0 0 1rem 1.25rem !important;
    padding: 0;
}

.single-post .entry-content li,
.bms-textpage .entry-content li {
    margin-bottom: 0.3rem;
}

.single-post .entry-content a,
.single-post .entry-content a span,
.bms-textpage .entry-content a,
.bms-textpage .entry-content a span {
    color: var(--bms-accent) !important;
    text-decoration: underline;
    text-decoration-color: rgba(var(--bms-accent-rgb, 17, 67, 146), 0.35);
    text-underline-offset: 3px;
}

.single-post .entry-content a:hover,
.bms-textpage .entry-content a:hover {
    text-decoration-color: currentColor;
}

.single-post .entry-content strong,
.single-post .entry-content b,
.bms-textpage .entry-content strong,
.bms-textpage .entry-content b {
    font-weight: 600;
}

/* ==========================================================================
   16. Startseite, Suche, 404
   ========================================================================== */

/* --- Startseite (Seitenvorlage „Homepage“, Abschnitte aus inc/startseite.php) ------
   Aufbau: Hero → Stufen → Produkte → Fahrtenband → Sinn & Team → Saison-Banner */

/* Der Container wird auf der Startseite aufgehoben; jede Sektion zentriert sich selbst,
   Hero und Fahrtenband laufen über die volle Breite. */
.bms-home-page .site-content {
    padding-top: 0;
    padding-bottom: 0;
}

.bms-home-page .site-content > .col-full {
    max-width: none !important;
    padding: 0 !important;
}

.bms-home-page .content-area,
.bms-home-page .site-main {
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.bms-home section {
    box-sizing: border-box;
    max-width: none;
    margin: 0;
    padding: clamp(48px, 7vw, 84px) var(--bms-inset) 0;
}

.bms-home section::before,
.bms-home section::after,
.bms-home .bms-home__kopf::before,
.bms-home .bms-home__kopf::after {
    content: none;
}

.bms-home h1,
.bms-home h2,
.bms-home h3 {
    margin: 0;
    font-family: var(--bms-font-display);
    line-height: 1.1;
    text-wrap: balance;
}

.bms-home h2 {
    font-size: clamp(1.7rem, 3.2vw, 2.4rem);
}

.bms-home p {
    margin: 0;
}

.bms-eyebrow {
    margin: 0 0 0.6rem !important;
    font-size: var(--fs-xs);
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--bms-glut-dunkel);
}

/* Buttons der Startseite */
body .bms-home .button.bms-btn-glut {
    background-color: var(--bms-glut);
    color: #fff;
    border: 2px solid transparent;
    font-size: var(--fs-md);
    padding: 0.8em 1.3em;
}

body .bms-home .button.bms-btn-glut:hover {
    background-color: var(--bms-glut-dunkel);
}

body .bms-home .button.bms-btn-hell {
    background: transparent;
    color: #fff;
    border: 2px solid rgba(255, 255, 255, 0.75);
    font-size: var(--fs-md);
    padding: 0.8em 1.3em;
    box-shadow: none;
}

body .bms-home .button.bms-btn-hell:hover {
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
}

/* Sektionskopf */
.bms-home__kopf {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1.75rem;
}

.bms-home__kopf > div > p:last-child:not(.bms-eyebrow) {
    margin-top: 0.5rem;
    max-width: 52ch;
    color: var(--bms-kluft-weich);
}

.bms-home__mehr {
    font-weight: 700;
    color: var(--bms-accent);
    text-decoration: none;
    white-space: nowrap;
}

.bms-home__mehr:hover {
    text-decoration: underline;
}

/* Hero: volle Breite, Foto mit Verlauf von links */
.bms-hero {
    position: relative;
    max-width: none;
    padding: 0 !important;
    margin: 0;
    color: #fff;
    background: var(--bms-nacht);
    isolation: isolate;
}

.bms-hero__bild {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
}

.bms-hero__bild::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(20, 23, 28, 0.88) 0%, rgba(20, 23, 28, 0.55) 45%, rgba(20, 23, 28, 0.1) 75%);
}

.bms-hero__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 58%;
    display: block;
}

.bms-hero__inner {
    position: relative;
    z-index: 1;
    box-sizing: border-box;
    max-width: none;
    margin: 0;
    padding: clamp(64px, 11vw, 140px) var(--bms-inset);
}

.bms-hero__text {
    max-width: none; /* Text bleibt schmal, die „Direkt zu“-Pills dürfen in einer Reihe weiterlaufen */
    display: grid;
    gap: 18px;
}

.bms-hero__text > :not(.bms-hero__jump) {
    max-width: 560px;
}

.bms-hero .bms-eyebrow {
    color: var(--bms-sand-hell);
    margin-bottom: 0 !important;
}

.bms-hero h1 {
    color: #fff;
    font-size: clamp(2.3rem, 5.4vw, 4rem);
}

.bms-hero__lead {
    font-size: var(--fs-lg);
    line-height: 1.5;
    color: #ece6da;
}

.bms-hero__aktionen {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 6px;
}

.bms-hero__fact {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    font-size: var(--fs-base);
    font-weight: 600;
    color: #fff;
}

.bms-hero__fact svg {
    flex: none;
    color: var(--bms-sand-hell);
}

.bms-hero__jump {
    display: grid;
    gap: 10px;
    margin-top: 10px;
}

.bms-hero__jump-titel {
    font-size: var(--fs-xs);
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--bms-sand-hell);
}

.bms-hero__jump ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.bms-hero__jump a {
    display: inline-block;
    padding: 0.45em 0.95em;
    border-radius: var(--bms-radius-pill);
    font-size: var(--fs-ui);
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none;
    color: #fff;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.35);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
    transition: background 0.15s ease, border-color 0.15s ease;
}

.bms-hero__jump a:hover {
    background: rgba(255, 255, 255, 0.22);
    border-color: rgba(255, 255, 255, 0.7);
    color: #fff;
}

.bms-hero__gruss {
    display: inline-block;
    justify-self: start;
    margin-top: 1.25rem;
    font-family: var(--bms-font-hand);
    font-size: var(--fs-2xl);
    font-weight: 700;
    line-height: 1;
    color: var(--bms-sand-hell);
    transform: rotate(-4deg);
}

/* Stufen */
.bms-stufen__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.bms-stufe {
    --farbe: var(--bms-kluft);
    position: relative;
    display: grid;
    grid-template-rows: auto 1fr;
    background: var(--bms-papier);
    border: 1px solid var(--bms-linie);
    border-radius: var(--bms-radius);
    overflow: hidden;
    text-decoration: none !important;
    color: inherit;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.bms-stufe:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 24px rgba(43, 38, 30, 0.14);
}

.bms-stufe__bild {
    aspect-ratio: 4 / 3;
    display: grid;
    place-items: center;
    background: color-mix(in srgb, var(--farbe) 14%, var(--bms-leinen));
    border-bottom: 4px solid var(--farbe);
}

.bms-stufe__img {
    width: 62%;
    height: auto;
    aspect-ratio: 1;
    object-fit: contain;
    box-sizing: border-box;
    padding: 8%;
    background: #fff;
    border-radius: 50%;
    filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.12));
}

.bms-stufe__txt {
    padding: 14px 16px 18px;
    display: grid;
    gap: 4px;
}

.bms-stufe h3 {
    font-size: var(--fs-xl);
    color: var(--bms-kluft);
}

.bms-stufe small {
    font-size: var(--fs-sm);
    color: var(--bms-kluft-weich);
}

/* Produkte */
.bms-beliebt__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.bms-pkarte {
    display: grid;
    grid-template-rows: auto 1fr auto;
    background: var(--bms-papier);
    border: 1px solid var(--bms-linie);
    border-radius: var(--bms-radius);
    overflow: hidden;
}

.bms-pkarte__foto {
    position: relative;
    display: block;
    aspect-ratio: 1;
    min-height: 0;
    overflow: hidden;
    background: #fff;
}

.bms-pkarte__img {
    position: absolute;
    inset: 9%;
    width: 82%;
    height: 82%;
    object-fit: contain;
}

.bms-pkarte__marker {
    position: absolute;
    top: 10px;
    left: 10px;
    padding: 5px 8px;
    border-radius: 4px;
    background: var(--bms-wald);
    color: #fff;
    font-size: var(--fs-2xs);
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.bms-pkarte__info {
    display: grid;
    gap: 4px;
    align-content: start;
    padding: 14px 16px 6px;
}

.bms-pkarte h3 {
    font-family: var(--bms-font);
    font-size: var(--fs-md);
    font-weight: 600;
    line-height: 1.3;
}

.bms-pkarte h3 a {
    color: var(--bms-kluft);
    font-weight: inherit; /* Storefront: h3 a { font-weight: 300 } */
    text-decoration: none;
}

.bms-pkarte h3 a:hover {
    color: var(--bms-accent-800, var(--bms-accent));
}

.bms-pkarte__notiz {
    font-size: var(--fs-sm);
    color: var(--bms-kluft-weich);
}

.bms-pkarte__preis {
    margin-top: 6px;
    font-family: var(--bms-font-display);
    font-size: var(--fs-xl);
    font-weight: 700;
    line-height: 1;
    font-variant-numeric: tabular-nums;
    color: var(--bms-kluft);
}

.bms-pkarte__preis .amount {
    color: inherit;
    font-weight: inherit;
}

.bms-pkarte__mwst,
.bms-pkarte__grundpreis {
    font-size: var(--fs-xs);
    color: var(--bms-kluft-weich);
}

.bms-pkarte__mwst a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 2px;
}

body .bms-home .bms-pkarte__btn {
    margin: 12px 16px 16px;
    justify-content: center;
}

/* Fahrtenband (volle Breite, Moosgrün). Abstand nach oben mit höherer Spezifität,
   weil „.bms-home section { margin: 0 }“ sonst gewinnt. */
.bms-home .bms-fahrt {
    margin-top: clamp(48px, 7vw, 84px);
}

.bms-fahrt {
    max-width: none;
    margin: clamp(48px, 7vw, 84px) 0 0;
    padding: clamp(48px, 7vw, 84px) 0 !important;
    background: var(--bms-wald);
    color: #efeeea;
}

.bms-fahrt__inner {
    box-sizing: border-box;
    max-width: none;
    margin: 0;
    padding: 0 var(--bms-inset);
    display: grid;
    grid-template-columns: 1fr 1.25fr;
    gap: clamp(28px, 5vw, 64px);
    align-items: center;
}

.bms-fahrt .bms-eyebrow {
    color: var(--bms-sand-hell);
}

.bms-fahrt h2 {
    margin: 0 0 14px;
    color: #fff;
}

.bms-fahrt__text > p {
    color: #dcdfdb;
    margin: 0 0 22px;
}

.bms-fahrt__liste {
    list-style: none;
    margin: 0 0 8px;
    padding: 0;
    display: grid;
    gap: 10px;
}

.bms-fahrt__liste li {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 8px;
    border-bottom: 1px dashed rgba(241, 239, 230, 0.3);
}

.bms-fahrt__liste a {
    color: #fff;
    text-decoration: none;
}

.bms-fahrt__liste a:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.bms-fahrt__liste span {
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    text-align: right;
}

.bms-fahrt__liste .amount {
    color: inherit;
}

.bms-fahrt__liste small {
    display: block;
    font-weight: 400;
    font-size: var(--fs-xs);
    color: #c9cec8;
}

.bms-fahrt__mwst {
    margin: 0 0 22px !important;
    font-size: var(--fs-xs);
    color: #c9cec8;
}

.bms-fahrt__mwst a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.bms-mosaik {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    grid-template-rows: 1fr 1fr;
    gap: 10px;
    min-height: 420px;
}

.bms-mosaik figure {
    position: relative;
    margin: 0;
    border-radius: 8px;
    overflow: hidden;
    background: #3f4a43;
}

.bms-mosaik figure:first-child {
    grid-row: span 2;
}

.bms-mosaik img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: saturate(0.85);
}

.bms-mosaik figcaption {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 22px 12px 8px;
    font-size: var(--fs-sm);
    color: #fff;
    background: linear-gradient(transparent, rgba(0, 0, 0, 0.6));
}

/* Sinn & Team */
.bms-sinn__grid {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: clamp(28px, 5vw, 64px);
    align-items: start;
}

.bms-sinn__zitat {
    margin: 0 0 18px !important;
    font-family: var(--bms-font-display);
    font-weight: 500;
    font-size: clamp(1.4rem, 2.6vw, 1.9rem);
    line-height: 1.3;
    color: var(--bms-kluft);
    text-wrap: balance;
}

.bms-sinn__text > p:not(.bms-eyebrow):not(.bms-sinn__zitat) {
    margin: 0 0 14px;
    max-width: 58ch;
    color: var(--bms-kluft-weich);
}

.bms-team {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

.bms-person {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
    padding: 16px;
    background: var(--bms-papier);
    border: 1px solid var(--bms-linie);
    border-radius: var(--bms-radius);
}

.bms-person__avatar {
    flex: none;
    display: grid;
    place-items: center;
    width: 54px;
    height: 54px;
    border-radius: 50%;
    font-family: var(--bms-font-display);
    font-size: var(--fs-xl);
    font-weight: 700;
    color: #fff;
}

.bms-person b {
    display: block;
    font-size: var(--fs-md);
    color: var(--bms-kluft);
}

.bms-person small {
    font-size: var(--fs-sm);
    color: var(--bms-kluft-weich);
}

.bms-team__notiz {
    grid-column: 1 / -1;
    padding: 6px 4px 0;
    font-family: var(--bms-font-hand);
    font-size: var(--fs-xl);
    font-weight: 700;
    line-height: 1.2;
    color: var(--bms-glut-dunkel);
    transform: rotate(-1.5deg);
}

/* Saison-Banner */
.bms-saison {
    /* Bild über die volle Breite, schließt direkt an den Footer an */
    padding: clamp(48px, 7vw, 84px) 0 0 !important;
}

.bms-saison__karte {
    position: relative;
    border-radius: 0;
    overflow: hidden;
    color: #fff;
    background: var(--bms-nacht);
    isolation: isolate;
}

.bms-saison__bild {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.bms-saison__bild img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.bms-saison__bild::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(38, 46, 62, 0.9), rgba(38, 46, 62, 0.35));
}

.bms-saison__innen {
    position: relative;
    z-index: 1;
    display: grid;
    justify-items: start;
    gap: 12px;
    padding: clamp(48px, 7vw, 88px) var(--bms-inset);
}

.bms-saison__innen > * {
    max-width: 620px;
}

.bms-saison .bms-eyebrow {
    color: var(--bms-sand-hell);
    margin-bottom: 0 !important;
}

.bms-saison h2 {
    color: #fff;
    font-size: clamp(1.6rem, 3vw, 2.2rem);
}

.bms-saison__innen > p:not(.bms-eyebrow) {
    color: #e3e4e7;
}

/* Responsive */
@media (max-width: 960px) {
    .bms-beliebt__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 860px) {
    /* Text liegt mobil über dem ganzen Foto: gleichmäßig abdunkeln statt nur links */
    .bms-hero__bild::after {
        background: linear-gradient(180deg, rgba(20, 23, 28, 0.72) 0%, rgba(20, 23, 28, 0.86) 100%);
    }

    .bms-stufen__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .bms-fahrt__inner,
    .bms-sinn__grid {
        grid-template-columns: 1fr;
    }

    .bms-mosaik {
        min-height: 320px;
    }
}

@media (max-width: 480px) {
    .bms-hero__aktionen {
        flex-direction: column;
    }

    .bms-hero__aktionen .button {
        justify-content: center;
    }
}

@media (max-width: 420px) {
    .bms-team {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 380px) {
    .bms-beliebt__grid {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    .bms-stufe {
        transition: none;
    }

    .bms-stufe:hover {
        transform: none;
    }
}

/* 404 */
.error404 .site-main .page-content > p,
.error404 .site-main .entry-content > p {
    margin: 0.5rem 0 1.25rem;
    color: var(--bms-muted);
}

.error404 .site-main .page-content > hr,
.error404 .site-main .entry-content > hr {
    margin: 2.5rem 0;
    background: var(--bms-border);
}

.error404 .fourohfour-columns-2 .col-2 {
    padding: 1.5rem;
    background: #fff;
    border: 1px solid var(--bms-border);
    border-radius: var(--bms-radius-lg);
}

.error404 .widget_product_categories .widget-title,
.error404 .widget_product_categories .widgettitle {
    display: none;
}

.widget_product_categories ul li::before {
    opacity: 0.35;
}

.widget_product_categories ul li a {
    color: var(--bms-text);
    text-decoration: none;
}

.widget_product_categories ul li a:hover {
    color: var(--bms-accent);
}

.widget_product_categories .count {
    color: var(--bms-subtle);
    font-size: var(--fs-sm);
}

.error404 .site-content .widget_product_search {
    padding: 0;
    background: transparent;
}

.error404 .widget_product_search form::before {
    top: 50% !important;
    transform: translateY(-50%);
}

.error404 .widget_product_search input[type="search"] {
    padding-left: 2.75rem !important;
}

.error404 .fourohfour-columns-2 {
    margin-top: 2rem;
}

.error404 .fourohfour-columns-2 ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.error404 .fourohfour-columns-2 .col-1 ul.products li.product {
    width: auto !important;
    margin: 0 !important;
}

/* Keine Treffer */
.woocommerce-no-products-found .woocommerce-info {
    max-width: 640px;
}

/* ==========================================================================
   17. Footer
   ========================================================================== */

.site-footer {
    margin-top: 0;
    padding: 0 !important;
    background: var(--bms-kluft) !important;
    border-top: 0;
    color: #cfd4da !important;
}

.site-footer .col-full {
    padding-top: 2.5rem !important;
    padding-bottom: 1.5rem !important;
}

.bms-footer {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, 1.6fr);
    gap: 1.75rem 2.5rem;
    padding-bottom: 2rem;
}

.bms-footer__brand .bms-brand__logo {
    width: 40px !important;
    height: 40px !important;
}

.bms-footer__brand .bms-brand__text {
    color: #fff;
}

.bms-footer__brand .bms-brand__title {
    font-size: var(--fs-md);
}

.bms-footer__about {
    max-width: 22rem;
    margin: 1rem 0 0;
    font-size: var(--fs-ui);
    line-height: 1.6;
    color: #cfd4da;
}

.bms-footer__title {
    margin: 0.25rem 0 0.7rem;
    font-family: var(--bms-font);
    font-size: var(--fs-sm);
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #fff !important;
}

.bms-footer__delivery {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: var(--fs-ui);
    color: #fff;
}

.bms-footer__delivery svg {
    flex: none;
    color: var(--bms-sand-hell);
}

.bms-footer__col ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.bms-footer__col li {
    margin: 0 0 0.3rem;
    line-height: 1.45;
}

/* Rechtliches: Links spaltenweise nebeneinander, damit der Footer flach bleibt */
.bms-footer__legal ul {
    columns: 2;
    column-gap: 1.75rem;
}

.bms-footer__legal li {
    break-inside: avoid;
}

.site-footer .bms-footer .bms-footer__col a:not(.button),
.site-footer .bms-footer .bms-brand {
    color: #cfd4da !important;
    font-size: var(--fs-ui);
    text-decoration: none;
}

.site-footer .bms-footer .bms-footer__col li a:not(.button):hover {
    color: #fff !important;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.site-footer .bms-footer .bms-footer__mail {
    overflow-wrap: anywhere;
}

.bms-footer__bottom {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.5rem 1.5rem;
    align-items: center;
    padding-top: 1.5rem;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    font-size: var(--fs-sm);
    color: #aeb4bb;
}

.bms-footer__bottom p {
    margin: 0;
}

.bms-footer__gruss {
    font-family: var(--bms-font-hand);
    font-size: var(--fs-xl);
    font-weight: 700;
    color: var(--bms-sand-hell);
    transform: rotate(-3deg);
}

/* Storefront-Footer-Widgets (falls genutzt) */
.site-footer .footer-widgets {
    padding-top: 0;
    border-bottom: 1px solid var(--bms-border);
    margin-bottom: 2rem;
}

/* ==========================================================================
   18. Lightbox, Fokus, Scroll-Hinweise, Kleinkram
   ========================================================================== */

/* Karten & Links ohne Unterstreichung */
.bms-account-tile,
.bms-account-tile *,
ul.products li.product a,
.wc-block-grid__product a,
.cross-sells-product a,
.mega-menu-dropdown a,
.woocommerce-MyAccount-navigation a,
.bms-cat-link,
.bms-account-link {
    text-decoration: none !important;
}

/* Sichtbarer Tastatur-Fokus, kein Rahmen nach Mausklick */
a:focus-visible,
button:focus-visible,
.button:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
    outline: 2px solid var(--bms-accent) !important;
    outline-offset: 2px;
}

a:focus:not(:focus-visible),
button:focus:not(:focus-visible),
[tabindex]:focus:not(:focus-visible),
.button:focus:not(:focus-visible) {
    outline: none;
}

input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: none;
}

/* PhotoSwipe-Lightbox: heller, ruhiger Hintergrund – Produktfotos mit weißem
   Hintergrund wirken darauf wie freigestellt. Die (weißen) Standard-Icons werden
   über einen Invert-Filter auf der UI-Ebene dunkel. */
.pswp__bg {
    background: #fff !important;
}

.pswp--open .pswp__bg {
    opacity: 1 !important;
}

.pswp__ui {
    filter: invert(1);
}

.pswp__top-bar,
.pswp__caption,
.pswp__ui--fit .pswp__top-bar,
.pswp__ui--fit .pswp__caption {
    background: transparent !important;
}

.pswp__counter {
    opacity: 0.6;
    font-family: var(--bms-font);
    font-size: var(--fs-ui);
}

.pswp__caption__center {
    max-width: 640px;
    text-align: center;
    font-family: var(--bms-font);
    font-size: var(--fs-ui);
    color: #fff;
}

.pswp__button {
    opacity: 0.7;
    transition: opacity 0.15s ease;
}

.pswp__button:hover {
    opacity: 1;
}

.pswp__button--arrow--left::before,
.pswp__button--arrow--right::before {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    /* wird durch den Invert-Filter zu einem zarten Grau */
    background-color: rgba(255, 255, 255, 0.07);
}

.pswp__img {
    cursor: zoom-in;
}

.pswp__button:focus,
.pswp__button:focus-visible {
    outline: none !important;
    box-shadow: none !important;
}

/* Scroll-Hinweis für horizontale Chip-Leisten (mobil) */
.bms-scroll-wrap {
    position: relative;
    min-width: 0;
}

.bms-scroll-wrap::before,
.bms-scroll-wrap::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    width: 2.75rem;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.2s ease;
    z-index: 2;
}

.bms-scroll-wrap::after {
    right: 0;
    background: linear-gradient(to right, rgba(255, 255, 255, 0), var(--bms-bg) 75%);
}

.bms-scroll-wrap::before {
    left: 0;
    background: linear-gradient(to left, rgba(255, 255, 255, 0), var(--bms-bg) 75%);
}

.bms-scroll-wrap.can-right::after,
.bms-scroll-wrap.can-left::before {
    opacity: 1;
}

/* Storefront: Tabellen-Hintergründe neutralisieren */
table:not(.has-background) th {
    background-color: var(--bms-accent-25, #f8fafd);
}

table:not(.has-background) tbody td,
table:not(.has-background) tbody tr:nth-child(2n) td {
    background-color: #fff;
}

/* ==========================================================================
   19. Responsive
   ========================================================================== */

/* Großer Desktop → Laptop */
@media (max-width: 1200px) {
    .bms-header-label small {
        display: none;
    }
}

@media (max-width: 1100px) {
    ul.products {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .bms-account-link .bms-header-label {
        display: none;
    }
}

/* Tablet */
@media (min-width: 768px) and (max-width: 1024px) {
    :root {
        --bms-gutter: 20px;
    }

    .site-header .col-full {
        gap: 0.75rem;
    }

    /* Warenkorb kompakt (nur Symbol mit Zähler), damit Marke mit Unterzeile und Suche Platz haben */
    .site-header-cart .cart-contents.bms-cart {
        min-width: 0;
        padding: 0 !important;
        background: transparent;
    }

    .site-header-cart .cart-contents.bms-cart .bms-header-label {
        display: none !important;
    }

    ul.products,
    .single-product .related.products ul.products,
    .single-product .up-sells ul.products {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .mega-menu-grid {
        grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
        gap: 1.25rem 1.5rem;
    }

    .bms-footer {
        grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 2fr);
    }
}

/* Konto & Kasse: ab hier einspaltig */
@media (max-width: 900px) {
    .woocommerce-account .u-columns.col2-set,
    body.woocommerce-account .woocommerce-Addresses {
        grid-template-columns: minmax(0, 1fr);
    }

    .woocommerce-account.logged-in .entry-content > .woocommerce {
        grid-template-columns: minmax(0, 1fr);
        gap: 1rem;
    }

    .woocommerce-account.logged-in .woocommerce-MyAccount-navigation {
        position: static;
        min-width: 0;
        max-width: 100%;
    }

    body .wc-block-cart__sidebar {
        position: static;
    }

    .single-product div.product {
        grid-template-columns: minmax(0, 1fr);
        gap: 1.5rem;
    }

    .single-product div.product .woocommerce-product-gallery,
    .single-product div.product .summary {
        grid-column: 1;
    }
}

/* Mobil */
@media (max-width: 767px) {
    :root {
        --bms-gutter: 16px;
        --bms-header-h: 60px;
    }

    body.admin-bar .site-header {
        top: 46px;
    }

    .site-content {
        padding-top: 1.25rem;
    }

    /* --- Header: Zeile 1 Marke · Konto · Warenkorb · Menü, Zeile 2 Suche --- */
    .site-header .col-full {
        flex-wrap: wrap;
        gap: 0.5rem 0.4rem;
        min-height: 0;
        padding-top: 0.6rem !important;
        padding-bottom: 0.6rem !important;
    }

    .site-branding {
        order: 1;
        flex: 1 1 0; /* schrumpft statt umzubrechen – Konto, Warenkorb und Menü bleiben in Zeile 1 */
        min-width: 0;
    }

    .bms-brand {
        gap: 0.5rem;
        min-width: 0;
        max-width: 100%;
    }

    .bms-brand__logo {
        width: 38px !important;
        height: 38px !important;
    }

    .bms-brand__text {
        min-width: 0;
    }

    .bms-brand__title,
    .bms-brand__subtitle {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .bms-brand__title {
        font-size: var(--fs-base);
    }

    .bms-brand__subtitle {
        font-size: var(--fs-2xs);
        letter-spacing: 0;
    }

    .bms-account-link {
        order: 2;
        height: auto;
        padding: 0 !important;
    }

    .site-header .site-header-cart {
        order: 3;
        display: block !important;
    }

    .site-header .main-navigation {
        order: 4;
    }

    .site-header .site-search {
        order: 5;
        flex: 1 1 100%;
        max-width: none;
        margin: 0.1rem 0 0 !important;
    }

    .site-search .search-field,
    .site-search .widget_product_search input[type="search"] {
        height: 44px !important;
        line-height: 44px !important;
        font-size: var(--fs-md) !important; /* verhindert Zoom unter iOS */
    }

    .bms-header-label {
        display: none !important;
    }

    .bms-account-link .bms-header-icon,
    .site-header-cart .cart-contents.bms-cart .bms-header-icon {
        width: 40px;
        height: 40px;
    }

    .site-header-cart .cart-contents {
        display: inline-flex !important;
    }

    .site-header-cart .cart-contents.bms-cart {
        min-width: 0;
        height: auto;
        padding: 0 !important;
        background: transparent;
    }

    .site-header-cart .cart-contents.bms-cart .bms-header-icon {
        background: var(--bms-accent-50, #f3f6fa);
        box-shadow: none;
    }

    .site-header-cart .widget_shopping_cart {
        display: none !important;
    }

    /* Hamburger als zarter Button */
    .site-header .main-navigation {
        position: static !important;
    }

    body button.menu-toggle {
        display: block !important;
        float: none;
        width: 42px;
        height: 42px;
        max-width: none;
        margin: 0;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 10px;
        background: var(--bms-ink) !important;
        font-size: 0;
        line-height: 0;
    }

    body button.menu-toggle::before,
    body button.menu-toggle::after,
    body button.menu-toggle span::before {
        left: 50% !important;
        width: 18px !important;
        margin-left: -9px;
        background-color: #fff !important;
    }

    body button.menu-toggle::before {
        transform: translateY(-6px);
    }

    body button.menu-toggle::after {
        transform: translateY(6px);
    }

    body .toggled button.menu-toggle::before {
        transform: rotate(45deg);
    }

    body .toggled button.menu-toggle::after {
        transform: rotate(-45deg);
    }

    .main-navigation .primary-navigation {
        display: none !important;
    }

    /* Ausklapp-Panel unter dem Header */
    .main-navigation .handheld-navigation {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        display: block;
        max-height: 0;
        overflow: hidden;
        background: var(--bms-papier);
        border-bottom: 1px solid var(--bms-border);
        box-shadow: 0 24px 40px rgba(43, 38, 30, 0.14);
        transition: max-height 0.3s var(--bms-ease);
        z-index: 999;
    }

    .main-navigation.toggled .handheld-navigation {
        max-height: calc(100vh - 120px);
        overflow-y: auto;
        overscroll-behavior: contain;
    }

    body.admin-bar .main-navigation.toggled .handheld-navigation {
        max-height: calc(100vh - 166px);
    }

    .handheld-navigation ul.menu {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0.5rem;
        margin: 0;
        padding: 1rem var(--bms-gutter) 0.5rem;
    }

    .handheld-navigation ul.menu li a {
        display: flex !important;
        align-items: center;
        justify-content: center;
        min-height: 44px;
        padding: 0.5rem !important;
        border-radius: var(--bms-radius);
        background: var(--bms-accent-50, #f3f6fa);
        color: var(--bms-ink) !important;
        font-size: var(--fs-ui);
        font-weight: 600;
        text-align: center;
        text-decoration: none;
    }

    .handheld-navigation ul.menu li.current-menu-item > a {
        background: var(--bms-ink);
        color: #fff !important;
    }

    .bms-mobile-cats {
        display: block;
        padding: 0.75rem var(--bms-gutter) 1.25rem;
    }

    .bms-mobile-cats__title {
        margin: 0.5rem 0 0.5rem;
        font-size: var(--fs-xs);
        font-weight: 700;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        color: var(--bms-muted);
    }

    .bms-mobile-cats__group,
    .bms-mobile-cats__link {
        border-bottom: 1px solid var(--bms-border);
    }

    .bms-mobile-cats__group summary,
    .bms-mobile-cats__link {
        display: flex;
        align-items: center;
        gap: 0.6rem;
        min-height: 50px;
        padding: 0 0.25rem;
        list-style: none;
        cursor: pointer;
        color: var(--bms-ink) !important;
        font-size: var(--fs-md);
        font-weight: 600;
        text-decoration: none;
    }

    .bms-mobile-cats__group summary::-webkit-details-marker {
        display: none;
    }

    .bms-mobile-cats__group summary::after {
        content: "";
        width: 16px;
        height: 16px;
        margin-left: 0.25rem;
        background: var(--bms-muted);
        -webkit-mask: var(--bms-icon-chevron) center / contain no-repeat;
        mask: var(--bms-icon-chevron) center / contain no-repeat;
        transition: transform 0.2s ease;
    }

    .bms-mobile-cats__group[open] summary::after {
        transform: rotate(180deg);
    }

    .bms-mobile-cats__count {
        margin-left: auto;
        padding: 0 0.55em;
        border-radius: var(--bms-radius-pill);
        background: var(--bms-accent-50, #f3f6fa);
        color: var(--bms-muted);
        font-size: var(--fs-xs);
        font-weight: 600;
        line-height: 1.7;
    }

    .bms-mobile-cats__group ul {
        display: flex;
        flex-wrap: wrap;
        gap: 0.4rem;
        margin: 0 !important;
        padding: 0 0 1rem !important;
        list-style: none;
    }

    .bms-mobile-cats__group li {
        margin: 0;
    }

    .bms-mobile-cats__group li a {
        display: inline-flex !important;
        padding: 0.45rem 0.8rem !important;
        border: 1px solid var(--bms-border);
        border-radius: var(--bms-radius);
        background: #fff;
        color: var(--bms-text) !important;
        font-size: var(--fs-ui);
        text-decoration: none;
    }

    .bms-mobile-cats__group li:first-child a {
        border-color: var(--bms-accent-100, #e3eaf4);
        background: var(--bms-accent-50, #f3f6fa);
        color: var(--bms-accent) !important;
        font-weight: 600;
    }

    /* --- Titel & Werkzeugleiste --- */
    .entry-title,
    .page-title,
    .woocommerce-products-header__title,
    .single-product div.product .product_title {
        font-size: var(--fs-2xl);
    }

    .bms-shop-toolbar {
        margin-bottom: 1rem;
    }

    /* Segment-Leisten: seitlich wischbar innerhalb des Rahmens (Verlauf zeigt: es geht weiter) */
    .bms-category-nav,
    .bms-subchips {
        max-width: 100%;
    }

    .bms-subchips-wrap {
        margin: -0.5rem 0 1rem;
    }

    .bms-shop-sort {
        flex: 1 1 100%;
        margin: 0.25rem 0 0;
    }

    .bms-shop-sort .woocommerce-ordering,
    .bms-shop-sort .woocommerce-ordering select {
        flex: 1;
        width: 100%;
    }

    body .storefront-sorting {
        flex-direction: column-reverse;
        margin-top: 1.75rem !important;
    }

    /* mobil: etwas kompaktere Buttons, alles in einer Zeile */
    body nav.woocommerce-pagination ul.page-numbers {
        flex-wrap: nowrap;
        gap: 0.25rem;
    }

    body nav.woocommerce-pagination ul.page-numbers li .page-numbers {
        min-width: 36px;
        height: 36px !important;
        padding: 0 0.4rem !important;
    }

    body nav.woocommerce-pagination ul.page-numbers li .page-numbers.dots {
        min-width: 16px;
        padding: 0 !important;
    }

    /* --- Produktkarten 2-spaltig --- */
    ul.products,
    .wc-block-grid__products,
    .wc-block-grid.has-3-columns .wc-block-grid__products,
    .wc-block-grid.has-4-columns .wc-block-grid__products,
    .wc-block-grid.has-5-columns .wc-block-grid__products,
    .single-product .related.products ul.products,
    .single-product .up-sells ul.products,
    .error404 .fourohfour-columns-2 ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 0.75rem !important;
    }

    ul.products li.product,
    .wc-block-grid__products .wc-block-grid__product {
        padding: 0.5rem !important;
        border-radius: 14px;
    }

    ul.products li.product:hover {
        transform: none;
    }

    ul.products li.product a img {
        margin-bottom: 0.65rem !important;
        border-radius: 10px;
    }

    ul.products li.product .woocommerce-loop-product__title {
        font-size: var(--fs-sm) !important;
    }

    ul.products li.product .price {
        font-size: var(--fs-base) !important;
        padding-bottom: 0.6rem !important;
    }

    body ul.products li.product .button {
        font-size: var(--fs-xs) !important;
        padding: 0.7em 0.35em !important;
        gap: 0.35em;
    }

    body ul.products li.product .button::before {
        width: 13px;
        height: 13px;
    }

    /* --- Produktseite --- */
    .single-product div.product .woocommerce-product-gallery {
        padding: 0.75rem;
    }

    body.single-product div.product .woocommerce-product-gallery img:not(.zoomImg) {
        max-height: 340px;
        width: 100%;
        object-fit: contain;
    }

    .single-product div.product p.price,
    .single-product div.product span.price {
        font-size: var(--fs-2xl);
    }

    .single-product div.product form.cart {
        padding: 1rem;
    }

    body.single-product .woocommerce-tabs .woocommerce-Tabs-panel {
        padding: 1.25rem !important;
    }

    /* --- Warenkorb & Kasse --- */
    body .wc-block-cart .wc-block-cart__main {
        padding: 0.25rem 1rem 0.5rem !important;
    }

    body .wc-block-cart-items .wc-block-components-product-metadata__description {
        display: none;
    }

    body .wc-block-cart-items .wc-block-cart-item__image {
        width: 72px;
    }

    body .wc-block-cart-items .wc-block-cart-item__image img {
        width: 64px;
        height: 64px;
    }

    body .wc-block-checkout__main .wc-block-components-checkout-step {
        padding: 1.25rem 1rem 1rem !important;
    }

    body .wp-block-woocommerce-cart-cross-sells-block > h2 + div {
        display: grid;
        grid-template-columns: none;
        grid-auto-flow: column;
        grid-auto-columns: 160px;
        gap: 0.75rem;
        overflow-x: auto;
        scroll-snap-type: x proximity;
        padding: 0.25rem 0.25rem 1rem;
        margin: 0 -0.25rem;
        scrollbar-width: none;
    }

    body .wp-block-woocommerce-cart-cross-sells-block .cross-sells-product {
        scroll-snap-align: start;
    }

    /* --- Konto --- */
    .woocommerce-account .u-columns.col2-set > .u-column1,
    .woocommerce-account .u-columns.col2-set > .u-column2 {
        padding: 1.5rem 1.25rem;
    }

    .woocommerce-account.logged-in .woocommerce-MyAccount-content {
        padding: 1.25rem;
        overflow-wrap: break-word;
    }

    .woocommerce-MyAccount-navigation ul {
        display: flex;
        gap: 0.35rem;
        overflow-x: auto;
        white-space: nowrap;
        scrollbar-width: none;
        padding: 0.4rem;
    }

    .woocommerce-MyAccount-navigation ul::-webkit-scrollbar {
        display: none;
    }

    body.woocommerce-account .hentry .entry-content .woocommerce-MyAccount-navigation ul li {
        flex: 0 0 auto;
        margin: 0;
    }

    body.woocommerce-account .hentry .entry-content .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link a {
        font-size: var(--fs-ui);
        padding: 0.55em 0.85em;
    }

    body.woocommerce-account .hentry .entry-content .woocommerce-MyAccount-navigation ul li.is-active a {
        box-shadow: none;
    }

    .bms-account-tiles {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.75rem;
    }

    .bms-account-tile {
        padding: 1rem;
    }

    .woocommerce-MyAccount-content table.shop_table {
        display: block;
        overflow-x: auto;
    }

    .woocommerce-customer-details .col2-set,
    .woocommerce-customer-details .woocommerce-columns--addresses {
        grid-template-columns: minmax(0, 1fr);
    }

    .woocommerce table.shop_table.order_details th,
    .woocommerce table.shop_table.order_details td {
        padding: 0.75rem 0.9rem !important;
    }

    /* --- Textseiten --- */
    .bms-textpage .entry-content,
    .single-post .entry-content {
        padding: 1.25rem;
    }

    /* --- Hinweise --- */
    body .woocommerce-info .button,
    body .woocommerce-message .button {
        width: 100%;
        margin-left: 0;
    }

    .bms-infobar__inner {
        padding: 0.55rem 2.5rem 0.55rem 1rem;
        justify-content: flex-start;
    }

    .bms-infobar__text {
        font-size: var(--fs-sm);
        text-align: left;
    }

    /* --- Footer --- */
    .site-footer .col-full {
        padding-top: 2rem !important;
    }

    .bms-footer {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1.75rem 1.25rem;
        padding-bottom: 1.75rem;
    }

    .bms-footer__brand,
    .bms-footer__contact,
    .bms-footer__legal {
        grid-column: 1 / -1;
    }

    .bms-footer__bottom {
        flex-direction: column;
    }
}

@media (max-width: 600px) {
    body.admin-bar .site-header {
        top: 0;
    }
}

@media (max-width: 380px) {
    .site-header .col-full {
        column-gap: 0.25rem;
    }

    .bms-brand {
        gap: 0.4rem;
    }

    .bms-brand__logo {
        width: 34px !important;
        height: 34px !important;
    }

    .bms-brand__title {
        font-size: var(--fs-ui);
    }

    .bms-brand__subtitle {
        letter-spacing: -0.01em;
    }

    .bms-account-link .bms-header-icon,
    .site-header-cart .cart-contents.bms-cart .bms-header-icon {
        width: 38px;
        height: 38px;
    }
}

/* Sanfter Seitenwechsel (View Transitions, Chrome/Edge/Safari 18+).
   Der Header bleibt stehen, nur der Inhalt blendet weich über. */
@view-transition {
    navigation: auto;
}

.site-header {
    view-transition-name: bms-header;
}

::view-transition-old(root) {
    animation: 160ms ease-out both bms-vt-out;
}

::view-transition-new(root) {
    animation: 260ms var(--bms-ease) both bms-vt-in;
}

::view-transition-group(bms-header) {
    animation-duration: 0s;
}

@keyframes bms-vt-out {
    to { opacity: 0; }
}

@keyframes bms-vt-in {
    from { opacity: 0; transform: translateY(6px); }
}

@media (prefers-reduced-motion: reduce) {
    @view-transition {
        navigation: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
    }
}
