/* ==========================================================================
   RSM Funnel: Warenkorb, Versandauswahl, Kasse, Danke-Seite
   Mobile-first. Keine Emojis, keine farbigen Icons, ruhige Markenfarben.
   ========================================================================== */

:root {
    --rsm-brown: #5C462B;
    --rsm-brown-dark: #46351F;
    --rsm-cream: #f6f1ea;
    --rsm-line: #d9d2c8;
    --rsm-text: #2b2b2b;
    --rsm-muted: #6b6258;
    --rsm-field: #8f8476;
}

/* ---------- Warenkorb-Schublade (auf allen Shop-Seiten) ---------- */
/* Geschlossene Schublade darf keinen Schatten in den sichtbaren Bereich werfen */
.rsm-cart-drawer:not(.is-open) {
    visibility: hidden;
    box-shadow: none !important;
    pointer-events: none;
}
.rsm-cart-drawer { transition: transform .33s cubic-bezier(.4,0,.2,1), visibility 0s linear .33s; }
.rsm-cart-drawer.is-open { visibility: visible; transition: transform .33s cubic-bezier(.4,0,.2,1), visibility 0s; }
.rsm-cart-drawer__close {
    min-width: 48px; min-height: 48px; font-size: 32px !important; line-height: 1;
    display: inline-flex; align-items: center; justify-content: center;
}
.rsm-cart-drawer a.remove {
    width: 44px !important; height: 44px !important; line-height: 44px !important;
    top: 6px !important; right: -8px !important; font-size: 24px !important;
    color: var(--rsm-brown) !important; background: transparent !important;
    display: flex !important; align-items: center; justify-content: center;
}
.rsm-cart-drawer .woocommerce-mini-cart-item { padding-right: 40px !important; }
.rsm-cart-drawer .woocommerce-mini-cart__buttons a.button { min-height: 52px; display: flex !important; align-items: center; justify-content: center; }

/* ---------- Gemeinsame Basis in der Bestellstrecke ---------- */
.rsm-funnel #content,
.rsm-funnel .woocommerce,
.rsm-funnel .rsm-shipping-selector {
    box-sizing: border-box;
}
.rsm-funnel .woocommerce,
.rsm-funnel .rsm-shipping-selector.woocommerce {
    padding-left: 16px;
    padding-right: 16px;
}
@media (min-width: 1000px) {
    .rsm-funnel .woocommerce,
    .rsm-funnel .rsm-shipping-selector.woocommerce { padding-left: 24px; padding-right: 24px; }
}
.rsm-funnel,
.rsm-funnel input,
.rsm-funnel select,
.rsm-funnel textarea,
.rsm-funnel button {
    font-family: "Roboto Condensed", Helvetica, Arial, sans-serif;
}

/* Footer-Karte lenkt in der Bestellstrecke nur ab */
.rsm-funnel .rbh-map-container,
.rsm-funnel .elementor-element-43bb302,
.rsm-funnel .elementor-element-a128794 { display: none !important; }

/* Hinweise im Seitenfluss, nicht schwebend */
.rsm-funnel .woocommerce-message,
.rsm-funnel .woocommerce-info,
.rsm-funnel .woocommerce-error,
.rsm-funnel .woocommerce-notice,
.rsm-funnel-page .woocommerce-error {
    position: static !important;
    transform: none !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 0 16px 0 !important;
    padding: 14px 16px !important;
    background: var(--rsm-cream) !important;
    color: var(--rsm-text) !important;
    border: 0 !important;
    border-left: 4px solid var(--rsm-brown) !important;
    border-radius: 2px !important;
    box-shadow: none !important;
    font-size: 16px; line-height: 1.45;
    list-style: none;
}
.rsm-funnel .woocommerce-error { border-left-color: #000 !important; background: #fff !important; outline: 1px solid #000; }
.rsm-funnel .woocommerce-message a,
.rsm-funnel .woocommerce-info a,
.rsm-funnel .woocommerce-error a { color: var(--rsm-brown) !important; text-decoration: underline; }
.rsm-funnel .woocommerce-message .close-message { display: none !important; }
.rsm-funnel .woocommerce-message::before,
.rsm-funnel .woocommerce-info::before,
.rsm-funnel .woocommerce-error::before { display: none !important; content: none !important; }
.rsm-funnel .woocommerce-message .button { display: none; }

/* Formularfelder: gross genug, 16px gegen iOS-Zoom */
.rsm-funnel input[type="text"],
.rsm-funnel input[type="email"],
.rsm-funnel input[type="tel"],
.rsm-funnel input[type="number"],
.rsm-funnel input[type="password"],
.rsm-funnel input[type="search"],
.rsm-funnel select,
.rsm-funnel textarea {
    font-size: 16px !important;
    min-height: 48px;
    padding: 10px 12px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    border: 1px solid var(--rsm-field);
    border-radius: 4px;
    background-color: #fff;
    color: var(--rsm-text);
    line-height: 1.3;
}
.rsm-funnel textarea { min-height: 96px; }
.rsm-funnel select { appearance: auto; }
.rsm-funnel input:focus,
.rsm-funnel select:focus,
.rsm-funnel textarea:focus {
    outline: 3px solid rgba(92,70,43,.35);
    outline-offset: 1px;
    border-color: var(--rsm-brown);
}
.rsm-funnel label { font-size: 16px; line-height: 1.35; color: var(--rsm-text); }
.rsm-funnel .form-row { margin: 0 0 14px 0; padding: 0; }
.rsm-funnel .form-row label { display: block; margin: 0 0 6px 0; font-weight: 400; }
.rsm-funnel .form-row .required { color: var(--rsm-brown); text-decoration: none; }
.rsm-funnel .form-row .optional { color: var(--rsm-muted); font-size: 14px; }
@media (max-width: 767px) {
    .rsm-funnel .form-row-first,
    .rsm-funnel .form-row-last,
    .rsm-funnel .form-row-wide { float: none !important; width: 100% !important; clear: both; }
}

/* Buttons */
.rsm-funnel .button,
.rsm-funnel button.button,
.rsm-funnel #place_order,
.rsm-funnel .checkout-button,
.rsm-funnel .rcm-btn {
    min-height: 52px;
    font-size: 18px;
    letter-spacing: .03em;
    text-transform: uppercase;
    border-radius: 2px;
    box-shadow: none;
}
.rsm-funnel #place_order,
.rsm-funnel .checkout-button,
.rsm-funnel .rcm-btn-primary {
    display: flex; align-items: center; justify-content: center;
    width: 100%;
    background: var(--rsm-brown) !important;
    color: #fff !important;
    border: 0 !important;
    padding: 12px 18px;
    text-align: center;
    text-decoration: none;
}
.rsm-funnel #place_order:hover,
.rsm-funnel .checkout-button:hover,
.rsm-funnel .rcm-btn-primary:hover { background: var(--rsm-brown-dark) !important; }
.rsm-funnel .rcm-btn-primary:disabled { opacity: .6; }

/* ---------- Warenkorb ---------- */
.rsm-funnel--cart .cart-collaterals,
.rsm-funnel--cart .cart_totals { float: none !important; width: 100% !important; }
.rsm-funnel--cart .cart_totals h2 { font-size: 22px; margin: 28px 0 10px; }
.rsm-funnel--cart .cart_totals table { width: 100%; border: 0; }
.rsm-funnel--cart .cart_totals table th,
.rsm-funnel--cart .cart_totals table td { padding: 10px 0; font-size: 17px; border: 0; border-bottom: 1px solid var(--rsm-line); background: transparent; }
.rsm-funnel--cart .cart_totals .order-total th,
.rsm-funnel--cart .cart_totals .order-total td { font-size: 20px; font-weight: 700; border-bottom: 0; }
.rsm-cart-note {
    margin: 14px 0 14px; padding: 12px 14px;
    background: var(--rsm-cream); border-left: 4px solid var(--rsm-brown);
    font-size: 16px; line-height: 1.45; color: var(--rsm-text);
}
.rsm-funnel--cart .update-cart-button input[type="submit"] {
    min-height: 48px; font-size: 17px; width: 100%; padding: 10px 14px; text-transform: none; letter-spacing: 0;
    background: #fff !important; color: var(--rsm-brown) !important; border: 1px solid var(--rsm-brown) !important; border-radius: 2px;
}
.rsm-funnel--cart .update-cart-button::before, .rsm-funnel--cart .update-cart-button::after, .rsm-funnel--cart .update-cart-button i, .rsm-funnel--cart .update-cart-button svg { display: none !important; content: none !important; }
.rsm-funnel--cart .update-cart-button:has(input:disabled) { display: none !important; }
.rsm-funnel--cart .cart-footer:not(:has(input[name=update_cart]:not(:disabled))) { display: none; }

@media (max-width: 767px) {
    .rsm-funnel--cart table.cart thead { display: none; }
    .rsm-funnel--cart table.cart,
    .rsm-funnel--cart table.cart tbody { display: block; width: 100%; border: 0; }
    .rsm-funnel--cart table.cart tr.cart_item {
        display: grid !important;
        grid-template-columns: 84px 1fr 44px;
        grid-template-areas:
            "thumb name  remove"
            "thumb qty   sub";
        column-gap: 14px; row-gap: 10px;
        align-items: center;
        position: relative; overflow: visible !important;
        padding: 16px 0;
        margin: 0;
        border: 0; border-bottom: 1px solid var(--rsm-line);
        background: transparent;
    }
    .rsm-funnel--cart table.cart tr.cart_item > td {
        display: block !important; padding: 0 !important; margin: 0 !important; border: 0 !important;
        width: auto !important; max-width: none !important; text-align: left !important; background: transparent !important; min-width: 0;
    }
    .rsm-funnel--cart table.cart tr.cart_item > td::before { display: none !important; content: none !important; }
    .rsm-funnel--cart td.product-thumbnail { grid-area: thumb; align-self: start; }
    .rsm-funnel--cart td.product-thumbnail a { display: block; }
    .rsm-funnel--cart td.product-thumbnail img { width: 84px !important; height: 84px !important; object-fit: contain; margin: 0 !important; display: block; }
    .rsm-funnel--cart td.product-name { grid-area: name; font-size: 18px; line-height: 1.25; align-self: start; }
    .rsm-funnel--cart td.product-name, .rsm-funnel--cart td.product-name * { text-align: left !important; }
    .rsm-funnel--cart td.product-name a { color: var(--rsm-text); text-decoration: none; display: block; }
    .rsm-funnel--cart table.cart tr.cart_item > td.product-price { display: none !important; }
    .rsm-funnel--cart table.cart tr.cart_item > td.product-remove { width: 44px !important; }
    .rsm-funnel--cart td.product-remove { grid-area: remove; justify-self: end; align-self: start; position: static !important; }
    /* Entfernen-Kreuz: das Theme zeichnet es als Maske, wir faerben es nur ein */
    .rsm-funnel--cart td.product-remove a.remove {
        display: block !important; position: relative !important;
        width: 44px !important; height: 44px !important; margin: -10px 0 0 0 !important; padding: 0 !important;
        border: 0 !important; border-radius: 0 !important; overflow: visible !important; opacity: 1 !important;
        background: var(--rsm-brown) !important; color: transparent !important;
    }
    .rsm-funnel--cart td.product-quantity { grid-area: qty; }
    .rsm-funnel--cart td.product-subtotal { grid-area: sub; font-size: 18px; font-weight: 700; justify-self: end; white-space: nowrap; color: var(--rsm-text); }
    .rsm-funnel--cart .quantity.buttons_added { display: inline-flex !important; align-items: stretch; border: 1px solid var(--rsm-field); border-radius: 4px; background: #fff; margin: 0; }
    .rsm-funnel--cart .quantity.buttons_added button.minus,
    .rsm-funnel--cart .quantity.buttons_added button.plus {
        width: 44px; min-width: 44px; height: 44px; padding: 0; margin: 0; border: 0; background: transparent; color: var(--rsm-brown);
        display: inline-flex; align-items: center; justify-content: center;
    }
    .rsm-funnel--cart .quantity.buttons_added button svg { width: 20px; height: 20px; }
    .rsm-funnel--cart .quantity.buttons_added input.qty {
        width: 52px !important; min-width: 52px; height: 44px; min-height: 44px; padding: 0; margin: 0; border: 0 !important; text-align: center; font-size: 18px !important; -moz-appearance: textfield;
    }
    .rsm-funnel--cart table.cart tr:not(.cart_item) td.actions { display: block; padding: 16px 0 0 !important; border: 0 !important; }
    .rsm-funnel--cart .cart-footer { display: block; }
    .rsm-funnel--cart .update-cart-button { display: block; }
}

/* Warenkorb-Summe: Zeilen als Beschriftung links, Wert rechts */
.rsm-funnel--cart .cart_totals { background: transparent; padding: 0 !important; }
.rsm-funnel--cart .cart_totals table.shop_table tr { display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; justify-content: space-between; align-items: baseline; gap: 12px; border: 0; }
.rsm-funnel--cart .cart_totals table.shop_table tr > th,
.rsm-funnel--cart .cart_totals table.shop_table tr > td { display: block !important; width: auto !important; color: var(--rsm-text); padding: 10px 0 !important; border: 0 !important; }
.rsm-funnel--cart .cart_totals table th { font-weight: 400; color: var(--rsm-muted); }
.rsm-funnel--cart .cart_totals table.shop_table tr > td::before { display: none !important; content: none !important; }
.rsm-funnel--cart .cart_totals table.shop_table tr > td { text-align: right !important; flex: 1 1 auto; }
.rsm-funnel--cart .cart_totals table.shop_table tr > td .amount, .rsm-funnel--cart .cart_totals table.shop_table tr > td bdi { font-size: inherit !important; }
.rsm-funnel--cart .cart_totals table.shop_table tr > td small.includes_tax .amount { font-size: 14px !important; }
.rsm-funnel--cart .cart_totals table.shop_table tr.order-total { border-top: 1px solid var(--rsm-line) !important; }
.rsm-funnel--cart .cart_totals .includes_tax { display: block; font-size: 14px; color: var(--rsm-muted); font-weight: 400; }
.rsm-funnel--cart .cart_totals .wc-proceed-to-checkout { padding: 8px 0 0; }

/* ---------- Info-Box (Versandauswahl) ---------- */
.rsm-cart-info {
    margin: 0 0 20px; padding: 14px 16px;
    background: var(--rsm-cream);
    border-left: 4px solid var(--rsm-brown);
    border-radius: 2px;
    font-size: 16px; line-height: 1.5; color: var(--rsm-text);
}
.rsm-cart-info__content strong { color: #000; }

/* ---------- Versandauswahl ---------- */
.rsm-shipping-selector.woocommerce {
    max-width: 760px;
    margin-left: auto; margin-right: auto;
    padding-top: 16px; padding-bottom: 32px;
}
.rsm-shipping-selector .rcm-header { text-align: left; margin: 0 0 18px; padding: 0 0 14px; border-bottom: 1px solid var(--rsm-line); }
.rsm-shipping-selector .rcm-header h1 { font-size: 28px; line-height: 1.15; margin: 0 0 8px; color: var(--rsm-text); }
.rsm-shipping-selector .rcm-subtitle { font-size: 17px; line-height: 1.4; color: var(--rsm-muted); }

.rsm-shipping-selector .rcm-cart-summary {
    background: #fff; border: 1px solid var(--rsm-line); border-radius: 4px;
    padding: 14px 16px; margin: 0 0 18px;
}
.rsm-shipping-selector .rcm-summary-title { font-size: 18px; margin: 0 0 8px; color: var(--rsm-text); font-weight: 700; }
.rsm-shipping-selector .rcm-cart-items { list-style: none; margin: 0; padding: 0; }
.rsm-shipping-selector .rcm-cart-items li {
    display: flex; justify-content: space-between; gap: 12px;
    padding: 9px 0; border-bottom: 1px solid #ece7df; font-size: 16px;
}
.rsm-shipping-selector .rcm-cart-items li:last-child { border-bottom: 0; }
.rsm-shipping-selector .rcm-item-name { font-weight: 400; color: var(--rsm-text); font-size: 16px; }
.rsm-shipping-selector .rcm-item-qty { color: var(--rsm-muted); white-space: nowrap; }
.rsm-shipping-selector .rcm-summary-edit {
    display: inline-flex; align-items: center; min-height: 44px; margin-top: 4px;
    color: var(--rsm-brown); font-size: 16px; text-decoration: underline;
}

.rsm-shipping-selector .rcm-section {
    background: #fff; border: 1px solid var(--rsm-line); border-radius: 4px;
    padding: 16px; margin: 0 0 18px;
}
.rsm-shipping-selector .rcm-section-title { font-size: 22px; margin: 0 0 14px; color: var(--rsm-text); font-weight: 700; }
.rsm-shipping-selector .rcm-section-info {
    background: var(--rsm-cream); border-left: 4px solid var(--rsm-brown);
    padding: 12px 14px; font-size: 16px; color: var(--rsm-text); border-radius: 2px; margin: 0;
}

/* Auswahlkarten (Abholung / Versand) */
.rsm-shipping-selector .rcm-options { display: flex; flex-direction: column; gap: 12px; }
.rsm-shipping-selector .rcm-option {
    border: 2px solid var(--rsm-line); border-radius: 4px; padding: 0; background: #fff;
    transition: border-color .15s;
}
.rsm-shipping-selector .rcm-option:hover { border-color: var(--rsm-brown); box-shadow: none; }
.rsm-shipping-selector .rcm-option.is-selected { border-color: var(--rsm-brown); background: #fcfaf7; }
.rsm-shipping-selector .rcm-option-label { display: flex; align-items: flex-start; gap: 14px; padding: 16px; margin: 0; min-height: 56px; cursor: pointer; }
.rsm-shipping-selector .rcm-radio {
    appearance: none; -webkit-appearance: none;
    width: 28px; height: 28px; min-width: 28px; min-height: 28px; margin: 2px 0 0 0; padding: 0;
    border: 2px solid var(--rsm-brown); border-radius: 50%; background: #fff; cursor: pointer;
    display: inline-block; position: relative; flex: 0 0 28px;
}
.rsm-shipping-selector .rcm-radio:checked { background: #fff; }
.rsm-shipping-selector .rcm-radio:checked::after {
    content: ""; position: absolute; left: 4px; top: 4px; width: 16px; height: 16px; border-radius: 50%; background: var(--rsm-brown);
}
.rsm-shipping-selector .rcm-radio:focus-visible { outline: 3px solid rgba(92,70,43,.45); outline-offset: 2px; }
.rsm-shipping-selector .rcm-option-content { gap: 4px; }
.rsm-shipping-selector .rcm-option-title { font-size: 20px; font-weight: 700; color: var(--rsm-text); line-height: 1.2; }
.rsm-shipping-selector .rcm-option-desc { font-size: 16px; color: var(--rsm-muted); }
.rsm-shipping-selector .rcm-option-price { font-size: 16px; font-weight: 700; color: var(--rsm-brown); margin-top: 2px; }
.rsm-shipping-selector input[type="radio"]:checked + .rcm-option-content .rcm-option-title { color: var(--rsm-brown); }

/* Bei nur einer Moeglichkeit: kein Auswahlkreis, die Karte ist die Ueberschrift */
.rsm-shipping-selector .rcm-options--single .rcm-radio { position: absolute; opacity: 0; width: 1px; height: 1px; min-width: 0; min-height: 0; flex: 0 0 0; pointer-events: none; }
.rsm-shipping-selector .rcm-options--single .rcm-option-label { cursor: default; }
.rsm-shipping-selector .rcm-options--single .rcm-option { border-color: var(--rsm-brown); }

.rsm-shipping-selector .rcm-option-extra { margin: 0; padding: 0 16px 16px; border-top: 1px solid var(--rsm-line); padding-top: 16px; }
.rsm-shipping-selector .rcm-pickup-details { display: flex; flex-direction: column; gap: 14px; }
.rsm-shipping-selector .rcm-field { display: flex; flex-direction: column; gap: 6px; }
.rsm-shipping-selector .rcm-label,
.rsm-shipping-selector .rcm-field label { font-size: 16px; font-weight: 700; color: var(--rsm-text); margin: 0; }
.rsm-shipping-selector .rcm-select,
.rsm-shipping-selector .rcm-input,
.rsm-shipping-selector .rcm-input-number {
    min-height: 52px; font-size: 16px !important; padding: 10px 12px; border: 1px solid var(--rsm-field); border-radius: 4px; background-color: #fff; width: 100%; max-width: none;
}
.rsm-shipping-selector .rcm-select:disabled { background-color: #f1eee9; color: #8a8278; }
@media (min-width: 768px) {
    .rsm-shipping-selector .rcm-pickup-details { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 16px; }
    .rsm-shipping-selector .rcm-section { padding: 22px; }
}

/* Lebkuchenbrief: Empfaenger */
.rsm-shipping-selector .rcm-recipients-config { background: var(--rsm-cream); padding: 14px; border-radius: 4px; }
.rsm-shipping-selector .rcm-cost-preview { background: #fff; border-left: 4px solid var(--rsm-brown); padding: 10px 12px; font-size: 16px; }
.rsm-shipping-selector .rcm-cost-preview .rcm-cost-amount { color: var(--rsm-brown); }
.rsm-shipping-selector .rcm-address-form { border: 1px solid var(--rsm-line); border-radius: 4px; }
.rsm-shipping-selector .rcm-address-form-header { min-height: 52px; padding: 10px 14px; background: var(--rsm-cream); }
.rsm-shipping-selector .rcm-address-form.expanded .rcm-address-form-header { background: var(--rsm-brown); }
.rsm-shipping-selector .rcm-address-form-header h5 { font-size: 17px; }
.rsm-shipping-selector .rcm-address-form-header h5::before { content: ""; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg); transition: transform .2s; }
.rsm-shipping-selector .rcm-address-form.expanded .rcm-address-form-header h5::before { transform: rotate(45deg); }
.rsm-shipping-selector .rcm-address-status { background: #fff; color: var(--rsm-text); border: 1px solid var(--rsm-field); font-size: 13px; padding: 3px 9px; }
.rsm-shipping-selector .rcm-address-form.filled .rcm-address-status { background: var(--rsm-brown); color: #fff; border-color: var(--rsm-brown); }
.rsm-shipping-selector .rcm-remove-address { width: 44px; height: 44px; border-radius: 0; background: transparent; color: var(--rsm-brown); font-size: 26px; }
.rsm-shipping-selector .rcm-remove-address:hover { background: transparent; transform: none; }
.rsm-shipping-selector .rcm-address-form-fields { background: #fff; padding: 14px; }
.rsm-shipping-selector .rcm-field label .required { color: var(--rsm-brown); }
.rsm-shipping-selector .rcm-field-row { grid-template-columns: 1fr; }
@media (min-width: 560px) { .rsm-shipping-selector .rcm-field-row { grid-template-columns: 1fr 2fr; } }

/* Fehler */
.rsm-shipping-selector .rcm-errors { margin: 0 0 14px; }
.rsm-shipping-selector .rcm-errors .woocommerce-error { margin: 0 !important; }

/* Aktionen */
.rsm-shipping-selector .rcm-actions { display: flex; flex-direction: column; gap: 12px; margin: 22px 0 0; padding: 0; border: 0; }
.rsm-shipping-selector .rcm-btn { width: 100%; min-width: 0; padding: 14px 18px; }
.rsm-shipping-selector .rcm-btn-secondary {
    order: 2; background: transparent !important; color: var(--rsm-brown) !important; border: 0 !important;
    text-decoration: underline; text-transform: none; font-size: 17px; min-height: 48px; display: flex; align-items: center; justify-content: center;
}
.rsm-shipping-selector .rcm-btn-primary { order: 1; }
@media (min-width: 768px) {
    .rsm-shipping-selector .rcm-actions { flex-direction: row; justify-content: space-between; align-items: center; }
    .rsm-shipping-selector .rcm-btn { width: auto; min-width: 260px; }
    .rsm-shipping-selector .rcm-btn-secondary { order: 0; justify-content: flex-start; min-width: 0; }
    .rsm-shipping-selector .rcm-btn-primary { order: 1; }
}

/* Tagesangebots-/Wechselhinweise (KDW) */
.rsm-kdw-notice {
    display: block; padding: 14px 44px 14px 16px; margin: 0 0 16px; border-radius: 2px;
    background: var(--rsm-cream) !important; color: var(--rsm-text) !important;
    border: 0 !important; border-left: 4px solid var(--rsm-brown) !important; position: relative;
}
.rsm-kdw-notice-content { font-size: 16px; line-height: 1.45; }
.rsm-kdw-notice-close { width: 44px !important; height: 44px !important; top: 2px !important; right: 2px !important; font-size: 26px !important; color: var(--rsm-brown) !important; }
.rsm-kdw-buttons { display: flex; flex-direction: column; gap: 10px; margin-top: 14px; }
.rsm-kdw-btn { min-height: 52px; font-size: 17px !important; border-radius: 2px !important; width: 100%; }
.rsm-kdw-btn-confirm,
.rsm-kdw-btn-select { background: var(--rsm-brown) !important; color: #fff !important; border: 0 !important; }
.rsm-kdw-btn-cancel { background: #fff !important; color: var(--rsm-brown) !important; border: 1px solid var(--rsm-brown) !important; }
.rsm-kdw-option { min-height: 52px; background: #fff !important; border: 1px solid var(--rsm-field) !important; }
.rsm-kdw-option input[type="radio"] { width: 24px; height: 24px; accent-color: var(--rsm-brown); }
@media (min-width: 560px) { .rsm-kdw-buttons { flex-direction: row; } .rsm-kdw-btn { width: auto; } }

/* ---------- Kasse ---------- */
.rsm-sel {
    background: var(--rsm-cream);
    border-left: 4px solid var(--rsm-brown);
    padding: 16px; margin: 0 0 22px; border-radius: 2px; color: var(--rsm-text);
}
.rsm-sel__title { font-size: 22px; margin: 0 0 10px; color: var(--rsm-text); font-weight: 700; }
.rsm-sel__block { padding: 0 0 12px; margin: 0 0 12px; border-bottom: 1px solid var(--rsm-line); }
.rsm-sel__block:last-of-type { border-bottom: 0; margin-bottom: 4px; }
.rsm-sel__label { font-size: 16px; margin: 0 0 6px; color: var(--rsm-brown); text-transform: uppercase; letter-spacing: .04em; font-weight: 700; }
.rsm-sel__value { margin: 0 0 4px; font-size: 18px; line-height: 1.35; }
.rsm-sel__value--strong { font-weight: 700; font-size: 19px; }
.rsm-sel__muted { margin: 0 0 4px; font-size: 16px; color: var(--rsm-muted); line-height: 1.4; }
.rsm-sel__items { margin: 8px 0 6px 18px; padding: 0; font-size: 16px; color: var(--rsm-text); }
.rsm-sel__items li { margin: 3px 0; }
.rsm-sel__cost { margin: 6px 0 0; font-weight: 700; color: var(--rsm-brown); font-size: 16px; }
.rsm-sel__change {
    display: inline-flex; align-items: center; min-height: 48px; margin-top: 4px;
    color: var(--rsm-brown); font-size: 17px; font-weight: 700; text-decoration: underline;
}

.rsm-funnel--checkout h3,
.rsm-funnel--checkout #order_review_heading { font-size: 22px; margin: 0 0 12px; }
.rsm-funnel--checkout #customer_details { float: none !important; width: 100% !important; padding: 0 !important; }
.rsm-funnel--checkout .wc-order-review { float: none !important; width: 100% !important; margin-top: 24px; }
.rsm-funnel--checkout .woocommerce-checkout-review-order-table { width: 100%; border: 0; }
.rsm-funnel--checkout .woocommerce-checkout-review-order-table th,
.rsm-funnel--checkout .woocommerce-checkout-review-order-table td {
    padding: 10px 0; font-size: 17px; border: 0; border-bottom: 1px solid var(--rsm-line); background: transparent; vertical-align: top;
}
.rsm-funnel--checkout .woocommerce-checkout-review-order-table .order-total th,
.rsm-funnel--checkout .woocommerce-checkout-review-order-table .order-total td { font-size: 20px; font-weight: 700; border-bottom: 0; }
.rsm-funnel--checkout .woocommerce-checkout-review-order-table .product-total,
.rsm-funnel--checkout .woocommerce-checkout-review-order-table td:last-child { text-align: right; white-space: nowrap; }
.rsm-funnel--checkout #payment { background: transparent; border: 0; padding: 0; margin-top: 18px; }
.rsm-funnel--checkout #payment ul.payment_methods { padding: 0; margin: 0 0 14px; list-style: none; border: 0; }
.rsm-funnel--checkout #payment li.wc_payment_method {
    display: block; margin: 0 0 10px; padding: 14px 16px; border: 1px solid var(--rsm-line); border-radius: 4px; background: #fff;
}
.rsm-funnel--checkout #payment li.wc_payment_method > label { display: flex; align-items: center; gap: 12px; margin: 0; font-size: 18px; font-weight: 700; cursor: pointer; min-height: 32px; }
.rsm-funnel--checkout #payment li.wc_payment_method > label img { max-height: 28px; width: auto; margin: 0; }
.rsm-funnel--checkout #payment li.wc_payment_method input.input-radio { width: 22px; height: 22px; min-height: 0; accent-color: var(--rsm-brown); margin: 0; }
.rsm-funnel--checkout #payment .payment_box { margin: 10px 0 0; padding: 0; background: transparent; font-size: 16px; color: var(--rsm-muted); }
.rsm-funnel--checkout #payment .payment_box::before { display: none; }
.rsm-funnel--checkout .woocommerce-privacy-policy-text,
.rsm-funnel--checkout .rsm-warranty-notice,
.rsm-legal-note { font-size: 15px; line-height: 1.5; color: var(--rsm-muted); margin: 0 0 10px; }
.rsm-funnel--checkout .woocommerce-privacy-policy-text a,
.rsm-funnel--checkout .rsm-warranty-notice a,
.rsm-legal-note a { color: var(--rsm-brown); text-decoration: underline; display: inline-block; min-height: 24px; }
.rsm-funnel--checkout .woocommerce-privacy-policy-text p { margin: 0; }

/* Anschrift bei reiner Abholung einklappen (funnel.js) */
.rsm-pickup-only .rsm-addr-hidden { display: none !important; }
.rsm-addr-toggle {
    display: flex; align-items: center; justify-content: center; width: 100%; min-height: 52px; margin: 4px 0 14px;
    background: #fff; color: var(--rsm-brown); border: 1px solid var(--rsm-brown); border-radius: 2px; font-size: 17px; cursor: pointer;
}
/* Versandzeile bei Abholung: Auswahl steht oben */
ul#shipping_method.woocommerce-shipping-methods { list-style: none; margin: 0; padding: 0; }
.rsm-funnel .woocommerce-shipping-totals td, .rsm-funnel .woocommerce-shipping-totals td label { color: var(--rsm-text) !important; opacity: 1 !important; visibility: visible !important; }

/* ---------- Danke-Seite ---------- */
.rsm-thanks {
    background: var(--rsm-cream); border-left: 4px solid var(--rsm-brown);
    padding: 16px; margin: 0 0 22px; border-radius: 2px;
}
.rsm-thanks__title { font-size: 22px; margin: 0 0 10px; color: var(--rsm-text); font-weight: 700; }
.rsm-thanks__strong { font-size: 20px; font-weight: 700; margin: 0 0 4px; line-height: 1.3; }
.rsm-thanks__when { font-size: 20px; margin: 8px 0; color: var(--rsm-brown); font-weight: 700; }
.rsm-thanks__muted { font-size: 16px; line-height: 1.45; color: var(--rsm-muted); margin: 0 0 6px; }
.rsm-funnel--thankyou .woocommerce-notice--success,
.rsm-funnel--thankyou .woocommerce-thankyou-order-received {
    font-size: 22px; font-weight: 700; color: var(--rsm-text); background: transparent !important; border: 0 !important; padding: 0 !important; margin: 0 0 16px !important;
}
.rsm-funnel--thankyou ul.order_details { list-style: none; margin: 0 0 22px; padding: 0; }
.rsm-funnel--thankyou ul.order_details li { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border: 0; border-bottom: 1px solid var(--rsm-line); font-size: 16px; float: none; margin: 0; }
.rsm-funnel--thankyou table.shop_table { width: 100%; border: 0; }
.rsm-funnel--thankyou table.shop_table th,
.rsm-funnel--thankyou table.shop_table td { padding: 10px 0; font-size: 17px; border: 0; border-bottom: 1px solid var(--rsm-line); background: transparent; }

/* Konto / Anmelden in der Strecke: Taps gross genug */
.rsm-funnel a.showlogin,
.rsm-funnel a.showcoupon { display: inline-block; min-height: 44px; line-height: 44px; }

/* Kleine Tap-Flaechen im Seitenfluss vermeiden */
.rsm-funnel .woocommerce a:not(.button):not(.remove) { text-underline-offset: 2px; }

/* ---------- Cookie-Schaltflaeche: Symbol statt Emoji ---------- */
.alber-cookie__fab__icon {
    font-size: 0 !important; line-height: 0 !important;
    width: 22px; height: 22px; background: currentColor; color: var(--rsm-brown);
    -webkit-mask: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 7h11M18 7h3M3 17h3M10 17h11' stroke='black' stroke-width='2' fill='none'/%3E%3Ccircle cx='16' cy='7' r='2.4' stroke='black' stroke-width='2' fill='none'/%3E%3Ccircle cx='8' cy='17' r='2.4' stroke='black' stroke-width='2' fill='none'/%3E%3C/svg%3E") center / contain no-repeat;
            mask: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 7h11M18 7h3M3 17h3M10 17h11' stroke='black' stroke-width='2' fill='none'/%3E%3Ccircle cx='16' cy='7' r='2.4' stroke='black' stroke-width='2' fill='none'/%3E%3Ccircle cx='8' cy='17' r='2.4' stroke='black' stroke-width='2' fill='none'/%3E%3C/svg%3E") center / contain no-repeat;
}
@media (max-width: 640px) {
    .alber-cookie__fab { width: 44px !important; min-width: 44px !important; height: 44px !important; border-color: var(--rsm-field) !important; }
    .rsm-funnel .alber-cookie__fab { opacity: .9; }
}

/* Doppeltes Notizfeld (WCCF) ausblenden, das native Feld bleibt */
.rsm-funnel .wccf_field_container_checkout_field_textarea,
.rsm-funnel #wccf_checkout_field_anmerkungen_bestellung { display: none !important; }
.rsm-funnel .wccf_field_container_checkout_field_textarea:has(textarea:not(:placeholder-shown)) { display: none !important; }

/* ---------- Kasse: Bestelluebersicht gut lesbar (Theme-Grau war zu hell) ---------- */
.rsm-funnel .woocommerce-checkout-review-order-table th,
.rsm-funnel .woocommerce-checkout-review-order-table td,
.rsm-funnel .woocommerce-checkout-review-order-table td .amount,
.rsm-funnel .woocommerce-checkout-review-order-table .product-total { color: var(--rsm-text) !important; opacity: 1 !important; }
.rsm-funnel .woocommerce-checkout-review-order-table th { font-weight: 400; color: var(--rsm-muted) !important; }
.rsm-funnel .woocommerce-checkout-review-order-table .order-total th,
.rsm-funnel .woocommerce-checkout-review-order-table .order-total td { font-weight: 700; color: var(--rsm-text) !important; }
@media (max-width: 767px) {
    .rsm-funnel .woocommerce-checkout-review-order-table tr {
        display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important;
        justify-content: space-between; align-items: baseline; gap: 12px;
        border: 0 !important; border-bottom: 1px solid var(--rsm-line) !important;
    }
    .rsm-funnel .woocommerce-checkout-review-order-table tr > th,
    .rsm-funnel .woocommerce-checkout-review-order-table tr > td {
        display: block !important; width: auto !important; border: 0 !important; padding: 10px 0 !important; text-align: left;
    }
    .rsm-funnel .woocommerce-checkout-review-order-table tr > td:last-child { text-align: right !important; flex: 0 1 auto; white-space: normal; }
    .rsm-funnel .woocommerce-checkout-review-order-table tr > td::before { display: none !important; content: none !important; }
    .rsm-funnel .woocommerce-checkout-review-order-table tr.cart_item > td.product-name { flex: 1 1 auto; }
    .rsm-funnel .woocommerce-checkout-review-order-table tr.cart_item > td.product-total { white-space: nowrap; }
}

.rsm-funnel .woocommerce-checkout-review-order-table .order-total td { display: flex; flex-direction: column; align-items: flex-end; }
.rsm-funnel .woocommerce-checkout-review-order-table .order-total td small.includes_tax { display: block; font-size: 14px; font-weight: 400; color: var(--rsm-muted) !important; white-space: nowrap; }
.rsm-funnel .woocommerce-checkout-review-order-table .order-total td small.includes_tax .amount { font-size: 14px !important; font-weight: 400; }
@media (max-width: 767px) {
    .rsm-funnel .woocommerce-checkout-review-order-table tr.order-total > td { display: block !important; text-align: right !important; }
    .rsm-funnel .woocommerce-checkout-review-order-table tr.order-total > td strong { display: block; }
}

/* Nur Abholung: Zeile "Sendung" entfaellt (steht bereits oben unter "Ihre Auswahl") */
body.rsm-funnel.rsm-pickup-only .woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals { display: none !important; }

/* ---------- Danke-Seite: Beschriftungen gut lesbar ---------- */
.rsm-funnel--thankyou .woocommerce-order-overview li,
.rsm-funnel--thankyou .woocommerce-table--order-details th,
.rsm-funnel--thankyou .woocommerce-table--order-details thead th,
.rsm-funnel--thankyou .woocommerce-customer-details th { color: var(--rsm-muted) !important; }
.rsm-funnel--thankyou .woocommerce-order-overview li strong,
.rsm-funnel--thankyou .woocommerce-table--order-details td,
.rsm-funnel--thankyou .woocommerce-customer-details td { color: var(--rsm-text) !important; }
