/*
 * CLUB 88 Product Experience — Stitch Editorial preset.
 * All selectors are scoped to the CLUB 88 product canvas.
 */


/* Page-wide palette ownership. Dynamic tokens live on the body so the active
 * variation can color the complete CLUB 88 product page without leaking to
 * other WordPress requests. */
body.club88-product-template-active {
	--club88-page: #fbf9f9;
	--club88-page-text: #1b1c1c;
	--club88-surface-low: #f5f3f3;
	--club88-surface: #efeded;
	--club88-border: #c4c7c7;
	--club88-product-color: #000;
	--club88-product-highlight: #000;
	--club88-product-contrast: #fff;
	--club88-button: #000;
	--club88-button-text: #fff;
	background-color: var(--club88-page);
}

body.club88-palette-scope-canvas #page,
body.club88-palette-scope-canvas .site,
body.club88-palette-scope-canvas .site-content,
body.club88-palette-scope-canvas .content-area,
body.club88-palette-scope-canvas .club88-standalone-main,
body.club88-palette-scope-full-page #page,
body.club88-palette-scope-full-page .site,
body.club88-palette-scope-full-page .site-content,
body.club88-palette-scope-full-page .content-area,
body.club88-palette-scope-full-page .club88-standalone-main {
	background-color: var(--club88-page) !important;
}

body.club88-palette-scope-full-page .site-header,
body.club88-palette-scope-full-page #masthead,
body.club88-palette-scope-full-page header.site-header,
body.club88-palette-scope-full-page .site-footer,
body.club88-palette-scope-full-page #colophon,
body.club88-palette-scope-full-page footer.site-footer {
	background-color: var(--club88-page) !important;
	color: var(--club88-page-text) !important;
}

body.club88-palette-scope-full-page .site-header a,
body.club88-palette-scope-full-page #masthead a,
body.club88-palette-scope-full-page .site-footer a,
body.club88-palette-scope-full-page #colophon a {
	color: inherit;
}


/* Flatsome compatibility bridge. Dynamic palette variables live on the body,
 * and these native wrappers consume them on every accepted variation change. */
body.club88-theme-flatsome.club88-palette-scope-canvas #main,
body.club88-theme-flatsome.club88-palette-scope-canvas .shop-container,
body.club88-theme-flatsome.club88-palette-scope-canvas .product-container,
body.club88-theme-flatsome.club88-palette-scope-canvas .product-main,
body.club88-theme-flatsome.club88-palette-scope-canvas .product-footer,
body.club88-theme-flatsome.club88-palette-scope-canvas .product-footer > .container,
body.club88-theme-flatsome.club88-palette-scope-full-page #main,
body.club88-theme-flatsome.club88-palette-scope-full-page .shop-container,
body.club88-theme-flatsome.club88-palette-scope-full-page .product-container,
body.club88-theme-flatsome.club88-palette-scope-full-page .product-main,
body.club88-theme-flatsome.club88-palette-scope-full-page .product-footer,
body.club88-theme-flatsome.club88-palette-scope-full-page .product-footer > .container {
	background-color: var(--club88-page) !important;
	transition: background-color 80ms linear;
}

body.club88-theme-flatsome.club88-palette-scope-full-page #header,
body.club88-theme-flatsome.club88-palette-scope-full-page .header-wrapper,
body.club88-theme-flatsome.club88-palette-scope-full-page .header-bg-color,
body.club88-theme-flatsome.club88-palette-scope-full-page #footer,
body.club88-theme-flatsome.club88-palette-scope-full-page .footer-wrapper,
body.club88-theme-flatsome.club88-palette-scope-full-page .absolute-footer {
	background-color: var(--club88-page) !important;
	color: var(--club88-page-text) !important;
}

body.club88-theme-flatsome .shop-container > .container,
body.club88-theme-flatsome .shop-container .woocommerce-notices-wrapper {
	background-color: transparent !important;
}

body.club88-product-template-active #wpadminbar {
	background-color: #1d2327 !important;
}

.club88-standalone-main {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	overflow: clip;
}

body.club88-product-template-active .club88-standalone-main .product,
body.club88-product-template-active .club88-standalone-main div.product {
	float: none !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	/* Keep the theme reset from deleting the canvas' reserved bottom space. */
	padding: 0 0 var(--club88-canvas-bottom-space, 42px) !important;
	background: transparent !important;
	box-shadow: none !important;
}

body.club88-product-template-active .club88-product-page .woocommerce-tabs,
body.club88-product-template-active .club88-product-page .wc-tabs-wrapper,
body.club88-product-template-active .club88-product-page .product_meta + .woocommerce-tabs {
	display: none !important;
}

.club88-product-page {
	--club88-surface-high: #e9e8e7;
	--club88-surface-lowest: #fff;
	--club88-text: #1b1c1c;
	--club88-muted: #444748;
	--club88-max-width: 1380px;
	--club88-radius: 12px;
	--club88-radius-sm: 8px;
	--club88-radius-md: 14px;
	--club88-radius-lg: 20px;
	--club88-radius-xl: 28px;
	--club88-border-neutral: rgba(17, 17, 17, .10);
	--club88-border-neutral-strong: rgba(17, 17, 17, .16);
	--club88-card-surface: var(--club88-surface-low);
	--club88-card-surface: color-mix(in srgb, var(--club88-surface-low) 78%, var(--club88-page) 22%);
	--club88-card-surface-soft: var(--club88-surface-low);
	--club88-card-surface-soft: color-mix(in srgb, var(--club88-surface-low) 58%, transparent 42%);
	--club88-rating-gold: #c89b3c;
	--club88-rating-gold-soft: rgba(200, 155, 60, .25);
	--club88-section-gap: clamp(72px, 8vw, 112px);
	--club88-shadow-sm: 0 1px 2px rgba(0, 0, 0, .035), 0 12px 30px rgba(0, 0, 0, .045);
	--club88-shadow-md: 0 18px 54px rgba(0, 0, 0, .075);
	--club88-shadow: var(--club88-shadow-sm);
	--club88-canvas-bottom-space: 42px;
	position: relative;
	isolation: isolate;
	width: 100%;
	max-width: none !important;
	margin: 0;
	padding: 0 0 var(--club88-canvas-bottom-space);
	background: var(--club88-page);
	color: var(--club88-text);
	font: 400 15px/1.65 ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, Helvetica, sans-serif;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

.club88-product-page *,
.club88-product-page *::before,
.club88-product-page *::after { box-sizing: border-box; }
.club88-product-page a { color: inherit; text-decoration: none; }
.club88-product-page img { display: block; max-width: 100%; }
.club88-product-page button,
.club88-product-page input,
.club88-product-page select,
.club88-product-page textarea { font: inherit; }

.club88-product-background {
	position: absolute;
	z-index: -1;
	inset: 0;
	background: var(--club88-page);
}

.club88-shell {
	width: min(calc(100% - 80px), var(--club88-max-width));
	margin-inline: auto;
}

/* Breadcrumbs */
.club88-breadcrumb-row { min-width: 0; }
.club88-breadcrumb-row--desktop { margin: 0 0 18px; }
.club88-breadcrumb-row--mobile { display: none; padding: 18px 0 16px; }
.club88-breadcrumbs,
.club88-breadcrumbs .woocommerce-breadcrumb {
	margin: 0;
	color: var(--club88-muted);
	font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, Helvetica, sans-serif;
	font-size: 11px;
	font-weight: 400;
	line-height: 1.45;
	text-transform: none;
}
.club88-breadcrumbs .woocommerce-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	align-items: center;
}
.club88-breadcrumbs a { transition: color .16s ease; }
.club88-breadcrumbs a:hover { color: var(--club88-product-highlight); }

/* Hero */
.club88-product-hero {
	display: grid;
	grid-template-columns: minmax(0, 58fr) minmax(360px, 42fr);
	gap: 48px;
	align-items: start;
	padding-top: 38px;
	margin-bottom: var(--club88-section-gap);
}
.club88-gallery-column,
.club88-product-summary { min-width: 0; }
.club88-product-summary__inner {
	position: sticky;
	top: 108px;
	padding-top: 12px;
}

/* Product gallery */
.club88-product-gallery {
	position: relative;
	display: grid;
	grid-template-columns: 80px minmax(0, 1fr);
	gap: 16px;
	height: clamp(650px, 59vw, 819px);
	min-height: 650px;
}
.club88-gallery-main {
	position: relative;
	min-width: 0;
	height: 100%;
	overflow: hidden;
	border: 0;
	background: var(--club88-surface-low);
}
.club88-gallery-figure {
	width: 100%;
	height: 100%;
	margin: 0;
}
.club88-gallery-image {
	width: 100%;
	height: 100%;
	object-position: center;
	cursor: zoom-in;
	transition: opacity .18s ease, transform .4s ease;
}
.club88-gallery-fit-contain .club88-gallery-image { object-fit: contain; }
.club88-gallery-fit-cover .club88-gallery-image { object-fit: cover; }
.club88-gallery-main:hover .club88-gallery-image { transform: scale(1.008); }
.club88-gallery-thumbnails {
	order: -1;
	display: flex;
	flex-direction: column;
	gap: 16px;
	overflow-y: auto;
	overflow-x: hidden;
	scrollbar-width: none;
}
.club88-gallery-thumbnails::-webkit-scrollbar { display: none; }
.club88-gallery-thumb {
	flex: 0 0 96px;
	width: 80px;
	height: 96px;
	padding: 0;
	overflow: hidden;
	border: 1px solid transparent;
	border-radius: 0;
	background: var(--club88-surface-low);
	opacity: .48;
	cursor: pointer;
	box-shadow: none;
	transition: opacity .16s ease, border-color .16s ease;
}
.club88-gallery-thumb img { width: 100%; height: 100%; object-fit: cover; }
.club88-gallery-thumb:hover,
.club88-gallery-thumb.is-active { border-color: var(--club88-product-highlight); opacity: 1; }
.club88-gallery-thumb:focus-visible,
.club88-gallery-arrow:focus-visible,
.club88-gallery-zoom:focus-visible {
	outline: 2px solid var(--club88-product-highlight);
	outline-offset: 2px;
}
.club88-gallery-sale-badge {
	position: absolute;
	z-index: 5;
	top: 16px;
	inset-inline-start: 112px;
	min-height: 25px;
	padding: 7px 10px;
	border-radius: 2px;
	background: var(--club88-product-highlight);
	color: var(--club88-product-contrast);
	font: 800 10px/1 "Hanken Grotesk", Arial, sans-serif;
	letter-spacing: .12em;
	text-transform: uppercase;
}
.club88-gallery-arrow {
	position: absolute;
	z-index: 4;
	top: 50%;
	width: 42px;
	height: 42px;
	margin-top: -21px;
	padding: 0;
	display: grid;
	place-items: center;
	border: 1px solid var(--club88-border);
	border-radius: 50%;
	background: rgba(255,255,255,.9);
	color: var(--club88-text);
	cursor: pointer;
	opacity: 0;
	box-shadow: none;
	transition: opacity .18s ease, border-color .18s ease;
}
.club88-gallery-main:hover .club88-gallery-arrow,
.club88-gallery-arrow:focus-visible { opacity: 1; }
.club88-gallery-prev { inset-inline-start: 16px; }
.club88-gallery-next { inset-inline-end: 16px; }
.club88-gallery-arrow span { font-size: 30px; line-height: 1; transform: translateY(-1px); }
.club88-gallery-zoom {
	position: absolute;
	z-index: 4;
	top: 16px;
	inset-inline-end: 16px;
	width: 38px;
	height: 38px;
	padding: 0;
	display: grid;
	place-items: center;
	border: 1px solid var(--club88-border);
	border-radius: 50%;
	background: rgba(255,255,255,.9);
	color: var(--club88-text);
	cursor: pointer;
	box-shadow: none;
}
.club88-gallery-zoom svg { width: 17px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.club88-gallery-counter {
	position: absolute;
	z-index: 3;
	inset-inline-start: 16px;
	bottom: 14px;
	padding: 4px 7px;
	background: rgba(255,255,255,.82);
	font: 700 9px/1.2 "Hanken Grotesk", Arial, sans-serif;
	letter-spacing: .08em;
}
.club88-gallery-dots { display: none; }

/* Product summary */
.club88-collection-line {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 12px;
	color: var(--club88-muted);
	font: 700 10px/1 "Hanken Grotesk", Arial, sans-serif;
	letter-spacing: .12em;
	text-transform: uppercase;
}
.club88-collection-line i { width: 18px; height: 1px; background: var(--club88-product-highlight); }
.club88-badge {
	display: inline-flex;
	align-items: center;
	min-height: 24px;
	margin-bottom: 15px;
	padding: 0 9px;
	border: 1px solid var(--club88-product-highlight);
	border-radius: 2px;
	background: var(--club88-product-highlight);
	color: var(--club88-product-contrast);
	font: 800 9px/1 "Hanken Grotesk", Arial, sans-serif;
	letter-spacing: .11em;
	text-transform: uppercase;
}
.club88-badge--outline { background: transparent; color: var(--club88-product-highlight); }
.club88-badge--soft { border-color: var(--club88-border); background: var(--club88-surface); color: var(--club88-text); }
.club88-product-title {
	max-width: 650px;
	margin: 0 0 10px;
	color: var(--club88-text);
	font: 700 clamp(36px, 3.05vw, 48px)/1.04 "Hanken Grotesk", Arial, sans-serif;
	letter-spacing: -.035em;
	text-wrap: balance;
	text-transform: uppercase;
}
.club88-rating-row {
	min-height: 20px;
	margin-bottom: 16px;
	display: flex;
	align-items: center;
	gap: 7px;
	color: var(--club88-muted);
	font-size: 11px;
}
.club88-rating-row .star-rating,
.club88-review-card__stars .star-rating,
.club88-review-score .star-rating { float: none; margin: 0; color: var(--club88-product-highlight); }
.club88-rating-row a { border-bottom: 1px solid currentColor; }
.club88-rating-number { color: var(--club88-text); font-weight: 600; }
.club88-new-drop-label {
	color: var(--club88-product-highlight);
	font: 800 10px/1 "Hanken Grotesk", Arial, sans-serif;
	letter-spacing: .1em;
}
.club88-price {
	margin-bottom: 16px;
	color: var(--club88-text);
	font: 700 24px/1.2 "Hanken Grotesk", Arial, sans-serif;
	letter-spacing: -.015em;
}
.club88-price del { margin-inline-end: 8px; color: var(--club88-muted); font-weight: 400; opacity: .62; }
.club88-price ins { text-decoration: none; }
.club88-short-description {
	max-width: 560px;
	margin-bottom: 28px;
	color: var(--club88-muted);
	font-size: 14px;
	line-height: 1.65;
}
.club88-short-description p { margin: 0 0 10px; }

/* Native WooCommerce variations enhanced with CLUB 88 controls */
.club88-purchase-area form.cart { display: block !important; margin: 0 !important; }
.club88-purchase-area form.cart::before,
.club88-purchase-area form.cart::after { display: none !important; }
.club88-product-page table.variations {
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
	height: auto !important;
	width: 100%;
	margin: 0 0 24px !important;
	border: 0 !important;
	border-collapse: collapse;
}
.club88-product-page table.variations tbody,
.club88-product-page table.variations tr,
.club88-product-page table.variations th,
.club88-product-page table.variations td {
	display: block !important;
	width: 100%;
	padding: 0;
	border: 0;
	background: transparent;
}
.club88-product-page table.variations tr + tr { margin-top: 24px; }
.club88-product-page table.variations th.label { display: none; }
.club88-native-variation-select select {
	width: 100%;
	min-height: 48px;
	padding: 0 42px 0 14px;
	border: 1px solid var(--club88-border);
	border-radius: var(--club88-radius);
	background: var(--club88-surface-lowest);
	color: var(--club88-text);
}
.club88-enhanced-ready .club88-native-variation-select {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	overflow: hidden !important;
	clip: rect(0,0,0,0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}
.club88-enhanced-options { margin: 0; }
.club88-option-heading {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 12px;
}
.club88-option-heading span {
	font: 800 10px/1 "Hanken Grotesk", Arial, sans-serif;
	letter-spacing: .1em;
	text-transform: uppercase;
}
.club88-option-heading strong { color: var(--club88-muted); font-size: 11px; font-weight: 400; }
.club88-option-buttons { display: flex; flex-wrap: wrap; gap: 8px; }
.club88-option-button {
	min-width: 48px;
	min-height: 40px;
	padding: 0 14px;
	border: 1px solid var(--club88-border);
	border-radius: 0;
	background: var(--club88-surface-lowest);
	color: var(--club88-text);
	font: 700 10px/1 "Hanken Grotesk", Arial, sans-serif;
	letter-spacing: .06em;
	cursor: pointer;
	box-shadow: none;
	transition: border-color .16s ease, background-color .16s ease, color .16s ease, opacity .16s ease;
}
.club88-label-option:hover,
.club88-label-option.is-selected { border-color: var(--club88-product-highlight); }
.club88-label-option.is-selected { background: var(--club88-product-highlight); color: var(--club88-product-contrast); }
.club88-option-button:focus-visible { outline: 2px solid var(--club88-product-highlight); outline-offset: 3px; }
.club88-option-button.is-disabled,
.club88-option-button:disabled { opacity: .28; cursor: not-allowed; text-decoration: line-through; }
.club88-color-swatch {
	width: 38px;
	min-width: 38px;
	height: 38px;
	min-height: 38px;
	padding: 0;
	display: grid;
	place-items: center;
	border: 0;
	border-radius: 50%;
	background: transparent !important;
}
.club88-swatch-dot {
	display: block;
	width: 30px;
	height: 30px;
	border: 1px solid rgba(27,28,28,.22);
	border-radius: 50%;
	background: var(--club88-swatch-color, #777);
	box-shadow: 0 0 0 2px var(--club88-page);
}
.club88-color-swatch.is-selected { box-shadow: 0 0 0 2px var(--club88-page), 0 0 0 4px var(--club88-product-highlight); }
.club88-product-page .reset_variations {
	display: inline-block !important;
	margin-top: 10px;
	color: var(--club88-muted);
	font-size: 10px;
	text-decoration: underline;
	text-underline-offset: 3px;
}
.club88-product-page .woocommerce-variation-description { margin: 0 0 12px; color: var(--club88-muted); }
.club88-product-page .woocommerce-variation-price,
.club88-product-page .woocommerce-variation-availability {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	clip: rect(0,0,0,0) !important;
	white-space: nowrap !important;
}

/* Quantity + purchase controls */
.club88-product-page .woocommerce-variation-add-to-cart,
.club88-product-page form.cart:not(.variations_form) {
	display: grid !important;
	grid-template-columns: 128px minmax(0, 1fr);
	grid-template-rows: 54px 54px;
	gap: 10px;
	align-items: stretch;
}
.club88-product-page .woocommerce-variation-add-to-cart .quantity,
.club88-product-page form.cart:not(.variations_form) .quantity { grid-column: 1; grid-row: 1; }
.club88-product-page .single_add_to_cart_button { grid-column: 2; grid-row: 1; }
.club88-product-page .club88-buy-now-button { grid-column: 1 / -1; grid-row: 2; }
.club88-product-page .quantity {
	float: none !important;
	width: 128px;
	min-width: 0;
	height: 54px;
	margin: 0 !important;
	padding: 0 !important;
	display: grid !important;
	grid-template-columns: 38px minmax(40px,1fr) 38px;
	grid-template-rows: 1fr;
	align-items: stretch;
	border: 1px solid var(--club88-border);
	border-radius: var(--club88-radius);
	background: var(--club88-surface-lowest);
	overflow: hidden;
}
.club88-product-page .quantity > * { min-width: 0; box-sizing: border-box; }
.club88-product-page .quantity > button:not(.club88-qty-button),
.club88-product-page .quantity > input[type="button"],
.club88-product-page .quantity > .minus:not(.club88-qty-minus),
.club88-product-page .quantity > .plus:not(.club88-qty-plus) { display: none !important; }
.club88-product-page .quantity input.qty {
	order: 2;
	width: 100% !important;
	height: 52px !important;
	min-height: 52px;
	margin: 0 !important;
	padding: 0 2px !important;
	border: 0 !important;
	border-inline: 1px solid var(--club88-border) !important;
	border-radius: 0 !important;
	background: transparent !important;
	color: var(--club88-text);
	font: 600 14px/1 "Hanken Grotesk", Arial, sans-serif !important;
	text-align: center;
	appearance: textfield;
	box-shadow: none !important;
}
.club88-product-page .quantity input.qty::-webkit-inner-spin-button,
.club88-product-page .quantity input.qty::-webkit-outer-spin-button { margin: 0; appearance: none; }
.club88-product-page .club88-qty-button {
	width: 38px;
	min-width: 38px;
	height: 52px;
	margin: 0 !important;
	padding: 0 !important;
	display: grid !important;
	place-items: center;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	color: var(--club88-text) !important;
	font: 500 18px/1 "Hanken Grotesk", Arial, sans-serif !important;
	cursor: pointer;
	box-shadow: none !important;
	transition: background-color .15s ease, color .15s ease, opacity .15s ease;
}
.club88-product-page .club88-qty-minus { order: 1; }
.club88-product-page .club88-qty-plus { order: 3; }
.club88-product-page .club88-qty-button:hover:not(:disabled),
.club88-product-page .club88-qty-button:focus-visible { background: var(--club88-surface) !important; color: var(--club88-product-highlight) !important; }
.club88-product-page .club88-qty-button:focus-visible { position: relative; z-index: 2; outline: 2px solid var(--club88-product-highlight); outline-offset: -2px; }
.club88-product-page .club88-qty-button:disabled { opacity: .28; cursor: not-allowed; }

.club88-product-page .single_add_to_cart_button,
.club88-product-page .club88-buy-now-button,
.club88-sticky-buy,
.club88-review-cta,
.club88-submit-review {
	min-height: 54px;
	padding: 0 24px !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--club88-button) !important;
	border-radius: var(--club88-radius) !important;
	background: var(--club88-button) !important;
	color: var(--club88-button-text) !important;
	font: 800 10px/1 "Hanken Grotesk", Arial, sans-serif !important;
	letter-spacing: .13em !important;
	text-transform: uppercase;
	cursor: pointer;
	box-shadow: none !important;
	transition: transform .15s ease, background-color .18s ease, color .18s ease, border-color .18s ease;
}
.club88-product-page .club88-buy-now-button {
	background: var(--club88-surface-lowest) !important;
	color: var(--club88-text) !important;
	border-color: var(--club88-border) !important;
}
.club88-product-page .single_add_to_cart_button:hover,
.club88-sticky-buy:hover,
.club88-submit-review:hover { transform: translateY(-1px); }
.club88-product-page .club88-buy-now-button:hover { border-color: var(--club88-product-highlight) !important; background: var(--club88-surface-low) !important; }
.club88-product-page .single_add_to_cart_button:focus-visible,
.club88-product-page .club88-buy-now-button:focus-visible,
.club88-sticky-buy:focus-visible,
.club88-review-cta:focus-visible,
.club88-submit-review:focus-visible { outline: 2px solid var(--club88-product-highlight); outline-offset: 3px; }
.club88-product-page .single_add_to_cart_button:disabled,
.club88-product-page .club88-buy-now-button:disabled,
.club88-sticky-buy:disabled { opacity: .35 !important; cursor: not-allowed; transform: none; }
.club88-product-page button.is-loading { pointer-events: none; opacity: .68 !important; }
.club88-product-page button.is-loading::after {
	content: "";
	width: 13px;
	height: 13px;
	margin-inline-start: 10px;
	border: 2px solid currentColor;
	border-inline-end-color: transparent;
	border-radius: 50%;
	animation: club88-spin .7s linear infinite;
}
@keyframes club88-spin { to { transform: rotate(360deg); } }
.club88-form-error { min-height: 20px; margin-top: 8px; color: #93000a; font-size: 12px; }

/* Availability, trust, and delivery stack */
.club88-commerce-stack { margin-top: 17px; }
.club88-availability-row {
	min-height: 39px;
	padding: 0 2px 12px;
	display: flex;
	align-items: center;
	gap: 8px;
	border-bottom: 1px solid var(--club88-border);
	color: var(--club88-text);
	font-size: 12px;
}
.club88-commerce-icon,
.club88-service-icon,
.club88-delivery-icon { display: inline-grid; place-items: center; color: var(--club88-product-highlight); flex: 0 0 auto; }
.club88-commerce-icon svg { width: 14px; height: 14px; }
.club88-commerce-icon svg,
.club88-service-icon svg,
.club88-delivery-icon svg,
.club88-benefit-icon svg { fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.club88-availability-row.is-out-of-stock { color: #93000a; }
.club88-service-row { min-height: 92px; display: grid; border-bottom: 1px solid var(--club88-border); }
.club88-service-count-1 { grid-template-columns: 1fr; }
.club88-service-count-2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.club88-service-count-3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.club88-service-item {
	position: relative;
	min-width: 0;
	padding: 18px 8px 16px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 7px;
	color: var(--club88-text);
	text-align: center;
}
.club88-service-item.has-divider::before {
	content: "";
	position: absolute;
	top: 18px;
	bottom: 18px;
	inset-inline-start: 0;
	width: 1px;
	background: var(--club88-border);
}
.club88-service-icon svg { width: 20px; height: 20px; }
.club88-service-copy { display: flex; flex-direction: column; align-items: center; line-height: 1.15; }
.club88-service-copy strong,
.club88-service-copy small { max-width: 112px; font-size: 10px; font-weight: 500; }
.club88-service-copy small { color: var(--club88-muted); }
.club88-service-item[href]:hover strong { text-decoration: underline; text-underline-offset: 2px; }
.club88-delivery-card {
	min-height: 59px;
	margin-top: 25px;
	padding: 13px 16px;
	display: flex;
	align-items: center;
	gap: 15px;
	border-radius: var(--club88-radius);
	background: var(--club88-surface);
	color: var(--club88-text);
	transition: background-color .3s ease;
}
.club88-delivery-icon svg { width: 19px; height: 19px; }
.club88-delivery-card > div { display: flex; flex-direction: column; font-size: 12px; line-height: 1.45; }
.club88-delivery-card strong { font-weight: 700; }

/* Standalone native WooCommerce product description */
.club88-product-description-section {
	position: relative;
	margin-top: clamp(68px, 7vw, 112px);
	padding: clamp(42px, 5vw, 76px) clamp(24px, 5vw, 72px);
	border: 1px solid var(--club88-border);
	border-radius: var(--club88-radius);
	background: var(--club88-product-page-tint);
	overflow: hidden;
}
.club88-product-description-section::before {
	content: "";
	position: absolute;
	inset-block: 0;
	inset-inline-start: 0;
	width: 4px;
	background: var(--club88-product-highlight);
}
.club88-product-description-layout {
	display: grid;
	grid-template-columns: minmax(210px, .36fr) minmax(0, 1fr);
	gap: clamp(38px, 6vw, 96px);
	align-items: start;
}
.club88-product-description-heading { position: sticky; top: 112px; }
.club88-product-description-heading h2 {
	margin: 0;
	color: var(--club88-text);
	font: 700 clamp(28px, 3vw, 46px)/1.04 "Hanken Grotesk", Arial, sans-serif;
	letter-spacing: -.035em;
	text-transform: uppercase;
}
.club88-product-description-content {
	min-width: 0;
	max-width: 820px;
	color: var(--club88-text);
	font-size: clamp(15px, 1.15vw, 18px);
	line-height: 1.75;
}
.club88-product-description-content > :first-child { margin-top: 0; }
.club88-product-description-content > :last-child { margin-bottom: 0; }
.club88-product-description-content h2,
.club88-product-description-content h3,
.club88-product-description-content h4 {
	margin: 1.7em 0 .65em;
	color: var(--club88-text);
	font-family: "Hanken Grotesk", Arial, sans-serif;
	line-height: 1.18;
}
.club88-product-description-content p { margin: 0 0 1.15em; }
.club88-product-description-content ul,
.club88-product-description-content ol { margin: 0 0 1.15em; padding-inline-start: 1.35em; }
.club88-product-description-content img,
.club88-product-description-content video,
.club88-product-description-content iframe { max-width: 100%; height: auto; }
.club88-product-description-content a {
	color: currentColor;
	text-decoration: underline;
	text-decoration-color: var(--club88-product-highlight);
	text-decoration-thickness: 1.5px;
	text-underline-offset: 3px;
}
.club88-product-description-content blockquote {
	margin: 1.5em 0;
	padding-inline-start: 22px;
	border-inline-start: 3px solid var(--club88-product-highlight);
	color: var(--club88-muted);
}

/* Native modern accordions */
.club88-product-accordions { margin-top: 28px; }
.club88-modern-accordion { border-top: 1px solid var(--club88-border); }
.club88-modern-accordion__item { margin: 0; padding: 0; border: 0; border-bottom: 1px solid var(--club88-border); background: transparent; }
.club88-modern-accordion__summary {
	min-height: 62px;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	list-style: none;
	color: var(--club88-text);
	font: 700 14px/1.35 "Hanken Grotesk", Arial, sans-serif;
	letter-spacing: -.005em;
	text-align: start;
	cursor: pointer;
	user-select: none;
}
.club88-product-accordions .club88-modern-accordion__summary { font-size: 15px; font-weight: 700; letter-spacing: 0; text-transform: none; }
.club88-modern-accordion__summary::-webkit-details-marker { display: none; }
.club88-modern-accordion__summary::marker { content: ""; }
.club88-modern-accordion__summary:focus-visible { outline: 2px solid var(--club88-product-highlight); outline-offset: 4px; }
.club88-modern-accordion__icon { position: relative; width: 16px; height: 16px; flex: 0 0 16px; color: var(--club88-product-highlight); }
.club88-modern-accordion__icon::before,
.club88-modern-accordion__icon::after {
	content: "";
	position: absolute;
	top: 7px;
	inset-inline-start: 1px;
	width: 14px;
	height: 1.5px;
	border-radius: 2px;
	background: currentColor;
	transition: transform .18s ease, opacity .18s ease;
}
.club88-modern-accordion__icon::after { transform: rotate(90deg); }
.club88-modern-accordion__item[open] .club88-modern-accordion__icon::after { transform: rotate(0); opacity: 0; }
.club88-modern-accordion__content {
	max-width: 880px;
	padding: 0 42px 24px 0;
	color: var(--club88-muted);
	font-size: 14px;
	line-height: 1.72;
	animation: club88-accordion-reveal .18s ease both;
}
[dir="rtl"] .club88-modern-accordion__content { padding: 0 0 24px 42px; }
.club88-modern-accordion__content > :first-child { margin-top: 0; }
.club88-modern-accordion__content > :last-child { margin-bottom: 0; }
.club88-modern-accordion__content p { margin: 0 0 12px; }
.club88-modern-accordion__content ul,
.club88-modern-accordion__content ol { margin: 0 0 12px 20px; padding: 0; }
.club88-modern-accordion__content a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.club88-text-link { border-bottom: 1px solid currentColor; color: var(--club88-text); font-weight: 600; }
@keyframes club88-accordion-reveal { from { opacity: 0; transform: translateY(-3px); } to { opacity: 1; transform: translateY(0); } }

.club88-product-technical-meta {
	margin-top: 18px;
	display: flex;
	flex-wrap: wrap;
	gap: 8px 18px;
	color: var(--club88-muted);
	font-size: 9px;
	letter-spacing: .06em;
	text-transform: uppercase;
}
.club88-product-technical-meta b { color: var(--club88-text); font-weight: 600; }

/* Shared editorial sections */
.club88-section { margin-bottom: var(--club88-section-gap); scroll-margin-top: 110px; }

.club88-product-page .club88-shell > .club88-section:last-of-type { margin-bottom: 0; }
.club88-eyebrow {
	margin: 0 0 13px;
	color: var(--club88-product-highlight);
	font: 800 9px/1 "Hanken Grotesk", Arial, sans-serif;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.club88-section-heading h2,
.club88-section > h2 {
	margin: 0;
	font: 700 clamp(26px, 2.5vw, 40px)/1.08 "Hanken Grotesk", Arial, sans-serif;
	letter-spacing: -.025em;
	text-transform: uppercase;
}
.club88-section-heading--inline {
	margin-bottom: 28px;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--club88-border);
}
.club88-section-heading--inline > span,
.club88-section-heading--inline > a {
	color: var(--club88-muted);
	font: 700 9px/1 "Hanken Grotesk", Arial, sans-serif;
	letter-spacing: .1em;
	text-transform: uppercase;
}

/* Benefits split */
.club88-benefits-section {
	min-height: 520px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	background: var(--club88-surface-low);
	overflow: hidden;
	border-radius: var(--club88-radius);
}
.club88-benefits-image { min-height: 520px; overflow: hidden; }
.club88-benefits-image img { width: 100%; height: 100%; object-fit: cover; }
.club88-benefits-content {
	padding: clamp(48px, 5.2vw, 78px);
	display: flex;
	flex-direction: column;
	justify-content: center;
	background: var(--club88-surface-low);
	transition: background-color .3s ease;
}
.club88-benefits-content h2 {
	max-width: 520px;
	margin: 0 0 42px;
	font: 700 clamp(27px, 2.5vw, 38px)/1.05 "Hanken Grotesk", Arial, sans-serif;
	letter-spacing: -.025em;
	text-transform: uppercase;
}
.club88-benefits-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 30px 34px; }
.club88-benefit-item { display: flex; gap: 14px; }
.club88-benefit-icon { flex: 0 0 28px; color: var(--club88-product-highlight); }
.club88-benefit-icon svg { width: 28px; height: 28px; }
.club88-benefit-item h3 { margin: 0 0 5px; font: 700 12px/1.25 "Hanken Grotesk", Arial, sans-serif; }
.club88-benefit-item p { margin: 0; color: var(--club88-muted); font-size: 11px; line-height: 1.5; }

/* Lifestyle banner */
.club88-lifestyle-section {
	position: relative;
	height: 520px;
	overflow: hidden;
	border-radius: var(--club88-radius);
	color: #fff;
}
.club88-lifestyle-section > img { width: 100%; height: 100%; object-fit: cover; }
.club88-lifestyle-overlay { position: absolute; inset: 0; background: rgb(0 0 0 / var(--club88-overlay-opacity, .3)); }
.club88-lifestyle-copy {
	position: absolute;
	inset: 0;
	padding: 60px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.club88-align-center .club88-lifestyle-copy { align-items: center; text-align: center; }
.club88-align-right .club88-lifestyle-copy { align-items: flex-end; text-align: end; }
.club88-lifestyle-copy h2 {
	max-width: 900px;
	margin: 0;
	color: #fff;
	font: 700 clamp(42px, 6.2vw, 80px)/.98 "Hanken Grotesk", Arial, sans-serif;
	letter-spacing: -.04em;
	text-transform: uppercase;
}
.club88-lifestyle-subheading { margin: 20px 0 0; font-size: 16px; }
.club88-lifestyle-story { max-width: 670px; margin-top: 18px; font-size: 14px; }
.club88-lifestyle-story p { margin: 0; }

/* Reviews */
.club88-reviews-heading { margin-bottom: 28px; }
.club88-review-summary {
	display: grid;
	grid-template-columns: 180px minmax(260px, 420px) 1fr;
	gap: 48px;
	align-items: center;
	padding: 30px 0;
	border-top: 1px solid var(--club88-border);
	border-bottom: 1px solid var(--club88-border);
}
.club88-review-score { display: flex; flex-direction: column; gap: 6px; }
.club88-review-score > strong { font: 700 56px/.9 "Hanken Grotesk", Arial, sans-serif; letter-spacing: -.04em; }
.club88-review-score > span { color: var(--club88-muted); font-size: 10px; }
.club88-review-distribution { display: grid; gap: 5px; }
.club88-review-bar { display: grid; grid-template-columns: 12px 12px 1fr 30px; gap: 7px; align-items: center; color: var(--club88-muted); font-size: 9px; }
.club88-review-bar i { height: 3px; overflow: hidden; background: var(--club88-surface); }
.club88-review-bar b { display: block; height: 100%; background: var(--club88-product-highlight); }
.club88-review-cta { justify-self: end; min-width: 175px; }
.club88-review-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 28px; }
.club88-review-card { min-height: 240px; padding: 22px; border: 1px solid var(--club88-border); background: var(--club88-surface-lowest); }
.club88-review-card__top { display: flex; justify-content: space-between; gap: 16px; }
.club88-review-author { display: flex; align-items: center; gap: 10px; }
.club88-review-author img { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; }
.club88-review-author div { display: flex; flex-direction: column; }
.club88-review-author strong { font: 700 11px/1.2 "Hanken Grotesk", Arial, sans-serif; }
.club88-review-author span { color: var(--club88-product-highlight); font-size: 8px; font-weight: 700; text-transform: uppercase; }
.club88-review-card time { color: var(--club88-muted); font-size: 8px; }
.club88-review-card__stars { margin: 20px 0 12px; }
.club88-review-card__text { color: var(--club88-muted); font-size: 12px; }
.club88-review-card__text p { margin: 0; }
.club88-review-variation { margin: 15px 0 0; font-size: 9px; font-weight: 700; text-transform: uppercase; }
.club88-review-form { max-width: 760px; margin: 52px auto 0; padding: 32px; border: 1px solid var(--club88-border); background: var(--club88-surface-lowest); }
.club88-review-form h3 { margin: 0 0 24px; font: 700 26px/1.1 "Hanken Grotesk", Arial, sans-serif; text-transform: uppercase; }
.club88-review-form form { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.club88-review-form p { margin: 0; }
.club88-product-page .club88-review-form .comment-form-cookies-consent { display: none !important; }
.club88-review-form .comment-form-rating,
.club88-review-form .comment-form-comment,
.club88-review-form .form-submit,
.club88-review-form .comment-notes,
.club88-review-form .logged-in-as { grid-column: 1/-1; }
.club88-review-form label { display: block; margin-bottom: 6px; font: 700 9px/1 "Hanken Grotesk", Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.club88-review-form input,
.club88-review-form select,
.club88-review-form textarea { width: 100%; padding: 12px 14px; border: 1px solid var(--club88-border); border-radius: var(--club88-radius); background: var(--club88-page); color: var(--club88-text); }
.club88-review-form textarea { resize: vertical; }

/* Seen in the Wild */
.club88-seen-gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.club88-seen-image { aspect-ratio: 3/4; padding: 0; overflow: hidden; border: 0; background: var(--club88-surface-low); cursor: zoom-in; }
.club88-seen-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.club88-seen-image:hover img { transform: scale(1.02); }

/* FAQ */
.club88-faq-section { max-width: 980px; margin-inline: auto; }
.club88-faq-section .club88-faq-heading { max-width: 720px; margin-bottom: 28px; text-align: start; }
.club88-faq-section .club88-faq-heading h2 { max-width: 720px; }
.club88-faq-list .club88-modern-accordion__summary { min-height: 68px; font-size: 16px; font-weight: 700; }
.club88-faq-list .club88-modern-accordion__content { max-width: 850px; padding-bottom: 25px; color: var(--club88-muted); font-size: 14px; }

/* Related products */
.club88-related-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.club88-related-card { min-width: 0; }
.club88-related-image { display: block; aspect-ratio: 3/4; overflow: hidden; border: 1px solid transparent; background: var(--club88-surface-low); transition: border-color .18s ease; }
.club88-related-image img { width: 100%; height: 100%; object-fit: contain; transition: transform .35s ease; }
.club88-related-card:hover .club88-related-image { border-color: var(--club88-product-highlight); }
.club88-related-card:hover .club88-related-image img { transform: scale(1.015); }
.club88-related-info { padding: 13px 2px 0; }
.club88-related-info h3 { margin: 0 0 5px; font: 700 12px/1.25 "Hanken Grotesk", Arial, sans-serif; text-transform: none; }
.club88-related-price { font-size: 11px; }
.club88-related-swatches { display: flex; gap: 6px; margin-top: 9px; }
.club88-related-swatches i { width: 11px; height: 11px; border: 1px solid rgba(27,28,28,.2); border-radius: 50%; background: var(--swatch); }
.club88-view-options { display: block; margin-top: 11px; min-height: 34px; padding: 9px 12px; border: 1px solid var(--club88-border); font: 800 8px/1.4 "Hanken Grotesk", Arial, sans-serif; letter-spacing: .1em; text-align: center; text-transform: uppercase; }
.club88-view-options:hover { border-color: var(--club88-product-highlight); }

/* Mobile sticky purchase bar */
.club88-mobile-sticky {
	position: fixed;
	z-index: 9995;
	inset-inline: 0;
	bottom: 0;
	min-height: 76px;
	padding: 10px 16px max(10px, env(safe-area-inset-bottom));
	display: none;
	align-items: center;
	gap: 14px;
	border-top: 1px solid var(--club88-border);
	background: rgba(255,255,255,.96);
	backdrop-filter: blur(14px);
	transform: translateY(110%);
	visibility: hidden;
	transition: transform .22s ease, visibility .22s ease, background-color .3s ease;
}
.club88-mobile-sticky.is-visible { transform: translateY(0); visibility: visible; }
.club88-mobile-sticky-info { min-width: 0; flex: 1; display: flex; flex-direction: column; }
.club88-mobile-sticky-info strong { overflow: hidden; font: 700 10px/1.25 "Hanken Grotesk", Arial, sans-serif; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.club88-mobile-sticky-info span { font-size: 12px; }
.club88-sticky-buy { min-width: 154px; min-height: 50px; }

/* Lightbox */
.club88-lightbox { width: min(92vw, 1100px); max-width: none; max-height: 92vh; padding: 0; border: 0; background: transparent; overflow: visible; }
.club88-lightbox::backdrop { background: rgba(0,0,0,.88); }
.club88-lightbox img { max-width: 100%; max-height: 90vh; margin: auto; object-fit: contain; }
.club88-lightbox-close { position: absolute; z-index: 2; top: -42px; inset-inline-end: 0; width: 36px; height: 36px; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; background: transparent; color: #fff; font-size: 25px; cursor: pointer; }

/* WooCommerce notices and compatibility slots */
.club88-product-page .woocommerce-message,
.club88-product-page .woocommerce-error,
.club88-product-page .woocommerce-info { margin: 0 0 24px; padding: 14px 18px; border: 1px solid var(--club88-border); border-top: 2px solid var(--club88-product-highlight); background: var(--club88-surface-lowest); color: var(--club88-text); }
.club88-gallery-extension-slot:empty,
.club88-summary-extension-slot:empty,
.club88-after-summary-extension-slot:empty { display: none; }
.club88-after-summary-extension-slot { margin-bottom: 40px; }
.club88-product-page [hidden] { display: none !important; }
.club88-commerce-stack > .club88-service-row:first-child { border-top: 1px solid var(--club88-border); }
.club88-review-summary.ratings-disabled { grid-template-columns: 180px 1fr; }

/* Accessible screen-reader utility */
.club88-product-page .screen-reader-text {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}
.club88-product-page .screen-reader-text:focus {
	z-index: 100000;
	top: 8px;
	inset-inline-start: 8px;
	width: auto !important;
	height: auto !important;
	padding: 10px 14px !important;
	margin: 0 !important;
	clip: auto !important;
	background: var(--club88-surface-lowest);
	color: var(--club88-text);
}


/* ==========================================================================
   CLUB 88 v1.4 — Modern Luxury visual system
   ========================================================================== */

.club88-product-page {
	padding-bottom: var(--club88-canvas-bottom-space);
	background: color-mix(in srgb, var(--club88-page) 72%, #f7f7f5 28%);
}

.club88-product-page .club88-product-background {
	background: color-mix(in srgb, var(--club88-page) 72%, #f7f7f5 28%);
}

.club88-product-page .club88-shell {
	position: relative;
	z-index: 1;
	width: min(calc(100% - 80px), var(--club88-max-width));
}

.club88-product-page .club88-product-hero {
	gap: clamp(36px, 4vw, 62px);
	padding-top: 44px;
	margin-bottom: clamp(68px, 7vw, 104px);
}

.club88-product-page .club88-product-summary__inner {
	top: 96px;
	padding-top: 8px;
}

/* Gallery surfaces */
.club88-product-page .club88-gallery-main {
	border: 1px solid var(--club88-border-neutral);
	border-radius: var(--club88-radius-xl);
	background: color-mix(in srgb, var(--club88-product-surface-tint) 55%, #f5f4f1 45%);
	box-shadow: var(--club88-shadow-sm);
}

.club88-product-page .club88-gallery-thumb {
	border-color: var(--club88-border-neutral);
	border-radius: var(--club88-radius-md);
	background: color-mix(in srgb, var(--club88-product-surface-tint) 48%, #f5f4f1 52%);
	opacity: .66;
}

.club88-product-page .club88-gallery-thumb:hover,
.club88-product-page .club88-gallery-thumb.is-active {
	border-color: var(--club88-product-highlight);
	opacity: 1;
	box-shadow: 0 0 0 2px color-mix(in srgb, var(--club88-product-highlight) 14%, transparent);
}

.club88-product-page .club88-gallery-sale-badge,
.club88-product-page .club88-badge {
	border-radius: 999px;
}

.club88-product-page .club88-gallery-arrow,
.club88-product-page .club88-gallery-zoom {
	border-color: rgba(17, 17, 17, .12);
	background: rgba(255, 255, 255, .92);
	box-shadow: 0 8px 24px rgba(0, 0, 0, .08);
	backdrop-filter: blur(12px);
}

.club88-product-page .club88-gallery-counter {
	border: 1px solid rgba(17, 17, 17, .08);
	border-radius: 999px;
	background: rgba(255, 255, 255, .88);
}

/* Product summary hierarchy */
.club88-product-page .club88-product-title {
	margin-bottom: 12px;
	font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
	font-size: clamp(34px, 3.6vw, 56px);
	font-weight: 750;
	line-height: .99;
	letter-spacing: -.045em;
}

.club88-product-page .club88-price {
	font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
	font-size: clamp(22px, 2vw, 28px);
	font-weight: 720;
}

.club88-product-page .club88-short-description {
	max-width: 590px;
	margin-bottom: 24px;
	font-size: 15px;
	line-height: 1.72;
}

.club88-product-page .club88-option-button {
	border-color: var(--club88-border-neutral-strong);
	border-radius: 11px;
	box-shadow: 0 1px 0 rgba(255,255,255,.75) inset;
}

.club88-product-page .club88-label-option:hover,
.club88-product-page .club88-label-option.is-selected {
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--club88-product-highlight) 12%, transparent);
}

/* Unified commerce panel */
.club88-product-page .club88-purchase-panel {
	margin-top: 4px;
	padding: 18px;
	border: 1px solid var(--club88-border-neutral);
	border-radius: var(--club88-radius-lg);
	background: var(--club88-card-surface);
	box-shadow: var(--club88-shadow-sm);
}

.club88-product-page .club88-purchase-panel table.variations {
	margin-bottom: 20px !important;
}

.club88-product-page .quantity {
	border-color: var(--club88-border-neutral-strong);
	border-radius: 12px;
	background: var(--club88-card-surface);
}

.club88-product-page .quantity input.qty {
	border-inline-color: var(--club88-border-neutral) !important;
}

.club88-product-page .club88-qty-button:hover:not(:disabled),
.club88-product-page .club88-qty-button:focus-visible {
	background: color-mix(in srgb, var(--club88-product-surface-tint) 60%, #fff 40%) !important;
}

.club88-product-page .single_add_to_cart_button,
.club88-product-page .club88-buy-now-button,
.club88-product-page .club88-sticky-buy,
.club88-product-page .club88-review-cta,
.club88-product-page .club88-submit-review {
	min-height: 54px;
	border-radius: 13px !important;
	box-shadow: 0 6px 18px rgba(0, 0, 0, .08) !important;
}

.club88-product-page .club88-buy-now-button,
.club88-product-page .club88-review-cta {
	border-color: var(--club88-product-highlight) !important;
	background: color-mix(in srgb, var(--club88-button) 12%, var(--club88-card-surface) 88%) !important;
	box-shadow: none !important;
}

.club88-product-page .single_add_to_cart_button:hover,
.club88-product-page .club88-buy-now-button:hover,
.club88-product-page .club88-sticky-buy:hover,
.club88-product-page .club88-review-cta:hover,
.club88-product-page .club88-submit-review:hover {
	transform: translateY(-1px);
	box-shadow: 0 10px 24px rgba(0, 0, 0, .11) !important;
}

.club88-product-page .club88-commerce-stack {
	margin-top: 18px;
	padding-top: 4px;
}

.club88-product-page .club88-availability-row {
	padding-inline: 2px;
	border-bottom-color: var(--club88-border-neutral);
}

.club88-product-page .club88-service-row {
	margin-top: 4px;
	border: 1px solid var(--club88-border-neutral);
	border-radius: var(--club88-radius-md);
	background: color-mix(in srgb, var(--club88-product-surface-tint) 36%, #fff 64%);
	overflow: hidden;
}

.club88-product-page .club88-service-item.has-divider::before {
	background: var(--club88-border-neutral);
}

.club88-product-page .club88-delivery-card {
	margin-top: 14px;
	border: 1px solid color-mix(in srgb, var(--club88-product-highlight) 14%, var(--club88-border-neutral));
	border-radius: var(--club88-radius-md);
	background: color-mix(in srgb, var(--club88-product-surface-tint) 62%, #fff 38%);
}

/* Simple standalone WooCommerce description */
.club88-product-page .club88-product-description-section {
	position: relative;
	min-width: 0;
	max-width: 100%;
	margin-top: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	overflow: visible;
}

.club88-product-page .club88-product-description-section::before {
	display: none;
}

.club88-product-page .club88-product-description-shell {
	width: 100%;
	min-width: 0;
	max-width: 100%;
	padding: clamp(30px, 4.2vw, 56px);
	border: 1px solid var(--club88-border-neutral);
	border-radius: var(--club88-radius-lg);
	background: var(--club88-card-surface);
	box-shadow: var(--club88-shadow-sm);
}

.club88-product-page .club88-product-description-heading {
	position: static;
	margin-bottom: 22px;
}

.club88-product-page .club88-product-description-heading h2 {
	margin: 0;
	font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
	font-size: clamp(24px, 2.2vw, 34px);
	font-weight: 730;
	line-height: 1.1;
	letter-spacing: -.035em;
	text-transform: none;
}

.club88-product-page .club88-product-description-content {
	min-width: 0;
	max-width: 860px;
	overflow-wrap: anywhere;
	color: var(--club88-muted);
	font-size: 16px;
	line-height: 1.75;
}

.club88-product-page .club88-product-description-content h2,
.club88-product-page .club88-product-description-content h3,
.club88-product-page .club88-product-description-content h4 {
	font-family: inherit;
	letter-spacing: -.02em;
	text-transform: none;
}

.club88-product-page .club88-product-description-content img,
.club88-product-page .club88-product-description-content video,
.club88-product-page .club88-product-description-content iframe,
.club88-product-page .club88-product-description-content .wp-block-image img {
	border-radius: var(--club88-radius-md);
}

.club88-product-page .club88-product-description-content table,
.club88-product-page .club88-product-description-content pre,
.club88-product-page .club88-product-description-content .wp-block-table,
.club88-product-page .club88-product-description-content .wp-block-embed {
	max-width: 100%;
	overflow-x: auto;
}

.club88-product-page .club88-product-description-content iframe {
	display: block;
	width: 100%;
}

/* Product details and FAQ disclosures */
.club88-product-page .club88-product-accordions {
	margin-top: 22px;
}

.club88-product-page .club88-modern-accordion {
	border: 1px solid var(--club88-border-neutral);
	border-radius: var(--club88-radius-lg);
	background: var(--club88-card-surface);
	box-shadow: var(--club88-shadow-sm);
	overflow: hidden;
}

.club88-product-page .club88-modern-accordion__item {
	border-bottom-color: var(--club88-border-neutral);
	background: transparent;
}

.club88-product-page .club88-modern-accordion__item:last-child {
	border-bottom: 0;
}

.club88-product-page .club88-modern-accordion__summary {
	min-height: 66px;
	padding: 0 20px;
	font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
	font-size: 15px;
	font-weight: 650;
}

.club88-product-page .club88-modern-accordion__icon {
	width: 28px;
	height: 28px;
	flex-basis: 28px;
	border-radius: 50%;
	background: color-mix(in srgb, var(--club88-product-surface-tint) 52%, #fff 48%);
}

.club88-product-page .club88-modern-accordion__icon::before,
.club88-product-page .club88-modern-accordion__icon::after {
	top: 13px;
	inset-inline-start: 7px;
	width: 14px;
}

.club88-product-page .club88-modern-accordion__content,
[dir="rtl"] .club88-product-page .club88-modern-accordion__content {
	max-width: none;
	padding: 0 64px 24px 20px;
	font-size: 14px;
	line-height: 1.72;
}

[dir="rtl"] .club88-product-page .club88-modern-accordion__content {
	padding-inline: 64px 20px;
}

/* Section typography */
.club88-product-page .club88-section-heading h2,
.club88-product-page .club88-section > h2 {
	font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
	font-size: clamp(26px, 3vw, 40px);
	font-weight: 730;
	line-height: 1.05;
	letter-spacing: -.035em;
}

.club88-product-page .club88-section-heading--inline {
	border-bottom-color: var(--club88-border-neutral);
}

/* Benefits */
.club88-product-page .club88-benefits-section {
	border: 1px solid var(--club88-border-neutral);
	border-radius: var(--club88-radius-xl);
	background: var(--club88-card-surface);
	box-shadow: var(--club88-shadow-md);
}

.club88-product-page .club88-benefits-image img {
	transition: transform .5s ease;
}

.club88-product-page .club88-benefits-section:hover .club88-benefits-image img {
	transform: scale(1.012);
}

.club88-product-page .club88-benefits-content {
	background: color-mix(in srgb, var(--club88-product-surface-tint) 48%, #fff 52%);
}

.club88-product-page .club88-benefits-content h2 {
	font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
	font-size: clamp(26px, 2.6vw, 38px);
	font-weight: 730;
	text-transform: none;
}

.club88-product-page .club88-benefit-item {
	padding: 14px;
	border: 1px solid rgba(17, 17, 17, .07);
	border-radius: var(--club88-radius-md);
	background: rgba(255, 255, 255, .48);
}

/* Lifestyle */
.club88-product-page .club88-lifestyle-section {
	border-radius: var(--club88-radius-xl);
	box-shadow: var(--club88-shadow-md);
}

.club88-product-page .club88-lifestyle-overlay {
	background: linear-gradient(90deg, rgba(0,0,0,.58), rgba(0,0,0,.18) 62%, rgba(0,0,0,.12));
	opacity: max(.5, var(--club88-overlay-opacity, .3));
}

.club88-product-page .club88-align-center .club88-lifestyle-overlay {
	background: linear-gradient(180deg, rgba(0,0,0,.12), rgba(0,0,0,.52));
}

.club88-product-page .club88-lifestyle-copy h2 {
	font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
	font-size: clamp(30px, 5vw, 58px);
	font-weight: 750;
	line-height: 1.01;
	letter-spacing: -.045em;
}

/* Reviews */
.club88-product-page .star-rating {
	position: relative;
	display: inline-block;
	float: none;
	width: 6.15em;
	height: 1.2em;
	overflow: hidden;
	color: var(--club88-rating-gold);
	font-family: ui-sans-serif, system-ui, sans-serif;
	font-size: 14px;
	line-height: 1.2;
	letter-spacing: .12em;
}

.club88-product-page .star-rating::before,
.club88-product-page .star-rating span::before {
	content: "★★★★★";
	position: absolute;
	top: 0;
	inset-inline-start: 0;
	white-space: nowrap;
}

.club88-product-page .star-rating::before {
	color: var(--club88-rating-gold-soft);
}

.club88-product-page .star-rating span {
	position: absolute;
	top: 0;
	inset-inline-start: 0;
	height: 100%;
	overflow: hidden;
	text-indent: -9999px;
}

.club88-product-page .star-rating span::before {
	color: var(--club88-rating-gold);
	text-indent: 0;
}

.club88-product-page .club88-review-bar > span:nth-child(2),
.club88-product-page .comment-form-rating .stars a,
.club88-product-page .comment-form-rating .stars a::before,
.club88-product-page p.stars a,
.club88-product-page p.stars a::before {
	color: var(--club88-rating-gold) !important;
}

.club88-product-page .club88-review-summary {
	grid-template-columns: minmax(150px, .7fr) minmax(280px, 1.4fr) auto;
	gap: clamp(24px, 4vw, 52px);
	padding: clamp(24px, 3.2vw, 38px);
	border: 1px solid var(--club88-border-neutral);
	border-radius: var(--club88-radius-lg);
	background: var(--club88-card-surface);
	box-shadow: var(--club88-shadow-sm);
}

.club88-product-page .club88-review-score > strong {
	font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
	font-size: clamp(44px, 4.5vw, 60px);
	font-weight: 730;
}

.club88-product-page .club88-review-bar i {
	height: 6px;
	border-radius: 999px;
	background: rgba(17, 17, 17, .08);
}

.club88-product-page .club88-review-bar b {
	border-radius: inherit;
	background: var(--club88-rating-gold);
}

.club88-product-page .club88-review-card {
	min-height: 230px;
	border-color: var(--club88-border-neutral);
	border-radius: var(--club88-radius-lg);
	background: var(--club88-card-surface);
	box-shadow: var(--club88-shadow-sm);
}

.club88-product-page .club88-review-author span {
	color: var(--club88-rating-gold);
}

.club88-product-page .club88-review-form {
	max-width: 820px;
	padding: clamp(26px, 4vw, 42px);
	border-color: var(--club88-border-neutral);
	border-radius: var(--club88-radius-lg);
	background: var(--club88-card-surface);
	box-shadow: var(--club88-shadow-sm);
}

.club88-product-page .club88-review-form h3 {
	font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
	font-size: clamp(22px, 2.4vw, 30px);
	font-weight: 730;
	letter-spacing: -.025em;
	text-transform: none;
}

.club88-product-page .club88-review-form input,
.club88-product-page .club88-review-form select,
.club88-product-page .club88-review-form textarea {
	min-height: 48px;
	border-color: var(--club88-border-neutral-strong);
	border-radius: 12px;
	background: #fff;
}

.club88-product-page .club88-review-form textarea {
	min-height: 150px;
}

/* FAQ */
.club88-product-page .club88-faq-section {
	max-width: 940px;
}

.club88-product-page .club88-faq-section .club88-faq-heading {
	max-width: 760px;
	margin: 0 auto 30px;
	text-align: center;
}

.club88-product-page .club88-faq-section .club88-faq-heading h2 {
	max-width: none;
	font-size: clamp(28px, 3vw, 40px);
	text-transform: none;
}

.club88-product-page .club88-faq-list .club88-modern-accordion__summary {
	min-height: 68px;
	font-size: 15px;
}

/* Customer and related galleries */
.club88-product-page .club88-seen-image,
.club88-product-page .club88-related-image {
	border: 1px solid var(--club88-border-neutral);
	border-radius: var(--club88-radius-lg);
	background: color-mix(in srgb, var(--club88-product-surface-tint) 42%, #f5f4f1 58%);
	box-shadow: var(--club88-shadow-sm);
}

.club88-product-page .club88-related-card {
	padding: 8px;
	border-radius: var(--club88-radius-lg);
	transition: transform .2s ease, background-color .2s ease, box-shadow .2s ease;
}

.club88-product-page .club88-related-card:hover {
	transform: translateY(-3px);
	background: rgba(255, 255, 255, .72);
	box-shadow: var(--club88-shadow-sm);
}

.club88-product-page .club88-related-card:hover .club88-related-image {
	border-color: var(--club88-border-neutral-strong);
}

.club88-product-page .club88-view-options {
	border-color: var(--club88-border-neutral-strong);
	border-radius: 10px;
}

/* Notices and sticky action */
.club88-product-page .woocommerce-message,
.club88-product-page .woocommerce-error,
.club88-product-page .woocommerce-info {
	border-color: var(--club88-border-neutral);
	border-radius: var(--club88-radius-md);
	background: var(--club88-card-surface);
	box-shadow: var(--club88-shadow-sm);
}

.club88-product-page .club88-mobile-sticky {
	border-top-color: var(--club88-border-neutral);
	box-shadow: 0 -12px 30px rgba(0, 0, 0, .08);
}

@supports not (color: color-mix(in srgb, #000 50%, #fff)) {
	.club88-product-page,
	.club88-product-page .club88-product-background { background: var(--club88-page); }
	.club88-product-page .club88-gallery-main,
	.club88-product-page .club88-gallery-thumb,
	.club88-product-page .club88-service-row,
	.club88-product-page .club88-benefits-content,
	.club88-product-page .club88-seen-image,
	.club88-product-page .club88-related-image { background: var(--club88-surface-low); }
	.club88-product-page .club88-delivery-card { background: var(--club88-surface); }
}

/* v1.4 final state corrections. */
.club88-product-page .club88-buy-now-button,
.club88-product-page .club88-review-cta {
	color: var(--club88-text) !important;
}

.club88-product-page .club88-review-summary.ratings-disabled {
	grid-template-columns: minmax(150px, .7fr) auto;
}

.club88-product-page .club88-lifestyle-overlay {
	opacity: 1;
}

/* ==========================================================================
   CLUB 88 v1.6.1 — centered gallery, rounded canvas, visible palette motion
   ========================================================================== */

.club88-product-page {
	--club88-canvas-gutter: 14px;
	--club88-canvas-radius: 34px;
	--club88-glow-primary-rgb: 0, 0, 0;
	--club88-glow-secondary-rgb: 0, 0, 0;
	--club88-glow-current-opacity: 0;
	--club88-glow-duration: 1100ms;
	--club88-glow-ambient-blur: 34px;
	--club88-glow-gallery-blur: 20px;
	--club88-glow-button-blur: 31px;
	--club88-glow-angle: 110deg;
	--club88-palette-css-duration: 180ms;
	background: transparent;
}

.club88-product-page .club88-product-background {
	inset: var(--club88-canvas-gutter);
	border: 1px solid var(--club88-border-neutral);
	border-radius: var(--club88-canvas-radius);
	background: var(--club88-page);
	box-shadow: var(--club88-shadow-sm);
	clip-path: none;
	transition: background-color var(--club88-palette-css-duration) linear, border-color var(--club88-palette-css-duration) linear, box-shadow .22s ease;
}

/* The media box, not the image's natural dimensions, owns alignment. The
   scoped important dimensions intentionally defeat WooCommerce/theme rules
   such as `.woocommerce img { height:auto!important; }`. */
.club88-product-page .club88-gallery-figure,
.club88-product-page .club88-gallery-media {
	width: 100%;
	height: 100%;
	min-width: 0;
	min-height: 0;
}

.club88-product-page .club88-gallery-media {
	display: grid;
	place-items: center;
	overflow: hidden;
}

body .club88-product-page .club88-gallery-main .club88-gallery-media > img.club88-gallery-image {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: 100% !important;
	max-height: 100% !important;
	margin: 0 !important;
	object-position: 50% 50% !important;
}

body .club88-product-page .club88-gallery-fit-contain .club88-gallery-media > img.club88-gallery-image {
	object-fit: contain !important;
}

body .club88-product-page .club88-gallery-fit-cover .club88-gallery-media > img.club88-gallery-image {
	object-fit: cover !important;
}

.club88-product-page .club88-product-gallery {
	height: clamp(560px, min(59vw, 78vh), 819px);
	min-height: 560px;
}

.club88-product-page .club88-gallery-main.is-loading .club88-gallery-image {
	opacity: .58;
}

.club88-product-page .club88-gallery-image {
	transition: opacity .22s ease, transform .4s ease;
}

.club88-product-page.club88-palette-is-changing {
	--club88-palette-css-duration: 0ms;
	will-change: background-color;
}

.club88-product-page .club88-product-hero {
	position: relative;
}

.club88-product-page .club88-palette-glow {
	position: absolute;
	z-index: 0;
	inset: var(--club88-canvas-gutter);
	border-radius: var(--club88-canvas-radius);
	pointer-events: none;
	opacity: var(--club88-glow-current-opacity);
	transition: opacity 40ms linear;
}

.club88-product-page .club88-palette-glow__ambient,
.club88-product-page .club88-palette-glow__edge {
	position: absolute;
	display: block;
	pointer-events: none;
}

.club88-product-page .club88-palette-glow__ambient {
	inset: 0;
	border: 1px solid rgba(var(--club88-glow-primary-rgb), .30);
	border-radius: inherit;
	box-shadow:
		0 0 var(--club88-glow-ambient-blur) rgba(var(--club88-glow-primary-rgb), .38),
		0 0 calc(var(--club88-glow-ambient-blur) + 14px) rgba(var(--club88-glow-secondary-rgb), .25),
		inset 0 0 var(--club88-glow-gallery-blur) rgba(var(--club88-glow-primary-rgb), .15);
}

.club88-product-page .club88-palette-glow__edge {
	inset: 8px;
	border: 2px solid rgba(var(--club88-glow-primary-rgb), .72);
	border-radius: calc(var(--club88-canvas-radius) - 10px);
	box-shadow:
		0 0 9px rgba(var(--club88-glow-primary-rgb), .72),
		0 0 var(--club88-glow-gallery-blur) rgba(var(--club88-glow-secondary-rgb), .46);
	-webkit-mask-image: conic-gradient(from var(--club88-glow-angle), #000 0 12%, transparent 20% 42%, #000 51% 65%, transparent 75% 91%, #000 100%);
	mask-image: conic-gradient(from var(--club88-glow-angle), #000 0 12%, transparent 20% 42%, #000 51% 65%, transparent 75% 91%, #000 100%);
}

.club88-product-page .club88-shell {
	position: relative;
	z-index: 1;
}

/* v1.7.6 palette-complete surfaces. Theme button rules and inline editor
 * backgrounds must not freeze parts of the CLUB 88 canvas on white. */
body.club88-product-template-active .club88-product-page form.cart .single_add_to_cart_button.button,
body.club88-product-template-active .club88-product-page form.cart .single_add_to_cart_button.button.alt,
body.club88-product-template-active .club88-product-page form.cart .single_add_to_cart_button.disabled,
body.club88-product-template-active .club88-product-page form.cart .single_add_to_cart_button.wc-variation-selection-needed {
	border-color: var(--club88-button) !important;
	background-color: var(--club88-button) !important;
	background-image: none !important;
	color: var(--club88-button-text) !important;
}

body.club88-product-template-active .club88-product-page form.cart .single_add_to_cart_button:disabled,
body.club88-product-template-active .club88-product-page form.cart .single_add_to_cart_button.disabled {
	opacity: .52 !important;
}

.club88-product-page .club88-product-description-shell,
.club88-product-page .club88-purchase-panel,
.club88-product-page .club88-modern-accordion,
.club88-product-page .club88-review-card,
.club88-product-page .club88-review-form {
	background-color: var(--club88-card-surface) !important;
}

.club88-product-page .club88-product-description-content table,
.club88-product-page .club88-product-description-content thead,
.club88-product-page .club88-product-description-content tbody,
.club88-product-page .club88-product-description-content tr,
.club88-product-page .club88-product-description-content th,
.club88-product-page .club88-product-description-content td {
	border-color: var(--club88-border) !important;
}

.club88-product-page .club88-product-description-content tr,
.club88-product-page .club88-product-description-content td {
	background-color: transparent !important;
}

.club88-product-page .club88-product-description-content thead tr,
.club88-product-page .club88-product-description-content th {
	background-color: color-mix(in srgb, var(--club88-surface) 64%, var(--club88-card-surface) 36%) !important;
	color: var(--club88-text) !important;
}

/* Variables are interpolated frame-by-frame in JavaScript. These short CSS
   transitions cover direct setting changes and repaint secondary properties. */
.club88-product-page,
.club88-product-page .club88-gallery-main,
.club88-product-page .club88-gallery-thumb,
.club88-product-page .club88-gallery-arrow,
.club88-product-page .club88-gallery-zoom,
.club88-product-page .club88-gallery-sale-badge,
.club88-product-page .club88-badge,
.club88-product-page .club88-option-button,
.club88-product-page .club88-swatch-dot,
.club88-product-page .club88-purchase-panel,
.club88-product-page .quantity,
.club88-product-page .club88-qty-button,
.club88-product-page .single_add_to_cart_button,
.club88-product-page .club88-buy-now-button,
.club88-product-page .club88-availability,
.club88-product-page .club88-delivery-card,
.club88-product-page .club88-service-row,
.club88-product-page .club88-service-item,
.club88-product-page .club88-product-description-shell,
.club88-product-page .club88-modern-accordion,
.club88-product-page .club88-modern-accordion__item,
.club88-product-page .club88-modern-accordion__icon,
.club88-product-page .club88-benefits-section,
.club88-product-page .club88-benefit-item,
.club88-product-page .club88-review-summary,
.club88-product-page .club88-review-card,
.club88-product-page .club88-review-form,
.club88-product-page .club88-rating-bar span,
.club88-product-page .club88-related-card,
.club88-product-page .club88-related-image,
.club88-product-page .club88-view-options,
.club88-product-page .club88-mobile-sticky {
	transition-property: background-color, border-color, color, box-shadow, outline-color;
	transition-duration: var(--club88-palette-css-duration);
	transition-timing-function: linear;
}

/* ==========================================================================
   CLUB 88 v1.6.4 — conflict-resistant premium palette transition
   ========================================================================== */

.club88-product-page {
	--club88-glow-duration: 1350ms;
	--club88-glow-ambient-blur: 42px;
	--club88-glow-gallery-blur: 24px;
	--club88-glow-button-blur: 39px;
}

.club88-product-page .club88-palette-glow {
	z-index: 0;
	inset: var(--club88-canvas-gutter);
	border-radius: var(--club88-canvas-radius);
}

.club88-product-page .club88-palette-glow__ambient,
.club88-product-page .club88-palette-glow__veil,
.club88-product-page .club88-palette-glow__edge {
	position: absolute;
	display: block;
	pointer-events: none;
}

.club88-product-page .club88-palette-glow__ambient {
	inset: 0;
	border-radius: inherit;
	border-width: 2px;
	box-shadow:
		0 0 14px rgba(var(--club88-glow-primary-rgb), .58),
		0 0 var(--club88-glow-ambient-blur) rgba(var(--club88-glow-primary-rgb), .50),
		0 0 calc(var(--club88-glow-ambient-blur) + 24px) rgba(var(--club88-glow-secondary-rgb), .34),
		inset 0 0 var(--club88-glow-gallery-blur) rgba(var(--club88-glow-primary-rgb), .22);
}

.club88-product-page .club88-palette-glow__veil {
	z-index: 2;
	inset: 1px;
	border-radius: calc(var(--club88-canvas-radius) - 1px);
	overflow: hidden;
	opacity: 0;
	background:
		linear-gradient(
			112deg,
			transparent 18%,
			rgba(var(--club88-glow-secondary-rgb), .08) 34%,
			rgba(var(--club88-glow-primary-rgb), .34) 47%,
			rgba(255, 255, 255, .48) 50%,
			rgba(var(--club88-glow-primary-rgb), .26) 54%,
			transparent 72%
		);
	mix-blend-mode: screen;
	transform: translate3d(-72%, 0, 0) skewX(-12deg);
	will-change: transform, opacity;
}

.club88-product-page .club88-palette-glow__edge {
	z-index: 3;
	inset: 0;
	border-radius: inherit;
	border-width: 2px;
	filter: saturate(1.16);
	will-change: filter, transform, opacity;
}

.club88-product-page.club88-palette-is-changing .club88-palette-glow__veil {
	animation: club88-premium-veil-v3 var(--club88-glow-duration) cubic-bezier(.22, .72, .18, 1) both;
}

.club88-product-page.club88-palette-is-changing .club88-palette-glow__edge {
	animation: club88-premium-edge-v3 var(--club88-glow-duration) cubic-bezier(.22, .72, .18, 1) both;
}

.club88-product-page.club88-palette-is-changing .club88-product-background {
	animation: club88-canvas-bloom-v3 var(--club88-glow-duration) ease-in-out both;
}

.club88-product-page.club88-palette-is-changing .club88-gallery-main,
.club88-product-page.club88-palette-is-changing .club88-product-summary__inner {
	animation: club88-panel-breathe-v3 900ms cubic-bezier(.22, .72, .18, 1) both;
}

.club88-product-page.club88-palette-is-changing .single_add_to_cart_button {
	animation: club88-cta-glow-v3 var(--club88-glow-duration) cubic-bezier(.22, .72, .18, 1) both;
}

.club88-product-page .club88-color-swatch.club88-swatch-pulse {
	animation: club88-swatch-glow-v3 var(--club88-glow-duration) cubic-bezier(.22, .72, .18, 1) both;
}

@keyframes club88-premium-veil-v3 {
	0% { opacity: 0; transform: translate3d(-72%, 0, 0) skewX(-12deg); }
	18% { opacity: .34; }
	48% { opacity: .72; }
	78% { opacity: .26; }
	100% { opacity: 0; transform: translate3d(72%, 0, 0) skewX(-12deg); }
}

@keyframes club88-premium-edge-v3 {
	0%, 100% { opacity: .12; filter: saturate(1) brightness(.96); transform: scale(.996); }
	38% { opacity: 1; filter: saturate(1.32) brightness(1.08); transform: scale(1.002); }
	68% { opacity: .62; filter: saturate(1.18) brightness(1.02); }
}

@keyframes club88-canvas-bloom-v3 {
	0%, 100% { box-shadow: var(--club88-shadow-sm); }
	42% {
		box-shadow:
			var(--club88-shadow-sm),
			0 0 0 2px rgba(var(--club88-glow-primary-rgb), .22),
			0 22px 64px rgba(var(--club88-glow-secondary-rgb), .20);
	}
}

@keyframes club88-panel-breathe-v3 {
	0%, 100% { transform: translateZ(0) scale(1); }
	46% { transform: translateZ(0) scale(1.004); }
}

@keyframes club88-cta-glow-v3 {
	0%, 100% { transform: translateZ(0) scale(1); box-shadow: 0 0 0 0 rgba(var(--club88-glow-primary-rgb), 0); }
	42% {
		transform: translateZ(0) scale(1.018);
		box-shadow:
			0 0 0 5px rgba(var(--club88-glow-primary-rgb), .26),
			0 0 var(--club88-glow-button-blur) rgba(var(--club88-glow-primary-rgb), .78),
			0 0 calc(var(--club88-glow-button-blur) + 18px) rgba(var(--club88-glow-secondary-rgb), .38);
	}
}

@keyframes club88-swatch-glow-v3 {
	0%, 100% { transform: translateZ(0) scale(1); }
	42% {
		transform: translateZ(0) scale(1.12);
		box-shadow:
			0 0 0 2px var(--club88-page),
			0 0 0 6px var(--club88-product-highlight),
			0 0 32px 11px rgba(var(--club88-glow-primary-rgb), .74);
	}
}

/* Glow-disabled mode must never hide functional controls. Only the decorative
   layer is removed; animations on the canvas, CTA, panels, and swatch are
   neutralized while the JavaScript color interpolation may continue. */
.club88-product-page[data-club88-glow="disabled"] .club88-palette-glow {
	display: none;
}

.club88-product-page[data-club88-glow="disabled"].club88-palette-is-changing .club88-product-background,
.club88-product-page[data-club88-glow="disabled"].club88-palette-is-changing .club88-gallery-main,
.club88-product-page[data-club88-glow="disabled"].club88-palette-is-changing .club88-product-summary__inner,
.club88-product-page[data-club88-glow="disabled"].club88-palette-is-changing .single_add_to_cart_button,
.club88-product-page[data-club88-glow="disabled"] .club88-color-swatch.club88-swatch-pulse {
	animation: none !important;
	transform: none !important;
}

@media (prefers-reduced-motion: reduce) {
	.club88-product-page[data-club88-respect-reduced-motion="yes"].club88-palette-is-changing .club88-product-background,
	.club88-product-page[data-club88-respect-reduced-motion="yes"].club88-palette-is-changing .club88-gallery-main,
	.club88-product-page[data-club88-respect-reduced-motion="yes"].club88-palette-is-changing .club88-product-summary__inner,
	.club88-product-page[data-club88-respect-reduced-motion="yes"].club88-palette-is-changing .single_add_to_cart_button,
	.club88-product-page[data-club88-respect-reduced-motion="yes"] .club88-color-swatch.club88-swatch-pulse {
		animation: none !important;
		transform: none !important;
	}
}

/* ========================================================================== 
   CLUB 88 v1.7.7 — accessible dark-canvas controls and readable hierarchy
   ========================================================================== */

/* Keep all essential copy on the palette's contrast-safe text tokens. */
.club88-product-page :is(
	.club88-product-title,
	.club88-price,
	.club88-breadcrumbs,
	.club88-breadcrumbs .woocommerce-breadcrumb,
	.club88-option-heading,
	.club88-option-heading strong,
	.club88-availability-row,
	.club88-product-technical-meta,
	.club88-modern-accordion__summary
) {
	color: var(--club88-text);
}

.club88-product-page :is(
	.club88-short-description,
	.club88-product-description-content,
	.club88-product-technical-meta,
	.club88-modern-accordion__content,
	.club88-service-copy small,
	.club88-delivery-card > div > span
) {
	color: var(--club88-muted);
}

.club88-product-page .club88-breadcrumbs,
.club88-product-page .club88-breadcrumbs .woocommerce-breadcrumb {
	font-size: 12px;
	font-weight: 550;
}

.club88-product-page .club88-option-heading strong {
	font-size: 12px;
	font-weight: 750;
}

/* Color swatches: larger hit targets, visible black swatches, and a non-color
 * selected state through a checkmark and raised accent ring. */
.club88-product-page .club88-option-buttons {
	gap: 12px;
}

.club88-product-page .club88-color-swatch {
	position: relative;
	width: 48px;
	min-width: 48px;
	height: 48px;
	min-height: 48px;
	border: 1px solid var(--club88-border-neutral-strong) !important;
	border-radius: 50%;
	background: color-mix(in srgb, var(--club88-surface) 86%, var(--club88-page) 14%) !important;
	box-shadow: 0 3px 10px rgba(0, 0, 0, .16);
	isolation: isolate;
	transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}

.club88-product-page .club88-color-swatch:hover:not(:disabled) {
	transform: translateY(-2px);
	border-color: color-mix(in srgb, var(--club88-product-highlight) 72%, var(--club88-text) 28%) !important;
	box-shadow: 0 5px 15px rgba(0, 0, 0, .22);
}

.club88-product-page .club88-swatch-dot {
	position: relative;
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	border: 2px solid color-mix(in srgb, var(--club88-text) 42%, transparent);
	background: var(--club88-swatch-color, #777);
	box-shadow:
		0 0 0 3px color-mix(in srgb, var(--club88-surface) 88%, var(--club88-page) 12%),
		inset 0 0 0 1px rgba(0, 0, 0, .14);
}

.club88-product-page .club88-swatch-dot::after {
	content: "";
	width: 8px;
	height: 14px;
	border-right: 3px solid var(--club88-swatch-check, #fff);
	border-bottom: 3px solid var(--club88-swatch-check, #fff);
	opacity: 0;
	transform: translateY(-1px) rotate(45deg) scale(.7);
	transition: opacity .14s ease, transform .14s ease;
}

.club88-product-page .club88-color-swatch.is-selected {
	transform: translateY(-2px) scale(1.04);
	border-color: var(--club88-product-highlight) !important;
	box-shadow:
		0 0 0 3px var(--club88-page),
		0 0 0 6px var(--club88-product-highlight),
		0 8px 20px color-mix(in srgb, var(--club88-product-highlight) 28%, transparent);
}

.club88-product-page .club88-color-swatch.is-selected .club88-swatch-dot::after {
	opacity: 1;
	transform: translateY(-1px) rotate(45deg) scale(1);
}

.club88-product-page .club88-color-swatch:focus-visible {
	outline: 3px solid var(--club88-text);
	outline-offset: 4px;
}

.club88-product-page .club88-color-swatch:disabled,
.club88-product-page .club88-color-swatch.is-disabled {
	opacity: .42;
	filter: grayscale(.65);
	transform: none;
}

/* Size/label options use visibly different selected and disabled states. */
.club88-product-page .club88-label-option {
	min-width: 46px;
	min-height: 44px;
	border-width: 1px;
	background: color-mix(in srgb, var(--club88-surface) 88%, var(--club88-page) 12%);
	color: var(--club88-text);
	font-size: 11px;
}

.club88-product-page .club88-label-option:hover:not(:disabled) {
	border-color: var(--club88-product-highlight);
	background: color-mix(in srgb, var(--club88-product-highlight) 12%, var(--club88-surface) 88%);
}

.club88-product-page .club88-label-option.is-selected {
	border-color: var(--club88-product-highlight);
	background: var(--club88-product-highlight);
	color: var(--club88-product-contrast);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--club88-product-highlight) 28%, transparent);
}

.club88-product-page .club88-option-button:disabled,
.club88-product-page .club88-option-button.is-disabled {
	border-color: var(--club88-border-neutral);
	background: color-mix(in srgb, var(--club88-surface) 54%, var(--club88-page) 46%);
	color: var(--club88-muted);
	opacity: .52;
	text-decoration: line-through;
	box-shadow: none;
}

/* Quantity and purchase controls remain readable and clearly state disabled. */
.club88-product-page .quantity {
	background: color-mix(in srgb, var(--club88-surface) 86%, var(--club88-page) 14%);
}

.club88-product-page .quantity input.qty,
.club88-product-page .club88-qty-button {
	color: var(--club88-text) !important;
}

.club88-product-page .club88-qty-button:hover:not(:disabled),
.club88-product-page .club88-qty-button:focus-visible {
	background: color-mix(in srgb, var(--club88-product-highlight) 14%, var(--club88-surface) 86%) !important;
}

.club88-product-page .club88-qty-button:disabled {
	background: color-mix(in srgb, var(--club88-surface) 70%, var(--club88-page) 30%) !important;
	color: var(--club88-muted) !important;
	opacity: .48;
}

body.club88-product-template-active .club88-product-page .club88-buy-now-button,
body.club88-product-template-active .club88-product-page .single_add_to_cart_button,
body.club88-product-template-active .club88-product-page .club88-sticky-buy {
	border-color: var(--club88-button) !important;
	background: var(--club88-button) !important;
	color: var(--club88-button-text) !important;
	font-size: 11px !important;
	box-shadow: 0 8px 22px color-mix(in srgb, var(--club88-button) 25%, transparent) !important;
}

body.club88-product-template-active .club88-product-page .club88-buy-now-button:hover:not(:disabled),
body.club88-product-template-active .club88-product-page .single_add_to_cart_button:hover:not(:disabled),
body.club88-product-template-active .club88-product-page .club88-sticky-buy:hover:not(:disabled) {
	border-color: color-mix(in srgb, var(--club88-button) 78%, #fff 22%) !important;
	background: color-mix(in srgb, var(--club88-button) 82%, #fff 18%) !important;
	color: var(--club88-button-text) !important;
}

body.club88-product-template-active .club88-product-page :is(
	.club88-buy-now-button:disabled,
	.single_add_to_cart_button:disabled,
	.single_add_to_cart_button.disabled,
	.club88-sticky-buy:disabled
) {
	border-color: var(--club88-border-neutral-strong) !important;
	background: color-mix(in srgb, var(--club88-surface) 72%, var(--club88-page) 28%) !important;
	color: var(--club88-muted) !important;
	opacity: .7 !important;
	box-shadow: none !important;
}

/* Commerce information cards use palette surfaces rather than hard-coded white
 * mixes, which keeps dark themes dark while preserving hierarchy. */
.club88-product-page .club88-availability-row {
	font-size: 13px;
	font-weight: 600;
	color: var(--club88-text);
}

.club88-product-page .club88-service-row {
	border-color: var(--club88-border-neutral-strong);
	background: color-mix(in srgb, var(--club88-surface) 82%, var(--club88-page) 18%);
}

.club88-product-page .club88-service-item {
	color: var(--club88-text);
}

.club88-product-page .club88-service-copy {
	gap: 3px;
	line-height: 1.35;
}

.club88-product-page .club88-service-copy strong {
	max-width: 170px;
	color: var(--club88-text);
	font-size: 12px;
	font-weight: 750;
}

.club88-product-page .club88-service-copy small {
	max-width: 170px;
	font-size: 11px;
	font-weight: 500;
	line-height: 1.35;
}

.club88-product-page .club88-delivery-card {
	border-color: color-mix(in srgb, var(--club88-product-highlight) 32%, var(--club88-border-neutral-strong));
	background: color-mix(in srgb, var(--club88-surface) 88%, var(--club88-product-highlight) 12%);
	color: var(--club88-text);
}

.club88-product-page .club88-delivery-card > div {
	font-size: 13px;
	line-height: 1.5;
}

.club88-product-page .club88-delivery-card strong {
	color: var(--club88-text);
}

.club88-product-page .club88-product-technical-meta {
	color: var(--club88-muted);
	font-size: 11px;
	font-weight: 600;
}

/* FAQ: stronger panel separation, readable rows, clear expanded state, and
 * dividers that remain visible on dark displays. */
.club88-product-page .club88-faq-list.club88-modern-accordion {
	border: 1px solid var(--club88-border-neutral-strong);
	background: color-mix(in srgb, var(--club88-surface) 86%, var(--club88-page) 14%) !important;
	box-shadow: 0 18px 50px rgba(0, 0, 0, .2);
}

.club88-product-page .club88-faq-list .club88-faq-item {
	border-bottom: 1px solid var(--club88-border-neutral-strong);
	transition: background-color .16s ease;
}

.club88-product-page .club88-faq-list .club88-faq-item:last-child {
	border-bottom: 0;
}

.club88-product-page .club88-faq-list .club88-faq-item[open] {
	background: color-mix(in srgb, var(--club88-product-highlight) 8%, var(--club88-surface) 92%);
}

.club88-product-page .club88-faq-list .club88-modern-accordion__summary {
	min-height: 72px;
	padding: 0 20px;
	color: var(--club88-text) !important;
	font-size: 16px;
	font-weight: 750;
}

.club88-product-page .club88-faq-list .club88-modern-accordion__summary:hover {
	background: color-mix(in srgb, var(--club88-product-highlight) 5%, transparent);
}

.club88-product-page .club88-faq-list .club88-faq-item[open] .club88-modern-accordion__summary {
	color: color-mix(in srgb, var(--club88-text) 86%, var(--club88-product-highlight) 14%) !important;
}

.club88-product-page .club88-faq-list .club88-modern-accordion__content,
[dir="rtl"] .club88-product-page .club88-faq-list .club88-modern-accordion__content {
	padding: 0 64px 26px 20px;
	color: var(--club88-muted) !important;
	font-size: 15px;
	line-height: 1.75;
}

[dir="rtl"] .club88-product-page .club88-faq-list .club88-modern-accordion__content {
	padding-inline: 64px 20px;
}

.club88-product-page .club88-faq-list .club88-modern-accordion__icon {
	border: 1px solid var(--club88-border-neutral-strong);
	background: color-mix(in srgb, var(--club88-surface) 72%, var(--club88-page) 28%);
	color: var(--club88-muted);
}

.club88-product-page .club88-faq-list .club88-faq-item[open] .club88-modern-accordion__icon {
	border-color: color-mix(in srgb, var(--club88-product-highlight) 58%, var(--club88-border-neutral-strong));
	background: color-mix(in srgb, var(--club88-product-highlight) 14%, var(--club88-surface) 86%);
	color: var(--club88-product-highlight);
}


/* Variation-interface authority. Native WooCommerce selects stay in the DOM;
 * only duplicate theme/plugin visual controls are suppressed. */
.club88-variation-ui-club88 .club88-product-page form.variations_form.club88-enhanced-ready .cfvsw-swatches-container,
.club88-variation-ui-club88 .club88-product-page form.variations_form.club88-enhanced-ready .ux-swatches,
.club88-variation-ui-club88 .club88-product-page form.variations_form.club88-enhanced-ready .ux-swatch:not(.club88-color-swatch),
.club88-variation-ui-native .club88-product-page .cfvsw-swatches-container,
.club88-variation-ui-native .club88-product-page .ux-swatches,
.club88-variation-ui-native .club88-product-page .ux-swatch {
	display: none !important;
}

/* Never hide every variation authority. When the PHP controls are incomplete,
 * expose the native/theme interface instead of leaving an unpurchasable form. */
.club88-variation-ui-club88 .club88-product-page form.variations_form.club88-native-fallback table.variations,
.club88-variation-ui-club88 .club88-product-page form.variations_form.club88-native-fallback .cfvsw-swatches-container,
.club88-variation-ui-club88 .club88-product-page form.variations_form.club88-native-fallback .ux-swatches {
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
	height: auto !important;
}
.club88-variation-ui-club88 .club88-product-page form.variations_form.club88-native-fallback .club88-native-variation-select,
.club88-variation-ui-club88 .club88-product-page form.variations_form.club88-native-fallback select[name^="attribute_"],
.club88-variation-ui-native .club88-product-page .cfvsw-hidden-select,
.club88-variation-ui-native .club88-product-page .club88-native-variation-select,
.club88-variation-ui-native .club88-product-page select[name^="attribute_"] {
	display: block !important;
	position: static !important;
	width: 100% !important;
	min-width: 0 !important;
	height: auto !important;
	min-height: 48px !important;
	overflow: visible !important;
	clip: auto !important;
	clip-path: none !important;
	white-space: normal !important;
	opacity: 1 !important;
	visibility: visible !important;
	pointer-events: auto !important;
}


/* Manager-only preview state must never look identical to a confirmed live rollout. */
.club88-product-page .club88-preview-banner {
	position: relative;
	z-index: 12;
	display: flex;
	gap: .55rem;
	align-items: center;
	justify-content: center;
	padding: .7rem 1rem;
	border-bottom: 1px solid color-mix(in srgb, var(--club88-product-highlight) 42%, var(--club88-border));
	background: color-mix(in srgb, var(--club88-product-highlight) 12%, var(--club88-surface));
	color: var(--club88-text);
	font-size: .86rem;
	text-align: center;
}
.club88-product-page .club88-preview-banner strong { text-transform: uppercase; letter-spacing: .08em; }
@media (max-width: 520px) { .club88-product-page .club88-preview-banner { align-items: flex-start; flex-direction: column; } }
