/*
 * WooCommerce presentation layer.
 * Blocks, products, prices, forms, and commerce state remain owned by
 * WooCommerce; these rules only align their rendered UI with The Mohur.
 */

.woocommerce,
.wc-block-components-notice-banner,
.wc-block-components-sidebar-layout {
	color: var(--tm-color-text);
}

.woocommerce .products,
.woocommerce ul.products,
.wc-block-product-template,
.wc-block-grid__products {
	margin-block-start: var(--tm-space-xl);
	gap: clamp(1rem, 2.5vw, 2.25rem);
}

.woocommerce ul.products li.product,
.wc-block-grid__product,
.wc-block-product {
	text-align: start;
}

.woocommerce ul.products li.product a img,
.wc-block-grid__product-image img,
.wp-block-woocommerce-product-collection .wp-block-woocommerce-product-image img,
.wc-block-components-product-image img,
.wc-block-components-product-metadata img {
	border: 1px solid var(--tm-color-border);
	background: var(--tm-color-surface);
}

.woocommerce ul.products li.product a img,
.wc-block-grid__product-image img,
.wp-block-woocommerce-product-collection .wp-block-woocommerce-product-image img {
	aspect-ratio: 4 / 5;
	margin-bottom: var(--tm-space-s);
	object-fit: cover;
	transition: opacity var(--tm-duration-standard) var(--tm-ease-out);
}

.woocommerce ul.products li.product a:hover img,
.wc-block-grid__product:hover .wc-block-grid__product-image img,
.wp-block-woocommerce-product-collection .wp-block-woocommerce-product-image:hover img {
	opacity: 0.88;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.wc-block-grid__product-title,
.wp-block-woocommerce-product-collection .wp-block-post-title,
.wc-block-components-product-name {
	color: var(--tm-color-text);
	font-family: var(--tm-font-body);
	font-size: 0.95rem;
	font-weight: 600;
	line-height: 1.35;
}

.woocommerce ul.products li.product .price,
.wc-block-grid__product-price,
.wp-block-woocommerce-product-collection .wp-block-woocommerce-product-price,
.wc-block-components-product-price,
.wc-block-components-totals-item__value {
	color: var(--tm-color-text);
	font-size: 0.9rem;
}

.woocommerce span.onsale,
.wc-block-components-sale-badge {
	min-height: auto;
	padding: 0.35rem 0.5rem;
	border-radius: var(--tm-radius-none);
	background: var(--tm-color-primary);
	color: var(--tm-color-background);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1.2;
	text-transform: uppercase;
}

.wc-block-components-product-rating,
.star-rating {
	color: var(--tm-color-accent);
}

.wc-block-components-product-badge {
	border-radius: var(--tm-radius-none);
}

.wc-block-components-button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	min-height: 2.75rem;
	border: 1px solid var(--tm-color-primary);
	border-radius: var(--tm-radius-none);
	background: var(--tm-color-primary);
	color: var(--tm-color-background);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	transition:
		background-color var(--tm-duration-standard) var(--tm-ease-out),
		border-color var(--tm-duration-standard) var(--tm-ease-out),
		color var(--tm-duration-standard) var(--tm-ease-out),
		transform var(--tm-duration-standard) var(--tm-ease-out);
}

.wc-block-components-button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
	border-color: var(--tm-color-primary-dark);
	background: var(--tm-color-primary-dark);
	color: var(--tm-color-background);
	transform: translateY(-2px);
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.wc-block-components-text-input input,
.wc-block-components-combobox .components-combobox-control__input,
.wc-block-components-select .wc-block-components-select__container {
	min-height: 2.9rem;
	border: 1px solid var(--tm-color-border);
	border-radius: var(--tm-radius-none);
	background: var(--tm-color-white);
	color: var(--tm-color-text);
}

.woocommerce form .form-row textarea {
	min-height: 8rem;
}

.woocommerce form .form-row label,
.wc-block-components-text-input label,
.wc-block-components-select label {
	color: var(--tm-color-text);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.03em;
}

.woocommerce form .form-row input:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus,
.wc-block-components-text-input input:focus,
.wc-block-components-combobox .components-combobox-control__input:focus {
	border-color: var(--tm-color-primary);
	outline: 2px solid var(--tm-color-primary);
	outline-offset: 2px;
}

.woocommerce form .form-row input:disabled,
.woocommerce form .form-row textarea:disabled,
.woocommerce form .form-row select:disabled,
.wc-block-components-text-input input:disabled {
	background: var(--tm-color-surface);
	cursor: not-allowed;
	opacity: 0.6;
}

.woocommerce form .form-row.woocommerce-invalid input,
.woocommerce form .form-row.woocommerce-invalid select,
.woocommerce form .form-row.woocommerce-invalid textarea,
.wc-block-components-text-input.has-error input,
.wc-block-components-validation-error input {
	border: 2px dashed var(--tm-color-primary);
}

.woocommerce form .form-row.woocommerce-validated input,
.woocommerce form .form-row.woocommerce-validated select,
.woocommerce form .form-row.woocommerce-validated textarea {
	border: 3px double var(--tm-color-accent);
}

.wc-block-components-notice-banner {
	border: 1px solid var(--tm-color-border);
	border-radius: var(--tm-radius-none);
	background: var(--tm-color-surface);
}

.wc-block-components-notice-banner.is-success {
	border-color: var(--tm-color-accent);
}

.wc-block-components-notice-banner.is-error {
	border-color: var(--tm-color-primary);
}

.woocommerce-breadcrumb,
.wc-block-breadcrumbs {
	margin-block: var(--tm-space-m);
	color: var(--tm-color-muted);
	font-size: 0.78rem;
	letter-spacing: 0.02em;
}

.woocommerce-breadcrumb a,
.wc-block-breadcrumbs a {
	color: var(--tm-color-text);
	text-decoration-color: var(--tm-color-border);
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	border-top: 1px solid var(--tm-color-border);
	border-bottom: 1px solid var(--tm-color-border);
	background: var(--tm-color-surface);
	color: var(--tm-color-text);
}

.woocommerce-message::before,
.woocommerce-info::before {
	color: var(--tm-color-accent);
}

.woocommerce-error {
	border-top-color: var(--tm-color-primary);
}

.wc-block-components-quantity-selector {
	border: 1px solid var(--tm-color-border);
	border-radius: var(--tm-radius-none);
}

.wc-block-components-quantity-selector input {
	background: var(--tm-color-white);
	color: var(--tm-color-text);
}

.wc-block-components-quantity-selector button {
	color: var(--tm-color-primary);
}

.wc-block-components-order-summary,
.wc-block-components-checkout-step,
.wc-block-components-totals-wrapper {
	border-color: var(--tm-color-border);
}

.wc-block-components-checkout-step__heading,
.wc-block-components-order-summary__title {
	color: var(--tm-color-primary-dark);
	font-family: var(--tm-font-display);
	font-weight: 500;
}

.wc-block-components-pagination {
	gap: var(--tm-space-xs);
}

.wc-block-components-pagination__page {
	min-width: 2.75rem;
	min-height: 2.75rem;
	border: 0;
	border-bottom: 1px solid transparent;
	border-radius: 0;
	background: transparent;
	color: var(--tm-color-text);
}

.wc-block-components-pagination__page--active {
	border-bottom-color: var(--tm-color-primary);
	color: var(--tm-color-primary);
}

.single-product .product,
.woocommerce-page .entry-content {
	max-width: var(--tm-wide-width);
}

.single-product div.product .product_title {
	font-family: var(--tm-font-display);
	font-size: clamp(2.25rem, 5vw, 4.5rem);
	font-weight: 500;
	line-height: 1.05;
}

.single-product div.product p.price,
.single-product div.product span.price {
	color: var(--tm-color-primary);
	font-size: 1rem;
}

.woocommerce div.product .woocommerce-tabs ul.tabs,
.wc-block-components-tabs {
	border-block-end: 1px solid var(--tm-color-border);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	border: 0;
	border-block-end: 1px solid transparent;
	border-radius: 0;
	background: transparent;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
	border-block-end-color: var(--tm-color-primary);
	background: transparent;
	color: var(--tm-color-primary);
}

.wc-block-mini-cart__drawer .components-modal__content,
.wc-block-components-drawer__content {
	border-inline-start: 1px solid var(--tm-color-border);
	background: var(--tm-color-surface);
	box-shadow: var(--tm-shadow-quiet);
}

.woocommerce div.product div.images img {
	border: 1px solid var(--tm-color-border);
	background: var(--tm-color-surface);
}

@media (max-width: 781px) {
	.woocommerce .products,
	.woocommerce ul.products,
	.wc-block-product-template,
	.wc-block-grid__products {
		column-gap: var(--tm-space-xs);
		row-gap: var(--tm-space-l);
	}
}