/* ============================================================
   OPICKO PDP v4 — assets/pdp.css — FINAL BULLETPROOF VISUAL LOCK
   Fixes: e-con-boxed overlap, variations table stacking, gallery mosaic.
   Architecture: Semantic classes (client-proof) instead of Elementor auto-IDs.
   Patch 16 Applied: Hardcoded hex codes mapped to CSS variables.
   ============================================================ */

.opc-pdp {
	font-family: var(--opc-font);
	color: var(--lux-body);
	-webkit-font-smoothing: antialiased;
	max-width: none !important;
	margin: 0 !important
}

.opc-pdp .elementor-section,
.opc-pdp .e-con,
.opc-pdp .elementor-container,
.opc-pdp .elementor-column {
	overflow: visible !important
}

.opc-pdp .e-con:empty {
	display: none !important
}

.opc-pdp a:focus-visible,
.opc-pdp button:focus-visible,
.gs-review-form :focus-visible {
	outline: 2px solid var(--lux-ink);
	outline-offset: 2px;
}

.opx-hp {
	display: none !important
}

.opx-footer-template .elementor-background-video-container {
	opacity: .22
}

.scrollToTop {
	background: #fff !important;
	color: var(--lux-ink) !important;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .25) !important
}

.opc-pdp .quantity::before {
	content: none !important
}

.gs-installments {
	display: none !important
}

.gs-subline {
	display: none !important
}

.variations_button .vfai-tryon-wrapper {
	display: none !important
}

@media (max-width:1024px) {
	body.single-product {
		padding-bottom: 80px !important
	}

	body.single-product .wd-toolbar {
		display: none !important
	}

	body.single-product .wd-header-mobile-nav {
		display: flex !important
	}

	body.single-product .mobile-nav {
		display: block !important
	}

	.opc-hdr-menu,
	.opc-menu-sheet {
		display: none !important
	}
}

/* ── HERO 58/42 — BULLETPROOF (Defeats e-con-boxed & --content-width) ── */
@media (min-width:1025px) {

	.opx-pdp-hero,
	.opx-pdp-hero>.e-con-inner {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		align-items: flex-start !important;
		gap: 0 !important;
		width: 100% !important;
		max-width: 100% !important;
		padding: 0 !important;
		margin: 0 !important;
	}

	/* Left Column (Gallery) - 58% */
	.opx-pdp-gallery {
		--content-width: 100% !important;
		width: 58% !important;
		flex: 0 0 58% !important;
		max-width: 58% !important;
		min-width: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	.opx-pdp-gallery>.e-con-inner {
		--content-width: 100% !important;
		max-width: 100% !important;
		width: 100% !important;
		padding: 0 !important;
		margin: 0 !important;
	}

	.opx-pdp-gallery .elementor-widget-shortcode,
	.opx-pdp-gallery .elementor-shortcode {
		padding: 0 !important;
		margin: 0 !important;
		width: 100% !important;
	}

	/* Right Column (Buy Box) - 42% */
	.opx-pdp-buybox {
		--content-width: 100% !important;
		width: 42% !important;
		flex: 0 0 42% !important;
		max-width: 42% !important;
		min-width: 0 !important;
		padding: 40px 48px 48px 40px !important;
	}

	.opx-pdp-buybox>.e-con-inner {
		--content-width: 100% !important;
		max-width: 100% !important;
		width: 100% !important;
		padding: 0 !important;
	}

	.opx-pdp-buybox>*,
	.opx-pdp-buybox .elementor-widget {
		margin: 0 !important;
	}
}

@media (max-width:1024px) {

	.opx-pdp-hero,
	.opx-pdp-hero>.e-con-inner {
		flex-direction: column !important;
	}

	.opx-pdp-gallery,
	.opx-pdp-gallery>.e-con-inner,
	.opx-pdp-buybox,
	.opx-pdp-buybox>.e-con-inner {
		--content-width: 100% !important;
		width: 100% !important;
		flex: 0 0 auto !important;
		max-width: 100% !important;
		min-width: 0 !important;
	}

	.opx-pdp-buybox,
	.opx-pdp-buybox>.e-con-inner {
		padding: 28px 16px 10px !important;
	}
}

/* ── 3. Gallery ──────────────────────────────────────────────── */
.gs-gallery {
	display: grid;
	gap: 4px;
	margin: 0;
	position: relative;
	width: 100%
}

.gs-gallery__item {
	position: relative;
	overflow: hidden;
	margin: 0;
	aspect-ratio: 1/1;
	background: var(--lux-cream)
}

.gs-gallery--1 {
	grid-template-columns: 1fr
}

.gs-gallery--2 {
	grid-template-columns: 1fr 1fr
}

.gs-gallery--3 {
	grid-template-columns: 1fr 1fr
}

.gs-gallery--3 .gs-gallery__item:nth-child(3) {
	grid-column: 1/-1
}

.gs-gallery--4 {
	grid-template-columns: 1fr 1fr
}

.gs-gallery--5 {
	grid-template-columns: 1fr 1fr
}

.gs-gallery--5 .gs-gallery__item:nth-child(3) {
	grid-column: 1/-1;
	aspect-ratio: 2/1
}

.gs-gallery__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .3s cubic-bezier(.2, .6, .2, 1)
}

.gs-badge {
	position: absolute;
	top: 16px;
	right: 16px;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: var(--opx-danger, #c41e3a) !important;
	color: #fff !important;
	display: flex;
	align-items: center;
	justify-content: center;
	font: 700 12px var(--opc-font);
	letter-spacing: .5px;
	z-index: 2
}

.gs-badge--sm {
	width: 40px;
	height: 40px;
	font-size: 10px;
	top: 10px;
	right: 10px
}

@media (min-width:1025px) {
	.gs-gallery__item img {
		cursor: zoom-in
	}

	.gs-gallery__item.zm img {
		transform: scale(2);
		cursor: zoom-out
	}

	.gs-gallery__item::after {
		content: '+';
		position: absolute;
		bottom: 12px;
		right: 12px;
		width: 34px;
		height: 34px;
		background: #fff;
		border-radius: 50%;
		display: flex;
		align-items: center;
		justify-content: center;
		font: 400 18px var(--opc-font);
		color: var(--lux-ink);
		opacity: 0;
		transition: opacity .2s;
		pointer-events: none;
		box-shadow: 0 2px 8px rgba(0, 0, 0, .15);
		z-index: 2
	}

	.gs-gallery__item:hover::after {
		opacity: 1
	}

	.gs-gallery__item.zm::after {
		content: '−';
		opacity: 1
	}
}

@media (max-width:1024px) {
	.gs-gallery {
		display: flex !important;
		flex-wrap: nowrap !important;
		overflow-x: auto !important;
		overflow-y: hidden !important;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none
	}

	.gs-gallery::-webkit-scrollbar {
		display: none
	}

	.gs-gallery__item {
		flex: 0 0 100% !important;
		min-width: 100% !important;
		scroll-snap-align: center;
		scroll-snap-stop: always
	}

	.gs-zoom-m {
		position: absolute;
		right: 12px;
		bottom: 12px;
		width: 36px;
		height: 36px;
		border-radius: 50%;
		background: rgba(255, 255, 255, .9);
		display: flex;
		align-items: center;
		justify-content: center;
		z-index: 2;
		box-shadow: 0 2px 8px rgba(0, 0, 0, .15)
	}

	.gs-zoom-m svg {
		width: 16px;
		height: 16px
	}
}

.opc-dots {
	display: none;
	position: relative;
	z-index: 3;
	width: max-content;
	margin: -24px auto 10px;
	background: rgba(255, 255, 255, .92);
	border-radius: 999px;
	padding: 7px 10px;
	gap: 6px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .18)
}

.opc-dots span {
	width: 6px;
	height: 6px;
	border-radius: 999px;
	background: var(--lux-line);
	transition: all .25s ease;
	display: inline-block
}

.opc-dots span.on {
	width: 18px;
	background: var(--lux-ink)
}

@media (max-width:1024px) {
	.opc-dots {
		display: flex !important
	}
}

.gs-scrub {
	position: fixed;
	left: 20px;
	top: 50%;
	transform: translateY(-50%);
	z-index: 99999;
	display: none;
	flex-direction: column;
	align-items: center;
	gap: 14px;
	opacity: 0;
	pointer-events: none;
	transition: opacity .3s
}

.gs-scrub.on {
	opacity: 1;
	pointer-events: auto;
	display: flex
}

.gs-scrub.off-screen,
.gs-scrub.gs-off {
	opacity: 0 !important;
	pointer-events: none !important
}

@media (max-width:1024px) {
	.gs-scrub {
		display: none !important
	}
}

.gs-scrub button {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 0;
	background: #fff;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .14);
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center
}

.gs-scrub button svg {
	display: none !important
}

.gs-scrub button::before {
	content: '';
	width: 10px;
	height: 10px;
	border-left: 2px solid var(--lux-ink);
	border-top: 2px solid var(--lux-ink)
}

.gs-scrub button[data-dir="-1"]::before {
	transform: rotate(45deg);
	margin-top: 4px
}

.gs-scrub button[data-dir="1"]::before {
	transform: rotate(-135deg);
	margin-top: -4px
}

.gs-scrub-track {
	width: 28px;
	height: 150px;
	background: #fff;
	border-radius: 999px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .14);
	position: relative;
	cursor: pointer
}

.gs-scrub-track::before {
	content: '';
	position: absolute;
	left: 50%;
	top: 12px;
	bottom: 12px;
	width: 4px;
	transform: translateX(-50%);
	background: var(--lux-line);
	border-radius: 99px
}

.gs-scrub-track i {
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	width: 6px;
	height: 44px;
	background: var(--lux-ink);
	border-radius: 99px;
	top: 12px;
	z-index: 1
}

/* ── 4. Buy box ──────────────────────────────────────────────── */
.gs-crumbs {
	font-size: 10px !important;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--lux-muted) !important;
	margin: 0 0 14px !important
}

.gs-crumbs a {
	color: var(--lux-muted) !important;
	text-decoration: none
}

.product_title.entry-title {
	font-weight: 600 !important;
	letter-spacing: -.01em !important;
	text-transform: none !important;
	color: var(--lux-ink) !important;
	font-size: 26px !important;
	margin: 0 0 10px !important
}

.opc-pdp .price {
	display: flex !important;
	align-items: baseline;
	gap: 10px;
	flex-wrap: wrap;
	margin: 0 0 8px !important
}

.opc-pdp .price del {
	display: none !important
}

.opc-pdp .price ins {
	font-size: 16px !important;
	font-weight: 500 !important;
	color: var(--lux-ink) !important;
	text-decoration: none !important
}

.gs-save-pill {
	background: none !important;
	color: var(--lux-muted) !important;
	padding: 0 !important;
	border-radius: 0 !important;
	font-size: 11px !important;
	letter-spacing: .08em !important;
	text-transform: uppercase;
	white-space: nowrap
}

.gs-rating-row {
	display: flex;
	align-items: center;
	gap: 18px !important;
	margin: 10px 0 0 !important
}

.gs-icobtn {
	width: 24px;
	height: 24px;
	background: none !important;
	border: 0 !important;
	padding: 0 !important;
	color: var(--lux-muted) !important;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer
}

.gs-icobtn:hover {
	color: var(--lux-ink) !important
}

.gs-icobtn svg {
	width: 20px;
	height: 20px;
	display: block
}

.woocommerce-product-details__short-description {
	font-size: 14px !important;
	line-height: 1.75 !important;
	color: var(--lux-body) !important;
	margin: 12px 0 0 !important
}

.gs-trunc {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden
}

.gs-trunc.open {
	display: block;
	-webkit-line-clamp: unset
}

.gs-lm-toggle {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	text-transform: uppercase;
	letter-spacing: .06em;
	font-size: 12px !important;
	font-weight: 600;
	color: var(--lux-ink);
	background: none !important;
	border: 0 !important;
	padding: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	cursor: pointer;
	margin: 4px 0 0 !important
}

.gs-lm-toggle::after {
	content: "";
	width: 10px;
	height: 6px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23111' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center/10px 6px;
	transition: transform .2s
}

.gs-lm-toggle.open::after {
	transform: rotate(180deg)
}

.gs-lm-panel {
	max-height: 0;
	overflow: hidden;
	transition: max-height .3s ease;
	margin: 0 !important
}

.gs-lm-panel.open {
	max-height: 500px
}

.gs-lm-inner {
	background: var(--lux-cream);
	border-radius: 6px;
	padding: 16px 18px;
	margin: 10px 0 14px !important
}

.gs-fitnote {
	display: flex;
	gap: 12px;
	align-items: center;
	background: none;
	border: 0;
	padding: 0;
	margin: 0;
	font-size: 13px;
	color: var(--lux-ink)
}

.gs-fitnote svg {
	width: 18px !important;
	height: 18px !important;
	flex: 0 0 auto
}

.gs-divider {
	height: 1px;
	background: var(--lux-line) !important;
	margin: 14px 0 12px !important
}

.gs-size-head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	margin: 0 0 14px !important;
	width: 100%;
	flex-wrap: nowrap !important
}

.gs-size-head-label {
	font: 600 13px var(--opc-font) !important;
	margin: 0 !important;
	text-transform: none;
	letter-spacing: 0;
	color: var(--lux-ink) !important
}

.gs-size-head-guide,
.gs-size-head a {
	font: 600 12px var(--opc-font) !important;
	color: var(--lux-ink) !important;
	text-decoration: underline;
	background: none !important;
	border: 0 !important;
	padding: 0 !important;
	cursor: pointer;
	white-space: nowrap
}

.gs-swatches,
.wd-swatches-product {
	display: flex !important;
	flex-wrap: nowrap !important;
	gap: 10px !important;
	overflow-x: auto !important;
	margin: 0 0 8px !important;
	scrollbar-width: none
}

.gs-swatches::-webkit-scrollbar,
.wd-swatches-product::-webkit-scrollbar {
	display: none
}

.gs-swatch,
.wd-swatch {
	width: auto !important;
	min-width: 64px !important;
	height: 52px !important;
	padding: 0 18px !important;
	border: 1px solid var(--lux-line) !important;
	border-radius: 4px !important;
	background: #fff !important;
	color: var(--lux-ink) !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	text-align: center;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: border-color .15s ease
}

.gs-swatch:hover,
.wd-swatch:hover {
	border-color: var(--lux-ink) !important
}

.gs-swatch.active,
.wd-swatch.wd-active {
	border: 1px solid var(--lux-ink) !important;
	box-shadow: inset 0 0 0 1px var(--lux-ink) !important;
	background: #fff !important;
	color: var(--lux-ink) !important;
	font-weight: 700 !important
}

.gs-swatch.oos,
.wd-swatch.wd-disabled {
	background: var(--lux-cream) !important;
	border-color: var(--lux-line) !important;
	color: var(--lux-muted) !important;
	text-decoration: line-through !important;
	cursor: not-allowed !important
}

@media (max-width:520px) {

	.gs-swatch,
	.wd-swatch {
		min-width: 56px !important;
		height: 46px !important;
		padding: 0 14px !important;
		font-size: 13px !important
	}
}

/* ── Qty + ATC: Bulletproof stacked layout ── */
.opc-pdp form.cart {
	display: block !important;
	background: transparent !important;
	border: 0 !important;
	padding: 0 !important;
	width: 100% !important;
}

.opc-pdp form.cart table.variations,
.opc-pdp form.cart .variations {
	display: block !important;
	width: 100% !important;
	margin: 0 0 16px !important;
	border: 0 !important;
}

.opc-pdp form.cart table.variations tbody,
.opc-pdp form.cart table.variations tr,
.opc-pdp form.cart table.variations td {
	display: block !important;
	width: 100% !important;
}

.opc-pdp form.cart table.variations .label {
	display: none !important
}

.opc-pdp form.cart table.variations td.value {
	padding: 0 !important
}

.opc-pdp .reset_variations {
	display: none !important
}

.opc-pdp form.cart .single_variation_wrap,
.opc-pdp form.cart .woocommerce-variation-add-to-cart {
	display: block !important;
	width: 100% !important;
	background: transparent !important;
	border: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
}

.opc-pdp form.cart .variations_button,
.opc-pdp form.cart .woocommerce-variation-add-to-cart {
	display: grid !important;
	grid-template-columns: auto 1fr !important;
	gap: 10px !important;
	align-items: center !important;
	margin: 0 0 16px !important;
}

.opc-pdp form.cart .variations_button .quantity,
.opc-pdp .e-atc-qty-button-holder .quantity {
	grid-column: 1 !important;
	margin: 0 !important;
}

.opc-pdp form.cart .variations_button .single_add_to_cart_button,
.opc-pdp .e-atc-qty-button-holder .single_add_to_cart_button {
	grid-column: 2 !important;
	width: 100% !important;
	height: 52px !important;
	border-radius: 3px !important;
	white-space: nowrap !important;
	margin: 0 !important;
}

.single_add_to_cart_button {
	background: var(--lux-accent) !important;
	color: #fff !important;
	border: 0 !important;
	font-size: 12px !important;
	letter-spacing: .22em !important;
	font-weight: 600 !important;
	text-transform: uppercase !important;
	cursor: pointer !important;
	height: 48px !important;
	padding: 0 24px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	border-radius: 6px !important;
	line-height: 1 !important;
	box-sizing: border-box !important;
}

.single_add_to_cart_button:hover {
	background: var(--lux-accent) !important
}

.single_add_to_cart_button.disabled,
.single_add_to_cart_button:disabled {
	opacity: 1 !important;
	color: #fff !important;
	background: var(--lux-accent) !important;
	cursor: not-allowed !important;
}

/* try-on */
.gs-tryon {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	margin: 12px 0 0 !important
}

.gs-try-on {
	background: none !important;
	color: var(--lux-ink) !important;
	border: 1px solid var(--lux-ink) !important;
	border-radius: 3px !important;
	width: auto !important;
	height: 52px !important;
	padding: 14px 44px !important;
	font-size: 11px !important;
	letter-spacing: .2em !important;
	font-weight: 600 !important;
	text-transform: uppercase;
	cursor: pointer
}

.gs-try-on:hover {
	background: var(--lux-ink);
	color: #fff !important
}

.gs-tryon-hint {
	font-size: 12px !important;
	color: var(--lux-muted) !important;
	margin: 8px 0 0 !important
}

@media (max-width:1024px) {
	.gs-try-on {
		width: 100% !important
	}
}

/* assurance */
.gs-assure {
	display: flex !important;
	flex-direction: column;
	gap: 12px;
	margin: 0 0 26px !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important
}

.gs-assure>div {
	display: flex !important;
	align-items: flex-start;
	gap: 12px;
	font-size: 13px !important;
	line-height: 1.5 !important;
	color: var(--lux-body) !important
}

.gs-assure svg {
	width: 18px !important;
	height: 18px !important;
	flex: 0 0 auto;
	margin-top: 2px
}

.gs-assure strong {
	color: var(--lux-ink)
}

/* D&R rowlink */
.opc-pdp .gs-rowlink {
	display: flex !important;
	align-items: center;
	gap: 12px;
	width: 100%;
	padding: 18px 0 !important;
	background: none !important;
	border: 0;
	border-top: 1px solid var(--lux-line);
	border-bottom: 1px solid var(--lux-line);
	border-radius: 0 !important;
	box-shadow: none !important;
	font: 600 13px var(--opc-font) !important;
	letter-spacing: .5px;
	text-transform: uppercase;
	color: var(--lux-ink) !important;
	text-align: left !important;
	justify-content: flex-start !important;
	cursor: pointer
}

.opc-pdp .gs-rowlink svg,
.gs-row-ico {
	width: 16px !important;
	height: 16px !important;
	flex: 0 0 auto
}

.opc-pdp .gs-rowlink::after {
	content: '+';
	margin-left: auto;
	font-size: 18px;
	font-weight: 400
}

/* accordions */
.gs-acc__item {
	border-bottom: 1px solid var(--lux-line) !important
}

.gs-acc__btn {
	display: flex !important;
	justify-content: space-between !important;
	align-items: center !important;
	background: transparent !important;
	border: 0;
	width: 100%;
	text-align: left !important;
	padding: 14px 0 !important;
	cursor: pointer;
	font-size: 12px !important;
	letter-spacing: .14em !important;
	text-transform: uppercase !important;
	font-weight: 600 !important;
	color: var(--lux-ink) !important
}

.gs-acc__ico {
	font-weight: 300 !important;
	font-size: 18px
}

.gs-acc__pane {
	display: none;
	padding: 0 0 14px !important;
	font-size: 13px !important;
	line-height: 1.7 !important;
	color: var(--lux-body) !important
}

.gs-acc__item.open .gs-acc__pane {
	display: block
}

.gs-feature {
	margin-bottom: 12px
}

.gs-feature h4 {
	font: 700 12px var(--opc-font) !important;
	letter-spacing: .6px;
	text-transform: uppercase;
	margin: 0 0 6px !important;
	color: var(--lux-ink) !important
}

.gs-feature p {
	font-size: 13px !important;
	line-height: 1.6 !important;
	color: var(--lux-muted) !important;
	margin: 0 !important
}

.gs-care-row {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	padding: 8px 0;
	font: 400 13px var(--opc-font);
	color: var(--lux-ink)
}

.gs-care-row svg {
	width: 18px;
	height: 18px;
	flex: 0 0 auto
}

/* share */
.gs-share {
	display: flex;
	justify-content: space-between !important;
	align-items: center;
	margin: 8px 0 0 !important;
	border-top: 0 !important;
	padding-top: 0 !important
}

.gs-share>span {
	font-size: 10px !important;
	letter-spacing: .18em !important;
	color: var(--lux-muted) !important;
	text-transform: uppercase;
	display: block !important
}

.gs-share__row {
	display: flex;
	gap: 10px
}

.gs-share__i {
	color: var(--lux-muted) !important;
	border: 0 !important;
	background: none !important;
	width: auto !important;
	height: auto !important;
	display: flex;
	align-items: center
}

.gs-share__i svg {
	width: 15px;
	height: 15px
}

.gs-share__i:hover {
	color: var(--lux-ink) !important
}

/* ── 5. Lower bands common ───────────────────────────────────── */
.gs-descband,
.gs-acc--faq,
.gs-revband,
.gs-related-tabs,
.gs-look {
	width: 100% !important;
	max-width: 1400px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding: 56px 24px !important;
	border-top: 1px solid var(--lux-line)
}

.gs-sec__head {
	font: 800 20px/1.15 var(--opc-font) !important;
	letter-spacing: .5px;
	text-transform: uppercase !important;
	color: var(--lux-ink) !important;
	margin: 0 0 14px !important;
	border: 0 !important;
	padding: 0 !important
}

.gs-faq__head {
	font-size: 40px !important;
	font-weight: 800 !important;
	letter-spacing: -.02em !important;
	text-transform: none !important;
	color: var(--lux-ink) !important;
	margin: 0 0 12px !important;
	border: 0 !important;
	padding: 0 !important
}

.gs-rel-head {
	font: 600 14px/1.2 var(--opc-font) !important;
	letter-spacing: .12em;
	text-transform: uppercase !important;
	color: var(--lux-ink) !important;
	margin: 0 0 16px !important
}

/* ── 6. Descband ─────────────────────────────────────────────── */
@media (min-width:1025px) {
	.gs-descband {
		display: grid !important;
		grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) !important;
		gap: 48px;
		align-items: start
	}
}

.gs-desc-head {
	font-size: 12px !important;
	letter-spacing: .18em !important;
	margin: 0 0 12px !important;
	color: var(--lux-ink) !important;
	text-transform: uppercase;
	font-weight: 700
}

.gs-desc-sub {
	font-size: 14px !important;
	color: var(--lux-muted) !important;
	margin: 0 0 18px !important
}

.gs-desc-lead,
.gs-desc-lead p {
	font-size: 18px !important;
	line-height: 1.6 !important;
	color: var(--lux-ink) !important;
	margin: 0 !important
}

.gs-desc-details {
	font: 700 18px var(--opc-font) !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	color: var(--lux-ink) !important;
	margin: 32px 0 6px !important
}

.gs-spec-table {
	border-top: 1px solid var(--lux-line);
	margin-top: 4px
}

.gs-spec-row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 24px;
	padding: 14px 8px;
	border-bottom: 1px solid var(--lux-line)
}

.gs-spec-row span {
	color: var(--lux-muted);
	font-size: 14px
}

.gs-spec-row strong {
	font-weight: 700;
	color: var(--lux-ink);
	font-size: 14px;
	text-align: right
}

.gs-desc-rest {
	margin-top: 28px !important;
	font-size: 14.5px !important;
	line-height: 1.75 !important;
	color: var(--lux-body) !important
}

.gs-descband__txt ul {
	margin: 0 0 14px;
	padding: 0;
	list-style: none
}

.gs-descband__txt ul li {
	padding: 6px 0 6px 18px;
	position: relative;
	font-size: 13px;
	color: var(--lux-muted)
}

.gs-descband__txt ul li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 15px;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--lux-muted)
}

.gs-descband__txt .gs-ico {
	display: none !important
}

.gs-descband__img {
	margin: 0;
	border-radius: 12px !important;
	overflow: hidden
}

.gs-descband__img img {
	width: 100%;
	height: 100%;
	min-height: 420px;
	max-height: 88vh;
	object-fit: cover;
	display: block
}

/* ── 7. FAQ ──────────────────────────────────────────────────── */
.gs-acc--faq {
	background: none !important;
	border: 0 !important;
	border-radius: 0 !important
}

.gs-acc--faq .gs-acc__item {
	border-bottom: 1px solid var(--lux-line) !important
}

.gs-acc--faq .gs-acc__item:first-of-type {
	border-top: 2px solid var(--lux-ink) !important
}

.gs-acc--faq .gs-acc__btn {
	padding: 14px 0 !important;
	text-transform: none !important;
	letter-spacing: 0 !important
}

.gs-acc--faq .gs-acc__btn>span:first-child {
	font-size: 20px !important;
	font-weight: 700 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	color: var(--lux-ink) !important
}

.gs-acc--faq .gs-acc__ico {
	font-size: 22px !important;
	font-weight: 300 !important;
	color: var(--lux-ink) !important
}

.gs-acc--faq .gs-acc__pane {
	padding: 0 0 14px !important
}

.gs-acc--faq .gs-acc__pane,
.gs-acc--faq .gs-acc__pane p {
	font-size: 17px !important;
	line-height: 1.65 !important;
	color: var(--lux-muted) !important
}

/* ── 8. Reviews ──────────────────────────────────────────────── */
.gs-revband {
	background: none !important;
	border: 0 !important
}

@media (min-width:1025px) {

	.opc-pdp .e-con:has(.gs-revband):has(.gs-review-form),
	.opc-pdp .e-con-inner:has(.gs-revband):has(.gs-review-form) {
		display: grid !important;
		grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) !important;
		gap: 24px !important;
		align-items: start !important
	}

	.opc-pdp :is(.e-con, .e-con-inner):has(.gs-revband):has(.gs-review-form)>.elementor-element:has(.gs-revband) {
		grid-column: 1
	}

	.opc-pdp :is(.e-con, .e-con-inner):has(.gs-revband):has(.gs-review-form)>.elementor-element:has(.gs-review-form) {
		grid-column: 2
	}

	.opc-pdp :is(.e-con, .e-con-inner):has(.gs-revband):has(.gs-review-form)>.elementor-element:has(.gs-descband),
	.opc-pdp :is(.e-con, .e-con-inner):has(.gs-revband):has(.gs-review-form)>.elementor-element:has(.gs-acc--faq) {
		grid-column: 1/-1
	}
}

@media (min-width:1025px) {

	.opx-pdp-lower,
	.opx-pdp-lower>.e-con-inner {
		display: grid !important;
		grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) !important;
		gap: 24px !important;
		align-items: start !important;
	}

	.opx-pdp-lower>.e-con-inner>.elementor-element:has(.gs-descband),
	.opx-pdp-lower>.elementor-element:has(.gs-descband),
	.opx-pdp-lower>.e-con-inner>.elementor-element:has(.gs-acc--faq),
	.opx-pdp-lower>.elementor-element:has(.gs-acc--faq) {
		grid-column: 1/-1
	}

	.opx-pdp-lower>.e-con-inner>.elementor-element:has(.gs-revband),
	.opx-pdp-lower>.elementor-element:has(.gs-revband) {
		grid-column: 1
	}

	.opx-pdp-lower>.e-con-inner>.elementor-element:has(.gs-review-form),
	.opx-pdp-lower>.elementor-element:has(.gs-review-form) {
		grid-column: 2
	}

	.opx-pdp-lower .gs-review-form {
		position: sticky;
		top: 110px;
		max-width: 100% !important
	}

	.opx-pdp-lower .gs-revband {
		max-width: 100% !important
	}
}

.gs-rating {
	border: 1px solid var(--lux-line) !important;
	border-radius: 8px !important;
	padding: 28px !important;
	max-width: 100% !important;
	margin-bottom: 24px;
	background: #fff
}

.gs-rating__top {
	display: flex;
	align-items: center;
	gap: 12px
}

.gs-rating__score {
	font-size: 44px !important;
	font-weight: 500 !important;
	color: var(--lux-ink)
}

.gs-rating__stars,
.gs-review__stars {
	letter-spacing: 2px;
	font-size: 14px
}

.gs-rating__stars .on,
.gs-review__stars .on {
	color: var(--lux-ink) !important
}

.gs-rating__stars .off,
.gs-review__stars .off {
	color: var(--lux-line)
}

.gs-rating__total {
	font-size: 12px;
	color: var(--lux-muted);
	margin: 6px 0 14px
}

.gs-bar {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 6px 0;
	font-size: 11px
}

.gs-bar>span:first-child {
	min-width: 26px
}

.gs-bar__track {
	flex: 1;
	height: 2px !important;
	background: var(--lux-line);
	border-radius: 2px;
	position: relative
}

.gs-bar__track i {
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	background: var(--lux-ink);
	border-radius: 2px
}

.gs-bar.gs-bar--zero {
	display: none !important
}

.gs-scales {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 28px;
	margin-top: 16px
}

.gs-scale__label {
	font: 700 12px var(--opc-font);
	display: block;
	margin-bottom: 8px;
	text-transform: uppercase;
	letter-spacing: .08em
}

.gs-fit {
	position: relative;
	padding: 24px 0 8px;
	font-size: 11px;
	color: var(--lux-muted);
	display: flex;
	justify-content: space-between
}

.gs-fit__track {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 2px;
	background: var(--lux-line)
}

.gs-fit__track i {
	position: absolute;
	top: -4px;
	width: 10px;
	height: 10px;
	background: var(--lux-ink);
	border-radius: 50%;
	transform: translateX(-50%)
}

.gs-rev-tools {
	display: flex;
	gap: 8px;
	align-items: center;
	border: 1px solid var(--lux-line);
	border-radius: 10px;
	padding: 8px;
	background: #fff;
	margin: 12px 0 6px;
	flex-wrap: wrap
}

.gs-rev-lite .gs-rev-tools {
	display: none !important
}

.gs-rev-search {
	flex: 1;
	min-width: 140px;
	border: 0 !important;
	background: none !important;
	padding: 8px !important;
	font: 400 13px var(--opc-font)
}

.gs-rev-sort select,
.gs-chip {
	border: 1px solid var(--lux-line);
	border-radius: 8px;
	padding: 8px 12px;
	font: 600 12px var(--opc-font);
	background: #fff;
	cursor: pointer;
	color: var(--lux-muted)
}

.gs-chip.on {
	border-color: var(--lux-ink);
	color: var(--lux-ink)
}

.gs-rev-count {
	font-size: 12px;
	color: var(--lux-muted);
	margin: 6px 0 16px
}

.gs-reviews-empty {
	font-size: 13px;
	color: var(--lux-muted)
}

.gs-review-cta {
	display: inline-block;
	margin-top: 12px;
	border: 1px solid var(--lux-ink);
	border-radius: 999px;
	padding: 12px 24px;
	font: 700 11px var(--opc-font);
	text-transform: uppercase;
	letter-spacing: 1px;
	color: var(--lux-ink)
}

.gs-review {
	padding: 22px 0;
	border-bottom: 1px solid var(--lux-line)
}

.gs-review.gs-hide,
.gs-review.gs-xhide {
	display: none !important
}

.gs-review__head {
	display: flex;
	gap: 10px;
	align-items: baseline;
	font-size: 13px;
	flex-wrap: wrap
}

.gs-review__head strong {
	font: 700 14px var(--opc-font);
	color: var(--lux-ink)
}

.gs-review__head time {
	margin-left: auto;
	color: var(--lux-muted);
	font-size: 11px
}

.gs-verified {
	background: var(--opc-ok-bg);
	color: var(--opc-ok);
	padding: 3px 8px;
	border-radius: 999px;
	font: 600 10px var(--opc-font)
}

.gs-review__product {
	font-size: 11px;
	color: var(--lux-muted)
}

.gs-review__title {
	font: 700 14px var(--opc-font);
	margin: 6px 0 2px;
	color: var(--lux-ink)
}

.gs-fit-chip {
	display: inline-block;
	background: var(--lux-cream) !important;
	color: var(--lux-ink) !important;
	border-radius: 999px;
	padding: 4px 10px;
	font: 600 11px var(--opc-font);
	margin: 6px 0
}

.gs-fit-chip::before {
	content: '';
	display: inline-block;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--lux-ink);
	margin-right: 6px;
	vertical-align: 1px
}

.gs-review__text {
	font-size: 13px
}

.gs-review__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	list-style: none;
	padding: 0;
	margin: 8px 0 0;
	font-size: 11px;
	color: var(--lux-muted)
}

.gs-help-row {
	display: flex;
	gap: 8px;
	margin-top: 16px
}

.gs-vote {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	border: 1px solid var(--lux-line);
	border-radius: 999px;
	padding: 6px 12px;
	background: #fff;
	color: var(--lux-muted);
	font: 600 11px var(--opc-font);
	cursor: pointer
}

.gs-vote svg {
	width: 13px;
	height: 13px
}

.gs-vote.voted {
	border-color: var(--lux-ink);
	color: var(--lux-ink)
}

.gs-brand-reply {
	margin: 12px 0 0 24px;
	padding: 12px 14px;
	background: var(--lux-cream);
	border-radius: 10px;
	font-size: 13px
}

.gs-brand-reply strong {
	font: 700 12px var(--opc-font);
	letter-spacing: .4px;
	text-transform: uppercase
}

.gs-brand-reply time {
	font-size: 11px;
	color: var(--lux-muted);
	margin-left: 8px
}

.gs-rev-more {
	display: block;
	margin: 18px auto 0;
	background: var(--lux-ink);
	color: #fff;
	border: 0;
	border-radius: 999px;
	padding: 14px 32px;
	font: 700 12px var(--opc-font);
	text-transform: uppercase;
	letter-spacing: 1px;
	cursor: pointer
}

/* review form */
.gs-review-form {
	background: #fff;
	border: 1px solid var(--lux-line);
	border-radius: 8px;
	padding: 28px !important
}

@media (min-width:1025px) {
	.gs-review-form {
		position: sticky;
		top: 110px
	}
}

.gs-review-form h3 {
	font: 700 13px/1 var(--opc-font) !important;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--lux-ink);
	margin: 0 0 20px
}

#opc-rf label {
	display: block;
	margin: 0 0 16px;
	font: 600 11px var(--opc-font);
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--lux-muted)
}

#opc-rf input,
#opc-rf select,
#opc-rf textarea {
	display: block;
	width: 100% !important;
	height: 48px;
	border: 1px solid var(--lux-line);
	border-radius: 4px;
	background: #fff;
	padding: 0 14px;
	font: 400 14px var(--opc-font);
	color: var(--lux-ink);
	margin-top: 6px
}

#opc-rf textarea {
	height: auto;
	min-height: 120px;
	padding: 12px 14px;
	resize: vertical
}

#opc-rf :is(input, select, textarea):focus {
	border-color: var(--lux-ink);
	outline: none;
	box-shadow: 0 0 0 1px var(--lux-ink)
}

#opc-rf select[name="rating"] {
	position: absolute;
	left: -9999px;
	top: auto;
	width: 1px;
	height: 1px;
	overflow: hidden
}

.opc-star-pick {
	display: flex;
	gap: 8px;
	margin: 8px 0 16px
}

.opc-star-pick button {
	font-size: 28px;
	line-height: 1;
	color: var(--lux-line);
	background: none;
	border: 0;
	cursor: pointer;
	padding: 0;
	transition: transform .12s ease, color .12s ease
}

.opc-star-pick button.on,
.opc-star-pick button:hover {
	color: var(--lux-accent);
	transform: scale(1.1)
}

.gs-rf-count {
	font: 400 11px var(--opc-font);
	color: var(--lux-muted);
	text-align: right;
	margin: 6px 0 12px
}

.gs-rf-row {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 14px !important;
	margin: 0 0 16px
}

@media (max-width:520px) {
	.gs-rf-row {
		grid-template-columns: 1fr
	}
}

.gs-rf-submit {
	display: block;
	width: 100%;
	height: 52px;
	border: 0;
	border-radius: 999px;
	background: var(--lux-ink);
	color: #fff;
	font: 700 12px var(--opc-font);
	letter-spacing: .14em;
	text-transform: uppercase;
	cursor: pointer
}

.gs-rf-submit:hover {
	background: var(--lux-ink)
}

.gs-rf-msg {
	margin-top: 12px;
	font-size: 13px;
	text-align: center
}

/* ── 9. Rails ────────────────────────────────────────────────── */
.gs-look__head {
	display: flex;
	align-items: baseline;
	gap: 12px;
	justify-content: space-between;
	margin-bottom: 16px
}

.gs-look__head h3 {
	font-size: 12px !important;
	letter-spacing: .18em !important;
	font-weight: 700 !important;
	text-transform: uppercase;
	margin: 0 !important;
	color: var(--lux-ink)
}

.gs-look__head span {
	font-size: 12px;
	color: var(--lux-muted)
}

.gs-look__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)) !important;
	gap: 16px !important
}

.gs-look__grid--swipe {
	display: flex;
	overflow-x: auto;
	gap: 12px
}

.gs-look__grid--swipe .gs-look__card {
	flex: 0 0 200px
}

@media (max-width:1024px) {
	.gs-look__grid {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 12px !important
	}
}

.gs-look__card {
	display: block;
	text-decoration: none;
	color: inherit;
	position: relative
}

.gs-look__card img {
	width: 100%;
	aspect-ratio: 1/1;
	object-fit: cover;
	border-radius: 4px;
	transition: transform .8s cubic-bezier(.2, .6, .2, 1)
}

.gs-look__card:hover img {
	transform: scale(1.04)
}

.gs-look__noimg {
	display: block;
	aspect-ratio: 1/1;
	background: var(--lux-cream)
}

.gs-look__plus {
	position: absolute;
	top: 8px;
	right: 8px;
	width: 26px;
	height: 26px;
	background: #fff;
	border: 1px solid var(--lux-line);
	border-radius: 4px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 14px;
	font-weight: 300
}

.gs-look__name {
	display: block;
	font-size: 14px !important;
	font-weight: 500 !important;
	margin-top: 8px;
	color: var(--lux-ink)
}

.gs-look__price {
	display: block;
	font-size: 13px !important;
	color: var(--lux-muted) !important;
	margin-top: 4px
}

.gs-rel-nav {
	display: flex;
	gap: 24px;
	border-bottom: 1px solid var(--lux-line);
	margin: 0 0 24px;
	overflow-x: auto
}

.gs-rel-nav button {
	border: 0;
	background: none;
	padding: 12px 2px;
	font: 600 13px var(--opc-font);
	color: var(--lux-muted);
	border-bottom: 2px solid transparent;
	cursor: pointer;
	white-space: nowrap;
	text-transform: uppercase;
	letter-spacing: .06em
}

.gs-rel-nav button.on {
	color: var(--lux-ink);
	border-bottom-color: var(--lux-ink)
}

.gs-relpane {
	display: none
}

.gs-relpane.on {
	display: block
}

.gs-rail {
	display: block;
	border: 1px solid var(--lux-line);
	border-radius: 12px;
	padding: 16px;
	background: #fff;
	margin: 16px 0;
	text-decoration: none
}

.gs-rail__head {
	display: flex;
	align-items: baseline;
	gap: 8px
}

.gs-rail__head h3 {
	font: 800 14px var(--opc-font);
	text-transform: uppercase;
	margin: 0
}

.gs-rail__head span {
	font-size: 11px;
	color: var(--lux-muted)
}

.gs-rail__chev {
	margin-left: auto;
	font-size: 18px;
	color: var(--lux-ink)
}

.gs-rail__row {
	display: flex;
	gap: 8px;
	margin-top: 12px
}

.gs-rail__row img,
.gs-rail__row .gs-look__noimg {
	width: 72px;
	height: 90px;
	object-fit: cover;
	border-radius: 6px
}

.gs-rail__more {
	flex: 0 0 72px;
	height: 90px;
	background: var(--lux-cream);
	border-radius: 6px;
	display: flex;
	align-items: center;
	justify-content: center;
	font: 700 14px var(--opc-font)
}

/* size guide */
.gs-sizeguide {
	max-width: 600px;
	margin: 0 auto;
	padding: 8px 4px 0
}

.gs-units {
	display: inline-flex;
	background: var(--lux-line);
	border-radius: 999px;
	margin: 0 auto 30px
}

.gs-units button {
	border: 0;
	background: none;
	padding: 11px 30px;
	border-radius: 999px;
	font: 700 12px var(--opc-font);
	letter-spacing: .08em;
	cursor: pointer;
	color: var(--lux-ink);
	text-transform: uppercase
}

.gs-units button.on {
	background: var(--lux-ink);
	color: #fff
}

.gs-size-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
	text-align: center
}

.gs-size-table th {
	font: 700 10px/1.2 var(--opc-font);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--lux-muted);
	padding: 0 10px 14px;
	border-bottom: 2px solid var(--lux-ink);
	text-align: center
}

.gs-size-table th:first-child {
	text-align: left
}

.gs-size-table td {
	padding: 17px 10px;
	border-bottom: 1px solid var(--lux-line);
	text-align: center;
	font-size: 14px;
	color: var(--lux-body);
	font-variant-numeric: tabular-nums
}

.gs-size-table td:first-child {
	text-align: left;
	font-weight: 700;
	color: var(--lux-ink)
}

.gs-size-table tbody tr {
	transition: background .15s ease
}

.gs-size-table tbody tr:hover td {
	background: var(--lux-cream)
}

.gs-size-table tbody tr.gs-row-active td {
	background: var(--lux-cream)
}

.gs-size-table tbody tr.gs-row-active td:first-child {
	color: var(--lux-accent)
}

.gs-sizeguide .u.in {
	display: none
}

.gs-sizeguide.show-in .u.in {
	display: inline
}

.gs-sizeguide.show-in .u.cm {
	display: none
}

.gs-size-tips {
	margin-top: 34px;
	display: flex;
	flex-direction: column;
	gap: 18px;
	text-align: left
}

.gs-size-tips>div {
	display: flex;
	gap: 14px;
	align-items: flex-start
}

.gs-size-tips svg {
	width: 20px;
	height: 20px;
	flex: 0 0 auto;
	color: var(--lux-ink);
	margin-top: 2px
}

.gs-size-tips strong {
	display: block;
	font: 700 12px var(--opc-font);
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--lux-ink);
	margin-bottom: 4px
}

.gs-size-tips span {
	font-size: 13px;
	line-height: 1.6;
	color: var(--lux-muted)
}

/* ── 10. Mobile bar & toast ──────────────────────────────────── */
#opc-mobile-bar {
	display: none;
	gap: 8px;
	align-items: stretch;
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 99999;
	padding: 8px 12px calc(8px + env(safe-area-inset-bottom));
	background: #fff;
	border-top: 1px solid var(--lux-line);
	box-shadow: 0 -4px 16px rgba(0, 0, 0, .06)
}

@media (max-width:1024px) {
	#opc-mobile-bar {
		display: flex !important
	}
}

#opc-mobile-bar.atc-hidden .opc-bar-atc,
#opc-mobile-bar.atc-hidden .opc-bar-qty {
	display: none
}

#opc-mobile-bar.atc-hidden {
	justify-content: space-between
}

#opc-mobile-bar .opc-bar-qty {
	display: flex;
	align-items: center;
	border: 1px solid var(--lux-line);
	border-radius: 10px;
	height: 48px;
	flex: 0 0 auto;
	align-self: center
}

#opc-mobile-bar .opc-bar-qty button {
	width: 30px;
	height: 100%;
	background: none;
	border: 0;
	font-size: 16px;
	color: var(--lux-ink);
	cursor: pointer
}

#opc-mobile-bar .opc-bar-qty span {
	min-width: 16px;
	text-align: center;
	font: 600 13px var(--opc-font)
}

#opc-mobile-bar .opc-bar-size {
	flex: 0 0 auto;
	min-width: 64px;
	height: 48px;
	padding: 0 14px;
	border: 1px solid var(--lux-line);
	border-radius: 10px;
	background: #fff;
	font: 700 12px var(--opc-font);
	letter-spacing: .5px;
	text-transform: uppercase;
	color: var(--lux-ink);
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	white-space: nowrap
}

#opc-mobile-bar .opc-bar-size.set {
	border-color: var(--lux-ink)
}

#opc-mobile-bar .opc-bar-atc {
	flex: 1;
	height: 54px;
	background: var(--lux-ink);
	color: #fff;
	border: 0;
	border-radius: 999px;
	font: 700 13px var(--opc-font);
	text-transform: uppercase;
	letter-spacing: 1px;
	cursor: pointer
}

#opc-size-toast {
	position: fixed;
	left: 50%;
	transform: translateX(-50%) translateY(20px);
	bottom: calc(86px + env(safe-area-inset-bottom));
	background: var(--lux-ink);
	color: #fff;
	font: 600 12px var(--opc-font);
	letter-spacing: .4px;
	padding: 12px 20px;
	border-radius: 999px;
	opacity: 0;
	pointer-events: none;
	transition: all .3s;
	z-index: 99999
}

#opc-size-toast.show {
	opacity: 1;
	transform: translateX(-50%) translateY(0)
}

/* ── 11. VFAI + responsive ───────────────────────────────────── */
.vfai-modal-overlay {
	z-index: 999999 !important
}

.vfai-modal {
	border-radius: 12px !important
}

@media (max-width:1024px) {

	.gs-descband,
	.gs-acc--faq,
	.gs-revband,
	.gs-related-tabs,
	.gs-look {
		padding: 32px 16px !important
	}

	.gs-faq__head {
		font-size: 28px !important;
		margin: 0 0 16px !important
	}

	.gs-sec__head {
		font-size: 20px !important;
		margin: 0 0 16px !important
	}

	.gs-acc--faq .gs-acc__btn>span:first-child {
		font-size: 16px !important
	}

	.gs-acc--faq .gs-acc__pane,
	.gs-acc--faq .gs-acc__pane p {
		font-size: 15px !important
	}

	.gs-scales {
		grid-template-columns: 1fr
	}

	.gs-related-tabs .gs-look__grid {
		grid-template-columns: repeat(2, 1fr) !important
	}

	.gs-review-form {
		margin-top: 20px;
		padding: 20px 16px !important
	}

	.gs-review {
		padding: 18px 0
	}
}

@media (prefers-reduced-motion: reduce) {

	.opc-pdp *,
	.opc-pdp *::before,
	.opc-pdp *::after,
	#opc-mobile-bar * {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
}

/* ══ FULL-BLEED SHELL + FINAL PARITY (replaces previous parity pass) ══ */

/* 1) Kill every boxed wrapper around the template so hero + bands go full width */
body.single-product #main-content,
body.single-product main.wd-content-layout,
body.single-product .wd-content-layout,
body.single-product .opx-pdp-template {
	max-width: 100% !important;
	width: 100% !important;
	padding: 0 !important;
	margin: 0 !important;
}

@media (min-width:1025px) {

	/* 2) Hero flush: no top/left gap, no overflow */
	.opx-pdp-hero {
		margin: 0 !important;
		padding: 0 !important;
		max-width: 100% !important;
		width: 100% !important
	}

	.opx-pdp-gallery,
	.opx-pdp-buybox {
		min-width: 0 !important
	}

	/* 3) ATC row: stop the button overflowing the viewport */
	.opc-pdp form.cart .variations_button,
	.opc-pdp .e-atc-qty-button-holder {
		display: grid !important;
		grid-template-columns: auto minmax(0, 1fr) !important;
		gap: 10px !important;
		align-items: stretch !important;
		max-width: 100% !important;
		margin: 0 0 16px !important;
	}

	.single_add_to_cart_button {
		grid-column: 2 !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		height: 44px !important
	}

	/* 4) Compact size chips like the target */
	.gs-swatch,
	.wd-swatch {
		min-width: 52px !important;
		height: 40px !important;
		padding: 0 16px !important;
		font-size: 13px !important;
		border-radius: 4px !important
	}

	.gs-size-head-label {
		font-size: 11px !important;
		font-weight: 700 !important;
		letter-spacing: .14em !important;
		text-transform: uppercase !important
	}

	/* 6) Lower bands full width with 48px gutters */
	.opx-pdp-lower,
	.opx-pdp-band2,
	.opx-pdp-band3 {
		--content-width: 100% !important;
		max-width: 100% !important;
		width: 100% !important;
	}

	.opx-pdp-lower>.e-con-inner,
	.opx-pdp-band2>.e-con-inner,
	.opx-pdp-band3>.e-con-inner {
		max-width: 100% !important;
		width: 100% !important;
		padding: 0 48px !important;
		margin: 0 !important;
	}

	.gs-descband {
		max-width: none !important;
		width: 100% !important;
		padding: 56px 0 !important
	}

	.gs-descband__img {
		margin: 0 !important
	}

	.gs-descband__img img {
		width: 100% !important;
		height: 100%;
		object-fit: cover;
		border-radius: 12px
	}
}

@media (max-width:1024px) {

	.opx-pdp-lower>.e-con-inner,
	.opx-pdp-band2>.e-con-inner,
	.opx-pdp-band3>.e-con-inner {
		padding: 0 16px !important
	}

	.gs-descband {
		padding: 32px 0 !important
	}

	.gs-swatch,
	.wd-swatch {
		min-width: 48px !important;
		height: 38px !important
	}

	.opc-pdp .quantity {
		height: 40px !important
	}
}

/* ── Patch: assurance spacing + description alignment ── */
.gs-assure {
	gap: 20px !important
}

.gs-assure>div {
	margin: 0 !important
}

@media (min-width:1025px) {
	.opx-pdp-lower {
		--content-width: 100% !important;
		max-width: none !important;
		width: 100% !important;
		margin: 0 !important
	}

	.opx-pdp-lower>.e-con-inner {
		--content-width: 100% !important;
		max-width: none !important;
		width: 100% !important;
		margin: 0 !important;
		padding: 0 40px 0 48px !important
	}

	.gs-descband {
		max-width: none !important;
		width: 100% !important;
		padding: 56px 0 !important
	}

	.gs-descband__txt {
		padding-right: 0 !important
	}

	.gs-descband__img {
		margin: 0 0 0 auto !important;
		justify-self: end !important;
		width: 100% !important
	}

	.gs-descband__img img {
		width: 100% !important;
		height: 100% !important;
		min-height: 420px;
		object-fit: cover;
		border-radius: 12px
	}
}

/* ── Patch: Class-based lower-band grid (replaces :has() rules) + scrubber arrows ── */
@media (min-width:1025px) {
	.opx-pdp-lower>.e-con-inner {
		display: grid !important;
		grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) !important;
		gap: 24px !important;
		align-items: start !important;
	}

	.opx-pdp-descwrap,
	.opx-pdp-faqwrap {
		grid-column: 1/-1 !important;
		width: 100% !important;
		max-width: none !important
	}

	.opx-pdp-revwrap {
		grid-column: 1 !important
	}

	.opx-pdp-revformwrap {
		grid-column: 2 !important
	}

	.opx-pdp-revformwrap .gs-review-form {
		position: sticky;
		top: 110px;
		max-width: 100% !important
	}

	.opx-pdp-descwrap .gs-descband {
		max-width: none !important;
		width: 100% !important;
		padding: 56px 0 !important
	}

	.opx-pdp-descwrap .gs-descband__txt {
		padding-right: 0 !important
	}

	.opx-pdp-descwrap .gs-descband__img {
		margin: 0 0 0 auto !important;
		justify-self: end !important;
		width: 100% !important
	}
}

/* ── Scrubber: proper up/down chevron arrows ── */
.gs-scrub button::before {
	width: 16px !important;
	height: 16px !important;
	border: 0 !important;
	transform: none !important;
	margin: 0 !important;
	background: center/contain no-repeat !important;
}

.gs-scrub button[data-dir="-1"]::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m18 15-6-6-6 6'/%3E%3C/svg%3E") !important;
}

.gs-scrub button[data-dir="1"]::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") !important;
}

/* ══ Patch: remove line above You Might Like + reviews/rails polish ══ */
.gs-look,
.gs-related,
.gs-related-tabs {
	border-top: 0 !important
}

.gs-acc--faq {
	padding-bottom: 32px !important
}

.gs-revband {
	padding-top: 24px !important
}

.gs-sec__head {
	margin: 0 0 20px !important
}

.gs-rating {
	border: 1px solid var(--lux-line) !important;
	border-radius: 10px !important;
	background: #fff !important;
	padding: 28px 32px !important;
	margin-bottom: 20px !important
}

.gs-rating__score {
	font-size: 44px !important;
	font-weight: 500 !important;
	color: var(--lux-ink) !important
}

.gs-rating__stars .on,
.gs-review__stars .on {
	color: var(--lux-ink) !important
}

.gs-bar__track {
	height: 2px !important;
	background: var(--lux-line) !important
}

.gs-review {
	padding: 20px 0 !important
}

.gs-review__head {
	align-items: center !important
}

.gs-verified {
	background: var(--opc-ok-bg) !important;
	color: var(--opc-ok) !important;
	border-radius: 999px !important;
	padding: 4px 10px !important;
	font: 600 10px var(--opc-font) !important
}

.gs-fit-chip {
	background: var(--lux-cream) !important;
	border-radius: 999px !important;
	padding: 5px 12px !important;
	font: 600 11px var(--opc-font) !important
}

.gs-vote {
	background: #fff !important;
	border: 1px solid var(--lux-line) !important;
	border-radius: 8px !important;
	padding: 9px 16px !important;
	color: var(--lux-ink) !important;
	font: 600 11px var(--opc-font) !important
}

.gs-vote:hover {
	border-color: var(--lux-ink) !important
}

.gs-review-form {
	border: 1px solid var(--lux-line) !important;
	border-radius: 10px !important;
	background: #fff !important;
	padding: 28px !important
}

.gs-rf-submit {
	background: var(--lux-ink) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: 999px !important;
	height: 52px !important;
	width: 100% !important;
	font: 700 12px var(--opc-font) !important;
	letter-spacing: .14em !important;
	text-transform: uppercase !important;
	opacity: 1 !important;
	cursor: pointer !important
}

.gs-rf-submit:hover {
	background: var(--lux-ink) !important
}

.gs-rel-head {
	margin: 0 0 24px !important;
	font: 700 14px var(--opc-font) !important;
	letter-spacing: .16em !important;
	text-transform: uppercase !important;
	color: var(--lux-ink) !important
}

.gs-look__grid {
	grid-template-columns: repeat(4, 1fr) !important;
	gap: 20px !important
}

.gs-look__card img {
	border-radius: 8px !important;
	aspect-ratio: 1/1 !important;
	object-fit: cover !important
}

.gs-look__name {
	font-size: 13px !important;
	font-weight: 600 !important;
	letter-spacing: .04em !important;
	text-transform: uppercase !important;
	color: var(--lux-ink) !important;
	margin-top: 10px !important
}

.gs-look__price {
	font-size: 12px !important;
	color: var(--lux-muted) !important;
	margin-top: 2px !important
}

.gs-look__price:empty {
	display: none !important
}

@media (max-width:1024px) {
	.gs-look__grid {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 12px !important
	}
}

/* ══ Unified band alignment — one gutter system ══ */
@media (min-width:1025px) {

	.gs-descband,
	.gs-acc--faq,
	.gs-revband {
		max-width: none !important;
		width: 100% !important;
		margin: 0 !important;
		padding: 56px 0 !important;
		border-top: 1px solid var(--lux-line) !important;
	}

	.gs-related-tabs,
	.gs-look,
	.gs-related {
		max-width: none !important;
		width: 100% !important;
		margin: 0 !important;
		padding: 56px 0 !important;
		border-top: 0 !important;
	}

	.opx-pdp-lower>.e-con-inner,
	.opx-pdp-band2>.e-con-inner,
	.opx-pdp-band3>.e-con-inner {
		max-width: 100% !important;
		width: 100% !important;
		padding: 0 48px !important;
		margin: 0 !important;
	}

	.opx-pdp-faqwrap {
		grid-column: 1/-1 !important;
		width: 100% !important;
		max-width: none !important
	}

	.gs-acc--faq {
		background: none !important;
		border-left: 0 !important;
		border-right: 0 !important;
		border-radius: 0 !important
	}
}

@media (max-width:1024px) {

	.gs-descband,
	.gs-acc--faq,
	.gs-revband,
	.gs-related-tabs,
	.gs-look,
	.gs-related {
		padding: 32px 0 !important
	}

	.opx-pdp-lower>.e-con-inner,
	.opx-pdp-band2>.e-con-inner,
	.opx-pdp-band3>.e-con-inner {
		padding: 0 16px !important
	}
}

/* WoodMart's default side cart is replaced by the OPX drawer on product pages */
body.single-product [class*="side-cart"],
body.single-product .wd-cart-side,
body.single-product .wh-side-cart {
	display: none !important
}

/* ── Mobile fixes ── */
@media (max-width:1024px) {
	#opc-mobile-bar.atc-hidden {
		display: none !important
	}

	#opc-mobile-bar {
		gap: 10px !important
	}

	#opc-mobile-bar .opc-bar-atc {
		flex: 1 1 auto !important
	}

	.opx-drawer__panel {
		width: 100% !important;
		max-width: 100% !important
	}

	.gs-size-head-label {
		font-size: 11px !important;
		font-weight: 700 !important;
		letter-spacing: .14em !important;
		text-transform: uppercase !important
	}

	.gs-size-head-guide {
		text-transform: uppercase !important;
		letter-spacing: .08em !important
	}

	.gs-try-on {
		width: 100% !important
	}

	.gs-assure {
		gap: 16px !important
	}

	.gs-swatch,
	.wd-swatch {
		min-width: 52px !important;
		height: 44px !important
	}
}

body.single-product .cart-widget-side {
	display: none !important
}

#opc-mobile-bar .opc-bar-qty {
	display: flex !important;
	align-items: center !important;
	border: 1px solid var(--lux-line) !important;
	border-radius: 8px !important;
	height: 48px !important;
	background: #fff !important;
	overflow: hidden !important;
}

#opc-mobile-bar .opc-bar-qty button {
	width: 36px !important;
	height: 100% !important;
	background: none !important;
	border: 0 !important;
	font-size: 18px !important;
	color: var(--lux-ink) !important;
	cursor: pointer !important;
	padding: 0 !important;
}

#opc-mobile-bar .opc-bar-qty span {
	min-width: 24px !important;
	text-align: center !important;
	font: 600 14px var(--opc-font) !important;
	padding: 0 8px !important;
}

/* ── Teal accent hover ── */
.gs-icobtn:hover {
	color: var(--lux-accent) !important
}

.gs-lm-toggle:hover {
	color: var(--lux-accent) !important
}

.gs-size-head-guide:hover {
	color: var(--lux-accent) !important
}

.gs-rowlink:hover {
	color: var(--lux-accent) !important
}

.gs-share__i:hover {
	color: var(--lux-accent) !important
}

.gs-try-on:hover {
	background: var(--lux-accent) !important;
	border-color: var(--lux-accent) !important;
	color: #fff !important
}

.gs-acc__btn:hover {
	color: var(--lux-accent) !important
}

.gs-rf-submit:hover {
	background: var(--lux-accent) !important
}

.gs-rev-more:hover {
	background: var(--lux-accent) !important
}

.gs-look__card:hover .gs-look__name {
	color: var(--lux-accent) !important
}

.gs-rating__stars .on,
.gs-review__stars .on {
	color: var(--lux-accent) !important
}

.opc-star-pick button.on,
.opc-star-pick button:hover {
	color: var(--lux-accent) !important
}

/* ── Prices black (regular AND sale) ── */
.opc-pdp .price,
.opc-pdp .price .amount,
.opc-pdp .price bdi,
.opc-pdp .price .woocommerce-Price-currencySymbol {
	color: var(--lux-ink) !important
}

.opc-pdp .price del .amount,
.opc-pdp .price del bdi,
.opc-pdp .price del .woocommerce-Price-currencySymbol {
	color: var(--lux-muted) !important
}

/* ── Qty + ATC: pixel-perfect alignment (final, keep last) ── */
.opc-pdp form.cart .variations_button,
.opc-pdp form.cart .woocommerce-variation-add-to-cart,
.opc-pdp .e-atc-qty-button-holder {
	display: grid !important;
	grid-template-columns: auto 1fr !important;
	gap: 10px !important;
	align-items: stretch !important;
	margin: 0 0 12px !important;
}

.opc-pdp form.cart .variations_button .quantity,
.opc-pdp .e-atc-qty-button-holder .quantity {
	grid-column: 1 !important;
	height: 48px !important;
	max-height: 48px !important;
	display: inline-flex !important;
	align-items: stretch !important;
	border: 1px solid var(--lux-line) !important;
	border-radius: 6px !important;
	overflow: hidden !important;
	margin: 0 !important;
	padding: 0 !important;
	box-sizing: border-box !important;
}

.opc-pdp form.cart .variations_button .quantity .minus,
.opc-pdp form.cart .variations_button .quantity .plus {
	width: 44px !important;
	height: 100% !important;
	border: 0 !important;
	background: #fff !important;
}

.opc-pdp form.cart .variations_button .quantity .qty,
.opc-pdp form.cart .variations_button .quantity input[type="number"] {
	width: 52px !important;
	height: 100% !important;
	border: 0 !important;
}

.opc-pdp form.cart .variations_button .single_add_to_cart_button,
.opc-pdp .e-atc-qty-button-holder .single_add_to_cart_button {
	grid-column: 2 !important;
	margin: 0 !important;
}

/* ── Gallery video tile ── */
.gs-gallery__item video,
.gs-gallery__video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block
}

.gs-play {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .92);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 2;
	pointer-events: none;
	transition: opacity .2s
}

.gs-play span {
	font-size: 14px;
	color: var(--lux-ink);
	margin-left: 3px
}

.gs-gallery__item.playing .gs-play {
	opacity: 0
}

.gs-video-toggle {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	background: transparent;
	border: 0;
	cursor: pointer;
	z-index: 3
}

.gs-video-toggle:focus-visible {
	outline: 2px solid var(--lux-ink);
	outline-offset: -2px
}

.gs-video-link {
	position: absolute;
	inset: 0;
	z-index: 3
}

/* ════════════════════════════════════════════════════════════
   BRAND LOCK — black primary buttons, green hover & micro-accents
   ════════════════════════════════════════════════════════════ */

/* 1) Primary Add-to-Cart: BLACK, green on hover */
.single_add_to_cart_button,
.single_add_to_cart_button.disabled,
.single_add_to_cart_button:disabled {
	background: var(--lux-ink) !important;
	color: #fff !important;
}

.single_add_to_cart_button:hover:not(:disabled) {
	background: var(--lux-accent) !important;
}

/* 2) Mobile bar ATC: BLACK, green on hover */
#opc-mobile-bar .opc-bar-atc {
	background: var(--lux-ink) !important;
}

#opc-mobile-bar .opc-bar-atc:hover {
	background: var(--lux-accent) !important;
}

/* 3) Secondary buttons stay BLACK, green hover (already wired) */
.gs-rf-submit,
.gs-rev-more {
	background: var(--lux-ink) !important;
}

/* 4) Try-On: black outline, fills GREEN on hover */
.gs-try-on {
	border-color: var(--lux-ink) !important;
	color: var(--lux-ink) !important;
}

/* 5) Subtle green micro-accents */
.gs-crumbs a:hover {
	color: var(--lux-accent) !important;
}

.opc-pdp .stock.in-stock,
.opc-pdp .woocommerce-variation-availability .in-stock {
	color: var(--lux-accent) !important;
}

/* Green keyboard focus ring (subtle + consistent) */
.opc-pdp a:focus-visible,
.opc-pdp button:focus-visible,
.gs-review-form :focus-visible {
	outline-color: var(--lux-accent);
}

/* 6) Selected size swatch stays BLACK (strong, not subtle) */
.gs-swatch.active,
.wd-swatch.wd-active {
	border-color: var(--lux-ink) !important;
	box-shadow: inset 0 0 0 1px var(--lux-ink) !important;
}