/**
 * 8Erikas — Quick View ("Greita peržiūra") modalas.
 *
 * Savarankiškas failas, ne shop.css priedas: "Greita peržiūra" mygtukas
 * (inc/product/loop-hooks.php, template-parts/home/product-card.php) rodomas
 * BET KURIAME puslapyje, kur yra prekės kortelė — įskaitant pradžios
 * puslapį, kuriame shop.css apskritai neįkraunama (žr. inc/enqueue.php,
 * $erikas_is_shop_context). Todėl viskas, ko modalui reikia — įskaitant
 * Woo pačios grąžinamų elementų (.quantity, .qty-step, .single_add_to_cart_button,
 * .stock, .woocommerce-variation-price) stilių — apibrėžta ČIA, po
 * `.quick-view` prefiksu. Jei tame pačiame puslapyje kartu įkrauta ir
 * shop.css, dviguba deklaracija nekenkia: `.quick-view .single_add_to_cart_button`
 * turi didesnį specifiškumą už shop.css bendrą `.single_add_to_cart_button` ir
 * tiesiog laimi, be jokio konflikto.
 *
 * Spalvos, tarpai, šriftai, `--ease-out` — visi iš main.css :root, tad
 * pakeitus temos akcentinę spalvą (--color-accent) modalas persiskiria kartu
 * su visa svetaine.
 */

.quick-view {
	position: fixed;
	inset: 0;
	z-index: 70; /* Virš krepšelio drawer'io (65) ir mobilaus meniu (60). */
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.5rem;
}

.quick-view[hidden] { display: none; }

.quick-view__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	opacity: 0;
	transition: opacity 0.3s var(--ease-out);
}

.quick-view.is-open .quick-view__backdrop { opacity: 1; }

.quick-view__dialog {
	position: relative;
	width: min(64rem, 100%);
	max-height: min(44rem, 90vh);
	display: flex;
	background: var(--color-surface);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-soft);
	overflow: hidden;
	transform: scale(0.95);
	opacity: 0;
	transition: transform 0.3s var(--ease-out), opacity 0.3s var(--ease-out);
}

.quick-view.is-open .quick-view__dialog {
	transform: scale(1);
	opacity: 1;
}

.quick-view__close {
	position: absolute;
	inset-block-start: 0.875rem;
	inset-inline-end: 0.875rem;
	z-index: 1;
	display: grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	border: 0;
	border-radius: var(--radius-pill);
	background: rgba(255, 255, 255, 0.9);
	backdrop-filter: blur(4px);
	color: var(--stone-500);
	cursor: pointer;
	transition: background 0.15s, color 0.15s;
}

.quick-view__close:hover { background: var(--stone-100); color: var(--stone-900); }
.quick-view__close .icon { width: 1.125rem; height: 1.125rem; }

.quick-view__body {
	width: 100%;
	overflow-y: auto;
	scrollbar-width: thin;
}

/* ---------- Kraunama / klaida ---------- */

.quick-view__loading,
.quick-view__error {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	min-height: 24rem;
	padding: 2.5rem;
	text-align: center;
	color: var(--color-muted);
}

.quick-view__spinner {
	width: 2.25rem;
	height: 2.25rem;
	border-radius: 50%;
	border: 3px solid var(--stone-200);
	border-top-color: var(--color-accent);
	animation: quick-view-spin 0.7s linear infinite;
}

@keyframes quick-view-spin {
	to { transform: rotate(360deg); }
}

/* ---------- Turinys ---------- */

.quick-view__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.quick-view__media {
	position: relative;
	padding: 1.5rem;
	background: var(--stone-50);
}

.quick-view__badges {
	position: absolute;
	inset-block-start: 1.5rem;
	inset-inline-start: 1.5rem;
	z-index: 1;
	display: flex;
	flex-direction: column;
	gap: 0.375rem;
}

.quick-view__figure {
	aspect-ratio: 1 / 1;
	border-radius: var(--radius-lg);
	overflow: hidden;
	background: var(--color-surface);
	display: grid;
	place-items: center;
}

.quick-view__img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.quick-view__thumbs {
	display: flex;
	gap: 0.5rem;
	margin-block-start: 0.75rem;
	overflow-x: auto;
	scrollbar-width: thin;
}

.quick-view__thumb {
	flex: 0 0 auto;
	width: 3.25rem;
	height: 3.25rem;
	padding: 0;
	border: 2px solid transparent;
	border-radius: calc(var(--radius-lg) * 0.4);
	overflow: hidden;
	background: var(--color-surface);
	cursor: pointer;
	opacity: 0.7;
	transition: opacity 0.15s, border-color 0.15s;
}

.quick-view__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }

.quick-view__thumb:hover { opacity: 1; }
.quick-view__thumb.is-active { opacity: 1; border-color: var(--color-accent); }

.quick-view__info {
	padding: 2rem 2rem 2rem 0;
	display: flex;
	flex-direction: column;
	overflow-y: auto;
}

.quick-view__title {
	margin: 0 0 0.5rem;
	font-family: var(--font-serif);
	font-size: 1.375rem;
	font-weight: 500;
	line-height: 1.3;
}

.quick-view__title a { color: inherit; text-decoration: none; }
.quick-view__title a:hover { color: var(--color-accent); }

.quick-view__info .stars { margin-block-end: 0.75rem; }

.quick-view__price {
	font-size: 1.375rem;
	font-weight: 600;
	margin-block-end: 0.5rem;
}

.quick-view__price ins { text-decoration: none; color: var(--color-accent-hover); }
.quick-view__price del { color: var(--color-muted); opacity: 0.7; }

.quick-view__stock { margin-block-end: 1rem; font-size: 0.875rem; }
.quick-view__stock .stock { margin: 0; }
.quick-view__stock .in-stock { color: #15803d; }
.quick-view__stock .out-of-stock { color: var(--rose-700); }

.quick-view__excerpt {
	color: var(--color-muted);
	line-height: 1.65;
	margin: 0 0 1.25rem;
}

.quick-view__cart { margin-block-end: 1.25rem; }

.quick-view__link {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	margin-block-start: auto;
	padding-block-start: 1rem;
	font-size: 0.875rem;
	font-weight: 500;
	color: var(--color-fg);
	text-decoration: none;
	border-block-start: 1px solid var(--color-line);
}

.quick-view__link .icon { width: 1rem; height: 1rem; transition: transform 0.15s var(--ease-out); }
.quick-view__link:hover { color: var(--color-accent); }
.quick-view__link:hover .icon { transform: translateX(3px); }

.quick-view__cart-error {
	margin: 0.75rem 0 0;
	font-size: 0.8125rem;
	color: var(--rose-700);
}

/* ---------- Woo formos elementai (form.cart / .variations_form) ----------
   Tos pačios klasės, kurias grąžina woocommerce_template_single_add_to_cart(),
   sąmoningai perrašomos su pilnu stiliumi po `.quick-view` prefiksu — žr.
   pastabą failo viršuje. */

.quick-view .quantity {
	display: inline-flex;
	align-items: stretch;
	border: 1px solid var(--color-line);
	border-radius: var(--radius-pill);
	overflow: hidden;
	margin-inline-end: 0.625rem;
	vertical-align: middle;
}

.quick-view .quantity input.qty {
	width: 3rem;
	border: 0;
	text-align: center;
	font: inherit;
	background: transparent;
	-moz-appearance: textfield;
}

.quick-view .quantity input.qty::-webkit-outer-spin-button,
.quick-view .quantity input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.quick-view .quantity:not(.quantity--stepper) input.qty { padding-inline: 0.75rem; }

.quick-view .qty-step {
	display: grid;
	place-items: center;
	width: 2.25rem;
	border: 0;
	background: var(--stone-50);
	color: var(--stone-600);
	cursor: pointer;
	font-size: 1rem;
	line-height: 1;
}

.quick-view .qty-step:hover { background: var(--stone-100); }

.quick-view form.cart {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.quick-view .single_add_to_cart_button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	border: 0;
	border-radius: var(--radius-pill);
	padding: 0.75rem 1.75rem;
	background: var(--color-accent);
	color: var(--color-accent-fg);
	font-weight: 600;
	font-size: 0.9375rem;
	cursor: pointer;
	transition: background 0.15s, transform 0.1s;
}

.quick-view .single_add_to_cart_button:hover { background: var(--color-accent-hover); }
.quick-view .single_add_to_cart_button:active { transform: scale(0.98); }

.quick-view .single_add_to_cart_button.disabled,
.quick-view .single_add_to_cart_button:disabled {
	opacity: 0.5;
	cursor: not-allowed;
	pointer-events: none;
}

.quick-view .single_add_to_cart_button.is-added { background: #15803d; }

.quick-view form.cart.is-busy { opacity: 0.6; pointer-events: none; }

/* Variacijų lentelė (kintamos prekės) */
.quick-view table.variations {
	width: 100%;
	border-collapse: collapse;
	margin-block-end: 0.75rem;
}

.quick-view table.variations tr { display: flex; align-items: center; gap: 0.75rem; margin-block-end: 0.5rem; }
.quick-view table.variations label { font-size: 0.875rem; font-weight: 500; min-width: 5rem; }

.quick-view table.variations select {
	flex: 1;
	padding: 0.5rem 0.75rem;
	border: 1px solid var(--color-line);
	border-radius: calc(var(--radius-lg) * 0.35);
	background: var(--color-surface);
	font: inherit;
}

.quick-view .woocommerce-variation-price { font-weight: 600; margin-block-end: 0.5rem; }
.quick-view .woocommerce-variation-availability { margin-block-end: 0.5rem; font-size: 0.875rem; }
.quick-view .woocommerce-variation-add-to-cart-disabled .single_add_to_cart_button { opacity: 0.5; pointer-events: none; }

.quick-view .reset_variations {
	font-size: 0.8125rem;
	color: var(--color-muted);
	margin-inline-start: 0.5rem;
}

/* ---------- Mobilus ---------- */

@media (max-width: 768px) {
	.quick-view { padding: 0; align-items: flex-end; }

	.quick-view__dialog {
		width: 100%;
		max-height: 92vh;
		border-radius: var(--radius-lg) var(--radius-lg) 0 0;
		transform: translateY(2%) scale(0.98);
	}

	.quick-view.is-open .quick-view__dialog { transform: translateY(0) scale(1); }

	.quick-view__body { overflow-y: auto; }

	.quick-view__grid { grid-template-columns: 1fr; }

	.quick-view__media { padding: 1.25rem 1.25rem 0; }

	.quick-view__info { padding: 1.25rem; }
}

@media (hover: none) {
	.quick-view__thumb { opacity: 1; }
}
