.wpac-shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:24px;margin:20px 0;}
.wpac-shop-card{border:1px solid #e2e2e2;border-radius:8px;padding:16px;text-align:center;display:flex;flex-direction:column;}
.wpac-shop-card img{max-width:100%;height:auto;border-radius:6px;margin-bottom:10px;}
.wpac-shop-card-media{position:relative;margin-bottom:10px;}
.wpac-shop-card-media img{margin-bottom:0;}
.wpac-shop-card-colors{position:absolute;left:8px;bottom:8px;display:flex;gap:5px;}
.wpac-shop-card-color{width:20px;height:20px;border-radius:50%;background-color:#eee;background-size:cover;background-position:center;border:2px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.15),0 1px 3px rgba(0,0,0,.25);display:flex;align-items:center;justify-content:center;}
.wpac-shop-card-color-fallback{font-size:.6em;font-weight:700;color:#666;text-transform:uppercase;line-height:1;}
.wpac-price{font-weight:700;font-size:1.1em;color:var(--wpac-color-primary,#1a5276);}
.wpac-price-ab{font-weight:400;font-size:.75em;color:#777;text-transform:lowercase;margin-right:2px;}
.wpac-price-configured{font-weight:700;font-size:1.15em;color:var(--wpac-color-accent,#186a3b);margin:2px 0 8px;}
/* Kategorie-Rabatt (ab 1.39.0): reduzierter Preis + durchgestrichener 30-Tage-Tiefstpreis + Pflichthinweis (§ 11 PAngV) */
.wpac-price-strike{font-weight:400;font-size:.7em;color:#888;margin-left:6px;}
.wpac-price-legal-ref{font-size:.72em;color:#888;margin:0 0 6px;}
.wpac-form-summary-top .wpac-price-legal-ref{margin:0 0 10px;}
.wpac-legal-notice{font-size:.8em;color:#777;margin:2px 0 10px;}
.wpac-tax-line{font-size:.85em;color:#666;margin:2px 0;}
.wpac-btn{display:inline-block;background:var(--wpac-color-primary,#1a5276);color:#fff;padding:10px 20px;border-radius:6px;text-decoration:none;border:none;cursor:pointer;font-size:1em;}
.wpac-btn:hover{background:var(--wpac-color-primary-dark,#154360);color:#fff;}
.wpac-btn-secondary{background:#fff;color:var(--wpac-color-primary,#1a5276);border:2px solid var(--wpac-color-primary,#1a5276);padding:8px 20px;}
.wpac-btn-secondary:hover{background:#eaf1f8;color:var(--wpac-color-primary-dark,#154360);}
.wpac-btn-calc{background:#c0562a;color:#fff;font-weight:700;border:2px solid #c0562a;padding:8px 20px;}
.wpac-btn-calc:hover{background:#9c451f;border-color:#9c451f;color:#fff;}
.wpac-btn:disabled,.wpac-btn-calc:disabled{opacity:.5;cursor:not-allowed;}
.wpac-shop-card .wpac-add-to-cart-form-inline{margin:6px 0;}
.wpac-shop-card .wpac-btn-secondary{margin-top:auto;}
.wpac-category-nav{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px;}
.wpac-cat-pill{display:inline-block;padding:6px 16px;border-radius:20px;border:1px solid #cfd8e3;color:var(--wpac-color-primary,#1a5276);text-decoration:none;font-size:.92em;}
.wpac-cat-pill.active,.wpac-cat-pill:hover{background:var(--wpac-color-primary,#1a5276);color:#fff;border-color:var(--wpac-color-primary,#1a5276);}
.wpac-product-image{max-width:100%;height:auto;border-radius:8px;}
.wpac-back-link{margin-bottom:12px;}
.wpac-back-link a{color:var(--wpac-color-primary,#1a5276);text-decoration:none;}
.wpac-shipping-time{font-size:.92em;color:#2e7d32;margin:6px 0 14px;}
.wpac-elements-rows{margin:10px 0;}
.wpac-elements-row-label{font-weight:700;font-size:1.05em;margin:14px 0 4px;}
.wpac-elements-row-label:first-child{margin-top:0;}
.wpac-addon-fields-wrap{margin-top:14px;padding:14px 16px;background:#f7f9fb;border:1px solid #e2e2e2;border-radius:8px;}
.wpac-elements-row{display:grid;grid-template-columns:repeat(var(--wpac-row-cols,1),1fr);gap:6px 20px;margin-bottom:10px;}
.wpac-element{margin:4px 0;min-width:0;}
.wpac-element label{display:block;font-weight:600;margin-bottom:4px;}
.wpac-element select,.wpac-element input[type=number],.wpac-element input[type=text]{width:100%;padding:8px;border:1px solid #ccc;border-radius:4px;box-sizing:border-box;}
@media (max-width:480px){ .wpac-elements-row{grid-template-columns:1fr!important;} }

/* Alte Klassennamen bleiben als Alias erhalten (z.B. für individuelles Child-Theme-CSS) */
.wpac-option-group{margin:4px 0;min-width:0;}
.wpac-option-group label{display:block;font-weight:600;margin-bottom:4px;}
.wpac-option-group select{width:100%;padding:8px;border:1px solid #ccc;border-radius:4px;}
.wpac-addon-field{margin:4px 0;}
.wpac-addon-field label{display:block;font-weight:600;margin-bottom:4px;}
.wpac-addon-field select,.wpac-addon-field input[type=number],.wpac-addon-field input[type=text]{width:100%;padding:8px;border:1px solid #ccc;border-radius:4px;box-sizing:border-box;}
.wpac-addon-radio-option{display:block;font-weight:400;margin:4px 0;}
.wpac-addon-radio-option-has-image{display:inline-flex;align-items:center;gap:6px;margin-right:14px;}
.wpac-addon-value-image{width:32px;height:32px;object-fit:cover;border-radius:4px;vertical-align:middle;border:1px solid #ddd;}

/* Zusatzfeld-Bild oberhalb der gesamten Werteliste (z.B. Bemaßungsgrafik) */
.wpac-addon-field-image{margin:6px 0 12px;}
.wpac-addon-field-image img{max-width:100%;height:auto;border-radius:6px;}
/* Zusatzfeld per Bedingung "ausgegraut" statt komplett ausgeblendet (Modus
   "disable", ab 1.30.0) -- Feld bleibt im Layout sichtbar, wirkt aber
   erkennbar inaktiv. pointer-events:none zusätzlich zu :disabled, weil ein
   Klick auf ein umschließendes <label> (Radio-/Checkbox-Optionen) sonst auch
   bei disabled=true noch den Fokus/Cursor sichtbar ändern könnte. */
.wpac-addon-dep-disabled{opacity:.45;pointer-events:none;}
.wpac-addon-dep-disabled select,.wpac-addon-dep-disabled input{cursor:not-allowed;}
.wpac-addon-notice{font-size:.92em;color:#8a5a00;background:#fff3cd;border:1px solid #ffe29a;border-radius:6px;padding:10px 14px;margin:10px 0 6px;}
.wpac-addon-notice-text{margin:0 0 8px;}
.wpac-addon-notice-confirm{margin:0 !important;font-weight:600 !important;}

/* Optionen MIT zusätzlichen Details (Beschreibung/Info/Bild): eigene Zeile mit
   Rahmen statt der kompakten Inline-Darstellung oben -- die kompakte Variante
   bleibt für einfache Bild-Swatches (z.B. viele Achse-Werte) unverändert. */
.wpac-addon-radio-option-has-details{display:flex!important;align-items:flex-start;gap:12px;width:100%;box-sizing:border-box;margin:0 0 8px;padding:12px 14px;border:1px solid #e0e4e9;border-radius:8px;cursor:pointer;transition:border-color .15s,background .15s;}
.wpac-addon-radio-option-has-details:hover{border-color:#c3cbd6;}
.wpac-addon-radio-option-has-details:has(input:checked){border-color:var(--wpac-color-primary,#1a5276);background:color-mix(in srgb, var(--wpac-color-primary,#1a5276) 6%, #fff);}
.wpac-addon-radio-option-has-details input{margin-top:3px;flex-shrink:0;}
.wpac-addon-radio-option-has-details.wpac-addon-radio-option-has-image .wpac-addon-value-image{width:40px;height:40px;flex-shrink:0;}
.wpac-addon-option-text{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0;}
.wpac-addon-option-title{font-weight:600;}
.wpac-addon-option-desc{font-weight:400;font-size:.9em;color:#666;}

/* Info-Symbol (i) mit reiner CSS-Tooltip (Hover/Fokus) -- kein zusätzliches JS nötig */
.wpac-addon-info{position:relative;flex-shrink:0;margin-left:auto;}
.wpac-addon-info-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;border:1px solid #b7bfc9;color:#667;font-size:.8em;font-style:italic;font-family:Georgia,serif;cursor:help;}
.wpac-addon-info:hover .wpac-addon-info-icon,.wpac-addon-info:focus .wpac-addon-info-icon{border-color:var(--wpac-color-primary,#1a5276);color:var(--wpac-color-primary,#1a5276);}
.wpac-addon-info-text{display:none;position:absolute;right:0;top:26px;z-index:5;width:220px;padding:10px 12px;background:#fff;border:1px solid #d8dce1;border-radius:6px;box-shadow:0 4px 14px rgba(0,0,0,.12);font-size:.85em;font-weight:400;color:#333;line-height:1.4;}
.wpac-addon-info:hover .wpac-addon-info-text,.wpac-addon-info:focus .wpac-addon-info-text,.wpac-addon-info:focus-within .wpac-addon-info-text{display:block;}
.wpac-required{color:#c0392b;}
.wpac-addon-live-price{margin-left:8px;font-size:.9em;color:var(--wpac-color-primary,#1a5276);font-weight:600;}
.wpac-addon-price-note{font-size:.92em;color:var(--wpac-color-primary,#1a5276);font-weight:600;margin:0 0 10px;}
.wpac-addon-price-legal-note{font-size:.8em;color:#777;margin:-6px 0 10px;}
.wpac-addon-summary{color:#555;}
.wpac-stock-info{display:block;font-size:.9em;color:#2e7d32;margin:6px 0;}
.wpac-stock-info.wpac-out-of-stock{color:#c0392b;}
.wpac-add-to-cart-message{margin-top:8px;font-size:.9em;color:var(--wpac-color-primary,#1a5276);}
.wpac-add-to-cart-message.wpac-message-error,.wpac-wizard-message.wpac-message-error{color:#c0392b;font-weight:600;}
.wpac-wizard-message{margin-top:10px;font-size:.92em;color:var(--wpac-color-primary,#1a5276);}
.wpac-accordion{margin-top:24px;border:1px solid #e2e2e2;border-radius:8px;overflow:hidden;}
.wpac-accordion-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left;padding:14px 18px;background:#f0f2f5;border:none;cursor:pointer;font-weight:600;font-size:1em;color:#333;}
.wpac-accordion-toggle:hover{background:#e6e9ed;}
.wpac-accordion-icon{font-size:1.3em;line-height:1;transition:transform .2s ease;}
.wpac-accordion-toggle[aria-expanded="true"] .wpac-accordion-icon{transform:rotate(45deg);}
.wpac-accordion-panel{max-height:0;overflow:hidden;transition:max-height .25s ease;padding:0 18px;font-size:.92em;color:#444;}
.wpac-accordion-panel.open{max-height:600px;padding:14px 18px;}
.wpac-cart-table{width:100%;border-collapse:collapse;margin:16px 0;}
.wpac-cart-table th,.wpac-cart-table td{padding:10px;border-bottom:1px solid #eee;text-align:left;}
.wpac-cart-qty{width:60px;}
.wpac-cart-remove{background:none;border:none;color:#c0392b;font-size:1.2em;cursor:pointer;}
.wpac-checkout label{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin:0 0 14px;font-weight:600;text-align:left;}
.wpac-checkout input[type=text],.wpac-checkout input[type=email],.wpac-checkout input[type=password],.wpac-checkout input[type=tel],.wpac-checkout select,.wpac-checkout textarea{width:100%;max-width:300px;padding:8px;border:1px solid #ccc;border-radius:4px;font-weight:400;box-sizing:border-box;}
.wpac-checkout textarea{max-width:100%;min-height:80px;}
.wpac-checkout h3{margin:24px 0 10px;padding-top:14px;border-top:1px solid #eee;}
.wpac-checkout h3:first-of-type{border-top:none;padding-top:0;}
.wpac-checkbox,.wpac-checkout label.wpac-checkbox{flex-direction:row;display:flex;align-items:center;gap:8px;font-weight:400 !important;margin:12px 0;}
.wpac-coupon-form.wpac-field-row{align-items:flex-end;gap:12px;margin:6px 0 16px;}
.wpac-coupon-form .wpac-btn-secondary{padding:9px 18px;white-space:nowrap;}
.wpac-coupon-applied{background:#e9f7ef;border:1px solid #b7e4c7;color:#1e6b3a;border-radius:6px;padding:8px 12px;margin:6px 0 10px;font-weight:600;}
.wpac-totals-discount{color:#1e6b3a;}
/* ── Kasse (Gast, ab 1.42.1): "Bereits Kunde?"-Karte oben (kompakt, mit
   Einloggen-Umschalter + "Passwort vergessen?"), darunter die vollständigen,
   gestapelten Neukunden-Felder -- ersetzt das vorherige Zweispalten-Layout. ── */
.wpac-account-login-card{background:#f7f9fb;border:1px solid #e2e2e2;border-radius:8px;padding:20px 22px;max-width:420px;margin:0 0 28px;}
.wpac-account-login-card h4{margin-top:0;}
.wpac-btn-login{width:100%;box-sizing:border-box;text-align:center;padding:12px 20px;font-weight:600;}
.wpac-login-panel{margin-top:16px;}
.wpac-login-panel form{margin:0;}
.wpac-link-btn{display:inline-block;background:none;border:none;padding:8px 0 0;margin:0;color:var(--wpac-color-primary,#1a5276);text-decoration:underline;font-size:.9em;font-weight:400;cursor:pointer;}
.wpac-link-btn:hover{color:var(--wpac-color-primary-dark,#154360);}
.wpac-forgot-form{margin-top:14px;padding-top:14px;border-top:1px solid #e2e2e2;}
.wpac-account-trust{list-style:none;margin:18px 0 0;padding:16px 0 0;border-top:1px solid #e2e2e2;display:flex;flex-direction:column;gap:8px;}
.wpac-account-trust li{position:relative;padding-left:22px;font-size:.9em;color:#444;}
.wpac-account-trust li::before{content:"\2713";position:absolute;left:0;color:var(--wpac-color-accent,#186a3b);font-weight:700;}
.wpac-account-register{max-width:520px;}
.wpac-account-register h4{margin-top:0;}
.wpac-account-register .description{margin:0 0 16px;color:#666;font-size:.9em;}

/* ── Mein Konto (ausgeloggt, ab 1.56.1): zweispaltiges Layout -- links Login-
   Karte, rechts Registrierung. Dieselben Formular-Partials (register_form_html()
   etc.) werden hier UND im Checkout eingebunden, aber Label-/Feld-Regeln oben
   sind an .wpac-checkout gebunden -- ohne eigene Regeln hier liefen Label und
   Eingabefeld nur als Inline-Element nebeneinander statt gestapelt. ── */
.wpac-account-tab{display:grid;grid-template-columns:380px 1fr;gap:36px;align-items:start;}
.wpac-account-tab label{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin:0 0 14px;font-weight:600;text-align:left;}
.wpac-account-tab label.wpac-checkbox{flex-direction:row;align-items:center;gap:8px;font-weight:400 !important;margin:12px 0;}
.wpac-account-tab input[type=text],.wpac-account-tab input[type=email],.wpac-account-tab input[type=password],.wpac-account-tab input[type=tel],.wpac-account-tab select{width:100%;max-width:300px;padding:8px;border:1px solid #ccc;border-radius:4px;font-weight:400;box-sizing:border-box;}
.wpac-account-tab .wpac-account-register{max-width:none;}
@media (max-width:900px){
	.wpac-account-tab{grid-template-columns:1fr;}
}

/* ── PayPal Express-Kauf (ab 1.42.0) ── */
.wpac-express-checkout{background:#f7f9fb;border:1px solid #e2e2e2;border-radius:8px;padding:20px 22px;margin-bottom:22px;}
.wpac-express-checkout h3{margin:0 0 8px;padding:0;border-top:none;}
.wpac-express-checkout .description{margin:0 0 16px;color:#666;font-size:.92em;}
.wpac-express-button-slot{max-width:360px;}
.wpac-express-button-slot + .wpac-express-button-slot{margin-top:12px;}
.wpac-express-checkout .wpac-message{margin-top:12px;padding:10px 14px;border-radius:6px;font-size:.9em;}
.wpac-express-checkout .wpac-message-error{background:#fdecea;color:#c0392b;border:1px solid #f5c6c2;}
.wpac-express-checkout .wpac-message-success{background:#e9f7ef;color:#1e6b3a;border:1px solid #b7e4c7;}
.wpac-express-divider{display:flex;align-items:center;gap:14px;margin:0 0 22px;color:#999;font-size:.85em;text-transform:uppercase;letter-spacing:.05em;}
.wpac-express-divider::before,.wpac-express-divider::after{content:"";flex:1;height:1px;background:#e2e2e2;}

/* ── Kasse: zweispaltiges Layout (ab 1.40.0) -- links Eingabe (Konto/Adresse/
   Versand/Zahlung), rechts Bestellübersicht + Gutschein + Summen + Zustimmung
   + Bestell-Button, analog zum Brille24-Vorbild. Bei form.wpac-checkout-layout
   (eingeloggter Zustand) sind wpac-checkout-main/-side direkte Kind-Elemente
   DES FORMULARS -- ein <form> darf beliebige Block-Elemente als Kinder haben,
   das Grid-Layout betrifft nur die visuelle Anordnung, nicht die Zugehörigkeit
   zum selben Absende-Vorgang. ── */
.wpac-checkout-title{margin:0 0 18px;}
.wpac-checkout-loggedin{margin:0 0 18px;color:#555;}
.wpac-checkout-layout{display:grid;grid-template-columns:1fr 380px;gap:36px;align-items:start;}
.wpac-checkout-main{min-width:0;}
.wpac-checkout-side{min-width:0;position:sticky;top:20px;}
.wpac-checkout-side .wpac-order-summary{margin:0 0 18px;}
.wpac-checkout-side .wpac-cart-totals{max-width:none;margin:0 0 18px;}
.wpac-coupon-box{margin:0 0 18px;padding:14px 18px;background:#f7f9fb;border:1px solid #e2e2e2;border-radius:8px;}
.wpac-coupon-box h3{margin:0 0 10px;padding:0;border-top:none;}
/* Zustimmungs-Checkbox als Grid statt Flex (ab 1.41.3): Flexbox berechnete die
   Breite des Text-<span> bislang über "shrink-to-fit", wodurch der Zeilenumbruch
   je nach Inhalt der Wortlängen/Links teils sehr schmal und in falscher Lesereihenfolge
   wirkte. Grid mit fester Checkbox-Spalte + 1fr-Textspalte erzwingt eine saubere,
   normale Fließtext-Umbrechnung. */
.wpac-consent-checkbox.wpac-checkbox{display:grid !important;grid-template-columns:18px 1fr;column-gap:10px;align-items:start;}
.wpac-consent-checkbox input[type=checkbox]{flex-shrink:0;margin:3px 0 0;width:16px;height:16px;}
.wpac-consent-checkbox span{display:block;line-height:1.5;}
.wpac-newsletter-optin.wpac-checkbox{display:grid !important;grid-template-columns:18px 1fr;column-gap:10px;align-items:start;}
.wpac-newsletter-optin input[type=checkbox]{flex-shrink:0;margin:3px 0 0;width:16px;height:16px;}
.wpac-newsletter-optin span{display:block;line-height:1.5;}
@media (max-width:900px){
	.wpac-checkout-layout{grid-template-columns:1fr;}
	.wpac-checkout-side{position:static;}
}

/* ── Mein Konto (eingeloggt): Linkleiste + Inhalt, siehe shortcode_myaccount() ── */
.wpac-myaccount-layout{display:grid;grid-template-columns:220px 1fr;gap:36px;align-items:start;}
.wpac-myaccount-nav{display:flex;flex-direction:column;gap:2px;background:#f7f9fb;border:1px solid #e2e2e2;border-radius:8px;padding:10px;position:sticky;top:20px;}
.wpac-myaccount-greeting{margin:4px 8px 10px;font-weight:600;color:#333;}
.wpac-myaccount-nav-link{display:block;padding:10px 12px;border-radius:6px;color:#333;text-decoration:none;font-size:.96em;}
.wpac-myaccount-nav-link:hover{background:#eaf1f8;}
.wpac-myaccount-nav-link.active{background:var(--wpac-color-primary,#1a5276);color:#fff;font-weight:600;}
.wpac-myaccount-nav-logout{margin-top:8px;padding-top:12px;border-top:1px solid #e2e2e2;color:#777;}
.wpac-myaccount-content{min-width:0;}
.wpac-myaccount-content h2{margin-top:0;}
.wpac-myaccount-content form{margin-bottom:36px;max-width:520px;}
.wpac-myaccount-content label{display:block;margin:10px 0 4px;font-weight:600;}
.wpac-myaccount-content input[type=text],.wpac-myaccount-content input[type=email],.wpac-myaccount-content select{width:100%;padding:8px;border:1px solid #ccc;border-radius:4px;box-sizing:border-box;}
.wpac-myaccount-content input:disabled{background:#f2f2f2;color:#777;}
@media (max-width:640px){
	.wpac-myaccount-layout{grid-template-columns:1fr;}
	.wpac-myaccount-nav{position:static;flex-direction:row;flex-wrap:wrap;}
	.wpac-myaccount-nav-logout{margin-top:0;padding-top:0;border-top:0;margin-left:auto;}
}
.wpac-message{padding:10px 16px;border-radius:6px;margin-bottom:16px;}
.wpac-message-error{background:#fdecea;color:#c0392b;}
.wpac-message-success{background:#eafaf1;color:var(--wpac-color-accent,#1e8449);}
.wpac-shipping-option{display:block;margin:6px 0;}
.wpac-order-success{padding:24px;background:#eafaf1;border-radius:8px;}
.wpac-order-summary{margin:16px 0 28px;padding:16px 20px;background:#f7f9fb;border:1px solid #e2e2e2;border-radius:8px;}
.wpac-order-summary h3{margin-top:0;}
.wpac-order-summary-total{margin:10px 0 4px;}
/* Kasse-Bestellübersicht als gestapelte Karten statt Tabelle (ab 1.41.0) --
   siehe render_order_summary(): in der schmalen rechten Kasse-Spalte hat eine
   mehrspaltige Tabelle keinen Platz, lange Zusatzfeld-Zeilen (Brillenglaswerte)
   wurden dort mitten im Wert umgebrochen. Jede Position bekommt hier die volle
   Spaltenbreite; .wpac-addon-summary darf innerhalb weiterhin normal
   umbrechen (kein weißer Leerraum-Overflow), hat aber deutlich mehr Platz. */
.wpac-summary-items{display:flex;flex-direction:column;gap:14px;}
.wpac-summary-item{padding-bottom:14px;border-bottom:1px solid #e2e2e2;}
.wpac-summary-item:last-child{border-bottom:none;padding-bottom:0;}
.wpac-summary-item-head{display:flex;align-items:baseline;gap:8px;}
.wpac-summary-item-qty{flex:0 0 auto;color:#666;font-size:.9em;}
.wpac-summary-item-name{flex:1;min-width:0;font-weight:600;}
.wpac-summary-item-variant{font-weight:400;color:#666;}
.wpac-summary-item .wpac-addon-summary{display:block;margin-top:4px;margin-left:26px;line-height:1.5;}
.wpac-summary-item-unit{margin:4px 0 0 26px;font-size:.85em;color:#777;}
.wpac-summary-item-total{flex:0 0 auto;margin-left:12px;font-weight:700;color:#222;white-space:nowrap;text-align:right;}

/* ── Warenkorb-Flyout (Mini-Cart) ── */
.wpac-cart-fab{position:fixed;right:24px;top:24px;z-index:9998;background:var(--wpac-color-primary,#1a5276);color:#fff;border:none;border-radius:50%;width:72px;height:72px;font-size:1.9em;cursor:pointer;box-shadow:0 3px 14px rgba(0,0,0,.28);display:flex;align-items:center;justify-content:center;transition:transform .15s ease,background .15s ease;}
.wpac-cart-fab:hover{background:var(--wpac-color-primary-dark,#154360);transform:scale(1.05);}
body.admin-bar .wpac-cart-fab{top:56px;}
@media (max-width:782px){ body.admin-bar .wpac-cart-fab{top:70px;} }
.wpac-cart-fab-count{position:absolute;top:-2px;right:-2px;background:#c0392b;color:#fff;font-size:.4em;font-weight:700;min-width:26px;height:26px;border-radius:13px;display:flex;align-items:center;justify-content:center;padding:0 5px;box-shadow:0 0 0 2px #fff;}
.wpac-cart-drawer-overlay{position:fixed;inset:0;background:rgba(0,0,0,.35);opacity:0;visibility:hidden;transition:opacity .2s;z-index:9997;}
.wpac-cart-drawer-overlay.open{opacity:1;visibility:visible;}
.wpac-cart-drawer{position:fixed;top:0;right:0;bottom:0;width:360px;max-width:92vw;background:#fff;box-shadow:-4px 0 16px rgba(0,0,0,.15);transform:translateX(100%);transition:transform .25s ease;z-index:9999;display:flex;flex-direction:column;}
.wpac-cart-drawer.open{transform:translateX(0);}
.wpac-drawer-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #eee;}
.wpac-drawer-head h3{margin:0;}
.wpac-drawer-close{background:none;border:none;font-size:1.6em;line-height:1;cursor:pointer;color:#666;}
#wpac-cart-drawer-body{flex:1;overflow-y:auto;padding:16px 20px;}
.wpac-drawer-empty{color:#777;}
.wpac-drawer-item{position:relative;padding:10px 26px 10px 0;border-bottom:1px solid #f0f0f0;}
.wpac-drawer-item-top{display:flex;align-items:flex-start;gap:10px;}
.wpac-drawer-item img{width:52px;height:52px;object-fit:cover;border-radius:6px;flex-shrink:0;}
.wpac-drawer-item-info{flex:1 1 auto;width:100%;font-size:.92em;}
.wpac-drawer-item-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:6px;padding-left:62px;font-size:.92em;}
.wpac-drawer-item-total{font-weight:600;white-space:nowrap;}
.wpac-drawer-item-unit{margin:2px 0 0;padding-left:62px;font-size:.82em;color:#888;}
.wpac-drawer-qty-stepper{display:inline-flex;align-items:center;border:1px solid #ccc;border-radius:6px;overflow:hidden;}
.wpac-qty-btn{width:26px;height:26px;line-height:1;border:none;background:#f2f4f7;color:#333;font-size:1em;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.wpac-qty-btn:hover{background:#e4e8ed;}
.wpac-drawer-qty-input{width:36px;height:26px;border:none;border-left:1px solid #ccc;border-right:1px solid #ccc;text-align:center;padding:0;font-size:.95em;box-sizing:border-box;-moz-appearance:textfield;}
.wpac-drawer-qty-input::-webkit-outer-spin-button,.wpac-drawer-qty-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.wpac-drawer-remove{position:absolute;top:8px;right:0;background:none;border:none;color:#c0392b;font-size:1.2em;cursor:pointer;line-height:1;}
.wpac-drawer-footer{padding:16px 20px;border-top:1px solid #eee;}
.wpac-drawer-total{margin:0 0 4px;}
.wpac-drawer-actions{display:flex;gap:10px;margin-top:10px;}
.wpac-drawer-actions .wpac-btn,.wpac-drawer-actions .wpac-btn-secondary{flex:1;text-align:center;padding:10px 8px;}

/* Mobil: Warenkorb-Flyout nimmt den kompletten Bildschirm ein statt als
   schmale rechte Seitenleiste über dem Inhalt zu schweben. */
@media (max-width:600px){
	.wpac-cart-drawer{top:0;right:0;bottom:0;left:0;width:100%;max-width:100%;border-radius:0;}
}

/* ── Rechtsbündige Beträge (Warenkorb, Kasse, Bestellübersicht) ── */
.wpac-col-right{text-align:right;}
.wpac-col-right input[type=number]{text-align:right;}
.wpac-cart-totals{max-width:420px;margin:18px 0;margin-left:auto;}
.wpac-totals-row{display:flex;justify-content:space-between;gap:12px;margin:4px 0;}
.wpac-totals-row.wpac-tax-line{font-size:.85em;color:#666;}
.wpac-totals-row.wpac-tax-line span:first-child{margin-left:auto;}
.wpac-totals-grand{font-size:1.2em;font-weight:700;background:#eaf1f8;border:1px solid #cfe0ef;border-radius:6px;padding:10px 14px;margin-top:10px;color:#123a5c;}
.wpac-cart-totals .wpac-legal-notice{text-align:right;}

/* ── Warenkorb-Versandkostenrechner ── */
.wpac-shipping-calculator{margin:24px 0;padding:16px 20px;background:#f7f9fb;border:1px solid #e2e2e2;border-radius:8px;}
.wpac-shipping-calculator h3{margin-top:0;}
.wpac-shipping-calc-fields{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px;}
.wpac-shipping-calc-fields label{display:flex;flex-direction:column;font-weight:600;font-size:.9em;gap:4px;}
.wpac-shipping-calc-fields select,.wpac-shipping-calc-fields input[type=text]{padding:8px;border:1px solid #ccc;border-radius:4px;}
#wpac-calc-results{margin-top:14px;}
.wpac-shipping-info-link{font-weight:400;font-size:.85em;margin-left:4px;}

/* ── Versandkosten-Seite ── */
.wpac-shipping-zone-block{margin-bottom:32px;}
.wpac-shipping-zone-countries{color:#666;font-size:.9em;margin-top:-6px;}
.wpac-weight-tiers{margin:0;padding-left:18px;}
.wpac-badge-phone{display:inline-block;font-size:.82em;color:#8a5a00;background:#fff3cd;border:1px solid #ffe29a;border-radius:4px;padding:1px 6px;margin-left:4px;white-space:nowrap;}

/* ── Kasse: strukturierte Adresszeilen ── */
.wpac-field-row{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-start;}
.wpac-field-row label{flex:1;min-width:110px;margin:0 0 14px;}
.wpac-field-row .wpac-field-narrow{flex:0 0 130px;}
.wpac-field-row .wpac-field-grow{flex:2;}
.wpac-field-row input[type=text],.wpac-field-row input[type=email],.wpac-field-row input[type=tel]{max-width:100%;}
.wpac-notice-hint{font-size:.88em;color:#8a5a00;background:#fff3cd;border:1px solid #ffe29a;border-radius:6px;padding:8px 12px;margin:6px 0 14px;}
.wpac-checkout-submit-row{display:flex;justify-content:flex-end;margin-top:18px;}
.wpac-checkout-submit-row .wpac-place-order{padding:12px 28px;}
#wpac-billing-fields{margin:10px 0 20px;padding:14px 18px;background:#f7f9fb;border:1px solid #e2e2e2;border-radius:8px;}
#wpac-billing-fields h3{margin-top:0;}
.wpac-product-category-tag{display:inline-block;font-size:.78em;color:var(--wpac-color-primary,#1a5276);background:#eaf1f8;border-radius:4px;padding:2px 8px;margin-bottom:6px;text-decoration:none;}
.wpac-product-category-tag:hover{background:var(--wpac-color-primary,#1a5276);color:#fff;}
.wpac-product-category-tags{margin:0 0 4px;}

/* ── Produktseite: Layout ──
   Bausteine sind direkte Grid-Kinder DESSELBEN Formulars -- die tatsächliche
   Anordnung kommt rein über grid-template-areas, je nach Zustand
   unterschiedlich:
   - Normalzustand: klassisch zweispaltig -- Bild + darunter Kurzbeschreibung
     links, rechts EIN gemeinsamer Block ".wpac-sidebar-stack" (Preis-Box,
     darunter die Auswahl, darunter Menge/Kaufen-Button/Vorteile), der intern
     ganz normal von oben nach unten fließt (keine eigene Grid-Zeilen-aufteilung).
     Wichtig: Preis-Box/Auswahl/Kaufen-Bereich MÜSSEN als EIN gemeinsamer
     Grid-Block behandelt werden, sonst zwingt die (oft deutlich höhere)
     Bild-Spalte über die gemeinsam genutzten Grid-Zeilen unnötigen Leerraum
     zwischen die einzelnen Bausteine der rechten Spalte (z.B. zwischen
     Preis-Box und Menge-Box) -- genau das war vorher der Fall.
   - Nach Klick auf die Kauf-Weiche ("mit Zusatzoptionen bestellen", Klasse
     .wpac-configuring auf .wpac-product-layout): die Auswahl wird zum breiten
     linken Hauptbereich, Bild+Name wandern zusammen mit Preis/Menge/Kaufen/
     Vorteilen nach oben rechts in eine schmale Sidebar (die Kurzbeschreibung
     wird dort ausgeblendet, siehe unten -- zu wenig Platz in der Sidebar). In
     diesem Zustand wird ".wpac-sidebar-stack" per display:contents "unsichtbar"
     gemacht (nur der Wrapper verschwindet aus dem Layout-Baum, seine Kinder
     bleiben) -- so können Preis-Box/Auswahl/Kaufen-Bereich weiterhin einzeln
     an eigene Grid-Bereiche angedockt werden, ohne den Wrapper aus dem
     Normalzustand aufgeben zu müssen.
   Keine DOM-Umsortierung nötig, nur CSS -- alle Felder bleiben unabhängig vom
   Zustand echte Nachkommen des <form>, wichtig für die JS-Feldabfragen. */
.wpac-add-to-cart-form{
	display:grid;
	/* Gleiches Spaltenverhältnis wie im Konfigurationsmodus weiter unten
	   (dort: breite flexible Hauptspalte + feste 380px-Sidebar) -- vorher
	   hatte die normale Ansicht eine auf 460px GEDECKELTE Bildspalte und eine
	   flexible (potenziell sehr breite) Preis-Spalte, was im Vergleich zum
	   Konfigurationsmodus optisch völlig anders wirkte.
	   Ab 1.47.6: "tabs" (Produktbeschreibung/Eigenschaften & Größe/
	   Herstellerinformationen, siehe .wpac-product-tabs) ist jetzt ebenfalls
	   ein Grid-Kind DESSELBEN Formulars statt separat und volle Breite danach
	   zu folgen -- rutscht dadurch schmal (nur linke Spaltenbreite) direkt
	   unter Bild/Kurzbeschreibung, während die (durch die Gewährleistungs-
	   grafik jetzt oben in der Sidebar deutlich höhere) rechte Spalte daneben
	   weiterläuft. Vorher blieb unter dem Bild eine große Leerfläche, weil die
	   Tabs erst NACH dem gesamten zweispaltigen Bereich in voller Breite
	   folgten. */
	grid-template-columns:1fr 380px;
	grid-template-areas:
		"title title"
		"gallery sidebar"
		"shortdesc sidebar"
		"tabs sidebar";
	column-gap:36px;
	row-gap:0;
	align-items:start;
	margin-top:16px;
}
.wpac-product-gallery{grid-area:gallery;width:100%;}
.wpac-product-name{grid-area:title;margin:14px 0 16px;font-size:1.5em;line-height:1.3;}
.wpac-short-description-inline{grid-area:shortdesc;}
.wpac-sidebar-stack{grid-area:sidebar;}
.wpac-add-to-cart-form>.wpac-product-tabs{grid-area:tabs;margin-top:20px;}

.wpac-product-layout.wpac-configuring .wpac-add-to-cart-form{
	grid-template-columns:1fr 380px;
	/* Gewährleistungsgrafik bewusst NACH summary-bottom (also unterhalb der
	   Vorteile-Liste) statt direkt über dem Preis wie im Normalzustand: In der
	   schmalen Sidebar während der Zusatzoptionen-Konfiguration (z.B.
	   Glasstärke) schob die ca. 380px hohe Grafik dort sonst den Preis inkl.
	   Aufpreis-Anzeige der gewählten Option ("Preisanzeige für die Add-ons")
	   unten aus dem sichtbaren Bereich -- gerade während der Konfiguration
	   muss der Preis aber jederzeit erkennbar bleiben. */
	grid-template-areas:
		"config gallery"
		"config title"
		"config summary-top"
		"config summary-bottom"
		"config badge"
		"config benefits"
		"tabs tabs";
}
/* Siehe Erklärung oben: Wrapper "verschwindet" aus dem Layout, seine Kinder
   (jetzt inkl. Gewährleistungsgrafik) werden wieder zu eigenständigen
   Grid-Bausteinen mit eigenem Bereich. Im Konfigurationsmodus bleiben die
   Tabs bewusst UNTER der schmalen rechten Spalte in voller Breite (eigene
   "tabs tabs"-Zeile unten, siehe .wpac-product-layout.wpac-configuring
   .wpac-product-tabs) statt daneben -- die linke Hauptspalte ist dort bereits
   die breite Auswahl/der Assistent selbst, kein Bild mit Leerfläche darunter. */
.wpac-product-layout.wpac-configuring .wpac-sidebar-stack{display:contents;}
.wpac-product-layout.wpac-configuring .wpac-warranty-badge{grid-area:badge;}
.wpac-product-layout.wpac-configuring .wpac-product-benefits{grid-area:benefits;}
.wpac-product-layout.wpac-configuring .wpac-form-summary-top{grid-area:summary-top;}
.wpac-product-layout.wpac-configuring .wpac-form-config{grid-area:config;}
.wpac-product-layout.wpac-configuring .wpac-form-summary-bottom{grid-area:summary-bottom;}
.wpac-product-layout.wpac-configuring .wpac-add-to-cart-form>.wpac-product-tabs{grid-area:tabs;margin-top:20px;}
.wpac-product-layout.wpac-configuring .wpac-product-thumbs{gap:6px;}
.wpac-product-layout.wpac-configuring .wpac-product-thumb{width:48px;height:48px;}
.wpac-product-layout.wpac-configuring .wpac-product-name{margin-top:14px;font-size:1.25em;}
/* Kurzbeschreibung bewusst nur auf der normalen Produktseite sichtbar -- im
   engen Konfigurationsmodus (Kauf-Weiche aufgeklappt) würde sie die schmale
   Sidebar unnötig überladen, und die zugehörige Grid-Area "shortdesc" ist im
   .wpac-configuring-Zustand ohnehin nicht mehr im Template enthalten. */
.wpac-product-layout.wpac-configuring .wpac-short-description-inline{display:none;}

.wpac-config-heading{margin:0 0 10px;font-size:1.15em;}
.wpac-product-image-btn{display:block;width:100%;padding:0;border:none;background:none;cursor:zoom-in;}
.wpac-product-thumbs{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;}
.wpac-product-thumb{padding:0;border:2px solid transparent;border-radius:6px;background:none;cursor:pointer;width:56px;height:56px;overflow:hidden;}
.wpac-product-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.wpac-product-thumb.active,.wpac-product-thumb:hover{border-color:var(--wpac-color-primary,#1a5276);}
.wpac-form-summary-top{background:#f7f9fa;border:1px solid #e2e6e8;border-radius:8px;padding:14px 16px;}
.wpac-form-summary-top .wpac-price{font-size:1.6em;margin:0;}
.wpac-form-summary-top .wpac-legal-notice{margin:2px 0 12px;}
.wpac-form-summary-bottom{background:#f7f9fa;border:1px solid #e2e6e8;border-top:none;border-radius:0 0 8px 8px;padding:14px 16px;margin-top:-1px;}
.wpac-shipping-time-lines{font-size:.92em;color:#2e7d32;margin:6px 0 14px;}
.wpac-shipping-time-lines>div{margin:2px 0;}
.wpac-shipping-time-lines .wpac-shipping-time-extra{color:#555;}
/* Vor der Konfiguration nur die Basis-Lieferzeit zeigen, während/nach der
   Konfiguration nur die Zeile inkl. Zusatzoptionen (Brillengläser) -- beide
   gleichzeitig nebeneinander wirkte unübersichtlich, siehe Rückmeldung. */
.wpac-product-layout.wpac-configuring .wpac-shipping-time-lines .wpac-shipping-time-base{display:none;}
.wpac-shipping-time-lines .wpac-shipping-time-extra{display:none;}
.wpac-product-layout.wpac-configuring .wpac-shipping-time-lines .wpac-shipping-time-extra{display:block;}
/* Lagerbestand des Rahmens (.wpac-variant-meta) ist während der
   Zusatzoptionen-Konfiguration (z.B. Glaswerte) fehl am Platz -- bezieht sich
   auf die Rahmen-Variante, nicht auf die gerade gewählten Glasoptionen. */
.wpac-product-layout.wpac-configuring .wpac-variant-meta{display:none;}
.wpac-qty-row{display:flex;align-items:center;gap:12px;margin:0 0 14px;}
.wpac-qty-row label{font-weight:600;margin:0;}
.wpac-qty-row .wpac-qty{width:70px;padding:8px;border:1px solid #ccc;border-radius:4px;}
.wpac-add-to-cart-form .wpac-btn.wpac-add-to-cart{display:inline-block;margin-top:4px;width:100%;box-sizing:border-box;}
.wpac-addon-fork-buttons{display:flex;flex-direction:column;gap:10px;margin-top:6px;}
.wpac-addon-fork-buttons .wpac-btn{text-align:center;box-sizing:border-box;}
/* Eigener, kontraststarker Stil statt der dünn umrandeten Standard-"Secondary"-Variante --
   der dünne blaue Rahmen auf weißem Grund war auf manchen Bildschirmen/bei manchen Themes
   schwer lesbar. */
.wpac-addon-fork-buttons .wpac-addon-fork-skip{background:#5a6b78;color:#fff;border:2px solid #5a6b78;}
.wpac-addon-fork-buttons .wpac-addon-fork-skip:hover{background:#465560;border-color:#465560;color:#fff;}
@media (max-width:820px){
	.wpac-add-to-cart-form,
	.wpac-product-layout.wpac-configuring .wpac-add-to-cart-form{
		/* WICHTIG: grid-template-columns muss hier für BEIDE Zustände erneut auf
		   1fr gesetzt werden. Die Regel für .wpac-configuring weiter oben
		   (grid-template-columns:1fr 380px) hat wegen höherer Selektor-Spezifität
		   (3 Klassen statt 1) sonst weiterhin Vorrang, obwohl sie außerhalb dieser
		   Media Query steht -- Media Queries erhöhen die Spezifität NICHT. Ohne
		   diese Zeile bleibt auf Mobilgeräten im Konfigurationsmodus eine
		   unsichtbare 380px-Spalte rechts stehen und der Inhalt wird sichtbar
		   nach links gequetscht. */
		grid-template-columns:1fr;
	}
	.wpac-add-to-cart-form{grid-template-areas:"title" "gallery" "shortdesc" "sidebar" "tabs";}
	.wpac-product-layout.wpac-configuring .wpac-add-to-cart-form{grid-template-areas:"gallery" "title" "summary-top" "config" "summary-bottom" "badge" "benefits" "tabs";}
}
.wpac-lightbox{position:fixed;inset:0;background:rgba(0,0,0,.85);display:flex;align-items:center;justify-content:center;z-index:10000;opacity:0;visibility:hidden;transition:opacity .2s;}
.wpac-lightbox.open{opacity:1;visibility:visible;}
.wpac-lightbox img{max-width:92vw;max-height:88vh;border-radius:6px;}
.wpac-lightbox-close{position:absolute;top:20px;right:28px;background:none;border:none;color:#fff;font-size:2.2em;line-height:1;cursor:pointer;}

/* ── Produktseite: Kurzbeschreibung (jetzt unterhalb des Bildes, siehe Grid-Area
   "shortdesc" oben) + Detail-Tabs ── */
.wpac-short-description-inline{margin:14px 0 0;font-size:.98em;color:#333;line-height:1.5;}
.wpac-readmore-link{white-space:nowrap;color:var(--wpac-color-primary,#1a5276);font-weight:600;text-decoration:none;margin-left:4px;}
.wpac-readmore-link:hover{text-decoration:underline;}
.wpac-product-tabs{margin-top:20px;border:1px solid #e2e2e2;border-radius:8px;overflow:hidden;}
.wpac-tab-nav{display:flex;overflow-x:auto;-webkit-overflow-scrolling:touch;background:#f0f2f5;scrollbar-width:thin;}
.wpac-tab-btn{flex:0 0 auto;white-space:nowrap;padding:14px 18px;background:none;border:none;border-bottom:3px solid transparent;cursor:pointer;font-weight:600;font-size:.95em;color:#555;}
.wpac-tab-btn:hover{color:var(--wpac-color-primary,#1a5276);}
.wpac-tab-btn.active{color:var(--wpac-color-primary,#1a5276);border-bottom-color:var(--wpac-color-primary,#1a5276);background:#fff;}
.wpac-tab-panel{display:none;padding:18px 20px;font-size:.95em;color:#333;line-height:1.6;}
.wpac-tab-panel.active{display:block;}

/* Mobil: Reiter (z.B. "Hersteller") wurden bei schmaler werdender Nav-Leiste
   abgeschnitten, weil sie in einer Reihe nebeneinander mit horizontalem
   Scrollen dargestellt wurden -- stattdessen werden sie untereinander
   gestapelt, jeder Reiter über die volle Breite. */
@media (max-width:600px){
	.wpac-tab-nav{flex-direction:column;overflow-x:visible;}
	.wpac-tab-btn{width:100%;text-align:left;border-bottom:1px solid #e2e2e2;border-left:3px solid transparent;padding:12px 16px;}
	.wpac-tab-btn.active{border-left-color:var(--wpac-color-primary,#1a5276);border-bottom-color:#e2e2e2;}
}
.wpac-detail-table{border-collapse:collapse;width:100%;max-width:520px;}
.wpac-detail-table th{text-align:left;font-weight:600;padding:6px 16px 6px 0;color:#555;white-space:nowrap;vertical-align:top;}
.wpac-detail-table td{padding:6px 0;}
.wpac-detail-table tr:not(:last-child) th,.wpac-detail-table tr:not(:last-child) td{border-bottom:1px solid #f0f0f0;}
.wpac-dim-diagram-wrap{position:relative;width:100%;max-width:520px;margin:6px auto;}
.wpac-dim-diagram-img{display:block;width:100%;height:auto;}
.wpac-dim-overlay{position:absolute;inset:0;width:100%;height:100%;}

/* ── Produktseite: Multi-Step-Konfigurations-Assistent (Kauf-Weiche mit
   mehreren Schritten -- Bild/Text je Schritt im Backend hinterlegbar, siehe
   Zusatzfeld-Konfigurationen). Bei nur einem Schritt kommt weiterhin die
   schlichte .wpac-addon-fields-wrap-Anzeige ohne dieses Markup zum Einsatz. ── */
.wpac-wizard-progress{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:18px;}
.wpac-wizard-dot{display:flex;align-items:center;justify-content:center;min-width:26px;height:26px;padding:0 8px;border-radius:13px;background:#e2e6e8;color:#666;font-size:.82em;font-weight:600;cursor:pointer;user-select:none;}
.wpac-wizard-dot.active{background:var(--wpac-color-primary,#1a5276);color:#fff;}
.wpac-wizard-dot-summary{font-weight:600;}
.wpac-wizard-step-title{margin:0 0 12px;font-size:1.2em;}
.wpac-wizard-step-image{display:block;width:100%;height:auto;max-width:100%;object-fit:contain;margin:0 auto 14px;border-radius:6px;}
.wpac-wizard-step-description{margin:0 0 16px;color:#444;line-height:1.55;font-size:.95em;}
.wpac-wizard-nav{display:flex;justify-content:space-between;gap:10px;margin-top:20px;}
.wpac-wizard-nav .wpac-btn{flex:0 0 auto;}
.wpac-wizard-nav .wpac-wizard-next,.wpac-wizard-nav .wpac-wizard-confirm{margin-left:auto;}
.wpac-wizard-error{margin:0 0 14px;padding:8px 12px;background:#fdecea;border:1px solid #f5c6c0;border-radius:6px;color:#a12a1f;font-size:.9em;}
.wpac-wizard-summary-list{display:flex;flex-direction:column;gap:14px;margin-bottom:6px;}
.wpac-wizard-summary-item{padding:12px 14px;background:#fff;border:1px solid #e2e6e8;border-radius:6px;position:relative;}
.wpac-wizard-summary-item h4{margin:0 0 6px;font-size:.95em;color:var(--wpac-color-primary,#1a5276);}
.wpac-wizard-summary-item ul{margin:0;padding-left:18px;font-size:.92em;line-height:1.6;}
.wpac-wizard-edit-link{position:absolute;top:10px;right:12px;border:0;background:none;color:var(--wpac-color-primary,#1a5276);font-weight:600;font-size:.85em;text-decoration:underline;cursor:pointer;padding:0;}
.wpac-wizard-edit-link:hover{color:#0f3550;}

/* Mobil: fester Gesamtpreis-Balken unten, solange der Konfigurations-Assistent
   offen ist (Desktop zeigt den Preis ohnehin dauerhaft in der Seitenleiste). */
.wpac-wizard-sticky-total{display:none;}
@media (max-width:782px){
	.wpac-wizard-sticky-total{display:flex;align-items:center;justify-content:space-between;gap:10px;position:fixed;left:0;right:0;bottom:0;width:100%;box-sizing:border-box;z-index:9990;padding:12px 18px;padding-left:calc(18px + env(safe-area-inset-left));padding-right:calc(18px + env(safe-area-inset-right));padding-bottom:calc(12px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #dfe3e6;box-shadow:0 -3px 12px rgba(0,0,0,.1);}
	.wpac-wizard-sticky-total-label{flex:0 0 auto;font-size:.85em;color:#666;text-transform:uppercase;letter-spacing:.03em;}
	.wpac-wizard-sticky-total-value{flex:0 0 auto;font-size:1.25em;font-weight:700;color:#123a5c;white-space:nowrap;}
	/* Platz schaffen, damit der letzte Wizard-Inhalt/Button nicht unter dem
	   fest positionierten Balken verschwindet. */
	.wpac-wizard{padding-bottom:64px;}
}

/* ── Produktseite: kompakte Eigenschaften-Anzeige im Hauptbereich (unter der Auswahl) ──
   Ab 1.47.0 gestapelt statt nebeneinander (Liste oben, Bemaßungsgrafik darunter) --
   vorher waren beide Spalte an Spalte, was auf breiten Bildschirmen neben der jetzt
   höheren Warenkorb-Sidebar (Gewährleistungslabel) zu viel Leerraum rechts der Liste
   erzeugte. */
.wpac-eig-groesse{display:flex;flex-direction:column;gap:24px;}
.wpac-eig-list{margin:0;padding:0;list-style:none;max-width:720px;display:flex;flex-wrap:wrap;}
.wpac-eig-list li{padding:5px 16px 5px 0;border-bottom:1px solid #f0f0f0;flex:1 1 45%;box-sizing:border-box;}
.wpac-eig-list li:last-child{border-bottom:none;}
.wpac-eig-link{color:inherit;text-decoration:underline;text-decoration-color:rgba(0,0,0,0.25);text-underline-offset:2px;}
.wpac-eig-link:hover{text-decoration-color:currentColor;}
.wpac-eig-diagram{max-width:520px;}

/* ── Gesetzliche Gewährleistung: Grafik unter dem Warenkorb-Button
   (Produktseite) und über dem Gutschein-Feld (Kasse), siehe warranty_badge_html().
   RECHTLICH BINDEND (ab 1.47.5): NICHT als kleines, nur per Klick lesbares
   Vorschaubild -- QR-Code und Text müssen sofort und ohne jede Interaktion mit
   bloßem Auge lesbar bzw. scannbar sein. Daher volle Breite bis 420px (deutlich
   über der vorgegebenen 300–500px-Spanne, bewusst am oberen Rand statt in der
   Mitte, um auf der sicheren Seite zu sein), keine künstliche Verkleinerung.
   Bleibt zusätzlich anklickbar (öffnet die Originalgrafik in voller Auflösung),
   das ist aber nur ein Zusatznutzen -- die Lesbarkeit darf NICHT davon abhängen. ── */
.wpac-warranty-badge{display:block;margin:16px 0;width:100%;max-width:420px;}
.wpac-warranty-badge img{display:block;width:100%;height:auto;border:1px solid #dcdcde;border-radius:6px;box-shadow:0 1px 3px rgba(0,0,0,.08);}
.wpac-warranty-badge:hover img{box-shadow:0 2px 6px rgba(0,0,0,.14);}
.wpac-coupon-box .wpac-warranty-badge{margin:0 0 18px;}

/* ── Produktübersicht: Filter-Seitenleiste ── */
.wpac-shop-layout{display:flex;gap:32px;align-items:flex-start;}
.wpac-shop-sidebar{flex:0 0 240px;padding:16px 18px;background:#f7f9fb;border:1px solid #e2e2e2;border-radius:8px;}
.wpac-shop-sidebar h3{margin:0 0 12px;font-size:1.05em;}
.wpac-filter-group{margin-bottom:18px;}
.wpac-filter-group h4{margin:0 0 8px;font-size:.9em;text-transform:uppercase;letter-spacing:.03em;color:#666;}
.wpac-filter-option{display:flex;align-items:center;gap:6px;font-size:.92em;margin:5px 0;cursor:pointer;}
.wpac-filter-count{color:#999;font-size:.9em;}
.wpac-filter-submit{width:100%;text-align:center;margin-top:4px;}
.wpac-filter-reset{display:block;text-align:center;margin-top:10px;font-size:.88em;color:#c0392b;text-decoration:none;}
.wpac-filter-reset:hover{text-decoration:underline;}
.wpac-shop-layout .wpac-shop-grid{flex:1 1 auto;margin-top:0;}
.wpac-shop-main{flex:1 1 auto;min-width:0;}
.wpac-shop-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin:0 0 14px;}
.wpac-shop-toolbar-label{font-size:.92em;color:#555;}
.wpac-sort-select{padding:6px 10px;border:1px solid #ccc;border-radius:4px;background:#fff;font-size:.92em;}
@media (max-width:782px){ .wpac-shop-layout{flex-direction:column;} .wpac-shop-sidebar{flex:1 1 auto;width:100%;box-sizing:border-box;} .wpac-shop-toolbar{justify-content:flex-start;} }

/* ── Warenkorb-Flyout: allgemeine Vorteile ──
   Entfernt: Vorteile sollen nur während der Produktkonfiguration sichtbar sein (siehe
   .wpac-product-benefits), nicht mehr danach im Warenkorb/Flyout. */

/* ── Produktseite: allgemeine Vorteile, direkt unter dem Warenkorb-Button in der
   Sidebar -- bewusst nur solange sichtbar, wie der Kunde noch konfiguriert/kauft;
   im Warenkorb selbst (Flyout & Seite) werden sie nicht mehr angezeigt.
   Ab 1.47.7 ein eigenständiger Grid-Baustein statt Teil von
   .wpac-form-summary-bottom (siehe dortiger Kommentar in wpac-public.php) --
   daher jetzt mit eigenem Kasten-Look (Hintergrund/Rahmen/abgerundete
   Unterkante, per negativem margin-top nahtlos an summary-bottom andockend),
   damit es im Normalzustand weiterhin wie ein durchgehender Kasten aussieht.
   Im Konfigurationsmodus (Grafik + Vorteile weiter unten, siehe grid-area)
   wirkt es dort als eigener kleiner Kasten -- ebenfalls stimmig. ── */
.wpac-product-benefits{list-style:none;margin:-1px 0 0;padding:14px 16px;background:#f7f9fa;border:1px solid #e2e6e8;border-top:1px solid #eee;border-radius:0 0 8px 8px;}
.wpac-product-benefits li{font-size:.92em;color:#2e7d32;padding:4px 0 4px 22px;position:relative;}
.wpac-product-benefits li::before{content:"✓";position:absolute;left:0;font-weight:700;}

/* ── Produktseite: Farb-/Options-Swatches ── */
.wpac-swatch-group{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 6px;}
.wpac-swatch{width:34px;height:34px;border-radius:50%;border:2px solid #ddd;background-color:#eee;background-size:cover;background-position:center;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;transition:border-color .15s ease;}
.wpac-swatch:hover{border-color:#9fb8cc;}
.wpac-swatch.active{border-color:var(--wpac-color-primary,#1a5276);box-shadow:0 0 0 2px rgba(26,82,118,.2);}
.wpac-swatch-fallback{font-size:.85em;font-weight:700;color:#666;text-transform:uppercase;}
.wpac-swatch-label{margin:0 0 4px;font-size:.88em;color:#555;}
.wpac-option-select-hidden{display:none;}

/* ── Warenkorb-Flyout: kompakter Versandkostenrechner ── */
.wpac-drawer-shipping-calc{margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid #eee;}
.wpac-drawer-shipping-calc label{display:block;font-weight:600;font-size:.88em;margin-bottom:6px;}
.wpac-drawer-shipping-calc-row{display:flex;gap:8px;}
.wpac-drawer-shipping-calc-row select{flex:1;padding:6px;border:1px solid #ccc;border-radius:4px;}
.wpac-drawer-shipping-calc-row .wpac-btn-secondary{padding:6px 12px;font-size:.9em;}
#wpac-drawer-calc-results{margin-top:10px;font-size:.9em;}

.wpac-order-detail-table{width:100%;border-collapse:collapse;margin:12px 0 24px;}
.wpac-order-detail-table th{text-align:left;padding:8px 16px 8px 0;color:#555;font-weight:600;width:200px;vertical-align:top;}
.wpac-order-detail-table td{padding:8px 0;border-bottom:1px solid #f0f0f0;}
.wpac-order-item-addon{color:#666;font-size:.9em;}

/* ── Kontaktformular ([wpac_contact], Smart-HelpDesk-Integration) ── */
.wpac-contact-form{max-width:560px;}
.wpac-contact-form .wpac-loading{color:#666;}
.wpac-contact-field{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin:0 0 16px;font-weight:600;text-align:left;}
.wpac-contact-field input[type=text],.wpac-contact-field input[type=email],.wpac-contact-field select,.wpac-contact-field textarea{width:100%;padding:8px;border:1px solid #ccc;border-radius:4px;font-weight:400;box-sizing:border-box;font-family:inherit;font-size:1em;}
.wpac-contact-field textarea{resize:vertical;}
.wpac-required{color:#c0392b;}
.wpac-checkbox-label{flex-direction:row;display:flex;align-items:flex-start;gap:8px;font-weight:400;margin:12px 0;}
.wpac-checkbox-label input[type=checkbox]{margin-top:3px;}
.wpac-contact-field-file{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin:0 0 16px;font-weight:600;}
.wpac-contact-file-note{font-weight:400;font-size:.85em;color:#777;}
.wpac-contact-file-list{display:flex;flex-wrap:wrap;gap:8px;font-weight:400;font-size:.9em;}
.wpac-contact-file-uploaded{background:#f0f4f6;border-radius:4px;padding:4px 8px;}
.wpac-contact-file-remove{border:none;background:none;color:#c0392b;cursor:pointer;font-size:1em;margin-left:4px;}
.wpac-honeypot{position:absolute;left:-9999px;top:-9999px;}
.wpac-contact-response{margin:12px 0;}
.wpac-contact-form .wpac-btn:disabled{opacity:.6;cursor:not-allowed;}

/* ── Newsletter-Anmeldeformular ([wpac_newsletter]) ── */
.wpac-newsletter-signup-form{max-width:420px;display:flex;flex-direction:column;gap:14px;}
.wpac-newsletter-signup-form label{display:flex;flex-direction:column;align-items:flex-start;gap:4px;font-weight:600;}
.wpac-newsletter-signup-form input[type=email]{width:100%;padding:8px;border:1px solid #ccc;border-radius:4px;font-weight:400;box-sizing:border-box;font-size:1em;}

/* ── brillenretter-Marktplatz: Angebot einstellen ([wpac_sell_glasses] bzw.
   Reiter "Angebot einstellen" im Kundenkonto) ── */
.wpac-sell-listing-form{max-width:900px;width:100%;}
.wpac-form-section{background:#fff;border:1px solid #e2e6ea;border-radius:10px;padding:20px 24px;margin:0 0 20px;}
.wpac-form-section h3{margin:0 0 4px;font-size:1.1em;}
.wpac-form-section h4{margin:20px 0 6px;font-size:1em;}
.wpac-form-section-hint{margin:0 0 16px;color:#6b7280;font-size:.9em;}
.wpac-form-section label{display:block;margin:0 0 14px;font-weight:600;font-size:.9em;}
.wpac-form-section label>input[type=text],.wpac-form-section label>input[type=number],.wpac-form-section label>input[type=email],.wpac-form-section label>select{display:block;width:100%;box-sizing:border-box;height:40px;padding:6px 10px;margin-top:6px;font-weight:400;font-size:1em;border:1px solid #cbd2d9;border-radius:6px;}
.wpac-form-section label>textarea{display:block;width:100%;box-sizing:border-box;padding:8px 10px;margin-top:6px;font-weight:400;font-size:1em;border:1px solid #cbd2d9;border-radius:6px;}
.wpac-form-section label>input[type=file]{display:block;margin-top:6px;font-weight:400;}
.wpac-form-section .wpac-field-row>label{margin:0 0 14px;}
.wpac-form-section .wpac-grid-4{display:flex;gap:16px;margin:0 0 14px;}
.wpac-form-section .wpac-grid-4>label{flex:1 1 0;min-width:0;margin:0;}
.wpac-form-section .wpac-grid-4>label[hidden]{display:none;}
.wpac-checkbox-group{display:flex;flex-wrap:wrap;gap:4px 18px;margin:6px 0 0;}
.wpac-checkbox-group .wpac-checkbox{margin:0;font-weight:400;}
.wpac-checkbox-group-field{flex:1 1 220px;margin:0 0 14px;}
.wpac-checkbox-group-label{display:block;font-weight:600;font-size:.9em;}
.wpac-multiselect-field{flex:1 1 200px;margin:0 0 14px;}
.wpac-multiselect-label{display:block;font-weight:600;font-size:.9em;margin:0 0 6px;}
.wpac-multiselect{position:relative;}
.wpac-multiselect-toggle{display:block;width:100%;box-sizing:border-box;height:40px;padding:6px 30px 6px 10px;font-weight:400;font-size:1em;text-align:left;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='%23555' d='M5.5 7.5l4.5 5 4.5-5z'/%3E%3C/svg%3E") no-repeat right 8px center;background-size:16px;border:1px solid #cbd2d9;border-radius:6px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.wpac-multiselect-toggle:focus{outline:2px solid var(--wpac-color-primary,#1a5276);outline-offset:1px;}
.wpac-multiselect-panel{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:20;max-height:220px;overflow-y:auto;background:#fff;border:1px solid #cbd2d9;border-radius:6px;box-shadow:0 4px 14px rgba(0,0,0,.12);padding:8px 12px;}
.wpac-multiselect-panel .wpac-checkbox{display:block;margin:4px 0;font-weight:400;}
.wpac-brand-other-row{margin-top:-4px;}
.wpac-rx-side-label{font-weight:600;margin:12px 0 6px;font-size:.9em;}
.wpac-rx-side-label:first-child{margin-top:0;}
.wpac-rx-fields{transition:opacity .15s ease;}
.wpac-rx-fields.wpac-rx-fields-disabled{opacity:.45;}
.wpac-glasses-extra{margin-top:6px;}
.wpac-listing-photos-hint{display:block;font-weight:400;font-size:.85em;color:#777;margin-top:4px;}

/* ── brillenretter-Marktplatz: "Laufende Angebote"/"Verkäufe" im Kundenkonto ── */
.wpac-marketplace-listing-thumb{width:48px;height:48px;object-fit:cover;border-radius:4px;display:block;}
.wpac-listing-status{display:inline-block;padding:3px 10px;border-radius:12px;font-size:.85em;font-weight:600;background:#eef1f3;color:#555;}
.wpac-listing-status-active{background:#eafaf1;color:#1e8449;}
.wpac-listing-status-reserved{background:#fff3cd;color:#8a5a00;}
.wpac-listing-status-sold{background:#eaf1f8;color:#1a5276;}
.wpac-listing-status-pending_review{background:#eef1f3;color:#555;}
.wpac-listing-status-cancelled,.wpac-listing-status-rejected{background:#fdecea;color:#c0392b;}
.wpac-inline-form{margin:0;}
.wpac-cancel-listing-btn{padding:0;}
.wpac-marketplace-listings-table td a{margin-right:10px;}

/* Kontakt-Button/-Formular auf der Angebotsseite (siehe WPAC_Marketplace::render_contact_form_html()) */
.wpac-marketplace-contact{margin-top:10px;}
.wpac-contact-seller-form{margin-top:10px;}
.wpac-contact-seller-form label{display:block;margin-bottom:10px;}
.wpac-contact-seller-form input[type=text],.wpac-contact-seller-form input[type=email],.wpac-contact-seller-form textarea{width:100%;box-sizing:border-box;}
/* Honeypot-Feld: für echte Nutzer unsichtbar, von Formular-Bots aber häufig ausgefüllt (siehe WPAC_Marketplace::handle_contact_seller()) */
.wpac-contact-website-row{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;}

/* Werbeanzeigen zwischen den Angeboten im Shop-Grid (siehe WPAC_Ads) */
.wpac-ad-card{position:relative;}
.wpac-ad-card-link{display:block;color:inherit;text-decoration:none;}
.wpac-ad-card-badge{position:absolute;top:8px;right:8px;padding:2px 8px;border-radius:10px;font-size:.72em;font-weight:600;background:rgba(0,0,0,.55);color:#fff;letter-spacing:.02em;}
