/*
Theme Name: GeneratePress Child
Template: generatepress
Version: 1.0.1
*/

:root {
    --accent-color: #ff0078;
    /* Fließtext / Navigation (u. a. theme-color für Android-Nav, siehe functions.php) */
    --gp-body-text-color: #202020;
    /* Einheitliches Grau für Labels / sekundäre Hinweise (Bestellansicht u. a.) */
    --gp-label-muted-color: #888;
    /* WC Print Production: Erfolg / „Datei hochgeladen“ u. ä. (Abstufungen zu #add400) */
    --gp-success-color: #add400;
    --gp-success-surface: #f1f8e8;
    --gp-success-border: #c4e878;
    --gp-success-text: #384a0f;
    --gp-sidebar-nav-width: 96px;
    --gp-sidebar-nav-accent: var(--accent-color);
    /* Wird per JS auf Unterkante .site-header gesetzt (Start = wie Welcome-Bar) */
    --gp-sidebar-nav-top: 0px;
    --gp-child-content-outer-max: 1200px;
    --gp-child-content-max: 1120px;
    --gp-content-horizontal-removed: 80px;
    /* Wie GP .grid-container: Innenabstand links/rechts (Logo ↔ Kante „Letzte Bestellungen“) */
    --gp-grid-inline-padding: 40px;
}

/*
 * CI: GT Walsheim siteweit.
 * Schnitte in assets/fonts.css: 300 (Light), 400 (Regular), 500 (Medium, nur normal), 700 (Bold); kursiv = Oblique (500 ohne Oblique-Datei).
 * Komponenten setzen font-weight explizit; wo kein Schnitt existiert, approximiert der Browser.
 */
body,
button,
input,
select,
optgroup,
textarea,
h1,
h2,
h3,
h4,
h5,
h6,
.entry-title,
.site-title,
.widget-title,
.sidebar .widget-title,
.footer-widgets .widget-title,
.main-navigation a,
.menu-toggle,
.site-description,
blockquote,
label,
legend,
.woocommerce,
.wc-block-checkout,
.wp-block-woocommerce-checkout {
    font-family: 'GT Walsheim', sans-serif !important;
}

code,
pre,
kbd,
samp {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace !important;
}

/*
 * GP / gängige Basis: table, td, th { border: 1px solid rgba(0,0,0,.1); }
 * Ohne Raster; gezielte Linien nur dort, wo Komponenten-Regeln (z. B. border-bottom) explizit setzen.
 */
table,
td,
th {
    border: none;
}

/* Native <select> siteweit: gleicher Rahmen wie Kasse (currentColor 20 %) */
select {
    border: 1px solid color-mix(in srgb, currentColor 20%, transparent) !important;
    box-sizing: border-box;
}

/* H1 mit .entry-title (z. B. Seiten- & Beitrags-Titel) */
h1.entry-title {
    font-size: 2rem !important;
    font-weight: 500 !important;
}

/* Allgemeine Link-Farbe im Inhaltsbereich */
.site-content a:not(.button):not(.wp-block-button__link):not(.wp-element-button):not(.added_to_cart) {
    color: var(--accent-color);
}

.site-content a:not(.button):not(.wp-block-button__link):not(.wp-element-button):not(.added_to_cart):hover {
    color: #cc0062;
}

/*
 * Hauptnavigation (alle Breakpoints): aktuelle Seite / Vorfahren = Akzentfarbe, nicht GP-Standardblau.
 * Fokusring nur bei Tastatur (:focus-visible), nicht nach Mausklick.
 */
body.gp-sidebar-nav-active .main-navigation .main-nav li.current-menu-item > a,
body.gp-sidebar-nav-active .main-navigation .main-nav li.current-menu-ancestor > a,
body.gp-sidebar-nav-active .main-navigation .menu.sf-menu li.current-menu-item > a,
body.gp-sidebar-nav-active .main-navigation .menu.sf-menu li.current-menu-ancestor > a {
    color: var(--gp-sidebar-nav-accent) !important;
}

body.gp-sidebar-nav-active .main-navigation .sub-menu li.current-menu-item > a,
body.gp-sidebar-nav-active .main-navigation .sub-menu li.current-menu-ancestor > a {
    color: var(--gp-sidebar-nav-accent) !important;
}

body.gp-sidebar-nav-active .main-navigation .main-nav a:focus:not(:focus-visible),
body.gp-sidebar-nav-active .main-navigation .menu.sf-menu a:focus:not(:focus-visible) {
    outline: none;
}

body.gp-sidebar-nav-active .main-navigation .main-nav a:focus-visible,
body.gp-sidebar-nav-active .main-navigation .menu.sf-menu a:focus-visible {
    color: var(--gp-sidebar-nav-accent) !important;
    outline: 2px solid var(--gp-sidebar-nav-accent);
    outline-offset: 2px;
}

body.gp-sidebar-nav-active .main-navigation .main-nav a:hover,
body.gp-sidebar-nav-active .main-navigation .menu.sf-menu a:hover {
    color: var(--gp-sidebar-nav-accent) !important;
}

body.gp-sidebar-nav-active .main-navigation .sub-menu a:hover {
    color: var(--gp-sidebar-nav-accent) !important;
}

/* GeneratePress: alignwide / alignfull – kein negativer Margin, Breite = Content (100%) */
.entry-content .alignwide,
body:not(.no-sidebar) .entry-content .alignfull {
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
}

/* Footer am unteren Rand bei wenig Inhalt */
html {
    min-height: 100%;
}
body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}
body > #page {
    flex: 1 0 auto;
    width: 100%;
}
body > .site-footer {
    flex-shrink: 0;
}

/* Footer copyright: Herz-Icon (generate_copyright in functions.php) */
.gp-child-footer-heart {
    display: inline-flex;
    align-items: center;
    vertical-align: -0.12em;
    margin: 0 0.06em;
    color: var(--accent-color);
}

.gp-child-footer-heart svg {
    display: block;
    width: 1em;
    height: 1em;
}

/* Header: Trennlinie zum Begrüßungsbalken */
.site-header {
    border-bottom: 1px solid #d7d7d7;
}

/*
 * Zusätzliche Menüs im Header (inc/header-menus.php):
 * Logo links → Produkt-Navigation zentriert im freien Raum → Profil rechts → Primary (Sidebar/Hamburger).
 */
body.gp-sidebar-nav-active .site-header .inside-header {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.75rem 1.25rem;
}

body.gp-sidebar-nav-active .site-header .site-logo,
body.gp-sidebar-nav-active .site-header .site-branding-container {
    flex-shrink: 0;
}

.gp-header-nav-center {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.gp-header-nav--products {
    flex: 0 1 auto;
    min-width: 0;
}

.gp-header-nav--profile {
    flex-shrink: 0;
}

/* Nur Profil-Menü zugewiesen: nach rechts (kein Produkt-Block) */
body.gp-sidebar-nav-active .site-header .inside-header:not(:has(.gp-header-nav-center)) .gp-header-nav--profile {
    margin-left: auto;
}

.gp-header-nav__menu {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: inherit;
    gap: 0.25rem 1.25rem;
}

.gp-header-nav__menu a {
    font-size: 0.9375rem;
    font-weight: 600;
    color: #202020;
    text-decoration: none;
}

.gp-header-nav__menu a:hover,
.gp-header-nav__menu li.current-menu-item > a,
.gp-header-nav__menu li.current-menu-ancestor > a {
    color: var(--accent-color);
}

.gp-header-nav__menu a:focus:not(:focus-visible) {
    outline: none;
}

.gp-header-nav__menu a:focus-visible {
    outline: 2px solid var(--accent-color);
    outline-offset: 2px;
}

/*
 * Weitere Menü-Steuerung: kein Fokusrahmen nach Klick; Tap-Highlight (iOS/Android) aus.
 * Tastatur: :focus-visible mit Akzent (siehe Hauptnavigation oben).
 */
body.gp-sidebar-nav-active .main-navigation .sub-menu a:focus:not(:focus-visible),
body.gp-sidebar-nav-active .main-navigation .menu-toggle:focus:not(:focus-visible),
body.gp-sidebar-nav-active .main-navigation .dropdown-menu-toggle:focus:not(:focus-visible),
body.gp-sidebar-nav-active .gp-mobile-combined-menus a:focus:not(:focus-visible),
body.gp-sidebar-nav-active .mobile-menu-control-wrapper .menu-toggle:focus:not(:focus-visible),
body.gp-sidebar-nav-active #site-navigation .menu-toggle:focus:not(:focus-visible) {
    outline: none;
    box-shadow: none;
}

body.gp-sidebar-nav-active .main-navigation .sub-menu a:focus-visible,
body.gp-sidebar-nav-active .main-navigation .menu-toggle:focus-visible,
body.gp-sidebar-nav-active .main-navigation .dropdown-menu-toggle:focus-visible,
body.gp-sidebar-nav-active .gp-mobile-combined-menus a:focus-visible,
body.gp-sidebar-nav-active .mobile-menu-control-wrapper .menu-toggle:focus-visible,
body.gp-sidebar-nav-active #site-navigation .menu-toggle:focus-visible {
    outline: 2px solid var(--gp-sidebar-nav-accent, var(--accent-color));
    outline-offset: 2px;
}

body.gp-sidebar-nav-active .main-navigation a,
body.gp-sidebar-nav-active .main-navigation button.menu-toggle,
body.gp-sidebar-nav-active .main-navigation .dropdown-menu-toggle,
body.gp-sidebar-nav-active .gp-header-nav a,
body.gp-sidebar-nav-active .gp-mobile-combined-menus a,
body.gp-sidebar-nav-active .mobile-menu-control-wrapper .menu-toggle {
    -webkit-tap-highlight-color: transparent;
}

/*
 * Untermenü-Hover: Ohne zusätzliche Hit-Area endet :hover in der Lücke zwischen Link und Panel
 * (Submenü ist position:absolute → li-Höhe = nur der Link). Padding + Brücke schließen die Lücke.
 */
.gp-header-nav .menu-item-has-children {
    position: relative;
    padding-bottom: 0.5rem;
    margin-bottom: -0.5rem;
}

.gp-header-nav .sub-menu {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    min-width: 220px;
    margin: 0;
    padding: 0.35rem 0;
    list-style: none;
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 4px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
    z-index: 1003;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.15s ease, visibility 0.15s ease;
}

/* Unsichtbare Brücke über dem Panel, damit der Mausweg vom Icon zum Dropdown nicht „kalt“ wird */
.gp-header-nav .sub-menu::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 100%;
    height: 0.65rem;
}

.gp-header-nav--profile .sub-menu {
    left: auto;
    right: 0;
    transform: none;
}

/* Profil: Sichtbarkeit per Klasse + Tastatur (:focus-within), nicht :hover — sonst schließt sofort beim Verlassen der li */
.gp-header-nav:not(.gp-header-nav--profile) .menu-item-has-children:hover > .sub-menu,
.gp-header-nav .menu-item-has-children:focus-within > .sub-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.gp-header-nav--profile .menu-item-has-children.gp-profile-submenu-open > .sub-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.gp-header-nav .sub-menu a {
    display: block;
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
    font-weight: 500;
    white-space: nowrap;
}

.gp-header-nav .sub-menu a:hover {
    color: var(--accent-color);
}

/*
 * Warenkorb-Menüpunkt: Anzahl-Bubble (inc/cart-menu-badge.php, WooCommerce-Fragmente bei AJAX).
 */
li.gp-menu-item--cart {
    overflow: visible;
}

li.gp-menu-item--cart > a {
    position: relative;
    overflow: visible;
}

.gp-cart-count-bubble {
    position: absolute;
    top: -0.2rem;
    right: -0.45rem;
    min-width: 1.125rem;
    min-height: 1.125rem;
    padding: 0 4px;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.625rem;
    font-weight: 700;
    line-height: 1;
    color: #fff;
    background-color: var(--accent-color);
    border-radius: 999px;
    border: 2px solid #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
    pointer-events: none;
    z-index: 2;
}

.gp-cart-count-bubble--empty {
    display: none !important;
}

/* Sidebar: Bubble leicht am Icon ausrichten */
body.gp-sidebar-nav-active .main-navigation .gp-menu-item--cart > a .gp-cart-count-bubble {
    top: 0.15rem;
    right: 0.1rem;
}

/*
 * Profil-Menü im Header (Desktop/Tablet ≥841px): nur Dashicon, Text nur für Screenreader.
 * Untermenü (Kontodetails, Abmelden): weiterhin mit sichtbarem Label.
 */
.gp-header-nav--profile .gp-sidebar-nav__label {
    margin-left: 10px;
}

@media (min-width: 841px) {
    .gp-header-nav--profile > .gp-header-nav__menu > .menu-item > a {
        position: relative;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 2.5rem;
        min-height: 2.5rem;
        padding: 0.35rem 0.5rem;
        box-sizing: border-box;
    }

    .gp-header-nav--profile > .gp-header-nav__menu > .menu-item > a .gp-sidebar-nav__label {
        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;
        white-space: nowrap !important;
        border: 0 !important;
    }

    .gp-header-nav--profile > .gp-header-nav__menu > .menu-item > a .gp-sidebar-nav__icon {
        margin-right: 0;
        font-size: 1.35rem;
        width: 1.35rem;
        height: 1.35rem;
    }

    .gp-header-nav--profile .sub-menu .gp-sidebar-nav__label {
        position: static !important;
        width: auto !important;
        height: auto !important;
        overflow: visible !important;
        clip: auto !important;
        clip-path: none !important;
        white-space: normal !important;
    }

    .gp-header-nav--profile .sub-menu a {
        white-space: nowrap;
    }

    .gp-header-nav--profile > .gp-header-nav__menu > .menu-item.menu-item-has-children {
        position: relative;
    }
}

/* Mobile-Kombi-Menü: nur ≤840px sichtbar (liegt im DOM nach Primary, wird per JS in .main-nav verschoben) */
@media (min-width: 841px) {
    .gp-mobile-combined-menus {
        display: none !important;
    }
}

@media (max-width: 840px) {
    .gp-header-nav__menu {
        gap: 0.25rem 0.75rem;
    }

    .gp-header-nav__menu a {
        font-size: 0.8125rem;
    }

    .gp-header-nav-center {
        max-width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        justify-content: flex-start;
    }

    /* Produkt- und Profil-Menü nicht doppelt im Header – alles über Hamburger */
    body.gp-sidebar-nav-active .site-header .gp-header-nav-center,
    body.gp-sidebar-nav-active .site-header .gp-header-nav--profile {
        display: none !important;
    }

    /*
     * Kombi-Menü: vor dem Footer-Script liegt es noch als Geschwister nach .main-nav
     * und würde kurz sichtbar → verstecken, bis es per JS in .main-nav sitzt.
     */
    body.gp-sidebar-nav-active #site-navigation .inside-navigation > .gp-mobile-combined-menus {
        display: none !important;
    }
}

/* Header: Site-Titel & Tagline ausblenden (Logo bleibt sichtbar) */
.site-branding {
    display: none !important;
}

/* -------------------------------------------------------------------------
   Linke Sidebar-Navigation (Vorbild: feste Leiste, Icon über Label)
   Ab 841px wie Desktop; ≤840px Hamburger (generate_media_queries im Child).
   Beginnt unter dem Header (Höhe: --gp-sidebar-nav-top, per JS = .site-header unten).
   Icons: Design → Menüs → Eintrag aufklappen → „Icon (Dashicon)“
   ------------------------------------------------------------------------- */
@media (min-width: 841px) {
    body.gp-sidebar-nav-active .main-navigation {
        position: fixed;
        left: 0;
        top: var(--gp-sidebar-nav-top);
        z-index: 1000;
        width: var(--gp-sidebar-nav-width);
        height: calc(100vh - var(--gp-sidebar-nav-top));
        margin: 0;
        padding: 0;
        background: #fff;
        border-right: 1px solid #e0e0e0;
        box-sizing: border-box;
        overflow-x: visible;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    /* Header volle Breite; Sidebar beginnt erst unter dem Header (Höhe per JS) */
    body.gp-sidebar-nav-active .site-header {
        margin-left: 0;
        width: 100%;
        max-width: none;
    }

    /*
     * Kopfzeile: Inhalt (.inside-header) wie Content-Bereich – gleiche max. Breite,
     * zentriert im Bereich rechts neben der Sidebar (entspricht .grid-container).
     */
    body.gp-sidebar-nav-active .site-header .inside-header {
        box-sizing: border-box;
        margin-left: var(--gp-sidebar-nav-width);
        /*
         * 100vw statt 100%: GP/Eltern können .site-header irgendwann begrenzen; der Content
         * zentriert aber nach Viewport → ab ~Containerbreite blieb das Logo stehen.
         */
        width: calc(100vw - var(--gp-sidebar-nav-width));
        max-width: none;
        /*
         * 1) Außenstreifen wie Content: (100vw − Sidebar − Container) / 2
         * 2) + .grid-container-Innenabstand (--gp-grid-inline-padding).
         */
        padding-left: calc(
            max(
                0px,
                (100vw - var(--gp-sidebar-nav-width) - var(--gp-child-content-max)) / 2
            ) + var(--gp-grid-inline-padding)
        );
        padding-right: calc(
            max(
                0px,
                (100vw - var(--gp-sidebar-nav-width) - var(--gp-child-content-max)) / 2
            ) + var(--gp-grid-inline-padding)
        );
    }

    /* Logo ohne zusätzlichen Einzug */
    body.gp-sidebar-nav-active .site-header .site-logo {
        margin-left: 0;
        padding-left: 0;
    }

    body.gp-sidebar-nav-active .welcome-bar,
    body.gp-sidebar-nav-active .gp-page-app-bar-wrap,
    body.gp-sidebar-nav-active #content,
    body.gp-sidebar-nav-active .site-content,
    body.gp-sidebar-nav-active .site-footer {
        margin-left: var(--gp-sidebar-nav-width);
    }

    /* Superfish / GP: vertikale Hauptpunkte */
    body.gp-sidebar-nav-active .main-navigation .main-nav,
    body.gp-sidebar-nav-active .main-navigation .menu.sf-menu {
        display: flex !important;
        flex-direction: column !important;
        float: none !important;
        width: 100%;
        margin: 0 !important;
        padding: 0.5rem 0 1rem;
    }

    body.gp-sidebar-nav-active .main-navigation .main-nav > li,
    body.gp-sidebar-nav-active .main-navigation .menu.sf-menu > li {
        float: none !important;
        width: 100%;
        clear: both;
    }

    body.gp-sidebar-nav-active .main-navigation .main-nav > li > a,
    body.gp-sidebar-nav-active .main-navigation .menu.sf-menu > li > a {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-align: center;
        gap: 0.35rem;
        padding: 0.75rem 0.35rem;
        font-size: 0.65rem;
        line-height: 1.15;
        font-weight: 600;
        text-transform: none;
        border-left: 3px solid transparent;
        color: #505050;
    }

    body.gp-sidebar-nav-active .main-navigation .gp-sidebar-nav__icon {
        font-size: 22px;
        width: 22px;
        height: 22px;
        line-height: 1;
    }

    body.gp-sidebar-nav-active .main-navigation .main-nav > li.current-menu-item > a,
    body.gp-sidebar-nav-active .main-navigation .main-nav > li.current-menu-ancestor > a,
    body.gp-sidebar-nav-active .main-navigation .menu.sf-menu > li.current-menu-item > a,
    body.gp-sidebar-nav-active .main-navigation .menu.sf-menu > li.current-menu-ancestor > a {
        border-left-color: var(--gp-sidebar-nav-accent);
        color: var(--gp-sidebar-nav-accent);
    }

    body.gp-sidebar-nav-active .main-navigation .main-nav > li > a:hover,
    body.gp-sidebar-nav-active .main-navigation .menu.sf-menu > li > a:hover {
        color: var(--gp-sidebar-nav-accent);
    }

    /* Untermenüs rechts neben der Leiste */
    body.gp-sidebar-nav-active .main-navigation .menu-item-has-children {
        position: relative;
    }

    body.gp-sidebar-nav-active .main-navigation .sub-menu {
        position: absolute;
        left: 100%;
        top: 0;
        min-width: 220px;
        margin: 0;
        padding: 0.35rem 0;
        background: #fff;
        border: 1px solid #e0e0e0;
        border-radius: 4px;
        box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
        z-index: 1001;
    }

    body.gp-sidebar-nav-active .main-navigation .sub-menu li a {
        display: block;
        padding: 0.5rem 1rem;
        font-size: 0.875rem;
        text-align: left;
        border-left: none;
    }

    body.gp-sidebar-nav-active .main-navigation .dropdown-menu-toggle {
        display: none; /* Desktop: Hover/Fokus öffnet Untermenü je nach GP/JS */
    }
}

/*
 * ≤840px: kein display:flex !important auf der Liste – sonst überschreibt es GP „Menü zu“ (display:none).
 * Ein-/Ausblenden über .main-navigation.toggled wie im Theme.
 */
@media (max-width: 840px) {
    /*
     * Aufgeklapptes Menü: nicht im Fluss (sonst spannt es den Header auf), sondern
     * unter der gesamten Kopfzeile über .inside-header positioniert.
     */
    body.gp-sidebar-nav-active .site-header .inside-header {
        position: relative;
        z-index: 100;
    }

    /*
     * Bezug für das Dropdown: rechte Kante = rechte Kante des Menü-Buttons (Nav ist schmal).
     * Nicht static – sonst spannt sich das Panel fälschlich nur wie der Button-Inhalt.
     */
    body.gp-sidebar-nav-active #site-navigation.main-navigation {
        position: relative;
        z-index: 1002;
    }

    /* Hamburger rechts (769–840px: GP lässt #site-navigation sonst links, Panel aber right:0) */
    body.gp-sidebar-nav-active .site-header .inside-header #site-navigation.main-navigation {
        margin-left: auto;
    }

    /*
     * Nur ein Hamburger: der originale Button in #site-navigation (Template-Position).
     * Zusätzliche .menu-toggle (z. B. Secondary Nav, Mobile Header, Klon) ausblenden.
     */
    body.gp-sidebar-nav-active button.menu-toggle {
        display: none !important;
    }

    /*
     * Menü-Button: Icon + Label nebeneinander.
     * Wichtig: kein display auf die SVGs setzen – GP blendet Hamburger/X per display:none aus.
     */
    body.gp-sidebar-nav-active #site-navigation button.menu-toggle {
        /* Grid zentriert Icon + Text robuster als Flex (gemischte SVG/Text-Metrik) */
        display: inline-grid !important;
        grid-auto-flow: column;
        align-items: center !important;
        justify-content: start;
        gap: 0.4rem;
        box-sizing: border-box;
        margin: 0 !important;
        /* gleiches Padding zu / auf (GP ändert sonst oft bei .toggled) */
        padding: 0.35rem 0.5rem !important;
        line-height: 1 !important;
        background: transparent !important;
        box-shadow: none !important;
        -webkit-tap-highlight-color: transparent;
    }

    body.gp-sidebar-nav-active #site-navigation.main-navigation.toggled button.menu-toggle {
        padding: 0.35rem 0.5rem !important;
        margin: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    body.gp-sidebar-nav-active #site-navigation .menu-toggle:focus,
    body.gp-sidebar-nav-active #site-navigation .menu-toggle:focus-visible,
    body.gp-sidebar-nav-active #site-navigation .menu-toggle:active {
        background: transparent !important;
        box-shadow: none !important;
    }

    /* Icon-Box: feste Zeilenhöhe = 1em, zentriert zum Schrift-Maß des Buttons */
    body.gp-sidebar-nav-active #site-navigation .menu-toggle .gp-icon {
        display: flex !important;
        align-items: center;
        justify-content: center;
        width: 1em;
        height: 1em;
        line-height: 0;
    }

    /* Nur Größe – kein display (GP blendet ein SVG per display:none aus) */
    body.gp-sidebar-nav-active #site-navigation .menu-toggle .gp-icon svg {
        width: 1em !important;
        height: 1em !important;
    }

    /*
     * „Menü“ sichtbar neben dem GP-Icon.
     * Zwei Selektoren: .screen-reader-text + generischer Span (falls GP Markup weicht).
     * translateY in px + !important: 0,12em war fast unsichtbar; GP kann transform überschreiben.
     */
    body.gp-sidebar-nav-active #site-navigation .menu-toggle .screen-reader-text,
    body.gp-sidebar-nav-active #site-navigation .menu-toggle > span:not(.gp-icon) {
        position: static !important;
        width: auto !important;
        height: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: visible !important;
        clip: auto !important;
        clip-path: none !important;
        white-space: nowrap !important;
        font-size: inherit;
        line-height: 1 !important;
        font-weight: 600;
        display: block !important;
        transform: translateY(3px) !important;
    }

    body.gp-sidebar-nav-active .main-navigation:not(.toggled) .main-nav,
    body.gp-sidebar-nav-active .main-navigation:not(.toggled) .menu.sf-menu {
        display: none !important;
    }

    body.gp-sidebar-nav-active .main-navigation:not(.toggled) .gp-mobile-combined-menus {
        display: none !important;
    }

    /*
     * GP/Superfish: oft max-height:0 + overflow:hidden am .main-nav; bei absolute + max-height:100%
     * kollabiert die Höhe. Explizit Inhaltshöhe erzwingen.
     *
     * Panel nur auf .main-nav (Wrapper), nicht doppelt auf ul#primary-menu — sonst kollidiert das Layout.
     * Grid: eine Spalte = max-content → Gesamtbreite = breitester Menüpunkt; justify-items: stretch →
     * Primary-, Produkt- und Profil-Block füllen dieselbe Breite (100 % der Spalte).
     */
    body.gp-sidebar-nav-active .main-navigation.toggled .main-nav {
        display: grid !important;
        grid-template-columns: max-content;
        justify-items: stretch;
        float: none !important;
        position: absolute;
        left: auto !important;
        right: 0 !important;
        top: 100%;
        width: max-content !important;
        max-width: calc(100vw - 1rem) !important;
        margin: 0 !important;
        padding: 0.35rem 0;
        z-index: 1001;
        background: #fff;
        box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
        border-bottom: 1px solid #e0e0e0;
        box-sizing: border-box;
        height: auto !important;
        min-height: auto !important;
        max-height: 85vh !important;
        max-height: min(85vh, calc(100dvh - 100px)) !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch;
        visibility: visible !important;
        opacity: 1 !important;
        clip: auto !important;
        clip-path: none !important;
    }

    body.gp-sidebar-nav-active .main-navigation.toggled .main-nav > li,
    body.gp-sidebar-nav-active .main-navigation.toggled .menu.sf-menu > li,
    body.gp-sidebar-nav-active .main-navigation.toggled ul#primary-menu > li {
        display: list-item !important;
        visibility: visible !important;
        opacity: 1 !important;
        max-height: none !important;
        height: auto !important;
        overflow: visible !important;
        position: relative !important;
        left: auto !important;
        right: auto !important;
        transform: none !important;
        width: 100% !important;
        max-width: 100%;
        box-sizing: border-box;
    }

    /*
     * GeneratePress: oft <div class="main-nav"><ul id="primary-menu">…
     * Unsere Regeln treffen den Wrapper; das innere <ul> behält sonst max-height:0 → nur Padding-Streifen.
     */
    body.gp-sidebar-nav-active #site-navigation.toggled .main-nav > ul,
    body.gp-sidebar-nav-active .main-navigation.toggled .main-nav > ul#primary-menu,
    body.gp-sidebar-nav-active .main-navigation.toggled .main-nav > ul.menu {
        display: block !important;
        position: static !important;
        float: none !important;
        left: auto !important;
        top: auto !important;
        /* Volle Breite der Grid-Spalte (= breitester Eintrag im gesamten Panel) */
        width: 100% !important;
        min-width: 0;
        max-width: 100%;
        /* Abstand zum Block „Produkte“ / Profil im Hamburger */
        margin: 0 0 0.4rem 0 !important;
        padding: 0 0 0.45rem 0 !important;
        height: auto !important;
        min-height: auto !important;
        max-height: none !important;
        overflow: visible !important;
        visibility: visible !important;
        opacity: 1 !important;
        clip: auto !important;
        clip-path: none !important;
        transform: none !important;
        box-shadow: none !important;
        border: none !important;
    }

    body.gp-sidebar-nav-active #site-navigation.toggled .main-nav > ul > li,
    body.gp-sidebar-nav-active .main-navigation.toggled .main-nav > ul#primary-menu > li {
        display: list-item !important;
        position: relative !important;
        visibility: visible !important;
        opacity: 1 !important;
        height: auto !important;
        max-height: none !important;
        transform: none !important;
        width: 100% !important;
        box-sizing: border-box;
    }

    body.gp-sidebar-nav-active .main-navigation.toggled .inside-navigation {
        overflow: visible !important;
    }

    body.gp-sidebar-nav-active .main-navigation:not(.toggled) .main-nav > li,
    body.gp-sidebar-nav-active .main-navigation:not(.toggled) .menu.sf-menu > li {
        width: 100%;
        clear: both;
        float: none !important;
    }

    body.gp-sidebar-nav-active .main-navigation .gp-sidebar-nav__icon {
        display: inline-block;
        vertical-align: middle;
        margin-right: 0.35rem;
        font-size: 1.1em;
    }

    body.gp-sidebar-nav-active .main-navigation .gp-sidebar-nav__label {
        display: inline;
    }

    body.gp-sidebar-nav-active .main-navigation .main-nav > li > a,
    body.gp-sidebar-nav-active .main-navigation .menu.sf-menu > li > a {
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: flex-start;
        text-align: left;
        gap: 0.35rem;
        padding: 0.65rem 0.75rem;
        font-size: inherit;
        font-weight: 600;
        border-left: none;
        white-space: normal;
    }

    /* Geöffnetes Mobile-Menü: mehr Zeilenhöhe + Padding → größere Tap-Flächen, weniger Fat-Finger */
    body.gp-sidebar-nav-active .main-navigation.toggled .main-nav > li > a,
    body.gp-sidebar-nav-active .main-navigation.toggled .menu.sf-menu > li > a,
    body.gp-sidebar-nav-active .main-navigation.toggled ul#primary-menu > li > a {
        font-size: 0.9375rem !important;
        padding: 0.65rem 0.75rem !important;
        font-weight: 500 !important;
        gap: 0.35rem;
        line-height: 1.45 !important;
        width: 100% !important;
        max-width: 100%;
        box-sizing: border-box;
    }

    body.gp-sidebar-nav-active .main-navigation.toggled .gp-sidebar-nav__icon {
        font-size: 1.1rem !important;
        margin-right: 0.35rem !important;
    }

    body.gp-sidebar-nav-active .main-navigation .dropdown-menu-toggle {
        display: inline-block;
    }

    /* Untermenüs unter dem Punkt statt „nach rechts“ wie an der Sidebar */
    body.gp-sidebar-nav-active .main-navigation .sub-menu {
        position: static;
        left: auto;
        top: auto;
        width: 100%;
        min-width: 0;
        box-shadow: none;
        border: none;
        border-radius: 0;
        padding-left: 0.75rem;
    }

    body.gp-sidebar-nav-active .main-navigation.toggled .sub-menu {
        padding-left: 0.5rem;
        width: 100% !important;
        min-width: 0;
        max-width: 100%;
        box-sizing: border-box;
    }

    body.gp-sidebar-nav-active .main-navigation.toggled .sub-menu > li {
        width: 100% !important;
        box-sizing: border-box;
    }

    body.gp-sidebar-nav-active .main-navigation.toggled .sub-menu a {
        font-size: 0.8125rem !important;
        font-weight: 500 !important;
        padding: 0.5rem 0.55rem 0.5rem 0.6rem !important;
        line-height: 1.4 !important;
        width: 100% !important;
        max-width: 100%;
        box-sizing: border-box;
    }

    /* GP kann am ul li a sehr hohe line-height setzen — hier moderat erhöht fürs Tippen */
    body.gp-sidebar-nav-active .main-navigation.toggled .main-nav ul li a {
        line-height: 1.45 !important;
    }

    /* Produkt- + Profil-Blöcke im gleichen Dropdown wie Primary (nach JS-Verschiebung in .main-nav) */
    body.gp-sidebar-nav-active .main-navigation.toggled .main-nav .gp-mobile-combined-menus {
        display: block !important;
        width: 100% !important;
        min-width: 0;
        max-width: 100%;
        box-sizing: border-box;
        margin: 0;
        padding: 0;
        clear: both;
    }

    body.gp-sidebar-nav-active .main-navigation.toggled .main-nav .gp-mobile-combined-menus > .gp-mobile-nav-section:first-child {
        margin-top: 0.25rem;
        padding-top: 1.2rem;
        border-top: 1px solid #e8e8e8;
    }

    body.gp-sidebar-nav-active .main-navigation.toggled .gp-mobile-nav-section__title {
        display: block;
        width: 100%;
        box-sizing: border-box;
        margin: 0 0 0.4rem 0;
        padding: 0 0.75rem;
        font-size: 0.6875rem;
        font-weight: 700;
        line-height: 1.2;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        color: #666;
    }

    body.gp-sidebar-nav-active .main-navigation.toggled .gp-mobile-nav-section {
        width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }

    body.gp-sidebar-nav-active .main-navigation.toggled .gp-mobile-nav-section--products {
        margin-bottom: 0.5rem;
        padding-bottom: 0.55rem;
        border-bottom: 1px solid #e8e8e8;
    }

    body.gp-sidebar-nav-active .main-navigation.toggled .gp-mobile-nav-section--profile {
        padding-bottom: 0.2rem;
    }

    body.gp-sidebar-nav-active .main-navigation.toggled .gp-mobile-nav--products {
        width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }

    /* Flaches Profil-Menü: keine Dropdown-Pfeile / zweite Ebene */
    body.gp-sidebar-nav-active .main-navigation.toggled .gp-mobile-profile-flat-menu .dropdown-menu-toggle {
        display: none !important;
    }

    /*
     * Warenkorb-Bubble im Hamburger: im Fluss direkt hinter „Warenkorb“, vertikal zentriert (Flex am <a>).
     * Statt position:absolute am rechten Rand → Panel wird nicht unnötig breit.
     */
    body.gp-sidebar-nav-active .main-navigation.toggled .gp-menu-item--cart > a .gp-cart-count-bubble {
        position: static !important;
        top: auto !important;
        right: auto !important;
        margin-left: 0.35rem;
        flex-shrink: 0;
        align-self: center;
        border-width: 1px;
        box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12);
    }

    /*
     * GeneratePress (mobile-menu): .main-navigation ul { display: none } ohne :not(.toggled) —
     * trifft auch die ULs in .gp-mobile-combined-menus. Explizit einblenden, sobald das Hamburger-Menü offen ist.
     */
    body.gp-sidebar-nav-active .main-navigation.toggled .gp-mobile-combined-menus ul {
        display: block !important;
    }

    body.gp-sidebar-nav-active .main-navigation.toggled .gp-mobile-combined-menus__menu {
        list-style: none;
        margin: 0;
        padding: 0;
    }

    body.gp-sidebar-nav-active .main-navigation.toggled .gp-mobile-combined-menus__menu > li {
        display: list-item !important;
        width: 100% !important;
        box-sizing: border-box;
    }

    body.gp-sidebar-nav-active .main-navigation.toggled .gp-mobile-combined-menus__menu > li > a {
        display: flex !important;
        flex-direction: row;
        align-items: center;
        justify-content: flex-start;
        gap: 0.35rem;
        padding: 0.65rem 0.75rem !important;
        font-size: 0.9375rem !important;
        font-weight: 500 !important;
        line-height: 1.45 !important;
        color: #202020;
        text-decoration: none;
        white-space: normal;
        width: 100% !important;
        max-width: 100%;
        box-sizing: border-box;
    }

    body.gp-sidebar-nav-active .main-navigation.toggled .gp-mobile-combined-menus__menu > li > a:hover,
    body.gp-sidebar-nav-active .main-navigation.toggled .gp-mobile-combined-menus__menu > li.current-menu-item > a {
        color: var(--accent-color);
    }

    body.gp-sidebar-nav-active .main-navigation.toggled .gp-mobile-combined-menus .sub-menu {
        position: static;
        left: auto;
        top: auto;
        width: 100%;
        min-width: 0;
        box-shadow: none;
        border: none;
        border-radius: 0;
        padding-left: 0.5rem;
        margin: 0;
        list-style: none;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }

    body.gp-sidebar-nav-active .main-navigation.toggled .gp-mobile-combined-menus .sub-menu a {
        font-size: 0.8125rem !important;
        font-weight: 500 !important;
        padding: 0.5rem 0.55rem 0.5rem 0.6rem !important;
        line-height: 1.4 !important;
        width: 100% !important;
        max-width: 100%;
        box-sizing: border-box;
    }

    body.gp-sidebar-nav-active .main-navigation.toggled .gp-mobile-combined-menus .gp-sidebar-nav__icon {
        font-size: 1.1rem !important;
        flex-shrink: 0;
    }
}

/*
 * GP: .has-inline-mobile-toggle setzt #site-navigation bis ~840px oft auf flex-basis: 100 %
 * → Toggle links / Panel wirkt „von rechts“. Bis 840px wie ≤768: eine Zeile + margin-left:auto auf Nav.
 */
@media (max-width: 840px) {
    /* Klasse oft auf body, seltener auf .site-header */
    body.gp-sidebar-nav-active.has-inline-mobile-toggle #site-navigation,
    body.gp-sidebar-nav-active.has-inline-mobile-toggle .header-widget,
    body.gp-sidebar-nav-active .site-header.has-inline-mobile-toggle #site-navigation,
    body.gp-sidebar-nav-active .site-header.has-inline-mobile-toggle .header-widget,
    body.gp-sidebar-nav-active .has-inline-mobile-toggle #site-navigation,
    body.gp-sidebar-nav-active .has-inline-mobile-toggle .header-widget {
        flex-basis: auto !important;
        flex-grow: 0 !important;
        flex-shrink: 0 !important;
        width: auto !important;
        max-width: none !important;
    }

    /*
     * Panelbreite = breitester Eintrag (max-content-Grid) — Ergänzung zu den ≤840px-Panelregeln oben.
     */
    body.gp-sidebar-nav-active .main-navigation.toggled .main-nav {
        width: max-content !important;
        max-width: calc(100vw - 1rem) !important;
        box-sizing: border-box;
    }

    body.gp-sidebar-nav-active .main-navigation.toggled .main-nav .gp-mobile-combined-menus {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
    }
}

/*
 * GP: .has-inline-mobile-toggle #site-navigation.toggled { margin-top: 1.5em; }
 * schiebt die komplette Navigation nach unten → Header/Button springen. Überflüssig, da
 * das aufgeklappte Menü bei uns unter .inside-header absolut positioniert ist.
 */
@media (max-width: 840px) {
    body.gp-sidebar-nav-active.has-inline-mobile-toggle #site-navigation.toggled,
    body.gp-sidebar-nav-active .site-header.has-inline-mobile-toggle #site-navigation.toggled,
    body.gp-sidebar-nav-active .has-inline-mobile-toggle #site-navigation.toggled {
        margin-top: 0 !important;
        background: transparent !important;
        background-color: transparent !important;
    }

    /*
     * GP: rgba(0,0,0,0.02) auf .mobile-menu-control-wrapper .menu-toggle (inkl. :hover/:focus).
     */
    body.gp-sidebar-nav-active .mobile-menu-control-wrapper .menu-toggle,
    body.gp-sidebar-nav-active .mobile-menu-control-wrapper .menu-toggle:hover,
    body.gp-sidebar-nav-active .mobile-menu-control-wrapper .menu-toggle:focus,
    body.gp-sidebar-nav-active .mobile-menu-control-wrapper .menu-toggle:focus-visible,
    body.gp-sidebar-nav-active .mobile-menu-control-wrapper .menu-toggle:active {
        background: transparent !important;
        background-color: transparent !important;
    }
}

/* Begrüßungsbalken unterhalb des Headers */
.welcome-bar {
    width: 100%;
    padding: 2rem 1rem;
    background-color: #fff;
    color: #202020;
    font-size: 2rem;
    font-weight: 500;
    text-align: center;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

/*
 * Warenkorb, Kasse & Mein Konto: .gp-page-app-bar-wrap = volle Breite neben Sidebar (wie .welcome-bar).
 * Breite/Padding der inneren .gp-page-app-bar siehe unten (an .grid-container + .inside-article angeglichen).
 */
body.gp-child-page-app-bar-context .gp-page-app-bar-wrap {
    width: 100%;
    box-sizing: border-box;
    background-color: #fff;
    color: #202020;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

/*
 * Gleiche horizontale Einrückung wie .inside-article (40px = --gp-grid-inline-padding)
 * und dieselbe äußere Breite wie .site-content .grid-container.
 */
body.gp-child-page-app-bar-context .gp-page-app-bar {
    max-width: var(--gp-child-content-outer-max);
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
    padding: 1.5rem var(--gp-grid-inline-padding) 1.25rem;
}

/* Mit fester Sidebar: Grid ist --gp-child-content-max (s. functions.php / .grid-container) */
body.gp-sidebar-nav-active:not(.full-width-content).gp-child-page-app-bar-context .gp-page-app-bar {
    max-width: var(--gp-child-content-max);
}

body.full-width-content.gp-child-page-app-bar-context .gp-page-app-bar {
    max-width: none;
}

/*
 * Sidebar aktiv (≥841px): margin-left + width 100% ergibt zusammen mehr als die Zeile —
 * Breite um die Sidebar reduzieren. ≤840px kein fester Sidebar-Einzug → globale 100%-Regeln.
 */
@media (min-width: 841px) {
    body.gp-sidebar-nav-active .welcome-bar,
    body.gp-sidebar-nav-active #content,
    body.gp-sidebar-nav-active .site-content,
    body.gp-sidebar-nav-active .site-footer {
        width: calc(100% - var(--gp-sidebar-nav-width));
        box-sizing: border-box;
    }

    body.gp-sidebar-nav-active.gp-child-page-app-bar-context .gp-page-app-bar-wrap {
        width: calc(100% - var(--gp-sidebar-nav-width));
        box-sizing: border-box;
    }
}

/* Doppelter GP-Titel im Artikel ausblenden (Titel steht in der Leiste) */
body.gp-child-page-app-bar-context .inside-article > .entry-header {
    display: none !important;
}

.gp-page-app-bar .entry-header {
    margin: 0;
    padding: 0;
    background: transparent;
    border: none;
    width: 100%;
    box-sizing: border-box;
    text-align: left;
}

/* Warenkorb, Kasse, Konto: Titel im Balken links (nur Dankeseite unten zentriert) */
.gp-page-app-bar .entry-title {
    margin: 0;
    text-align: left;
}

/* Dankeseite: Dank + E-Mail-Hinweis im Balken */
body.woocommerce-order-received .gp-page-app-bar .gp-page-app-bar__header--order-received {
    width: 100%;
    text-align: center;
}

body.woocommerce-order-received .gp-page-app-bar .gp-page-app-bar__header--order-received .entry-title {
    text-align: center;
}

body.woocommerce-order-received .gp-page-app-bar .gp-page-app-bar__thankyou-intro {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    max-width: 36rem;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
}

body.woocommerce-order-received .gp-page-app-bar .gp-page-app-bar__thankyou-lead {
    margin: 0 0 0.65rem;
    font-size: clamp(1.35rem, 3vw, 1.75rem);
    font-weight: 700;
    line-height: 1.25;
    color: #202020;
    text-align: center;
}

body.woocommerce-order-received .gp-page-app-bar .gp-page-app-bar__thankyou-note {
    display: flex;
    align-items: flex-start;
    gap: 0.45rem;
    width: fit-content;
    max-width: 100%;
    margin: 0 auto;
    font-size: 0.95rem;
    line-height: 1.45;
    color: #50575e;
    text-align: left;
    box-sizing: border-box;
}

body.woocommerce-order-received .gp-page-app-bar .gp-page-app-bar__thankyou-check {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.25rem;
    height: 1.25rem;
    margin-top: 0.12rem;
    font-size: 0.7rem;
    font-weight: 800;
    line-height: 1;
    color: #fff;
    background: #1fa857;
    border-radius: 50%;
}

body.woocommerce-order-received .gp-page-app-bar .gp-page-app-bar__thankyou-note-text {
    flex: 1;
    min-width: 0;
    text-align: left;
}

body.woocommerce-order-received .gp-page-app-bar .gp-page-app-bar__toolbar {
    width: 100%;
}

/* Toolbar: links / rechts wie Probo (Inhalt per Hook) */
.gp-page-app-bar__toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem 1.5rem;
    margin-top: 1.25rem;
}

.gp-page-app-bar__toolbar:empty {
    display: none;
    margin-top: 0;
}

.gp-page-app-bar__toolbar-start,
.gp-page-app-bar__toolbar-end {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
}

.gp-page-app-bar__toolbar-end {
    margin-left: auto;
}

/* GeneratePress: Container ohne Hintergrund */
.separate-containers .inside-article,
.separate-containers .comments-area,
.separate-containers .page-header,
.one-container .container,
.separate-containers .paging-navigation,
.inside-page-header {
    background-color: transparent;
}

/* GeneratePress Parent: margin: 20px auf .site-main zurücknehmen */
.separate-containers .site-main {
    margin: 0 !important;
}

/*
 * Nur .inside-article: 40px rundum (wie GP).
 * Bei den anderen drei: kein horizontales Padding → effektive Spalte wie zuvor
 * über schmaleren .grid-container (--gp-child-content-max, siehe functions.php).
 */
.separate-containers .inside-article {
    padding: 40px !important;
}

.separate-containers .comments-area,
.separate-containers .page-header,
.separate-containers .paging-navigation {
    padding-top: 40px !important;
    padding-bottom: 40px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

body.gp-sidebar-nav-active:not(.full-width-content) .site-content .grid-container,
body.gp-sidebar-nav-active:not(.full-width-content) .site-footer .grid-container {
    max-width: var(--gp-child-content-max) !important;
}

/* WooCommerce: Shop-Header ausblenden */
.woocommerce-products-header__title,
.woocommerce .woocommerce-products-header__title,
.woocommerce .page-title,
.woocommerce-result-count,
.woocommerce-ordering {
    display: none !important;
}

/* WooCommerce: Einzelprodukt – Summary ohne Float (klassisches Layout) */
.woocommerce #content div.product div.summary,
.woocommerce div.product div.summary,
.woocommerce-page #content div.product div.summary,
.woocommerce-page div.product div.summary {
    float: none !important;
    clear: both;
    width: 100%;
    max-width: none;
}

/* WooCommerce: Produktseite – Standard-H1 ausblenden */
.woocommerce h1.product_title.entry-title {
    display: none !important;
}

/* WooCommerce: Produktgrid – dynamisches Fließen */
.woocommerce ul.products {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(225px, 1fr));
    gap: 1.5rem;
}

/* Clearfix-Pseudo-Elemente aus dem Grid-Flow entfernen */
.woocommerce ul.products::before,
.woocommerce ul.products::after {
    display: none;
    content: none;
}

.woocommerce ul.products li.product,
.woocommerce ul.products.columns-3 li.product,
.woocommerce-page ul.products.columns-3 li.product {
    width: 100%;
    max-width: none;
    margin-bottom: 0;
    background-color: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 2rem 1rem;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.woocommerce ul.products li.product:hover,
.woocommerce ul.products.columns-3 li.product:hover,
.woocommerce-page ul.products.columns-3 li.product:hover {
    transform: scale(1.03);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

/* WooCommerce: Produktbilder auf Shop- und Archivseiten */
.woocommerce ul.products li.product .woocommerce-loop-product__link,
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
    display: block;
}

.woocommerce ul.products li.product img {
    width: 100%;
    max-width: 225px;
    max-height: 225px;
    height: auto;
    display: block;
    object-fit: cover;
}

/* WooCommerce: Button "Jetzt konfigurieren" */
.woocommerce ul.products li.product a.button {
    font-weight: 300;
    font-size: 0.9rem;
    background-color: var(--accent-color);
    color: #fff;
    border: none;
    margin-bottom: 0;
}

.woocommerce ul.products li.product a.button:hover {
    background-color: #cc0062;
    color: #fff;
}

/* WooCommerce: Produkttitel */
.woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-weight: 500;
    font-size: 16px;
    color: #202020;
}

/*
 * Shop / Kasse / Konto: Hinweise oben — kein Fokus-Outline (vermeidet Doppellinie mit Plugin/Browser).
 */
.wcpp-missing-files-notice:is(:focus, :focus-visible),
.wcpp-missing-files-notice :is(a, button, input, select, textarea):is(:focus, :focus-visible),
[class*='wcpp-'][class*='notice']:is(:focus, :focus-visible),
[class*='wcpp-'][class*='notice'] :is(a, button, input, select, textarea):is(:focus, :focus-visible),
.woocommerce-message:is(:focus, :focus-visible),
.woocommerce-message :is(a, button, input, select, textarea):is(:focus, :focus-visible),
.woocommerce-error:is(:focus, :focus-visible),
.woocommerce-error :is(a, button, input, select, textarea):is(:focus, :focus-visible),
.woocommerce-info:is(:focus, :focus-visible),
.woocommerce-info :is(a, button, input, select, textarea):is(:focus, :focus-visible) {
    outline: none !important;
    box-shadow: none !important;
}

/* WooCommerce: Kasse – .entry-content näher an die Seitenüberschrift */
body.woocommerce-checkout .entry-content {
    margin-top: 0 !important;
}

/* WooCommerce: Warenkorb – wie Kasse */
body.woocommerce-cart .entry-content {
    margin-top: 0 !important;
}

/* Leerer Warenkorb: wie übrige Karten (weiß, Schatten), Text zentriert */
body.woocommerce-cart .entry-content > .woocommerce:has(.cart-empty.woocommerce-info) {
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    padding: 2rem 1.5rem;
    box-sizing: border-box;
    text-align: center;
}

/* Leerer Warenkorb (nur Empty-Cart-Block — oft ohne äußeres .wp-block-woocommerce-cart) */
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block {
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    padding: 3rem 1.5rem;
    box-sizing: border-box;
    text-align: center;
}

body.woocommerce-cart .wc-block-cart__empty-cart__title {
    margin-bottom: 0;
}

body.woocommerce-cart .wp-block-woocommerce-empty-cart-block .alignleft,
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block .alignright {
    float: none;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

/* Block-Editor: Punkt-Trenner (Dots) ausblenden */
hr.wp-block-separator.has-alpha-channel-opacity.is-style-dots {
    display: none !important;
}

/*
 * Dankeseite: kein Karten-Hintergrund — Inhalt (ab „ABER“ u. a.) liegt auf Seitengrund,
 * Weiß nur noch in der App-Bar (.gp-page-app-bar-wrap).
 */
body.woocommerce-order-received .inside-article > .entry-content {
    background-color: transparent;
    border-radius: 0;
    box-shadow: none;
    padding: 0;
    margin-top: 0 !important;
    box-sizing: border-box;
}

/* Erfolgsmeldung steht in .gp-page-app-bar — dieselbe Meldung im Inhalt ausblenden */
body.woocommerce-order-received .woocommerce-thankyou-order-received {
    display: none !important;
}

/*
 * Bestell-Übersicht (Nummer, Datum, Total …): auch ohne Child-thankyou.php sichtbar —
 * z. B. Block-Kasse oder Cache. Zuverlässig ausblenden.
 */
body.woocommerce-order-received ul.woocommerce-order-overview,
body.woocommerce-order-received ul.woocommerce-thankyou-order-details,
body.woocommerce-order-received ul.order_details.woocommerce-order-overview {
    display: none !important;
}

/*
 * WC Print Production (frontend.css): CI-Erfolgsgrün, Fortschritts-Label.
 */
.wcpp-production-release-notice__actions {
    margin-top: 10px !important;
}

.wcpp-progress-text {
    color: #fff !important;
    text-shadow:
        0 1px 2px rgba(0, 0, 0, 0.45),
        0 0 1px rgba(0, 0, 0, 0.35);
}

.wcpp-file-info {
    background: var(--gp-success-surface) !important;
    border-color: var(--gp-success-border) !important;
}

.wcpp-file-info .wcpp-file-thumb-wrap {
    border-color: var(--gp-success-border) !important;
}

.wcpp-file-status {
    color: var(--gp-success-color) !important;
}

.wcpp-message.wcpp-success {
    background: var(--gp-success-surface) !important;
    border-color: var(--gp-success-border) !important;
    color: var(--gp-success-text) !important;
}

.wcpp-status-badge--uploaded {
    background: var(--gp-success-surface) !important;
    border: 1px solid var(--gp-success-border) !important;
    color: var(--gp-success-text) !important;
}

.wcpp-badge-complete {
    background: var(--gp-success-surface) !important;
    color: var(--gp-success-text) !important;
}

.wcpp-printfile-item.wcpp-item--uploaded {
    border-left-color: var(--gp-success-color) !important;
}

/*
 * WooCommerce Print / „wcpp“: eigener Dankeseiten-Hinweis — Theme bringt .gp-thankyou-next-steps.
 * Plugin-Output hier ausblenden; dauerhaft besser: Einbindung im Print-Plugin abschalten.
 */
body.woocommerce-order-received .wcpp-thankyou-upload-prompt {
    display: none !important;
}

/* Dankeseite: ab „ABER“ — Upload-Hinweis & Button zentriert */
.gp-thankyou-next-steps {
    margin: 0;
    padding: 0;
    max-width: 36rem;
    width: 100%;
    box-sizing: border-box;
}

/* Block unter App-Bar im Content horizontal mittig */
body.woocommerce-order-received .inside-article .entry-content .woocommerce-order {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
}

.gp-thankyou-next-steps--upload-focus {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

.gp-thankyou-next-steps--upload-focus .gp-thankyou-next-steps__but,
.gp-thankyou-next-steps--upload-focus .gp-thankyou-next-steps__focus,
.gp-thankyou-next-steps--upload-focus .gp-thankyou-next-steps__action {
    text-align: center;
}

.gp-thankyou-next-steps--upload-focus .gp-thankyou-next-steps__action {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
}

.gp-thankyou-next-steps .screen-reader-text {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(1px, 1px, 1px, 1px) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.gp-thankyou-next-steps__but {
    margin: 0 0 0.65rem;
    font-size: clamp(2rem, 5vw, 2.75rem);
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: 0.02em;
    color: var(--accent-color);
}

.gp-thankyou-next-steps__focus {
    margin: 0 0 1.25rem;
    font-size: clamp(1.05rem, 2.2vw, 1.2rem);
    font-weight: 600;
    line-height: 1.45;
    color: #202020;
}

.gp-thankyou-next-steps__action {
    margin: 0;
}

a.button.gp-thankyou-upload-button,
a.gp-thankyou-upload-button.button {
    display: inline-block;
    padding: 0.85rem 1.35rem;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.25;
    text-decoration: none !important;
    color: #fff !important;
    background-color: var(--accent-color) !important;
    border: none;
    border-radius: 4px;
    box-shadow: 0             2px 8px rgba(0, 0, 0, 0.12);
}

a.button.gp-thankyou-upload-button:hover,
a.gp-thankyou-upload-button.button:hover {
    filter: brightness(1.05);
    color: #fff !important;
}

/* Block-Kasse: oberes Padding des Checkout-Blocks (Abstand kommt von .inside-article) */
body.woocommerce-checkout .wp-block-woocommerce-checkout {
    padding-top: 0 !important;
}

/* Block-Kasse: Abstand zwischen Hauptbereich und Order-Summary (Sidebar-Layout) */
body.woocommerce-checkout .wc-block-components-sidebar-layout .wc-block-components-main {
    padding-right: 1.5%;
    box-sizing: border-box;
}

/*
 * Block-Kasse: Formular ~55 % / Order-Summary ~45 % nur ab Desktop (≥891px).
 * Unterhalb 890px stapeln die bestehenden Media-Queries — ohne diese Kapselung würden
 * die !important-55/45 %-Regeln die100 %-Breite der gestapelten Spalten überschreiben.
 */
@media (min-width: 891px) {
    body.woocommerce-checkout .wc-block-components-sidebar-layout .wc-block-components-main.wc-block-checkout__main,
    body.woocommerce-checkout .wc-block-components-sidebar-layout
        .wc-block-components-main.wc-block-checkout__main.wp-block-woocommerce-checkout-fields-block {
        flex: 0 0 55% !important;
        max-width: 55% !important;
        width: 55% !important;
        min-width: 0;
        box-sizing: border-box;
    }

    body.woocommerce-checkout .wc-block-components-sidebar-layout .wc-block-components-sidebar {
        flex: 0 0 45% !important;
        max-width: 45% !important;
        width: 45% !important;
        min-width: 0;
        box-sizing: border-box;
    }
}

body.woocommerce-checkout
    .wc-block-components-sidebar
    .wp-block-woocommerce-checkout-order-summary-block {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

body.woocommerce-checkout .wcab-summary__label {
    font-weight: 500;
}

/* Block-Kasse: Produktbilder in der Bestellübersicht ausblenden */
body.woocommerce-checkout .wc-block-components-order-summary-item__image {
    display: none !important;
}

/* Block-Warenkorb: gleicher oberer Abstand wie Kasse */
body.woocommerce-cart .wp-block-woocommerce-cart {
    padding-top: 0 !important;
}

/*
 * Block-Warenkorb: kein eigenes Flex/Gap auf .wc-block-components-sidebar-layout — das kommt
 * aus WooCommerce (65 % / 35 %); theme-seitiges gap + wrap hat die Summe-Sidebar umbrechen lassen.
 */
body.woocommerce-cart .wc-block-components-sidebar-layout .wc-block-components-main {
    margin-right: 0 !important;
}

body.woocommerce-cart .wc-block-components-sidebar-layout .wc-block-components-sidebar {
    margin-bottom: 0;
}

/*
 * WooCommerce: Kasse (Shortcode) – Karten wie Produktgrid (ohne Hover).
 * Fieldsets (z. B. Zahlarten) + Standard-Blöcke (WC nutzt dafür meist divs).
 */
form.checkout.woocommerce-checkout fieldset,
form.checkout.woocommerce-checkout .woocommerce-billing-fields,
form.checkout.woocommerce-checkout .woocommerce-shipping-fields,
form.checkout.woocommerce-checkout .woocommerce-additional-fields,
form.checkout.woocommerce-checkout #order_review,
form.checkout.woocommerce-checkout #payment {
    background-color: #fff;
    border: none;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    padding: 2rem 1.5rem;
    margin: 0 0 1.5rem;
    box-sizing: border-box;
}

form.checkout.woocommerce-checkout #payment {
    padding-bottom: 1.5rem;
    margin-bottom: 0;
}

/* Fieldsets innerhalb #payment nicht doppelt als Karte */
form.checkout.woocommerce-checkout #payment fieldset {
    background-color: transparent;
    box-shadow: none;
    padding: 0;
    margin: 0 0 1em;
    border-radius: 0;
}

form.checkout.woocommerce-checkout fieldset legend {
    float: left;
    width: 100%;
    padding: 0 0 0.75rem;
    margin-bottom: 0.25rem;
    font-weight: bold;
    font-size: 1.125rem;
    color: #202020;
}

form.checkout.woocommerce-checkout fieldset::after {
    content: '';
    display: table;
    clear: both;
}

/* WooCommerce: Kasse – Rahmen wie Referenz (currentColor 20 % + transparent) */
body.woocommerce-checkout form.checkout.woocommerce-checkout .input-text,
body.woocommerce-checkout form.checkout.woocommerce-checkout input.input-text,
body.woocommerce-checkout form.checkout.woocommerce-checkout textarea,
body.woocommerce-checkout .checkout_coupon .input-text,
body.woocommerce-checkout input#coupon_code {
    border: 1px solid color-mix(in srgb, currentColor 20%, transparent) !important;
}

/*
 * Block-Kasse (WooCommerce Blocks): gleiche Selektoren wie Plugin-CSS, damit die
 * border-Kurzform (inkl. color-mix) überschrieben wird – nicht nur border-color.
 */
body.woocommerce-checkout .wc-block-components-form .wc-block-components-text-input input[type='email'],
body.woocommerce-checkout .wc-block-components-form .wc-block-components-text-input input[type='number'],
body.woocommerce-checkout .wc-block-components-form .wc-block-components-text-input input[type='password'],
body.woocommerce-checkout .wc-block-components-form .wc-block-components-text-input input[type='tel'],
body.woocommerce-checkout .wc-block-components-form .wc-block-components-text-input input[type='text'],
body.woocommerce-checkout .wc-block-components-form .wc-block-components-text-input input[type='url'],
body.woocommerce-checkout .wc-block-components-text-input input[type='email'],
body.woocommerce-checkout .wc-block-components-text-input input[type='number'],
body.woocommerce-checkout .wc-block-components-text-input input[type='password'],
body.woocommerce-checkout .wc-block-components-text-input input[type='tel'],
body.woocommerce-checkout .wc-block-components-text-input input[type='text'],
body.woocommerce-checkout .wc-block-components-text-input input[type='url'],
body.woocommerce-checkout .wc-block-checkout input[type='search'] {
    border: 1px solid color-mix(in srgb, currentColor 20%, transparent) !important;
}

body.woocommerce-checkout .wc-block-components-form .wc-block-components-textarea textarea,
body.woocommerce-checkout .wc-block-components-textarea textarea {
    border: 1px solid color-mix(in srgb, currentColor 20%, transparent) !important;
}

/* Combobox / Suchfeld (Blocks) */
body.woocommerce-checkout .wc-block-components-combobox input[type='text'],
body.woocommerce-checkout .wc-block-components-combobox input[type='search'] {
    border: 1px solid color-mix(in srgb, currentColor 20%, transparent) !important;
}

/* Block-Kasse: Schritt-Karten (eine Quelle im Theme; body-* für Seiten ohne klassische woocommerce-checkout-Klasse) */
body.woocommerce-page .wc-block-checkout .wc-block-components-checkout-step,
body.woocommerce-checkout .wc-block-checkout .wc-block-components-checkout-step,
body.woocommerce-cart .wc-block-checkout .wc-block-components-checkout-step,
body.woocommerce-account .wc-block-checkout .wc-block-components-checkout-step,
.wc-block-checkout .wc-block-components-checkout-step {
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    padding: 2rem 1.5rem;
    margin-bottom: 1.5rem;
    box-sizing: border-box;
}

body.woocommerce-page .wc-block-checkout .wc-block-components-checkout-step:last-child,
body.woocommerce-checkout .wc-block-checkout .wc-block-components-checkout-step:last-child,
body.woocommerce-cart .wc-block-checkout .wc-block-components-checkout-step:last-child,
body.woocommerce-account .wc-block-checkout .wc-block-components-checkout-step:last-child,
.wc-block-checkout .wc-block-components-checkout-step:last-child {
    margin-bottom: 0;
}

/* Block-Kasse: Bestellübersicht (Order summary) – gleiche Kartenoptik (ohne Rand, wie übrige Karten) */
.wc-block-checkout .wp-block-woocommerce-checkout-order-summary-block,
.wp-block-woocommerce-checkout-order-summary-block {
    background-color: #fff;
    border: none !important;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    padding: 1rem 1.5rem;
    margin-bottom: 1.5rem;
    box-sizing: border-box;
}

.wc-block-checkout .wp-block-woocommerce-checkout-order-summary-block:last-child,
.wp-block-woocommerce-checkout-order-summary-block:last-child {
    margin-bottom: 0;
}

@media (max-width: 890px) {
    body.woocommerce-checkout .wc-block-components-checkout-order-summary__title {
        border-top: none !important;
        border-bottom: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    body.woocommerce-checkout
        .wc-block-formatted-money-amount.wc-block-components-formatted-money-amount.wc-block-components-checkout-order-summary__title-price {
        color: var(--accent-color) !important;
        font-weight: 500 !important;
    }
}

/*
 * Block-Warenkorb & Block-Kasse: separater Zeilen-Gesamtpreis ausblenden — der Betrag steht
 * bereits in .wc-block-components-order-summary-item__description (z. B. „× Preis“).
 */
body.woocommerce-cart .wc-block-components-order-summary-item__total-price,
body.woocommerce-checkout .wc-block-components-order-summary-item__total-price {
    display: none !important;
}

body.woocommerce-cart .wc-block-components-order-summary-item__description,
body.woocommerce-checkout .wc-block-components-order-summary-item__description {
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-bottom: 25px !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
    min-width: 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.2);
    margin-bottom: 20px;
}

body.woocommerce-cart .wc-block-components-order-summary-item:last-child .wc-block-components-order-summary-item__description,
body.woocommerce-checkout .wc-block-components-order-summary-item:last-child .wc-block-components-order-summary-item__description {
    border-bottom: none;
    margin-bottom: 0;
}

/*
 * Block-Kasse Order-Summary: eine Zeile „Produkttitel links | Preis rechts“, darunter volle Breite
 * für Referenz + Produkt-Metadaten (.wc-block-components-product-metadata).
 */
body.woocommerce-checkout .wc-block-components-order-summary-item__description {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: 0.75rem;
    row-gap: 0.35rem;
    align-items: start;
}

body.woocommerce-checkout .wc-block-components-order-summary-item__description > h3.wc-block-components-product-name {
    grid-column: 1;
    grid-row: 1;
    margin: 0;
    min-width: 0;
    align-self: start;
}

body.woocommerce-checkout .wc-block-components-order-summary-item__description > .wc-block-cart-item__prices {
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
    align-self: start;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: 0.25rem;
    min-width: 0;
}

body.woocommerce-checkout
    .wc-block-components-order-summary-item__description
    > *:not(h3):not(.wc-block-cart-item__prices) {
    grid-column: 1 / -1;
}

/* Gilt u. a. für span…product-price__value…order-summary-item__individual-price */
body.woocommerce-checkout
    .wc-block-components-order-summary-item__description
    .wc-block-formatted-money-amount {
    color: var(--accent-color) !important;
    font-weight: 500 !important;
    font-size: 1rem !important;
}

body.woocommerce-checkout
    .wc-block-components-order-summary-item__description
    .wc-block-cart-item__prices
    del
    .wc-block-formatted-money-amount {
    color: inherit !important;
    font-weight: 400 !important;
    opacity: 0.75;
}

body.woocommerce-cart .wc-block-components-totals-wrapper,
body.woocommerce-checkout .wc-block-components-totals-wrapper {
    border-top: none !important;
}

body.woocommerce-cart .wc-block-components-totals-item__value,
body.woocommerce-checkout .wc-block-components-totals-item__value {
    color: var(--accent-color) !important;
    font-weight: 700;
}

body.woocommerce-cart .wc-block-components-totals-item__value .wc-block-formatted-money-amount,
body.woocommerce-checkout .wc-block-components-totals-item__value .wc-block-formatted-money-amount {
    color: inherit !important;
}

body.woocommerce-cart
    .wc-block-formatted-money-amount.wc-block-components-formatted-money-amount.wc-block-components-totals-footer-item-tax-value,
body.woocommerce-checkout
    .wc-block-formatted-money-amount.wc-block-components-formatted-money-amount.wc-block-components-totals-footer-item-tax-value {
    display: block;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

/*
 * Block-Warenkorb / -Kasse: Footer-Gesamtsumme — wie Woo .wc-block-components-totals-item (flex + wrap).
 * DOM: Label, Betrag, Beschreibung: eine Zeile „Gesamtsumme … €“, Steuerhinweis darunter; bei wenig Breite
 * umbrechen wie die Lieferzeile (Grid hatte flex-wrap ausgeschaltet).
 */
body.woocommerce-cart .wc-block-components-totals-item.wc-block-components-totals-footer-item,
body.woocommerce-checkout .wc-block-components-totals-item.wc-block-components-totals-footer-item {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center;
    gap: 0.2rem 0.75rem;
    text-align: left !important;
    width: 100%;
    box-sizing: border-box;
}

body.woocommerce-cart .wc-block-components-totals-item.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
body.woocommerce-checkout .wc-block-components-totals-item.wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
    flex: 1 1 auto;
    min-width: 0;
    display: block !important;
    text-align: left !important;
    margin: 0 !important;
}

body.woocommerce-cart .wc-block-components-totals-item.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
body.woocommerce-checkout .wc-block-components-totals-item.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    flex: 0 1 auto;
    display: block !important;
    /* Links: bei Umbruch steht der Betrag unter dem Label am linken Rand (nicht durch margin-left: auto rechts) */
    text-align: left !important;
    margin: 0 !important;
    max-width: 100%;
}

body.woocommerce-cart .wc-block-components-totals-item.wc-block-components-totals-footer-item .wc-block-components-totals-item__description,
body.woocommerce-checkout .wc-block-components-totals-item.wc-block-components-totals-footer-item .wc-block-components-totals-item__description {
    flex: 1 1 100%;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    display: block !important;
    text-align: left !important;
    margin: 0 !important;
}

/* Block-Kasse: Summen-Labels links (nicht-Footer-Zeilen) */
body.woocommerce-checkout .wc-block-components-totals-item__label {
    text-align: left !important;
}

/* -------------------------------------------------------------------------
   WooCommerce: Block-Warenkorb – Kartenoptik (Artikel + Zusammenfassung)
   ------------------------------------------------------------------------- */
body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-block,
body.woocommerce-cart .wc-block-cart .wp-block-woocommerce-cart-order-summary-block {
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    padding: 1rem 1.5rem;
    margin-bottom: 0;
    box-sizing: border-box;
}

/* Zusammenfassung: Default-Überschrift „Cart totals“ (h2) — ohne Mehrwert */
body.woocommerce-cart h2.wp-block-woocommerce-cart-order-summary-heading-block.wc-block-cart__totals-title {
    display: none !important;
}

/* „Weiter zur Kasse“: volle Spaltenbreite, wie Mein-Konto » Adressen (rosa / weiß / 4px Radius) */
body.woocommerce-cart .wc-block-cart__submit {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

body.woocommerce-cart .wc-block-cart__submit-container {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

body.woocommerce-cart .wc-block-cart__submit-button.wc-block-components-button {
    width: 100% !important;
    max-width: 100%;
    box-sizing: border-box;
    display: inline-flex !important;
    justify-content: center;
    align-items: center;
    text-align: center;
    font-weight: 300;
    font-style: normal !important;
    text-decoration: none !important;
    background-color: var(--accent-color) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 4px;
    padding: 0.5rem 1rem;
    margin: 10px 0 0;
    box-shadow: none !important;
}

body.woocommerce-cart .wc-block-cart__submit-button.wc-block-components-button:hover {
    background-color: #cc0062 !important;
    color: #fff !important;
}

body.woocommerce-cart
    .wc-block-cart__submit-button.wc-block-components-button:focus-visible {
    outline: 2px solid var(--accent-color);
    outline-offset: 2px;
}

body.woocommerce-cart .wc-block-cart__submit-button .wc-block-components-button__text {
    color: inherit !important;
}

/* Block-Kasse: „Zahlungspflichtig bestellen“ — gleiche Optik wie Warenkorb „Weiter zur Kasse“ */
body.woocommerce-checkout
    .wc-block-components-button.wp-element-button.wc-block-components-checkout-place-order-button.contained {
    width: 100% !important;
    max-width: 100%;
    box-sizing: border-box;
    display: inline-flex !important;
    justify-content: center;
    align-items: center;
    text-align: center;
    font-weight: 300;
    font-style: normal !important;
    text-decoration: none !important;
    background-color: var(--accent-color) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 4px;
    padding: 0.5rem 1rem;
    margin: 10px 0 0;
    box-shadow: none !important;
}

body.woocommerce-checkout
    .wc-block-components-button.wp-element-button.wc-block-components-checkout-place-order-button.contained:hover {
    background-color: #cc0062 !important;
    color: #fff !important;
}

body.woocommerce-checkout
    .wc-block-components-button.wp-element-button.wc-block-components-checkout-place-order-button.contained:focus-visible {
    outline: 2px solid var(--accent-color);
    outline-offset: 2px;
}

body.woocommerce-checkout
    .wc-block-components-checkout-place-order-button
    .wc-block-components-button__text {
    color: inherit !important;
}

/*
 * Block-Warenkorb Hauptspalte: keine eine große Sammel-Karte — Hintergrund/Schatten pro Produktzeile
 * (tbody tr als CSS-Grid). Table-Markup von Woo bleibt, kein PHP/JS nötig.
 */
body.woocommerce-cart .wc-block-components-sidebar-layout .wc-block-components-main,
body.woocommerce-cart .wc-block-components-sidebar-layout .wc-block-cart__main,
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-main,
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart__main {
    background-color: transparent;
    border-radius: 0;
    box-shadow: none;
    padding: 0;
    margin-bottom: 0;
    box-sizing: border-box;
}

body.woocommerce-cart .wc-block-cart__main > :is(h1, h2, .wp-block-heading):first-child,
body.woocommerce-cart .wc-block-components-main > :is(h1, h2, .wp-block-heading):first-child {
    margin-top: 0;
    margin-bottom: 1rem;
}

/* Tabellenkopf (Spaltenüberschriften) ausblenden */
body.woocommerce-cart .wc-block-cart__main .wc-block-cart-items__header,
body.woocommerce-cart .wc-block-cart-items__header {
    display: none !important;
}

body.woocommerce-cart .wc-block-cart__main .wc-block-cart-items table,
body.woocommerce-cart .wc-block-cart-items table {
    display: block;
    width: 100%;
    border: none !important;
    border-collapse: separate;
    border-spacing: 0;
}

body.woocommerce-cart .wc-block-cart__main .wc-block-cart-items table thead,
body.woocommerce-cart .wc-block-cart-items table thead {
    display: none !important;
    border: none !important;
}

body.woocommerce-cart .wc-block-cart__main .wc-block-cart-items table tbody,
body.woocommerce-cart .wc-block-cart-items table tbody {
    display: block;
    width: 100%;
}

/* Eine Karte pro Artikelzeile; margin = Abstand zwischen den Karten */
body.woocommerce-cart .wc-block-cart__main .wc-block-cart-items tbody tr.wc-block-cart-items__row,
body.woocommerce-cart .wc-block-cart-items tbody tr.wc-block-cart-items__row {
    position: relative;
    display: grid;
    /* Gesamtspalte ausgeblendet: Bild | Produkt | Remove */
    grid-template-columns: minmax(4.5rem, 7.5rem) minmax(0, 1fr) min-content;
    gap: 1rem 1.25rem;
    align-items: start;
    padding: 1.25rem 1.5rem;
    margin: 0 0 1rem;
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    box-sizing: border-box;
    border: none !important;
}

body.woocommerce-cart .wc-block-cart__main .wc-block-cart-items tbody tr.wc-block-cart-items__row:last-child,
body.woocommerce-cart .wc-block-cart-items tbody tr.wc-block-cart-items__row:last-child {
    margin-bottom: 0;
}

body.woocommerce-cart .wc-block-cart__main .wc-block-cart-items td,
body.woocommerce-cart .wc-block-cart-items td {
    border: none !important;
    padding: 0 !important;
    vertical-align: top;
    background: transparent;
}

body.woocommerce-cart .wc-block-cart__main .wc-block-cart-items,
body.woocommerce-cart .wp-block-woocommerce-cart-line-items-block .wc-block-cart-items,
body.woocommerce-cart .wc-block-cart-items {
    border: none !important;
}

/* Gesamtspalte pro Zeile ausblenden (Preis steht bereits in der Produktspalte) */
body.woocommerce-cart .wc-block-cart-item__total,
body.woocommerce-cart td.wc-block-cart-item__total {
    display: none !important;
}

/* Entfernen: gleiches Trash-Icon wie Adressbuch (.wcab-icon-btn--danger), oben rechts auf der Karte */
body.woocommerce-cart td.wc-block-cart-item__remove-link {
    width: 0 !important;
    max-width: 0 !important;
    min-width: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    overflow: visible !important;
}

body.woocommerce-cart a.wc-block-cart-item__remove-link,
body.woocommerce-cart button.wc-block-cart-item__remove-link {
    position: absolute;
    top: 1.25rem;
    right: 1.5rem;
    z-index: 2;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    padding: 0 !important;
    margin: 0 !important;
    border: 1px solid transparent !important;
    border-radius: 4px;
    background: transparent !important;
    box-shadow: none !important;
    color: #787c82;
    cursor: pointer;
    text-decoration: none !important;
    font-size: 0 !important;
    line-height: 0 !important;
    transition: background-color 0.12s ease, border-color 0.12s ease;
}

/*
 * Icon: 1:1 das Trash-SVG aus wc-address-book/templates/myaccount/address-book.php (Löschen-Button),
 * per ::after — vermeidet Konflikte mit WC background-image auf dem Button.
 */
body.woocommerce-cart a.wc-block-cart-item__remove-link::after,
body.woocommerce-cart button.wc-block-cart-item__remove-link::after {
    content: '';
    position: absolute;
    inset: 0;
    margin: auto;
    width: 16px;
    height: 16px;
    pointer-events: none;
    background: transparent center / contain no-repeat;
    background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23787c82%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20aria-hidden%3D%22true%22%3E%3Cpath%20d%3D%22M3%206h18%22%2F%3E%3Cpath%20d%3D%22M19%206v14c0%201-1%202-2%202H7c-1%200-2-1-2-2V6%22%2F%3E%3Cpath%20d%3D%22M8%206V4c0-1%201-2%202-2h4c1%200%202%201%202%202v2%22%2F%3E%3Cline%20x1%3D%2210%22%20x2%3D%2210%22%20y1%3D%2211%22%20y2%3D%2217%22%2F%3E%3Cline%20x1%3D%2214%22%20x2%3D%2214%22%20y1%3D%2211%22%20y2%3D%2217%22%2F%3E%3C%2Fsvg%3E");
}

body.woocommerce-cart a.wc-block-cart-item__remove-link svg,
body.woocommerce-cart button.wc-block-cart-item__remove-link svg {
    display: none !important;
}

body.woocommerce-cart a.wc-block-cart-item__remove-link:hover,
body.woocommerce-cart a.wc-block-cart-item__remove-link:focus-visible,
body.woocommerce-cart button.wc-block-cart-item__remove-link:hover,
body.woocommerce-cart button.wc-block-cart-item__remove-link:focus-visible {
    background-color: #fef2f2 !important;
    border-color: #fecaca !important;
    color: #dc2626;
}

body.woocommerce-cart a.wc-block-cart-item__remove-link:hover::after,
body.woocommerce-cart a.wc-block-cart-item__remove-link:focus-visible::after,
body.woocommerce-cart button.wc-block-cart-item__remove-link:hover::after,
body.woocommerce-cart button.wc-block-cart-item__remove-link:focus-visible::after {
    background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23dc2626%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20aria-hidden%3D%22true%22%3E%3Cpath%20d%3D%22M3%206h18%22%2F%3E%3Cpath%20d%3D%22M19%206v14c0%201-1%202-2%202H7c-1%200-2-1-2-2V6%22%2F%3E%3Cpath%20d%3D%22M8%206V4c0-1%201-2%202-2h4c1%200%202%201%202%202v2%22%2F%3E%3Cline%20x1%3D%2210%22%20x2%3D%2210%22%20y1%3D%2211%22%20y2%3D%2217%22%2F%3E%3Cline%20x1%3D%2214%22%20x2%3D%2214%22%20y1%3D%2211%22%20y2%3D%2217%22%2F%3E%3C%2Fsvg%3E");
}

body.woocommerce-cart a.wc-block-cart-item__remove-link:focus-visible,
body.woocommerce-cart button.wc-block-cart-item__remove-link:focus-visible {
    outline: 2px solid var(--wcab-accent, #ff0078);
    outline-offset: 2px;
}

body.woocommerce-cart .wc-block-components-product-name {
    font-size: 1.5rem !important;
    font-weight: 800;
    text-decoration: none;
}

body.woocommerce-cart h3.wc-block-components-product-name,
body.woocommerce-checkout h3.wc-block-components-product-name {
    font-size: 1rem !important;
}

body.woocommerce-cart
    span.wc-block-formatted-money-amount.wc-block-components-formatted-money-amount.wc-block-components-product-price__value,
body.woocommerce-cart
    span.wc-block-formatted-money-amount.wc-block-components-formatted-money-amount.wc-block-components-product-price__value.wc-block-components-order-summary-item__individual-price {
    font-size: 1rem;
    font-weight: 700;
    line-height: 2.4;
    color: var(--accent-color) !important;
}

/*
 * Block-Warenkorb: Produkt-Metadaten (Woo Blocks: div > span je Zeile, __name + __value + optional „ / “).
 * Nicht __item/li — ältere Selektoren trafen oft ins Leere; Trenner sitzt als Geschwister NACH __value.
 */
body.woocommerce-cart .wc-block-components-product-details {
    --gp-cart-meta-label-width: 133px;
    --gp-cart-meta-gap: clamp(1.25rem, 4vw, 2.75rem);
    list-style: none;
    margin: 0.5rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    max-width: 100%;
}

/* Zeilen-Wrapper: direkte Kind-Spans von .product-details (z. B. __format, __farbe, …) */
body.woocommerce-cart .wc-block-components-product-details > span {
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: 0;
    margin: 0;
    padding: 0;
    font-size: 0;
    line-height: 0;
}

/* Fallback falls eine ältere Version noch .__item nutzt */
body.woocommerce-cart .wc-block-components-product-details__item {
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: 0;
    margin: 0;
    padding: 0;
    font-size: 0;
    line-height: 0;
}

/* „ / “ zwischen Attribut-Zeilen laut Woo nach dem Wert-Span — zuverlässig ausblenden */
body.woocommerce-cart .wc-block-components-product-details .wc-block-components-product-details__value ~ * {
    display: none !important;
}

body.woocommerce-cart .wc-block-components-product-details [aria-hidden='true'] {
    display: none !important;
}

body.woocommerce-cart .wc-block-components-product-details__name {
    margin: 0;
    padding: 0 0.95rem 0 0;
    width: var(--gp-cart-meta-label-width) !important;
    max-width: var(--gp-cart-meta-label-width);
    flex: 0 0 var(--gp-cart-meta-label-width);
    display: inline-block !important;
    text-align: left;
    font-size: 0.9rem;
    font-weight: 500;
    line-height: 1.45;
    color: #888;
    word-break: normal;
    overflow-wrap: anywhere;
    hyphens: auto;
    box-sizing: border-box;
    vertical-align: top;
}

body.woocommerce-cart .wc-block-components-product-details__value {
    margin: 0 0 0 var(--gp-cart-meta-gap);
    padding: 0;
    flex: 1 1 auto;
    min-width: 0;
    display: inline-block !important;
    text-align: left;
    font-size: 0.9rem;
    font-weight: 400;
    line-height: 1.45;
    color: #1e1e1e;
    box-sizing: border-box;
    vertical-align: top;
}

@media (max-width: 1100px) {
    body.woocommerce-cart .wc-block-components-product-details__value {
        margin: 0 !important;
    }
}

/* Block-Warenkorb: Meta 890–1000px — Label und Wert untereinander (Zeilen), nicht nebeneinander (Spalten) */
@media (min-width: 890px) and (max-width: 1000px) {
    body.woocommerce-cart .wc-block-components-product-details > span,
    body.woocommerce-cart .wc-block-components-product-details__item {
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        flex-wrap: nowrap !important;
        gap: 0.15rem !important;
        font-size: initial;
        line-height: normal;
    }

    body.woocommerce-cart .wc-block-components-product-details__name {
        width: auto !important;
        max-width: none !important;
        flex: none !important;
        padding: 0 !important;
    }

    body.woocommerce-cart .wc-block-components-product-details__value {
        margin: 0 !important;
        flex: none !important;
    }
}

@media (max-width: 520px) {
    body.woocommerce-cart .wc-block-components-product-details {
        --gp-cart-meta-label-width: 112px;
        --gp-cart-meta-gap: 1rem;
    }
}

/* Block-Warenkorb: Meta-Parameter untereinander statt zwei Spalten (wie Kasse ≤500px) */
@media (max-width: 500px) {
    body.woocommerce-cart .wc-block-components-product-details > span,
    body.woocommerce-cart .wc-block-components-product-details__item {
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        flex-wrap: nowrap !important;
        gap: 0.15rem !important;
        font-size: initial;
        line-height: normal;
    }

    body.woocommerce-cart .wc-block-components-product-details__name {
        width: auto !important;
        max-width: none !important;
        flex: none !important;
        padding: 0 !important;
    }

    body.woocommerce-cart .wc-block-components-product-details__value {
        margin: 0 !important;
        flex: none !important;
    }
}

/*
 * Block-Kasse: Bestellübersicht — Produkt-Parameter (Label | Wert) immer im 2-Spalten-Grid, 0.9rem.
 * Breitere Order-Summary (45 %) erlaubt stabilere Zeilen als früher 0.7rem / gestapelte Desktop-Zeilen.
 */
body.woocommerce-checkout .wc-block-components-product-details {
    /* Schmalere Label-Spalte, mehr Raum für Werte (2. Spalte = minmax(0,1fr)) */
    --gp-order-meta-label-width: 115px;
    --gp-order-meta-gap: clamp(0.75rem, 2.5vw, 1.5rem);
    list-style: none;
    margin: 0.5rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    max-width: 100%;
}

body.woocommerce-checkout .wc-block-components-product-details > span,
body.woocommerce-checkout .wc-block-components-product-details__item {
    display: grid !important;
    grid-template-columns: var(--gp-order-meta-label-width) minmax(0, 1fr) !important;
    grid-auto-flow: row !important;
    column-gap: var(--gp-order-meta-gap) !important;
    row-gap: 0 !important;
    align-items: start !important;
    margin: 0;
    padding: 0;
}

@media (min-width: 891px) {
    body.woocommerce-checkout .wc-block-components-product-details {
        gap: 0.35rem;
        /* Kein großzügiges %-Label mehr: Inhalt bis ~8.75rem, Rest für Wert */
        --gp-order-meta-label-width: minmax(min-content, 8.75rem);
        --gp-order-meta-gap: 0.75rem;
    }
}

/*
 * Order-Summary ~45 % Viewport: 891–960px — schmale Sidebar: __name eine Zeile (volle Breite),
 * __value darunter — nicht 2-Spalten-Grid nebeneinander.
 */
@media (min-width: 891px) and (max-width: 960px) {
    body.woocommerce-checkout .wc-block-components-product-details > span,
    body.woocommerce-checkout .wc-block-components-product-details__item {
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 0.15rem !important;
        grid-template-columns: none !important;
        column-gap: 0 !important;
    }

    body.woocommerce-checkout .wc-block-components-product-details__name,
    body.woocommerce-checkout .wc-block-components-product-details__value {
        width: 100% !important;
        max-width: none !important;
    }
}

@media (max-width: 890px) {
    body.woocommerce-checkout .wc-block-components-product-details {
        gap: 0.2rem;
    }
}

body.woocommerce-checkout
    .wc-block-components-product-details
    .wc-block-components-product-details__value
    ~ * {
    display: none !important;
}

body.woocommerce-checkout .wc-block-components-product-details [aria-hidden='true'] {
    display: none !important;
}

body.woocommerce-checkout .wc-block-components-product-details__name {
    margin: 0;
    padding: 0;
    width: auto !important;
    max-width: none !important;
    display: block !important;
    text-align: left;
    font-size: 0.9rem;
    font-weight: 500;
    line-height: 1.45;
    color: #888;
    word-break: normal;
    overflow-wrap: anywhere;
    hyphens: auto;
    box-sizing: border-box;
}

body.woocommerce-checkout .wc-block-components-product-details__value {
    margin: 0;
    padding: 0;
    min-width: 0;
    display: block !important;
    text-align: left;
    font-size: 0.9rem;
    font-weight: 400;
    line-height: 1.45;
    color: #1e1e1e;
    box-sizing: border-box;
}

/* Block-Kasse Order-Summary: sehr schmale Viewports — Label und Wert untereinander statt 2-Spalten-Grid */
@media (max-width: 500px) {
    body.woocommerce-checkout .wc-block-components-product-details > span,
    body.woocommerce-checkout .wc-block-components-product-details__item {
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 0.15rem !important;
        grid-template-columns: none !important;
        column-gap: 0 !important;
    }
}

/*
 * WCPP (Block-Kasse): Referenz unter Titel+Preis, ohne Label — eine Zeile volle Breite.
 */
body.woocommerce-checkout
    .wc-block-components-order-summary-item__description
    > .wcpp-product-reference-field.wcpp-product-reference-field--blocks.wcpp-product-reference-field--checkout-readonly {
    display: block !important;
    margin: 0;
    padding: 0;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

body.woocommerce-checkout
    .wc-block-components-order-summary-item__description
    > .wcpp-product-reference-field.wcpp-product-reference-field--blocks.wcpp-product-reference-field--checkout-readonly
    .wcpp-product-reference-label {
    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;
    white-space: nowrap !important;
    border: 0 !important;
}

body.woocommerce-checkout
    .wc-block-components-order-summary-item__description
    > .wcpp-product-reference-field.wcpp-product-reference-field--blocks.wcpp-product-reference-field--checkout-readonly
    input:not([type='hidden']):not([type='checkbox']):not([type='radio']),
body.woocommerce-checkout
    .wc-block-components-order-summary-item__description
    > .wcpp-product-reference-field.wcpp-product-reference-field--blocks.wcpp-product-reference-field--checkout-readonly
    input.wcpp-product-reference-input {
    display: block;
    margin: 0;
    min-width: 0;
    width: 100%;
    box-sizing: border-box;
    font-size: 0.9rem !important;
    font-weight: 400 !important;
    line-height: 1.45 !important;
    color: #1e1e1e !important;
    padding: 0 !important;
    border: none !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    -webkit-appearance: none;
    appearance: none;
    word-break: break-word;
    overflow-wrap: anywhere;
}

body.woocommerce-checkout
    .wc-block-components-order-summary-item__description
    > .wcpp-product-reference-field.wcpp-product-reference-field--blocks.wcpp-product-reference-field--checkout-readonly
    input:disabled {
    opacity: 1;
    cursor: default;
    color: #1e1e1e !important;
}

/* Falls das Feld noch kurz in .product-details landet (vor JS), gleiche Optik */
body.woocommerce-checkout
    .wc-block-components-product-details
    > .wcpp-product-reference-field.wcpp-product-reference-field--blocks.wcpp-product-reference-field--checkout-readonly {
    display: block !important;
    width: 100%;
    margin: 0.25rem 0 0;
    padding: 0;
}

body.woocommerce-checkout
    .wc-block-components-product-details
    > .wcpp-product-reference-field.wcpp-product-reference-field--blocks.wcpp-product-reference-field--checkout-readonly
    .wcpp-product-reference-label {
    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;
    white-space: nowrap !important;
    border: 0 !important;
}

body.woocommerce-checkout .wcpp-product-reference-field--checkout-readonly .wcpp-product-reference-value {
    font-weight: 300;
    font-size: 1rem;
    line-height: 1;
    margin: 0 0 10px 0 !important;
}

@media (max-width: 520px) {
    body.woocommerce-checkout .wc-block-components-product-details {
        --gp-order-meta-label-width: 100px;
        --gp-order-meta-gap: 0.65rem;
    }
}

/*
 * Wie Adressbuch (account.css): Feld-Variablen auf ganzer Warenkorb-Seite — auch für Plugin-Felder
 * (z. B. .wcpp-product-reference-field), die nicht unter .wc-block-cart-items hängen.
 * Gleiche Variablen auf der Block-Kasse (Kontakt, Gutschein).
 */
body.woocommerce-cart,
body.woocommerce-checkout {
    --wcab-accent: #ff0078;
    --wcab-field-bg: color-mix(in srgb, #fefefe 60%, #f2f2f2);
    --wcab-field-gradient: linear-gradient(180deg, #fefefe, #f2f2f2);
    --wcab-field-border: #d0d0d0;
    --wcab-field-shadow: 0 1px 0 rgba(0, 0, 0, 0.05),
        inset 0 1px 0 hsla(0, 0%, 100%, 0.8);
}

body.woocommerce-cart .wc-block-cart-items .wc-block-components-text-input label,
body.woocommerce-cart .wc-block-cart-items .wc-block-components-text-input .wc-block-components-text-input__label {
    display: block;
    font-size: 0.85rem;
    font-weight: 600;
    color: #1e1e1e;
    line-height: 1.35;
    margin-bottom: 0.35rem;
}

body.woocommerce-cart .wc-block-cart-items .wc-block-components-text-input .required,
body.woocommerce-cart .wc-block-cart-items .wc-block-components-text-input label .required {
    color: var(--wcab-accent, #ff0078) !important;
    border: 0 !important;
    background: transparent !important;
    text-decoration: none !important;
}

/* Feld-Optik wie Adressbuch: nur border/background/box-shadow wie gewünscht; Rest = Typo/Maß */
body.woocommerce-cart .wc-block-cart-items .wc-block-components-text-input input[type='email'],
body.woocommerce-cart .wc-block-cart-items .wc-block-components-text-input input[type='number'],
body.woocommerce-cart .wc-block-cart-items .wc-block-components-text-input input[type='password'],
body.woocommerce-cart .wc-block-cart-items .wc-block-components-text-input input[type='tel'],
body.woocommerce-cart .wc-block-cart-items .wc-block-components-text-input input[type='text'],
body.woocommerce-cart .wc-block-cart-items .wc-block-components-text-input input[type='url'],
body.woocommerce-cart .wc-block-cart-items .wc-block-components-text-input input[type='search'] {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    margin: 0;
    font: inherit;
    font-family: inherit;
    font-size: 1rem !important;
    font-weight: 400 !important;
    line-height: 1.55 !important;
    color: #1e1e1e !important;
    padding: 0.45rem 0.5rem !important;
    border: 1px solid var(--wcab-field-border) !important;
    border-radius: 4px !important;
    background-color: var(--wcab-field-bg) !important;
    background-image: var(--wcab-field-gradient) !important;
    background-repeat: repeat-x !important;
    box-shadow: var(--wcab-field-shadow) !important;
    min-height: 0 !important;
    -webkit-appearance: none;
    appearance: none;
}

body.woocommerce-cart .wc-block-cart-items .wc-block-components-text-input input:hover:not(:disabled) {
    background-color: var(--wcab-field-bg) !important;
    background-image: var(--wcab-field-gradient) !important;
    border-color: var(--wcab-field-border) !important;
    color: #1e1e1e !important;
    box-shadow: var(--wcab-field-shadow) !important;
}

body.woocommerce-cart .wc-block-cart-items .wc-block-components-text-input input:focus {
    border-color: var(--wcab-accent, #ff0078) !important;
    outline: 1px solid var(--wcab-accent, #ff0078) !important;
    outline-offset: 0 !important;
    box-shadow: var(--wcab-field-shadow) !important;
}

body.woocommerce-cart .wc-block-cart-items .wc-block-components-text-input input:disabled {
    opacity: 0.92;
    cursor: not-allowed;
    color: #6e6e6e !important;
}

/* Produkt-Referenz-Plugin (wcpp*, Block-Warenkorb) — nicht wc-block-components-text-input */
body.woocommerce-cart .wcpp-product-reference-label {
    display: block;
    font-size: 0.85rem;
    font-weight: 500;
    color: #1e1e1e;
    line-height: 1.35;
    margin-bottom: 0.35rem;
}

.wcpp-product-reference-inline-hint {
    max-width: 100%;
}

body.woocommerce-cart .wcpp-product-reference-field .required,
body.woocommerce-cart .wcpp-product-reference-label .required {
    color: var(--wcab-accent, #ff0078) !important;
    border: 0 !important;
    background: transparent !important;
    text-decoration: none !important;
}

body.woocommerce-cart .wcpp-product-reference-field input:not([type='hidden']):not([type='checkbox']):not([type='radio']),
body.woocommerce-cart .wcpp-product-reference-field input.input-text,
body.woocommerce-cart .wcpp-product-reference-field input.wcpp-product-reference-input {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    margin: 0;
    font: inherit;
    font-family: inherit;
    font-size: 1rem !important;
    font-weight: 400 !important;
    line-height: 1.23 !important;
    color: #1e1e1e !important;
    padding: 0.45rem 0.5rem !important;
    border: 1px solid var(--wcab-field-border) !important;
    border-radius: 4px !important;
    background-color: var(--wcab-field-bg) !important;
    background-image: var(--wcab-field-gradient) !important;
    background-repeat: repeat-x !important;
    box-shadow: var(--wcab-field-shadow) !important;
    min-height: 0 !important;
    -webkit-appearance: none;
    appearance: none;
}

body.woocommerce-cart .wcpp-product-reference-field input:hover:not(:disabled) {
    background-color: var(--wcab-field-bg) !important;
    background-image: var(--wcab-field-gradient) !important;
    border-color: var(--wcab-field-border) !important;
    color: #1e1e1e !important;
    box-shadow: var(--wcab-field-shadow) !important;
}

body.woocommerce-cart .wcpp-product-reference-field input:focus {
    border-color: var(--wcab-accent, #ff0078) !important;
    outline: 1px solid var(--wcab-accent, #ff0078) !important;
    outline-offset: 0 !important;
    box-shadow: var(--wcab-field-shadow) !important;
}

body.woocommerce-cart .wcpp-product-reference-field input:disabled {
    opacity: 0.92;
    cursor: not-allowed;
    color: #6e6e6e !important;
}

/* Block-Warenkorb: Gutschein in der Zusammenfassung — Input wie wcpp-Produktreferenz */
body.woocommerce-cart #wc-block-components-totals-coupon__input-coupon,
body.woocommerce-cart .wc-block-components-totals-coupon__input-coupon {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    margin: 0;
    font: inherit;
    font-family: inherit;
    font-size: 1rem !important;
    font-weight: 400 !important;
    line-height: 1.55 !important;
    color: #1e1e1e !important;
    padding: 0.45rem 0.5rem !important;
    border: 1px solid var(--wcab-field-border) !important;
    border-radius: 4px !important;
    background-color: var(--wcab-field-bg) !important;
    background-image: var(--wcab-field-gradient) !important;
    background-repeat: repeat-x !important;
    box-shadow: var(--wcab-field-shadow) !important;
    min-height: 0 !important;
    -webkit-appearance: none;
    appearance: none;
}

/* Floated Label (Blocks TextInput): Text unter das nach oben geschobene Label rücken */
body.woocommerce-cart .wc-block-components-text-input.is-active #wc-block-components-totals-coupon__input-coupon,
body.woocommerce-cart .wc-block-components-text-input.is-active .wc-block-components-totals-coupon__input-coupon {
    padding: 1.35rem 0.5rem 0.45rem !important;
}

body.woocommerce-cart #wc-block-components-totals-coupon__input-coupon:hover:not(:disabled),
body.woocommerce-cart .wc-block-components-totals-coupon__input-coupon:hover:not(:disabled) {
    background-color: var(--wcab-field-bg) !important;
    background-image: var(--wcab-field-gradient) !important;
    border-color: var(--wcab-field-border) !important;
    color: #1e1e1e !important;
    box-shadow: var(--wcab-field-shadow) !important;
}

body.woocommerce-cart #wc-block-components-totals-coupon__input-coupon:focus,
body.woocommerce-cart .wc-block-components-totals-coupon__input-coupon:focus {
    border-color: var(--wcab-accent, #ff0078) !important;
    outline: 1px solid var(--wcab-accent, #ff0078) !important;
    outline-offset: 0 !important;
    box-shadow: var(--wcab-field-shadow) !important;
}

body.woocommerce-cart #wc-block-components-totals-coupon__input-coupon:disabled,
body.woocommerce-cart .wc-block-components-totals-coupon__input-coupon:disabled {
    opacity: 0.92;
    cursor: not-allowed;
    color: #6e6e6e !important;
}

body.woocommerce-cart
    .wc-block-components-button.wp-element-button.wc-block-components-totals-coupon__button {
    font-weight: 300;
    font-style: normal !important;
    text-decoration: none !important;
    background-color: var(--accent-color) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 4px;
    box-shadow: none !important;
}

body.woocommerce-cart
    .wc-block-components-button.wp-element-button.wc-block-components-totals-coupon__button:hover {
    background-color: #cc0062 !important;
    color: #fff !important;
}

body.woocommerce-cart
    .wc-block-components-button.wp-element-button.wc-block-components-totals-coupon__button:focus-visible {
    outline: 2px solid var(--accent-color);
    outline-offset: 2px;
}

body.woocommerce-cart
    .wc-block-components-totals-coupon__button
    .wc-block-components-button__text {
    color: inherit !important;
}

/* Block-Kasse: Kontakt E-Mail — gleiches Input-Styling wie Warenkorb-Gutschein */
body.woocommerce-checkout .wc-block-checkout__contact-fields .wc-block-components-text-input input[type='email'] {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    margin: 0;
    font: inherit;
    font-family: inherit;
    font-size: 1rem !important;
    font-weight: 400 !important;
    line-height: 1.55 !important;
    color: #1e1e1e !important;
    padding: 0.45rem 0.5rem !important;
    border: 1px solid var(--wcab-field-border) !important;
    border-radius: 4px !important;
    background-color: var(--wcab-field-bg) !important;
    background-image: var(--wcab-field-gradient) !important;
    background-repeat: repeat-x !important;
    box-shadow: var(--wcab-field-shadow) !important;
    min-height: 0 !important;
    -webkit-appearance: none;
    appearance: none;
}

body.woocommerce-checkout
    .wc-block-checkout__contact-fields
    .wc-block-components-text-input.is-active
    input[type='email'] {
    padding: 1.35rem 0.5rem 0.45rem !important;
}

body.woocommerce-checkout
    .wc-block-checkout__contact-fields
    .wc-block-components-text-input
    input[type='email']:hover:not(:disabled) {
    background-color: var(--wcab-field-bg) !important;
    background-image: var(--wcab-field-gradient) !important;
    border-color: var(--wcab-field-border) !important;
    color: #1e1e1e !important;
    box-shadow: var(--wcab-field-shadow) !important;
}

body.woocommerce-checkout
    .wc-block-checkout__contact-fields
    .wc-block-components-text-input
    input[type='email']:focus {
    border-color: var(--wcab-accent, #ff0078) !important;
    outline: 1px solid var(--wcab-accent, #ff0078) !important;
    outline-offset: 0 !important;
    box-shadow: var(--wcab-field-shadow) !important;
}

body.woocommerce-checkout
    .wc-block-checkout__contact-fields
    .wc-block-components-text-input
    input[type='email']:disabled {
    opacity: 0.92;
    cursor: not-allowed;
    color: #6e6e6e !important;
}

/* Block-Kasse: Gutschein in der Zusammenfassung — wie Warenkorb */
body.woocommerce-checkout #wc-block-components-totals-coupon__input-coupon,
body.woocommerce-checkout .wc-block-components-totals-coupon__input-coupon {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    margin: 0;
    font: inherit;
    font-family: inherit;
    font-size: 1rem !important;
    font-weight: 400 !important;
    line-height: 1.55 !important;
    color: #1e1e1e !important;
    padding: 0.45rem 0.5rem !important;
    border: 1px solid var(--wcab-field-border) !important;
    border-radius: 4px !important;
    background-color: var(--wcab-field-bg) !important;
    background-image: var(--wcab-field-gradient) !important;
    background-repeat: repeat-x !important;
    box-shadow: var(--wcab-field-shadow) !important;
    min-height: 0 !important;
    -webkit-appearance: none;
    appearance: none;
}

body.woocommerce-checkout
    .wc-block-components-text-input.is-active
    #wc-block-components-totals-coupon__input-coupon,
body.woocommerce-checkout
    .wc-block-components-text-input.is-active
    .wc-block-components-totals-coupon__input-coupon {
    padding: 1.35rem 0.5rem 0.45rem !important;
}

body.woocommerce-checkout #wc-block-components-totals-coupon__input-coupon:hover:not(:disabled),
body.woocommerce-checkout .wc-block-components-totals-coupon__input-coupon:hover:not(:disabled) {
    background-color: var(--wcab-field-bg) !important;
    background-image: var(--wcab-field-gradient) !important;
    border-color: var(--wcab-field-border) !important;
    color: #1e1e1e !important;
    box-shadow: var(--wcab-field-shadow) !important;
}

body.woocommerce-checkout #wc-block-components-totals-coupon__input-coupon:focus,
body.woocommerce-checkout .wc-block-components-totals-coupon__input-coupon:focus {
    border-color: var(--wcab-accent, #ff0078) !important;
    outline: 1px solid var(--wcab-accent, #ff0078) !important;
    outline-offset: 0 !important;
    box-shadow: var(--wcab-field-shadow) !important;
}

body.woocommerce-checkout #wc-block-components-totals-coupon__input-coupon:disabled,
body.woocommerce-checkout .wc-block-components-totals-coupon__input-coupon:disabled {
    opacity: 0.92;
    cursor: not-allowed;
    color: #6e6e6e !important;
}

body.woocommerce-checkout
    .wc-block-components-button.wp-element-button.wc-block-components-totals-coupon__button {
    font-weight: 300;
    font-style: normal !important;
    text-decoration: none !important;
    background-color: var(--accent-color) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 4px;
    box-shadow: none !important;
}

body.woocommerce-checkout
    .wc-block-components-button.wp-element-button.wc-block-components-totals-coupon__button:hover {
    background-color: #cc0062 !important;
    color: #fff !important;
}

body.woocommerce-checkout
    .wc-block-components-button.wp-element-button.wc-block-components-totals-coupon__button:focus-visible {
    outline: 2px solid var(--accent-color);
    outline-offset: 2px;
}

body.woocommerce-checkout
    .wc-block-components-totals-coupon__button
    .wc-block-components-button__text {
    color: inherit !important;
}

/* Referenz o. ä. als klassische .form-row im Cart-Item (nicht Blocks-TextInput) */
body.woocommerce-cart .wc-block-cart-items .wc-block-cart-item .form-row label {
    display: block;
    font-size: 0.85rem;
    font-weight: 600;
    color: #1e1e1e;
    line-height: 1.35;
    margin-bottom: 0.35rem;
}

body.woocommerce-cart .wc-block-cart-items .wc-block-cart-item .form-row .input-text,
body.woocommerce-cart .wc-block-cart-items .wc-block-cart-item .form-row input[type='text'],
body.woocommerce-cart .wc-block-cart-items .wc-block-cart-item .form-row input[type='email'],
body.woocommerce-cart .wc-block-cart-items .wc-block-cart-item .form-row input[type='search'] {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    margin: 0;
    font: inherit;
    font-size: 1rem !important;
    font-weight: 400 !important;
    line-height: 1.55 !important;
    color: #1e1e1e !important;
    padding: 0.45rem 0.5rem !important;
    border: 1px solid var(--wcab-field-border) !important;
    border-radius: 4px !important;
    background-color: var(--wcab-field-bg) !important;
    background-image: var(--wcab-field-gradient) !important;
    background-repeat: repeat-x !important;
    box-shadow: var(--wcab-field-shadow) !important;
    -webkit-appearance: none;
    appearance: none;
}

body.woocommerce-cart .wc-block-cart-items .wc-block-cart-item .form-row .input-text:focus,
body.woocommerce-cart .wc-block-cart-items .wc-block-cart-item .form-row input:focus {
    border-color: var(--wcab-accent, #ff0078) !important;
    outline: 1px solid var(--wcab-accent, #ff0078) !important;
    outline-offset: 0 !important;
    box-shadow: var(--wcab-field-shadow) !important;
}

/*
 * Warenkorb/Kasse (Blocks): Zwischen ~795px und ~890px wechselt die GP-Seitenleiste (96px) den
 * effektiven Content-Bereich: ≥841px ist .site-content schmaler (calc(100% - Sidebar)), darunter
 * volle Breite. WooCommerce-Blocks hängen die Darstellung an der GEMESSENEN Breite des
 * .wc-block-components-sidebar-layout (Schwellen u. a. 700px) — ohne angleichen springt das Layout.
 *
 * Fix: Ab ≤890px ein durchgehend gleiches Verhalten — dieselbe Stapelung wie Woo unterhalb 768px
 * Viewport und max. Containerbreite < 700px, damit JS/ResizeObserver nicht zwischen zwei Modi kippt.
 *
 * WICHTIG: Woo setzt container-type:inline-size auf .wp-block-woocommerce-checkout (und .cart).
 * @container (max-width: 699px) in checkout.css bezieht sich auf DIESE äußere Breite. Nur
 * .wc-block-components-sidebar-layout zu begrenzen reicht nicht — bei ≤840px bleibt der Block-Wrapper
 * breit → Order-Summary / Fill springt. Daher den Block-Root ebenfalls auf ≤699px begrenzen.
 */
@media (max-width: 890px) {
    body.woocommerce-checkout .wp-block-woocommerce-checkout,
    body.woocommerce-cart .wp-block-woocommerce-cart {
        max-width: min(100%, 699px) !important;
        width: 100% !important;
        /* .entry-content .alignwide setzt margin 0 !important — Zentrierung braucht auto !important */
        margin-left: auto !important;
        margin-right: auto !important;
        box-sizing: border-box;
        min-width: 0;
    }

    body.woocommerce-cart .wc-block-components-sidebar-layout,
    body.woocommerce-checkout .wc-block-components-sidebar-layout {
        flex-direction: column !important;
        max-width: min(100%, 699px) !important;
        width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        box-sizing: border-box;
        min-width: 0;
    }

    body.woocommerce-cart .wc-block-components-sidebar-layout .wc-block-components-main,
    body.woocommerce-checkout .wc-block-components-sidebar-layout .wc-block-components-main {
        width: 100% !important;
        padding: 0 !important;
    }

    body.woocommerce-cart .wc-block-components-sidebar-layout .wc-block-components-sidebar,
    body.woocommerce-checkout .wc-block-components-sidebar-layout .wc-block-components-sidebar {
        width: 100% !important;
        padding: 0 !important;
    }

    /*
     * Kasse: Slot-Fill-Doppelung — .checkout-order-summary-block-fill-wrapper ausblenden, die
     * mobile/optimierte Bestellübersicht (ohne diesen Modifier) bleibt.
     */
    body.woocommerce-checkout
        .wp-block-woocommerce-checkout-order-summary-block.checkout-order-summary-block-fill-wrapper {
        display: none !important;
    }
}

@media (max-width: 700px) {
    body.woocommerce-cart .wc-block-cart__main .wc-block-cart-items tbody tr.wc-block-cart-items__row,
    body.woocommerce-cart .wc-block-cart-items tbody tr.wc-block-cart-items__row {
        grid-template-columns: 1fr;
        gap: 0.75rem;
    }
}

@media (max-width: 600px) {
    /*
     * Bild „weg“, aber dieselbe Zellen-Reihenfolge wie Desktop (Bild | Produkt | Entfernen).
     * display:none + 2 Spuren kann je nach Sheet-Reihenfolge eine Geister-Spur lassen.
     * Stattdessen: erste Spur 0px, Bild-Zelle min-width 0 + overflow hidden (Total-Zelle bleibt display:none).
     */
    body.woocommerce-page.woocommerce-cart .wc-block-cart__main .wc-block-cart-items tbody tr.wc-block-cart-items__row,
    body.woocommerce-page.woocommerce-cart .wc-block-cart-items tbody tr.wc-block-cart-items__row,
    body.woocommerce-cart .wc-block-cart__main .wc-block-cart-items tbody tr.wc-block-cart-items__row,
    body.woocommerce-cart .wc-block-cart-items tbody tr.wc-block-cart-items__row {
        grid-template-columns: 0 minmax(0, 1fr) min-content !important;
        /* Kein horizontaler Spalten-Gap: sonst Lücke zwischen 0px-Spur und Produkt */
        gap: 0.75rem 0 !important;
    }

    body.woocommerce-cart td.wc-block-cart-item__image {
        min-width: 0 !important;
        max-width: 0 !important;
        width: 0 !important;
        padding: 0 !important;
        margin: 0 !important;
        overflow: hidden !important;
        border: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }

    body.woocommerce-cart td.wc-block-cart-item__image * {
        visibility: hidden !important;
        max-width: 0 !important;
        max-height: 0 !important;
        overflow: hidden !important;
    }
}

/* Mein Konto: Feld-Variablen wie Warenkorb / wcpp-Produktreferenz */
body.woocommerce-account {
    --wcab-accent: #ff0078;
    --wcab-field-bg: color-mix(in srgb, #fefefe 60%, #f2f2f2);
    --wcab-field-gradient: linear-gradient(180deg, #fefefe, #f2f2f2);
    --wcab-field-border: #d0d0d0;
    --wcab-field-shadow: 0 1px 0 rgba(0, 0, 0, 0.05),
        inset 0 1px 0 hsla(0, 0%, 100%, 0.8);
}

/* -------------------------------------------------------------------------
   Mein Konto: vertikale WC-Navigation entfernt (PHP); Fallback für Plugins.
   ------------------------------------------------------------------------- */
body.woocommerce-account .woocommerce-MyAccount-navigation {
    display: none !important;
}

/* Mein Konto: Hauptinhalt volle Breite (ohne Nav-Spalte) */
body.woocommerce-account .woocommerce-MyAccount-content {
    width: 100%;
    max-width: 100%;
    float: none;
    background-color: #fff;
    border-radius: 8px;
    box-sizing: border-box;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    padding: 1.25rem 1.5rem;
}

body.woocommerce-account .woocommerce-MyAccount-content h2 {
    font-size: 22px !important;
    font-weight: 700 !important;
    line-height: 1.25;
    margin: 0 0 1rem !important;
    color: #202020;
}

/* Mein Konto » Bestellungen: Suche */
.gp-account-orders-search {
    margin: 0 0 2rem;
}

.gp-account-orders-search__form {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
    --gp-orders-search-control-height: 2.375rem;
}

.gp-account-orders-search__input {
    flex: 1 1 12rem;
    min-width: 0;
    max-width: 22rem;
    min-height: var(--gp-orders-search-control-height);
    padding: 0.5rem 0.75rem;
    font-size: 0.875rem;
    line-height: 1.25;
    border: 1px solid #d0d0d0;
    border-radius: 4px;
    box-sizing: border-box;
}

.gp-account-orders-search__input:focus,
.gp-account-orders-search__input:focus-visible {
    outline: none;
    border-color: #b0b0b0;
    box-shadow: none;
}

/*
 * Nativer Clear-Button bei type=search (Chrome, Safari, Edge): Akzentfarbe per Mask.
 */
.gp-account-orders-search__input::-webkit-search-cancel-button {
    -webkit-appearance: none;
    appearance: none;
    width: 1rem;
    height: 1rem;
    margin-left: 0.35rem;
    cursor: pointer;
    background-color: var(--accent-color);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z'/%3E%3C/svg%3E")
        center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z'/%3E%3C/svg%3E")
        center / contain no-repeat;
}

.gp-account-orders-search__input::-webkit-search-cancel-button:hover {
    background-color: #cc0062;
}

/*
 * Höhere Spezifität als WooCommerce .woocommerce button.button (Blocks-Theme-Button-Reset).
 */
body.woocommerce-account .woocommerce-MyAccount-content .gp-account-orders-search__form button.gp-account-orders-search__submit.button,
body.woocommerce-account .woocommerce .gp-account-orders-search__form button.gp-account-orders-search__submit.button {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--gp-orders-search-control-height);
    padding: 0 1rem;
    font-size: 0.875rem;
    line-height: 1.25;
    font-weight: 300;
    cursor: pointer;
    background: var(--accent-color) !important;
    background-color: var(--accent-color) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 4px;
    box-shadow: none !important;
}

body.woocommerce-account .woocommerce-MyAccount-content .gp-account-orders-search__form button.gp-account-orders-search__submit.button:hover,
body.woocommerce-account .woocommerce .gp-account-orders-search__form button.gp-account-orders-search__submit.button:hover {
    background: #cc0062 !important;
    background-color: #cc0062 !important;
    color: #fff !important;
}

body.woocommerce-account .woocommerce-MyAccount-content .gp-account-orders-search__form button.gp-account-orders-search__submit.button:focus-visible,
body.woocommerce-account .woocommerce .gp-account-orders-search__form button.gp-account-orders-search__submit.button:focus-visible {
    outline: 2px solid var(--accent-color);
    outline-offset: 2px;
}

.gp-account-orders-search__reset {
    font-size: 0.875rem;
    color: #666;
    text-decoration: none;
}

.gp-account-orders-search__reset:hover {
    color: var(--accent-color);
    text-decoration: underline;
}

.gp-account-orders-search__no-results {
    margin: 0 0 0.75rem;
    font-size: 0.9375rem;
    color: #202020;
}

.gp-account-orders-search__no-results-hint {
    margin: 0;
}

/*
 * Gäste: Login-Karte auf dem äußeren Editor-Block (.wp-block-group.login-card umschließt .woocommerce).
 * Kein zweites login-card im Template — sonst doppelte Wrapper.
 */
.wp-block-group.login-card {
    --wcab-accent: #ff0078;
    --wcab-field-bg: color-mix(in srgb, #fefefe 60%, #f2f2f2);
    --wcab-field-gradient: linear-gradient(180deg, #fefefe, #f2f2f2);
    --wcab-field-border: #d0d0d0;
    --wcab-field-shadow: 0 1px 0 rgba(0, 0, 0, 0.05),
        inset 0 1px 0 hsla(0, 0%, 100%, 0.8);
    background-color: #fff;
    border-radius: 8px;
    box-sizing: border-box;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    padding: 1.25rem 1.5rem;
    margin-bottom: 0;
}

.wp-block-group.login-card > .wp-block-group__inner-container {
    background: transparent;
    box-shadow: none;
    padding: 0;
}

/* Ohne login-card-Block (z. B. nur Woo-Kontoseite): gleiche Karte direkt an #customer_login */
body:not(:has(.wp-block-group.login-card)) .woocommerce #customer_login {
    --wcab-accent: #ff0078;
    --wcab-field-bg: color-mix(in srgb, #fefefe 60%, #f2f2f2);
    --wcab-field-gradient: linear-gradient(180deg, #fefefe, #f2f2f2);
    --wcab-field-border: #d0d0d0;
    --wcab-field-shadow: 0 1px 0 rgba(0, 0, 0, 0.05),
        inset 0 1px 0 hsla(0, 0%, 100%, 0.8);
    background-color: #fff;
    border-radius: 8px;
    box-sizing: border-box;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    padding: 1.25rem 1.5rem;
    margin-bottom: 0;
}

.woocommerce #customer_login form.woocommerce-form.woocommerce-form-login.login {
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    background: transparent !important;
    padding: 0;
    margin: 0;
}

.woocommerce #customer_login form.woocommerce-form-login.login label {
    display: block;
    font-size: 0.85rem;
    font-weight: 600;
    color: #1e1e1e;
    line-height: 1.35;
    margin-bottom: 0.35rem;
}

.woocommerce #customer_login form.woocommerce-form-login.login label .required {
    color: var(--wcab-accent, #ff0078) !important;
    border: 0 !important;
    background: transparent !important;
    text-decoration: none !important;
}

.woocommerce #customer_login form.woocommerce-form-login.login .woocommerce-form__label-for-checkbox {
    display: inline-flex !important;
    align-items: center;
    gap: 0.35rem;
    font-weight: 400 !important;
    margin-bottom: 0 !important;
    cursor: pointer;
}

.woocommerce #customer_login form.woocommerce-form-login.login input[type='text'],
.woocommerce #customer_login form.woocommerce-form-login.login input[type='password'] {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    margin: 0;
    font: inherit;
    font-family: inherit;
    font-size: 1rem !important;
    font-weight: 400 !important;
    line-height: 1.55 !important;
    color: #1e1e1e !important;
    padding: 0.45rem 0.5rem !important;
    border: 1px solid var(--wcab-field-border) !important;
    border-radius: 4px !important;
    background-color: var(--wcab-field-bg) !important;
    background-image: var(--wcab-field-gradient) !important;
    background-repeat: repeat-x !important;
    box-shadow: var(--wcab-field-shadow) !important;
    min-height: 0 !important;
    -webkit-appearance: none;
    appearance: none;
}

.woocommerce #customer_login form.woocommerce-form-login.login .password-input input {
    padding-right: 2.75rem !important;
}

.woocommerce #customer_login form.woocommerce-form-login.login input:hover:not(:disabled) {
    background-color: var(--wcab-field-bg) !important;
    background-image: var(--wcab-field-gradient) !important;
    border-color: var(--wcab-field-border) !important;
    color: #1e1e1e !important;
    box-shadow: var(--wcab-field-shadow) !important;
}

.woocommerce #customer_login form.woocommerce-form-login.login input:focus {
    border-color: var(--wcab-accent, #ff0078) !important;
    outline: 1px solid var(--wcab-accent, #ff0078) !important;
    outline-offset: 0 !important;
    box-shadow: var(--wcab-field-shadow) !important;
}

.woocommerce #customer_login form.woocommerce-form-login.login input:disabled {
    opacity: 0.92;
    cursor: not-allowed;
    color: #6e6e6e !important;
}

.woocommerce #customer_login form.woocommerce-form-login.login .show-password-input {
    color: #1e1e1e;
    opacity: 0.55;
}

.woocommerce #customer_login form.woocommerce-form-login.login .show-password-input:hover,
.woocommerce #customer_login form.woocommerce-form-login.login .show-password-input:focus {
    opacity: 1;
}

.login-help {
    margin-top: 30px;
}

.woocommerce #customer_login .woocommerce-LostPassword.lost_password {
    display: none !important;
}

/* Login „Anmelden“: wie Block-Warenkorb „Weiter zur Kasse“ */
.woocommerce #customer_login form.woocommerce-form-login.login .woocommerce-form-login__submit,
.woocommerce #customer_login form.woocommerce-form-login.login button.woocommerce-button.woocommerce-form-login__submit {
    width: 100% !important;
    max-width: 100%;
    box-sizing: border-box;
    min-height: 3rem;
    display: inline-flex !important;
    justify-content: center;
    align-items: center;
    text-align: center;
    font-weight: 300;
    font-style: normal !important;
    text-decoration: none !important;
    background-color: var(--accent-color) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 4px;
    padding: 0.5rem 1rem;
    margin: 10px 0 0;
    box-shadow: none !important;
    cursor: pointer;
}

.woocommerce #customer_login form.woocommerce-form-login.login .woocommerce-form-login__submit:hover,
.woocommerce
    #customer_login
    form.woocommerce-form-login.login
    button.woocommerce-button.woocommerce-form-login__submit:hover {
    background-color: #cc0062 !important;
    color: #fff !important;
}

.woocommerce #customer_login form.woocommerce-form-login.login .woocommerce-form-login__submit:focus-visible,
.woocommerce
    #customer_login
    form.woocommerce-form-login.login
    button.woocommerce-button.woocommerce-form-login__submit:focus-visible {
    outline: 2px solid var(--accent-color);
    outline-offset: 2px;
}

/*
 * Kontodetails (form.edit-account): Input-Optik wie .wcpp-product-reference-field input auf dem Warenkorb
 * (.password-input + .show-password-input von WC: rechtes Innen-Padding, Auge unangetastet)
 */
body.woocommerce-account .woocommerce form .form-row,
body.woocommerce-account .woocommerce-MyAccount-content form .form-row {
    padding: 3px;
    margin: 0 0 15px;
}

body.woocommerce-account .woocommerce form fieldset legend,
body.woocommerce-account .woocommerce-MyAccount-content form fieldset legend {
    display: none;
}

/* Erstes Fieldset (Passwort): Abstand zu den Kontofeldern; ab dem zweiten Fieldset zusätzlicher Abstand */
body.woocommerce-account .woocommerce-MyAccount-content form.edit-account fieldset:first-of-type {
    margin-top: 2.25rem;
}

body.woocommerce-account .woocommerce-MyAccount-content form.edit-account fieldset:not(:first-of-type) {
    margin-top: 2.25rem;
}

body.woocommerce-account #account_display_name_description {
    display: block;
    margin-top: 5px;
    font-size: 0.85rem;
    color: #707070;
    line-height: 1.4;
}

body.woocommerce-account .woocommerce-MyAccount-content form.edit-account label {
    display: block;
    font-size: 0.85rem;
    font-weight: 500;
    color: #1e1e1e;
    line-height: 1.35;
    margin-bottom: 0.35rem;
}

body.woocommerce-account .woocommerce-MyAccount-content form.edit-account label .required {
    color: var(--wcab-accent, #ff0078) !important;
    border: 0 !important;
    background: transparent !important;
    text-decoration: none !important;
}

body.woocommerce-account .woocommerce-MyAccount-content form.edit-account input[type='text'],
body.woocommerce-account .woocommerce-MyAccount-content form.edit-account input[type='email'],
body.woocommerce-account .woocommerce-MyAccount-content form.edit-account input[type='number'],
body.woocommerce-account .woocommerce-MyAccount-content form.edit-account input[type='tel'],
body.woocommerce-account .woocommerce-MyAccount-content form.edit-account input[type='url'],
body.woocommerce-account .woocommerce-MyAccount-content form.edit-account input[type='password'] {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    margin: 0;
    font: inherit;
    font-family: inherit;
    font-size: 1rem !important;
    font-weight: 400 !important;
    line-height: 1.55 !important;
    color: #1e1e1e !important;
    padding: 0.45rem 0.5rem !important;
    border: 1px solid var(--wcab-field-border) !important;
    border-radius: 4px !important;
    background-color: var(--wcab-field-bg) !important;
    background-image: var(--wcab-field-gradient) !important;
    background-repeat: repeat-x !important;
    box-shadow: var(--wcab-field-shadow) !important;
    min-height: 0 !important;
    -webkit-appearance: none;
    appearance: none;
}

body.woocommerce-account .woocommerce-MyAccount-content form.edit-account .password-input input {
    padding-right: 2.75rem !important;
}

body.woocommerce-account .woocommerce-MyAccount-content form.edit-account input:hover:not(:disabled) {
    background-color: var(--wcab-field-bg) !important;
    background-image: var(--wcab-field-gradient) !important;
    border-color: var(--wcab-field-border) !important;
    color: #1e1e1e !important;
    box-shadow: var(--wcab-field-shadow) !important;
}

body.woocommerce-account .woocommerce-MyAccount-content form.edit-account input:focus {
    border-color: var(--wcab-accent, #ff0078) !important;
    outline: 1px solid var(--wcab-accent, #ff0078) !important;
    outline-offset: 0 !important;
    box-shadow: var(--wcab-field-shadow) !important;
}

body.woocommerce-account .woocommerce-MyAccount-content form.edit-account input:disabled {
    opacity: 0.92;
    cursor: not-allowed;
    color: #6e6e6e !important;
}

body.woocommerce-account .woocommerce-MyAccount-content form.edit-account .show-password-input {
    color: #1e1e1e;
    opacity: 0.55;
}

body.woocommerce-account .woocommerce-MyAccount-content form.edit-account .show-password-input:hover,
body.woocommerce-account .woocommerce-MyAccount-content form.edit-account .show-password-input:focus {
    opacity: 1;
}

/* Kontodetails: Speichern — wie Block-Warenkorb „Weiter zur Kasse“ */
body.woocommerce-account .woocommerce-MyAccount-content form.edit-account button.woocommerce-Button,
body.woocommerce-account .woocommerce-MyAccount-content form.edit-account button[type='submit'] {
    box-sizing: border-box;
    min-height: 3rem;
    display: inline-flex !important;
    justify-content: center;
    align-items: center;
    text-align: center;
    font-weight: 300;
    font-style: normal !important;
    text-decoration: none !important;
    background-color: var(--accent-color) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 4px;
    padding: 0.5rem 1rem;
    margin: 0.5rem 0 0;
    box-shadow: none !important;
    cursor: pointer;
}

body.woocommerce-account .woocommerce-MyAccount-content form.edit-account button.woocommerce-Button:hover,
body.woocommerce-account .woocommerce-MyAccount-content form.edit-account button[type='submit']:hover {
    background-color: #cc0062 !important;
    color: #fff !important;
}

body.woocommerce-account .woocommerce-MyAccount-content form.edit-account button.woocommerce-Button:focus-visible,
body.woocommerce-account .woocommerce-MyAccount-content form.edit-account button[type='submit']:focus-visible {
    outline: 2px solid var(--accent-color);
    outline-offset: 2px;
}

body.woocommerce-account .wcab-address-book {
    margin-top: 20px;
}

/* Mein Konto > Adressen: innere Karten 6px (äußere Fläche .woocommerce-MyAccount-content: 8px). */
body.woocommerce-account .woocommerce-Addresses .woocommerce-Address {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    border: 1px solid #e8e8e8;
    border-radius: 6px;
    box-sizing: border-box;
    padding: 1rem 1.25rem;
    margin-bottom: 1.25rem;
}

body.woocommerce-account .woocommerce-Addresses .woocommerce-Address:last-child {
    margin-bottom: 0;
}

/*
 * Bearbeiten-Link steht im Markup im <header> vor <address> – per display:contents
 * Reihenfolge: h3 → Adresse → Button.
 */
body.woocommerce-account .woocommerce-Address > header.woocommerce-Address-title {
    display: contents;
}

body.woocommerce-account .woocommerce-Address > header.woocommerce-Address-title h3 {
    order: 1;
    font-size: 0.9375rem !important;
    font-weight: 600 !important;
    font-style: normal !important;
    margin: 0 0 0.5rem !important;
    line-height: 1.3;
    color: #202020;
}

body.woocommerce-account .woocommerce-Address > address {
    order: 2;
    margin: 0 0 0.75rem !important;
}

body.woocommerce-account .woocommerce-Address > header.woocommerce-Address-title a.edit {
    order: 3;
    align-self: flex-start;
    display: inline-block;
    font-weight: 300;
    font-style: normal !important;
    background-color: var(--accent-color);
    color: #fff !important;
    border: none;
    padding: 0.5rem 1rem;
    border-radius: 4px;
    text-decoration: none !important;
    margin: 0;
}

body.woocommerce-account .woocommerce-Address > header.woocommerce-Address-title a.edit:hover {
    background-color: #cc0062;
    color: #fff !important;
}

body.woocommerce-account .woocommerce-Address-title,
body.woocommerce-account .woocommerce-Address address {
    font-style: normal !important;
}

/*
 * Bestellpositionen: eine gemeinsame Tabelle (.woocommerce-table--order-details) für
 * Dankeseite (order-received) und Mein Konto » Bestellung ansehen — gleiches WC-Template.
 */
body.woocommerce-account table.woocommerce-table--order-details,
body.woocommerce-order-received table.woocommerce-table--order-details {
    width: 100%;
    max-width: 100%;
    border-collapse: collapse;
    font-size: 0.9375rem;
    background: transparent;
    margin: 0 0 1.5rem;
    box-sizing: border-box;
}

body.woocommerce-account table.woocommerce-table--order-details thead th,
body.woocommerce-order-received table.woocommerce-table--order-details thead th {
    text-align: left;
    font-weight: 600;
    color: #888;
    padding: 0.5rem 1rem 0.75rem;
    border-bottom: 1px solid #e8e8e8;
    vertical-align: bottom;
}

body.woocommerce-account table.woocommerce-table--order-details tbody td,
body.woocommerce-order-received table.woocommerce-table--order-details tbody td {
    padding: 1rem;
    vertical-align: middle;
    border-bottom: 1px solid #eee;
}

body.woocommerce-account table.woocommerce-table--order-details tbody tr:nth-child(odd),
body.woocommerce-order-received table.woocommerce-table--order-details tbody tr:nth-child(odd) {
    background-color: #f7f7f7;
}

body.woocommerce-account table.woocommerce-table--order-details tbody tr:nth-child(even),
body.woocommerce-order-received table.woocommerce-table--order-details tbody tr:nth-child(even) {
    background-color: #fff;
}

body.woocommerce-account table.woocommerce-table--order-details tfoot th,
body.woocommerce-account table.woocommerce-table--order-details tfoot td,
body.woocommerce-order-received table.woocommerce-table--order-details tfoot th,
body.woocommerce-order-received table.woocommerce-table--order-details tfoot td {
    padding: 0.65rem 1rem;
    vertical-align: middle;
    border-top: 1px solid #e8e8e8;
    border-bottom: none;
    background-color: #fff;
}

body.woocommerce-account table.woocommerce-table--order-details tfoot tr:last-child th,
body.woocommerce-account table.woocommerce-table--order-details tfoot tr:last-child td,
body.woocommerce-order-received table.woocommerce-table--order-details tfoot tr:last-child th,
body.woocommerce-order-received table.woocommerce-table--order-details tfoot tr:last-child td {
    font-weight: 600;
    color: #202020;
}

/* Produktzelle: Titel wie Block-Warenkorb; Meta zweispaltig wie dort */
body.woocommerce-account table.woocommerce-table--order-details td.woocommerce-table__product-name.product-name > a,
body.woocommerce-order-received table.woocommerce-table--order-details td.woocommerce-table__product-name.product-name > a {
    font-size: 1.5rem !important;
    font-weight: 800 !important;
    text-decoration: none !important;
    color: #202020;
    display: inline-block;
    margin: 0 0 0.5rem;
    line-height: 1.25;
}

body.woocommerce-account table.woocommerce-table--order-details td.woocommerce-table__product-name.product-name > a:hover,
body.woocommerce-order-received table.woocommerce-table--order-details td.woocommerce-table__product-name.product-name > a:hover {
    color: var(--accent-color);
}

body.woocommerce-account table.woocommerce-table--order-details ul.wc-item-meta,
body.woocommerce-order-received table.woocommerce-table--order-details ul.wc-item-meta {
    margin: 0 !important;
    padding: 0;
    list-style: none;
    font-size: 0.9rem;
    line-height: 1.45;
}

body.woocommerce-account table.woocommerce-table--order-details ul.wc-item-meta li,
body.woocommerce-order-received table.woocommerce-table--order-details ul.wc-item-meta li {
    display: grid;
    grid-template-columns: 153px minmax(0, 1fr);
    column-gap: clamp(1.25rem, 4vw, 2.75rem);
    row-gap: 0.15rem;
    align-items: start;
    margin: 0 0 0.35rem;
    padding: 0;
}

body.woocommerce-account table.woocommerce-table--order-details ul.wc-item-meta li:last-child,
body.woocommerce-order-received table.woocommerce-table--order-details ul.wc-item-meta li:last-child {
    margin-bottom: 0;
}

body.woocommerce-account table.woocommerce-table--order-details ul.wc-item-meta .wc-item-meta-label,
body.woocommerce-order-received table.woocommerce-table--order-details ul.wc-item-meta .wc-item-meta-label {
    font-weight: 600;
    color: #50575e;
    margin: 0;
    padding: 0 0.95rem 0 0;
    box-sizing: border-box;
}

body.woocommerce-account table.woocommerce-table--order-details ul.wc-item-meta .wc-item-meta-value,
body.woocommerce-order-received table.woocommerce-table--order-details ul.wc-item-meta .wc-item-meta-value {
    margin: 0;
    padding: 0;
    min-width: 0;
    font-weight: 400;
    color: #1e1e1e;
}

/* Oft <p> durch wpautop in Meta-Werten — ohne margin-bottom (Bestelltabelle, Karten, Kasse) */
ul.wc-item-meta p {
    margin-bottom: 0;
}

body.woocommerce-account table.woocommerce-table--order-details td.woocommerce-table__product-total.product-total,
body.woocommerce-order-received table.woocommerce-table--order-details td.woocommerce-table__product-total.product-total {
    color: var(--accent-color) !important;
    font-weight: 700;
}

body.woocommerce-account table.woocommerce-table--order-details td.woocommerce-table__product-total.product-total *,
body.woocommerce-order-received table.woocommerce-table--order-details td.woocommerce-table__product-total.product-total * {
    color: inherit !important;
}

@media (max-width: 520px) {
    body.woocommerce-account table.woocommerce-table--order-details ul.wc-item-meta li,
    body.woocommerce-order-received table.woocommerce-table--order-details ul.wc-item-meta li {
        grid-template-columns: 132px minmax(0, 1fr);
        column-gap: 1rem;
    }
}

body.woocommerce-account .woocommerce-order-details,
body.woocommerce-order-received .woocommerce-order-details {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

@media (max-width: 768px) {
    body.woocommerce-account table.woocommerce-table--order-details,
    body.woocommerce-order-received table.woocommerce-table--order-details {
        min-width: 28rem;
    }
}

/* Bestelltabelle: Startseite + Mein Konto (gemeinsame Inhalte) */
/* Trägt data-gp-order-view-url für Zeilen-Klick ohne Template-Override am <tr> */
.gp-order-row-anchor {
    display: block;
}

.gp-order-overview {
    text-align: left;
    max-width: 22rem;
}

.gp-order-overview__heading {
    font-weight: 500;
    color: #202020;
    margin: 0 0 0.35rem;
    font-size: 0.9375rem;
}

.gp-order-overview__line {
    font-size: 0.875rem;
    line-height: 1.45;
    color: #202020;
    margin: 0.2rem 0 0;
}

.gp-order-overview__product-name {
    font-weight: normal;
    color: #888;
}

.gp-order-overview__reference {
    font-weight: normal;
}

/*
 * wc-print-production frontend.css setzt .wcpp-order-progress__current auf font-weight: 600 —
 * höhere Spezifität + !important, damit „lighter“ überall greift (Startseite, Mein Konto, …).
 */
body .wcpp-order-progress .wcpp-order-progress__current {
    font-weight: lighter !important;
}

.gp-order-ship-plan__date {
    display: block;
    font-weight: 500;
    color: #202020;
}

.gp-order-ship-plan__date--na {
    font-weight: 400;
    color: #666;
}

.gp-order-ship-plan__method {
    display: block;
    font-size: 0.8125rem;
    color: #888;
    margin-top: 0.2rem;
    line-height: 1.35;
}

.gp-order-table__order-date {
    font-weight: 400;
    color: #202020;
}

tr.gp-order-row-clickable {
    cursor: pointer;
}

.recent-orders-table__row.gp-order-row-clickable:hover td,
body.woocommerce-account table.woocommerce-orders-table tbody tr.gp-order-row-clickable:hover td,
body.woocommerce-account table.woocommerce-orders-table tbody tr.gp-order-row-clickable:hover th {
    background-color: #ededed !important;
}

/* Mein Konto: Bestelltabelle wie „Letzte Bestellungen“ (Startseite) */
body.woocommerce-account table.woocommerce-orders-table,
body.woocommerce-account table.shop_table.my_account_orders {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9375rem;
    background: transparent;
    border: none !important;
}

/* WC .shop_table: äußerer Rahmen / seitliche Linien — unten behalten wir per border-bottom */
body.woocommerce-account table.woocommerce-orders-table > thead > tr > th,
body.woocommerce-account table.woocommerce-orders-table > thead > tr > td,
body.woocommerce-account table.woocommerce-orders-table > tbody > tr > th,
body.woocommerce-account table.woocommerce-orders-table > tbody > tr > td,
body.woocommerce-account table.shop_table.my_account_orders > thead > tr > th,
body.woocommerce-account table.shop_table.my_account_orders > tbody > tr > th,
body.woocommerce-account table.shop_table.my_account_orders > tbody > tr > td {
    border-left: none !important;
    border-right: none !important;
    border-top: none !important;
}

body.woocommerce-account table.woocommerce-orders-table thead th,
body.woocommerce-account table.shop_table.my_account_orders thead th {
    text-align: left;
    font-weight: 600;
    color: #888;
    padding: 0.5rem 1rem 0.75rem;
    border-bottom: 1px solid #e8e8e8;
}

body.woocommerce-account table.woocommerce-orders-table thead th.woocommerce-orders-table__header-order-date,
body.woocommerce-account table.shop_table.my_account_orders thead th.woocommerce-orders-table__header-order-date {
    padding-top: 0.625rem;
    padding-bottom: 0.625rem;
    vertical-align: middle;
}

body.woocommerce-account table.woocommerce-orders-table .nobr,
body.woocommerce-account table.shop_table.my_account_orders .nobr {
    font-weight: normal;
}

body.woocommerce-account table.woocommerce-orders-table tbody tr:nth-child(odd),
body.woocommerce-account table.shop_table.my_account_orders tbody tr:nth-child(odd) {
    background-color: #f7f7f7;
}

body.woocommerce-account table.woocommerce-orders-table tbody tr:nth-child(even),
body.woocommerce-account table.shop_table.my_account_orders tbody tr:nth-child(even) {
    background-color: #fff;
}

body.woocommerce-account table.woocommerce-orders-table tbody th,
body.woocommerce-account table.woocommerce-orders-table tbody td,
body.woocommerce-account table.shop_table.my_account_orders tbody td {
    padding: 1rem;
    vertical-align: middle;
    border-bottom: 1px solid #eee;
}

body.woocommerce-account table.woocommerce-orders-table .woocommerce-orders-table__cell-order-number .gp-order-overview__heading,
body.woocommerce-account table.shop_table.my_account_orders .woocommerce-orders-table__cell-order-number .gp-order-overview__heading {
    font-weight: 500;
    color: #202020;
}

body.woocommerce-account table.woocommerce-orders-table mark.order-status,
body.woocommerce-account table.shop_table.my_account_orders mark.order-status {
    background: transparent;
    color: #202020;
    font-size: 0.875rem;
    font-weight: normal;
    padding: 0;
    line-height: 1.4;
}

body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-pagination {
    margin-top: 1.5rem;
}

@media (max-width: 768px) {
    body.woocommerce-account table.woocommerce-orders-table thead,
    body.woocommerce-account table.shop_table.my_account_orders thead {
        display: none;
    }

    /* Kartenlayout: kein Zebra — eine Fläche + Außenrahmen pro Bestellung */
    body.woocommerce-account table.woocommerce-orders-table tbody tr:nth-child(odd),
    body.woocommerce-account table.woocommerce-orders-table tbody tr:nth-child(even),
    body.woocommerce-account table.shop_table.my_account_orders tbody tr:nth-child(odd),
    body.woocommerce-account table.shop_table.my_account_orders tbody tr:nth-child(even) {
        background-color: #f7f7f7;
    }

    body.woocommerce-account table.woocommerce-orders-table tbody tr,
    body.woocommerce-account table.shop_table.my_account_orders tbody tr {
        display: block;
        margin-bottom: 1rem;
        border: 1px solid #eee !important;
        border-radius: 8px;
        overflow: hidden;
    }

    body.woocommerce-account table.woocommerce-orders-table tbody td,
    body.woocommerce-account table.woocommerce-orders-table tbody th,
    body.woocommerce-account table.shop_table.my_account_orders tbody td {
        display: block;
        border-bottom: 1px solid #eee;
    }

    body.woocommerce-account table.woocommerce-orders-table tbody td:last-child,
    body.woocommerce-account table.woocommerce-orders-table tbody th:last-child,
    body.woocommerce-account table.shop_table.my_account_orders tbody td:last-child {
        border-bottom: none;
    }
}

/* Letzte Bestellungen (Startseite / Shop) */
.recent-orders-wrap {
    margin-bottom: 2rem;
}

.recent-orders-card {
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    padding: 30px 20px;
}

.recent-orders-card__title {
    margin: 0 0 1rem;
    font-size: 1.125rem;
    font-weight: bold;
    color: #202020;
}

.recent-orders-card__empty {
    margin: 0 0 0.5rem;
    color: #666;
    font-size: 0.9375rem;
}

.recent-orders-card__footer {
    margin: 1rem 0 0;
    text-align: center;
    padding-top: 0.25rem;
}

.recent-orders-card__all-link {
    color: var(--accent-color);
    font-weight: 400;
    font-size: 0.9rem;
    text-decoration: none;
}

.recent-orders-card__all-link:hover {
    color: #cc0062;
    text-decoration: underline;
}

.recent-orders-card__table-wrap {
    overflow-x: auto;
}

.recent-orders-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9375rem;
}

.recent-orders-table thead th {
    text-align: left;
    font-weight: normal;
    color: #888;
    padding: 0.625rem 1rem;
    vertical-align: middle;
    line-height: 1.35;
    border-bottom: 1px solid #e8e8e8;
}

.recent-orders-table__row:nth-child(odd) {
    background-color: #f7f7f7;
}

.recent-orders-table__row:nth-child(even) {
    background-color: #fff;
}

.recent-orders-table__cell {
    padding: 1rem;
    vertical-align: middle;
    border-bottom: 1px solid #eee;
}

.recent-orders-table__order-date {
    font-weight: 400;
    color: #202020;
}

.recent-orders-table__thumb {
    flex-shrink: 0;
    width: 56px;
    height: 56px;
    border-radius: 4px;
    overflow: hidden;
    background: #eee;
}

.recent-orders-table__thumb-img {
    width: 56px;
    height: 56px;
    object-fit: cover;
    display: block;
}

.recent-orders-table__thumb-placeholder {
    display: block;
    width: 56px;
    height: 56px;
    background: #ddd;
}

.recent-orders-table__order-text {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    text-align: left;
}

.recent-orders-table__product-name {
    font-weight: bold;
    color: #202020;
}

.recent-orders-table__product-sub {
    font-size: 0.8125rem;
    color: #888;
}

/* „Letzte Bestellungen“: gleiche wcpp-order-progress--compact-Breite wie Mein Konto (Styles aus wcpp frontend.css) */
.recent-orders-table__cell--status .wcpp-order-progress {
    width: 100%;
    max-width: 100%;
    display: block;
    box-sizing: border-box;
}

.gp-order-status-fallback {
    font-size: 0.875rem;
    color: #202020;
}

/* —— Mein Konto: Bestellung ansehen (Karten-Layout) —— */
/*
 * Ohne gp-order-view-page: .woocommerce-MyAccount-content wirkt wie eine große Karte um alles.
 * Hier nur „entkarten“, innere .gp-order-view__card behalten den Rahmen.
 */
body.gp-order-view-page .woocommerce-MyAccount-content {
    background: transparent;
    box-shadow: none;
    border-radius: 0;
    padding: 0;
}

/*
 * WooCommerce-Standard: Absatz mit mark.order-number („Bestellung #… vom … ist aktuell …“).
 * Unser view-order.php-Override enthält ihn nicht; falls Block/Cache/anderes Template ihn noch einblendet.
 */
body.gp-order-view-page .woocommerce-MyAccount-content p:has(mark.order-number) {
    display: none !important;
}

/* Hinweis-Karte oberhalb „Status“: ohne gap; WCPP setzt oft margin auf die Notice-Box — hier aushebeln.
 * :not(.wcpp-production-release-notice__actions): Klasse enthält „notice“ → sonst trifft [class*='notice'] zu. */
.gp-order-view__card--alerts .gp-order-view__alerts > *:not(.wcpp-production-release-notice__actions),
.gp-order-view__card--alerts .gp-order-view__alerts .wcpp-missing-files-notice,
.gp-order-view__card--alerts .gp-order-view__alerts #wcpp-slot-release-notice,
.gp-order-view__card--alerts .gp-order-view__alerts [class*='wcpp-'][class*='notice']:not(.wcpp-production-release-notice__actions) {
    margin: 0 !important;
}

.gp-order-view__card--alerts .gp-order-view__alerts .wcpp-production-release-notice__actions {
    margin-top: 10px !important;
}

.gp-order-view__status-progress #wcpp-slot-release-notice {
    margin-top: 1rem;
}

.gp-order-view__nav {
    margin: 0 0 0.5rem;
}

.gp-order-view__back {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--accent-color);
    text-decoration: none;
}

.gp-order-view__back:hover {
    text-decoration: underline;
    color: #cc0062;
}

.gp-order-view__page-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 0 0 1.25rem;
}

.gp-order-view__heading {
    margin: 0;
    font-size: clamp(1.25rem, 2.5vw, 1.5rem);
    font-weight: 700;
    color: #202020;
}

.gp-order-view__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.gp-order-view__action-btn {
    display: inline-block;
    padding: 0.5rem 1rem;
    border-radius: 4px;
    font-size: 0.875rem;
    font-weight: 500;
    text-decoration: none !important;
    border: 1px solid #e0e0e0;
    background: #fff;
    color: #202020 !important;
}

.gp-order-view__action-btn:hover {
    border-color: var(--accent-color);
    color: var(--accent-color) !important;
}

.gp-order-view .gp-order-view__card {
    background: #fff;
    border: 1px solid #e8e8e8;
    border-radius: 8px;
    padding: 1.1rem 1.25rem 1.25rem;
    margin-bottom: 1rem;
    box-sizing: border-box;
}

.gp-order-view .gp-order-view__card--status {
    margin-bottom: 1rem;
}

/* Stornieren: unter „Bestelldetails“, volle Spaltenbreite, Akzentfarbe */
.gp-order-view__cancel-wrap {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    margin-top: 1rem;
}

.gp-order-view__cancel-form {
    margin: 0;
    width: 100%;
}

.gp-order-view__cancel-btn {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    display: block;
    margin: 0;
    padding: 0.65rem 1rem;
    border: none;
    border-radius: 4px;
    font-size: 0.9375rem;
    font-weight: 500 !important;
    line-height: 1.35;
    text-align: center;
    cursor: pointer;
    background-color: var(--accent-color) !important;
    color: #fff !important;
}

.gp-order-view__cancel-btn:hover:not(:disabled) {
    filter: brightness(0.92);
}

.gp-order-view__cancel-btn:focus-visible {
    outline: 2px solid var(--accent-color);
    outline-offset: 2px;
}

.gp-order-view__cancel-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    filter: grayscale(0.15);
}

body.gp-order-cancel-modal-open {
    overflow: hidden;
}

.gp-order-view__cancel-modal {
    position: fixed;
    inset: 0;
    z-index: 100050;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    box-sizing: border-box;
}

.gp-order-view__cancel-modal[hidden] {
    display: none !important;
}

.gp-order-view__cancel-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    cursor: pointer;
}

.gp-order-view__cancel-modal__panel {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 26rem;
    padding: 1.25rem 1.35rem 1.35rem;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.18);
    box-sizing: border-box;
}

.gp-order-view__cancel-modal__title {
    margin: 0 0 0.65rem;
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.35;
    color: #202020;
}

.gp-order-view__cancel-modal__text {
    margin: 0 0 1.15rem;
    font-size: 0.9375rem;
    line-height: 1.5;
    color: #444;
}

.gp-order-view__cancel-modal__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    justify-content: flex-end;
}

.gp-order-view__cancel-modal__btn {
    margin: 0;
    padding: 0.5rem 1rem;
    border-radius: 4px;
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.35;
    cursor: pointer;
    border: 1px solid #d0d0d0;
    background: #fff;
    color: #202020 !important;
}

.gp-order-view__cancel-modal__btn--secondary:hover {
    border-color: #b0b0b0;
    background: #f7f7f7;
}

.gp-order-view__cancel-modal__btn--danger {
    border: none;
    background-color: var(--accent-color) !important;
    color: #fff !important;
}

.gp-order-view__cancel-modal__btn--danger:hover {
    filter: brightness(0.92);
}

.gp-order-view__cancel-modal__btn:focus-visible {
    outline: 2px solid var(--accent-color);
    outline-offset: 2px;
}

.gp-order-view__card-title {
    margin: 0 0 0.85rem;
    font-size: 1rem;
    font-weight: 600;
    color: #202020;
}

.gp-order-view__status-progress .wcpp-order-progress {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    margin-bottom: 0;
}

.gp-order-view__grid {
    display: grid;
    grid-template-columns: minmax(0, 33%) minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
}

.gp-order-view__col--side .gp-order-view__card:last-child {
    margin-bottom: 0;
}

.gp-order-view__dl {
    margin: 0;
}

.gp-order-view__dt {
    margin: 0.85rem 0 0.2rem;
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--gp-label-muted-color);
}

.gp-order-view__dt:first-child {
    margin-top: 0;
}

.gp-order-view__dd {
    margin: 0;
    font-size: 0.9375rem;
    color: #202020;
    line-height: 1.45;
}

.gp-order-view__dd--address br {
    line-height: inherit;
}

.gp-order-view__muted {
    color: var(--gp-label-muted-color);
}

.gp-order-view__tracking-placeholder {
    margin: 0;
    font-size: 0.875rem;
    line-height: 1.45;
}

.gp-order-view__line-inner {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    align-items: stretch;
}

/* Titel + Preis eine Zeile; darunter volle Breite für Meta / Druckdatei */
.gp-order-view__line-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: baseline;
}

.gp-order-view__line-body {
    min-width: 0;
}

.gp-order-view__line-title {
    margin: 0;
    font-size: 1rem;
    line-height: 1.3;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    column-gap: 0.5rem;
    row-gap: 0.15rem;
}

.gp-order-view__line-title-name {
    font-weight: 600;
    color: #202020;
}

.gp-order-view__line-title-ref {
    font-weight: 400;
    color: var(--gp-label-muted-color);
}

.gp-order-view__line-ship {
    margin: 0.2rem 0;
    font-size: 0.8125rem;
    color: var(--gp-label-muted-color);
}

.gp-order-view__line-meta ul.wc-item-meta {
    margin: 1rem 0 1rem !important;
    padding: 0;
    list-style: none;
    font-size: 0.875rem;
    line-height: 1.45;
}

/* WCPP-Einzelpreis: in der Karte bereits oben rechts; Fallback falls Meta trotzdem gerendert wird */
.gp-order-view__line-meta ul.wc-item-meta.wcpp-item-price-meta {
    display: none !important;
}

.gp-order-view__line-meta ul.wc-item-meta li {
    display: grid;
    grid-template-columns: minmax(0, 140px) minmax(0, 1fr);
    column-gap: 1rem;
    row-gap: 0.15rem;
    margin: 0 0 0.3rem;
    padding: 0;
}

.gp-order-view__line-meta ul.wc-item-meta li:last-child {
    margin-bottom: 0;
}

.gp-order-view__line-meta .wc-item-meta-label {
    font-weight: 500;
    color: var(--gp-label-muted-color);
}

/*
 * WCPP upload-form-inline: äußere Zeile wie ul.wc-item-meta li (140px | 1fr), Label wie .wc-item-meta-label.
 * Überschreibt das eingebettete Flex aus dem Plugin-Template auf der Bestell-Detailseite.
 */
body.gp-order-view-page .gp-order-view__line-meta .wcpp-inline-upload {
    display: grid;
    grid-template-columns: minmax(0, 140px) minmax(0, 1fr);
    column-gap: 1rem;
    row-gap: 0.15rem;
    align-items: start;
    flex-wrap: unset;
    border-top: none !important;
}

body.gp-order-view-page .gp-order-view__line-meta .wcpp-inline-upload__label {
    font-weight: 500;
    color: var(--gp-label-muted-color);
    font-size: 0.875rem;
    line-height: 1.45;
    white-space: normal;
    padding-top: 0;
}

body.gp-order-view-page .gp-order-view__line-meta .wcpp-inline-upload__content {
    flex: unset;
    min-width: 0;
    font-size: 0.875rem;
    line-height: 1.45;
}

/*
 * WCPP-Dropzone: Plugin blendet .wcpp-dropzone-icon im Inline-Upload aus — hier wieder sichtbar,
 * zentriert über dem Text; Pfeil-hoch-Symbol in Akzentfarbe (Mask, nutzt --accent-color).
 */
body.gp-order-view-page .gp-order-view__line-meta .wcpp-inline-upload .wcpp-dropzone {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 0.4rem;
    padding: 1.15rem 1rem;
}

body.gp-order-view-page .gp-order-view__line-meta .wcpp-inline-upload .wcpp-dropzone-icon {
    display: block !important;
    flex-shrink: 0;
    width: 2.75rem;
    height: 2.75rem;
    margin: 0;
    font-size: 0;
    line-height: 0;
    overflow: hidden;
    color: transparent;
    background-color: var(--accent-color);
    opacity: 0.95;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M9 16h6v-6h4l-7-7-7 7h4v6zm-4 2h14v2H5v-2z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M9 16h6v-6h4l-7-7-7 7h4v6zm-4 2h14v2H5v-2z'/%3E%3C/svg%3E");
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
}

body.gp-order-view-page .gp-order-view__line-meta .wcpp-inline-upload .wcpp-dropzone-text {
    margin: 0;
    font-weight: 500;
    color: #202020;
}

body.gp-order-view-page .gp-order-view__line-meta .wcpp-inline-upload .wcpp-dropzone-info {
    margin: 0;
}

.gp-order-view__line-price {
    font-weight: 600;
    font-size: 0.9375rem;
    color: #202020;
    text-align: right;
    white-space: nowrap;
}

.gp-order-view__purchase-note {
    margin-top: 0.65rem;
    padding-top: 0.65rem;
    border-top: 1px solid #eee;
    font-size: 0.8125rem;
    color: #555;
}

.gp-order-view__totals {
    margin: 0;
}

.gp-order-view__total-row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.4rem 0;
    font-size: 0.9375rem;
}

.gp-order-view__total-row dt {
    margin: 0;
    font-weight: 400;
    color: var(--gp-label-muted-color);
}

.gp-order-view__total-row dd {
    margin: 0;
    font-weight: 500;
    color: #202020;
    text-align: right;
}

.gp-order-view__total-row--grand {
    padding-top: 0.65rem;
    margin-top: 0.25rem;
    border-top: 2px solid #e0e0e0;
}

.gp-order-view__total-row--grand dt {
    font-weight: 500;
    font-size: 1rem;
    color: var(--gp-label-muted-color);
}

.gp-order-view__total-row--grand dd {
    font-weight: 500;
    font-size: 1rem;
    color: #202020;
}

.gp-order-view__updates {
    margin-top: 2rem;
}

.gp-order-view__updates-title {
    font-size: 1rem;
    font-weight: 600;
    margin: 0 0 0.75rem;
}

.gp-order-view__notes-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

@media (max-width: 840px) {
    .gp-order-view__grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .recent-orders-table thead {
        display: none;
    }

    .recent-orders-table__row:nth-child(odd),
    .recent-orders-table__row:nth-child(even) {
        background-color: #f7f7f7;
    }

    .recent-orders-table__row {
        display: block;
        margin-bottom: 1rem;
        border: 1px solid #eee;
        border-radius: 8px;
        overflow: hidden;
    }

    .recent-orders-table__cell {
        display: block;
        border-bottom: 1px solid #eee;
    }

    .recent-orders-table__cell:last-child {
        border-bottom: none;
    }
}
