/**
 * HeideCuisine 2 – WooCommerce & German Market
 * (klassische WooCommerce-Ausgabe: Shop, Produkte, Warenkorb, Kasse, Konto)
 */

/* Kurznamen für die Farben/Werte aus theme.json */
:root {
	--c-erika: var(--wp--preset--color--accent-1);
	--c-erika-700: #6c3f46;
	--c-erika-900: var(--wp--preset--color--accent-3);
	--c-erika-300: #c18f97;
	--c-erika-200: var(--wp--preset--color--rose);
	--c-erika-100: var(--wp--preset--color--accent-2);
	--c-erika-50: var(--wp--preset--color--accent-5);
	--c-juniper: var(--wp--preset--color--juniper);
	--c-sky: #7fb1cf;
	--c-white: #fff;
	--c-ink: var(--wp--preset--color--contrast);
	--c-muted: var(--wp--preset--color--accent-4);
	--c-line: #eadcdf;
	--font-serif: var(--wp--preset--font-family--fraunces);
	--radius-sm: 8px;
	--radius: 14px;
	--shadow-sm: 0 1px 2px rgba(65, 38, 42, .06), 0 2px 8px rgba(65, 38, 42, .05);
	--shadow: 0 2px 6px rgba(65, 38, 42, .06), 0 12px 32px rgba(65, 38, 42, .09);
	--ease: cubic-bezier(.2, .7, .2, 1);
	--container-narrow: 720px;
}

/* ---------- Allgemein ---------- */

.woocommerce .button,
.woocommerce button.button,
.woocommerce a.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
	padding: .8em 1.5em;
	border-radius: 999px;
	background: var(--c-erika);
	color: var(--c-white);
	font-weight: 600;
	line-height: 1.2;
}

.woocommerce .button:hover,
.woocommerce button.button:hover,
.woocommerce a.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover {
	background: var(--c-erika-700);
	color: var(--c-white);
}

.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled],
.woocommerce button.button.alt.disabled {
	padding: .8em 1.5em;
	background: var(--c-erika-300);
	color: var(--c-white);
	opacity: .7;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
p.no-comments {
	margin-bottom: 2em;
	padding: 1em 1.25em 1em 3.2em;
	border: 0;
	border-left: 4px solid var(--c-juniper);
	border-radius: var(--radius-sm);
	background: var(--c-white);
	box-shadow: var(--shadow-sm);
	color: var(--c-ink);
}

.woocommerce-info {
	border-left-color: var(--c-sky);
}

.woocommerce-error {
	border-left-color: #b3373f;
}

.woocommerce-message::before {
	color: var(--c-juniper);
}

.woocommerce-info::before {
	color: var(--c-sky);
}

.woocommerce-message .button,
.woocommerce-info .button {
	padding: .5em 1.1em !important;
	font-size: .9rem;
}

.woocommerce-store-notice,
p.demo_store {
	background: var(--c-erika-900);
}

.woocommerce span.onsale {
	min-width: 0;
	min-height: 0;
	top: 12px;
	left: 12px;
	padding: .35em .8em;
	border-radius: 999px;
	background: var(--c-juniper);
	font-size: .8rem;
	font-weight: 700;
	line-height: 1.3;
}

.woocommerce .star-rating span::before,
.woocommerce p.stars a {
	color: var(--c-erika);
}

/* Breadcrumb */
.woocommerce .woocommerce-breadcrumb {
	margin: 0;
	color: var(--c-muted);
	font-size: .9rem;
}

.woocommerce .woocommerce-breadcrumb a {
	color: var(--c-erika);
	text-decoration: none;
}

.woocommerce-breadcrumb .sep {
	margin: 0 .5em;
	color: var(--c-erika-300);
}


/* Sortierung / Ergebnisanzahl */
.woocommerce .woocommerce-result-count {
	margin-bottom: 24px;
	color: var(--c-muted);
	font-size: .95rem;
}

.woocommerce .woocommerce-ordering {
	margin-bottom: 24px;
}

.woocommerce .woocommerce-ordering select {
	width: auto;
	padding-block: .5em;
}

/* ---------- Produktliste ---------- */

.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr));
	gap: clamp(16px, 2.5vw, 28px);
	margin: 0 0 2em;
	padding: 0;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
	display: none;
}

.woocommerce ul.products.columns-1 { --cols: 1; }
.woocommerce ul.products.columns-2 { --cols: 2; }
.woocommerce ul.products.columns-3 { --cols: 3; }
.woocommerce ul.products.columns-4 { --cols: 4; }
.woocommerce ul.products.columns-5 { --cols: 5; }

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	display: flex;
	float: none;
	position: relative;
	flex-direction: column;
	width: auto !important;
	margin: 0 !important;
	padding: 0 0 20px;
	overflow: hidden;
	border: 1px solid var(--c-line);
	border-radius: var(--radius);
	background: var(--c-white);
	text-align: left;
	transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}

.woocommerce ul.products li.product:hover {
	transform: translateY(-3px);
	box-shadow: var(--shadow);
}

.woocommerce ul.products li.product a {
	text-decoration: none;
}

.woocommerce ul.products li.product a img {
	width: 100%;
	aspect-ratio: 1;
	margin: 0 0 16px;
	object-fit: cover;
	background: var(--c-erika-50);
	transition: transform .5s var(--ease);
}

.woocommerce ul.products li.product:hover a img {
	transform: scale(1.03);
}

.woocommerce ul.products li.product .woocommerce-loop-product__link {
	display: block;
	overflow: hidden;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .woocommerce-loop-category__title {
	margin: 0;
	padding: 0 20px;
	color: var(--c-erika-900);
	font-family: var(--font-serif);
	font-size: 1.2rem;
	font-weight: 500;
	line-height: 1.25;
}

.woocommerce ul.products li.product .price {
	display: block;
	margin: .5em 0 0;
	padding: 0 20px;
	color: var(--c-erika);
	font-size: 1.1rem;
	font-weight: 700;
}

.woocommerce ul.products li.product .price del {
	color: var(--c-muted);
	font-weight: 400;
}

.woocommerce ul.products li.product .price small,
.woocommerce ul.products li.product .woocommerce-price-suffix {
	color: var(--c-muted);
	font-size: .75rem;
	font-weight: 400;
}

/* German-Market-Angaben in Listen kompakt halten */
.woocommerce ul.products li.product .wgm-info,
.woocommerce ul.products li.product .price-per-unit,
.woocommerce ul.products li.product .shipping_de {
	display: block;
	margin: 0;
	padding: 0 20px;
	color: var(--c-muted);
	font-size: .78rem;
	line-height: 1.45;
}

.woocommerce ul.products li.product .wgm-info a {
	color: var(--c-muted);
	text-decoration: underline;
}

.woocommerce ul.products li.product .button {
	align-self: flex-start;
	margin: 16px 20px 0;
	padding: .65em 1.2em;
	font-size: .92rem;
}

.woocommerce ul.products li.product .added_to_cart {
	display: inline-block;
	margin: 8px 20px 0;
	font-size: .9rem;
	font-weight: 600;
}

/* Kategorie-Kacheln */
.woocommerce ul.products li.product-category a {
	display: block;
}

.woocommerce ul.products li.product-category mark.count {
	background: none;
	color: var(--c-muted);
	font-size: .8em;
}

/* ---------- Einzelnes Produkt ---------- */

.woocommerce div.product {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 0 clamp(28px, 5vw, 64px);
}

.woocommerce div.product > * {
	grid-column: 1 / -1;
}

.woocommerce div.product div.images,
.woocommerce div.product div.summary {
	float: none;
	width: auto;
	margin-bottom: 2em;
}

.woocommerce div.product div.images {
	grid-column: 1;
}

.woocommerce div.product div.summary {
	grid-column: 2;
}

.woocommerce div.product span.onsale {
	grid-column: 1;
}

.woocommerce div.product div.images img {
	border-radius: var(--radius);
}

.woocommerce div.product div.images .flex-control-thumbs {
	display: flex;
	gap: 8px;
	margin-top: 8px;
}

.woocommerce div.product div.images .flex-control-thumbs li {
	width: 72px;
}

.woocommerce div.product div.images .flex-control-thumbs li img {
	border-radius: var(--radius-sm);
}

.woocommerce div.product .product_title {
	margin: 0 0 .3em;
	font-size: clamp(2rem, 4vw, 2.8rem);
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	margin-bottom: .2em;
	color: var(--c-erika);
	font-size: 1.6rem;
	font-weight: 700;
}

.woocommerce div.product .summary .wgm-info,
.woocommerce div.product .summary .price-per-unit,
.woocommerce div.product .summary .shipping_de,
.woocommerce div.product .summary .woocommerce-price-suffix {
	color: var(--c-muted);
	font-size: .88rem;
}

.woocommerce div.product .woocommerce-product-details__short-description {
	margin-top: 1.25em;
}

.woocommerce div.product form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin: 1.75em 0;
	padding: 20px;
	border-radius: var(--radius);
	background: var(--c-erika-50);
}

.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: 5em;
	padding: .7em .5em;
	border-radius: 999px;
	text-align: center;
}

.woocommerce div.product form.cart .button {
	float: none;
	flex: 1;
	padding-block: .95em;
}

.woocommerce div.product form.cart .variations {
	margin-bottom: 0;
}

.woocommerce div.product .product_meta {
	color: var(--c-muted);
	font-size: .9rem;
}

.woocommerce div.product .product_meta > span {
	display: block;
}

/* Tabs – wie im bisherigen Theme wird nur die Beschreibung gezeigt, ohne Reiterleiste */
.woocommerce div.product .woocommerce-tabs {
	padding-top: 1em;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: none !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0 0 1.5em;
	padding: 0;
	border-bottom: 1px solid var(--c-line);
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
	display: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: .7em 1.1em;
	border-bottom: 2px solid transparent;
	color: var(--c-muted);
	font-weight: 600;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	border-bottom-color: var(--c-erika);
	color: var(--c-erika-900);
}

.woocommerce div.product .woocommerce-tabs .panel {
	max-width: var(--container-narrow);
}

.woocommerce div.product .woocommerce-tabs .panel > h2:first-child {
	display: none;
}

.woocommerce table.shop_attributes {
	border: 0;
}

.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td {
	padding: .6em .75em;
	border: 0;
	border-bottom: 1px solid var(--c-line);
	background: none !important;
	font-style: normal;
}

/* ---------- Tabellen: Warenkorb, Kasse, Konto ---------- */

.woocommerce table.shop_table {
	overflow: hidden;
	border: 1px solid var(--c-line);
	border-radius: var(--radius);
	background: var(--c-white);
	border-collapse: separate;
}

.woocommerce table.shop_table th {
	padding: 14px 16px;
	background: var(--c-erika-50);
	color: var(--c-erika-900);
	font-weight: 700;
}

.woocommerce table.shop_table td {
	padding: 14px 16px;
	border-top: 1px solid var(--c-line);
}

.woocommerce table.shop_table img {
	width: 64px;
	border-radius: var(--radius-sm);
}

.woocommerce a.remove {
	color: var(--c-erika) !important;
}

.woocommerce a.remove:hover {
	background: var(--c-erika);
	color: var(--c-white) !important;
}

.woocommerce-cart table.cart td.actions .coupon .input-text {
	width: 12em;
	margin-right: 8px;
	padding: .7em 1em;
	border-color: #dccbce;
	border-radius: 999px;
}

.woocommerce .cart-collaterals .cart_totals,
.woocommerce-page .cart-collaterals .cart_totals {
	width: min(100%, 480px);
}

.woocommerce .cart-collaterals h2 {
	margin-top: 0;
	font-size: 1.6rem;
}

.wc-proceed-to-checkout a.checkout-button {
	width: 100%;
	padding: 1em 1.5em !important;
	font-size: 1.1rem !important;
}

/* Kasse */
.woocommerce form .form-row {
	margin: 0 0 1em;
	padding: 0;
}

.woocommerce form .form-row label {
	display: block;
	margin-bottom: .3em;
	line-height: 1.4;
}

.woocommerce form .form-row .input-text,
.woocommerce form .form-row select,
.woocommerce form .form-row textarea {
	padding: .7em .9em;
	border: 1px solid #dccbce;
	border-radius: var(--radius-sm);
}

.woocommerce form .form-row.woocommerce-invalid .input-text {
	border-color: #b3373f;
}

.select2-container--default .select2-selection--single {
	height: auto;
	padding: .55em .5em;
	border-color: #dccbce;
	border-radius: var(--radius-sm);
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
	top: 50%;
	transform: translateY(-50%);
}

.woocommerce-checkout #order_review_heading,
.woocommerce-checkout h3 {
	margin-top: 1.5em;
}

.woocommerce-checkout #payment {
	border-radius: var(--radius);
	background: var(--c-erika-50);
}

.woocommerce-checkout #payment div.payment_box {
	border-radius: var(--radius-sm);
	background: var(--c-white);
}

.woocommerce-checkout #payment div.payment_box::before {
	border-bottom-color: var(--c-white);
}

.woocommerce #payment #place_order,
.woocommerce-page #payment #place_order {
	width: 100%;
	padding: 1em 1.5em;
	font-size: 1.1rem;
}

/* German Market: Checkboxen für AGB/Widerruf */
.woocommerce-checkout .wgm-place-order-disabled,
.woocommerce-checkout .german-market-checkbox-p {
	margin-bottom: .8em;
}

.woocommerce form .form-row.german-market-checkbox-p label,
.woocommerce form .form-row .woocommerce-form__label-for-checkbox {
	display: inline;
	font-weight: 400;
}

/* Mein Konto */
.woocommerce-account .woocommerce-MyAccount-navigation ul {
	margin: 0;
	padding: 8px;
	border: 1px solid var(--c-line);
	border-radius: var(--radius);
	background: var(--c-white);
	list-style: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation a {
	display: block;
	padding: 10px 14px;
	border-radius: var(--radius-sm);
	color: var(--c-ink);
	text-decoration: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation a:hover,
.woocommerce-account .woocommerce-MyAccount-navigation .is-active a {
	background: var(--c-erika-50);
	color: var(--c-erika);
}

.woocommerce form.login,
.woocommerce form.register,
.woocommerce form.checkout_coupon,
.woocommerce form.lost_reset_password {
	padding: clamp(20px, 3vw, 32px);
	border: 1px solid var(--c-line);
	border-radius: var(--radius);
	background: var(--c-white);
}

/* ---------- Widgets ---------- */

.widget_shopping_cart .cart_list li,
.widget_products .product_list_widget li,
.product_list_widget li {
	display: block;
	padding: 12px 0 !important;
}

.product_list_widget li a {
	display: flex;
	flex-direction: column;
	gap: 8px;
	color: var(--c-erika-900);
	font-family: var(--font-serif);
	font-size: 1.1rem;
	font-weight: 500;
	text-decoration: none;
}

.woocommerce ul.product_list_widget li img {
	float: none;
	width: 100%;
	margin: 0 0 4px;
	border-radius: var(--radius-sm);
}

.product_list_widget .amount {
	color: var(--c-erika);
	font-weight: 700;
}

.product_list_widget .wgm-info,
.product_list_widget .woocommerce-price-suffix,
.product_list_widget .price-per-unit {
	display: block;
	color: var(--c-muted);
	font-size: .78rem;
	line-height: 1.45;
}

.widget_shopping_cart .buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.widget_shopping_cart .buttons a {
	flex: 1;
	margin: 0 !important;
	padding: .6em 1em;
	font-size: .9rem;
}

.widget_price_filter .ui-slider .ui-slider-range,
.widget_price_filter .ui-slider .ui-slider-handle {
	background: var(--c-erika);
}

/* ---------- German Market: Widerrufsbutton ---------- */

/* German Market setzt den gesetzlichen „Vertrag widerrufen“-Button per wp_footer
   hinter den Footer. Als Inline-Link ragte sein Padding in den Footer hinein. */
.german-market-withdrawal-button-wrap {
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30);
	text-align: center;
}

.german-market-withdrawal-button-wrap .german-market-withdrawal-button {
	display: inline-block;
	margin: 0;
}

/* ---------- Responsive ---------- */

@media (max-width: 980px) {
	.woocommerce ul.products.columns-3,
	.woocommerce ul.products.columns-4,
	.woocommerce ul.products.columns-5 {
		--cols: 2;
	}
}

/* Seitenleiste unter dem Inhalt: Produkt-Widget als kompakte Liste */
@media (max-width: 980px) {
	.sidebar .product_list_widget li {
		display: grid !important;
		grid-template-columns: 72px minmax(0, 1fr);
		column-gap: 14px;
	}

	.sidebar .product_list_widget li > * {
		grid-column: 2;
	}

	.sidebar .product_list_widget li > a {
		display: contents;
	}

	.woocommerce .sidebar ul.product_list_widget li img {
		grid-column: 1;
		grid-row: 1 / span 6;
		width: 72px;
		margin: 0;
	}
}

@media (max-width: 768px) {
	.woocommerce div.product {
		grid-template-columns: minmax(0, 1fr);
	}

	.woocommerce div.product div.images,
	.woocommerce div.product div.summary {
		grid-column: 1;
	}

	.woocommerce table.shop_table_responsive tr td,
	.woocommerce-page table.shop_table_responsive tr td {
		padding: 10px 16px;
	}
}

/* Handy: zwei kompakte Spalten */
@media (max-width: 560px) {
	.woocommerce ul.products[class*="columns-"] {
		--cols: 2;
		gap: 12px;
	}

	.woocommerce ul.products li.product,
	.woocommerce-page ul.products li.product {
		padding-bottom: 12px;
	}

	.woocommerce ul.products li.product a img {
		margin-bottom: 10px;
	}

	.woocommerce ul.products li.product .woocommerce-loop-product__title,
	.woocommerce ul.products li.product .price,
	.woocommerce ul.products li.product .wgm-info,
	.woocommerce ul.products li.product .price-per-unit,
	.woocommerce ul.products li.product .shipping_de {
		padding-inline: 12px;
	}

	.woocommerce ul.products li.product .woocommerce-loop-product__title {
		font-size: 1.02rem;
		hyphens: auto;
	}

	.woocommerce ul.products li.product .price {
		font-size: 1rem;
	}

	.woocommerce ul.products li.product .button {
		align-self: stretch;
		margin: 12px 12px 0;
		padding: .65em .5em;
		font-size: .85rem;
	}

	.woocommerce div.product form.cart {
		padding: 14px;
	}

	.woocommerce div.product form.cart .button {
		flex-basis: 100%;
	}

	.woocommerce .cart-collaterals .cart_totals {
		width: 100%;
	}

	.woocommerce-cart table.cart td.actions .coupon .input-text {
		width: 100%;
		margin: 0 0 8px;
	}
}

@media (max-width: 340px) {
	.woocommerce ul.products[class*="columns-"] {
		--cols: 1;
	}
}
