/* daysence WooCommerce Mapping — verknüpft Woo-Core-Selektoren (Cart, Checkout, My-Account, Shop-Archiv)
   mit den Custom Properties aus brand.css. Keine eigenen Werte, nur var(--*)-Referenzen.
   Abgedeckt: klassische Woo-Shortcode-Templates + Block-Checkout/Cart (.wc-block-*). */

/* ==========================================================================
   BASIS · Typografie & Grundfarben auf allen Woo-Seiten
   ========================================================================== */

.woocommerce,
.woocommerce-page,
.wc-block-cart,
.wc-block-checkout,
.woocommerce-MyAccount-content {
	font-family: var(--font-sans);
	color: var(--color-text);
	font-size: var(--text-body);
	line-height: var(--leading-body);
}

.woocommerce h1,
.woocommerce h2,
.woocommerce-page h1,
.woocommerce-page h2,
.wc-block-components-title {
	font-family: var(--font-serif);
	font-weight: var(--font-weight-regular);
	line-height: var(--leading-heading);
	color: var(--color-text);
}

.woocommerce a,
.wc-block-components-checkout-step__description a {
	color: var(--color-accent);
}

/* ==========================================================================
   BUTTONS · Cart-, Checkout- und Account-Buttons
   ========================================================================== */

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #place_order,
.woocommerce .checkout-button,
.wc-block-components-button,
.wc-block-cart__submit-button {
	font-family: var(--font-sans);
	font-size: var(--button-font-size);
	font-weight: var(--button-font-weight);
	letter-spacing: var(--button-tracking);
	padding: var(--button-padding-y) var(--button-padding-x);
	border-radius: var(--button-radius);
	border: var(--button-border-width) solid var(--color-accent);
	background-color: var(--color-accent);
	color: var(--color-white);
	transition: background-color 0.15s ease, color 0.15s ease;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #place_order:hover,
.wc-block-components-button:hover,
.wc-block-cart__submit-button:hover {
	background-color: var(--color-secondary-2);
	border-color: var(--color-secondary-2);
	color: var(--color-white);
}

.woocommerce a.button.alt,
.woocommerce button.button.alt,
.wc-block-components-button.wp-element-button {
	background-color: var(--color-accent);
	border-color: var(--color-accent);
}

/* ==========================================================================
   FORMULARFELDER · Checkout, My-Account, Coupon
   ========================================================================== */

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce table.shop_table td.actions .coupon input.input-text,
.wc-block-components-text-input input,
.wc-block-components-textarea textarea,
.wc-block-components-select select {
	font-family: var(--font-sans);
	font-size: var(--text-body);
	color: var(--color-text);
	background-color: var(--color-white);
	border: var(--card-border-width) solid var(--card-border-color);
	border-radius: var(--button-radius);
	padding: var(--space-2) var(--space-3);
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus,
.wc-block-components-text-input input:focus {
	border-color: var(--color-accent);
	outline: none;
}

.woocommerce form .form-row label,
.wc-block-components-text-input label {
	font-size: var(--text-caption);
	color: var(--color-secondary-2);
	letter-spacing: var(--tracking-wide);
}

/* ==========================================================================
   ZUSTANDSFARBEN · Formular-Validierung & System-Meldungen
   (Brand Style & Guidelines §1 Zustandsfarben / §7, entschieden 12.08.2026)
   Override-Check gegen Twenty-Twenty-Five-Theme-Defaults: Aufgabe #727, fällig 22.08.2026 — noch offen.
   ========================================================================== */

.woocommerce-error,
.woocommerce-message,
.woocommerce-info,
.wc-block-components-notice-banner {
	font-family: var(--font-sans);
	font-size: var(--text-body);
	border-radius: var(--card-radius);
	padding: var(--space-3) var(--space-4);
}

.woocommerce-error,
.wc-block-components-notice-banner.is-error {
	border-left: 3px solid var(--color-error);
	color: var(--color-error);
}

.woocommerce-message,
.wc-block-components-notice-banner.is-success {
	border-left: 3px solid var(--color-success);
	color: var(--color-success);
}

.woocommerce form .form-row.woocommerce-invalid input.input-text,
.woocommerce form .form-row.woocommerce-invalid select,
.wc-block-components-text-input.has-error input {
	border-color: var(--color-error);
}

.woocommerce form .form-row.woocommerce-validated input.input-text {
	border-color: var(--color-success);
}

/* ==========================================================================
   CART · Warenkorb-Tabelle
   ========================================================================== */

.woocommerce table.shop_table,
.wc-block-cart-items {
	border-collapse: collapse;
	font-family: var(--font-sans);
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td,
.wc-block-cart-items__header,
.wc-block-cart-item {
	border: none;
	border-bottom: var(--card-border-width) solid var(--card-border-color);
	padding: var(--space-3) var(--space-2);
}

.woocommerce table.shop_table thead th,
.wc-block-cart-items__header {
	font-size: var(--text-caption);
	letter-spacing: var(--tracking-wide);
	color: var(--color-secondary-2);
	font-weight: var(--font-weight-medium);
}

.woocommerce .cart-subtotal .amount,
.woocommerce .order-total .amount,
.wc-block-components-totals-footer-item .wc-block-components-formatted-money-amount {
	font-family: var(--font-serif);
	color: var(--color-text);
}

.woocommerce-cart .cart-collaterals .cart_totals,
.wc-block-cart__totals-title {
	background-color: var(--color-primary);
	border-radius: var(--card-radius);
	padding: var(--card-padding);
}

/* ==========================================================================
   CHECKOUT
   ========================================================================== */

.woocommerce-checkout #order_review,
.wc-block-checkout__sidebar,
.wc-block-components-order-summary {
	background-color: var(--color-primary);
	border-radius: var(--card-radius);
	padding: var(--card-padding);
}

.woocommerce-checkout .woocommerce-checkout-payment,
.wc-block-checkout__payment-method {
	background-color: var(--color-white);
	border: var(--card-border-width) solid var(--card-border-color);
	border-radius: var(--card-radius);
}

/* ==========================================================================
   MY ACCOUNT
   ========================================================================== */

.woocommerce-MyAccount-navigation ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.woocommerce-MyAccount-navigation ul li {
	border-bottom: var(--card-border-width) solid var(--card-border-color);
}

.woocommerce-MyAccount-navigation ul li a {
	display: block;
	padding: var(--space-3) var(--space-2);
	font-size: var(--text-body);
	color: var(--color-text);
	text-decoration: none;
}

.woocommerce-MyAccount-navigation ul li.is-active a {
	color: var(--color-accent);
	font-weight: var(--font-weight-medium);
}

.woocommerce-MyAccount-content table.shop_table {
	font-family: var(--font-sans);
}

/* ==========================================================================
   SHOP-ARCHIV · Produktgrid
   ========================================================================== */

ul.products li.product,
.wc-block-product {
	font-family: var(--font-sans);
}

ul.products li.product .woocommerce-loop-product__title,
.wc-block-components-product-name {
	font-family: var(--font-serif);
	font-size: var(--text-h4);
	color: var(--color-text);
	font-weight: var(--font-weight-regular);
}

ul.products li.product .price,
.wc-block-components-product-price {
	font-family: var(--font-sans);
	color: var(--color-secondary-2);
	font-size: var(--text-body);
}

ul.products li.product .price ins,
.wc-block-components-product-price__value {
	color: var(--color-text);
	text-decoration: none;
}

.woocommerce-pagination .page-numbers li a,
.woocommerce-pagination .page-numbers li span {
	font-family: var(--font-sans);
	color: var(--color-text);
	border: var(--card-border-width) solid var(--card-border-color);
	border-radius: var(--button-radius);
}

.woocommerce-pagination .page-numbers li .current {
	background-color: var(--color-accent);
	color: var(--color-white);
	border-color: var(--color-accent);
}

/* ==========================================================================
   PRODUKTBILDER · einheitlicher Zuschnitt ohne Verzerrung
   object-fit: cover schneidet zu statt zu strecken; object-position: center
   legt die Motiv-Zentrierung als Standard fest. Beide Regeln sind
   viewport-unabhängig → gleiches Verhalten auf Desktop/Tablet/Mobile.
   (Task #391 · QA/Testing)
   ========================================================================== */

/* Shop-Grid / Produktkacheln — klassische Templates + Blocks (1:1) */
ul.products li.product img,
.wp-block-woocommerce-product-image img,
.wc-block-components-product-image img,
.wc-block-product-template .wc-block-components-product-image img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	object-position: center;
}

/* Einzelprodukt-Galerie — Cover-Zuschnitt für einheitlichen Bildrahmen */
.woocommerce div.product .woocommerce-product-gallery__image img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	object-position: center;
}
