/**
 * Rojaprint WooCommerce presentation.
 *
 * Product content and options remain managed by WooCommerce and Elementor.
 */

body.woocommerce main.site-main {
	inline-size: min(100% - (2 * var(--rp-container-gutter)), var(--rp-container-wide));
	max-inline-size: var(--rp-container-wide);
	margin-inline: auto;
}

/* Product archive: the configurable matrix defines the final price. */
body.woocommerce-shop ul.products li.product .price,
body.tax-product_cat ul.products li.product .price,
body.tax-product_tag ul.products li.product .price {
	display: none;
}

body.woocommerce-shop ul.products li.product .woocommerce-loop-product__title,
body.tax-product_cat ul.products li.product .woocommerce-loop-product__title,
body.tax-product_tag ul.products li.product .woocommerce-loop-product__title {
	color: var(--rp-color-primary);
}

body.woocommerce-shop ul.products li.product .button,
body.tax-product_cat ul.products li.product .button,
body.tax-product_tag ul.products li.product .button {
	color: var(--rp-color-surface);
	background-color: var(--rp-color-primary);
}

body.woocommerce-shop ul.products li.product .button:hover,
body.woocommerce-shop ul.products li.product .button:focus-visible,
body.tax-product_cat ul.products li.product .button:hover,
body.tax-product_cat ul.products li.product .button:focus-visible,
body.tax-product_tag ul.products li.product .button:hover,
body.tax-product_tag ul.products li.product .button:focus-visible {
	color: var(--rp-color-surface);
	background-color: var(--rp-color-primary-hover);
}

:where(body.single-product) div.product {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(28rem, 0.86fr);
	column-gap: clamp(2rem, 5vw, 5.5rem);
	row-gap: var(--rp-space-5);
	align-items: start;
	padding-block: var(--rp-space-5) clamp(2rem, 5vw, 5rem);
}

:where(body.single-product) .woocommerce-breadcrumb {
	grid-column: 1 / -1;
	margin: 0;
	color: var(--rp-color-muted);
	font-size: var(--rp-font-size-sm);
}

:where(body.single-product) .rp-breadcrumb__separator {
	display: inline-block;
	margin-inline: var(--rp-space-2);
	color: var(--rp-color-border);
}

:where(body.single-product) .rp-breadcrumb__item:last-child {
	color: var(--rp-color-primary);
	font-weight: var(--rp-font-weight-semibold);
}

:where(body.single-product) .rp-breadcrumb__item a {
	color: inherit;
	text-decoration: none;
}

body.single-product div.product div.images,
body.single-product div.product div.summary {
	float: none;
	inline-size: 100%;
	min-inline-size: 0;
	max-inline-size: none;
	margin: 0;
}

:where(body.single-product) .woocommerce-product-gallery__wrapper {
	margin: 0;
}

body.single-product .woocommerce-product-gallery .flex-viewport {
	block-size: auto !important;
	aspect-ratio: 1;
	background: var(--rp-color-surface-alt);
	border-radius: var(--rp-radius-lg);
}

:where(body.single-product) .woocommerce-product-gallery .flex-viewport .woocommerce-product-gallery__image {
	display: grid;
	place-items: center;
	block-size: 100%;
	aspect-ratio: 1;
	padding: 0;
	background: var(--rp-color-surface-alt);
	overflow: hidden;
}

:where(body.single-product) .woocommerce-product-gallery .flex-viewport .woocommerce-product-gallery__image img {
	inline-size: 100%;
	block-size: 100%;
	max-block-size: none;
	object-fit: cover;
}

:where(body.single-product) .woocommerce-product-gallery .flex-control-thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: var(--rp-space-3);
	margin-block-start: var(--rp-space-4);
}

:where(body.single-product) .woocommerce-product-gallery .flex-control-thumbs li {
	float: none;
	inline-size: 5.5rem;
	margin: 0;
	padding: var(--rp-space-2);
	background: var(--rp-color-surface-alt);
	border: 1px solid transparent;
	border-radius: var(--rp-radius-md);
}

body.single-product div.product div.images .flex-control-thumbs li {
	inline-size: 5.5rem;
	width: 5.5rem;
}

:where(body.single-product) .woocommerce-product-gallery .flex-control-thumbs img {
	inline-size: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: var(--rp-radius-sm);
}

:where(body.single-product) .flex-control-thumbs li:has(img.flex-active) {
	border-color: var(--rp-color-primary);
}

:where(body.single-product) .summary .product_title {
	margin-block: 0 var(--rp-space-5);
	font-size: clamp(2.5rem, 3.8vw, 4.5rem);
	line-height: var(--rp-line-height-tight);
}

/* The configurable price is chosen in the matrix below the attributes. */
:where(body.single-product) .summary > .price {
	display: none;
}

:where(body.single-product) .woocommerce-product-details__short-description {
	max-inline-size: 42rem;
	margin-block-end: var(--rp-space-6);
	color: var(--rp-color-muted);
	font-size: var(--rp-font-size-lg);
}

:where(body.single-product) table.variations,
:where(body.single-product) table.variations tbody,
:where(body.single-product) table.variations tr,
:where(body.single-product) table.variations th,
:where(body.single-product) table.variations td {
	display: block;
	inline-size: 100%;
	border: 0;
}

:where(body.single-product) table.variations tr {
	margin-block-end: var(--rp-space-5);
}

:where(body.single-product) table.variations th.label {
	padding: 0 0 var(--rp-space-3);
	font-size: var(--rp-font-size-base);
	font-weight: var(--rp-font-weight-bold);
	text-align: start;
}

:where(body.single-product) table.variations td.value {
	padding: 0;
}

:where(body.single-product) table.variations select {
	inline-size: 100%;
	min-block-size: 3.75rem;
	padding-inline: var(--rp-space-4) 3rem;
	color: var(--rp-color-secondary);
	background-color: var(--rp-color-surface);
	border: 1px solid var(--rp-color-border);
	border-radius: var(--rp-radius-md);
	font: inherit;
	font-weight: var(--rp-font-weight-semibold);
	transition: border-color var(--rp-transition-fast), box-shadow var(--rp-transition-fast);
}

:where(body.single-product) table.variations select:hover,
:where(body.single-product) table.variations select:focus {
	border-color: var(--rp-color-primary);
	box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--rp-color-primary) 12%, transparent);
}

body.single-product form.cart table.variations select.rp-variation-select--enhanced {
	position: absolute;
	inline-size: 1px;
	block-size: 1px;
	min-inline-size: 0;
	min-block-size: 0;
	max-inline-size: 1px;
	max-block-size: 1px;
	margin: -1px;
	padding: 0;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	overflow: hidden;
	white-space: nowrap;
}

:where(body.single-product) .rp-variation-options {
	display: flex;
	flex-wrap: wrap;
	gap: var(--rp-space-3);
}

:where(body.single-product) .rp-variation-option {
	min-block-size: 3.25rem;
	padding: var(--rp-space-3) var(--rp-space-5);
	color: var(--rp-color-secondary);
	background: var(--rp-color-surface);
	border: 1px solid var(--rp-color-border);
	border-radius: var(--rp-radius-md);
	font: inherit;
	font-weight: var(--rp-font-weight-semibold);
	cursor: pointer;
	transition: color var(--rp-transition-fast), background-color var(--rp-transition-fast), border-color var(--rp-transition-fast), box-shadow var(--rp-transition-fast), opacity var(--rp-transition-fast);
}

body.single-product div.product form.variations_form .rp-variation-option:hover:not(:disabled),
body.single-product div.product form.variations_form .rp-variation-option:focus-visible {
	color: var(--rp-color-surface);
	background-color: var(--rp-color-primary);
	border-color: var(--rp-color-primary);
	box-shadow: none;
}

body.single-product div.product form.variations_form .rp-variation-option.is-selected,
body.single-product div.product form.variations_form .rp-variation-option.is-selected:hover {
	color: var(--rp-color-surface);
	background-color: var(--rp-color-primary);
	border-color: var(--rp-color-primary);
}

/* Make every visible price cell a single, complete click target. */
body.single-product .rp-price-matrix tbody td {
	padding: 0;
}

body.single-product .rp-price-matrix__price {
	display: flex;
	align-items: center;
	justify-content: center;
	inline-size: 100%;
	min-block-size: 4.75rem;
	block-size: 100%;
	padding: 0.85rem 0.65rem;
	border-radius: 0;
	box-sizing: border-box;
}

:where(body.single-product) .rp-variation-option:disabled {
	color: var(--rp-color-muted);
	background: var(--rp-color-surface-alt);
	border-color: var(--rp-color-border);
	cursor: not-allowed;
	opacity: 0.45;
}

body.single-product div.product form.variations_form .reset_variations {
	display: none;
}

body.single-product div.product form.variations_form.rp-matrix-awaiting-price:not(.rp-matrix-has-price) .woocommerce-variation-price {
	display: none;
}

:where(body.single-product) .single_variation_wrap {
	margin-block-start: var(--rp-space-6);
	padding-block-start: var(--rp-space-5);
	border-block-start: 1px solid var(--rp-color-border);
}

:where(body.single-product) .woocommerce-variation-price .price {
	display: block;
	margin-block-end: var(--rp-space-4);
	color: var(--rp-color-primary);
	font-size: var(--rp-font-size-h3);
	font-weight: var(--rp-font-weight-bold);
}

body.single-product div.product .single_variation .woocommerce-variation-price .price,
body.single-product div.product .single_variation .woocommerce-variation-price .price .amount {
	color: var(--rp-color-primary);
}

:where(body.single-product) form.cart .quantity .qty {
	min-block-size: 3.5rem;
	border: 1px solid var(--rp-color-border);
	border-radius: var(--rp-radius-md);
}

:where(body.single-product) form.cart .single_add_to_cart_button {
	min-block-size: 3.5rem;
	padding-inline: var(--rp-space-6);
	background: var(--rp-color-primary);
	border-radius: var(--rp-radius-md);
	font-weight: var(--rp-font-weight-bold);
}

body.single-product div.product form.cart .single_add_to_cart_button,
body.single-product div.product form.cart .single_add_to_cart_button.alt {
	color: var(--rp-color-surface);
	background-color: var(--rp-color-primary);
}

body.single-product div.product form.cart .single_add_to_cart_button:hover,
body.single-product div.product form.cart .single_add_to_cart_button.alt:hover,
body.single-product div.product form.cart .single_add_to_cart_button:focus-visible,
body.single-product div.product form.cart .single_add_to_cart_button.alt:focus-visible {
	color: var(--rp-color-surface);
	background-color: var(--rp-color-primary-hover);
}

body.single-product div.product form.cart .single_add_to_cart_button:disabled,
body.single-product div.product form.cart .single_add_to_cart_button.disabled {
	color: var(--rp-color-surface);
	background-color: var(--rp-color-primary);
	opacity: 0.5;
}

:where(body.single-product) form.cart .single_add_to_cart_button:hover {
	background: var(--rp-color-primary-hover);
}

:where(body.single-product) .product_meta {
	margin-block-start: var(--rp-space-6);
	padding-block-start: var(--rp-space-4);
	border-block-start: 1px solid var(--rp-color-border);
	color: var(--rp-color-muted);
	font-size: var(--rp-font-size-sm);
}

.rp-catalog-contact {
	display: grid;
	gap: var(--rp-space-4);
	margin-block-start: var(--rp-space-5);
	padding-block-start: var(--rp-space-5);
	border-block-start: 1px solid var(--rp-color-border);
}

.rp-catalog-contact__notice,
.rp-catalog-contact__terms {
	margin: 0;
	color: var(--rp-color-muted);
}

.rp-catalog-contact__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--rp-space-3);
}

body.single-product div.product .rp-catalog-contact__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-block-size: 3.5rem;
	padding-inline: var(--rp-space-5);
	border-radius: var(--rp-radius-md);
	font-weight: var(--rp-font-weight-bold);
	text-decoration: none;
}

body.single-product div.product .rp-catalog-contact__button--whatsapp {
	color: var(--rp-color-surface);
	background: var(--rp-color-primary);
}

body.single-product div.product .rp-catalog-contact__button--email {
	color: var(--rp-color-primary);
	background: var(--rp-color-surface);
	border: 1px solid var(--rp-color-primary);
}

:where(body.single-product) .woocommerce-tabs,
:where(body.single-product) .related.products,
:where(body.single-product) .upsells.products {
	grid-column: 1 / -1;
}

@media (max-width: 1024px) {
	:where(body.single-product) div.product {
		grid-template-columns: 1fr 1fr;
		gap: var(--rp-space-6);
	}
}

@media (max-width: 767px) {
	:where(body.single-product) div.product {
		grid-template-columns: minmax(0, 1fr);
	}

	:where(body.single-product) .rp-price-matrix {
		max-inline-size: 100%;
		overflow-x: auto;
	}

	:where(body.single-product) .woocommerce-breadcrumb,
	:where(body.single-product) .woocommerce-tabs,
	:where(body.single-product) .related.products,
	:where(body.single-product) .upsells.products {
		grid-column: auto;
	}

	:where(body.single-product) .woocommerce-product-gallery .flex-control-thumbs li {
		inline-size: 4.5rem;
	}

	body.single-product div.product div.images .flex-control-thumbs li {
		inline-size: 4.5rem;
		width: 4.5rem;
	}

	:where(body.single-product) .summary .product_title {
		font-size: clamp(2.25rem, 12vw, 3.5rem);
	}

	:where(body.single-product) .rp-variation-options {
		gap: var(--rp-space-2);
	}

	:where(body.single-product) .rp-variation-option {
		flex: 1 1 calc(50% - var(--rp-space-2));
		padding-inline: var(--rp-space-3);
	}
}
.rp-configurator .rp-configurator__warning {
	margin: 1rem 0 0;
	padding: .875rem 1rem;
	border-left: 4px solid var(--rp-color-error, #b42318);
	border-radius: var(--rp-radius-sm, .375rem);
	background: color-mix(in srgb, var(--rp-color-error, #b42318) 7%, #fff);
	color: var(--rp-color-error, #b42318);
	font-weight: var(--rp-font-weight-semibold, 600);
}

.rp-configurator .rp-configurator__warning[hidden] {
	display: none;
}
