/* ==========================================================================
   WerkstattWiesel – WooCommerce (überschreibt die WooCommerce-Grundstyles)
   ========================================================================== */

.woocommerce, .woocommerce-page { --wc-primary: var(--rot-text); }

/* Brotkrumen */
.ww-krumen { font-size: .95rem; color: var(--text-2); margin-bottom: 1rem; }
.ww-krumen p { margin: 0; }
.ww-krumen a { color: var(--text-2); }

/* Kategorie-Kopf */
.ww-shop .woocommerce-products-header__title { margin-bottom: .35em; }
.ww-shop .term-description { max-width: 46rem; color: var(--text-2); font-size: 1.08rem; }
.woocommerce .woocommerce-result-count { color: var(--text-2); font-size: .95rem; margin: .5rem 0 1rem; }
.woocommerce .woocommerce-ordering { margin: 0 0 1rem; }
.woocommerce .woocommerce-ordering select { min-height: 44px; padding: .35rem .6rem; font: inherit; border: 1px solid var(--text-2); border-radius: var(--radius); background: #fff; }

/* Produktraster */
.woocommerce ul.products, .woocommerce-page ul.products {
	display: grid; gap: 1rem; margin: 0 0 1.5rem; padding: 0;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 14.5rem), 1fr));
}
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product {
	float: none; width: auto; margin: 0; padding: .75rem .9rem 1rem;
	display: flex; flex-direction: column; background: #fff;
	border: 1px solid var(--linie); border-radius: var(--radius);
}
.woocommerce ul.products li.product:hover { border-color: var(--text-2); }
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link { color: var(--text); text-decoration: none; display: flex; flex-direction: column; flex: 1; }
.woocommerce ul.products li.product a img { aspect-ratio: 1; object-fit: contain; margin: 0 0 .75rem; background: #fff; }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-size: 1.02rem; font-weight: 600; font-style: normal; line-height: 1.3; padding: 0; margin: 0 0 .35rem; text-transform: none;
}
.woocommerce ul.products li.product .price {
	color: var(--text); font-size: 1.2rem; font-weight: 600; margin: .35rem 0 .15rem; display: block;
}
.woocommerce ul.products li.product .price del { color: var(--text-2); font-weight: 400; }
.woocommerce ul.products li.product .button { margin-top: .75rem; width: 100%; }
.ww-artnr { font-size: .88rem; color: var(--text-2); margin: 0 0 .35rem; }

/* Germanized-Pflichtangaben (MwSt., Versand, Grundpreis, Lieferzeit) */
.wc-gzd-additional-info, .woocommerce .price-unit, .woocommerce .delivery-time-info, .woocommerce .shipping-costs-info, .woocommerce .tax-info, .wc-gzd-additional-info-loop {
	font-size: .86rem; color: var(--text-2); margin: 0; line-height: 1.45;
}
.wc-gzd-additional-info a, .shipping-costs-info a { color: var(--text-2); }

/* Buttons (WooCommerce) */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt,
.woocommerce-page a.button, .woocommerce-page button.button {
	min-height: 44px; padding: .65rem 1.1rem; border-radius: var(--radius);
	background: var(--rot-text); color: #fff; font: 600 1rem/1.2 var(--schrift); border: 2px solid var(--rot-text);
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce input.button.alt:hover {
	background: var(--rot-dunkel); border-color: var(--rot-dunkel); color: #fff;
}
.woocommerce button.button:disabled, .woocommerce button.button:disabled[disabled] { opacity: .6; padding: .65rem 1.1rem; }
.woocommerce a.added_to_cart { display: block; margin-top: .4rem; font-weight: 600; }

/* Hinweise */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews, p.no-comments {
	border-top: 4px solid var(--text-2); background: var(--flaeche); color: var(--text); padding: 1rem 1.25rem 1rem 3rem;
}
.woocommerce-message { border-top-color: #2e7d32; }
.woocommerce-error { border-top-color: var(--rot-text); }
.woocommerce-message::before { color: #2e7d32; }
.woocommerce-info::before { color: var(--text-2); }
.woocommerce-error::before { color: var(--rot-text); }
.woocommerce-message .button, .woocommerce-info .button { float: right; margin-left: 1rem; }

/* Seitenzahlen */
.woocommerce nav.woocommerce-pagination ul { border: 0; display: flex; flex-wrap: wrap; gap: .35rem; justify-content: center; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span {
	min-width: 44px; min-height: 44px; display: grid; place-items: center; border: 1px solid var(--linie); border-radius: var(--radius); font-size: 1rem; color: var(--text);
}
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--anthrazit); color: #fff; border-color: var(--anthrazit); }

/* ---------- Produktseite ---------- */
.woocommerce div.product { display: grid; gap: 1.5rem 2.5rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 52em) { .woocommerce div.product { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.woocommerce div.product::before, .woocommerce div.product::after { display: none; }
.woocommerce div.product div.images, .woocommerce div.product div.summary { float: none; width: auto; margin: 0; }
.woocommerce div.product div.images img { background: #fff; border: 1px solid var(--linie); border-radius: var(--radius); }
.woocommerce div.product div.images .flex-control-thumbs { display: flex; gap: .5rem; margin-top: .5rem; }
.woocommerce div.product div.images .flex-control-thumbs li { width: 72px; }
.woocommerce div.product .product_title { font-size: clamp(1.6rem, 1.3rem + 1.2vw, 2.25rem); text-transform: none; }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--text); font-size: 1.75rem; font-weight: 600; margin-bottom: .25rem; }
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: .75rem; align-items: stretch; margin: 1.25rem 0; }
.woocommerce div.product form.cart::before, .woocommerce div.product form.cart::after { display: none; }
.woocommerce div.product form.cart div.quantity { float: none; margin: 0; }
.woocommerce .quantity .qty { width: 5rem; min-height: 44px; font: inherit; border: 1px solid var(--text-2); border-radius: var(--radius); text-align: center; }
.woocommerce div.product form.cart .button { float: none; flex: 1 1 14rem; font-size: 1.05rem; }
.woocommerce div.product .product_meta { font-size: .95rem; color: var(--text-2); border-top: 1px solid var(--linie); padding-top: 1rem; }
.woocommerce div.product .product_meta > span { display: block; }
.woocommerce div.product .woocommerce-product-details__short-description { margin-top: 1rem; }

.ww-produkt-details { grid-column: 1 / -1; display: grid; gap: 0; }
.ww-produkt-abschnitt { border-top: 1px solid var(--linie); padding-top: 1.5rem; margin-top: 1rem; }
.ww-produkt-abschnitt > h2, .ww-sicherheit > h2, .related > h2, .upsells > h2 { font-size: 1.4rem; font-weight: 800; font-style: italic; }
.ww-produkt-abschnitt .ww-inhalt { max-width: 50rem; }
.woocommerce table.shop_attributes { border: 0; max-width: 50rem; }
.woocommerce table.shop_attributes th { width: 40%; text-align: left; font-weight: 600; padding: .55rem .75rem .55rem 0; border-bottom: 1px solid var(--linie); }
.woocommerce table.shop_attributes td { font-style: normal; padding: .55rem 0; border-bottom: 1px solid var(--linie); }
.woocommerce table.shop_attributes td p { padding: 0; }
.woocommerce table.shop_attributes tr:nth-child(even) td, .woocommerce table.shop_attributes tr:nth-child(even) th { background: transparent; }

.related, .upsells { grid-column: 1 / -1; border-top: 1px solid var(--linie); padding-top: 1.5rem; margin-top: 1rem; }

/* Set-Preis */
.ww-set-ersparnis { display: block; font-size: .9rem; font-weight: 400; color: var(--text-2); margin-top: .15rem; }

/* ---------- Gefahrstoffkennzeichnung ---------- */
.ww-gefahr-kurz { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; margin: .25rem 0 .35rem; }
.ww-gefahr-kurz .ww-ghs,
.woocommerce ul.products li.product a .ww-gefahr-kurz img.ww-ghs { width: 28px; height: 28px; margin: 0; aspect-ratio: 1; }
.woocommerce ul.products li.product .price-unit, .woocommerce ul.products li.product .wc-gzd-additional-info { font-size: .86rem; font-weight: 400; }
.woocommerce .price .price-unit, .woocommerce .price-unit { font-size: .86rem !important; font-weight: 400; color: var(--text-2); }
.ww-signalwort { font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--rot-text); }
.ww-gefahr-kurz .ww-signalwort { font-size: .85rem; margin-left: .2rem; }
.ww-sicherheit { grid-column: 1 / -1; border-top: 1px solid var(--linie); padding-top: 1.5rem; margin-top: 1rem; max-width: 50rem; }
.ww-gefahr { border: 2px solid var(--rot); border-radius: var(--radius); padding: 1rem 1.25rem; margin-bottom: 1rem; background: #fff; }
.ww-gefahr-piktogramme { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: .75rem; }
.ww-gefahr-piktogramme .ww-ghs { width: 64px; height: 64px; }
.ww-h-saetze { padding-left: 1.2rem; margin-bottom: .5rem; }
.ww-h-saetze li { margin-bottom: .2rem; }
.ww-link-pdf::before { content: "PDF"; display: inline-block; font: 700 .7rem/1 var(--schrift); padding: .25rem .35rem; margin-right: .45rem; border: 1.5px solid currentColor; border-radius: 2px; vertical-align: .15em; }
.ww-hersteller { display: grid; grid-template-columns: max-content 1fr; gap: .35rem 1rem; font-size: .98rem; margin-top: 1rem; }
.ww-hersteller dt { font-weight: 600; }
.ww-hersteller dd { margin: 0; }

/* ---------- Warenkorb und Kasse ---------- */
.ww-shopseite .ww-inhalt { max-width: none; }
.woocommerce table.shop_table { border-radius: var(--radius); border-color: var(--linie); }
.woocommerce table.shop_table th { font-weight: 600; }
.woocommerce table.shop_table td, .woocommerce table.shop_table th { padding: .75rem; }
.woocommerce a.remove { color: var(--rot-text) !important; font-size: 1.5rem; width: 2rem; height: 2rem; line-height: 2rem; }
.woocommerce a.remove:hover { background: var(--rot-text); color: #fff !important; }
.woocommerce-cart table.cart img, .woocommerce-checkout-review-order-table img { height: 80px; width: auto; max-width: 80px; object-fit: contain; }
.woocommerce-cart table.cart td.actions .coupon .input-text { min-height: 44px; width: 12rem; }

.woocommerce form .form-row label { font-weight: 600; line-height: 1.4; }
.woocommerce form .form-row .required { color: var(--rot-text); text-decoration: none; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select,
.select2-container .select2-selection--single {
	min-height: 44px; padding: .5rem .7rem; font: inherit; color: var(--text);
	border: 1px solid var(--text-2); border-radius: var(--radius); background: #fff;
}
.select2-container .select2-selection--single .select2-selection__rendered { line-height: 1.6; padding: 0; }
.select2-container .select2-selection--single .select2-selection__arrow { height: 42px; }
.woocommerce form .form-row.woocommerce-invalid input.input-text { border-color: var(--rot-text); border-width: 2px; }
.woocommerce form .form-row.woocommerce-validated input.input-text { border-color: #2e7d32; }
.woocommerce-checkout #payment { background: var(--flaeche); border-radius: var(--radius); }
.woocommerce-checkout #payment div.payment_box { background: #fff; color: var(--text); }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: #fff; }
#place_order, .woocommerce #payment #place_order { width: 100%; font-size: 1.15rem; min-height: 52px; float: none; }
.woocommerce-checkout .checkbox, .wc-gzd-checkbox-placeholder label { line-height: 1.5; }
.woocommerce form .form-row input[type="checkbox"] { width: 1.15rem; height: 1.15rem; vertical-align: -.15rem; margin-right: .4rem; accent-color: var(--rot-text); }

/* Mein Konto */
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; border-top: 1px solid var(--linie); }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: .65rem 0; border-bottom: 1px solid var(--linie); text-decoration: none; color: var(--text); }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { font-weight: 700; box-shadow: inset 4px 0 0 var(--rot); padding-left: .75rem; }

/* Sternebewertungen ausblenden (keine Bewertungen im Shop) */
.woocommerce .star-rating, .woocommerce-product-rating { display: none; }

/* Produktbilder-Galerie: Lightbox-Auslöser */
.woocommerce div.product div.images .woocommerce-product-gallery__trigger { background: #fff; border: 1px solid var(--linie); width: 44px; height: 44px; }

/* Spar-Set: Einzelpreise der enthaltenen Artikel lesbar (Kontrast) */
.woosb-products .woosb-price, .woosb-products .woosb-price del, .woosb-products .woosb-price-ori { color: var(--text-2); opacity: 1; }

/* Passwort anzeigen: Mindestgröße 24 × 24 px */
.woocommerce form .show-password-input, .woocommerce-page form .show-password-input { min-width: 2rem; min-height: 2rem; top: 50%; transform: translateY(-50%); right: .35rem; }
.woosb-products .woosb-product .woosb-price del, .woosb-products .woosb-product .woosb-price del * { opacity: 1 !important; color: var(--text-2) !important; }

/* Produktbild: Höhe begrenzen, damit Kaufbereich und Angaben sichtbar bleiben */
.woocommerce div.product div.images .woocommerce-product-gallery__image img { max-height: 34rem; width: 100%; object-fit: contain; padding: 1rem; }
.woocommerce div.product .delivery-time-info { margin: .15rem 0 0; }

/* ==========================================================================
   Produktseite – Kaufbereich (Relaunch v2)
   ========================================================================== */
.woocommerce div.product div.images { background: #f6f6f4; border-radius: 6px; }
.woocommerce div.product div.images img { border: 0; background: transparent; mix-blend-mode: multiply; }
.woocommerce div.product div.summary { align-self: start; }
/* kein position: sticky – überdeckte beim Scrollen die Beschreibung */
.woocommerce div.product .product_title { margin-bottom: .5rem; }
.woocommerce div.product .summary .ww-gefahr-kurz { margin: 0 0 1rem; }
.woocommerce div.product .summary .ww-gefahr-kurz .ww-ghs { width: 32px; height: 32px; }

.ww-kauf__preis { display: flex; flex-wrap: wrap; align-items: baseline; gap: .2rem .6rem; }
.woocommerce div.product .ww-kauf__preis p.price { font-size: 2.25rem; font-weight: 700; margin: 0; letter-spacing: -.015em; color: var(--text); }
.ww-kauf__grundpreis { font-size: .95rem; color: var(--text-2); }
.ww-kauf__preis .ww-set-ersparnis { font-size: .95rem; font-weight: 600; color: #2e6b30; flex-basis: 100%; }
.ww-kauf__recht { font-size: .9rem; color: var(--text-2); margin: .35rem 0 .35rem; }
.ww-kauf__recht a { color: var(--text-2); }
.ww-kauf__lieferung { font-size: .95rem; margin: 0 0 1.25rem; }

.woocommerce div.product form.cart { padding: 1rem; margin: 1rem 0 1rem; background: #f6f6f4; border-radius: 6px; }
.woocommerce div.product form.cart .button { min-height: 52px; font-size: 1.1rem; display: inline-flex; align-items: center; justify-content: center; gap: .55rem; }
.woocommerce div.product form.cart .button::before {
	content: ""; width: 22px; height: 22px; flex: none; background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 4h2.2l2.3 11.2a1.5 1.5 0 0 0 1.5 1.2h8.6a1.5 1.5 0 0 0 1.5-1.1L21 8H6.3' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3Ccircle cx='9.5' cy='20' r='1.5'/%3E%3Ccircle cx='17' cy='20' r='1.5'/%3E%3C/svg%3E") center / contain no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 4h2.2l2.3 11.2a1.5 1.5 0 0 0 1.5 1.2h8.6a1.5 1.5 0 0 0 1.5-1.1L21 8H6.3' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3Ccircle cx='9.5' cy='20' r='1.5'/%3E%3Ccircle cx='17' cy='20' r='1.5'/%3E%3C/svg%3E") center / contain no-repeat;
}
.woocommerce .quantity .qty { min-height: 52px; background: #fff; }

.ww-kauf__vorteile { list-style: none; margin: 0 0 1.25rem; padding: 0; display: grid; gap: .45rem; font-size: .92rem; color: var(--text); }
.ww-kauf__vorteile li { display: flex; align-items: center; gap: .55rem; }
.ww-kauf__vorteile svg { flex: none; color: var(--text-2); }
.woocommerce div.product .woocommerce-product-details__short-description { margin: 0 0 1rem; color: var(--text); }
@media (max-width: 51.99em) {
	.woocommerce div.product div.images .woocommerce-product-gallery__image img { max-height: 20rem; }
}

/* ==========================================================================
   Produkt-Card (v3) – Fokus: Titel · Preis · In den Warenkorb
   Desktop 5 je Zeile, Tablet 3–4, Handy 2
   ========================================================================== */
.tax-product_cat .ww-main, .post-type-archive-product .ww-main, .search-results .ww-main { background: var(--flaeche); }

.woocommerce ul.products, .woocommerce-page ul.products {
	display: grid; gap: 1rem; margin: 0 0 1.5rem; padding: 0;
	grid-template-columns: repeat(auto-fill, minmax(12.5rem, 1fr));
}
@media (max-width: 35.99em) {
	.woocommerce ul.products, .woocommerce-page ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .625rem; }
}
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }

.woocommerce ul.products li.product, .woocommerce-page ul.products li.product,
.woocommerce ul.products[class*="columns-"] li.product, .woocommerce-page ul.products[class*="columns-"] li.product {
	width: auto; float: none; clear: none; margin: 0; padding: 0;
	display: flex; flex-direction: column; overflow: hidden;
	background: #fff; border: 1px solid #e0e0dc; border-radius: 8px;
	box-shadow: 0 1px 2px rgba(0, 0, 0, .05), 0 4px 14px rgba(0, 0, 0, .05);
	transition: box-shadow .2s ease, transform .2s ease;
}
.woocommerce ul.products li.product:hover { box-shadow: 0 2px 4px rgba(0, 0, 0, .06), 0 10px 28px rgba(0, 0, 0, .1); }
@media (prefers-reduced-motion: no-preference) { .woocommerce ul.products li.product:hover { transform: translateY(-2px); } }

.woocommerce ul.products li.product a.woocommerce-LoopProduct-link { flex: 1; display: flex; flex-direction: column; padding: 0 .875rem; color: var(--text); text-decoration: none; }

/* Bild: weiß, fest quadratisch */
.ww-card__bild { position: relative; display: block; aspect-ratio: 1; margin: 0 -.875rem .75rem; overflow: hidden; background: #fff; border-bottom: 1px solid #eeeeea; }
.woocommerce ul.products li.product .ww-card__bild img:not(.ww-ghs) { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; padding: .75rem; object-fit: contain; aspect-ratio: auto; background: transparent; }
.ww-card__etikett {
	position: absolute; top: .5rem; left: .5rem; z-index: 1;
	padding: .2rem .45rem; border-radius: 3px; font-size: .68rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase;
	color: #fff; background: var(--rot-text);
}
li.product-type-woosb .ww-card__etikett { background: var(--anthrazit); }
.ww-card__gefahr { position: absolute; left: .5rem; bottom: .5rem; z-index: 1; display: flex; gap: .15rem; }
.woocommerce ul.products li.product .ww-card__gefahr img.ww-ghs { position: static; width: 24px; height: 24px; padding: 0; margin: 0; }

/* Titel */
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-size: .98rem; font-weight: 600; line-height: 1.3; margin: 0 0 .6rem; padding: 0; text-transform: none; font-style: normal;
	min-height: calc(1.3em * 2);
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}

/* Preis */
.ww-card__preis { margin-top: auto; display: flex; flex-direction: column; gap: .05rem; }
.woocommerce ul.products li.product .ww-card__preis .price { font-size: 1.35rem; font-weight: 700; line-height: 1.15; margin: 0; color: var(--text); letter-spacing: -.01em; }
.ww-card__grundpreis { font-size: .76rem; color: var(--text-2); }
.ww-card__preis .ww-set-ersparnis { font-size: .76rem; font-weight: 600; color: #2e6b30; margin: 0; }

/* Pflichtangaben klein */
.ww-card__recht { margin: .3rem .875rem 0; font-size: .74rem; line-height: 1.4; color: var(--text-2); }
.ww-card__recht a { color: var(--text-2); }

/* Button */
.woocommerce ul.products li.product .button {
	display: flex; align-items: center; justify-content: center; gap: .45rem;
	width: auto; margin: .75rem .875rem .875rem; min-height: 44px; padding: .55rem .6rem;
	font-size: .95rem; border-radius: 6px;
}
.woocommerce ul.products li.product .button svg { width: 18px; height: 18px; flex: none; }
@media (max-width: 35.99em) {
	.woocommerce ul.products li.product a.woocommerce-LoopProduct-link { padding: 0 .625rem; }
	.ww-card__bild { margin: 0 -.625rem .6rem; }
	.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: .9rem; }
	.woocommerce ul.products li.product .ww-card__preis .price { font-size: 1.2rem; }
	.ww-card__recht { margin: .3rem .625rem 0; font-size: .7rem; }
	.woocommerce ul.products li.product .button { margin: .6rem .625rem .625rem; font-size: .85rem; gap: .3rem; }
	.woocommerce ul.products li.product .button svg { display: none; }
}

/* Lieferzeit im Kaufbereich der Produktseite */
.ww-kauf__lieferung { display: flex; align-items: center; gap: .4rem; font-weight: 600; color: #2e6b30; }
.ww-kauf__lieferung svg { flex: none; }
