/**
 * Product Page Layouts (includes/customizer/product_page.php).
 *
 * 5 selectable single-product layouts, all built from WooCommerce's own
 * blocks/classic templates - only assembled and skinned differently here.
 * Every color is a --wp--preset--color--* token, so all 5 follow
 * color-mode.css's light/dark swap automatically. Only enqueued on product
 * pages (see product_page.php enqueue_assets()).
 */

.opl {
	margin-top: var(--wp--preset--spacing--m);
}

/* Shared: classic related-products grid (all 5 layouts) */
.opl__related {
	margin-top: var(--wp--preset--spacing--2-xl);
	padding-top: var(--wp--preset--spacing--l);
	border-top: 1px solid var(--wp--preset--color--border);
}

.opl__related .related.products > h2 {
	font-size: var(--wp--preset--font-size--x-large);
	margin: 0 0 var(--wp--preset--spacing--l);
}

.opl__related ul.products {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--wp--preset--spacing--m);
	list-style: none;
	margin: 0;
	padding: 0;
}

.opl__related ul.products li.product {
	margin: 0;
}

.opl__related ul.products li.product a.woocommerce-loop-product__link {
	display: block;
	text-decoration: none;
	color: inherit;
	transition: transform 0.2s ease;
}

.opl__related ul.products li.product a.woocommerce-loop-product__link:hover {
	transform: translateY(-3px);
}

.opl__related ul.products li.product img {
	width: 100%;
	aspect-ratio: 1/1;
	object-fit: cover;
	border-radius: 12px;
	margin-bottom: 0.75rem;
}

.opl__related ul.products li.product .woocommerce-loop-product__title {
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 600;
	color: var(--wp--preset--color--heading);
	margin: 0 0 0.35rem;
}

.opl__related ul.products li.product .price {
	display: block;
	font-weight: 600;
	color: var(--wp--preset--color--primary);
	margin-bottom: 0.6rem;
}

.opl__related ul.products li.product .price del {
	opacity: 0.5;
	font-weight: 400;
	margin-right: 0.4em;
}

.opl__related ul.products li.product .button {
	display: inline-block;
	padding: 0.55rem 1.1rem;
	border-radius: 6px;
	background: var(--wp--preset--color--button-background);
	color: var(--wp--preset--color--button-text);
	text-decoration: none;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	transition: background-color 0.15s ease;
}

.opl__related ul.products li.product .button:hover {
	background: var(--wp--preset--color--primary);
}

.opl__related ul.products li.product .star-rating {
	margin-bottom: 0.4rem;
}

@media (max-width: 960px) {
	.opl__related ul.products {
		grid-template-columns: repeat(2, 1fr);
	}
}

/*
 * Related products, carousel variant (default - see product_page.php's
 * related_carousel(); an admin can switch back to the classic grid above
 * via Settings > WooCommerce). Deliberately its own selectors rather than
 * reusing ".opl__related ul.products" above: that rule sets
 * display:grid on the <ul>, which would fight the slider engine's own
 * flex-based track layout, so the carousel's <ul> intentionally carries
 * no "products" class to avoid inheriting it.
 */
.omega-related-products {
	margin-top: var(--wp--preset--spacing--2-xl);
	padding-top: var(--wp--preset--spacing--l);
	border-top: 1px solid var(--wp--preset--color--border);
}

.omega-related-products__heading {
	font-size: var(--wp--preset--font-size--x-large);
	margin: 0 0 var(--wp--preset--spacing--l);
}

.omega-related-products-slider {
	list-style: none;
	margin: 0;
	padding: 0;
}

.omega-related-products-slider li.product {
	margin: 0;
}

.omega-related-products-slider li.product a.woocommerce-loop-product__link {
	display: block;
	text-decoration: none;
	color: inherit;
	transition: transform 0.2s ease;
}

.omega-related-products-slider li.product a.woocommerce-loop-product__link:hover {
	transform: translateY(-3px);
}

.omega-related-products-slider li.product img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 12px;
	margin-bottom: 0.75rem;
}

.omega-related-products-slider li.product .woocommerce-loop-product__title {
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 600;
	color: var(--wp--preset--color--heading);
	margin: 0 0 0.35rem;
}

.omega-related-products-slider li.product .price {
	display: block;
	font-weight: 600;
	color: var(--wp--preset--color--primary);
	margin-bottom: 0.6rem;
}

.omega-related-products-slider li.product .price del {
	opacity: 0.5;
	font-weight: 400;
	margin-right: 0.4em;
}

.omega-related-products-slider li.product .button {
	display: inline-block;
	padding: 0.55rem 1.1rem;
	border-radius: 6px;
	background: var(--wp--preset--color--button-background);
	color: var(--wp--preset--color--button-text);
	text-decoration: none;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
}

.omega-related-products-slider li.product .button:hover {
	background: var(--wp--preset--color--primary);
}

.omega-related-products-slider li.product .star-rating {
	margin-bottom: 0.4rem;
}

/* Shared: quantity stepper base (all layouts using it) */
.wc-block-components-quantity-selector {
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	overflow: hidden;
}

.wc-block-components-quantity-selector__button {
	color: var(--wp--preset--color--body-text);
}

.wc-block-components-quantity-selector__button:hover {
	color: var(--wp--preset--color--primary);
}

.wc-block-components-quantity-selector__input {
	-moz-appearance: textfield;
}

.wc-block-components-quantity-selector__input::-webkit-inner-spin-button,
.wc-block-components-quantity-selector__input::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* Shared: sale badge - WooCommerce's raw <span class="onsale"> default is a
   plain circle with no theming; every layout gets at least this instead of
   inheriting the browser/plugin default look. */
.opl span.onsale {
	position: absolute;
	top: 1rem;
	left: 1rem;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	height: auto;
	min-height: 0;
	min-width: 0;
	margin: 0;
	padding: 0.4em 0.85em;
	border-radius: 999px;
	background: var(--wp--preset--color--accent);
	color: #fff;
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	line-height: 1;
	box-shadow: 0 6px 16px -6px rgba(0, 0, 0, 0.45);
}

/* Shared: sale-price strikethrough - a bare default WC price block shows
   the old price at full weight right next to the new one; every layout
   gets this dimmed/struck treatment unless it overrides __regular itself. */
.wc-block-components-product-price__regular {
	opacity: 0.5;
	font-weight: 400;
	text-decoration: line-through;
}

.wc-block-components-product-price ins {
	text-decoration: none;
}

/* Shared: star rating - WooCommerce's icon-font stars use `color: inherit`,
   so tinting the wrapper is enough; left at the theme's default text color
   otherwise, which reads as a dim, unbranded grey. */
.wc-block-components-product-rating-stars {
	color: var(--wp--preset--color--primary);
}

/* Shared: tactile press feedback, independent of the JS success animation
   above (this fires instantly on mousedown, before any request resolves).
   !important because every layout's own hover rule already sets its own
   translateY/scale on the same element at equal-or-higher specificity - on
   desktop, hover stays true for the whole time the mouse button is held,
   so without it the hover transform would silently win over the press. */
.opl .single_add_to_cart_button:active,
.opl .wc-block-components-quantity-selector__button:active {
	transform: scale(0.94) !important;
}

/* Shared: keyboard focus - every custom button/control below removes the
   browser default at some point (rounded corners, transparent borders);
   this guarantees a visible ring survives that everywhere. */
.opl a:focus-visible,
.opl button:focus-visible,
.opl input:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 2px;
}

/* Shared: variation attribute selects (variable products) - a bare native
   <select> was the only unstyled control left on the page. */
.opl table.variations {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 1.25rem;
}

.opl table.variations tr {
	display: flex;
	flex-direction: column;
	margin-bottom: 0.85rem;
}

.opl table.variations th.label {
	text-align: left;
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--wp--preset--color--body-text);
	opacity: 0.6;
	padding-bottom: 0.4rem;
}

.opl table.variations td.value {
	padding: 0;
}

.opl table.variations select {
	width: 100%;
	padding: 0.7rem 2.25rem 0.7rem 0.9rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	background-color: #fff;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23818181'%3E%3Cpath d='M5.5 7.5l4.5 5 4.5-5z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.85rem center;
	background-size: 13px;
	appearance: none;
	font-size: 0.9375rem;
	color: var(--wp--preset--color--heading);
	cursor: pointer;
	transition: border-color 0.15s ease;
}

.opl table.variations select:hover {
	border-color: color-mix(in srgb, var(--wp--preset--color--primary) 45%, var(--wp--preset--color--border));
}

.opl table.variations select:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 2px;
	border-color: var(--wp--preset--color--primary);
}

.opl .reset_variations {
	display: inline-block;
	margin: 0 0 1rem;
	font-size: 0.8125rem;
	color: var(--wp--preset--color--primary);
}

.opl .woocommerce-variation-price {
	margin: 0 0 0.85rem;
	font-weight: 600;
}

.opl .woocommerce-variation-availability {
	font-size: 0.8125rem;
	opacity: 0.7;
	margin-bottom: 0.5rem;
}

.opl .woocommerce-variation-description p {
	font-size: 0.9375rem;
	opacity: 0.8;
	line-height: 1.6;
}

/* Shared: disabled/unavailable state - out of stock, no variation picked
   yet, or mid-request - so the button doesn't keep reading as clickable. */
.opl .single_add_to_cart_button:disabled,
.opl .single_add_to_cart_button.disabled,
.opl .single_add_to_cart_button[aria-disabled="true"] {
	opacity: 0.5;
	cursor: not-allowed;
	box-shadow: none;
	transform: none;
}

.opl .wc-block-components-quantity-selector__button:disabled {
	opacity: 0.3;
	cursor: not-allowed;
}

/* Shared: micro-interactions (product-page-interactions.js) */
@keyframes omega-qty-pop {
	0% {
		transform: scale(1);
	}
	45% {
		transform: scale(1.2);
	}
	100% {
		transform: scale(1);
	}
}

.wc-block-components-quantity-selector__input.omega-qty-pop {
	animation: omega-qty-pop 0.28s cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes omega-atc-press {
	0% {
		transform: scale(1);
	}
	35% {
		transform: scale(0.96);
	}
	65% {
		transform: scale(1.035);
	}
	100% {
		transform: scale(1);
	}
}

@keyframes omega-atc-ring {
	0% {
		box-shadow: 0 0 0 0 color-mix(in srgb, var(--wp--preset--color--primary) 45%, transparent);
	}
	100% {
		box-shadow: 0 0 0 18px color-mix(in srgb, var(--wp--preset--color--primary) 0%, transparent);
	}
}

.opl .single_add_to_cart_button.omega-atc-success {
	animation: omega-atc-press 0.45s cubic-bezier(0.34, 1.56, 0.64, 1), omega-atc-ring 0.7s ease-out;
}

@media (prefers-reduced-motion: reduce) {
	.wc-block-components-quantity-selector__input.omega-qty-pop,
	.opl .single_add_to_cart_button.omega-atc-success {
		animation: none;
	}
}

/* Shared: collapse a meta row entirely when every block inside it rendered
   nothing (e.g. an in-stock product with no reviews yet) - otherwise it's
   an empty bar with just its own border/padding. */
.opl-gf__meta:not(:has(*)),
.opl-cd__section:not(:has(*)) {
	display: none;
}

/* =====================================================================
   LAYOUT: Gallery Feature (default)
   ===================================================================== */
.opl--gallery-feature .opl-gf__grid {
	max-width: 1320px;
	margin: 0 auto;
	padding: 0 var(--wp--preset--spacing--m);
	display: grid;
	grid-template-columns: 1.5fr 1fr;
	column-gap: 6rem;
	row-gap: var(--wp--preset--spacing--xl);
	align-items: start;
}

/* No extra wrapper around the gallery: a padded "stage" div here used to
   throw off WooCommerce's own zoom-on-hover (zoom.min.js measures its lens
   position against the gallery's own box, so wrapping it changed that math
   enough to make a second, misplaced copy of the image flash in on hover).
   Radius/shadow are applied straight to the real gallery elements instead. */
.opl-gf__gallery-col .woocommerce-product-gallery__image {
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 20px 50px -25px rgba(4, 18, 0, 0.35);
}

.opl-gf__gallery-col ul.flex-control-thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
	margin: 1rem 0 0;
	padding: 0;
	list-style: none;
}

.opl-gf__gallery-col ul.flex-control-thumbs img {
	display: block;
	border-radius: 8px;
	outline: 2px solid transparent;
	outline-offset: 2px;
	opacity: 0.6;
	cursor: pointer;
	transition: opacity 0.2s ease, outline-color 0.2s ease;
}

.opl-gf__gallery-col ul.flex-control-thumbs img:hover {
	opacity: 0.9;
}

.opl-gf__gallery-col ul.flex-control-thumbs img.flex-active {
	opacity: 1;
	outline-color: var(--wp--preset--color--primary);
}

.opl-gf__info-col {
	padding-top: 0.5rem;
}

.opl-gf__info-col > * + * {
	margin-top: 1.5rem;
}

.opl--gallery-feature .opl-gf__title.wp-block-post-title {
	font-family: var(--wp--preset--font-family--poppins);
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -0.01em;
	margin: 0;
}

.opl--gallery-feature .opl-gf__pitch {
	max-width: 42ch;
	color: var(--wp--preset--color--body-text);
	opacity: 0.8;
	line-height: 1.7;
	margin: 0;
}

.opl--gallery-feature .opl-gf__price.wc-block-components-product-price {
	font-family: var(--wp--preset--font-family--poppins);
	font-size: 1.375rem;
	font-weight: 700;
	margin: 0;
}

.opl--gallery-feature .opl-gf__price .wc-block-components-product-price__regular {
	opacity: 0.5;
	font-weight: 400;
	text-decoration: line-through;
	margin-right: 0.5em;
}

.opl--gallery-feature .opl-gf__cta.wp-block-woocommerce-add-to-cart-form {
	margin: 2rem 0 0;
}

.opl--gallery-feature .opl-gf__cta .single_add_to_cart_button.wp-element-button {
	width: 100%;
	padding: 1.05rem;
	border-radius: 10px;
	font-weight: 700;
	box-shadow: 0 12px 24px -12px color-mix(in srgb, var(--wp--preset--color--primary) 60%, transparent);
	transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.2s ease;
}

.opl--gallery-feature .opl-gf__cta .single_add_to_cart_button.wp-element-button:hover {
	transform: translateY(-2px);
}

.opl--gallery-feature .opl-gf__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1.25rem;
	padding-top: 1.5rem;
	margin-top: 0.5rem;
	border-top: 1px solid var(--wp--preset--color--border);
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--body-text);
	opacity: 0.75;
}

.opl--gallery-feature .opl-gf__tabs.wp-block-woocommerce-product-details {
	max-width: 1320px;
	margin: var(--wp--preset--spacing--2-xl) auto 0;
	padding: 0 var(--wp--preset--spacing--m);
}

.opl-gf__tabs ul.tabs.wc-tabs {
	gap: 0.5rem;
	margin-bottom: 1.75rem;
}

.opl-gf__tabs ul.tabs.wc-tabs li {
	border-radius: 999px !important;
	padding: 0.6em 1.3em !important;
	font-family: var(--wp--preset--font-family--poppins);
	font-weight: 500;
}

.opl-gf__tabs ul.tabs.wc-tabs li.active,
.opl-gf__tabs ul.tabs.wc-tabs li:hover {
	background: var(--wp--preset--color--page-background) !important;
}

.opl-gf__tabs ul.tabs.wc-tabs li.active a {
	color: var(--wp--preset--color--primary) !important;
	font-weight: 600;
}

.opl-gf__tabs .woocommerce-Tabs-panel {
	max-width: 60em;
	line-height: 1.75;
	color: var(--wp--preset--color--body-text);
}

.opl-gf__tabs table.shop_attributes {
	width: 100%;
	border-collapse: collapse;
}

.opl-gf__tabs table.shop_attributes th,
.opl-gf__tabs table.shop_attributes td {
	padding: 0.8rem 1rem;
	border: 1px solid var(--wp--preset--color--border);
}

.opl-gf__tabs table.shop_attributes th {
	width: 30%;
	text-align: left;
	font-weight: 600;
	background: var(--wp--preset--color--page-background);
}

.opl--gallery-feature .opl__related {
	max-width: 1320px;
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--wp--preset--spacing--m);
	padding-right: var(--wp--preset--spacing--m);
}

@media (max-width: 960px) {
	.opl--gallery-feature .opl-gf__grid {
		grid-template-columns: 1fr;
	}
}

/* =====================================================================
   LAYOUT: Command Deck
   ===================================================================== */
.opl--command-deck {
	max-width: 1320px;
	margin: var(--wp--preset--spacing--m) auto 0;
	padding: 0 var(--wp--preset--spacing--m);
}

.opl-cd__crumb .wc-block-breadcrumbs {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--body-text);
	opacity: 0.65;
	margin-bottom: 1.5rem;
}

.opl-cd__grid {
	display: grid;
	grid-template-columns: 1fr 420px;
	gap: var(--wp--preset--spacing--l);
	align-items: start;
}

.opl-cd__gallery .woocommerce-product-gallery__image {
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 24px 48px -28px rgba(4, 18, 0, 0.3);
}

.opl-cd__buy {
	background: #fff;
	border-radius: 16px;
	box-shadow: 0 1px 1px rgba(4, 18, 0, 0.03), 0 20px 40px -24px rgba(4, 18, 0, 0.3), 0 0 0 1px rgba(4, 18, 0, 0.05);
	overflow: hidden;
}

.opl-cd__section {
	padding: 1.5rem;
}

.opl-cd__section + .opl-cd__section {
	border-top: 1px solid rgba(4, 18, 0, 0.07);
}

.opl-cd__title.wp-block-post-title {
	margin: 0 0 0.6rem;
	letter-spacing: -0.01em;
}

.opl-cd__price.wc-block-components-product-price {
	font-size: 1.75rem;
	font-weight: 700;
	margin: 0 0 0.75rem;
}

.wc-block-components-product-stock-indicator {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--primary);
}

.wc-block-components-product-stock-indicator::before {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: currentColor;
}

.wc-block-components-product-stock-indicator--low-stock {
	color: var(--wp--preset--color--accent);
}

.opl-cd__cta.wp-block-woocommerce-add-to-cart-form .single_add_to_cart_button.wp-element-button {
	width: 100%;
	padding: 1rem;
	border-radius: 10px;
	font-weight: 700;
}

.opl-cd__specs-title {
	font-size: 1.0625rem;
	font-weight: 700;
	color: var(--wp--preset--color--heading);
	margin: var(--wp--preset--spacing--2-xl) 0 1.25rem;
}

.opl-cd__specs {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 3rem;
}

.opl-cd__specs .row {
	display: flex;
	justify-content: space-between;
	gap: 1.5rem;
	padding: 0.85rem 0;
	border-bottom: 1px solid var(--wp--preset--color--border);
	font-size: 0.9375rem;
}

.opl-cd__specs .row span:first-child {
	color: var(--wp--preset--color--body-text);
	opacity: 0.65;
}

.opl-cd__specs .row span:last-child {
	font-weight: 500;
	text-align: right;
}

.opl-cd__tabs.wp-block-woocommerce-product-details {
	margin-top: var(--wp--preset--spacing--2-xl);
}

.opl-cd__tabs ul.tabs.wc-tabs {
	gap: 1.75rem;
	border-bottom: 1px solid var(--wp--preset--color--border);
	margin-bottom: 1.75rem;
}

.opl-cd__tabs ul.tabs.wc-tabs li {
	padding: 0 0 0.85em !important;
	font-weight: 600;
	opacity: 0.6;
}

.opl-cd__tabs ul.tabs.wc-tabs li a {
	padding: 0 !important;
}

.opl-cd__tabs ul.tabs.wc-tabs li.active,
.opl-cd__tabs ul.tabs.wc-tabs li:hover {
	opacity: 1;
}

.opl-cd__tabs ul.tabs.wc-tabs li.active a {
	color: var(--wp--preset--color--heading) !important;
	box-shadow: inset 0 -2px var(--wp--preset--color--primary);
}

.opl-cd__tabs .woocommerce-Tabs-panel {
	max-width: 60em;
	line-height: 1.75;
	color: var(--wp--preset--color--body-text);
}

.opl-cd__tabs table.shop_attributes {
	width: 100%;
	border-collapse: collapse;
}

.opl-cd__tabs table.shop_attributes th,
.opl-cd__tabs table.shop_attributes td {
	padding: 0.75rem 0;
	border: 0;
	border-bottom: 1px solid var(--wp--preset--color--border);
	text-align: left;
}

.opl-cd__tabs table.shop_attributes th {
	width: 30%;
	font-weight: 600;
	color: var(--wp--preset--color--heading);
}

@media (max-width: 960px) {
	.opl-cd__grid {
		grid-template-columns: 1fr;
	}

	.opl-cd__specs {
		grid-template-columns: 1fr;
	}
}

/* =====================================================================
   LAYOUT: Split Stage
   ===================================================================== */
.opl-ss__split {
	display: grid;
	grid-template-columns: 1.05fr 1fr;
	min-height: 640px;
}

.opl-ss__dark {
	background: radial-gradient(120% 140% at 20% 10%, #0E260A, var(--wp--preset--color--secondary) 60%);
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--wp--preset--spacing--2-xl);
}

.opl-ss__dark .woocommerce-product-gallery {
	width: 100%;
}

.opl-ss__dark .woocommerce-product-gallery__image {
	background: transparent;
	border-radius: 6px;
	overflow: hidden;
	box-shadow: 0 45px 70px -30px rgba(0, 0, 0, 0.6);
}

.opl-ss__dark ul.flex-control-thumbs img {
	border-radius: 6px;
	opacity: 0.55;
}

.opl-ss__dark ul.flex-control-thumbs img.flex-active {
	opacity: 1;
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}

.opl-ss__price-tag {
	position: absolute;
	right: var(--wp--preset--spacing--xl);
	top: var(--wp--preset--spacing--xl);
	padding: 1rem 0 1rem 1.5rem;
	border-left: 1px dashed rgba(255, 255, 255, 0.3);
	text-align: right;
}

.opl-ss__price-tag .wc-block-components-product-price {
	font-family: var(--wp--preset--font-family--jost);
	color: var(--wp--preset--color--accent);
	font-weight: 600;
}

.opl-ss__light {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: var(--wp--preset--spacing--2-xl) 5rem;
}

.opl-ss__title.wp-block-post-title {
	font-family: var(--wp--preset--font-family--jost);
	font-weight: 600;
	line-height: 1.04;
	text-transform: uppercase;
	letter-spacing: 0.005em;
	color: var(--wp--preset--color--secondary);
	margin: 0 0 1.5rem;
}

.opl-ss__desc {
	font-family: var(--wp--preset--font-family--dm-sans);
	font-size: 1.0625rem;
	line-height: 1.75;
	color: var(--wp--preset--color--body-text);
	opacity: 0.85;
	max-width: 42ch;
	margin: 0 0 var(--wp--preset--spacing--l);
}

.opl-ss__facts {
	display: grid;
	grid-template-columns: 1fr 1fr;
	border-top: 1px solid rgba(4, 18, 0, 0.1);
	margin-bottom: var(--wp--preset--spacing--l);
}

.opl-ss__facts div {
	padding: 1.1rem 0.5rem 1.1rem 0;
	border-bottom: 1px solid rgba(4, 18, 0, 0.1);
}

.opl-ss__facts div:nth-child(odd) {
	padding-right: 1.5rem;
	border-right: 1px solid rgba(4, 18, 0, 0.1);
}

.opl-ss__facts div b {
	display: block;
	font-family: var(--wp--preset--font-family--dm-sans);
	font-weight: 700;
	color: var(--wp--preset--color--secondary);
	font-size: 0.9375rem;
	margin-bottom: 0.2rem;
}

.opl-ss__facts div span {
	font-size: 0.8125rem;
	color: var(--wp--preset--color--body-text);
	opacity: 0.65;
}

.opl-ss__cta.wp-block-woocommerce-add-to-cart-form .single_add_to_cart_button.wp-element-button {
	border-radius: 2px;
	padding: 1.05rem 2.5rem;
	font-family: var(--wp--preset--font-family--jost);
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.opl-ss__tabs.wp-block-woocommerce-product-details {
	max-width: 1320px;
	margin: var(--wp--preset--spacing--2-xl) auto 0;
	padding: 0 var(--wp--preset--spacing--m);
}

.opl-ss__tabs ul.tabs.wc-tabs {
	gap: var(--wp--preset--spacing--l);
	border-bottom: 1px solid var(--wp--preset--color--border);
	margin-bottom: 1.75rem;
}

.opl-ss__tabs ul.tabs.wc-tabs li {
	padding: 0 0 0.9em !important;
	font-family: var(--wp--preset--font-family--jost);
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	opacity: 0.55;
}

.opl-ss__tabs ul.tabs.wc-tabs li a {
	padding: 0 !important;
}

.opl-ss__tabs ul.tabs.wc-tabs li.active,
.opl-ss__tabs ul.tabs.wc-tabs li:hover {
	opacity: 1;
}

.opl-ss__tabs ul.tabs.wc-tabs li.active a {
	color: var(--wp--preset--color--secondary) !important;
	box-shadow: inset 0 -2px var(--wp--preset--color--accent);
}

.opl-ss__tabs .woocommerce-Tabs-panel {
	max-width: 60em;
	font-family: var(--wp--preset--font-family--dm-sans);
	line-height: 1.8;
	color: var(--wp--preset--color--body-text);
}

.opl-ss__tabs table.shop_attributes {
	width: 100%;
	border-collapse: collapse;
}

.opl-ss__tabs table.shop_attributes th,
.opl-ss__tabs table.shop_attributes td {
	padding: 0.8rem 0;
	border: 0;
	border-bottom: 1px solid var(--wp--preset--color--border);
	text-align: left;
}

.opl-ss__tabs table.shop_attributes th {
	width: 30%;
	font-weight: 700;
	color: var(--wp--preset--color--secondary);
}

.opl--split-stage .opl__related {
	max-width: 1320px;
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--wp--preset--spacing--m);
	padding-right: var(--wp--preset--spacing--m);
}

@media (max-width: 960px) {
	.opl-ss__split {
		grid-template-columns: 1fr;
	}

	.opl-ss__light {
		padding: var(--wp--preset--spacing--xl) var(--wp--preset--spacing--m);
	}
}

/* =====================================================================
   LAYOUT: Spec Sheet
   ===================================================================== */
.opl--spec-sheet {
	max-width: 920px;
	margin: var(--wp--preset--spacing--m) auto 0;
	padding: 0 var(--wp--preset--spacing--m);
	font-family: var(--wp--preset--font-family--dm-sans);
}

.opl-sh__head {
	display: flex;
	gap: var(--wp--preset--spacing--m);
	align-items: flex-start;
	padding-bottom: var(--wp--preset--spacing--l);
	border-bottom: 1px solid var(--wp--preset--color--border);
	margin-bottom: var(--wp--preset--spacing--l);
}

.opl-sh__thumb {
	width: 120px;
	flex: none;
}

.opl-sh__thumb .woocommerce-product-gallery__image {
	border-radius: 10px;
	overflow: hidden;
	box-shadow: 0 16px 32px -18px rgba(4, 18, 0, 0.4);
}

.opl-sh__thumb ul.flex-control-thumbs {
	display: none;
}

.opl-sh__thumb span.onsale {
	top: 0.35rem;
	left: 0.35rem;
	padding: 0.25em 0.5em;
	font-size: 0.5625rem;
}

.opl-sh__title.wp-block-post-title {
	font-weight: 700;
	margin: 0 0 0.4rem;
	letter-spacing: -0.01em;
}

.opl-sh__tagline {
	font-size: 0.9375rem;
	color: var(--wp--preset--color--body-text);
	opacity: 0.7;
	max-width: 56ch;
	margin: 0 0 0.85rem;
}

.opl-sh__chips {
	display: flex;
	gap: 0.75rem;
	align-items: center;
	flex-wrap: wrap;
}

.opl-sh__chips .wc-block-components-product-sku {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 0.75rem;
	background: var(--wp--preset--color--page-background);
	color: var(--wp--preset--color--secondary);
	padding: 0.35em 0.65em;
	border-radius: 5px;
}

.opl-sh__price-strip {
	padding: var(--wp--preset--spacing--m) 0;
	border-bottom: 1px solid var(--wp--preset--color--border);
	margin-bottom: 0.5rem;
}

.opl-sh__price-strip .wc-block-components-product-price {
	font-size: 2rem;
	font-weight: 700;
}

.opl-sh__table {
	width: 100%;
	border-collapse: collapse;
	margin: var(--wp--preset--spacing--m) 0 var(--wp--preset--spacing--l);
}

.opl-sh__table th {
	text-align: left;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--body-text);
	opacity: 0.6;
	padding-bottom: 0.85rem;
	border-bottom: 1px solid var(--wp--preset--color--border);
}

.opl-sh__table td {
	padding: 0.9rem 0;
	border-bottom: 1px solid var(--wp--preset--color--border);
	font-size: 0.9375rem;
}

.opl-sh__table td:first-child {
	opacity: 0.7;
}

.opl-sh__table td:last-child {
	text-align: right;
	font-weight: 600;
	color: var(--wp--preset--color--heading);
}

.opl-sh__table tr:last-child td {
	border-bottom: none;
}

.opl-sh__cta .single_add_to_cart_button.wp-element-button {
	width: 100%;
	padding: 1.05rem;
	border-radius: 6px;
	font-weight: 700;
}

.opl-sh__tabs.wp-block-woocommerce-product-details {
	margin-top: var(--wp--preset--spacing--2-xl);
}

.opl-sh__tabs ul.tabs.wc-tabs {
	gap: 1.5rem;
	border-bottom: 1px solid var(--wp--preset--color--border);
	margin-bottom: 1.5rem;
}

.opl-sh__tabs ul.tabs.wc-tabs li {
	padding: 0 0 0.7em !important;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 0.8125rem;
	opacity: 0.55;
}

.opl-sh__tabs ul.tabs.wc-tabs li a {
	padding: 0 !important;
}

.opl-sh__tabs ul.tabs.wc-tabs li.active,
.opl-sh__tabs ul.tabs.wc-tabs li:hover {
	opacity: 1;
}

.opl-sh__tabs ul.tabs.wc-tabs li.active a {
	color: var(--wp--preset--color--primary) !important;
	box-shadow: inset 0 -2px var(--wp--preset--color--primary);
}

.opl-sh__tabs .woocommerce-Tabs-panel {
	line-height: 1.75;
	color: var(--wp--preset--color--body-text);
}

.opl-sh__tabs table.shop_attributes {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9375rem;
}

.opl-sh__tabs table.shop_attributes th,
.opl-sh__tabs table.shop_attributes td {
	padding: 0.75rem 0;
	border: 0;
	border-bottom: 1px solid var(--wp--preset--color--border);
	text-align: left;
}

.opl-sh__tabs table.shop_attributes th {
	width: 30%;
	font-weight: 600;
	opacity: 0.6;
}

@media (max-width: 700px) {
	.opl-sh__head {
		flex-direction: column;
	}
}

/* =====================================================================
   LAYOUT: Boutique
   ===================================================================== */
.opl--boutique {
	background: var(--wp--preset--color--page-background);
	padding-top: var(--wp--preset--spacing--m);
}

.opl-bq__wrap {
	max-width: 640px;
	margin: 0 auto;
	padding: var(--wp--preset--spacing--2-xl) var(--wp--preset--spacing--m);
	text-align: center;
	font-family: var(--wp--preset--font-family--dm-sans);
}

.opl-bq__frame {
	max-width: 380px;
	margin: 0 auto var(--wp--preset--spacing--l);
}

.opl-bq__frame .woocommerce-product-gallery__image {
	border-radius: 24px;
	overflow: hidden;
	box-shadow: 0 30px 60px -30px rgba(4, 18, 0, 0.35);
}

.opl-bq__frame ul.flex-control-thumbs {
	justify-content: center;
}

.opl-bq__title.wp-block-post-title {
	font-family: var(--wp--preset--font-family--quicksand);
	font-weight: 600;
	margin: 0 0 0.85rem;
	letter-spacing: -0.005em;
}

.opl-bq__rule {
	width: 32px;
	height: 2px;
	background: var(--wp--preset--color--accent);
	margin: 0 auto 1.85rem;
}

.opl-bq__pitch {
	font-size: 1.0625rem;
	line-height: 1.75;
	color: var(--wp--preset--color--body-text);
	opacity: 0.75;
	max-width: 36ch;
	margin: 0 auto var(--wp--preset--spacing--l);
}

.opl-bq__price.wc-block-components-product-price {
	font-family: var(--wp--preset--font-family--quicksand);
	font-weight: 700;
	color: var(--wp--preset--color--primary);
	margin-bottom: 0.6rem;
}

.opl-bq__price .wc-block-components-product-price__regular {
	display: block;
	font-size: 0.5em;
	opacity: 0.5;
	font-weight: 500;
	text-decoration: line-through;
}

.opl-bq__cta.wp-block-woocommerce-add-to-cart-form {
	display: flex;
	justify-content: center;
}

.opl-bq__cta .single_add_to_cart_button.wp-element-button {
	padding: 1.15rem 3.25rem;
	border-radius: 999px;
	font-family: var(--wp--preset--font-family--quicksand);
	font-weight: 600;
	box-shadow: 0 18px 34px -16px rgba(4, 18, 0, 0.35);
	transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.opl-bq__cta .single_add_to_cart_button.wp-element-button:hover {
	transform: translateY(-2px) scale(1.015);
}

.opl-bq__cta .wc-block-components-quantity-selector {
	border: none;
	border-bottom: 1px solid var(--wp--preset--color--border);
	border-radius: 0;
	margin-right: 0.75rem;
}

.opl-bq__tabs {
	max-width: 640px;
	margin: var(--wp--preset--spacing--2-xl) auto 0;
	padding: 0 var(--wp--preset--spacing--m);
	text-align: left;
}

.opl-bq__tabs ul.tabs.wc-tabs {
	justify-content: center;
	gap: 2rem;
	border: 0;
	margin-bottom: 2rem;
}

.opl-bq__tabs ul.tabs.wc-tabs li {
	padding: 0 !important;
	font-family: var(--wp--preset--font-family--quicksand);
	font-weight: 500;
	opacity: 0.45;
}

.opl-bq__tabs ul.tabs.wc-tabs li a {
	padding: 0 !important;
}

.opl-bq__tabs ul.tabs.wc-tabs li.active,
.opl-bq__tabs ul.tabs.wc-tabs li:hover {
	opacity: 1;
}

.opl-bq__tabs ul.tabs.wc-tabs li.active a {
	color: var(--wp--preset--color--heading) !important;
}

.opl-bq__tabs .woocommerce-Tabs-panel {
	max-width: 52ch;
	margin: 0 auto;
	line-height: 1.8;
	color: var(--wp--preset--color--body-text);
	text-align: center;
}

.opl-bq__tabs table.shop_attributes {
	width: 100%;
	border-collapse: collapse;
	text-align: left;
	margin-top: 1rem;
}

.opl-bq__tabs table.shop_attributes th,
.opl-bq__tabs table.shop_attributes td {
	padding: 0.7rem 0;
	border: 0;
	border-bottom: 1px solid var(--wp--preset--color--border);
}

.opl-bq__tabs table.shop_attributes th {
	width: 40%;
	font-weight: 600;
	opacity: 0.6;
}

.opl--boutique .opl__related {
	max-width: 1320px;
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--wp--preset--spacing--m);
	padding-right: var(--wp--preset--spacing--m);
	background: var(--wp--preset--color--background);
}

/* =====================================================================
   Shared fixes + mobile (all 5 layouts)
   ===================================================================== */

/*
 * Every layout renders woocommerce/product-details through do_blocks()
 * rather than from the template itself (see product_page.php block()), so
 * WooCommerce never enqueues that block's own stylesheet - the tabs fell
 * back to a bare bulleted <ul> of links on every layout. This is the base
 * tab strip each layout's own ul.tabs rules above then skin: a single
 * row that scrolls sideways on narrow screens instead of wrapping into a
 * stacked list.
 */
.opl .woocommerce-tabs ul.tabs.wc-tabs {
	display: flex;
	flex-wrap: nowrap;
	list-style: none;
	margin-left: 0;
	margin-right: 0;
	padding: 0;
	overflow-x: auto;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}

.opl .woocommerce-tabs ul.tabs.wc-tabs::-webkit-scrollbar {
	display: none;
}

.opl .woocommerce-tabs ul.tabs.wc-tabs::before,
.opl .woocommerce-tabs ul.tabs.wc-tabs li::before,
.opl .woocommerce-tabs ul.tabs.wc-tabs li::after {
	display: none;
}

.opl .woocommerce-tabs ul.tabs.wc-tabs li {
	flex: none;
	margin: 0;
	list-style: none;
	white-space: nowrap;
}

.opl .woocommerce-tabs ul.tabs.wc-tabs li a {
	display: block;
	color: inherit;
	text-decoration: none;
}

.opl-bq__tabs ul.tabs.wc-tabs {
	justify-content: safe center;
}

/* The panel repeats the active tab's name as its own h2 - at the theme's
   full heading size it dwarfed the short content it introduces. */
.opl .woocommerce-Tabs-panel > h2:first-child {
	font-size: var(--wp--preset--font-size--large);
	margin-top: 0;
}

/* Full-screen gallery trigger: WooCommerce's default is a bare emoji
   pinned to the image's top-left corner, right on top of the sale badge.
   A round button in the opposite corner reads as a control and stays
   clear of the badge. */
.opl .woocommerce-product-gallery {
	position: relative;
}

.opl .woocommerce-product-gallery__trigger {
	position: absolute;
	top: 0.85rem;
	right: 0.85rem;
	left: auto;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--wp--preset--color--background, #fff);
	box-shadow: 0 6px 16px -6px rgba(0, 0, 0, 0.35);
	text-decoration: none;
	font-size: 1rem;
	line-height: 1;
}

.opl .woocommerce-product-gallery__trigger img.emoji {
	width: 18px !important;
	height: 18px !important;
	margin: 0 !important;
}

/* The carousel variant draws its own top border/spacing, and every layout
   already wraps related() in .opl__related, which draws the same one - so
   the page showed two stacked divider lines. Keep the outer one only. */
.opl__related .omega-related-products {
	margin-top: 0;
	padding-top: 0;
	border-top: 0;
}

/* Gallery thumbnails: fixed-size tiles instead of WooCommerce's
   percentage widths, which shrank to slivers on a phone. */
.opl .woocommerce-product-gallery ul.flex-control-thumbs {
	display: flex;
	gap: 0.6rem;
	margin: 0.85rem 0 0;
	padding: 0;
	list-style: none;
}

.opl .woocommerce-product-gallery ul.flex-control-thumbs li {
	width: 64px !important;
	flex: none;
	margin: 0 !important;
}

@media (max-width: 600px) {
	/* <main> already provides the page gutter on mobile - every layout's
	   own side padding on top of it left barely 75% of the screen for
	   content. */
	.opl--gallery-feature .opl-gf__grid,
	.opl--gallery-feature .opl-gf__tabs.wp-block-woocommerce-product-details,
	.opl--command-deck,
	.opl-ss__tabs.wp-block-woocommerce-product-details,
	.opl--spec-sheet,
	.opl-bq__wrap,
	.opl-bq__tabs,
	.opl--gallery-feature .opl__related,
	.opl--split-stage .opl__related {
		padding-left: 0;
		padding-right: 0;
	}

	.opl {
		margin-top: var(--wp--preset--spacing--s);
	}

	/* One swipeable row of thumbnails instead of several wrapped rows. */
	.opl .woocommerce-product-gallery ul.flex-control-thumbs {
		flex-wrap: nowrap;
		overflow-x: auto;
		scrollbar-width: none;
	}

	.opl .woocommerce-product-gallery ul.flex-control-thumbs li {
		width: 56px !important;
	}

	.opl span.onsale {
		top: 0.75rem;
		left: 0.75rem;
	}

	/* Quantity stepper + Add to cart: one row, the button taking all the
	   remaining width so it's a big, thumb-friendly target in every
	   layout (some layouts sized it to its label, others to 100%). */
	.opl .wp-block-woocommerce-add-to-cart-form form.cart:not(.variations_form),
	.opl .wp-block-woocommerce-add-to-cart-form .woocommerce-variation-add-to-cart {
		display: flex;
		align-items: stretch;
		gap: 0.6rem;
	}

	.opl .wp-block-woocommerce-add-to-cart-form .quantity {
		flex: none;
		margin: 0 !important;
	}

	.opl .wp-block-woocommerce-add-to-cart-form .single_add_to_cart_button.wp-element-button {
		flex: 1 1 auto;
		width: auto;
		min-height: 52px;
		margin: 0;
		padding-left: 1rem;
		padding-right: 1rem;
	}

	.opl .woocommerce-Tabs-panel {
		font-size: 0.9375rem;
	}

	.opl table.shop_attributes th {
		width: 40% !important;
	}

	.opl__related,
	.opl--gallery-feature .opl-gf__tabs.wp-block-woocommerce-product-details,
	.opl-cd__tabs.wp-block-woocommerce-product-details,
	.opl-ss__tabs.wp-block-woocommerce-product-details,
	.opl-sh__tabs.wp-block-woocommerce-product-details {
		margin-top: var(--wp--preset--spacing--xl);
	}

	.opl__related .related.products > h2,
	.omega-related-products__heading {
		font-size: var(--wp--preset--font-size--large);
		margin-bottom: var(--wp--preset--spacing--m);
	}

	/* Related products: 2 compact cards per row/view. */
	.opl__related ul.products {
		gap: var(--wp--preset--spacing--s);
	}

	.opl__related li.product .woocommerce-loop-product__title,
	.omega-related-products-slider li.product .woocommerce-loop-product__title {
		font-size: 0.9375rem;
		line-height: 1.35;
	}

	.opl__related li.product .price,
	.omega-related-products-slider li.product .price {
		font-size: 0.875rem;
	}

	.opl__related li.product .button,
	.omega-related-products-slider li.product .button {
		display: block;
		text-align: center;
		padding: 0.55rem 0.5rem;
	}

	/* Gallery Feature */
	.opl--gallery-feature .opl-gf__grid {
		row-gap: var(--wp--preset--spacing--m);
	}

	.opl--gallery-feature .opl-gf__title.wp-block-post-title {
		font-size: clamp(1.75rem, 8vw, 2.25rem) !important;
	}

	.opl-gf__info-col > * + * {
		margin-top: 1rem;
	}

	.opl--gallery-feature .opl-gf__cta.wp-block-woocommerce-add-to-cart-form {
		margin-top: 1.25rem;
	}

	.opl-gf__tabs ul.tabs.wc-tabs li {
		padding: 0.55em 1.1em !important;
	}

	/* Command Deck */
	.opl-cd__grid {
		gap: var(--wp--preset--spacing--m);
	}

	.opl-cd__section {
		padding: 1.25rem;
	}

	.opl-cd__price.wc-block-components-product-price {
		font-size: 1.5rem;
	}

	.opl-cd__specs-title {
		margin-top: var(--wp--preset--spacing--xl);
	}

	.opl-cd__tabs ul.tabs.wc-tabs {
		gap: 1.25rem;
	}

	/* Split Stage: the dark photo panel bleeds edge to edge (it's the
	   layout's whole point - same 50vw bleed as landing-pages.css), and
	   the absolutely-positioned price tag, which sat on top of the product
	   photo at this width, drops into normal flow under it. */
	.opl-ss__split {
		min-height: 0;
		margin-left: calc(50% - 50vw);
		margin-right: calc(50% - 50vw);
	}

	.opl-ss__dark {
		flex-direction: column;
		gap: var(--wp--preset--spacing--m);
		padding: var(--wp--preset--spacing--l) var(--wp--preset--spacing--m);
	}

	.opl-ss__price-tag {
		position: static;
		align-self: flex-start;
		padding: 0.25rem 0 0.25rem 1rem;
		text-align: left;
	}

	.opl-ss__price-tag .wc-block-components-product-price {
		font-size: 1.75rem !important;
	}

	.opl-ss__light {
		padding: var(--wp--preset--spacing--l) var(--wp--preset--spacing--m) 0;
	}

	.opl-ss__title.wp-block-post-title {
		font-size: clamp(2rem, 10vw, 2.75rem) !important;
		margin-bottom: 1rem;
	}

	.opl-ss__desc {
		font-size: 1rem;
	}

	.opl-ss__facts div,
	.opl-ss__facts div:nth-child(odd) {
		padding: 0.9rem 0.75rem 0.9rem 0;
	}

	.opl-ss__facts div:nth-child(even) {
		padding-left: 0.9rem;
	}

	.opl-ss__cta.wp-block-woocommerce-add-to-cart-form .single_add_to_cart_button.wp-element-button {
		letter-spacing: 0.05em;
	}

	.opl-ss__tabs ul.tabs.wc-tabs {
		gap: 1.25rem;
	}

	/* Spec Sheet */
	.opl-sh__head {
		gap: var(--wp--preset--spacing--s);
	}

	.opl-sh__thumb {
		width: 100%;
	}

	/* The desktop badge is shrunk to fit a 120px thumbnail - the image is
	   full width here, so back to the shared size. */
	.opl-sh__thumb span.onsale {
		top: 0.75rem;
		left: 0.75rem;
		padding: 0.4em 0.85em;
		font-size: var(--wp--preset--font-size--x-small);
	}

	.opl-sh__price-strip .wc-block-components-product-price {
		font-size: 1.625rem;
	}

	.opl-sh__tabs ul.tabs.wc-tabs {
		gap: 1.1rem;
	}

	/* Boutique: its tinted background runs edge to edge. !important because
	   .opl--boutique is a direct child of the constrained <main>, whose
	   generated layout rule pins every child's side margins to auto. */
	.opl--boutique {
		margin-left: calc(50% - 50vw) !important;
		margin-right: calc(50% - 50vw) !important;
	}

	.opl-bq__wrap,
	.opl-bq__tabs,
	.opl--boutique .opl__related {
		padding-left: var(--wp--preset--spacing--m);
		padding-right: var(--wp--preset--spacing--m);
	}

	.opl-bq__wrap {
		padding-top: var(--wp--preset--spacing--l);
		padding-bottom: var(--wp--preset--spacing--l);
	}

	.opl-bq__frame {
		max-width: none;
	}

	.opl-bq__title.wp-block-post-title {
		font-size: clamp(1.75rem, 8vw, 2.25rem) !important;
	}

	.opl-bq__price.wc-block-components-product-price {
		font-size: clamp(2rem, 11vw, 2.75rem) !important;
		line-height: 1.15;
	}

	.opl-bq__cta .single_add_to_cart_button.wp-element-button {
		padding-left: 1.5rem;
		padding-right: 1.5rem;
	}

	.opl-bq__tabs {
		margin-top: var(--wp--preset--spacing--xl);
	}

	.opl-bq__tabs ul.tabs.wc-tabs {
		gap: 1.25rem;
		margin-bottom: 1.25rem;
	}
}
