/**
 * WooCommerce: Produktdetail, Warenkorb, Kasse, Bestätigung, Konto.
 * Die WC-Standardstyles sind abgeschaltet (inc/assets.php).
 */

/* =========================================================================
   Allgemein
   ========================================================================= */
.woocommerce-notices-wrapper:not(:empty),
.shop-notice {
	margin-block: var(--space-xs);
}

.woocommerce-notices-wrapper .alert-stack + .alert-stack {
	margin-top: 16px;
}

.price del {
	color: var(--neutral-600);
	font-weight: 400;
}

.price ins {
	text-decoration: none;
}

.woocommerce-Price-currencySymbol {
	margin-right: 0.15em;
}

.blockUI.blockOverlay {
	background: rgba(255, 255, 255, 0.6) !important;
	opacity: 1 !important;
}

.added_to_cart {
	font-size: var(--fs-detail);
	font-weight: 700;
}

.shop-page {
	padding-bottom: var(--space-2xl);
}

.shop-page__title {
	margin: var(--space-xs) 0 var(--space-l);
}

.is-checkout-flow .shop-page__title {
	margin-top: var(--space-l);
}

/* =========================================================================
   Produktdetail
   ========================================================================= */
.product-detail__grid {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: var(--space-2xl);
	align-items: start;
	padding-bottom: var(--space-2xl);
}

.product-detail__cover {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1 / 1;
	padding: var(--space-l);
	background: var(--blue-50);
}

.product-detail__cover img {
	/* Nie grösser als das Original (Inline-Style max-width). */
	width: auto;
	height: auto;
	max-height: 100%;
	object-fit: contain;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}

.product-detail__media-links {
	margin-top: 16px;
}

.product-detail__summary {
	display: flex;
	flex-direction: column;
	gap: 16px;
	max-width: var(--content-small);
}

.product-detail__series {
	margin-top: 8px;
	color: var(--neutral-700);
	font-size: var(--fs-body-m);
	font-weight: 700;
}

.product-detail__title {
	font-size: var(--fs-heading-l);
	line-height: var(--lh-heading);
	overflow-wrap: anywhere;
}

.product-detail__subtitle {
	font-size: var(--fs-heading-xxs);
	line-height: var(--lh-heading-xxs);
}

.product-detail__authors {
	font-size: var(--fs-body-m);
}

/* Kaufblock */
.buybox {
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin-top: 16px;
	padding-top: 24px;
	border-top: 1px solid var(--neutral-200);
}

.buybox__price {
	font-size: var(--fs-heading-s);
	font-weight: 700;
	line-height: var(--lh-heading-s);
}

.buybox__price-note {
	margin-top: -8px;
	color: var(--neutral-700);
	font-size: var(--fs-detail);
}

.availability {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: var(--fs-body-s);
	font-weight: 700;
}

.availability--success { color: var(--success-text); }
.availability--info    { color: var(--info-text); }
.availability--warning { color: var(--warning-text); }
.availability--error   { color: var(--error-text); }

.availability__extra {
	font-weight: 400;
}

.buybox__cart form.cart {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	align-items: center;
}

.buybox__cart .single_add_to_cart_button {
	flex: 1 1 220px;
}

.buybox__cart .stock {
	display: none; /* Lagerstatus zeigt das Theme oben selbst. */
}

/* Akkordeon + Bibliografie */
.product-detail__more {
	padding-bottom: var(--space-2xl);
}

.product-detail__more-grid {
	display: grid;
	grid-template-columns: minmax(0, var(--content-small)) minmax(0, 1fr);
	gap: var(--space-2xl);
	align-items: start;
}

.accordion__title {
	font-size: var(--fs-body-l);
	font-weight: 400;
	line-height: 1.5;
}

.biblio .deflist {
	margin-top: 16px;
}

.material-list {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 0 !important;
	list-style: none;
}

.material-list li + li {
	margin-top: 0 !important;
}

.material-list__link {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 12px 8px;
	color: var(--neutral-900);
	text-decoration: none;
}

.material-list__link:hover {
	background: var(--neutral-50);
	color: var(--neutral-900);
}

.material-list__title {
	display: block;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.material-list__desc {
	display: block;
	color: var(--neutral-700);
	font-size: var(--fs-body-s);
}

@media (max-width: 939px) {
	.product-detail__grid,
	.product-detail__more-grid {
		grid-template-columns: 1fr;
		gap: var(--space-l);
	}

	.product-detail__cover {
		aspect-ratio: 4 / 3;
	}
}

/* =========================================================================
   Formularlayout (Kasse, Konto): Gruppen 32, Felder 16, nebeneinander 32
   ========================================================================= */
.form-grid,
.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper,
.woocommerce-additional-fields__field-wrapper,
.woocommerce-address-fields__field-wrapper {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px 32px;
}

.form-row {
	display: flex;
	flex-direction: column;
	gap: 8px;
	grid-column: 1 / -1;
	margin: 0;
}

.form-row-first {
	grid-column: 1;
}

.form-row-last {
	grid-column: 2;
}

.form-row .woocommerce-input-wrapper {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.form-row.hidden,
.form-row[style*="display: none"] {
	display: none;
}

@media (max-width: 699px) {
	.form-grid,
	.woocommerce-billing-fields__field-wrapper,
	.woocommerce-shipping-fields__field-wrapper,
	.woocommerce-address-fields__field-wrapper {
		grid-template-columns: 1fr;
	}

	.form-row-first,
	.form-row-last {
		grid-column: 1;
	}
}

/* =========================================================================
   Warenkorb
   ========================================================================= */
.cart-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 420px);
	gap: var(--space-xl);
	align-items: start;
}

.cart-layout__aside {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.cart-table td.product-quantity {
	min-width: 170px;
}

.cart-table th.product-name {
	font-size: var(--fs-body-s);
	font-weight: 400;
}

.cart-table thead th.product-name {
	font-size: var(--fs-heading-xxs);
	font-weight: 700;
}

.cart-item {
	display: flex;
	align-items: center;
	gap: 16px;
	min-width: 260px;
}

.cart-item__thumb {
	flex: 0 0 56px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 72px;
	background: var(--blue-50);
}

.cart-item__thumb img {
	max-width: 48px;
	max-height: 64px;
	width: auto;
	height: auto;
}

.cart-item__title {
	display: block;
	color: var(--neutral-900);
	font-weight: 700;
	text-decoration: none;
}

a.cart-item__title:hover {
	text-decoration: underline;
}

.cart-item__meta {
	display: block;
	color: var(--neutral-700);
	font-size: var(--fs-detail);
}

.cart-table .qty {
	height: 48px;
}

.cart-table .qty input.qty {
	height: 48px;
	width: 48px;
}

.cart-table .qty__btn {
	width: 40px;
}

.cart-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px;
	margin-top: 24px;
}

.cart-actions .coupon {
	display: flex;
	gap: 8px;
	margin-left: auto;
}

.cart-actions .coupon .input {
	width: 200px;
}

.cart-actions [name="update_cart"]:disabled {
	visibility: hidden;
}

/* Zusammenfassung (cart-totals.php, WC-Standard) */
.cart_totals {
	padding: var(--space-s);
	background: var(--neutral-50);
}

.cart_totals h2 {
	margin-bottom: 16px;
	font-size: var(--fs-heading-xs);
	line-height: var(--lh-heading-xs);
}

.cart_totals table,
.woocommerce-checkout-review-order-table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--fs-body-s);
}

.cart_totals th,
.cart_totals td,
.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td {
	padding: 12px 0;
	border-bottom: 1px solid var(--neutral-200);
	text-align: left;
	vertical-align: top;
}

.cart_totals td,
.woocommerce-checkout-review-order-table td:last-child,
.woocommerce-checkout-review-order-table th:last-child {
	text-align: right;
}

.cart_totals .order-total th,
.cart_totals .order-total td,
.woocommerce-checkout-review-order-table .order-total th,
.woocommerce-checkout-review-order-table .order-total td {
	border-bottom: 0;
	padding-top: 16px;
	font-size: var(--fs-heading-xxs);
	font-weight: 700;
}

ul#shipping_method {
	margin: 0;
	padding: 0;
	list-style: none;
}

ul#shipping_method li {
	display: flex;
	justify-content: flex-end;
	gap: 8px;
}

ul#shipping_method li + li {
	margin-top: 8px;
}

.woocommerce-shipping-destination,
.woocommerce-shipping-calculator {
	font-size: var(--fs-detail);
	color: var(--neutral-700);
}

.wc-proceed-to-checkout {
	margin-top: 24px;
}

.wc-proceed-to-checkout .checkout-button {
	width: 100%;
}

@media (max-width: 1199px) {
	.cart-layout {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 699px) {
	.cart-actions .coupon {
		width: 100%;
		margin-left: 0;
	}

	.cart-actions .coupon .input {
		flex: 1;
		width: auto;
	}

	/* Mobile: erste Spalte fixiert (Pinned) */
	.cart-table tr > :first-child {
		position: sticky;
		left: 0;
		z-index: 1;
		background: var(--white);
		padding-left: 16px;
	}

	.cart-item {
		min-width: 150px;
        display: flex;
        flex-direction: column;
	}
}

/* =========================================================================
   Kasse
   ========================================================================= */
.checkout-layout {
	display: grid;
	grid-template-columns: minmax(0, var(--content-small)) minmax(0, 420px);
	justify-content: space-between;
	gap: var(--space-xl);
	align-items: start;
}

.checkout-layout__main {
	display: flex;
	flex-direction: column;
	gap: var(--space-xl);
}

.checkout-layout__aside {
	position: sticky;
	top: calc(var(--header-height) + 24px);
}

.order-summary {
	padding: var(--space-s);
	background: var(--neutral-50);
}

.order-summary h2 {
	margin-bottom: 16px;
}

#customer_details {
	display: flex;
	flex-direction: column;
	gap: var(--space-xl);
}

.checkout-step {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.checkout-step__title {
	display: flex;
	align-items: center;
	gap: 16px;
	font-size: var(--fs-heading-s);
	line-height: var(--lh-heading-s);
}

.checkout-step__no {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 40px;
	width: 40px;
	height: 40px;
	border-radius: var(--radius-round);
	background: var(--black);
	color: var(--white);
	font-size: var(--fs-body-m);
}

.checkout-step__intro {
	color: var(--neutral-700);
}

.checkout-step__title--submit {
	margin: var(--space-l) 0 24px;
}

/* Kundentyp-Kacheln */
.type-tiles {
	margin: 0;
	padding: 0;
	border: 0;
	min-width: 0;
}

.type-tiles__legend {
	margin-bottom: 16px;
	padding: 0 0 0 8px;
	color: var(--neutral-700);
	font-weight: 700;
}

.type-tiles__list {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.type-tile {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 16px;
	background: var(--white);
	box-shadow: inset 0 0 0 1px var(--neutral-200);
	cursor: pointer;
}

.type-tile:hover {
	background: var(--neutral-50);
}

.type-tile:has(input:checked) {
	box-shadow: inset 0 0 0 2px var(--black);
}

.type-tile:has(input:focus-visible) {
	outline: 2px solid var(--black);
	outline-offset: 2px;
}

.type-tile input:focus-visible {
	outline: none;
}

.type-tile__title {
	display: block;
	color: var(--neutral-900);
	font-size: var(--fs-body-s);
	font-weight: 700;
}

.type-tile__hint {
	display: block;
	margin-top: 4px;
	color: var(--neutral-700);
	font-size: var(--fs-detail);
}

.woocommerce-invalid .type-tile {
	box-shadow: inset 0 0 0 1px var(--error-text);
	background: var(--error-bg);
}

@media (max-width: 699px) {
	.type-tiles__list {
		grid-template-columns: 1fr;
	}
}

/* Lieferadresse, Mitteilung */
.woocommerce-shipping-fields h3,
.woocommerce-additional-fields h3 {
	font-size: var(--fs-body-m);
	font-weight: 700;
}

#ship-to-different-address label {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	font-size: var(--fs-body-s);
	cursor: pointer;
}

.shipping_address {
	margin-top: 24px;
}

.woocommerce-additional-fields {
	margin-top: 32px;
}

/* Zahlung + Abschluss */
#payment .wc_payment_methods {
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

#payment .wc_payment_method {
	padding: 16px;
	box-shadow: inset 0 0 0 1px var(--neutral-200);
}

#payment .wc_payment_method:has(input:checked) {
	box-shadow: inset 0 0 0 2px var(--black);
}

#payment .wc_payment_method > label {
	display: inline-flex;
	gap: 8px;
	margin-left: 8px;
	font-weight: 700;
	cursor: pointer;
}

#payment .payment_box {
	margin-top: 12px;
	color: var(--neutral-700);
	font-size: var(--fs-body-s);
}

#payment .place-order {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.woocommerce-terms-and-conditions-wrapper {
	display: flex;
	flex-direction: column;
	gap: 16px;
	font-size: var(--fs-body-s);
}

.woocommerce-privacy-policy-text {
	color: var(--neutral-700);
	font-size: var(--fs-detail);
}

.woocommerce-terms-and-conditions {
	max-height: 240px;
	overflow: auto;
	padding: 16px;
	box-shadow: inset 0 0 0 1px var(--neutral-200);
}

.woocommerce-NoticeGroup-checkout {
	margin-bottom: 8px;
}

.woocommerce-form-login-toggle .alert,
.woocommerce-form-coupon-toggle .alert {
	margin-bottom: 0;
}

form.woocommerce-form-login,
form.checkout_coupon {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	max-width: var(--content-small);
	margin: 16px 0 var(--space-m);
	padding: 24px;
	box-shadow: inset 0 0 0 1px var(--neutral-200);
}

@media (max-width: 1199px) {
	.checkout-layout {
		grid-template-columns: minmax(0, 1fr);
	}

	.checkout-layout__aside {
		position: static;
		order: -1;
	}
}

/* =========================================================================
   Bestellbestätigung + Bestelldetails
   ========================================================================= */
.order-received__details {
	display: flex;
	flex-direction: column;
	gap: var(--space-l);
	margin-top: var(--space-xl);
}

.woocommerce-order-details__title,
.woocommerce-column__title,
.woocommerce-customer-details h2 {
	margin-bottom: 16px;
	font-size: var(--fs-heading-xs);
	line-height: var(--lh-heading-xs);
}

.woocommerce-table--order-details,
.woocommerce-orders-table,
.woocommerce-table {
	width: 100%;
	max-width: 960px;
	border-collapse: collapse;
	font-size: var(--fs-body-s);
}

.woocommerce-table--order-details th,
.woocommerce-table--order-details td,
.woocommerce-orders-table th,
.woocommerce-orders-table td {
	padding: 16px;
	border: 2px solid var(--neutral-200);
	text-align: left;
}

.woocommerce-customer-details address {
	font-style: normal;
	line-height: 1.6;
}

.woocommerce-columns--addresses {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: var(--space-m);
}

/* =========================================================================
   Mein Konto
   ========================================================================= */
.woocommerce-account .shop-page__content > .woocommerce {
	display: grid;
	grid-template-columns: minmax(0, 320px) minmax(0, 1fr);
	gap: var(--space-xl);
	align-items: start;
}

.woocommerce-MyAccount-navigation ul {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce-MyAccount-navigation a {
	display: flex;
	justify-content: space-between;
	padding: 16px;
	box-shadow: inset 0 0 0 1px var(--neutral-200);
	color: var(--neutral-900);
	font-weight: 700;
	text-decoration: none;
}

.woocommerce-MyAccount-navigation a:hover {
	background: var(--neutral-50);
}

.woocommerce-MyAccount-navigation .is-active a {
	box-shadow: inset 0 0 0 2px var(--black);
}

.woocommerce-MyAccount-content {
	display: flex;
	flex-direction: column;
	gap: 24px;
	max-width: var(--content-small);
}

.woocommerce-form-login,
.woocommerce-form-register,
.woocommerce-EditAccountForm,
.woocommerce-ResetPassword {
	display: flex;
	flex-direction: column;
	gap: 16px;
	max-width: var(--content-small);
}

.u-columns.col2-set {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: var(--space-xl);
}

.u-columns h2 {
	margin-bottom: 24px;
	font-size: var(--fs-heading-s);
}

@media (max-width: 939px) {
	.woocommerce-account .shop-page__content > .woocommerce {
		grid-template-columns: 1fr;
	}
}
