/* ============================================================
   Moorschmied WooCommerce Design Override
   Ersetzt WooCommerce Default-Styling mit dem Moorschmied Design-System
   ============================================================ */

/* --- CSS Variables (Typomeister v2.0, Fallback fuer WooCommerce-Seiten) --- */
:root {
    --ms-red: #8B2D1A;
    --ms-red-hover: #5d1e11;
    --ms-gold: #A86330;
    --ms-gold-hover: #905229;
    --ms-gold-ondark: #f0ce91;
    --ms-dark: #1a1a1a;
    --ms-light: #f5f3ef;
    --ms-white: #fff;
    --ms-text: #2a2a2a;
    --ms-text-secondary: #444;
    --ms-text-sec: #444;
    --ms-text-light: #666;
    --ms-text-muted: #999;
    --ms-font: 'Source Sans 3', 'Arial Narrow', Arial, sans-serif;
    --ms-radius: 4px;
    --ms-border: #e0ddd8;
    --font-body: 'Source Sans 3', sans-serif;
    --font-display: 'Cormorant Garamond', Georgia, serif;
    /* Modular Scale 1.25 (Major Third) — Typomeister-Tokens, damit WooCommerce-Seiten
       nicht auf Browser-Default zurueckfallen (die globalen Tokens greifen hier nicht) */
    --step-sm: clamp(0.8rem, 0.77rem + 0.17vw, 0.89rem);
    --step-0:  clamp(1rem, 0.96rem + 0.22vw, 1.125rem);
    --step-1:  clamp(1.25rem, 1.19rem + 0.28vw, 1.41rem);
    --step-2:  clamp(1.56rem, 1.48rem + 0.42vw, 1.76rem);
    --step-3:  clamp(1.95rem, 1.84rem + 0.58vw, 2.2rem);
    --step-4:  clamp(2.44rem, 2.28rem + 0.79vw, 2.75rem);
    --step-5:  clamp(3.05rem, 2.84rem + 1.07vw, 3.43rem);
}

/* --- Global WooCommerce Reset --- */
body.woocommerce-page,
body.woocommerce {
    font-family: var(--ms-font);
    color: var(--ms-text);
    -webkit-font-smoothing: antialiased;
}

body.woocommerce-page .woocommerce,
body.woocommerce .woocommerce {
    max-width: 1100px;
    margin: 0 auto;
    padding: 30px 20px 50px;
}

/* --- Notifications / Messages --- */
body.woocommerce-page .woocommerce .woocommerce-message,
body.woocommerce-page .woocommerce .woocommerce-info,
body.woocommerce-page .woocommerce .woocommerce-error {
    font-family: var(--ms-font);
    border-top-color: var(--ms-red);
    background: var(--ms-light);
    padding: 12px 20px;
    border-radius: var(--ms-radius);
    margin-bottom: 20px;
}

body.woocommerce-page .woocommerce .woocommerce-message::before {
    color: var(--ms-red);
}

body.woocommerce-page .woocommerce .woocommerce-message a.button,
body.woocommerce-page .woocommerce .woocommerce-info a.button {
    background: var(--ms-red);
    color: #fff;
    border-radius: var(--ms-radius);
    font-family: var(--ms-font);
    font-weight: 700;
    padding: 8px 20px;
    text-decoration: none;
    border: none;
}

body.woocommerce-page .woocommerce .woocommerce-message a.button:hover {
    background: var(--ms-red-hover);
    color: #fff;
}

/* ============================================================
   PRODUKT-ARCHIV / SHOP-SEITE
   ============================================================ */
body.woocommerce-page ul.products {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 24px;
    list-style: none;
    padding: 0;
    margin: 0;
}

body.woocommerce-page ul.products li.product {
    background: #fff;
    border: 1px solid var(--ms-border);
    border-radius: var(--ms-radius);
    overflow: hidden;
    transition: border-color 0.2s, box-shadow 0.2s;
    padding: 0;
    margin: 0;
    text-align: center;
}

body.woocommerce-page ul.products li.product:hover {
    border-color: var(--ms-red);
    box-shadow: 0 4px 16px rgba(0,0,0,0.08);
}

body.woocommerce-page ul.products li.product a img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    display: block;
}

body.woocommerce-page ul.products li.product .woocommerce-loop-product__title {
    font-family: var(--ms-font);
    font-weight: 700;
    font-size: var(--step-1);
    color: var(--ms-text);
    padding: 14px 16px 4px;
    margin: 0;
}

body.woocommerce-page ul.products li.product .price {
    font-family: var(--ms-font);
    font-weight: 700;
    font-size: var(--step-2);
    color: var(--ms-red);
    padding: 4px 16px 12px;
    display: block;
}

body.woocommerce-page ul.products li.product .price .woocommerce-Price-amount {
    color: var(--ms-red);
}

body.woocommerce-page ul.products li.product .button,
body.woocommerce-page ul.products li.product a.add_to_cart_button {
    display: block;
    background: var(--ms-red);
    color: #fff;
    font-family: var(--ms-font);
    font-weight: 700;
    font-size: var(--step-sm);
    letter-spacing: .06em;
    padding: 12px 20px;
    margin: 0 16px 16px;
    border-radius: var(--ms-radius);
    text-decoration: none;
    text-align: center;
    transition: background 0.2s;
    border: none;
    cursor: pointer;
}

body.woocommerce-page ul.products li.product .button:hover,
body.woocommerce-page ul.products li.product a.add_to_cart_button:hover {
    background: var(--ms-red-hover);
    color: #fff;
    text-decoration: none;
}

/* ============================================================
   EINZELPRODUKT-SEITE
   ============================================================ */
body.woocommerce-page div.product {
    max-width: 900px;
    margin: 0 auto;
}

body.woocommerce-page div.product .product_title {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: var(--step-4);
    line-height: 1.15;
    color: var(--ms-text);
    margin-bottom: 8px;
}

body.woocommerce-page div.product p.price {
    font-family: var(--ms-font);
    font-weight: 700;
    font-size: var(--step-3);
    color: var(--ms-red);
    margin-bottom: 16px;
}

body.woocommerce-page div.product .woocommerce-product-details__short-description {
    font-family: var(--ms-font);
    font-size: var(--step-0);
    line-height: 1.65;
    color: var(--ms-text-sec);
    margin-bottom: 20px;
}

body.woocommerce-page div.product .single_add_to_cart_button {
    background: var(--ms-red);
    color: #fff;
    font-family: var(--ms-font);
    font-weight: 700;
    font-size: var(--step-0);
    letter-spacing: .06em;
    padding: 14px 36px;
    border-radius: var(--ms-radius);
    border: none;
    cursor: pointer;
    transition: background 0.2s;
}

body.woocommerce-page div.product .single_add_to_cart_button:hover {
    background: var(--ms-red-hover);
    color: #fff;
}

/* Produkt-Tabs */
body.woocommerce-page div.product .woocommerce-tabs ul.tabs {
    list-style: none;
    padding: 0;
    margin: 30px 0 0;
    display: flex;
    gap: 0;
    border-bottom: 2px solid var(--ms-border);
}

body.woocommerce-page div.product .woocommerce-tabs ul.tabs li {
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    padding: 0;
}

body.woocommerce-page div.product .woocommerce-tabs ul.tabs li a {
    font-family: var(--ms-font);
    font-weight: 700;
    font-size: var(--step-sm);
    color: var(--ms-text-sec);
    text-decoration: none;
    padding: 10px 20px;
    display: block;
}

body.woocommerce-page div.product .woocommerce-tabs ul.tabs li.active {
    border-bottom-color: var(--ms-red);
}

body.woocommerce-page div.product .woocommerce-tabs ul.tabs li.active a {
    color: var(--ms-red);
}

body.woocommerce-page div.product .woocommerce-tabs .panel {
    font-family: var(--ms-font);
    padding: 20px 0;
    line-height: 1.65;
}

/* Produktbild */
body.woocommerce-page div.product div.images {
    border-radius: var(--ms-radius);
    overflow: hidden;
}

/* ============================================================
   WARENKORB
   ============================================================ */
/* Seitentitel aller WC-Seiten in Cormorant (Checkout hat eigene Regel) */
body.woocommerce-page h1.entry-title,
body.woocommerce-page .entry-header h1 {
    font-family: var(--font-display);
    font-weight: 600;
    letter-spacing: .01em;
}

body.woocommerce-cart .woocommerce table.shop_table {
    font-family: var(--ms-font);
    border: 1px solid var(--ms-border);
    border-radius: var(--ms-radius);
    border-collapse: collapse;
    width: 100%;
}

body.woocommerce-cart .woocommerce table.shop_table th {
    font-family: var(--ms-font);
    font-weight: 700;
    font-size: var(--step-sm);
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--ms-text-sec);
    padding: 12px 16px;
    background: var(--ms-light);
    border-bottom: 1px solid var(--ms-border);
}

body.woocommerce-cart .woocommerce table.shop_table td {
    font-family: var(--ms-font);
    padding: 16px;
    border-bottom: 1px solid var(--ms-border);
    vertical-align: middle;
}

body.woocommerce-cart .woocommerce table.shop_table td.product-name a {
    color: var(--ms-text);
    font-weight: 700;
    text-decoration: none;
}

body.woocommerce-cart .woocommerce table.shop_table td.product-name a:hover {
    color: var(--ms-red);
}

body.woocommerce-cart .woocommerce table.shop_table td.product-price,
body.woocommerce-cart .woocommerce table.shop_table td.product-subtotal {
    font-weight: 700;
    color: var(--ms-text);
}

body.woocommerce-cart .woocommerce .cart_totals {
    font-family: var(--ms-font);
}

body.woocommerce-cart .woocommerce .cart_totals h2 {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: var(--step-2);
    letter-spacing: .01em;
    margin-bottom: 12px;
}

body.woocommerce-cart .woocommerce .cart_totals table {
    border: 1px solid var(--ms-border);
    border-top: 2px solid var(--ms-gold);
    border-radius: var(--ms-radius);
    background: var(--ms-light);
}

/* Produktbild in der Cart-Tabelle: warm gerundet statt Briefmarke */
body.woocommerce-cart .woocommerce table.shop_table td.product-thumbnail img {
    width: 84px;
    height: 84px;
    object-fit: cover;
    border-radius: 6px;
    box-shadow: 0 3px 12px rgba(0,0,0,.10);
}

body.woocommerce-cart .woocommerce .cart_totals table td,
body.woocommerce-cart .woocommerce .cart_totals table th {
    font-family: var(--ms-font);
    padding: 12px 16px;
}

body.woocommerce-cart .woocommerce .wc-proceed-to-checkout a.checkout-button {
    display: block;
    background: var(--ms-red);
    color: #fff;
    font-family: var(--ms-font);
    font-weight: 700;
    font-size: var(--step-0);
    letter-spacing: .06em;
    padding: 14px 28px;
    border-radius: var(--ms-radius);
    text-decoration: none;
    text-align: center;
    transition: background 0.2s;
    border: none;
}

body.woocommerce-cart .woocommerce .wc-proceed-to-checkout a.checkout-button:hover {
    background: var(--ms-red-hover);
    color: #fff;
}

/* ============================================================
   KASSE / CHECKOUT
   ============================================================ */
body.woocommerce-checkout .woocommerce {
    font-family: var(--ms-font);
}

/* S3b "Stille Kasse": Theme-Titel "Kasse" entfaellt komplett -- die Schrittkette
   ist das ruhige Kopfelement (Edelmarken-Muster, Hermes: kein "Kasse"/"Checkout").
   Gilt via body-Klasse auch fuer die Danke-Seite (dort traegt der Hero den H1). */
body.woocommerce-checkout .page-header,
body.woocommerce-checkout h1.entry-title {
    display: none;
}

body.woocommerce-checkout .woocommerce h3 {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: var(--step-2);
    letter-spacing: .01em;
    margin-bottom: 16px;
}

body.woocommerce-checkout .woocommerce form .form-row label {
    font-family: var(--ms-font);
    font-weight: 500;
    font-size: var(--step-sm);
    color: var(--ms-text);
}

body.woocommerce-checkout .woocommerce form .form-row input.input-text,
body.woocommerce-checkout .woocommerce form .form-row textarea,
body.woocommerce-checkout .woocommerce form .form-row select,
body.woocommerce-checkout .woocommerce .select2-container .select2-selection--single {
    font-family: var(--ms-font);
    border: 1px solid #d8d4cc;
    border-radius: var(--ms-radius);
    padding: 11px 14px;
    font-size: var(--step-0);
    line-height: 1.5;
    width: 100%;
    box-sizing: border-box;
    background: #fff;
    color: var(--ms-text);
    transition: border-color 0.2s, box-shadow 0.2s;
}

body.woocommerce-checkout .woocommerce form .form-row input.input-text:focus,
body.woocommerce-checkout .woocommerce form .form-row textarea:focus {
    border-color: var(--ms-red);
    outline: none;
    box-shadow: 0 0 0 2px rgba(139, 45, 26, 0.15);
}

/* S3b-It.3: select2 (Land/Region) an unsere Feld-Hoehe anpassen -- die
   select2-Defaults (feste 28px-Hoehe + line-height) liessen "Deutschland"
   unter die Feldlinie rutschen (Wieland-Monitum 2026-07-04) */
body.woocommerce-checkout .woocommerce .select2-container .select2-selection--single {
    height: auto;
}

body.woocommerce-checkout .woocommerce .select2-container .select2-selection--single .select2-selection__rendered {
    line-height: 1.5;
    padding: 0;
    color: var(--ms-text);
}

body.woocommerce-checkout .woocommerce .select2-container .select2-selection--single .select2-selection__arrow {
    height: 100%;
    top: 0;
    right: 8px;
}

/* --- Schritt-Indikator (Warenkorb -> Kasse -> Bestaetigung) --- */
.ms-checkout-steps {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    font-family: var(--ms-font);
    font-size: var(--step-sm);
    font-weight: 700;
    letter-spacing: .04em;
    color: var(--ms-text-muted);
    /* S3b: ohne H1 ist die Kette das Kopfelement -- mehr Luft */
    margin: 20px 0 36px;
    text-transform: uppercase;
}

/* S3b: Coupon-Hinweis als stille Zeile statt grauer Alert-Box */
body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
    background: none;
    border: none;
    border-radius: 0;
    padding: 0;
    margin: 0 0 32px;
    text-align: center;
    font-size: var(--step-sm);
    color: var(--ms-text-light);
}

/* Aufgeklapptes Aktionscode-Formular: kleine Creme-Karte statt Default */
body.woocommerce-checkout form.checkout_coupon {
    max-width: 420px;
    margin: 0 auto 32px;
    padding: 16px;
    background: var(--ms-light);
    border: none;
    border-radius: var(--ms-radius);
}

body.woocommerce-checkout form.checkout_coupon .input-text {
    font-family: var(--ms-font);
    border: 1px solid #d8d4cc;
    border-radius: var(--ms-radius);
    padding: 9px 12px;
    font-size: var(--step-sm);
    width: 100%;
    box-sizing: border-box;
}

.ms-checkout-steps .ms-step {
    padding-bottom: 6px;
    border-bottom: 2px solid transparent;
}

.ms-checkout-steps .ms-step.ms-step-active {
    color: var(--ms-dark);
    border-bottom-color: var(--ms-gold);
}

.ms-checkout-steps .ms-step-sep {
    color: var(--ms-border);
}

/* --- Zweispaltiges Layout: Formular links, Bestellung rechts sticky --- */
@media (min-width: 901px) {
    body.woocommerce-checkout form.checkout {
        display: grid;
        grid-template-columns: 1fr 400px;
        /* S3b: Zeile 1 strikt auf Heading-Hoehe -- der 2-Zeilen-Span von
           #customer_details blaehte sonst Zeile 1 auf (tote Luecke zwischen
           "Zahlungsweise" und der Karte) */
        grid-template-rows: auto 1fr;
        gap: 0 56px;
        align-items: start;
    }

    body.woocommerce-checkout form.checkout > #customer_details {
        grid-column: 1;
        grid-row: 1 / span 2;
    }

    body.woocommerce-checkout form.checkout > h3#order_review_heading {
        grid-column: 2;
        grid-row: 1;
    }

    body.woocommerce-checkout form.checkout > #order_review {
        grid-column: 2;
        grid-row: 2;
        position: sticky;
        top: 24px;
    }
}

/* --- "Deine Bestellung" als warme Karte (Creme + Gold-Linie) --- */
body.woocommerce-checkout form.checkout > #order_review {
    background: var(--ms-light);
    border-top: 2px solid var(--ms-gold);
    border-radius: var(--ms-radius);
    padding: 24px;
}

@media (max-width: 900px) {
    body.woocommerce-checkout form.checkout > #order_review {
        padding: 16px;
    }
}

/* PayPal Pay-Later-/Raten-Banner (SDK-zoid-iframe) auf dem ganzen
   Kauf-Pfad ausblenden — Quelle: div.ppcp-messages, rendert trotz
   deaktiviertem PPCP-Messaging (Befund 2026-07-03) */
.ppcp-messages {
    display: none !important;
}

/* #payment liegt jetzt IN der Creme-Karte (#order_review) — nur noch
   dezente Trennung statt eigener Karten-Optik */
body.woocommerce-checkout .woocommerce #payment {
    background: transparent;
    border-radius: 0;
    border-top: 1px solid var(--ms-border);
    padding: 20px 0 0;
    margin-top: 20px;
}

/* S3b: GM rendert #payment als ERSTES sichtbares Kind der Karte (davor nur der
   unsichtbare .ppcp-messages-Div) -- die Trennlinie oben erzeugte eine tote
   Leerzone am Kartenkopf. Trennung gehoert stattdessen VOR "Deine Bestellung". */
body.woocommerce-checkout .woocommerce #order_review > #payment {
    border-top: none;
    padding-top: 0;
    margin-top: 0;
}

body.woocommerce-checkout .woocommerce #order_review h3#order_review_heading {
    font-size: var(--step-1);
    border-top: 1px solid var(--ms-border);
    padding-top: 20px;
    margin: 8px 0 12px;
}

body.woocommerce-checkout .woocommerce #payment ul.payment_methods {
    list-style: none;
    padding: 0;
    margin: 0 0 16px;
    /* S3b: keine eigene Bodenlinie -- die Trust-Zeile darunter bringt ihre
       Trennlinie mit (sonst Doppel-Linie) */
    border-bottom: none;
}

body.woocommerce-checkout .woocommerce #payment ul.payment_methods li {
    padding: 12px 0;
    border-bottom: 1px solid var(--ms-border);
    font-family: var(--ms-font);
}

body.woocommerce-checkout .woocommerce #payment ul.payment_methods li:last-child {
    border-bottom: none;
}

body.woocommerce-checkout .woocommerce #payment ul.payment_methods li label {
    font-family: var(--ms-font);
    font-weight: 700;
    cursor: pointer;
}

body.woocommerce-checkout .woocommerce #payment div.payment_box {
    font-family: var(--ms-font);
    font-size: var(--step-sm);
    color: var(--ms-text-sec);
    padding: 8px 0;
    background: none;
}

/* --- Trust-Zeile vor dem Bestellbutton --- */
.ms-checkout-trust {
    font-family: var(--ms-font);
    font-size: var(--step-sm);
    color: var(--ms-text-sec);
    border-top: 1px solid var(--ms-border);
    margin-top: 16px;
    padding-top: 16px;
    line-height: 1.6;
}

.ms-checkout-trust p {
    margin: 0 0 6px;
}

.ms-checkout-trust p:last-child {
    margin-bottom: 0;
}

.ms-checkout-trust a {
    color: var(--ms-red);
    font-weight: 700;
    text-decoration: none;
    /* S3b-It.3: Telefonnummer nie mitten in der Nummer umbrechen */
    white-space: nowrap;
}

.ms-checkout-trust a:hover {
    text-decoration: underline;
}

body.woocommerce-checkout .woocommerce #place_order {
    background: var(--ms-red);
    color: #fff;
    font-family: var(--ms-font);
    font-weight: 700;
    font-size: var(--step-0);
    letter-spacing: .06em;
    padding: 14px 36px;
    border-radius: var(--ms-radius);
    border: none;
    cursor: pointer;
    transition: background 0.2s;
    width: 100%;
    margin-top: 16px;
}

body.woocommerce-checkout .woocommerce #place_order:hover {
    background: var(--ms-red-hover);
    color: #fff;
}

/* German Market Checkboxen */
body.woocommerce-checkout .woocommerce .wgm-checkbox-wrapper,
body.woocommerce-checkout .woocommerce .wc-terms-and-conditions {
    font-family: var(--ms-font);
    font-size: var(--step-sm);
    color: var(--ms-text-sec);
    margin: 12px 0;
}

body.woocommerce-checkout .woocommerce .wgm-checkbox-wrapper a,
body.woocommerce-checkout .woocommerce .wc-terms-and-conditions a {
    color: var(--ms-red);
    text-decoration: none;
}

body.woocommerce-checkout .woocommerce .wgm-checkbox-wrapper a:hover,
body.woocommerce-checkout .woocommerce .wc-terms-and-conditions a:hover {
    text-decoration: underline;
}

/* --- Bestell-Tabelle auf Checkout (S3b: edel & still) ---
   Keine weisse Rahmen-Tabelle in der Creme-Karte, kein "Produkt/Zwischensumme"-
   Header (Edelmarken zeigen keine Tabellenkoepfe) -- Haarlinien-Zeilen,
   Gold-Linie vor der Gesamtsumme. */
body.woocommerce-checkout .woocommerce table.shop_table {
    font-family: var(--ms-font);
    border: none;
    border-collapse: collapse;
    background: transparent;
    width: 100%;
}

body.woocommerce-checkout .woocommerce table.shop_table thead {
    display: none;
}

/* S3b-Iteration 2: fremde Regeln (GM/WC) legen der Artikel-Zeile einen grauen
   Kasten + vertikale Spalten-Trenner an -- alles auf still ziehen */
body.woocommerce-checkout .woocommerce table.shop_table tr,
body.woocommerce-checkout .woocommerce table.shop_table th,
body.woocommerce-checkout .woocommerce table.shop_table td {
    background: transparent !important;
    border-left: none !important;
    border-right: none !important;
}

body.woocommerce-checkout .woocommerce table.shop_table th,
body.woocommerce-checkout .woocommerce table.shop_table td {
    font-family: var(--ms-font);
    padding: 12px 0;
    border-bottom: 1px solid var(--ms-border);
    vertical-align: top;
}

body.woocommerce-checkout .woocommerce table.shop_table td.product-total,
body.woocommerce-checkout .woocommerce table.shop_table tfoot td {
    text-align: right;
}

body.woocommerce-checkout .woocommerce table.shop_table .woocommerce-Price-amount {
    white-space: nowrap;
}

body.woocommerce-checkout .woocommerce table.shop_table td.product-name {
    font-family: var(--font-display);
    font-size: var(--step-0);
    font-weight: 600;
    line-height: 1.35;
    padding-right: 12px;
}

/* S3b-It.3: Produktname bekommt festen Spaltenanteil, damit mehrere
   Kurs-Gutscheine ruhig umbrechen (Wieland-Monitum 2026-07-04) */
body.woocommerce-checkout .woocommerce table.shop_table td.product-name {
    width: 62%;
}

/* S3b-It.3: Artikel-Meta (dl.variation, z.B. "Gutschein-Betrag: 50 €") als EINE
   kleine ruhige Sans-Zeile statt grossem Serif-Block */
body.woocommerce-checkout .woocommerce table.shop_table td.product-name dl.variation {
    display: flex;
    flex-wrap: wrap;
    gap: 0 5px;
    margin: 2px 0 0;
    font-family: var(--ms-font);
    font-size: var(--step-sm);
    font-weight: 400;
    color: var(--ms-text-light);
}

body.woocommerce-checkout .woocommerce table.shop_table td.product-name dl.variation dt,
body.woocommerce-checkout .woocommerce table.shop_table td.product-name dl.variation dd {
    margin: 0;
    font-weight: 400;
}

body.woocommerce-checkout .woocommerce table.shop_table td.product-name dl.variation dd p {
    margin: 0;
    display: inline;
    font-family: inherit;
    font-size: inherit;
}

/* Menge "x 2" als eigene ruhige Zeile unter dem Produktnamen */
body.woocommerce-checkout .woocommerce table.shop_table td.product-name .product-quantity {
    display: block;
    font-family: var(--ms-font);
    font-weight: 400;
    font-size: var(--step-sm);
    color: var(--ms-text-light);
    letter-spacing: .02em;
    margin-top: 3px;
}

/* MwSt.-Hinweis klein und ruhig, kein einsames "(19%)" in der letzten Zeile:
   inline-block + text-wrap:balance bricht zu zwei ausgewogenen Zeilen
   ("Enthaelt 312,94 €" / "MwSt. (19%)") statt "(19%)" allein */
body.woocommerce-checkout .woocommerce table.shop_table .wgm-tax {
    display: inline-block;
    max-width: 100%;
    font-size: 0.75rem;
    font-weight: 400;
    color: var(--ms-text-muted);
    line-height: 1.4;
    text-wrap: balance;
}

body.woocommerce-checkout .woocommerce table.shop_table tfoot th {
    font-weight: 500;
    color: var(--ms-text-sec);
    text-align: left;
}

body.woocommerce-checkout .woocommerce table.shop_table tr.cart-subtotal th,
body.woocommerce-checkout .woocommerce table.shop_table tr.cart-subtotal td {
    border-bottom: none;
    padding-bottom: 6px;
}

body.woocommerce-checkout .woocommerce table.shop_table tr.order-total th,
body.woocommerce-checkout .woocommerce table.shop_table tr.order-total td {
    border-top: 2px solid var(--ms-gold);
    border-bottom: none;
    padding-top: 14px;
}

body.woocommerce-checkout .woocommerce table.shop_table tr.order-total td > strong .woocommerce-Price-amount {
    font-size: var(--step-1);
}

/* ============================================================
   MEIN KONTO
   ============================================================ */
body.woocommerce-account .woocommerce {
    font-family: var(--ms-font);
}

body.woocommerce-account .woocommerce .woocommerce-MyAccount-navigation ul {
    list-style: none;
    padding: 0;
    margin: 0 0 20px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

body.woocommerce-account .woocommerce .woocommerce-MyAccount-navigation ul li a {
    font-family: var(--ms-font);
    font-weight: 500;
    font-size: var(--step-sm);
    color: var(--ms-text-sec);
    text-decoration: none;
    padding: 8px 16px;
    border: 1px solid var(--ms-border);
    border-radius: var(--ms-radius);
    display: block;
    transition: all 0.2s;
}

body.woocommerce-account .woocommerce .woocommerce-MyAccount-navigation ul li.is-active a {
    background: var(--ms-red);
    color: #fff;
    border-color: var(--ms-red);
}

body.woocommerce-account .woocommerce .woocommerce-MyAccount-navigation ul li a:hover {
    border-color: var(--ms-red);
    color: var(--ms-red);
}

/* ============================================================
   BESTELLBESTAETIGUNG / DANKE-SEITE
   ============================================================ */
body.woocommerce-order-received .woocommerce {
    font-family: var(--ms-font);
}

/* Default-Seitentitel "Bestellung erhalten" ausblenden -- die eigene
   dunkle Hero-Sektion (ms-thankyou-hero) uebernimmt die Ueberschrift. */
body.woocommerce-order-received h1.entry-title {
    display: none;
}

/* --- Dunkle Hero-Sektion im Startseiten-Rhythmus (vgl. "Schmiede dein Messer!") --- */
.ms-thankyou-hero {
    background: var(--ms-dark);
    color: var(--ms-light);
    text-align: center;
    padding: 56px 24px;
    margin: 0 0 40px;
}

.ms-thankyou-hero h1 {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: var(--step-5);
    color: var(--ms-light);
    margin: 0 0 16px;
    letter-spacing: .01em;
}

.ms-thankyou-hero p {
    font-family: var(--font-display);
    font-style: italic;
    font-size: var(--step-1);
    color: #d8d4cc;
    max-width: 640px;
    margin: 0 auto;
    line-height: 1.5;
}

/* S5: Default-Notice ist gestrippt (PHP-Hook #18); order-received.php druckt den
   <p> auch mit leerem Text -- hier ausblenden (Doppelung zum Hero). */
body.woocommerce-order-received .woocommerce .woocommerce-thankyou-order-received {
    display: none;
}

/* --- S5: Bestell-Uebersicht als Markenkarte ---
   Label klein und gesperrt, Wert in Cormorant -- statt grauer Systemliste.
   Labels kommen ohne Doppelpunkt (PHP-Hook #19). */
body.woocommerce-order-received .woocommerce ul.woocommerce-order-overview {
    list-style: none;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 20px 28px;
    margin: 0 0 40px;
    padding: 26px 32px;
    background: var(--ms-white);
    border: 1px solid var(--ms-border);
    border-top: 2px solid var(--ms-gold);
    border-radius: var(--ms-radius);
    font-family: var(--ms-font);
}

body.woocommerce-order-received .woocommerce ul.woocommerce-order-overview li {
    padding: 0;
    border: none;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--ms-text-muted);
}

body.woocommerce-order-received .woocommerce ul.woocommerce-order-overview li strong {
    display: block;
    margin-top: 4px;
    font-family: var(--font-display);
    font-size: var(--step-1);
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
    color: var(--ms-text);
}

/* --- Bank-Details (BACS) als warme Karte, an die Markenkarte angeglichen --- */
body.woocommerce-order-received .woocommerce ul.wc-bacs-bank-details {
    list-style: none;
    margin: 0 0 24px;
    padding: 20px 24px;
    background: var(--ms-white);
    border: 1px solid var(--ms-border);
    border-top: 2px solid var(--ms-gold);
    border-radius: var(--ms-radius);
    font-family: var(--ms-font);
}

body.woocommerce-order-received .woocommerce ul.wc-bacs-bank-details li {
    padding: 6px 0;
    border: none;
}

body.woocommerce-order-received .woocommerce h2,
body.woocommerce-order-received .woocommerce h3.wc-bacs-bank-details-account-name {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: var(--step-2);
    letter-spacing: .01em;
    margin: 32px 0 12px;
}

/* --- S5: Bestelltabelle edel & still (S3b-Kassenmuster uebertragen) ---
   Kein "Produkt/Gesamt"-Header, Haarlinien-Zeilen, Gold-Linie vor der
   Gesamtsumme, MwSt.-Hinweise klein und ruhig. */
body.woocommerce-order-received .woocommerce table.shop_table {
    font-family: var(--ms-font);
    border: none;
    border-collapse: collapse;
    background: transparent;
    width: 100%;
}

body.woocommerce-order-received .woocommerce table.shop_table thead {
    display: none;
}

body.woocommerce-order-received .woocommerce table.shop_table tr,
body.woocommerce-order-received .woocommerce table.shop_table th,
body.woocommerce-order-received .woocommerce table.shop_table td {
    background: transparent !important;
    border-left: none !important;
    border-right: none !important;
}

body.woocommerce-order-received .woocommerce table.shop_table th,
body.woocommerce-order-received .woocommerce table.shop_table td {
    font-family: var(--ms-font);
    padding: 12px 0;
    border-bottom: 1px solid var(--ms-border);
    vertical-align: top;
}

body.woocommerce-order-received .woocommerce table.shop_table td.product-total,
body.woocommerce-order-received .woocommerce table.shop_table tfoot td {
    text-align: right;
}

body.woocommerce-order-received .woocommerce table.shop_table .woocommerce-Price-amount {
    white-space: nowrap;
}

body.woocommerce-order-received .woocommerce table.shop_table td.product-name {
    font-family: var(--font-display);
    font-size: var(--step-0);
    font-weight: 600;
    line-height: 1.35;
    padding-right: 12px;
    width: 62%;
}

/* Artikel-Meta ("Gutschein-Betrag: 50,00 €") als EINE kleine ruhige Sans-Zeile */
body.woocommerce-order-received .woocommerce table.shop_table td.product-name ul.wc-item-meta {
    list-style: none;
    margin: 2px 0 0;
    padding: 0;
    font-family: var(--ms-font);
    font-size: var(--step-sm);
    font-weight: 400;
    color: var(--ms-text-light);
}

body.woocommerce-order-received .woocommerce table.shop_table td.product-name ul.wc-item-meta li {
    display: flex;
    flex-wrap: wrap;
    gap: 0 5px;
    margin: 0;
    padding: 0;
    border: none;
}

body.woocommerce-order-received .woocommerce table.shop_table td.product-name ul.wc-item-meta li strong {
    font-weight: 400;
}

body.woocommerce-order-received .woocommerce table.shop_table td.product-name ul.wc-item-meta li p {
    margin: 0;
    display: inline;
    font-family: inherit;
    font-size: inherit;
}

/* Menge ("x 2") als ruhige eigene Zeile; "x 1" entfaellt ganz (PHP-Hook #20) */
body.woocommerce-order-received .woocommerce table.shop_table td.product-name .product-quantity {
    display: block;
    font-family: var(--ms-font);
    font-weight: 400;
    font-size: var(--step-sm);
    color: var(--ms-text-light);
    letter-spacing: .02em;
    margin-top: 3px;
}

/* GM-MwSt.-Hinweis der Artikelzeile: klein UNTER den Preis statt mittig schwebend */
body.woocommerce-order-received .woocommerce table.shop_table td.product-total .product-tax {
    display: block;
    font-size: 0.75rem;
    font-weight: 400;
    color: var(--ms-text-muted);
    line-height: 1.4;
    margin-top: 2px;
    text-wrap: balance;
}

body.woocommerce-order-received .woocommerce table.shop_table tfoot th {
    font-weight: 500;
    color: var(--ms-text-sec);
    text-align: left;
}

/* Gold-Linie + grosser Betrag auf der Gesamt-Zeile (GM haengt .wgm-tax nur dort an) */
body.woocommerce-order-received .woocommerce table.shop_table tfoot tr:has(.wgm-tax) th,
body.woocommerce-order-received .woocommerce table.shop_table tfoot tr:has(.wgm-tax) td {
    border-top: 2px solid var(--ms-gold);
    padding-top: 14px;
}

body.woocommerce-order-received .woocommerce table.shop_table tfoot tr:has(.wgm-tax) td > .woocommerce-Price-amount,
body.woocommerce-order-received .woocommerce table.shop_table tfoot tr:has(.wgm-tax) td ins .woocommerce-Price-amount {
    font-size: var(--step-1);
    font-weight: 700;
}

body.woocommerce-order-received .woocommerce table.shop_table tfoot td ins {
    text-decoration: none;
}

body.woocommerce-order-received .woocommerce table.shop_table tfoot tr:last-child th,
body.woocommerce-order-received .woocommerce table.shop_table tfoot tr:last-child td {
    border-bottom: none;
}

body.woocommerce-order-received .woocommerce table.shop_table .wgm-tax {
    display: inline-block;
    max-width: 100%;
    font-size: 0.75rem;
    font-weight: 400;
    color: var(--ms-text-muted);
    line-height: 1.4;
    text-wrap: balance;
}

/* --- S5: Rechnungsadresse ruhig (nicht kursiv), Kundeneingaben kapitalisiert ---
   ("wieland schroeppe" -> "Wieland Schroeppe"); die E-Mail-Zeile bleibt klein. */
body.woocommerce-order-received .woocommerce-customer-details address {
    font-style: normal;
    font-family: var(--ms-font);
    line-height: 1.7;
    text-transform: capitalize;
    padding: 0;
    border: none;
}

body.woocommerce-order-received .woocommerce-customer-details--email {
    text-transform: lowercase;
    margin: 6px 0 0;
}

/* --- Kontakt-/Trust-Block am Seitenende --- */
.ms-thankyou-contact {
    font-family: var(--ms-font);
    font-size: var(--step-sm);
    color: var(--ms-text-sec);
    text-align: center;
    border-top: 1px solid var(--ms-border);
    margin-top: 32px;
    padding-top: 20px;
}

.ms-thankyou-contact a {
    color: var(--ms-red);
    font-weight: 700;
    text-decoration: none;
}

.ms-thankyou-contact a:hover {
    text-decoration: underline;
}

/* --- Mobile: Chat-/WhatsApp-Button ueber dem Checkout-Formular anheben ---
   Theme/mu-plugin heben #cb-toggle/#ms-wa-btn bereits auf Kursseiten an
   (body:has(.kurs-sticky-bar)), aber nicht auf /kasse/ -- dort ueberlappten sie
   bislang das PLZ-/E-Mail-Feld beim Scrollen. Gleicher Offset (100px), gleiches Muster. */
@media (max-width: 767px) {
    body.woocommerce-checkout #cb-toggle,
    body.woocommerce-checkout #ms-wa-btn {
        bottom: 100px !important;
    }
}

/* --- S5: Chat-/WhatsApp-Bubbles auf der Danke-Seite aus ---
   Die fixen Buttons ueberdeckten mobil die Summenzeilen (Wieland-Monitum
   2026-07-04); Anheben loest das bei fixed-Buttons nicht. Der Kontakt-Block
   am Seitenende (#14) bietet dieselben Kanaele. */
body.woocommerce-order-received #cb-toggle,
body.woocommerce-order-received #ms-wa-btn {
    display: none !important;
}

/* ============================================================
   ALLGEMEINE LINKS
   ============================================================ */
body.woocommerce-page .woocommerce a {
    color: var(--ms-red);
    text-decoration: none;
}

body.woocommerce-page .woocommerce a:hover {
    color: var(--ms-red-hover);
    text-decoration: underline;
}

body.woocommerce-page .woocommerce a:visited {
    color: var(--ms-red);
}

/* Buttons/Links nie unterstreichen — härtet gegen fremde a:link-Regeln
   in der LiteSpeed-Combine (gleiche Falle wie auf /gutschein/, 2026-07-03) */
body.woocommerce-page .woocommerce a.button,
body.woocommerce-page .woocommerce a.button:link,
body.woocommerce-page .woocommerce a.button:visited,
body.woocommerce-page .woocommerce a.checkout-button,
body.woocommerce-page .woocommerce a.checkout-button:link,
body.woocommerce-page .woocommerce a.checkout-button:visited,
body.woocommerce-page .woocommerce td.product-name a:link,
body.woocommerce-page .woocommerce td.product-name a:visited {
    text-decoration: none;
}

/* Alle generischen WC Buttons */
body.woocommerce-page .woocommerce .button,
body.woocommerce-page .woocommerce button.button {
    background: var(--ms-red);
    color: #fff;
    font-family: var(--ms-font);
    font-weight: 700;
    font-size: var(--step-sm);
    letter-spacing: .06em;
    padding: 10px 24px;
    border-radius: var(--ms-radius);
    border: none;
    cursor: pointer;
    transition: background 0.2s;
    text-decoration: none;
}

body.woocommerce-page .woocommerce .button:hover,
body.woocommerce-page .woocommerce button.button:hover {
    background: var(--ms-red-hover);
    color: #fff;
    text-decoration: none;
}

/* Coupon-Feld im Warenkorb */
body.woocommerce-page .woocommerce .coupon .input-text {
    font-family: var(--ms-font);
    border: 1px solid var(--ms-border);
    border-radius: 3px;
    padding: 8px 12px;
    font-size: var(--step-sm);
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 767px) {
    body.woocommerce-page .woocommerce {
        padding: 20px 15px 40px;
    }

    body.woocommerce-page .woocommerce ul.products {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    body.woocommerce-page .woocommerce div.product .product_title {
        font-size: var(--step-2);
    }

    body.woocommerce-page .woocommerce div.product p.price {
        font-size: var(--step-2);
    }

    body.woocommerce-cart .woocommerce table.shop_table {
        font-size: var(--step-sm);
    }

    body.woocommerce-cart .woocommerce table.shop_table td {
        padding: 10px 8px;
    }

    body.woocommerce-cart .woocommerce table.shop_table img {
        width: 50px;
        height: auto;
    }

    body.woocommerce-checkout .woocommerce #payment {
        padding: 14px;
    }

    body.woocommerce-account .woocommerce .woocommerce-MyAccount-navigation ul {
        flex-direction: column;
    }
}

@media (max-width: 480px) {
    body.woocommerce-page .woocommerce div.product .product_title {
        font-size: var(--step-2);
    }

    /* S3b: Schrittkette "Warenkorb -> Lieferung & Zahlung -> Bestaetigung"
       muss auf 390px einzeilig bleiben */
    .ms-checkout-steps {
        font-size: 0.7rem;
        gap: 8px;
        letter-spacing: .03em;
    }
}

/* ============================================================
   MwSt.-Hinweis unter Preisen
   ============================================================ */
body.woocommerce-page .woocommerce .woocommerce-Price-taxLabel,
body.woocommerce-page .woocommerce .price .tax_label,
body.woocommerce-page .woocommerce .wgm-info {
    font-family: var(--ms-font);
    font-size: var(--step-sm);
    color: var(--ms-text-muted);
    font-weight: 400;
}

/* ============================================================
   Geschenkkarten-Feld (pw-woocommerce-gift-cards) ausblenden
   0 Nutzung seit Live-Start (DB-Tabellen leer) -- verwirrt nur,
   Plugin selbst bleibt aktiv (WC-Chain-Abhaengigkeit).
   ============================================================ */
#pwgc-redeem-gift-card-form {
    display: none !important;
}

/* === W3 DESIGN-HARMONIE 2026-07-04 (Overrides fuer Nicht-#kp-Seiten, w3/mapping_w3.md #8/#18) === */
.elementor-9046 .elementor-element-101f1624 .elementor-button[type="submit"],
.elementor-9046 .elementor-element-101f1624 .e-form__buttons__wrapper__button-next,
.elementor-9113 .elementor-element-5c976eef .elementor-button[type="submit"],
.elementor-9113 .elementor-element-5c976eef .e-form__buttons__wrapper__button-next{background-color:var(--ms-gold,#A86330)!important;color:#fff!important}
.elementor-9046 .elementor-element-101f1624 .elementor-button[type="submit"]:hover,
.elementor-9046 .elementor-element-101f1624 .e-form__buttons__wrapper__button-next:hover,
.elementor-9113 .elementor-element-5c976eef .elementor-button[type="submit"]:hover,
.elementor-9113 .elementor-element-5c976eef .e-form__buttons__wrapper__button-next:hover{background-color:var(--ms-gold-hover,#905229)!important;color:#fff!important}
.elementor-9046 .elementor-element-101f1624 .e-form__buttons__wrapper__button-previous:hover,
.elementor-9113 .elementor-element-5c976eef .e-form__buttons__wrapper__button-previous:hover{color:var(--ms-red,#8B2D1A)!important}
label[for="form-field-datenschutz"] a{color:var(--ms-red,#8B2D1A)!important}
