/**
 * DeShop — woocommerce.css
 *
 * Shared WooCommerce elements on every WooCommerce page: notices,
 * star ratings, form rows, quantity inputs, stock text and the
 * "View cart" link. Page-specific styles live in shop.css,
 * product.css, cart.css, checkout.css and account.css.
 *
 * @package DeShop
 */

.woo-area {
	padding-top: var(--ds-space-xl);
}

/* Notices --------------------------------------------------------------------- */

.woocommerce-notices-wrapper:empty {
	display: none;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.wc-block-components-notice-banner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--ds-space-sm) var(--ds-space-md);
	margin: 0 0 var(--ds-space-lg);
	padding: var(--ds-space-md) var(--ds-space-lg);
	border-radius: var(--ds-radius-md);
	background: var(--ds-primary-soft);
	color: var(--ds-primary);
	font-size: var(--ds-fs-sm);
	list-style: none;
}

.woocommerce-info {
	background: var(--ds-muted);
	color: var(--ds-text);
}

.woocommerce-error {
	flex-direction: column;
	align-items: flex-start;
	background: #f8e9e9;
	color: var(--ds-sale);
}

.woocommerce-message .button,
.woocommerce-info .button {
	order: 2;
	min-height: 36px;
	margin-inline-start: auto;
	padding: 0.5rem 1rem;
	font-size: var(--ds-fs-xs);
}

.woocommerce-message a:not(.button),
.woocommerce-info a:not(.button),
.woocommerce-error a {
	color: inherit;
	font-weight: 600;
}

/* Star rating (WooCommerce markup) -------------------------------------------- */

.star-rating {
	position: relative;
	display: inline-block;
	width: 5.4em;
	height: 1em;
	overflow: hidden;
	font-size: 0.875rem;
	line-height: 1;
	color: var(--ds-accent);
	vertical-align: middle;
}

.star-rating::before,
.star-rating span::before {
	position: absolute;
	top: 0;
	left: 0;
	content: "★★★★★";
	letter-spacing: 0.08em;
}

.star-rating::before {
	color: var(--ds-border);
}

.star-rating span {
	position: absolute;
	top: 0;
	left: 0;
	height: 100%;
	overflow: hidden;
	padding-top: 1.5em;
}

.star-rating span strong {
	display: none;
}

/* Forms ------------------------------------------------------------------------- */

.woocommerce form .form-row {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0 0 var(--ds-space-md);
}

.woocommerce form .form-row .required {
	color: var(--ds-sale);
	text-decoration: none;
}

.woocommerce form .form-row .optional {
	color: var(--ds-text-muted);
	font-weight: 400;
}

.woocommerce-invalid-required-field input,
.woocommerce-invalid-required-field select {
	border-color: var(--ds-sale);
}

.woocommerce .quantity .qty {
	width: 4.5rem;
	text-align: center;
}

.woocommerce .stock {
	font-size: var(--ds-fs-sm);
	color: var(--ds-success);
}

.woocommerce .stock.out-of-stock {
	color: var(--ds-sale);
}

.woocommerce .stock.available-on-backorder {
	color: var(--ds-warning);
}

/* Screen-reader text inside WooCommerce elements. */
.woocommerce .screen-reader-text {
	position: absolute !important;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* Legacy sale flash (used by some blocks and plugins). */
.onsale {
	display: inline-flex;
	padding: 0.25rem 0.625rem;
	border-radius: var(--ds-radius-full);
	background: var(--ds-sale);
	color: #fff;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

/* Cart & Checkout blocks: buttons and inputs follow the design system ------------ */

.woo-page .wc-block-components-button:not(.is-link) {
	min-height: 52px;
	border-radius: var(--ds-button-radius, var(--ds-radius-md));
	background: var(--ds-primary);
	color: var(--ds-on-primary);
	font-family: var(--ds-font-body);
	font-weight: 600;
	letter-spacing: 0.02em;
}

.woo-page .wc-block-components-button:not(.is-link):hover {
	background: var(--ds-primary-hover);
	color: var(--ds-on-primary);
}

.woo-page .wc-block-components-text-input input,
.woo-page .wc-block-components-combobox .wc-block-components-combobox-control input,
.woo-page .wc-blocks-components-select .wc-blocks-components-select__select,
.woo-page .wc-block-components-textarea {
	border-color: var(--ds-border);
	border-radius: var(--ds-radius-sm);
	background: var(--ds-surface);
	color: var(--ds-text);
}

.woo-page .wc-block-components-text-input.is-active input,
.woo-page .wc-block-components-text-input input:focus {
	border-color: var(--ds-primary);
	box-shadow: 0 0 0 1px var(--ds-primary);
}

.woo-page .wc-block-components-product-name {
	color: var(--ds-text);
	font-weight: 500;
	text-decoration: none;
}

.woo-page .wc-block-components-product-price__value.is-discounted,
.woo-page .wc-block-components-sale-badge {
	color: var(--ds-sale);
}

.woo-page .wc-block-components-sale-badge {
	border-color: var(--ds-sale);
	border-radius: var(--ds-radius-full);
}

.woo-page .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.woo-page .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
	font-size: var(--ds-fs-lg);
	font-weight: 600;
}

.woo-page .wc-block-components-quantity-selector {
	border-color: var(--ds-border);
	border-radius: var(--ds-radius-md);
}

.woo-page .wc-block-components-quantity-selector::after {
	border: 0;
}

.woo-page .wc-block-components-panel__button,
.woo-page .wc-block-components-totals-coupon-link {
	color: var(--ds-text);
	font-weight: 500;
}

.woo-page .wc-block-cart-item__image img {
	border-radius: var(--ds-radius-sm);
}

.woo-page .wc-block-cart__submit-container--sticky {
	padding-bottom: calc(var(--ds-space-md) + var(--ds-safe-bottom));
}

/* Order details (order received, view order, order tracking) ------------------------- */

.woocommerce-order-details,
.woocommerce-customer-details {
	margin-top: var(--ds-space-xl);
}

.woocommerce-order-details__title,
.woocommerce-column__title {
	margin-bottom: var(--ds-space-md);
	font-size: var(--ds-fs-xl);
}

.woocommerce-table--order-details {
	width: 100%;
	font-size: var(--ds-fs-sm);
}

.woocommerce-table--order-details th,
.woocommerce-table--order-details td {
	padding: var(--ds-space-sm) 0;
	border-bottom: 1px solid var(--ds-border);
	text-align: start;
	vertical-align: top;
}

.woocommerce-table--order-details td:last-child,
.woocommerce-table--order-details tfoot td {
	text-align: end;
}

.woocommerce-table--order-details tfoot tr:last-child th,
.woocommerce-table--order-details tfoot tr:last-child td {
	border-bottom: 0;
	font-size: var(--ds-fs-md);
	font-weight: 600;
}

.woocommerce-table--order-details .wc-item-meta {
	margin: 4px 0 0;
	padding: 0;
	list-style: none;
	color: var(--ds-text-muted);
	font-size: var(--ds-fs-xs);
}

.woocommerce-table--order-details .wc-item-meta p {
	display: inline;
	margin: 0;
}

.woocommerce-customer-details .woocommerce-columns--addresses {
	display: grid;
	gap: var(--ds-space-lg);
}

@media (min-width: 768px) {
	.woocommerce-customer-details .woocommerce-columns--addresses {
		grid-template-columns: 1fr 1fr;
	}
}

.woocommerce-customer-details address {
	padding: var(--ds-space-lg);
	border-radius: var(--ds-radius-md);
	box-shadow: inset 0 0 0 1px var(--ds-border);
	color: var(--ds-text-muted);
	font-style: normal;
	line-height: 1.7;
}

.woocommerce-customer-details address p {
	margin: var(--ds-space-xs) 0 0;
}

mark.order-number,
mark.order-date,
mark.order-status {
	background: none;
	color: var(--ds-text);
	font-weight: 600;
}
