/**
 * Max Stack Toolkit storefront: quick view and wishlist.
 * Uses the theme's design tokens (colors, radius, shadows), including dark mode.
 */

/* ---- Card actions: heart and eye on product images ------------------------ */
.woocommerce ul.products li.product,
ul.products li.product { position: relative; }

.rc-card-action {
	position: absolute;
	top: 0.75rem;
	right: 0.75rem;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.25rem;
	height: 2.25rem;
	padding: 0;
	border: 1px solid rgb(var(--rc-c-line));
	border-radius: 9999px;
	background: rgb(var(--rc-c-surface) / 0.92);
	color: rgb(var(--rc-c-fg));
	box-shadow: 0 4px 12px -4px rgb(15 23 42 / 0.25);
	cursor: pointer;
	transition: opacity 0.18s, transform 0.18s, color 0.15s, background-color 0.15s;
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}
.rc-card-action + .rc-card-action { top: 3.375rem; }
.rc-card-action:hover { color: rgb(var(--rc-c-brand)); background: rgb(var(--rc-c-surface)); }
.rc-card-action:focus-visible { outline: 2px solid rgb(var(--rc-c-brand)); outline-offset: 2px; }
.rc-card-action svg { width: 1rem; height: 1rem; }

/* On pointer devices the actions appear on hover or keyboard focus; saved hearts stay visible. */
@media (hover: hover) {
	li.product .rc-card-action,
	.rc-edd-card .rc-card-action { opacity: 0; transform: translateX(6px); }
	li.product:hover .rc-card-action,
	li.product:focus-within .rc-card-action,
	li.product .rc-wish[aria-pressed="true"],
	.rc-edd-card:hover .rc-card-action,
	.rc-edd-card:focus-within .rc-card-action,
	.rc-edd-card .rc-wish[aria-pressed="true"] { opacity: 1; transform: none; }
}

/* ---- Heart button ---------------------------------------------------------- */
.rc-wish[aria-pressed="true"] { color: rgb(var(--rc-c-danger)); }
.rc-wish[aria-pressed="true"] svg { fill: currentColor; }
.rc-wish:active svg { transform: scale(0.85); }
.rc-wish svg { transition: transform 0.15s; }

.rc-wish--product {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 3rem;
	height: 3rem;
	margin-left: 0.5rem;
	padding: 0;
	border: 1px solid rgb(var(--rc-c-line));
	border-radius: var(--rc-btn-radius, 10px);
	background: rgb(var(--rc-c-surface));
	color: rgb(var(--rc-c-fg));
	vertical-align: middle;
	cursor: pointer;
	transition: border-color 0.15s, color 0.15s;
}
.rc-wish--product:hover { border-color: rgb(var(--rc-c-line-strong)); color: rgb(var(--rc-c-danger)); }
.rc-wish--product:focus-visible { outline: 2px solid rgb(var(--rc-c-brand)); outline-offset: 2px; }
.rc-wish--product svg { width: 1.25rem; height: 1.25rem; }

/* ---- Quick view dialog ----------------------------------------------------- */
.rc-dialog--quick-view { width: min(960px, calc(100vw - 2rem)); margin: auto; }
.rc-dialog--quick-view .rc-dialog__panel {
	position: relative;
	max-height: calc(100dvh - 2rem);
	overflow-y: auto;
	border-radius: var(--rc-modal-radius, 16px);
	opacity: 0;
	transform: translateY(12px) scale(0.98);
}
.rc-dialog--quick-view.is-open .rc-dialog__panel { opacity: 1; transform: none; }
.rc-qv__close {
	position: absolute;
	top: 0.75rem;
	right: 0.75rem;
	z-index: 2;
	border-radius: 9999px;
	background: rgb(var(--rc-c-surface) / 0.92);
	box-shadow: 0 2px 8px -2px rgb(15 23 42 / 0.25);
}

/* The theme lays out div.product (the single product page); the quick view keeps its own grid. */
.rc-qv,
.woocommerce div.product.rc-qv { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; padding: 1.25rem; }
@media (min-width: 768px) {
	.rc-qv,
	.woocommerce div.product.rc-qv { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2rem; padding: 2rem; }
}
.woocommerce div.product.rc-qv > .rc-qv__media,
.woocommerce div.product.rc-qv > .rc-qv__summary { grid-column: auto; grid-row: auto; position: static; }
.rc-qv__stage {
	overflow: hidden;
	aspect-ratio: 1;
	border-radius: var(--rc-card-radius, 12px);
	background: rgb(var(--rc-c-surface-sunken));
}
.rc-qv__image { display: block; width: 100%; height: 100%; object-fit: cover; }
.rc-qv__thumbs { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.75rem; }
.rc-qv__thumb {
	width: 3.5rem;
	height: 3.5rem;
	padding: 0;
	overflow: hidden;
	border: 2px solid transparent;
	border-radius: 0.5rem;
	background: none;
	cursor: pointer;
}
.rc-qv__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.rc-qv__thumb[aria-pressed="true"] { border-color: rgb(var(--rc-c-brand)); }
.rc-qv__thumb:focus-visible { outline: 2px solid rgb(var(--rc-c-brand)); outline-offset: 2px; }

.rc-qv__summary { display: flex; flex-direction: column; gap: 0.75rem; min-width: 0; padding-right: 2rem; }
.rc-qv__title {
	margin: 0;
	font-family: var(--rc-font-heading);
	font-size: clamp(1.25rem, 2.5vw, 1.625rem);
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: -0.02em;
	color: rgb(var(--rc-c-fg));
}
.rc-qv .price { margin: 0; font-size: 1.25rem; font-weight: 700; color: rgb(var(--rc-c-brand)); }
.rc-qv .woocommerce-product-details__short-description { font-size: 0.9375rem; line-height: 1.6; color: rgb(var(--rc-c-fg-muted)); }
.rc-qv .woocommerce-product-details__short-description p { margin: 0; }
.rc-qv form.cart { margin: 0.25rem 0 0; }
.rc-qv form.cart:not(.variations_form),
.rc-qv .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.rc-qv .variations { margin: 0 0 0.75rem; border: 0; }
.rc-qv .variations th,
.rc-qv .variations td { display: block; padding: 0; border: 0; text-align: left; }
.rc-qv .variations th label { font-size: 0.8125rem; font-weight: 600; color: rgb(var(--rc-c-fg)); }
.rc-qv .variations td { margin: 0.375rem 0 0.75rem; }
.rc-qv .reset_variations { font-size: 0.8125rem; margin-left: 0.5rem; }
.rc-qv .single_add_to_cart_button { flex: 1; min-width: 8rem; }
.rc-qv .rc-wish--product { margin-left: 0; }
.rc-qv .single_add_to_cart_button.loading { opacity: 0.7; pointer-events: none; }
.rc-qv__more {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	margin-top: auto;
	padding-top: 0.5rem;
	font-size: 0.875rem;
	font-weight: 600;
	color: rgb(var(--rc-c-brand));
	text-decoration: none;
}
.rc-qv__more:hover { text-decoration: underline; }

.rc-qv__loading { display: grid; place-items: center; min-height: 20rem; }
.rc-qv__spinner {
	width: 2rem;
	height: 2rem;
	border: 3px solid rgb(var(--rc-c-line));
	border-top-color: rgb(var(--rc-c-brand));
	border-radius: 9999px;
	animation: rc-qv-spin 0.8s linear infinite;
}
@keyframes rc-qv-spin { to { transform: rotate(360deg); } }
.rc-qv__error { padding: 3rem 1.5rem; text-align: center; color: rgb(var(--rc-c-fg-muted)); }

@media (prefers-reduced-motion: reduce) {
	.rc-dialog--quick-view .rc-dialog__panel,
	.rc-card-action { transition: none; }
	.rc-qv__spinner { animation-duration: 2s; }
}

/* ---- Wishlist page ----------------------------------------------------------- */
.rc-wishlist__loading { color: rgb(var(--rc-c-fg-muted)); }
.rc-wishlist__empty { display: flex; flex-direction: column; align-items: center; gap: 0.75rem; padding: 4rem 1rem; text-align: center; }
.rc-wishlist__empty[hidden] { display: none; }
.rc-wishlist__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 4rem;
	height: 4rem;
	border-radius: 9999px;
	background: rgb(var(--rc-c-brand-soft));
	color: rgb(var(--rc-c-brand));
}
.rc-wishlist__title { margin: 0.5rem 0 0; font-family: var(--rc-font-heading); font-size: 1.25rem; font-weight: 800; color: rgb(var(--rc-c-fg)); }
.rc-wishlist__text { margin: 0 0 0.5rem; color: rgb(var(--rc-c-fg-muted)); }

/* ---- Variation swatches -------------------------------------------------------- */
.rc-swatch-field { position: relative; }
/* WooCommerce's select stays in the form (its variation logic reads it) but out of sight. */
.rc-swatch-field select {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	opacity: 0;
	pointer-events: none;
	clip-path: inset(50%);
}
.rc-swatches { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.rc-swatch {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.75rem;
	height: 2.75rem;
	padding: 0 0.875rem;
	border: 1px solid rgb(var(--rc-c-line));
	border-radius: var(--rc-btn-radius, 10px);
	background: rgb(var(--rc-c-surface));
	color: rgb(var(--rc-c-fg));
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1;
	cursor: pointer;
	transition: border-color 0.15s, box-shadow 0.15s, opacity 0.15s;
}
.rc-swatch:hover { border-color: rgb(var(--rc-c-line-strong)); }
.rc-swatch:focus-visible { outline: 2px solid rgb(var(--rc-c-brand)); outline-offset: 2px; }
.rc-swatch[aria-checked="true"] { border-color: rgb(var(--rc-c-brand)); box-shadow: 0 0 0 1px rgb(var(--rc-c-brand)); }
.rc-swatches--button .rc-swatch[aria-checked="true"] { background: rgb(var(--rc-c-brand-soft)); color: rgb(var(--rc-c-brand)); }

/* Colour and image swatches are round. */
.rc-swatches--color .rc-swatch,
.rc-swatches--image .rc-swatch { width: 2.75rem; min-width: 0; padding: 0.1875rem; border-radius: 9999px; }
.rc-swatches--image .rc-swatch { border-radius: 0.625rem; }
.rc-swatch__color {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 9999px;
	background: var(--rc-swatch, #e5e7eb);
	box-shadow: inset 0 0 0 1px rgb(0 0 0 / 0.12);
}
.rc-swatch__image { display: block; width: 100%; height: 100%; border-radius: 0.4375rem; object-fit: cover; }

/* Combinations that do not exist: struck through and inactive. */
.rc-swatch.is-unavailable { opacity: 0.4; cursor: not-allowed; }
.rc-swatch.is-unavailable::after {
	content: '';
	position: absolute;
	inset: 50% 0.25rem auto;
	height: 1.5px;
	background: rgb(var(--rc-c-fg-muted));
	transform: rotate(-35deg);
}
.rc-swatches--button .rc-swatch.is-unavailable { text-decoration: line-through; }
.rc-swatches--button .rc-swatch.is-unavailable::after { display: none; }

.rc-swatch-current { margin-left: 0.375rem; font-weight: 500; color: rgb(var(--rc-c-fg-muted)); }
.rc-swatch-current:not(:empty)::before { content: ': '; margin-left: -0.375rem; }

/* Colour dots on product cards: real buttons under the price. */
.rc-loop-swatches { display: flex; align-items: center; gap: 0.375rem; margin: 0 var(--rc-card-padding, 1rem) 0.625rem; }
.rc-loop-swatch {
	width: 1.125rem;
	height: 1.125rem;
	padding: 0;
	border: 2px solid rgb(var(--rc-c-surface));
	border-radius: 9999px;
	background: var(--rc-swatch, #e5e7eb);
	box-shadow: 0 0 0 1px rgb(var(--rc-c-line-strong));
	cursor: pointer;
	transition: box-shadow 0.15s, transform 0.15s;
}
.rc-loop-swatch:hover { transform: scale(1.12); }
.rc-loop-swatch[aria-pressed="true"] { box-shadow: 0 0 0 2px rgb(var(--rc-c-brand)); }
.rc-loop-swatch:focus-visible { outline: 2px solid rgb(var(--rc-c-brand)); outline-offset: 2px; }
.rc-loop-swatch-more { font-size: 0.75rem; font-weight: 600; color: rgb(var(--rc-c-fg-muted)); }

@media (prefers-reduced-motion: reduce) {
	.rc-swatch { transition: none; }
}

/* ---- Easy Digital Downloads ------------------------------------------------- */
.rc-edd-card .rc-card-action { z-index: 3; }
.rc-edd-product__buy { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.rc-edd-product__buy .rc-wish--product,
.rc-qv__buy .rc-wish--product { margin-left: 0; }
.rc-qv__buy { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.rc-qv__buy .edd_download_purchase_form { flex: 1; min-width: 12rem; margin: 0; }
.rc-qv__placeholder { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; color: rgb(var(--rc-c-fg-subtle)); }
.rc-qv__excerpt p { margin: 0; color: rgb(var(--rc-c-fg-muted)); line-height: 1.6; }

/* Wishlist page with both stores: one group per store. */
.rc-wishlist__group { margin: 2rem 0 1rem; font-family: var(--rc-font-heading); font-size: 1.25rem; font-weight: 800; color: rgb(var(--rc-c-fg)); }
.rc-wishlist__group:first-child { margin-top: 0; }
