/* zz-ay-as620 — Warenkorb anroshop (/einkaufswagen/)
 * Gilt nur innerhalb .aywk-pg (Rahmen der Spur um die Shortcode-Ausgabe).
 * KEINE rem-Werte (Wurzelgroesse des Themes springt mit der Fensterbreite) — alles px.
 * Farben nur aus scripts/palettes/anroshop.json. Weiss auf #fe3801 nur ab 19 px / 700 (V2).
 * Warenkorb ist nie gecacht (Modell B): main.min.css, woocommerce-layout/-smallscreen/woocommerce.css
 * laden als Dateien — die Regeln hier sind gegen deren Spezifitaet gebaut.
 * !important nur gegen WooCommerce-!important (a.remove-Farbe, text-align in smallscreen.css). */

.aywk-pg {
	--aywk-tinte: #2e2e2e;
	--aywk-tief: #111417;
	--aywk-sand: #f4efe9;
	--aywk-linie: #eae0d4;
	--aywk-linie-2: #e7dfd6;
	--aywk-orange: #fe3801;
	--aywk-orange-tief: #d42a00;
	--aywk-gruen: #5c9f3d;
	--aywk-gruen-hell: #eff6ec;
	--aywk-marine: #232f3e;
	width: 100%;
	padding: 24px 16px 48px;
	box-sizing: border-box;
	color: var(--aywk-tinte);
	font-size: 15px;
	line-height: 1.5;
}
.aywk-pg *,
.aywk-pg *::before,
.aywk-pg *::after { box-sizing: border-box; }
.aywk-in { max-width: 1240px; margin: 0 auto; }
.aywk-pg .aywk-h1 {
	margin: 0 0 20px;
	font-size: 28px;
	font-weight: 600;
	line-height: 1.25;
	color: var(--aywk-tief);
}

/* ---------- Raster: Positionen links, Summe rechts (ab 1200 px) ---------- */
.aywk-pg .woocommerce { display: block; }
@media (min-width: 1200px) {
	.aywk-pg .woocommerce:has(.woocommerce-cart-form) {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 380px;
		column-gap: 32px;
		align-items: start;
	}
	.aywk-pg .woocommerce > * { grid-column: 1 / -1; }
	.aywk-pg .woocommerce > .woocommerce-cart-form { grid-column: 1; }
	.aywk-pg .woocommerce > .cart-collaterals { display: contents; }
	/* Clearfix-Pseudos aus woocommerce-layout.css wuerden sonst zu Rasterzellen und schieben die Summe eine Zeile tiefer */
	.aywk-pg .woocommerce:has(.woocommerce-cart-form)::before,
	.aywk-pg .woocommerce:has(.woocommerce-cart-form)::after,
	.aywk-pg .woocommerce > .cart-collaterals::before,
	.aywk-pg .woocommerce > .cart-collaterals::after { content: none; display: none; }
	.aywk-pg .cart-collaterals > .cart_totals { grid-column: 2; position: sticky; top: 120px; }
	.aywk-pg .cart-collaterals > .cross-sells { grid-column: 1; }
}

/* ---------- Hinweise ---------- */
.aywk-pg .woocommerce-notices-wrapper { display: flex; flex-direction: column; gap: 8px; }
.aywk-pg .woocommerce-notices-wrapper:not(:empty) { margin-bottom: 16px; }
.aywk-pg .woocommerce-message,
.aywk-pg .woocommerce-info,
.aywk-pg .woocommerce-error {
	margin: 0;
	padding: 12px 16px 12px 44px;
	border: 1px solid var(--aywk-linie);
	border-left: 4px solid var(--aywk-gruen);
	border-radius: 10px;
	background: var(--aywk-gruen-hell);
	color: var(--aywk-tinte);
	font-size: 14px;
	line-height: 1.45;
}
.aywk-pg .woocommerce-info { border-left-color: var(--aywk-marine); background: #ffffff; }
.aywk-pg .woocommerce-error { border-left-color: var(--aywk-orange-tief); background: #ffffff; }
.aywk-pg .woocommerce-message::before,
.aywk-pg .woocommerce-info::before,
.aywk-pg .woocommerce-error::before { top: 13px; left: 16px; }
.aywk-pg .woocommerce-message::before { color: var(--aywk-gruen); }
.aywk-pg .woocommerce-info::before { color: var(--aywk-marine); }
.aywk-pg .woocommerce-error::before { color: var(--aywk-orange-tief); }
/* "Warenkorb anzeigen" ist auf der Warenkorbseite selbst ein Link ins Leere */
.aywk-pg .woocommerce-message .button.wc-forward { display: none; }

/* ---------- Positionen: Tabelle bleibt Tabelle, Zeile wird Karte ---------- */
.aywk-pg table.shop_table.cart {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: separate;
	border-spacing: 0;
	background: transparent;
	table-layout: fixed; /* sonst bestimmt die Mindestbreite der Karten die Tabellenbreite (390 px: +37 px Ueberlauf) */
}
.aywk-pg table.shop_table.cart thead {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	clip-path: inset(50%);
	white-space: nowrap;
}
.aywk-pg table.shop_table.cart tbody { display: flex; flex-direction: column; gap: 12px; }
.aywk-pg table.shop_table.cart tbody > tr { display: block; }
.aywk-pg table.shop_table.cart tr.cart_item {
	display: grid;
	grid-template-columns: 96px minmax(0, 1fr) 140px 120px 36px;
	grid-template-areas:
		"bild name  menge summe weg"
		"bild preis menge summe weg";
	column-gap: 16px;
	row-gap: 4px;
	align-items: center;
	padding: 16px;
	border: 1px solid var(--aywk-linie);
	border-radius: 12px;
	background: #ffffff;
}
.aywk-pg table.shop_table.cart tr.cart_item td {
	display: block;
	width: auto;
	min-width: 0;
	padding: 0;
	border: 0;
	background: transparent;
	text-align: left !important;
}
.aywk-pg table.shop_table.cart tr.cart_item td::before { content: none; display: none; }
.aywk-pg table.shop_table.cart tr.cart_item td.product-thumbnail { grid-area: bild; align-self: start; min-width: 0; }
.aywk-pg table.shop_table.cart tr.cart_item td.product-name { grid-area: name; align-self: end; }
.aywk-pg table.shop_table.cart tr.cart_item td.product-price { grid-area: preis; align-self: start; }
.aywk-pg table.shop_table.cart tr.cart_item td.product-quantity { grid-area: menge; }
.aywk-pg table.shop_table.cart tr.cart_item td.product-subtotal { grid-area: summe; text-align: right !important; }
.aywk-pg table.shop_table.cart tr.cart_item td.product-remove { grid-area: weg; align-self: start; justify-self: end; }

/* Bild — nie beschneiden, nur einpassen */
.aywk-pg table.shop_table.cart tr.cart_item td.product-thumbnail a { display: block; }
.aywk-pg table.shop_table.cart tr.cart_item td.product-thumbnail img {
	display: block;
	width: 96px;
	height: 96px;
	max-width: none;
	object-fit: contain;
	border: 1px solid var(--aywk-linie);
	border-radius: 10px;
	background: var(--aywk-sand);
	box-shadow: none;
}

/* Name + Germanized-Zeilen (Lieferzeit, Grundpreis) */
.aywk-pg table.shop_table.cart tr.cart_item td.product-name > a {
	color: var(--aywk-tief);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.4;
	text-decoration: none;
}
.aywk-pg table.shop_table.cart tr.cart_item td.product-name > a:hover { color: var(--aywk-gruen); text-decoration: underline; }
.aywk-pg table.shop_table.cart tr.cart_item td.product-name > a:focus-visible { outline: 2px solid var(--aywk-marine); outline-offset: 2px; }
.aywk-pg table.shop_table.cart tr.cart_item td.product-name .wc-gzd-cart-info,
.aywk-pg table.shop_table.cart tr.cart_item td.product-name dl.variation {
	margin: 4px 0 0;
	font-size: 12px;
	line-height: 1.45;
	color: var(--aywk-tinte);
}
.aywk-pg table.shop_table.cart tr.cart_item td.product-name dl.variation dt,
.aywk-pg table.shop_table.cart tr.cart_item td.product-name dl.variation dd { margin: 0; padding: 0; font-size: 12px; }

/* Einzelpreis: "je …" + Grundpreis klein */
.aywk-pg table.shop_table.cart tr.cart_item td.product-price { font-size: 13px; line-height: 1.45; }
.aywk-pg table.shop_table.cart tr.cart_item td.product-price > .woocommerce-Price-amount::before { content: "je "; }
.aywk-pg table.shop_table.cart tr.cart_item.aywk-menge-1 td.product-price > .woocommerce-Price-amount { display: none; }
.aywk-pg table.shop_table.cart tr.cart_item td.product-price .wc-gzd-cart-info { display: block; font-size: 12px; }

/* Zwischensumme */
.aywk-pg table.shop_table.cart tr.cart_item td.product-subtotal {
	font-size: 17px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--aywk-tief);
	white-space: nowrap;
}
.aywk-pg table.shop_table.cart tr.cart_item td.product-subtotal .tax_label { display: block; font-size: 11px; font-weight: 400; }

/* Entfernen */
.aywk-pg table.shop_table.cart tr.cart_item td.product-remove a.remove {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	font-size: 22px;
	font-weight: 400;
	line-height: 1;
	color: var(--aywk-tinte) !important;
	background: transparent;
	text-decoration: none;
}
.aywk-pg table.shop_table.cart tr.cart_item td.product-remove a.remove:hover {
	color: var(--aywk-orange-tief) !important;
	background: var(--aywk-sand);
}
.aywk-pg table.shop_table.cart tr.cart_item td.product-remove a.remove:focus-visible { outline: 2px solid var(--aywk-marine); outline-offset: 2px; }

/* Menge: [−][ 1 ][+] — Theme-.quantity wird innen neutralisiert */
.aywk-pg .aywk-menge {
	display: inline-flex;
	align-items: stretch;
	height: 44px;
	border: 1px solid var(--aywk-linie);
	border-radius: 10px;
	background: #ffffff;
}
.aywk-pg .aywk-menge .quantity {
	display: flex;
	width: auto;
	height: auto;
	margin: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
}
.aywk-pg .aywk-menge input.qty {
	width: 48px;
	height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--aywk-tief);
	font-size: 16px;
	font-weight: 600;
	text-align: center;
	-moz-appearance: textfield;
	appearance: textfield;
}
.aywk-pg .aywk-menge input.qty:focus-visible { outline: 2px solid var(--aywk-marine); outline-offset: -2px; }
.aywk-pg .aywk-step {
	width: 40px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 10px;
	background: transparent;
	color: var(--aywk-tief);
	font-size: 20px;
	font-weight: 500;
	line-height: 1;
}
.aywk-pg .aywk-step:hover { background: var(--aywk-sand); }
.aywk-pg .aywk-step:focus-visible { outline: 2px solid var(--aywk-marine); outline-offset: -2px; }
.aywk-pg:not(.aywk-js) .aywk-step { display: none; }
/* ohne −/+ bleibt das reine Zahlfeld bedienbar */
.aywk-pg table.shop_table.cart tr.cart_item td.product-quantity > .quantity { width: 88px; height: 44px; border-color: var(--aywk-linie); border-radius: 10px; }

/* ---------- Aktionszeile: Gutschein dezent, Aktualisieren nur ohne JS ---------- */
.aywk-pg table.shop_table.cart td.actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 4px 0 0;
	border: 0;
	background: transparent;
	text-align: left !important;
}
.aywk-pg table.shop_table.cart td.actions::before { content: none; display: none; }
.aywk-pg table.shop_table.cart td.actions .coupon {
	display: flex;
	flex: 1 1 320px;
	gap: 8px;
	min-width: 0;
	max-width: 440px;
	margin: 0;
	padding: 0;
	float: none;
}
.aywk-pg table.shop_table.cart td.actions .coupon::before,
.aywk-pg table.shop_table.cart td.actions .coupon::after { content: none; display: none; }
.aywk-pg table.shop_table.cart td.actions .coupon input.input-text {
	flex: 1 1 0;
	width: 0; /* sonst haelt das Feld seine size-Breite und schiebt die Zeile aus dem Bild */
	min-width: 0;
	height: 44px;
	margin: 0;
	padding: 0 14px;
	float: none;
	border: 1px solid var(--aywk-linie);
	border-radius: 10px;
	background: #ffffff;
	color: var(--aywk-tief);
	font-size: 14px;
}
.aywk-pg table.shop_table.cart td.actions .coupon input.input-text:focus { border-color: var(--aywk-marine); outline: 0; }
.aywk-pg table.shop_table.cart td.actions .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: auto;
	height: 44px;
	margin: 0;
	padding: 0 18px;
	float: none;
	border: 1px solid var(--aywk-tinte);
	border-radius: 10px;
	background: #ffffff;
	color: var(--aywk-tief);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	white-space: nowrap;
}
.aywk-pg table.shop_table.cart td.actions .button:hover { background: var(--aywk-sand); color: var(--aywk-tief); }
.aywk-pg table.shop_table.cart td.actions .button:disabled { opacity: 1; color: var(--aywk-tinte); border-color: var(--aywk-linie); background: #ffffff; }
.aywk-pg.aywk-js table.shop_table.cart td.actions button[name="update_cart"] { display: none; }
.aywk-pg table.shop_table.cart td.actions .coupon-error-notice { flex-basis: 100%; width: auto; margin: 4px 0 0; color: var(--aywk-orange-tief); font-size: 12px; float: none; }

/* ---------- Summenkarte ---------- */
.aywk-pg .cart-collaterals { width: 100%; }
.aywk-pg .cart-collaterals .cart_totals {
	float: none;
	width: auto;
	margin: 16px 0 0;
	padding: 20px;
	border-radius: 14px;
	background: var(--aywk-sand);
}
@media (min-width: 1200px) {
	.aywk-pg .cart-collaterals .cart_totals { margin-top: 0; }
}
.aywk-pg .cart-collaterals .cart_totals > h2 {
	margin: 0 0 8px;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--aywk-tief);
}
.aywk-pg .cart-collaterals .cart_totals table.shop_table {
	width: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	border-collapse: collapse;
	background: transparent;
}
.aywk-pg .cart-collaterals .cart_totals table.shop_table tbody { display: block; }
.aywk-pg .cart-collaterals .cart_totals table.shop_table tr {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 4px 12px;
	padding: 10px 0;
	border-bottom: 1px solid var(--aywk-linie-2);
}
.aywk-pg .cart-collaterals .cart_totals table.shop_table tr th,
.aywk-pg .cart-collaterals .cart_totals table.shop_table tr td {
	display: block;
	width: auto;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--aywk-tinte);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.45;
}
.aywk-pg .cart-collaterals .cart_totals table.shop_table tr th { text-align: left !important; }
.aywk-pg .cart-collaterals .cart_totals table.shop_table tr td { flex: 1 1 auto; text-align: right !important; }
.aywk-pg .cart-collaterals .cart_totals table.shop_table tr td::before { content: none; display: none; }
.aywk-pg .cart-collaterals .cart_totals table.shop_table tr.order-total { border-bottom: 0; padding-top: 14px; }
.aywk-pg .cart-collaterals .cart_totals table.shop_table tr.order-total th { font-size: 16px; font-weight: 600; color: var(--aywk-tief); }
.aywk-pg .cart-collaterals .cart_totals table.shop_table tr.order-total td strong { font-size: 22px; font-weight: 700; color: var(--aywk-tief); }
.aywk-pg .cart-collaterals .cart_totals table.shop_table tr .includes_tax,
.aywk-pg .cart-collaterals .cart_totals table.shop_table tr .tax_label { display: block; font-size: 12px; color: var(--aywk-tinte); }
.aywk-pg .cart-collaterals .cart_totals table.shop_table tr.cart-subtotal .tax_label { display: none; }
.aywk-pg .cart-collaterals .cart_totals #shipping_method { margin: 0; padding: 0; list-style: none; }
.aywk-pg .cart-collaterals .cart_totals #shipping_method li { margin: 0; padding: 0; }
.aywk-pg .cart-collaterals .cart_totals #shipping_method label { font-size: 14px; }
.aywk-pg .cart-collaterals .cart_totals .woocommerce-shipping-destination { margin: 2px 0 0; font-size: 12px; }

/* Kassen-Knopf: Weiss auf Orange nur als grosse Schrift (19 px / 700 = AA gross) */
.aywk-pg .cart_totals .wc-proceed-to-checkout { margin: 0; padding: 16px 0 0; }
.aywk-pg .cart_totals .wc-proceed-to-checkout a.checkout-button {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	min-height: 56px;
	margin: 0;
	padding: 12px 20px;
	border: 0;
	border-radius: 12px;
	background: var(--aywk-orange);
	color: #ffffff;
	font-size: 19px;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
}
.aywk-pg .cart_totals .wc-proceed-to-checkout a.checkout-button::after { content: "\2192"; font-weight: 400; }
.aywk-pg .cart_totals .wc-proceed-to-checkout a.checkout-button:hover { background: var(--aywk-orange-tief); color: #ffffff; }
.aywk-pg .cart_totals .wc-proceed-to-checkout a.checkout-button:focus-visible { outline: 3px solid var(--aywk-marine); outline-offset: 2px; }
.aywk-pg .cart_totals .aywk-weiter { margin: 12px 0 0; text-align: center; font-size: 14px; }
.aywk-pg .cart_totals .aywk-weiter a { color: var(--aywk-tief); text-decoration: underline; text-underline-offset: 3px; }
.aywk-pg .cart_totals .aywk-weiter a:hover { color: var(--aywk-gruen); }

/* ---------- Leerer Warenkorb ---------- */
.aywk-pg .aywk-leer {
	max-width: 640px;
	margin: 8px auto 0;
	padding: 40px 24px;
	border: 1px solid var(--aywk-linie);
	border-radius: 14px;
	background: #ffffff;
	text-align: center;
}
/* Symbol = Theme-Grafik img/empty-cart.svg (main.min.css setzt sie per ::before) — nur Groesse in px */
.aywk-pg .aywk-leer.wc-empty-cart-message { display: block; max-width: 640px; margin: 8px auto 0; }
.aywk-pg .aywk-leer.wc-empty-cart-message::before { display: block; width: 72px; height: 72px; margin: 0 auto 16px; }
.aywk-pg .aywk-leer__titel { margin: 0 0 8px; font-size: 22px; font-weight: 600; line-height: 1.3; color: var(--aywk-tief); }
.aywk-pg .aywk-leer__text { margin: 0 0 24px; font-size: 15px; }
.aywk-pg .aywk-leer__aktion { display: block; max-width: none; width: auto; margin: 0; padding: 0; }
.aywk-pg .aywk-knopf {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 12px 32px;
	border-radius: 12px;
	background: var(--aywk-orange);
	color: #ffffff;
	font-size: 19px;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
}
.aywk-pg .aywk-knopf:hover { background: var(--aywk-orange-tief); color: #ffffff; }
.aywk-pg .aywk-knopf:focus-visible { outline: 3px solid var(--aywk-marine); outline-offset: 2px; }
.aywk-pg .aywk-leer__kats {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin: 24px 0 0;
	padding: 0;
	list-style: none;
}
.aywk-pg .aywk-leer__kats a {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 8px 16px;
	border: 1px solid var(--aywk-linie);
	border-radius: 999px;
	color: var(--aywk-tief);
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
}
.aywk-pg .aywk-leer__kats a:hover { background: var(--aywk-sand); }

/* ---------- Tablet: einspaltig, Karte bleibt Zeile ---------- */
@media (max-width: 1199px) {
	.aywk-pg .cart-collaterals .cart_totals { max-width: 520px; margin-left: auto; }
}

/* ---------- Handy ---------- */
@media (max-width: 767px) {
	.aywk-pg { padding: 16px 12px 40px; }
	.aywk-pg .aywk-h1 { margin-bottom: 14px; font-size: 24px; }
	.aywk-pg table.shop_table.cart tr.cart_item {
		grid-template-columns: 76px minmax(0, 1fr) auto;
		grid-template-areas:
			"bild  name  weg"
			"bild  preis preis"
			"menge menge summe";
		column-gap: 12px;
		row-gap: 6px;
		padding: 12px;
	}
	.aywk-pg table.shop_table.cart tr.cart_item td.product-thumbnail img { width: 76px; height: 76px; }
	.aywk-pg table.shop_table.cart tr.cart_item td.product-name { align-self: start; }
	.aywk-pg table.shop_table.cart tr.cart_item td.product-name > a { font-size: 14px; }
	.aywk-pg table.shop_table.cart tr.cart_item td.product-quantity { padding-top: 6px; }
	.aywk-pg table.shop_table.cart tr.cart_item td.product-subtotal { align-self: center; padding-top: 6px; }
	.aywk-pg table.shop_table.cart tr.cart_item td.product-remove a.remove { width: 32px; height: 32px; }
	.aywk-pg table.shop_table.cart td.actions .coupon { flex-basis: 100%; max-width: none; }
	.aywk-pg .cart-collaterals .cart_totals { max-width: none; padding: 16px; }
	.aywk-pg .aywk-leer { padding: 32px 16px; }
}
