﻿/*
 * WDA WQV Premium — quick view gallery.
 *
 * Every selector is scoped under .wda-wqvp-gallery (added by JS to
 * .wda-wqv-product__images) or .wda-wqvp-lightbox, so the free stylesheet
 * keeps painting the base layout untouched. If this file fails to load,
 * the JS probe (.wda-wqvp-probe) notices and the module stands down.
 */

/* The CSS-load probe: JS checks computed position === absolute. */
.wda-wqvp-probe {
	position: absolute;
	width: 1px;
	height: 1px;
	visibility: hidden;
	pointer-events: none;
}

/* ------------------------------------------------------------------
 * Thumbnail strip: free wrap → single scroll-snap row
 * ------------------------------------------------------------------ */

.wda-wqvp-gallery .wda-wqv-thumbs {
	flex-wrap: nowrap;
	overflow-x: auto;
	scroll-snap-type: x proximity;
	scrollbar-width: none;
	padding: 2px;
}

.wda-wqvp-gallery .wda-wqv-thumbs::-webkit-scrollbar {
	display: none;
}

.wda-wqvp-gallery .wda-wqv-thumb {
	scroll-snap-align: start;
	flex: 0 0 auto;
}

/* Setting display on these classes would defeat the hidden attribute the
   JS toggles (UA [hidden] rules lose to any authored display) — guard it. */
.wda-wqvp-thumbs-nav[hidden],
.wda-wqvp-lightbox__nav[hidden] {
	display: none;
}

/* Strip arrows — same layer as the thumbs, above the main image. */
.wda-wqvp-thumbs-nav {
	position: absolute;
	inset-block-end: 14px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #ffffff;
	color: var(--wda-wqv-dark, #000000);
	box-shadow: var(--wda-wqv-shadow, 0 8px 24px rgba(15, 23, 42, 0.16));
	cursor: pointer;
}

.wda-wqvp-thumbs-nav--prev {
	inset-inline-start: 12px;
}

.wda-wqvp-thumbs-nav--next {
	inset-inline-end: 12px;
}

.wda-wqvp-thumbs-nav:hover,
.wda-wqvp-thumbs-nav:focus-visible {
	background: var(--wda-wqv-dark, #000000);
	color: #ffffff;
}

.wda-wqvp-thumbs-nav:focus:not(:focus-visible) {
	outline: none;
}

.wda-wqvp-thumbs-nav--prev svg {
	transform: scaleX(-1);
}

[dir="rtl"] .wda-wqvp-thumbs-nav--prev svg {
	transform: none;
}

[dir="rtl"] .wda-wqvp-thumbs-nav--next svg {
	transform: scaleX(-1);
}

/* ------------------------------------------------------------------
 * Hover zoom (desktop only; JS gates activation)
 * ------------------------------------------------------------------ */

.wda-wqvp-gallery .wda-wqv-main-image img {
	transition: transform 200ms ease;
	will-change: transform;
}

.wda-wqvp-gallery .wda-wqv-main-image.wda-wqvp-zoomed img {
	transform: scale(var(--wda-wqvp-zoom, 2));
}

@media (hover: none) {
	.wda-wqvp-gallery .wda-wqv-main-image img {
		transition: none;
		will-change: auto;
	}
}

/* ------------------------------------------------------------------
 * Slide-push image switch (QODE-style, direction-aware)
 * ------------------------------------------------------------------ */

/* Keep the sliding images clipped to the image box. */
.wda-wqvp-gallery .wda-wqv-main-image {
	overflow: hidden;
}

/* The OLD image, pushed out while the new one animates in beneath. */
.wda-wqvp-slide-out {
	position: absolute;
	inset: 0;
	z-index: 1;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	pointer-events: none;
}

@keyframes wda-wqvp-out-left {
	from {
		transform: translateX(0);
	}

	to {
		transform: translateX(-100%);
	}
}

@keyframes wda-wqvp-out-right {
	from {
		transform: translateX(0);
	}

	to {
		transform: translateX(100%);
	}
}

@keyframes wda-wqvp-in-right {
	from {
		transform: translateX(100%);
	}

	to {
		transform: translateX(0);
	}
}

@keyframes wda-wqvp-in-left {
	from {
		transform: translateX(-100%);
	}

	to {
		transform: translateX(0);
	}
}

.wda-wqvp-slide-out.wda-wqvp-dir-next {
	animation: wda-wqvp-out-left 300ms ease both;
}

.wda-wqvp-slide-out.wda-wqvp-dir-prev {
	animation: wda-wqvp-out-right 300ms ease both;
}

img.wda-wqvp-slide-in-next {
	animation: wda-wqvp-in-right 300ms ease both;
}

img.wda-wqvp-slide-in-prev {
	animation: wda-wqvp-in-left 300ms ease both;
}

/* ------------------------------------------------------------------
 * Expand (lightbox) button
 * ------------------------------------------------------------------ */

.wda-wqvp-expand {
	position: absolute;
	inset-block-start: 12px;
	inset-inline-end: 12px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #ffffff;
	color: var(--wda-wqv-dark, #000000);
	box-shadow: var(--wda-wqv-shadow, 0 8px 24px rgba(15, 23, 42, 0.16));
	cursor: pointer;
	transition: background-color 160ms ease, color 160ms ease;
}

.wda-wqvp-expand:hover,
.wda-wqvp-expand:focus-visible {
	background: var(--wda-wqv-dark, #000000);
	color: #ffffff;
}

.wda-wqvp-expand:focus:not(:focus-visible) {
	outline: none;
}

/* QODE-style custom cursor: the native cursor is hidden over the image
   and a plus glyph follows the pointer, self-inverting via blend
   difference — black over light image areas, white over dark ones. */
.wda-wqvp-gallery .wda-wqv-main-image.wda-wqvp-cursor-on {
	cursor: none;
}

.wda-wqvp-cursor {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 2;
	display: none;
	width: 40px;
	height: 40px;
	color: #ffffff;
	mix-blend-mode: difference;
	pointer-events: none;
}

.wda-wqvp-cursor.is-active {
	display: block;
}

/* Hidden while the pointer is over the expand button — its own hover
   style and pointer cursor take over there. */
.wda-wqvp-cursor.is-suppressed {
	display: none;
}

.wda-wqvp-cursor svg {
	display: block;
	width: 40px;
	height: 40px;
}

/* ------------------------------------------------------------------
 * Lightbox — dialog-bounded overlay (full-screen on mobile for free)
 * ------------------------------------------------------------------ */

.wda-wqvp-lightbox {
	position: absolute;
	inset: 0;
	z-index: 4;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--wda-wqv-radius, 0px);
	overflow: hidden;
	animation: wda-wqvp-lb-in 160ms ease;
}

@keyframes wda-wqvp-lb-in {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}

/* Lightbox view size: Medium/Full paint over the whole screen with
   fixed positioning while STAYING inside the dialog DOM — keyboard
   trap, Escape/arrow handling and close-watching keep working. (Inside
   a theme-transformed container, fixed is contained and these degrade
   gracefully to the popup-sized view.) */
.wda-wqvp-lightbox--medium,
.wda-wqvp-lightbox--full {
	position: fixed;
	inset: 0;
	border-radius: 0;
}

.wda-wqvp-lightbox--medium .wda-wqvp-lightbox__img,
.wda-wqvp-lightbox--medium .wda-wqvp-slide-out {
	max-width: 70vw;
	max-height: 70vh;
}

.wda-wqvp-lightbox__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(10, 12, 16, 0.92);
}

.wda-wqvp-lightbox__img {
	position: relative;
	z-index: 1;
	max-width: calc(100% - 96px);
	max-height: calc(100% - 48px);
	object-fit: contain;
	user-select: none;
}

.wda-wqvp-lightbox__close,
.wda-wqvp-lightbox__nav {
	position: absolute;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #ffffff;
	color: var(--wda-wqv-dark, #000000);
	box-shadow: var(--wda-wqv-shadow, 0 8px 24px rgba(15, 23, 42, 0.16));
	cursor: pointer;
	transition: background-color 160ms ease, color 160ms ease;
}

.wda-wqvp-lightbox__close:hover,
.wda-wqvp-lightbox__close:focus-visible,
.wda-wqvp-lightbox__nav:hover,
.wda-wqvp-lightbox__nav:focus-visible {
	background: var(--wda-wqv-dark, #000000);
	color: #ffffff;
}

.wda-wqvp-lightbox__close:focus:not(:focus-visible),
.wda-wqvp-lightbox__nav:focus:not(:focus-visible) {
	outline: none;
}

.wda-wqvp-lightbox__close {
	inset-block-start: 12px;
	inset-inline-end: 12px;
}

.wda-wqvp-lightbox__nav {
	inset-block-start: 50%;
	transform: translateY(-50%);
}

.wda-wqvp-lightbox__nav--prev {
	inset-inline-start: 12px;
}

.wda-wqvp-lightbox__nav--next {
	inset-inline-end: 12px;
}

.wda-wqvp-lightbox__nav--prev svg {
	transform: scaleX(-1);
}

[dir="rtl"] .wda-wqvp-lightbox__nav--prev svg {
	transform: none;
}

[dir="rtl"] .wda-wqvp-lightbox__nav--next svg {
	transform: scaleX(-1);
}

/* The lightbox CROSSFADES between images (differently-shaped contained
   images sliding over the dark backdrop would read as loose cards). The
   old-image overlay mirrors the contained image box and dissolves out
   while the new image dissolves in. */
.wda-wqvp-lightbox .wda-wqvp-slide-out {
	inset: 0;
	margin: auto;
	width: auto;
	height: auto;
	max-width: calc(100% - 96px);
	max-height: calc(100% - 48px);
	object-fit: contain;
}

@keyframes wda-wqvp-fade-out {
	from {
		opacity: 1;
	}

	to {
		opacity: 0;
	}
}

@keyframes wda-wqvp-fade-in {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}

.wda-wqvp-slide-out.wda-wqvp-lb-fade {
	animation: wda-wqvp-fade-out 300ms ease both;
}

.wda-wqvp-lightbox__img.wda-wqvp-lb-fade-in {
	animation: wda-wqvp-fade-in 300ms ease both;
}

/* "Crossfade" / "Fade & zoom" choices of the switching-animation setting. */
.wda-wqvp-slide-out.wda-wqvp-anim-fade-out {
	animation: wda-wqvp-fade-out 300ms ease both;
}

img.wda-wqvp-anim-fade-in {
	animation: wda-wqvp-fade-in 300ms ease both;
}

@keyframes wda-wqvp-fadezoom-in {
	from {
		opacity: 0;
		transform: scale(0.97);
	}

	to {
		opacity: 1;
		transform: scale(1);
	}
}

img.wda-wqvp-anim-fadezoom-in {
	animation: wda-wqvp-fadezoom-in 300ms ease both;
}

/* ------------------------------------------------------------------
 * Video slide + click-to-load consent
 * ------------------------------------------------------------------ */

.wda-wqvp-video-slide {
	position: absolute;
	inset: 0;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #0a0c10;
}

.wda-wqvp-video-slide .wda-wqvp-video-poster {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	opacity: 0.65;
}

.wda-wqvp-video-slide iframe,
.wda-wqvp-video-slide video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	background: #000000;
}

.wda-wqvp-video-consent {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	padding: 24px;
	text-align: center;
}

.wda-wqvp-video-consent__play {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #ffffff;
	color: var(--wda-wqv-dark, #000000);
	box-shadow: var(--wda-wqv-shadow, 0 8px 24px rgba(15, 23, 42, 0.16));
	cursor: pointer;
	transition: background-color 160ms ease, color 160ms ease;
}

.wda-wqvp-video-consent__play:hover,
.wda-wqvp-video-consent__play:focus-visible {
	background: var(--wda-wqv-dark, #000000);
	color: #ffffff;
}

.wda-wqvp-video-consent__play:focus:not(:focus-visible) {
	outline: none;
}

.wda-wqvp-video-consent__play svg {
	margin-inline-start: 0;
}

/* Video thumb: play badge over the poster thumbnail. */
.wda-wqvp-thumb-video {
	position: relative;
}

.wda-wqvp-play-badge {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(10, 12, 16, 0.35);
	color: #ffffff;
	border-radius: 6px;
	pointer-events: none;
}

.wda-wqvp-play-badge svg {
	width: 18px;
	height: 18px;
}

/* No-poster fallback: keep the tile visible. */
.wda-wqvp-thumb-video:empty,
.wda-wqvp-thumb-video:not(:has(img)) {
	min-width: 52px;
	min-height: 52px;
	background: #0a0c10;
}

/* ------------------------------------------------------------------
 * Navigation type: Dots / Numbers (replace the thumbnail strip)
 * ------------------------------------------------------------------ */

.wda-wqvp-nav-dots .wda-wqv-thumbs,
.wda-wqvp-nav-numbers .wda-wqv-thumbs,
.wda-wqvp-nav-dots .wda-wqvp-thumbs-nav,
.wda-wqvp-nav-numbers .wda-wqvp-thumbs-nav {
	display: none;
}

/* Self-inverting like the plus cursor: white items blended with
   difference — black over light image areas, white over dark ones. */
.wda-wqvp-nav {
	position: absolute;
	inset-inline: 0;
	inset-block-end: 14px;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #ffffff;
	mix-blend-mode: difference;
	pointer-events: none;
}

.wda-wqvp-nav__item {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
	cursor: pointer;
	pointer-events: auto;
}

.wda-wqvp-nav--dots {
	gap: 6px;
}

.wda-wqvp-nav--dots .wda-wqvp-nav__item {
	width: 20px;
	height: 20px;
}

.wda-wqvp-nav--dots .wda-wqvp-nav__item::before {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: currentColor;
	opacity: 0.45;
	transition: opacity 160ms ease, transform 160ms ease;
}

.wda-wqvp-nav--dots .wda-wqvp-nav__item:hover::before {
	opacity: 0.8;
}

.wda-wqvp-nav--dots .wda-wqvp-nav__item.is-active::before {
	opacity: 1;
	transform: scale(1.34);
}

.wda-wqvp-nav--numbers {
	gap: 14px;
}

.wda-wqvp-nav--numbers .wda-wqvp-nav__item {
	min-width: 20px;
	height: 24px;
	font-size: 14px;
	line-height: 24px;
	font-weight: 600;
	opacity: 0.45;
	transition: opacity 160ms ease;
}

.wda-wqvp-nav--numbers .wda-wqvp-nav__item:hover {
	opacity: 0.8;
}

.wda-wqvp-nav--numbers .wda-wqvp-nav__item.is-active {
	opacity: 1;
	text-decoration: underline;
	text-underline-offset: 4px;
}

/* Hover/press/focus armor for the transparent nav items: themes paint
   button:hover/:active/:focus backgrounds (the little square) — force
   them transparent at ID-level specificity. The visible feedback stays
   the dot/number brightening via opacity. */
.wda-wqvp-nav__item:not(#wda-wqv-boost):hover,
.wda-wqvp-nav__item:not(#wda-wqv-boost):active,
.wda-wqvp-nav__item:not(#wda-wqv-boost):focus:not(:focus-visible) {
	outline: none;
	border: 0;
	background: transparent;
	box-shadow: none;
	color: inherit;
}

.wda-wqvp-nav__item:not(#wda-wqv-boost):focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
	border: 0;
	background: transparent;
	box-shadow: none;
}

/* Quick view share row — visuals come from the free .wda-wqv-share
   styles; only summary spacing is added here. */
.wda-wqvp-qv-share {
	margin: 16px 0 0;
}

/* ------------------------------------------------------------------
 * Related products (QODE-style card row in the summary)
 * ------------------------------------------------------------------ */

.wda-wqvp-related {
	margin: 20px 0 0;
}

/* QODE parity: their heading carries a 13px bottom margin. */
.wda-wqvp-related__title {
	margin: 0 0 13px;
	font-size: 18px;
	font-weight: 500;
	line-height: 1.4;
}

/* ~3 cards visible with QODE's ~20px gaps; more scroll horizontally. */
.wda-wqvp-related__row {
	display: flex;
	gap: 20px;
	overflow-x: auto;
	scroll-snap-type: x proximity;
	scrollbar-width: none;
	padding-bottom: 4px;
}

.wda-wqvp-related__row::-webkit-scrollbar {
	display: none;
}

.wda-wqvp-related__item {
	flex: 0 0 calc((100% - 40px) / 3);
	min-width: 110px;
	display: flex;
	flex-direction: column;
	scroll-snap-align: start;
}

/* Card typography is self-owned, QODE-style — theme link colors,
   underlines and hover paints must not leak in (ID-level armor, same
   pattern as the buttons). */
.wda-wqvp-related__item:not(#wda-wqv-boost),
.wda-wqvp-related__item:not(#wda-wqv-boost):hover,
.wda-wqvp-related__item:not(#wda-wqv-boost):visited,
.wda-wqvp-related__item:not(#wda-wqv-boost):focus:not(:focus-visible) {
	color: var(--wda-wqv-dark, #000000);
	text-decoration: none;
	background: transparent;
	border: 0;
	box-shadow: none;
	outline: none;
}

.wda-wqvp-related__item:not(#wda-wqv-boost):focus-visible {
	outline: 2px solid var(--wda-wqv-dark, #000000);
	outline-offset: 2px;
}

.wda-wqvp-related__item:hover .wda-wqvp-related__name,
.wda-wqvp-related__item:focus-visible .wda-wqvp-related__name {
	text-decoration: none;
	text-underline-offset: 3px;
}

/* QODE parity: uniform portrait crop, square corners, NO hover effect
   on the image — the title underline is the only hover feedback. */
.wda-wqvp-related__thumb {
	overflow: hidden;
}

.wda-wqvp-related__thumb img {
	display: block;
	width: 100%;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	object-position: center;
}

/* Carousel arrows — same circles as the thumbnail strip, overlaid at
   the row edges, shown by JS only when the cards overflow. */
.wda-wqvp-related__wrap {
	position: relative;
}

.wda-wqvp-related__nav {
	position: absolute;
	inset-block-start: 50%;
	transform: translateY(-50%);
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #ffffff;
	color: var(--wda-wqv-dark, #000000);
	box-shadow: 0 2px 12px rgba(15, 23, 42, 0.18);
	cursor: pointer;
	transition: background-color 160ms ease, color 160ms ease;
}

.wda-wqvp-related__nav[hidden] {
	display: none;
}

/* The row's scrollable overflow leaks into ancestor scroll measurements
   (Chrome), which made the free summary column grow a horizontal
   scrollbar — clip it here and at the summary itself. */
.wda-wqvp-related,
.wda-wqvp-related__wrap {
	overflow: hidden;
}

#wda-wqv-modal .wda-wqv-product__summary-scroll {
	overflow-x: hidden;
}

/* QODE places the arrows 10px inside the row edges, vertically centered
   on the IMAGE band (the JS sets inset-block-start to the image middle). */
.wda-wqvp-related__nav--prev {
	inset-inline-start: 10px;
}

.wda-wqvp-related__nav--next {
	inset-inline-end: 10px;
}

.wda-wqvp-related__nav svg {
	width: 18px;
	height: 18px;
}

.wda-wqvp-related__nav:hover,
.wda-wqvp-related__nav:focus-visible {
	background: var(--wda-wqv-dark, #000000);
	color: #ffffff;
}

.wda-wqvp-related__nav:focus:not(:focus-visible) {
	outline: none;
}

[dir="rtl"] .wda-wqvp-related__nav svg {
	transform: scaleX(-1);
}

/* QODE typography: regular-weight dark title 7px under the image, dark
   regular price right below it. */
.wda-wqvp-related__name {
	margin-top: 7px;
	font-size: 14px;
	line-height: 1.5;
	font-weight: 400;
	color: var(--wda-wqv-dark, #000000);
}

.wda-wqvp-related__price {
	margin-top: 2px;
	font-size: 13px;
	font-weight: 400;
	color: var(--wda-wqv-dark, #000000);
}

.wda-wqvp-related__price del {
	opacity: 0.5;
	margin-inline-end: 2px;
}

.wda-wqvp-related__price ins {
	text-decoration: none;
	font-weight: 400;
}

/* ------------------------------------------------------------------
 * Wishlist item quantities (M3)
 * ------------------------------------------------------------------ */

/* Compact stepper mirroring the modal's quantity control. */
.wda-wqv-wishlist .wda-wqvp-wl-qty {
	display: inline-flex;
	align-items: stretch;
	height: 36px;
	border: 1px solid #d7d9dd;
	border-radius: 6px;
	background: var(--wda-wqv-surface, #ffffff);
	overflow: hidden;
	vertical-align: middle;
}

.wda-wqv-wishlist .wda-wqvp-wl-qty__input:not(#wda-wqv-boost) {
	width: 38px !important;
	height: 100% !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	color: var(--wda-wqv-text, #1f2933) !important;
	font-size: 14px;
	text-align: center;
	appearance: textfield;
	-moz-appearance: textfield;
}

.wda-wqv-wishlist .wda-wqvp-wl-qty__input::-webkit-outer-spin-button,
.wda-wqv-wishlist .wda-wqvp-wl-qty__input::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.wda-wqv-wishlist .wda-wqvp-wl-qty__btn:not(#wda-wqv-boost) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	color: var(--wda-wqv-muted, #6b7280) !important;
	font-size: 15px;
	line-height: 1;
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
	transition: color 0.15s ease, background-color 0.15s ease;
}

.wda-wqv-wishlist .wda-wqvp-wl-qty__btn:not(#wda-wqv-boost):hover,
.wda-wqv-wishlist .wda-wqvp-wl-qty__btn:not(#wda-wqv-boost):focus-visible {
	background: #f5f6f7 !important;
	color: var(--wda-wqv-text, #1f2933) !important;
}

.wda-wqv-wishlist .wda-wqvp-wl-qty__btn:not(#wda-wqv-boost):focus:not(:focus-visible) {
	outline: none;
}

/* ------------------------------------------------------------------
 * Wishlist total price
 * ------------------------------------------------------------------ */

.wda-wqv-wishlist .wda-wqvp-col-subtotal {
	white-space: nowrap;
}

.wda-wqv-wishlist .wda-wqvp-wl-total {
	display: flex;
	justify-content: flex-end;
	align-items: baseline;
	gap: 8px;
	margin: 14px 0 4px;
	font-size: 15px;
}

.wda-wqv-wishlist .wda-wqvp-wl-total__label {
	color: var(--wda-wqv-muted, #6b7280);
}

.wda-wqv-wishlist .wda-wqvp-wl-total__value {
	font-weight: 600;
}

/* My Account tab: the account content column is narrow, so the table
   drops its info-only columns there (Subtotal + Total row, Added on,
   Stock status). The standalone wishlist page shows everything. */
.woocommerce-MyAccount-content .wda-wqv-wishlist .wda-wqv-col-stock,
.woocommerce-MyAccount-content .wda-wqv-wishlist .wda-wqv-col-date,
.woocommerce-MyAccount-content .wda-wqv-wishlist .wda-wqvp-col-subtotal,
.woocommerce-MyAccount-content .wda-wqv-wishlist .wda-wqvp-wl-total {
	display: none !important;
}

/* And SQUEEZE the remaining table into the narrow account column
   instead of scrolling: no width floor, tighter cells, smaller thumbs,
   compact stepper/select/buttons. The standalone page is untouched. */
.woocommerce-MyAccount-content .wda-wqv-wishlist .wda-wqv-wishlist-table {
	min-width: 0;
	font-size: 0.8em;
}

.woocommerce-MyAccount-content .wda-wqv-wishlist .wda-wqv-wishlist-table th,
.woocommerce-MyAccount-content .wda-wqv-wishlist .wda-wqv-wishlist-table td {
	padding: 0.55rem 0.3rem;
}

.woocommerce-MyAccount-content .wda-wqv-wishlist .wda-wqv-wishlist-table .wda-wqv-col-thumb {
	width: 64px;
}

.woocommerce-MyAccount-content .wda-wqv-wishlist .wda-wqv-wishlist-table .wda-wqv-col-thumb a {
	max-width: 52px;
}

.woocommerce-MyAccount-content .wda-wqv-wishlist .wda-wqvp-wl-qty {
	height: 32px;
}

.woocommerce-MyAccount-content .wda-wqv-wishlist .wda-wqvp-wl-qty__input:not(#wda-wqv-boost) {
	width: 28px !important;
}

.woocommerce-MyAccount-content .wda-wqv-wishlist .wda-wqvp-wl-qty__btn:not(#wda-wqv-boost) {
	width: 22px;
}

.woocommerce-MyAccount-content .wda-wqv-wishlist .wda-wqvp-move-select:not(#wda-wqv-boost) {
	height: 32px;
	max-width: 104px;
	padding: 0 4px;
	font-size: 12px;
	line-height: 30px;
}

/* The theme's Add-to-cart button is the widest cell — compact it here
   (armored: block-theme button styles otherwise win). */
.woocommerce-MyAccount-content .wda-wqv-wishlist .wda-wqv-col-actions .button {
	padding: 8px 10px !important;
	font-size: 12px !important;
}

/* ------------------------------------------------------------------
 * Guest email capture
 * ------------------------------------------------------------------ */

/* The one-time post-add card. Raised above the free toast lane
   (fixed at the same corner, 20px + toast height) so the "added to
   wishlist" toast and the card never overlap. */
.wda-wqvp-capture {
	position: fixed;
	inset-block-end: 96px;
	inset-inline-end: 20px;
	z-index: 9998;
	width: min(340px, calc(100vw - 40px));
	padding: 18px;
	border: 1px solid #e2e4e8;
	border-radius: 10px;
	background: var(--wda-wqv-surface, #ffffff);
	box-shadow: 0 12px 32px rgba(15, 23, 42, 0.18);
}

.wda-wqvp-capture[hidden] {
	display: none;
}

.wda-wqvp-capture__close:not(#wda-wqv-boost) {
	position: absolute;
	inset-block-start: 8px;
	inset-inline-end: 10px;
	padding: 2px 6px !important;
	border: 0 !important;
	background: transparent !important;
	color: var(--wda-wqv-muted, #6b7280) !important;
	font-size: 18px;
	line-height: 1 !important;
	cursor: pointer;
	box-shadow: none !important;
	min-height: 0 !important;
}

.wda-wqvp-capture__title {
	margin: 0 0 4px;
	font-weight: 600;
	font-size: 14px;
}

.wda-wqvp-capture__text {
	margin: 0 0 12px;
	font-size: 13px;
	color: var(--wda-wqv-muted, #6b7280);
}

.wda-wqvp-capture__form {
	display: flex;
	gap: 8px;
	align-items: center;
	flex-wrap: wrap;
}

.wda-wqvp-capture__form input[type="email"]:not(#wda-wqv-boost) {
	flex: 1 1 140px;
	height: 36px;
	margin: 0;
	padding: 0 10px;
	border: 1px solid #d7d9dd;
	border-radius: 6px;
	background: var(--wda-wqv-surface, #ffffff);
	color: var(--wda-wqv-text, #1f2933);
	font-size: 13px;
	line-height: 34px;
	box-shadow: none;
	min-width: 0;
}

/* The plugin's own button — identical on every theme (armored so theme
   button styles cannot repaint it), height matched to the email field. */
.wda-wqvp-capture__form .button:not(#wda-wqv-boost) {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	height: 36px !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 16px !important;
	border: 0 !important;
	border-radius: 6px !important;
	background: var(--wda-wqv-dark, #141414) !important;
	color: #ffffff !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	line-height: 1 !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	text-decoration: none !important;
	box-shadow: none !important;
	box-sizing: border-box !important;
	cursor: pointer;
	transition: opacity 160ms ease;
}

.wda-wqvp-capture__form .button:not(#wda-wqv-boost):hover,
.wda-wqvp-capture__form .button:not(#wda-wqv-boost):focus-visible {
	background: #000000 !important;
	color: #ffffff !important;
	opacity: 0.92;
}

.wda-wqvp-capture__dismiss:not(#wda-wqv-boost) {
	margin-block-start: 10px;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	color: var(--wda-wqv-muted, #6b7280) !important;
	font-size: 12px;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
	box-shadow: none !important;
	min-height: 0 !important;
}

/* Wishlist-page opt-in / status row. */
.wda-wqv-wishlist .wda-wqvp-capture-row {
	flex-basis: 100%;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	color: var(--wda-wqv-muted, #6b7280);
}

.wda-wqv-wishlist .wda-wqvp-capture-row__remove:not(#wda-wqv-boost) {
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	color: var(--wda-wqv-muted, #6b7280) !important;
	font-size: 12px;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
	box-shadow: none !important;
	min-height: 0 !important;
}

@media (max-width: 600px) {
	.wda-wqvp-capture {
		inset-inline-start: 20px;
		width: auto;
	}
}

/* ------------------------------------------------------------------
 * Multiple wishlists (M4)
 * ------------------------------------------------------------------ */

.wda-wqv-wishlist .wda-wqvp-lists {
	margin-block-end: 18px;
}

.wda-wqv-wishlist .wda-wqvp-lists-notice {
	margin: 0 0 12px;
	padding: 10px 14px;
	border-inline-start: 3px solid var(--wda-wqv-dark, #111111);
	background: #f5f6f7;
	font-size: 14px;
}

.wda-wqv-wishlist .wda-wqvp-lists-bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-block-end: 12px;
}

/* Pills are <a>/<button> mixes: strip theme paint at armor level so
   both render identically. */
.wda-wqv-wishlist .wda-wqvp-list-pill:not(#wda-wqv-boost) {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 0 !important;
	padding: 8px 14px !important;
	border: 1px solid #d7d9dd !important;
	border-radius: 999px !important;
	background: var(--wda-wqv-surface, #ffffff) !important;
	color: var(--wda-wqv-text, #1f2933) !important;
	min-height: 0 !important;
	font-size: 13px;
	line-height: 1 !important;
	text-decoration: none !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	box-shadow: none !important;
	cursor: pointer;
	transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}

.wda-wqv-wishlist .wda-wqvp-list-pill:not(#wda-wqv-boost):hover {
	border-color: var(--wda-wqv-dark, #111111) !important;
	color: var(--wda-wqv-text, #1f2933) !important;
	background: var(--wda-wqv-surface, #ffffff) !important;
}

.wda-wqv-wishlist .wda-wqvp-list-pill:not(#wda-wqv-boost).is-active {
	border-color: var(--wda-wqv-dark, #111111) !important;
	background: var(--wda-wqv-dark, #111111) !important;
	color: #ffffff !important;
}

.wda-wqv-wishlist .wda-wqvp-list-pill__count {
	font-size: 12px;
	opacity: 0.6;
}

.wda-wqv-wishlist .wda-wqvp-list-pill--new:not(#wda-wqv-boost) {
	border-style: dashed !important;
}

.wda-wqv-wishlist .wda-wqvp-list-pill:not(#wda-wqv-boost):focus:not(:focus-visible) {
	outline: none;
}

.wda-wqv-wishlist .wda-wqvp-list-pill:not(#wda-wqv-boost):focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

.wda-wqv-wishlist .wda-wqvp-lists-form {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 0 0 12px;
}

/* The JS toggle uses [hidden]; guard against authored display. */
.wda-wqv-wishlist .wda-wqvp-lists-form[hidden] {
	display: none;
}

/* Inside the toolbar the rename form is a flex item: without a full-row
   basis it squeezes into the space left beside the buttons and its Save
   button wraps under the input. */
.wda-wqv-wishlist .wda-wqvp-list-tools .wda-wqvp-lists-form {
	flex-basis: 100%;
	margin: 6px 0 0;
}

.wda-wqv-wishlist .wda-wqvp-lists-form input[type="text"]:not(#wda-wqv-boost) {
	height: 36px;
	margin: 0;
	padding: 0 12px;
	border: 1px solid #d7d9dd;
	border-radius: 6px;
	background: var(--wda-wqv-surface, #ffffff);
	color: var(--wda-wqv-text, #1f2933);
	font-size: 14px;
	line-height: 34px;
	box-shadow: none;
	max-width: 240px;
}

.wda-wqv-wishlist .wda-wqvp-lists-hint {
	flex-basis: 100%;
	font-size: 12px;
	color: var(--wda-wqv-muted, #6b7280);
}

.wda-wqv-wishlist .wda-wqvp-list-tools {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 14px;
	margin-block-end: 6px;
}

.wda-wqv-wishlist .wda-wqvp-list-title {
	margin: 0;
	font-size: 18px;
}

/* Shared view renders the title standalone (no toolbar around it). */
.wda-wqv-wishlist > .wda-wqvp-list-title {
	margin: 0 0 14px;
}

.wda-wqv-wishlist .wda-wqvp-share-preview {
	margin: 0 0 12px;
	font-size: 13px;
	color: var(--wda-wqv-muted, #6b7280);
}

.wda-wqv-wishlist .wda-wqvp-delete-form {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	margin: 0;
}

/* Quiet link-styled management buttons. */
.wda-wqv-wishlist .wda-wqvp-list-tools__btn:not(#wda-wqv-boost) {
	display: inline-flex;
	margin: 0 !important;
	padding: 4px 2px !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	color: var(--wda-wqv-muted, #6b7280) !important;
	min-height: 0 !important;
	font-size: 13px;
	line-height: 1.2 !important;
	text-decoration: underline;
	text-underline-offset: 3px;
	text-transform: none !important;
	letter-spacing: normal !important;
	box-shadow: none !important;
	cursor: pointer;
}

.wda-wqv-wishlist .wda-wqvp-list-tools__btn:not(#wda-wqv-boost):hover,
.wda-wqv-wishlist .wda-wqvp-list-tools__btn:not(#wda-wqv-boost):focus-visible {
	color: var(--wda-wqv-text, #1f2933) !important;
	background: transparent !important;
}

.wda-wqv-wishlist .wda-wqvp-list-tools__btn:not(#wda-wqv-boost):focus:not(:focus-visible) {
	outline: none;
}

.wda-wqv-wishlist .wda-wqvp-list-tools__btn--danger:not(#wda-wqv-boost) {
	color: #b32d2e !important;
}

.wda-wqv-wishlist .wda-wqvp-list-tools__btn--danger:not(#wda-wqv-boost):hover,
.wda-wqv-wishlist .wda-wqvp-list-tools__btn--danger:not(#wda-wqv-boost):focus-visible {
	color: #8a2424 !important;
}

/* Move-to column. */
.wda-wqv-wishlist .wda-wqvp-col-move {
	white-space: nowrap;
}

.wda-wqv-wishlist .wda-wqvp-move-form {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 0;
}

/* No-JS fallback only: hidden from the first paint (the dropdown
   auto-submits with JS); a <noscript> rule in wp_head re-shows it.
   Armor level — theme .button rules otherwise repaint it visible. */
.wda-wqv-wishlist .wda-wqvp-move-go:not(#wda-wqv-boost) {
	display: none !important;
}

.wda-wqv-wishlist .wda-wqvp-move-select:not(#wda-wqv-boost) {
	height: 36px;
	margin: 0;
	padding: 0 8px;
	border: 1px solid #d7d9dd;
	border-radius: 6px;
	background: var(--wda-wqv-surface, #ffffff);
	color: var(--wda-wqv-text, #1f2933);
	font-size: 13px;
	line-height: 34px;
	max-width: 150px;
	box-shadow: none;
}

/* ------------------------------------------------------------------
 * Wishlist additions counter
 * ------------------------------------------------------------------ */

/* The span renders INSIDE the wishlist button, so every placement is
   anchored to the heart circle itself — immune to theme-specific
   overlay-layout quirks — and its visibility simply follows the
   button's own (hover reveal, touch always-on, added state). */

/* Inline loop placements (non-overlay): a quiet number after the label. */
.wda-wqvp-wish-count--loop {
	margin-inline-start: 2px;
	font-size: 12px;
	font-weight: 500;
	line-height: 1;
	color: var(--wda-wqv-muted, #6b7280);
}

/* Overlay: the shared white disc/badge look. */
.wda-wqv-loop-overlay .wda-wqvp-wish-count--loop {
	position: absolute;
	z-index: 6;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 18px;
	height: 18px;
	box-sizing: border-box;
	margin: 0;
	margin-inline-start: 0;
	padding: 0 5px;
	border-radius: 999px;
	background: var(--wda-wqv-surface, #ffffff);
	color: var(--wda-wqv-text, #1f2933);
	font-size: 11px;
	font-weight: 600;
	line-height: 1;
	text-align: center;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.12);
}

/* Under icon (default): disc centered below the circle. Physical
   left/translateX pair on purpose — centering must not flip in RTL
   (a logical inset with a physical transform lands off-center). */
.wda-wqv-loop-overlay .wda-wqvp-wish-count--under {
	inset-block-start: calc(100% + 4px);
	left: 50%;
	transform: translateX(-50%);
}

/* ...and the room for it, so the quick view eye is not covered. */
.wda-wqv-loop-overlay .wda-wqv-btn:has(> .wda-wqvp-wish-count--under:not(:empty)) {
	margin-block-end: 14px;
}

/* Corner styles: badge on the circle's shoulder. */
.wda-wqv-loop-overlay .wda-wqvp-wish-count--corner {
	inset-block-start: -7px;
}

.wda-wqv-loop-overlay .wda-wqvp-wish-count--corner-tr {
	inset-inline-end: -13px;
}

.wda-wqv-loop-overlay .wda-wqvp-wish-count--corner-tl {
	inset-inline-start: -13px;
}

/* Phones (the free sheet compacts the circles to 32px under 600px):
   the discs shrink with the circles. Under-icon KEEPS its disc below
   the heart — the option must look different from the corner styles
   on mobile too — just pulled in tighter; the corners stay corners. */
@media (max-width: 600px) {
	.wda-wqv-loop-overlay .wda-wqvp-wish-count--loop {
		min-width: 16px;
		height: 16px;
		padding: 0 4px;
		font-size: 10px;
	}

	.wda-wqv-loop-overlay .wda-wqvp-wish-count--under {
		inset-block-start: calc(100% + 3px);
	}

	.wda-wqv-loop-overlay .wda-wqv-btn:has(> .wda-wqvp-wish-count--under:not(:empty)) {
		margin-block-end: 13px;
	}

	.wda-wqv-loop-overlay .wda-wqvp-wish-count--corner {
		inset-block-start: -5px;
	}

	.wda-wqv-loop-overlay .wda-wqvp-wish-count--corner-tr {
		inset-inline-end: -13px;
	}

	.wda-wqv-loop-overlay .wda-wqvp-wish-count--corner-tl {
		inset-inline-start: -13px;
	}
}

/* Kadence renders the buttons as a HORIZONTAL flat action row (see the
   free sheet's .product-action-wrap variant) — an under-icon disc would
   hang into the content below at any width, so there it is always the
   corner badge on the heart. */
.theme-kadence .product-action-wrap .wda-wqv-loop-overlay .wda-wqvp-wish-count--under,
.wp-theme-kadence .product-action-wrap .wda-wqv-loop-overlay .wda-wqvp-wish-count--under {
	inset-block-start: -6px;
	inset-inline-start: auto;
	inset-inline-end: -4px;
	transform: none;
	min-width: 16px;
	height: 16px;
	padding: 0 4px;
	font-size: 10px;
}

.theme-kadence .product-action-wrap .wda-wqv-loop-overlay .wda-wqv-btn:has(> .wda-wqvp-wish-count--under:not(:empty)),
.wp-theme-kadence .product-action-wrap .wda-wqv-loop-overlay .wda-wqv-btn:has(> .wda-wqvp-wish-count--under:not(:empty)) {
	margin-block-end: 0;
}

/* Single product / quick view: a raised dark circle badge right after
   the "Add to wishlist" label (QODE-style). */
.wda-wqvp-wish-count--badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 23px;
	height: 23px;
	margin-inline-start: 4px;
	padding: 0 4px;
	border-radius: 999px;
	background: var(--wda-wqv-dark, #111111);
	color: #ffffff;
	font-size: 11px;
	font-weight: 600;
	line-height: 1;
	align-self: flex-start;
	transform: translateY(-6px);
}

/* Zero/hidden counts render an empty span (kept in the DOM so the
   client-side bump has a node to fill on the first add). */
.wda-wqvp-wish-count:empty {
	display: none !important;
}

/* ------------------------------------------------------------------
 * Add to cart button styles (Bookstore WDA parity)
 * ------------------------------------------------------------------ */

/* Cart row armor (all themes, all button styles): themes float the
   quantity control or add button margins, breaking the free plugin's
   one-line flex row — reassert it with force inside the modal. */
#wda-wqv-modal form.cart:has(> .quantity),
#wda-wqv-modal .woocommerce-variation-add-to-cart {
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: center !important;
	gap: 10px !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Clearfix pseudo-elements become phantom flex items and each eats a
   gap — the mystery indents before the quantity and after the button. */
#wda-wqv-modal form.cart:has(> .quantity)::before,
#wda-wqv-modal form.cart:has(> .quantity)::after,
#wda-wqv-modal .woocommerce-variation-add-to-cart::before,
#wda-wqv-modal .woocommerce-variation-add-to-cart::after {
	content: none !important;
	display: none !important;
}

#wda-wqv-modal form.cart > .quantity:not(#wda-wqv-boost),
#wda-wqv-modal .woocommerce-variation-add-to-cart .quantity:not(#wda-wqv-boost) {
	margin: 0 !important;
	float: none !important;
}

/* The Add to cart button fills the row space next to the quantity. */
#wda-wqv-modal form.cart:has(> .quantity) .button:not(#wda-wqv-boost),
#wda-wqv-modal .woocommerce-variation-add-to-cart .button:not(#wda-wqv-boost) {
	margin: 0 !important;
	float: none !important;
	flex: 1 1 auto !important;
}

/* Buy now: full-width on its own line below the cart row. */
.wda-wqv-modal .wda-wqvp-buy-now-wrap {
	margin: 10px 0 0;
}

.wda-wqv-modal .wda-wqvp-buy-now {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100% !important;
	box-sizing: border-box !important;
	cursor: pointer;
}

.wda-wqv-modal .wda-wqvp-buy-now:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.wda-wqv-modal .wda-wqvp-buy-now.is-loading {
	opacity: 0.7;
	pointer-events: none;
}

/* Shared base for all styled variants: the theme's typography and its
   box-shadow wipe technique, normalized to the 44px quantity-control
   height so the cart row lines up. Armored with !important — themes
   commonly paint .button with their own !important rules. */
/* Both the styled button and the quantity control render border-box, so
   the pair is exactly 44px tall regardless of the theme's box-sizing. */
body[class*="wda-wqvp-atc--"] #wda-wqv-modal .quantity.wda-wqv-qty {
	box-sizing: border-box;
	height: 44px;
}

body[class*="wda-wqvp-atc--"] #wda-wqv-modal form.cart .button:not(#wda-wqv-boost),
body[class*="wda-wqvp-atc--"] #wda-wqv-modal .woocommerce-variation-add-to-cart .button:not(#wda-wqv-boost),
body[class*="wda-wqvp-bn--"] #wda-wqv-modal .wda-wqvp-buy-now:not(#wda-wqv-boost) {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	box-sizing: border-box !important;
	height: 44px !important;
	padding: 0 26px !important;
	margin: 0 !important;
	border-radius: 6px !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	letter-spacing: 1px !important;
	line-height: 1 !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	cursor: pointer;
	transition: ease-out 0.5s !important;
}

/* Dark scheme: solid dark, white text. */
body.wda-wqvp-atc--dark #wda-wqv-modal form.cart .button:not(#wda-wqv-boost),
body.wda-wqvp-atc--dark #wda-wqv-modal .woocommerce-variation-add-to-cart .button:not(#wda-wqv-boost),
body.wda-wqvp-atc--dark-fill-in #wda-wqv-modal form.cart .button:not(#wda-wqv-boost),
body.wda-wqvp-atc--dark-fill-in #wda-wqv-modal .woocommerce-variation-add-to-cart .button:not(#wda-wqv-boost),
body.wda-wqvp-atc--dark-offset #wda-wqv-modal form.cart .button:not(#wda-wqv-boost),
body.wda-wqvp-atc--dark-offset #wda-wqv-modal .woocommerce-variation-add-to-cart .button:not(#wda-wqv-boost),
body.wda-wqvp-bn--dark #wda-wqv-modal .wda-wqvp-buy-now:not(#wda-wqv-boost),
body.wda-wqvp-bn--dark-fill-in #wda-wqv-modal .wda-wqvp-buy-now:not(#wda-wqv-boost),
body.wda-wqvp-bn--dark-offset #wda-wqv-modal .wda-wqvp-buy-now:not(#wda-wqv-boost) {
	background-color: var(--wda-wqv-dark, #060606) !important;
	color: #ffffff !important;
	border: 1px solid var(--wda-wqv-dark, #060606) !important;
	box-shadow: inset 0 0 0 0 #ffffff !important;
}

/* Dark - Default: white wipes in from the left. */
body.wda-wqvp-atc--dark #wda-wqv-modal form.cart .button:not(#wda-wqv-boost):hover,
body.wda-wqvp-atc--dark #wda-wqv-modal form.cart .button:not(#wda-wqv-boost):focus-visible,
body.wda-wqvp-atc--dark #wda-wqv-modal .woocommerce-variation-add-to-cart .button:not(#wda-wqv-boost):hover,
body.wda-wqvp-atc--dark #wda-wqv-modal .woocommerce-variation-add-to-cart .button:not(#wda-wqv-boost):focus-visible,
body.wda-wqvp-bn--dark #wda-wqv-modal .wda-wqvp-buy-now:not(#wda-wqv-boost):hover,
body.wda-wqvp-bn--dark #wda-wqv-modal .wda-wqvp-buy-now:not(#wda-wqv-boost):focus-visible {
	box-shadow: inset 400px 0 0 0 #ffffff !important;
	color: var(--wda-wqv-dark, #060606) !important;
}

/* Dark - Fill In: white fills inward from all edges. */
body.wda-wqvp-atc--dark-fill-in #wda-wqv-modal form.cart .button:not(#wda-wqv-boost):hover,
body.wda-wqvp-atc--dark-fill-in #wda-wqv-modal form.cart .button:not(#wda-wqv-boost):focus-visible,
body.wda-wqvp-atc--dark-fill-in #wda-wqv-modal .woocommerce-variation-add-to-cart .button:not(#wda-wqv-boost):hover,
body.wda-wqvp-atc--dark-fill-in #wda-wqv-modal .woocommerce-variation-add-to-cart .button:not(#wda-wqv-boost):focus-visible,
body.wda-wqvp-bn--dark-fill-in #wda-wqv-modal .wda-wqvp-buy-now:not(#wda-wqv-boost):hover,
body.wda-wqvp-bn--dark-fill-in #wda-wqv-modal .wda-wqvp-buy-now:not(#wda-wqv-boost):focus-visible {
	box-shadow: inset 0 0 0 33px #ffffff !important;
	color: var(--wda-wqv-dark, #060606) !important;
}

/* Dark - Offset: white fill + the signature offset corner frames. */
body.wda-wqvp-atc--dark-offset #wda-wqv-modal form.cart .button:not(#wda-wqv-boost):hover,
body.wda-wqvp-atc--dark-offset #wda-wqv-modal form.cart .button:not(#wda-wqv-boost):focus-visible,
body.wda-wqvp-atc--dark-offset #wda-wqv-modal .woocommerce-variation-add-to-cart .button:not(#wda-wqv-boost):hover,
body.wda-wqvp-atc--dark-offset #wda-wqv-modal .woocommerce-variation-add-to-cart .button:not(#wda-wqv-boost):focus-visible,
body.wda-wqvp-bn--dark-offset #wda-wqv-modal .wda-wqvp-buy-now:not(#wda-wqv-boost):hover,
body.wda-wqvp-bn--dark-offset #wda-wqv-modal .wda-wqvp-buy-now:not(#wda-wqv-boost):focus-visible {
	box-shadow: inset 0 0 0 100px #ffffff, 4px -4px 0 0 var(--wda-wqv-dark, #060606), -4px 4px 0 0 var(--wda-wqv-dark, #060606) !important;
	color: var(--wda-wqv-dark, #060606) !important;
}

/* Custom Secondary scheme: outlined, dark border and text. */
body.wda-wqvp-atc--secondary #wda-wqv-modal form.cart .button:not(#wda-wqv-boost),
body.wda-wqvp-atc--secondary #wda-wqv-modal .woocommerce-variation-add-to-cart .button:not(#wda-wqv-boost),
body.wda-wqvp-atc--secondary-fill-in #wda-wqv-modal form.cart .button:not(#wda-wqv-boost),
body.wda-wqvp-atc--secondary-fill-in #wda-wqv-modal .woocommerce-variation-add-to-cart .button:not(#wda-wqv-boost),
body.wda-wqvp-bn--secondary #wda-wqv-modal .wda-wqvp-buy-now:not(#wda-wqv-boost),
body.wda-wqvp-bn--secondary-fill-in #wda-wqv-modal .wda-wqvp-buy-now:not(#wda-wqv-boost) {
	background-color: transparent !important;
	color: var(--wda-wqv-dark, #121111) !important;
	border: 1px solid var(--wda-wqv-dark, #121111) !important;
	box-shadow: inset 0 0 0 0 var(--wda-wqv-dark, #121111) !important;
}

/* Custom Secondary - Default: dark wipes in from the left. */
body.wda-wqvp-atc--secondary #wda-wqv-modal form.cart .button:not(#wda-wqv-boost):hover,
body.wda-wqvp-atc--secondary #wda-wqv-modal form.cart .button:not(#wda-wqv-boost):focus-visible,
body.wda-wqvp-atc--secondary #wda-wqv-modal .woocommerce-variation-add-to-cart .button:not(#wda-wqv-boost):hover,
body.wda-wqvp-atc--secondary #wda-wqv-modal .woocommerce-variation-add-to-cart .button:not(#wda-wqv-boost):focus-visible,
body.wda-wqvp-bn--secondary #wda-wqv-modal .wda-wqvp-buy-now:not(#wda-wqv-boost):hover,
body.wda-wqvp-bn--secondary #wda-wqv-modal .wda-wqvp-buy-now:not(#wda-wqv-boost):focus-visible {
	box-shadow: inset 400px 0 0 0 var(--wda-wqv-dark, #121111) !important;
	color: #ffffff !important;
}

/* Custom Secondary - Fill In: dark fills inward from all edges. */
body.wda-wqvp-atc--secondary-fill-in #wda-wqv-modal form.cart .button:not(#wda-wqv-boost):hover,
body.wda-wqvp-atc--secondary-fill-in #wda-wqv-modal form.cart .button:not(#wda-wqv-boost):focus-visible,
body.wda-wqvp-atc--secondary-fill-in #wda-wqv-modal .woocommerce-variation-add-to-cart .button:not(#wda-wqv-boost):hover,
body.wda-wqvp-atc--secondary-fill-in #wda-wqv-modal .woocommerce-variation-add-to-cart .button:not(#wda-wqv-boost):focus-visible,
body.wda-wqvp-bn--secondary-fill-in #wda-wqv-modal .wda-wqvp-buy-now:not(#wda-wqv-boost):hover,
body.wda-wqvp-bn--secondary-fill-in #wda-wqv-modal .wda-wqvp-buy-now:not(#wda-wqv-boost):focus-visible {
	box-shadow: inset 0 0 0 33px var(--wda-wqv-dark, #121111) !important;
	color: #ffffff !important;
}

/* ------------------------------------------------------------------
 * Focus armor + lightbox-open state
 * ------------------------------------------------------------------ */

/* While the lightbox is open, the free product prev/next arrows would
   switch the whole product underneath it — hide them. Must outrank the
   free 1.0.1 theme armor (`#wda-wqv-modal .wda-wqv-modal__nav
   :not(#wda-wqv-boost)` + !important — the :not() counts as an ID), so
   this carries the same :not() ID bump plus the lb-open class. */
#wda-wqv-modal.wda-wqvp-lb-open .wda-wqv-modal__nav:not(#wda-wqv-boost) {
	display: none !important;
}

/* Pointer focus must look exactly like the idle state: themes commonly
   paint button:focus (colors/shadows/outlines) and win the cascade, so
   these run at ID-level specificity via :not(#wda-wqv-boost). Keyboard
   focus keeps a clear ring below. */
.wda-wqvp-expand:not(#wda-wqv-boost):focus:not(:focus-visible),
.wda-wqvp-thumbs-nav:not(#wda-wqv-boost):focus:not(:focus-visible),
.wda-wqvp-lightbox__close:not(#wda-wqv-boost):focus:not(:focus-visible),
.wda-wqvp-lightbox__nav:not(#wda-wqv-boost):focus:not(:focus-visible),
.wda-wqvp-video-consent__play:not(#wda-wqv-boost):focus:not(:focus-visible),
.wda-wqvp-related__nav:not(#wda-wqv-boost):focus:not(:focus-visible) {
	outline: none;
	border: 0;
	background: #ffffff;
	color: var(--wda-wqv-dark, #000000);
	box-shadow: var(--wda-wqv-shadow, 0 8px 24px rgba(15, 23, 42, 0.16));
}

/* …but a pointer-focused button under the cursor still shows its
   normal hover look. */
.wda-wqvp-expand:not(#wda-wqv-boost):focus:not(:focus-visible):hover,
.wda-wqvp-thumbs-nav:not(#wda-wqv-boost):focus:not(:focus-visible):hover,
.wda-wqvp-lightbox__close:not(#wda-wqv-boost):focus:not(:focus-visible):hover,
.wda-wqvp-lightbox__nav:not(#wda-wqv-boost):focus:not(:focus-visible):hover,
.wda-wqvp-video-consent__play:not(#wda-wqv-boost):focus:not(:focus-visible):hover,
.wda-wqvp-related__nav:not(#wda-wqv-boost):focus:not(:focus-visible):hover {
	background: var(--wda-wqv-dark, #000000);
	color: #ffffff;
}

/* Keyboard focus: our own ring, not the theme's. */
.wda-wqvp-expand:not(#wda-wqv-boost):focus-visible,
.wda-wqvp-thumbs-nav:not(#wda-wqv-boost):focus-visible,
.wda-wqvp-lightbox__close:not(#wda-wqv-boost):focus-visible,
.wda-wqvp-lightbox__nav:not(#wda-wqv-boost):focus-visible,
.wda-wqvp-video-consent__play:not(#wda-wqv-boost):focus-visible,
.wda-wqvp-related__nav:not(#wda-wqv-boost):focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
	border: 0;
	background: var(--wda-wqv-dark, #000000);
	color: #ffffff;
	box-shadow: var(--wda-wqv-shadow, 0 8px 24px rgba(15, 23, 42, 0.16));
}

/* ------------------------------------------------------------------
 * Theme armor for the gallery buttons
 *
 * Page builders (Elementor kits & co.) paint every <button> — background,
 * border, radius, padding, min-sizes — at a specificity that beats the
 * base rules above, turning the circles into theme-styled rectangles.
 * Re-assert the full visual identity at ID level with !important.
 * Positioning stays in the base rules. State rules follow the base so
 * the cascade inside this section resolves hover/focus correctly, and
 * every display toggle that must survive the armor is re-stated at the
 * end.
 * ------------------------------------------------------------------ */

#wda-wqv-modal .wda-wqvp-expand:not(#wda-wqv-boost),
#wda-wqv-modal .wda-wqvp-thumbs-nav:not(#wda-wqv-boost),
#wda-wqv-modal .wda-wqvp-lightbox__close:not(#wda-wqv-boost),
#wda-wqv-modal .wda-wqvp-lightbox__nav:not(#wda-wqv-boost),
#wda-wqv-modal .wda-wqvp-video-consent__play:not(#wda-wqv-boost),
#wda-wqv-modal .wda-wqvp-related__nav:not(#wda-wqv-boost) {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 50% !important;
	background: #ffffff !important;
	color: var(--wda-wqv-dark, #000000) !important;
	min-width: 0 !important;
	min-height: 0 !important;
	line-height: 1 !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	box-shadow: var(--wda-wqv-shadow, 0 8px 24px rgba(15, 23, 42, 0.16)) !important;
}

#wda-wqv-modal .wda-wqvp-expand:not(#wda-wqv-boost),
#wda-wqv-modal .wda-wqvp-lightbox__close:not(#wda-wqv-boost),
#wda-wqv-modal .wda-wqvp-lightbox__nav:not(#wda-wqv-boost) {
	width: 40px !important;
	height: 40px !important;
}

#wda-wqv-modal .wda-wqvp-thumbs-nav:not(#wda-wqv-boost) {
	width: 32px !important;
	height: 32px !important;
}

#wda-wqv-modal .wda-wqvp-video-consent__play:not(#wda-wqv-boost) {
	width: 64px !important;
	height: 64px !important;
}

#wda-wqv-modal .wda-wqvp-related__nav:not(#wda-wqv-boost) {
	width: 36px !important;
	height: 36px !important;
	box-shadow: 0 2px 12px rgba(15, 23, 42, 0.18) !important;
}

/* States: hover/keyboard-focus invert; pointer focus keeps the idle look. */
#wda-wqv-modal .wda-wqvp-expand:not(#wda-wqv-boost):hover,
#wda-wqv-modal .wda-wqvp-thumbs-nav:not(#wda-wqv-boost):hover,
#wda-wqv-modal .wda-wqvp-lightbox__close:not(#wda-wqv-boost):hover,
#wda-wqv-modal .wda-wqvp-lightbox__nav:not(#wda-wqv-boost):hover,
#wda-wqv-modal .wda-wqvp-video-consent__play:not(#wda-wqv-boost):hover,
#wda-wqv-modal .wda-wqvp-related__nav:not(#wda-wqv-boost):hover {
	background: var(--wda-wqv-dark, #000000) !important;
	color: #ffffff !important;
}

#wda-wqv-modal .wda-wqvp-expand:not(#wda-wqv-boost):focus:not(:focus-visible),
#wda-wqv-modal .wda-wqvp-thumbs-nav:not(#wda-wqv-boost):focus:not(:focus-visible),
#wda-wqv-modal .wda-wqvp-lightbox__close:not(#wda-wqv-boost):focus:not(:focus-visible),
#wda-wqv-modal .wda-wqvp-lightbox__nav:not(#wda-wqv-boost):focus:not(:focus-visible),
#wda-wqv-modal .wda-wqvp-video-consent__play:not(#wda-wqv-boost):focus:not(:focus-visible),
#wda-wqv-modal .wda-wqvp-related__nav:not(#wda-wqv-boost):focus:not(:focus-visible) {
	outline: none !important;
	background: #ffffff !important;
	color: var(--wda-wqv-dark, #000000) !important;
}

#wda-wqv-modal .wda-wqvp-expand:not(#wda-wqv-boost):focus:not(:focus-visible):hover,
#wda-wqv-modal .wda-wqvp-thumbs-nav:not(#wda-wqv-boost):focus:not(:focus-visible):hover,
#wda-wqv-modal .wda-wqvp-lightbox__close:not(#wda-wqv-boost):focus:not(:focus-visible):hover,
#wda-wqv-modal .wda-wqvp-lightbox__nav:not(#wda-wqv-boost):focus:not(:focus-visible):hover,
#wda-wqv-modal .wda-wqvp-video-consent__play:not(#wda-wqv-boost):focus:not(:focus-visible):hover,
#wda-wqv-modal .wda-wqvp-related__nav:not(#wda-wqv-boost):focus:not(:focus-visible):hover {
	background: var(--wda-wqv-dark, #000000) !important;
	color: #ffffff !important;
}

#wda-wqv-modal .wda-wqvp-expand:not(#wda-wqv-boost):focus-visible,
#wda-wqv-modal .wda-wqvp-thumbs-nav:not(#wda-wqv-boost):focus-visible,
#wda-wqv-modal .wda-wqvp-lightbox__close:not(#wda-wqv-boost):focus-visible,
#wda-wqv-modal .wda-wqvp-lightbox__nav:not(#wda-wqv-boost):focus-visible,
#wda-wqv-modal .wda-wqvp-video-consent__play:not(#wda-wqv-boost):focus-visible,
#wda-wqv-modal .wda-wqvp-related__nav:not(#wda-wqv-boost):focus-visible {
	outline: 2px solid currentColor !important;
	outline-offset: 2px !important;
	background: var(--wda-wqv-dark, #000000) !important;
	color: #ffffff !important;
}

/* Dots/numbers items are transparent blend-difference controls: strip
   any theme button paint entirely. */
#wda-wqv-modal .wda-wqvp-nav__item:not(#wda-wqv-boost) {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	color: inherit !important;
	min-width: 0 !important;
	min-height: 0 !important;
	box-shadow: none !important;
	text-transform: none !important;
}

#wda-wqv-modal .wda-wqvp-nav--dots .wda-wqvp-nav__item:not(#wda-wqv-boost) {
	width: 20px !important;
	height: 20px !important;
}

#wda-wqv-modal .wda-wqvp-nav--numbers .wda-wqvp-nav__item:not(#wda-wqv-boost) {
	min-width: 20px !important;
	width: auto !important;
	height: 24px !important;
	font-size: 14px !important;
	line-height: 24px !important;
	font-weight: 600 !important;
}

/* Display toggles that must survive the armored display above. */
#wda-wqv-modal .wda-wqvp-thumbs-nav:not(#wda-wqv-boost)[hidden],
#wda-wqv-modal .wda-wqvp-lightbox__nav:not(#wda-wqv-boost)[hidden],
#wda-wqv-modal .wda-wqvp-related__nav:not(#wda-wqv-boost)[hidden],
#wda-wqv-modal .wda-wqvp-nav-dots .wda-wqvp-thumbs-nav:not(#wda-wqv-boost),
#wda-wqv-modal .wda-wqvp-nav-numbers .wda-wqvp-thumbs-nav:not(#wda-wqv-boost) {
	display: none !important;
}

/* ------------------------------------------------------------------
 * Mobile ≤900px — rides the free stacked layout
 * ------------------------------------------------------------------ */

@media (max-width: 900px) {
	/* The free sheet makes the main image static here; relative keeps the
	   identical layout while anchoring the slide-out overlay (and the
	   expand button) to the image box instead of the whole column. */
	.wda-wqvp-gallery .wda-wqv-main-image {
		position: relative;
	}

	/* The stacked layout puts the image under the dialog's top-right close
	   button (1.5rem/1.5rem, 36px); slot the expand button below it,
	   center-aligned, instead of overlapping in the corner. */
	.wda-wqvp-expand {
		inset-block-start: 68px;
		inset-inline-end: 22px;
	}

	.wda-wqvp-lightbox .wda-wqvp-slide-out {
		max-width: calc(100% - 24px);
		max-height: calc(100% - 120px);
	}

	/* The free sheet makes .wda-wqv-main-image static with a 55dvh img;
	   the video slide replaces that banner with a 16:9 box. */
	.wda-wqvp-video-slide {
		position: static;
		aspect-ratio: 16 / 9;
		height: auto;
	}

	.wda-wqvp-gallery.wda-wqvp-video-active .wda-wqv-main-image {
		display: none;
	}

	.wda-wqvp-lightbox__img {
		max-width: calc(100% - 24px);
		max-height: calc(100% - 120px);
	}

	/* Zoom is JS-disabled on small screens; kill its transition too. */
	.wda-wqvp-gallery .wda-wqv-main-image img {
		transition: none;
	}
}

/* Desktop: the video slide overlays the main image, which stays in flow. */
@media (min-width: 901px) {
	.wda-wqvp-gallery.wda-wqvp-video-active .wda-wqv-main-image {
		visibility: hidden;
	}
}

/* ------------------------------------------------------------------
 * Reduced motion
 * ------------------------------------------------------------------ */

@media (prefers-reduced-motion: reduce) {
	.wda-wqvp-gallery .wda-wqv-main-image img,
	.wda-wqvp-expand,
	.wda-wqvp-thumbs-nav,
	.wda-wqvp-lightbox__close,
	.wda-wqvp-lightbox__nav,
	.wda-wqvp-video-consent__play,
	.wda-wqvp-nav__item,
	.wda-wqvp-nav__item::before,
	.wda-wqvp-related__nav {
		transition: none;
	}

	body[class*="wda-wqvp-atc--"] #wda-wqv-modal form.cart .button:not(#wda-wqv-boost),
	body[class*="wda-wqvp-atc--"] #wda-wqv-modal .woocommerce-variation-add-to-cart .button:not(#wda-wqv-boost),
	body[class*="wda-wqvp-bn--"] #wda-wqv-modal .wda-wqvp-buy-now:not(#wda-wqv-boost) {
		transition: none !important;
	}

	.wda-wqvp-lightbox {
		animation: none;
	}

	.wda-wqvp-slide-out {
		display: none;
	}

	img.wda-wqvp-slide-in-next,
	img.wda-wqvp-slide-in-prev,
	img.wda-wqvp-anim-fade-in,
	img.wda-wqvp-anim-fadezoom-in,
	.wda-wqvp-lightbox__img.wda-wqvp-lb-fade-in {
		animation: none;
	}

	.wda-wqvp-gallery .wda-wqv-thumbs {
		scroll-behavior: auto;
	}
}

/* ------------------------------------------------------------------
 * Wishlist privacy control + public wishlist search
 * ------------------------------------------------------------------ */

.wda-wqv-wishlist .wda-wqvp-privacy {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}

.wda-wqv-wishlist .wda-wqvp-privacy__label {
	font-size: 16px;
	color: var(--ast-global-color-3);
}

/* Same field identity as the Move-to select — block themes leave native
   selects unstyled, so the control owns its look (armored). */
.wda-wqv-wishlist .wda-wqvp-privacy__select:not(#wda-wqv-boost) {
	height: 36px;
	margin: 0;
	padding: 0 8px;
	border: 1px solid #d7d9dd;
	border-radius: 6px;
	background: var(--wda-wqv-surface, #ffffff);
	color: var(--wda-wqv-text, #1f2933);
	font-size: 13px;
	line-height: 34px;
	max-width: 250px;
	box-shadow: none;
}

/* No-JS fallback only: hidden from first paint at armor level, the
   module's <noscript> rule re-shows it when JS is off. */
.wda-wqv-wishlist .wda-wqvp-privacy-save:not(#wda-wqv-boost) {
	display: none !important;
}

.wda-wqv-wishlist .wda-wqvp-privacy__notice {
	font-size: 12px;
	color: var(--wda-wqv-muted, #6b7280);
}

.wda-wqv-wishlist .wda-wqvp-privacy__notice--error {
	color: #b32d2e;
}

/* A private list's share row is misleading — hide it (browsers without
   :has() simply keep it; the link itself is blocked server-side). */
.wda-wqv-wishlist:has(.wda-wqvp-privacy[data-visibility="private"]) .wda-wqv-share {
	display: none !important;
}

/* Search page */
.wda-wqvp-ws__form {
	display: flex;
	gap: 8px;
	max-width: 480px;
	margin-bottom: 12px;
}

.wda-wqvp-ws__form input[type="search"] {
	flex: 1;
	min-width: 0;
}

.wda-wqvp-ws__hint {
	font-size: 13px;
	color: var(--wda-wqv-muted, #6b7280);
}

.wda-wqvp-ws__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
	padding: 12px 0;
	border-bottom: 1px solid var(--wda-wqv-border, #e5e7eb);
}

.wda-wqvp-ws__info {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.wda-wqvp-ws__list {
	font-weight: 600;
}

.wda-wqvp-ws__meta {
	font-size: 13px;
	color: var(--wda-wqv-muted, #6b7280);
}

/* ------------------------------------------------------------------
 * Cart page wishlist link
 * ------------------------------------------------------------------ */

.wda-wqvp-cart-save {
	margin-top: 6px;
}

.wda-wqvp-cart-save__link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	line-height: 1.2;
	color: var(--wda-wqv-dark, #141414);
	text-decoration: none;
	opacity: 0.75;
}

.wda-wqvp-cart-save__link:hover,
.wda-wqvp-cart-save__link:focus-visible {
	opacity: 1;
	text-decoration: underline;
}

.wda-wqvp-cart-save__link svg {
	width: 14px;
	height: 14px;
	flex: 0 0 auto;
}

.wda-wqvp-cart-save__link.is-busy {
	opacity: 0.4;
	pointer-events: none;
}

/* Block cart: sit between the item metadata and the quantity stepper. */
.wc-block-cart-item__product .wda-wqvp-cart-save {
	margin: 4px 0 8px;
}


/* ------------------------------------------------------------------
 * Print wishlist
 *
 * Screen: only the button (plus hidden paper header / pages note)
 * exist. Printing from the button: JS tags the clicked container
 * (.wda-wqvp-print-target), wraps it in a one-cell table
 * (#wda-wqvp-print-sheet) whose thead/tfoot spacer rows repeat as the
 * top/bottom paper margin on EVERY printed sheet (the injected
 * @page{margin:0} — which suppresses the browser's own date/title/URL
 * header and footer — removes the real margins on every page, and
 * element padding would only pad the first and last), and marks every
 * ancestor with .wda-wqvp-print-path so the rules below collapse the
 * rest of the page. A plain Ctrl+P without the button prints the page
 * as usual.
 * ------------------------------------------------------------------ */

.wda-wqv-wishlist .wda-wqvp-print-row {
	margin-top: 16px;
}

/* The suite's own black button (same identity as the capture form's
   Notify me): block themes leave `.button` unstyled and classic themes
   each paint it differently — armored, the control looks right anywhere. */
.wda-wqv-wishlist .wda-wqvp-print:not(#wda-wqv-boost) {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	height: 36px !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 16px !important;
	border: 0 !important;
	border-radius: 6px !important;
	background: var(--wda-wqv-dark, #141414) !important;
	color: #ffffff !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	line-height: 1 !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	text-decoration: none !important;
	box-shadow: none !important;
	box-sizing: border-box !important;
	cursor: pointer;
	transition: opacity 160ms ease;
}

.wda-wqv-wishlist .wda-wqvp-print:not(#wda-wqv-boost):hover,
.wda-wqv-wishlist .wda-wqvp-print:not(#wda-wqv-boost):focus-visible {
	background: #000000 !important;
	color: #ffffff !important;
	opacity: 0.92;
}

/* The temporary sheet wrapper is layout-neutral on screen (it exists
   only while the print dialog is open). */
.wda-wqvp-print-sheet {
	width: 100%;
	border-collapse: collapse;
}

.wda-wqvp-print-sheet td {
	padding: 0;
	border: 0;
	background: transparent;
}

@media print {
	/* Collapse everything off the wishlist's ancestor path. */
	body.wda-wqvp-printing .wda-wqvp-print-path > :not(.wda-wqvp-print-path):not(.wda-wqvp-print-sheet):not(.wda-wqvp-print-target) {
		display: none !important;
	}

	/* The walk marks body itself, and "path > child" can never address
	   body's own children — hide them explicitly too (themes without a
	   page wrapper, chat/cookie widgets appended to body). */
	body.wda-wqvp-printing > :not(.wda-wqvp-print-path):not(.wda-wqvp-print-sheet):not(.wda-wqvp-print-target) {
		display: none !important;
	}

	/* Path ancestors become plain full-width blocks: no sticky/fixed
	   offsets, no theme paint, no constrained layouts. */
	body.wda-wqvp-printing .wda-wqvp-print-path {
		display: block !important;
		position: static !important;
		transform: none !important;
		float: none !important;
		margin: 0 !important;
		padding: 0 !important;
		border: 0 !important;
		background: #ffffff !important;
		box-shadow: none !important;
		width: auto !important;
		max-width: none !important;
		min-width: 0 !important;
		min-height: 0 !important;
		overflow: visible !important;
	}

	/* The sheet stays a real table so its thead/tfoot spacers repeat on
	   every printed page; the cell carries the side margins. */
	body.wda-wqvp-printing .wda-wqvp-print-sheet {
		display: table !important;
		width: 100% !important;
		margin: 0 !important;
		border-collapse: collapse !important;
		border: 0 !important;
		background: #ffffff !important;
	}

	body.wda-wqvp-printing .wda-wqvp-print-sheet__spacer {
		height: 10mm;
		padding: 0 !important;
		border: 0 !important;
		background: transparent !important;
	}

	body.wda-wqvp-printing .wda-wqvp-print-sheet__cell {
		padding: 0 12mm !important;
		border: 0 !important;
		background: transparent !important;
		vertical-align: top;
	}

	body.wda-wqvp-printing .wda-wqvp-print-target {
		margin: 0 !important;
		padding: 0 !important;
		width: auto !important;
		max-width: none !important;
	}

	body.wda-wqvp-printing .wda-wqvp-print-target .wda-wqv-table-wrap {
		overflow: visible !important;
	}

	/* No row sliced across two sheets. */
	body.wda-wqvp-printing .wda-wqv-wishlist-table tr {
		break-inside: avoid;
		page-break-inside: avoid;
	}

	/* Interactive chrome has no meaning on paper. */
	body.wda-wqvp-printing .wda-wqv-col-remove,
	body.wda-wqvp-printing .wda-wqv-col-actions,
	body.wda-wqvp-printing .wda-wqvp-col-move,
	body.wda-wqvp-printing .wda-wqv-wishlist-actions,
	body.wda-wqvp-printing .wda-wqv-pagination,
	body.wda-wqvp-printing .wda-wqvp-lists,
	body.wda-wqvp-printing .wda-wqvp-share-preview,
	body.wda-wqvp-printing .wda-wqvp-capture,
	body.wda-wqvp-printing .wda-wqvp-capture-row,
	body.wda-wqvp-printing .wda-wqvp-print-row,
	body.wda-wqvp-printing .wda-wqvp-wl-qty__btn {
		display: none !important;
	}

	/* The quantity stepper prints as a plain number: unstyle both the
	   bordered pill wrapper and its input (ID-level bump to outrank the
	   suite's own screen armor). */
	body.wda-wqvp-printing .wda-wqvp-wl-qty:not(#wda-wqv-boost) {
		border: 0 !important;
		height: auto !important;
		background: transparent !important;
		box-shadow: none !important;
	}

	body.wda-wqvp-printing .wda-wqvp-wl-qty__input:not(#wda-wqv-boost) {
		border: 0 !important;
		background: transparent !important;
		box-shadow: none !important;
		width: 2.5em !important;
		height: auto !important;
		text-align: center !important;
		appearance: textfield;
	}

	/* The My Account squeeze hides these columns for the narrow screen
	   column; paper has no such constraint — print the full document. */
	body.wda-wqvp-printing .woocommerce-MyAccount-content .wda-wqv-wishlist .wda-wqv-col-stock,
	body.wda-wqvp-printing .woocommerce-MyAccount-content .wda-wqv-wishlist .wda-wqv-col-date,
	body.wda-wqvp-printing .woocommerce-MyAccount-content .wda-wqv-wishlist .wda-wqvp-col-subtotal {
		display: table-cell !important;
	}

	body.wda-wqvp-printing .woocommerce-MyAccount-content .wda-wqv-wishlist .wda-wqvp-wl-total {
		display: block !important;
	}

	/* Ink: force black text on the white paper — dark themes set light
	   text colors, often with !important, so this carries an ID-level
	   bump. Specific tones below override in-cascade. */
	body.wda-wqvp-printing .wda-wqvp-print-target :not(#wda-wqv-boost) {
		color: #000000 !important;
	}

	body.wda-wqvp-printing .wda-wqvp-print-target a {
		color: #000000 !important;
		text-decoration: none !important;
	}

	/* Themes commonly print link URLs via a::after — pure noise here. */
	body.wda-wqvp-printing .wda-wqvp-print-target a::after,
	body.wda-wqvp-printing .wda-wqvp-print-target a::before {
		content: none !important;
	}

	/* Paper header: store name | list name | date. Equal 1fr side
	   columns keep the list name truly centered regardless of how the
	   store name and date line differ in width. Only the PRINTED
	   wishlist's own header is revealed. */
	body.wda-wqvp-printing .wda-wqvp-print-target .wda-wqvp-print-head {
		display: grid !important;
		grid-template-columns: 1fr auto 1fr;
		align-items: baseline;
		gap: 6px 16px;
		margin: 0 0 14px;
		padding-bottom: 10px;
		border-bottom: 2px solid #000000;
	}

	body.wda-wqvp-printing .wda-wqvp-print-head__store {
		font-size: 18px;
		font-weight: 700;
		text-align: start;
	}

	body.wda-wqvp-printing .wda-wqvp-print-head__list {
		font-weight: 600;
		text-align: center;
	}

	body.wda-wqvp-printing .wda-wqvp-print-head__date:not(#wda-wqv-boost) {
		font-size: 12px;
		color: #555555 !important;
		text-align: end;
	}

	/* Partial-list note for paginated wishlists. */
	body.wda-wqvp-printing .wda-wqvp-print-target .wda-wqvp-print-pages {
		display: block !important;
		margin-top: 10px;
		font-size: 12px;
	}

	/* Light row rules for legibility on paper. */
	body.wda-wqvp-printing .wda-wqv-wishlist-table th,
	body.wda-wqvp-printing .wda-wqv-wishlist-table td {
		border-bottom: 1px solid #dddddd !important;
	}
}

/* ------------------------------------------------------------------
 * Mini wishlist panel
 *
 * One panel, two presentations: data-mode="drop" anchors it under a
 * [wda_wishlist_count] badge (desktop hover), data-mode="drawer"
 * pins it to the screen edge (touch/narrow, and the floating bubble).
 * The bubble wraps the real count shortcode so its number stays live.
 * ------------------------------------------------------------------ */

.wda-wqvp-mini {
	position: fixed;
	z-index: 100001;
	width: 300px;
	padding: 14px;
	border-radius: 10px;
	background: #ffffff;
	color: var(--wda-wqv-text, #1f2933);
	box-shadow: 0 16px 40px rgba(15, 23, 42, 0.2);
	box-sizing: border-box;
}

.wda-wqvp-mini[hidden] {
	display: none !important;
}

.wda-wqvp-mini[data-mode="drawer"] {
	top: 0 !important;
	bottom: 0;
	height: 100dvh;
	width: min(340px, 86vw);
	border-radius: 0;
	display: flex;
	flex-direction: column;
	overflow: auto;
	transition: transform 300ms cubic-bezier(0.22, 0.7, 0.3, 1);
}

/* Off-screen on its own side until .is-open slides it in. */
.wda-wqvp-mini[data-mode="drawer"][data-side="right"] {
	right: 0;
	left: auto !important;
	transform: translateX(105%);
}

.wda-wqvp-mini[data-mode="drawer"][data-side="left"] {
	left: 0 !important;
	right: auto;
	transform: translateX(-105%);
}

.wda-wqvp-mini[data-mode="drawer"].is-open {
	transform: translateX(0);
}

/* Dropdown: a short fade/settle. */
.wda-wqvp-mini[data-mode="drop"] {
	opacity: 0;
	transform: translateY(-4px);
	transition: opacity 160ms ease, transform 160ms ease;
}

.wda-wqvp-mini[data-mode="drop"].is-open {
	opacity: 1;
	transform: translateY(0);
}

.wda-wqvp-mini-scrim {
	position: fixed;
	inset: 0;
	z-index: 100000;
	background: rgba(15, 23, 42, 0.35);
	opacity: 0;
	transition: opacity 240ms ease;
}

.wda-wqvp-mini-scrim.is-open {
	opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
	.wda-wqvp-mini,
	.wda-wqvp-mini-scrim {
		transition: none !important;
	}
}

.wda-wqvp-mini-scrim[hidden] {
	display: none !important;
}

.wda-wqvp-mini__head {
	display: flex;
	align-items: baseline;
	gap: 8px;
	padding-bottom: 10px;
	border-bottom: 1px solid #eef0f3;
}

.wda-wqvp-mini__title {
	font-size: 14px;
	font-weight: 600;
	flex: 1;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.wda-wqvp-mini__total {
	font-size: 12px;
	color: var(--wda-wqv-muted, #8a93a1);
	flex: 0 0 auto;
}

.wda-wqvp-mini__close:not(#wda-wqv-boost) {
	flex: 0 0 auto;
	margin: 0;
	padding: 0 2px;
	border: 0;
	background: transparent;
	color: var(--wda-wqv-muted, #8a93a1);
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	box-shadow: none;
	min-height: 0;
	align-self: center;
}

.wda-wqvp-mini[data-mode="drop"] .wda-wqvp-mini__close {
	display: none;
}

.wda-wqvp-mini__loading,
.wda-wqvp-mini__empty {
	padding: 18px 0 10px;
	font-size: 13px;
	color: var(--wda-wqv-muted, #8a93a1);
}

.wda-wqvp-mini__items {
	list-style: none;
	margin: 0;
	padding: 0;
}

.wda-wqvp-mini[data-mode="drawer"] .wda-wqvp-mini__items {
	flex: 1;
	overflow-y: auto;
}

.wda-wqvp-mini__item {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 9px 0;
	border-bottom: 1px solid #f2f4f7;
}

.wda-wqvp-mini__thumb {
	flex: 0 0 auto;
	width: 42px;
	height: 42px;
	border-radius: 6px;
	overflow: hidden;
	display: block;
}

.wda-wqvp-mini__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.wda-wqvp-mini__info {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.wda-wqvp-mini__name:not(#wda-wqv-boost) {
	font-size: 12.5px;
	font-weight: 600;
	color: var(--wda-wqv-text, #1f2933);
	text-decoration: none;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.wda-wqvp-mini__name:not(#wda-wqv-boost):hover {
	text-decoration: underline;
}

.wda-wqvp-mini__price {
	font-size: 11.5px;
	color: var(--wda-wqv-muted, #8a93a1);
}

.wda-wqvp-mini__price del {
	opacity: 0.7;
}

.wda-wqvp-mini__remove:not(#wda-wqv-boost) {
	flex: 0 0 auto;
	margin: 0;
	padding: 2px 4px;
	border: 0;
	background: transparent;
	color: #b6bcc6;
	font-size: 15px;
	line-height: 1;
	cursor: pointer;
	box-shadow: none;
	min-height: 0;
}

.wda-wqvp-mini__remove:not(#wda-wqv-boost):hover,
.wda-wqvp-mini__remove:not(#wda-wqv-boost):focus-visible {
	color: var(--wda-wqv-dark, #141414);
	background: transparent;
}

.wda-wqvp-mini__remove.is-busy {
	opacity: 0.4;
	pointer-events: none;
}

.wda-wqvp-mini__more {
	padding: 9px 0 2px;
	font-size: 11.5px;
	color: var(--wda-wqv-muted, #8a93a1);
}

.wda-wqvp-mini__view:not(#wda-wqv-boost) {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	height: 36px !important;
	margin: 12px 0 0 !important;
	padding: 0 16px !important;
	border: 0 !important;
	border-radius: 6px !important;
	background: var(--wda-wqv-dark, #141414) !important;
	color: #ffffff !important;
	font-size: 12.5px !important;
	font-weight: 500 !important;
	line-height: 1 !important;
	text-decoration: none !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	box-shadow: none !important;
	box-sizing: border-box !important;
	transition: opacity 160ms ease;
}

.wda-wqvp-mini__view:not(#wda-wqv-boost):hover,
.wda-wqvp-mini__view:not(#wda-wqv-boost):focus-visible {
	background: #000000 !important;
	color: #ffffff !important;
	opacity: 0.92;
}

/* Floating bubble: a styled shell around the real count badge. */
.wda-wqvp-mini-bubble {
	position: fixed;
	bottom: 20px;
	z-index: 99990;
}

.wda-wqvp-mini-bubble--br {
	inset-inline-end: 20px;
}

/* The free toast lane (and the guest-capture card tuned to sit above
   it) shares the bottom-right corner — with a right-side bubble both
   move up so nothing ever covers the bubble or gets covered by it. */
body:has(.wda-wqvp-mini-bubble--br) .wda-wqv-toasts {
	inset-block-end: 88px;
}

body:has(.wda-wqvp-mini-bubble--br) .wda-wqvp-capture {
	inset-block-end: 164px;
}

.wda-wqvp-mini-bubble--bl {
	inset-inline-start: 20px;
}

.wda-wqvp-mini-bubble .wda-wqv-count-wrap:not(#wda-wqv-boost) {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 999px;
	background: #ffffff !important;
	color: var(--wda-wqv-dark, #141414) !important;
	box-shadow: 0 10px 24px rgba(15, 23, 42, 0.3);
	text-decoration: none !important;
	cursor: pointer;
	transition: 0.35s ease;
}

.wda-wqvp-mini-bubble .wda-wqv-count-wrap:hover:not(#wda-wqv-boost) {
	background: var(--wda-wqv-dark, #141414) !important;
	color: #ffffff !important;
}

.wda-wqvp-mini-bubble .wda-wqv-icon {
	display: inline-flex;
}

.wda-wqvp-mini-bubble .wda-wqv-icon svg {
	width: 22px;
	height: 22px;
	stroke: var(--wda-wqv-dark, #141414);
	color: var(--wda-wqv-dark, #141414);
	transition: 0.35s ease;
}

.wda-wqvp-mini-bubble:hover .wda-wqv-icon svg {
	stroke: #ffffff;
	color: #ffffff;
}

.wda-wqvp-mini-bubble .wda-wqv-count {
	position: absolute;
	top: -4px;
	inset-inline-end: -4px;
	min-width: 21px;
	height: 21px;
	padding: 0 4px;
	border-radius: 999px;
	background: #ffffff;
	color: var(--wda-wqv-dark, #141414);
	border: 1px solid var(--wda-wqv-dark, #141414);
	font-size: 10px;
	font-weight: 400;
	line-height: 14px;
	text-align: center;
	box-sizing: border-box;
}

@media print {
	.wda-wqvp-mini,
	.wda-wqvp-mini-scrim,
	.wda-wqvp-mini-bubble {
		display: none !important;
	}
}

/* ------------------------------------------------------------------
 * Standalone [wda_wishlist_count] badge (pages, widgets, menus)
 *
 * Suite identity instead of the bare theme-colored default: dark
 * heart with the count pinned to its top-right corner like a
 * notification badge — the chip matches the floating bubble's.
 * The bubble's own badge carries .wda-wqvp-in-bubble and keeps its
 * hand-tuned circle style.
 * ------------------------------------------------------------------ */

.wda-wqv-count-wrap:not(.wda-wqvp-in-bubble):not(#wda-wqv-boost) {
	position: relative;
	display: inline-flex;
	align-items: flex-end;
	vertical-align: middle;
	gap: 0;
	/* Room for the overlapping chip, so nothing clips in tight menus. */
	padding-block-start: 12px;
	padding-inline-end: 19px;
	color: var(--wda-wqv-dark, #141414) !important;
	text-decoration: none !important;
	line-height: 1;
}

.wda-wqv-count-wrap:not(.wda-wqvp-in-bubble):not(#wda-wqv-boost) .wda-wqv-icon svg {
	width: 24px;
	height: 24px;
	display: block;
	stroke: var(--wda-wqv-dark, #141414);
	color: var(--wda-wqv-dark, #141414);
}

.wpdevart-main-container .wda-wqv-count-wrap:not(.wda-wqvp-in-bubble):not(#wda-wqv-boost) .wda-wqv-icon svg {
	stroke: #ffffff;
	color: #ffffff;
}

.wpdevart-header-container .wda-wqv-count-wrap:not(.wda-wqvp-in-bubble):not(#wda-wqv-boost) .wda-wqv-icon svg {
	stroke: #ffffff;
	color: #ffffff;
}

.wpdevart-footer-one .wda-wqv-count-wrap:not(.wda-wqvp-in-bubble):not(#wda-wqv-boost) .wda-wqv-icon svg {
	stroke: #ffffff;
	color: #ffffff;
}

.wda-wqv-count-wrap:not(.wda-wqvp-in-bubble):not(#wda-wqv-boost) .wda-wqv-count {
	position: absolute;
	top: 0;
	inset-inline-end: 0;
	min-width: 21px;
	height: 21px;
	padding: 0 4px;
	border-radius: 999px;
	background: #ffffff;
	color: var(--wda-wqv-dark, #141414);
	border: 1px solid var(--wda-wqv-dark, #141414);
	font-size: 10px;
	font-weight: 400;
	line-height: 15px;
	text-align: center;
	box-sizing: border-box;
	transition: 0.35s ease;
}

.wda-wqv-count-wrap:not(.wda-wqvp-in-bubble):not(#wda-wqv-boost):hover .wda-wqv-count,
.wda-wqv-count-wrap:not(.wda-wqvp-in-bubble):not(#wda-wqv-boost):focus-visible .wda-wqv-count {
	background: var(--wda-wqv-dark, #141414);
	color: #ffffff;
}

@media (prefers-reduced-motion: reduce) {
	.wda-wqv-count-wrap .wda-wqv-count {
		transition: none;
	}
}
