/**
 * WP windpark – Zusatzstile für Shop, Checkout, Warenkorb und Produktseite.
 *
 *  #5  Menü-Warenkorb nur wenn gefüllt + „new in store" entfernen
 *  Bon Kassenbon-Optik (.wpwindpark-receipt) mit Zackenrand, leicht grau
 *  Checkout 30/70 (Bon links, Formular rechts) + Zahlungsart-Häkchen + Buttons
 *  Warenkorb 30/70 (Bon links, Gutschein/Buttons/Versand/Summe rechts)
 *  Swiper-Bilder mit dezentem Innenabstand
 *  Produktseite: langer Infotext einklappbar (Fade + Pfeil)
 *
 * Farben: Bon leicht grau #eaecec, Text/Linien #151215, Seite #fcf9f8.
 */

/* =========================================================================
 * #5  Menü-Warenkorb nur anzeigen, wenn gefüllt + Cross-Sells aus
 * ====================================================================== */
.wpmenucartli.is-empty {
	display: none !important;
}
.cross-sells,
.cart-collaterals .cross-sells,
.wc-block-cart__cross-sells,
.wc-block-cart-cross-sells,
.wp-block-woocommerce-cart-cross-sells-block {
	display: none !important;
}

/* =========================================================================
 * Warenkorb-Toast: kurze Meldung am oberen Bildschirmrand
 * („… wurde in den warenkorb gelegt") – fährt von oben herein und blendet
 * nach kurzer Zeit von selbst wieder aus (Steuerung in wp-windpark-atc.js).
 * ====================================================================== */
.wpw-toast {
	position: fixed;
	top: 0;
	left: 50%;
	z-index: 2147483001;
	/* So breit wie der Text (eine Zeile); erst wenn der Bildschirm zu schmal
	   ist (Text breiter als 92vw), greift max-width und der Text bricht um. */
	width: max-content;
	max-width: 92vw;
	margin: 0;
	padding: 13px 22px;
	background: #fcf9f8;
	color: #151215;
	border: 1px solid #151215;
	border-top: 0;
	border-radius: 0 0 3px 3px;
	box-shadow: 0 10px 30px -16px rgba( 21, 18, 21, 0.5 );
	font-size: 16px;
	line-height: 1.35;
	text-align: center;
	text-transform: lowercase;
	cursor: default;
	opacity: 0;
	transform: translate( -50%, -100% );
	transition: transform 0.34s cubic-bezier( 0.33, 0, 0.2, 1 ), opacity 0.34s ease;
}
.wpw-toast.is-visible {
	opacity: 1;
	transform: translate( -50%, 0 );
}
@media ( prefers-reduced-motion: reduce ) {
	.wpw-toast {
		transition-duration: 1ms;
	}
}

/* =========================================================================
 * Kassenbon-Optik (.wpwindpark-receipt) – leicht grau, Zackenrand
 * ====================================================================== */
.wpwindpark-receipt {
	position: relative;
	background: #eaecec;
	color: #151215;
	padding: 20px 20px 22px;
	margin: 16px 0 28px;
}

/* Zackenrand oben (Spitzen oben) + unten (Spitzen unten), in Bon-Farbe. */
.wpwindpark-receipt::before,
.wpwindpark-receipt::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	height: 10px;
	background-repeat: repeat-x;
	background-size: 16px 10px;
}
.wpwindpark-receipt::before {
	top: -10px;
	background-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='16'%20height='10'%3E%3Cpath%20d='M0%2010L8%200L16%2010Z'%20fill='%23eaecec'/%3E%3C/svg%3E");
}
.wpwindpark-receipt::after {
	bottom: -10px;
	background-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='16'%20height='10'%3E%3Cpath%20d='M0%200L8%2010L16%200Z'%20fill='%23eaecec'/%3E%3C/svg%3E");
}

/* Tabellen im Bon: rahmenlos, transparent, schlichte Bon-Zeilen */
.wpwindpark-receipt table {
	width: 100% !important;
	margin: 0 !important;
	background: transparent !important;
	border: 0 !important;
	border-collapse: collapse !important;
}
.wpwindpark-receipt th,
.wpwindpark-receipt td {
	background: transparent !important;
	border: 0 !important;
	padding: 6px 0 !important;
	vertical-align: top;
	line-height: 1.4;
}
.wpwindpark-receipt td:last-child,
.wpwindpark-receipt th:last-child {
	text-align: right;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
/* erste Zeile (Kopf) bewusst schlicht: KEINE Hintergrundfarbe, dezente Linie */
.wpwindpark-receipt thead th {
	background: transparent !important;
	color: #151215 !important;
	font-weight: normal;
	border-bottom: 1px dashed #151215 !important;
	padding-bottom: 9px !important;
}
.wpwindpark-receipt tfoot td,
.wpwindpark-receipt tfoot th {
	padding-top: 8px !important;
}
.wpwindpark-receipt .cart-subtotal th,
.wpwindpark-receipt tfoot tr:first-child th,
.wpwindpark-receipt tfoot tr:first-child td {
	border-top: 1px dashed #151215 !important;
	padding-top: 9px !important;
}
.wpwindpark-receipt .order-total th,
.wpwindpark-receipt .order-total td {
	border-top: 1px dashed #151215 !important;
	padding-top: 9px !important;
	font-size: 18px;
}
/* geerbte graue/box-shadow Reste neutralisieren */
.woocommerce-checkout-review-order-table,
.woocommerce-checkout-review-order-table td,
.woocommerce-checkout-review-order-table th,
.woocommerce-cart-form__cart-item,
.woocommerce-cart-form__cart-item td {
	background-color: transparent !important;
	box-shadow: none !important;
}

/* lange Produktnamen im Bon mit „…" kürzen */
.wpwindpark-receipt .product-name {
	white-space: nowrap;
	overflow: hidden;
}
.wpwindpark-receipt .wpwindpark-itemname {
	display: inline-block;
	max-width: 16em;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	vertical-align: bottom;
}
/* Checkout-Bon: Produktspalte breiter (Anzahl ist hier nur Text „× 1") */
.woocommerce-checkout .wpwindpark-receipt .wpwindpark-itemname {
	max-width: 18em;
}
/* Warenkorb-Bon ist breit (70 %): Namen praktisch nie kürzen */
.woocommerce-cart .wpwindpark-receipt .wpwindpark-itemname {
	max-width: 32em;
}

/* =========================================================================
 * Checkout-Layout 30/70: links Bon (#order_review), rechts Formular
 * ====================================================================== */
.woocommerce-checkout form.checkout::after {
	content: "";
	display: block;
	clear: both;
}
.woocommerce-checkout:not( .woocommerce-order-received ) #order_review_heading,
.woocommerce-checkout:not( .woocommerce-order-received ) .wpwindpark-receipt {
	float: left;
	clear: left;
	width: 30%;
	margin-right: 0;
}
.woocommerce-checkout #order_review_heading {
	margin-bottom: 6px;
}
.woocommerce-checkout #customer_details {
	float: right;
	width: 66%;
}
.woocommerce-checkout #customer_details .col2-set .col-1,
.woocommerce-checkout #customer_details .col2-set .col-2 {
	width: 100%;
	float: none;
	max-width: none;
}
/* (Versandauswahl-Layout siehe eigener Abschnitt am Dateiende.) */

/* Früherer Breakpoint: unter 1400px (Tablet, schmales/normales Fenster, Firefox)
   wird der Checkout einspaltig (volle Breite) – so tritt die zu enge, hässliche
   30%-Bon-Tabelle gar nicht erst auf; 30/70 nur auf wirklich breiten Screens.
   :not(...) + !important, damit es die spezifischere Desktop-Regel überstimmt. */
@media ( max-width: 1399.98px ) {
	.woocommerce-checkout:not( .woocommerce-order-received ) #order_review_heading,
	.woocommerce-checkout:not( .woocommerce-order-received ) .wpwindpark-receipt,
	.woocommerce-checkout:not( .woocommerce-order-received ) #customer_details {
		float: none !important;
		clear: both !important;
		width: 100% !important;
	}
}

/* Zahlungsart, Button und Belehrung füllen die Bon-Breite */
/* Geerbtes style.css setzt #payment auf max-width:50% + float:right → beides
   aufheben, damit die Zahlungsarten die volle Bon-Breite einnehmen. */
#add_payment_method #payment,
.woocommerce-cart #payment,
.woocommerce-checkout #payment {
	width: 100% !important;
	max-width: none !important;
	float: none !important;
}
.woocommerce-checkout #payment {
	background: transparent !important;
	border-radius: 0;
}
/* Zahlungsarten-Box volle Breite, geerbte 500px-Grenze aufheben */
.woocommerce-checkout #payment div.payment_box {
	max-width: none !important;
}
/* Abstand zwischen gesamtsumme und dem Zahlungsart-Block (analog versand) +
   eigene Überschrift „zahlungsart" (Look wie das versand-Label), KEINE Linie. */
.woocommerce-checkout #payment {
	margin-top: 18px;
}
.woocommerce-checkout #payment::before {
	content: "zahlungsart";
	display: block;
	margin-bottom: 8px;
	font-size: 14px;
	font-weight: normal;
	color: #151215;
}
.woocommerce-checkout #payment ul.payment_methods {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border-top: 0 !important;
	border-bottom: 0 !important;
}
.woocommerce-checkout #payment ul.payment_methods li {
	list-style: none !important;
	margin: 0 0 6px !important;
	padding: 0 !important;
	background: none !important;
}
/* Radios nutzen das vorhandene Theme-Radio-System (leerer Kreis + gefüllter
   Punkt bei Auswahl, via label:before/:after). Hier NUR die Schriftgröße an die
   Übersichtstabelle angleichen – keine eigenen Kreise (die kollidierten). */
.woocommerce-checkout #payment ul.payment_methods li label {
	font-size: 14px;
	cursor: pointer;
}
.woocommerce-checkout #payment div.payment_box {
	background: #fcf9f8 !important;
	color: #151215;
	margin: 6px 0 4px 22px;
	font-size: 14px;
}
.woocommerce-checkout #payment div.payment_box::before {
	display: none !important;
}
.woocommerce-checkout #payment .place-order,
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper,
.woocommerce-checkout #payment .woocommerce-privacy-policy-text {
	width: 100%;
}

/* =========================================================================
 * Buttons mit Füllung + weißer Schrift
 * ====================================================================== */
#place_order,
.woocommerce #payment #place_order,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	background-color: #151215 !important;
	color: #fcf9f8 !important;
	border: 0 !important;
	border-radius: 0 !important;
	padding: 20px 10px !important;
	margin-top: 10px;
	font-size: 14px !important;
	letter-spacing: 0.25pt;
	line-height: 1.2 !important;
	text-align: center;
	text-decoration: none !important;
	cursor: pointer;
	display: block;
	width: 100%;
	opacity: 1;
	transition: opacity 0.2s ease;
}
#place_order:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover {
	background-color: #151215 !important;
	color: #fcf9f8 !important;
	opacity: 0.85;
}

/* Variable Produkte: „in den warenkorb" ist deaktiviert, solange keine Option
   gewählt ist (siehe gateVariationButtons in wp-windpark-atc.js). Klar als
   gesperrt erkennbar und nicht klickbar – so erscheint keine verfrühte
   „bitte option auswählen"-Meldung. */
.woocommerce div.product form.cart .single_add_to_cart_button.disabled,
.woocommerce div.product form.cart .single_add_to_cart_button:disabled,
.single_add_to_cart_button.wc-variation-selection-needed {
	opacity: 0.4 !important;
	cursor: not-allowed !important;
	pointer-events: none !important;
}

/* =========================================================================
 * Warenkorb (cart): klassisches windpark-Layout – volle Produkttabelle
 * (grauer Block) + „warenkorbsumme"-Box rechts. Der Checkout nutzt weiterhin
 * die Bon-Optik und ist von diesem Abschnitt NICHT betroffen.
 * ====================================================================== */

/* --- Produkttabelle --- */
.woocommerce-cart .woocommerce-cart-form {
	margin: 0;
}
.woocommerce-cart table.cart {
	width: 100%;
	margin: 0;
	border: 0 !important; /* gegen den WooCommerce-Standardrahmen der shop_table */
	border-collapse: collapse !important;
}
/* Spaltenkopf: schlicht, klein, nur über den Inhaltsspalten */
.woocommerce-cart table.cart thead th {
	background: transparent !important;
	border: 0 !important;
	padding: 0 18px 12px !important;
	font-weight: normal;
	font-size: 16px;
	color: #151215;
	text-align: left;
	text-transform: lowercase;
}
.woocommerce-cart table.cart thead .product-quantity,
.woocommerce-cart table.cart thead .product-subtotal {
	text-align: right;
}
/* Produktzeilen liegen auf einem grauen Block, feine Zeilentrennung.
   Grauton #eaecec = der „Mist"-Theme-Grauton (wie Bon/Übersichtsraster). */
.woocommerce-cart table.cart tbody .cart_item td {
	background: #eaecec !important;
	border: 0 !important;
	border-top: 1px solid rgba( 21, 18, 21, 0.06 ) !important;
	padding: 22px 18px !important;
	vertical-align: middle;
}
.woocommerce-cart table.cart tbody .cart_item:first-child td {
	border-top: 0 !important;
}
.woocommerce-cart table.cart .product-remove {
	width: 2.6em;
	text-align: left;
}
.woocommerce-cart table.cart .product-remove a.remove {
	display: inline-block;
	width: auto;
	height: auto;
	margin: 0;
	font-size: 22px;
	line-height: 1;
	color: #151215 !important;
	background: none !important;
	border-radius: 0;
}
.woocommerce-cart table.cart .product-remove a.remove:hover {
	color: #151215 !important;
	background: none !important;
}
.woocommerce-cart table.cart .product-thumbnail {
	width: 150px;
}
.woocommerce-cart table.cart .product-thumbnail img {
	width: 100%;
	max-width: 150px;
	height: auto;
	display: block;
}
.woocommerce-cart table.cart .product-name {
	font-size: 18px;
}
.woocommerce-cart table.cart .product-name a {
	color: #151215;
	text-decoration: none;
}
.woocommerce-cart table.cart .product-price,
.woocommerce-cart table.cart .product-subtotal {
	font-variant-numeric: tabular-nums;
}
.woocommerce-cart table.cart .product-quantity,
.woocommerce-cart table.cart .product-subtotal {
	text-align: right;
}
.woocommerce-cart table.cart .product-subtotal {
	white-space: nowrap;
}
/* §19-Steuerhinweis (Preis-Suffix), falls über die WC-Einstellungen vorhanden */
.woocommerce-cart table.cart .product-price .woocommerce-price-suffix {
	display: block;
	margin-top: 2px;
	font-size: 0.8em;
	white-space: normal;
}
/* Mengen-Eingabe rechtsbündig in der Zelle */
.woocommerce-cart table.cart .product-quantity .quantity {
	margin-left: auto;
}

/* --- actions-Zeile (unter dem Block): gutschein links, aktualisieren rechts --- */
.woocommerce-cart table.cart td.actions {
	background: transparent !important;
	border: 0 !important;
	padding: 18px 0 0 !important;
}
.woocommerce-cart table.cart td.actions::after {
	content: "";
	display: block;
	clear: both;
}
.woocommerce-cart td.actions .coupon {
	float: left;
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
}
.woocommerce-cart td.actions .coupon .input-text {
	height: 46px;
	padding: 0 14px;
	border: 1px solid #151215;
	border-radius: 2px;
	background: #fff;
	font-size: 14px;
	box-sizing: border-box;
	width: 220px;
	max-width: 100%;
	letter-spacing: 0.25pt;
}
.woocommerce-cart td.actions .coupon .button,
.woocommerce-cart td.actions button.wpwindpark-update-cart {
	height: 46px;
	margin: 0;
	padding: 0 22px !important;
	border: 0 !important;
	border-radius: 0 !important;
	font-size: 14px !important;
	letter-spacing: 0.25pt;
	line-height: 46px !important;
	cursor: pointer;
}
.woocommerce-cart td.actions .coupon .button {
	background: #151215 !important;
	color: #fcf9f8 !important;
}
/* aktualisieren-Button: standardmäßig deaktiviert/grau (wie im Screenshot),
   nach einer Mengenänderung aktiviert WooCommerce ihn → dunkel. */
.woocommerce-cart td.actions button.wpwindpark-update-cart {
	float: right;
	background: #d6d6db !important;
	color: #fcf9f8 !important;
	opacity: 1 !important;
}
.woocommerce-cart td.actions button.wpwindpark-update-cart:not( [disabled] ) {
	background: #151215 !important;
}

/* --- warenkorbsumme-Box rechts --- */
.woocommerce-cart .cart-collaterals {
	float: right !important; /* gegen WooCommerce-Default (.cart-collaterals: 100 %) */
	width: 420px !important;
	max-width: 100%;
	margin-top: 22px;
}
.woocommerce-cart .cart-collaterals::after {
	content: "";
	display: block;
	clear: both;
}
/* Volle Breite in der Box erzwingen: WooCommerce setzt sonst per
   `.woocommerce .cart-collaterals .cart_totals { width:48%; float:right }`
   (spezifischer) die Box auf die halbe Breite – daher hier mit gleicher
   Selektor-Tiefe + !important dagegen. */
.woocommerce-cart .cart-collaterals .cart_totals {
	float: none !important;
	width: 100% !important;
	background: transparent;
}
.woocommerce-cart .cart_totals h2 {
	margin: 0 0 12px;
	font-size: 22px;
	font-weight: normal;
	text-transform: lowercase;
}
.woocommerce-cart .cart_totals table.shop_table {
	width: 100%;
	margin: 0;
	border: 1px solid #151215;
	border-radius: 2px;
	border-collapse: collapse;
	background: transparent;
}
.woocommerce-cart .cart_totals table.shop_table th,
.woocommerce-cart .cart_totals table.shop_table td {
	border: 0;
	border-top: 1px solid #c9c9d0;
	padding: 16px 18px;
	background: transparent;
	font-weight: normal;
	font-size: 16px;
	vertical-align: top;
	text-transform: lowercase;
}
.woocommerce-cart .cart_totals table.shop_table tr:first-child th,
.woocommerce-cart .cart_totals table.shop_table tr:first-child td {
	border-top: 0;
}
.woocommerce-cart .cart_totals th {
	width: 1%;            /* Label-Spalte nur so breit wie ihr Text … */
	white-space: nowrap; /* … (z. B. „zwischensumme") – Rest geht an die Wertspalte */
	text-align: left;
}
.woocommerce-cart .cart_totals td {
	text-align: right;
	font-variant-numeric: tabular-nums;
}
.woocommerce-cart .cart_totals .order-total th,
.woocommerce-cart .cart_totals .order-total td {
	font-size: 18px;
}
/* Versandzeile: Methoden linksbündig im Wertfeld, untereinander */
.woocommerce-cart .cart_totals .shipping td {
	text-align: left;
}
.woocommerce-cart .cart_totals .shipping #shipping_method {
	list-style: none;
	margin: 0;
	padding: 0;
}
.woocommerce-cart .cart_totals .shipping #shipping_method li {
	margin: 0 0 8px;
	line-height: 1.45;
}
.woocommerce-cart .cart_totals .shipping #shipping_method li:last-child {
	margin-bottom: 0;
}
.woocommerce-cart .cart_totals .shipping #shipping_method input {
	margin-right: 0.45em;
}
.woocommerce-cart .cart_totals .shipping .wpw-ship-cost {
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}
.woocommerce-cart .cart_totals .woocommerce-shipping-destination {
	margin: 12px 0 0;
	font-size: 0.95em;
	line-height: 1.5;
}
/* Versandrechner-Link „versandkosten berechnen" dezent unterstrichen */
.woocommerce-cart .cart_totals .shipping-calculator-button {
	display: inline-block;
	margin-top: 10px;
	color: #151215;
	text-decoration: underline;
	text-underline-offset: 3px;
}
.woocommerce-cart .cart_totals .shipping-calculator-form {
	margin-top: 10px;
}
/* „weiter zur kasse": schwarzer Button (Grundstil im Button-Abschnitt oben) */
.woocommerce-cart .wc-proceed-to-checkout {
	margin-top: 16px;
	padding: 0;
}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	margin: 0;
}

/* Floats des Warenkorbs am Seitenende sauber umschließen */
.woocommerce-cart .woocommerce::after {
	content: "";
	display: block;
	clear: both;
}

/* =========================================================================
 * Warenkorb mobil: Position = graue Karte, Bild links / Infos rechts (Grid)
 * ====================================================================== */
@media ( max-width: 767.98px ) {
	.woocommerce-cart table.cart thead {
		display: none;
	}
	.woocommerce-cart table.cart,
	.woocommerce-cart table.cart tbody,
	.woocommerce-cart table.cart tbody tr,
	.woocommerce-cart table.cart td.actions {
		display: block;
		width: 100%;
	}

	/* Karte als Grid: Bildspalte links (volle Kartenhöhe) + zwei Info-Spalten.
	   „Mist"-Grau auf den Zellen (rendert zuverlässig) UND auf der Karte (füllt
	   die Grid-Abstände) – !important gegen den WooCommerce-Default. */
	.woocommerce-cart table.cart tbody tr.cart_item {
		display: grid;
		grid-template-columns: 104px 1fr 1fr;
		/* Drei Zeilen: name / preis+anzahl / zwischensumme. Die letzte Zeile ist
		   1fr, damit die Bildspalte (grid-row 1/-1) bei hohen Covern die volle
		   Höhe füllen kann, ohne die Infos auseinanderzuziehen – sie bleiben
		   kompakt oben rechts neben dem Bild. */
		grid-template-rows: auto auto 1fr;
		column-gap: 14px;
		row-gap: 8px;
		align-items: start;
		position: relative;
		margin: 0;
		padding: 16px;
		box-sizing: border-box;
		background: #eaecec !important;
	}
	.woocommerce-cart table.cart tbody .cart_item td {
		width: auto !important;
		background: #eaecec !important;
		border: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
		text-align: left !important;
		white-space: normal !important;
	}

	/* Bild: Spalte 1, über die volle Kartenhöhe; unbeschnitten (natürliches Format) */
	.woocommerce-cart table.cart .product-thumbnail {
		grid-column: 1;
		grid-row: 1 / -1;
		align-self: start;
	}
	.woocommerce-cart table.cart .product-thumbnail img {
		width: 100%;
		max-width: none;
		height: auto;
		display: block;
	}

	/* Name: Zeile 1, über beide Info-Spalten (Platz rechts fürs ×) */
	.woocommerce-cart table.cart .product-name {
		grid-column: 2 / 4;
		grid-row: 1;
		font-size: 16px;
		padding-right: 26px !important;
	}
	/* Preis + Anzahl gemeinsam in EINER Zeile (Zeile 2) */
	.woocommerce-cart table.cart .product-price {
		grid-column: 2;
		grid-row: 2;
	}
	.woocommerce-cart table.cart .product-quantity {
		grid-column: 3;
		grid-row: 2;
	}
	/* Zwischensumme: Zeile 3, über beide Info-Spalten */
	.woocommerce-cart table.cart .product-subtotal {
		grid-column: 2 / 4;
		grid-row: 3;
		font-size: 16px;
	}

	/* Labels (preis:/anzahl:/zwischensumme:) klein über dem Wert */
	.woocommerce-cart table.cart .product-price::before,
	.woocommerce-cart table.cart .product-quantity::before,
	.woocommerce-cart table.cart .product-subtotal::before {
		content: attr( data-title ) ":";
		display: block;
		margin-bottom: 2px;
		font-size: 14px;
		color: #151215;
	}
	/* Bild / Name / × tragen kein Label */
	.woocommerce-cart table.cart .product-thumbnail::before,
	.woocommerce-cart table.cart .product-name::before,
	.woocommerce-cart table.cart .product-remove::before {
		display: none !important;
		content: "" !important;
	}
	/* Entfernen-× oben rechts (schwebt über der Karte) */
	.woocommerce-cart table.cart .product-remove {
		position: absolute;
		top: 12px;
		right: 14px;
		z-index: 1;
		width: auto !important;
		background: transparent !important;
	}

	/* Abstand zwischen den Karten – kleiner, OHNE Trennlinie */
	.woocommerce-cart table.cart tbody .cart_item + .cart_item {
		margin-top: 16px;
	}

	/* Aktionen + Box unter den Positionen */
	.woocommerce-cart table.cart td.actions {
		padding: 24px 0 0 !important;
	}
	/* Gutschein-Zeile: Feld + Button füllen zusammen die volle Breite (= Update-Button) */
	.woocommerce-cart td.actions .coupon {
		float: none;
		width: 100%;
		display: flex;
		gap: 10px;
		margin: 0;
	}
	.woocommerce-cart td.actions .coupon .input-text {
		flex: 1 1 auto;
		width: auto;
		min-width: 0;
	}
	.woocommerce-cart td.actions .coupon .button {
		flex: 0 0 auto;
	}
	.woocommerce-cart td.actions button.wpwindpark-update-cart {
		float: none;
		width: 100%;
		margin-top: 18px; /* luftiger + ausgeglichener zu den ~22–24px drumherum */
	}
	.woocommerce-cart .cart-collaterals {
		float: none !important;
		width: 100% !important;
	}
}

/* =========================================================================
 * Mengen-Steuerung sauber + zentriert
 * ====================================================================== */
.woocommerce .quantity {
	display: inline-flex !important;
	align-items: stretch;
	border: 1px solid #151215;
	border-radius: 2px;
	overflow: hidden;
	height: 36px;
	vertical-align: middle;
}
.woocommerce .quantity .qty {
	width: 48px !important;
	height: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	text-align: center !important;
	font-size: 16px;
	font-variant-numeric: tabular-nums;
	background: #fff;
	-moz-appearance: textfield;
	appearance: textfield;
	box-shadow: none !important;
}
.woocommerce .quantity .qty::-webkit-outer-spin-button,
.woocommerce .quantity .qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.woocommerce .quantity .plus,
.woocommerce .quantity .minus {
	width: 34px !important;
	height: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: #fff !important;
	color: #151215 !important;
	font-size: 18px !important;
	line-height: 1 !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	cursor: pointer;
}
.woocommerce .quantity .minus {
	border-right: 1px solid #151215 !important;
}
.woocommerce .quantity .plus {
	border-left: 1px solid #151215 !important;
}

/* =========================================================================
 * Swiper: Bilder mit dezentem Innenabstand
 * ====================================================================== */
.wpwindpark-swiper .swiper-slide {
	padding: 26px;
	box-sizing: border-box;
	background-origin: content-box;
	background-size: contain;
}
@media ( max-width: 767.98px ) {
	.wpwindpark-swiper .swiper-slide {
		padding: 14px;
	}
}

/* =========================================================================
 * Produktseite: langer Infotext einklappbar
 * ====================================================================== */
.wpwindpark-collapsible {
	position: relative;
	overflow: hidden;
}
.wpwindpark-collapsible.is-collapsed::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 4.5em;
	background: linear-gradient( to bottom, rgba( 252, 249, 248, 0 ) 0%, #fcf9f8 88% );
	pointer-events: none;
}
.wpwindpark-collapse-toggle {
	display: none;
	align-items: center;
	gap: 0.4em;
	margin: 6px 0 14px;
	padding: 4px 0 !important;
	background: none !important;
	border: 0 !important;
	color: #151215 !important;
	font-size: 16px;
	cursor: pointer;
}
.wpwindpark-collapse-toggle .arrow {
	display: inline-block;
	transition: transform 0.2s ease;
	font-size: 14px;
}
.wpwindpark-collapse-toggle.is-open .arrow {
	transform: rotate( 180deg );
}
.wpwindpark-collapse-toggle:hover .label {
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* =========================================================================
 * KORREKTUREN (Checkout)
 * ====================================================================== */

/* Checkout: Zahlungs-Hinweis (payment_box) nicht einquetschen. */
.woocommerce-checkout #payment div.payment_box {
	width: auto;
	overflow-wrap: anywhere;
}

/* =========================================================================
 * Publikationsraster: eigenes Filtersystem (Vanilla JS) + Sticky-Jahreszahlen
 * ====================================================================== */

/* #1 Sticky-Jahreszahlen: position:sticky scheitert, sobald ein Vorfahre
   overflow != visible hat. Global gilt `.row { overflow: hidden }` – im
   Shop-/Kategorie-/Schlagwort-Archiv heben wir das für die .row-Kette auf. */
.woocommerce-shop #content .row,
.tax-product_cat #content .row,
.tax-product_tag #content .row {
	overflow: visible !important;
}

/* #2 Filter: ausgeblendete Items entfernen */
.allbooks .item.is-hidden {
	display: none !important;
}

/* #2 Aufbauanimation: Items starten unsichtbar (nur wenn JS aktiv → .wpw-grid-ready)
   und werden gestaffelt eingeblendet. Ohne JS bleiben sie normal sichtbar. */
.allbooks.wpw-grid-ready .item {
	opacity: 0;
	transform: translateY(12px);
}
.allbooks.wpw-grid-ready .item.is-in {
	opacity: 1;
	transform: none;
	transition: opacity 0.45s ease, transform 0.45s ease;
}

/* Container immer sichtbar – die frühere JS-/CSS-Einblendung des ganzen Blocks
   entfällt, da jetzt die einzelnen Items animieren. */
.allbookslistview {
	opacity: 1 !important;
	animation: none !important;
}

/* =========================================================================
 * Versandauswahl im Checkout-Bon (vgl. Skizze):
 * „versand" als eigene Zeile, Methoden nebeneinander, Preis der gewählten
 * Methode rechtsbündig. th + td werden gestapelt (volle Bon-Breite), damit die
 * Auswahl genug Platz hat – unabhängig von der schmalen rechten Tabellenspalte.
 * ====================================================================== */
/* Versandzeile ist EINE volle Zelle (colspan=2, siehe cart-shipping.php) →
   echte volle Bon-Breite, daher landet der Preis (right:0) bündig rechts wie die
   anderen Preise. Linksbündig, darf umbrechen (überschreibt td:last-child). */
.woocommerce-checkout .wpwindpark-receipt .woocommerce-shipping-totals td {
	text-align: left !important;
	white-space: normal !important;
}
/* „versand" als eigene Zeile über den Methoden (Look wie die anderen Labels). */
.woocommerce-checkout .wpwindpark-receipt .woocommerce-shipping-totals .wpw-shipping-label {
	display: block;
	margin-bottom: 2px;
}
.woocommerce-checkout .woocommerce-shipping-totals #shipping_method {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.3em 1.6em;
	margin: 2px 0 0;
	padding: 0;
	list-style: none;
}
.woocommerce-checkout .woocommerce-shipping-totals #shipping_method li {
	margin: 0;
	padding: 0;
	list-style: none;
}
/* Preis der Methode:
   - Fallback ohne JS: jeder Preis inline neben seinem Namen (funktioniert immer).
   - Mit JS (#shipping_method bekommt .wpw-ship-js): Inline-Preise aus, nur der
     Preis der GEWÄHLTEN Methode wird als eigenes Element rechtsbündig gezeigt. */
.woocommerce-checkout .woocommerce-shipping-totals .wpw-ship-cost {
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}
.woocommerce-checkout .woocommerce-shipping-totals #shipping_method.wpw-ship-js .wpw-ship-cost {
	display: none;
}
/* Gewählter Versandpreis exakt am rechten Rand (wie die anderen Preise).
   #shipping_method ist position:relative; das Preis-Element ist ein direktes
   Kind (kein Label-Container), daher landet right:0 am Zeilenende. */
.woocommerce-checkout .woocommerce-shipping-totals .wpw-ship-selected-cost {
	position: absolute;
	right: 0;
	top: 0;
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}

/* #2 mehr Luft um die Versandzeile (zwischen zwischensumme / versand / gesamtsumme) */
.woocommerce-checkout .wpwindpark-receipt .woocommerce-shipping-totals th {
	padding-top: 14px !important;
}
.woocommerce-checkout .wpwindpark-receipt .order-total th,
.woocommerce-checkout .wpwindpark-receipt .order-total td {
	padding-top: 18px !important;
}

/* #4 Gutschein-Hinweis: komplette Notiz klickbar (nicht nur „klicke hier"). */
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
	position: relative;
	cursor: pointer;
}
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info .showcoupon::after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
}
/* #4 Gutschein-Formular: Eingabe schmaler, Feld + Button mittig (h + v) im Rahmen. */
.woocommerce-checkout form.checkout_coupon {
	text-align: center;
	padding: 18px 16px;
	margin: 0 0 18px;
}
.woocommerce-checkout form.checkout_coupon p {
	text-align: center;
}
.woocommerce-checkout form.checkout_coupon .form-row {
	display: inline-block;
	float: none;
	width: auto;
	margin: 0 4px;
	padding: 0;
	vertical-align: middle;
}
.woocommerce-checkout form.checkout_coupon .input-text {
	width: 240px;
	max-width: 100%;
	vertical-align: middle;
}

/* =========================================================================
 * Bestellbestätigung (order-received): Bon und Adressen 50/50 nebeneinander
 *
 * PHP-Wrapper .wpwindpark-order-split (siehe inc/woocommerce.php) umschließt
 * die Bestelltabelle (.woocommerce-order-details, enthält den Bon) und die
 * Adressen (.woocommerce-customer-details). Links der Bon, rechts die Adressen
 * – Rechnungs- und ggf. abweichende Lieferadresse darin untereinander.
 * ====================================================================== */
.woocommerce-order-received .wpwindpark-order-split {
	display: flex;
	flex-wrap: wrap;
	gap: 4%;
	align-items: stretch; /* beide Spalten gleich hoch – die höhere gibt vor */
}
.woocommerce-order-received .wpwindpark-order-split > .woocommerce-order-details,
.woocommerce-order-received .wpwindpark-order-split > .woocommerce-customer-details {
	flex: 0 0 48%;
	max-width: 48%;
	min-width: 0;
	margin: 0;
}
/* Werden keine Adressen ausgegeben (z. B. Gast-Bestellung), nimmt der Bon die
   volle Breite ein, statt nur 48 % mit leerer rechter Spalte. */
.woocommerce-order-received .wpwindpark-order-split > .woocommerce-order-details:only-child {
	flex-basis: 100%;
	max-width: 100%;
}

/* Bon-Spalte als Flex-Säule, damit der Bon die (ggf. gestreckte) Spaltenhöhe
   ausfüllt – so wird er mindestens so hoch wie die Adress-Spalte daneben. Der
   Bon-Inhalt bleibt durch den normalen Blockfluss oben ausgerichtet (nicht
   mittig); überschüssige Höhe ist einfach grauer Bon ohne Inhalt. */
.woocommerce-order-received .wpwindpark-order-split > .woocommerce-order-details {
	display: flex;
	flex-direction: column;
}
.woocommerce-order-received .wpwindpark-order-split .wpwindpark-receipt {
	flex: 1 1 auto;
	margin: 0; /* Oberkante an die Adressspalte angleichen, kein Bodenabstand */
}

/* Überschriften der Adressspalte: oben bündig, etwas Abstand zur Box. */
.woocommerce-order-received .wpwindpark-order-split .woocommerce-column__title {
	margin: 0 0 8px;
}

/* Adressspalte: Rechnungs- und Lieferadresse untereinander (volle Breite),
   die geerbten WooCommerce-Floats (col-1/col-2, je 48 %) auflösen. */
.woocommerce-order-received .wpwindpark-order-split .woocommerce-columns--addresses {
	display: block;
	margin: 0;
}
.woocommerce-order-received .wpwindpark-order-split .woocommerce-columns--addresses .woocommerce-column,
.woocommerce-order-received .wpwindpark-order-split .woocommerce-columns--addresses .col-1,
.woocommerce-order-received .wpwindpark-order-split .woocommerce-columns--addresses .col-2 {
	float: none !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 0 22px !important;
	padding: 0 !important;
}
.woocommerce-order-received .wpwindpark-order-split .woocommerce-columns--addresses .woocommerce-column:last-child {
	margin-bottom: 0 !important;
}
/* Adress-Kästen an die Website angepasst: Seitencreme statt des grauen
   WooCommerce-Standardkastens, feine fast-schwarze Kontur wie die Umschlag-
   Karte – passt zum Brief-/Umschlag-Motiv direkt darüber. */
.woocommerce-order-received .wpwindpark-order-split .woocommerce-customer-details address {
	width: 100%;
	box-sizing: border-box;
	margin: 0;
	padding: 14px 16px;
	background: #fcf9f8;
	border: 1px solid #151215;
	border-radius: 3px;
	font-style: normal;
	line-height: 1.5;
	color: #151215;
}
/* Kein Leerraum unter der E-Mail in der Rechnungsadresse (die E-Mail-Zeile ist
   ein <p> mit Standard-Außenabstand). Margin + Padding der E-Mail/Telefon-Zeile
   auf 0 und sicherheitshalber dem letzten Element der Adresse den unteren
   Abstand nehmen – so endet der Kasten direkt unter der E-Mail. */
.woocommerce-customer-details--email,
.woocommerce-customer-details--phone {
	margin: 0 !important;
	padding: 0 !important;
}
.woocommerce-customer-details address > *:last-child {
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}
/* WooCommerce setzt vor E-Mail/Telefon ein Icon (::before mit der WooCommerce-
   Schrift). Das wird hier ganz entfernt – ohne das frühere padding-left ragte es
   ohnehin schief heraus. */
.woocommerce-customer-details--email::before,
.woocommerce-customer-details--phone::before {
	content: none !important;
	display: none !important;
}

/* Schmalere Fenster: untereinander (Bon oben, Adressen darunter). */
@media ( max-width: 767.98px ) {
	.woocommerce-order-received .wpwindpark-order-split > .woocommerce-order-details,
	.woocommerce-order-received .wpwindpark-order-split > .woocommerce-customer-details {
		flex: 0 0 100%;
		max-width: 100%;
	}
	.woocommerce-order-received .wpwindpark-order-split > .woocommerce-customer-details {
		margin-top: 24px;
	}

	/* Bestellinfos (bestellnummer/datum/gesamt/zahlungsart): WooCommerce floatet
	   die Listenpunkte mit Trennstrichen – das bricht mobil unsauber um. Hier
	   stattdessen ein ruhiges 2-spaltiges Raster ohne Floats/Striche. */
	.woocommerce-order-received .woocommerce-order-overview {
		display: grid;
		grid-template-columns: 1fr 1fr;
		align-items: start;
		gap: 18px 24px;
		margin: 1em 0 2em;
	}
	/* WICHTIG: WooCommerce hängt der Liste Clearfix-Pseudoelemente an
	   (::before/::after mit display:table). Im Grid würden die als leere Zellen
	   zählen und die Infos um eine Position „verspringen" lassen – daher hier
	   abschalten. */
	.woocommerce-order-received .woocommerce-order-overview::before,
	.woocommerce-order-received .woocommerce-order-overview::after {
		content: none !important;
		display: none !important;
	}
	.woocommerce-order-received .woocommerce-order-overview li {
		float: none !important;
		width: auto !important;
		margin: 0 !important;
		padding: 0 !important;
		border: 0 !important;
	}
	/* Sicherheitsnetz: etwaige leere Listenpunkte nicht als Zelle mitzählen. */
	.woocommerce-order-received .woocommerce-order-overview li:empty {
		display: none !important;
	}
}
