/* EXO VAULT — stock privacy, random-component disclosure, artist credit.
   Loaded after the theme sheet (dependency: 'exovault') so the gold
   custom properties it references are already defined. */


/* ---- "Limited Quantity" badge -------------------------------------------
   Scarcity signal for stock at or under the low-stock threshold. Never a
   number — the count itself is private (see exovault-stock-privacy.php).
   Pulsing gold, tuned to the shipping-meter accent. Sits at the trailing
   edge so it never collides with the New Release badge opposite.          */
.ev-badge--limited {
	position: absolute;
	inset-block-start: 12px;
	inset-inline-end: 12px;
	z-index: 4;
	font-family: "Cinzel", "Zain", serif;
	font-weight: 700;
	font-size: 0.62rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	padding: 0.38em 0.7em;
	border-radius: 4px;
	color: #1a0b2e;
	background: linear-gradient(180deg, var(--ev-gold-hi, #ffe9a8) 0%, var(--ev-gold, #c9a227) 58%, var(--ev-gold-shadow, #8b6914) 100%);
	border: 1px solid rgba(255, 233, 168, 0.65);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.5);
	pointer-events: none;
	white-space: nowrap;
	animation: ev-limited-pulse 2.2s var(--ev-ease, ease-in-out) infinite;
	will-change: transform, box-shadow;
}
[dir="rtl"] .ev-badge--limited { letter-spacing: 0; }

@keyframes ev-limited-pulse {
	0%, 100% {
		transform: scale(1);
		box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 0 0 0 rgba(201, 162, 39, 0.55);
	}
	50% {
		transform: scale(1.045);
		box-shadow: 0 2px 12px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.6), 0 0 14px 3px rgba(201, 162, 39, 0.42);
	}
}

/* Single-product availability line in the limited state.
   Both selectors are kept: the theme scopes the product page with
   .ev-product, but the paragraph is also rendered in contexts that lack
   that wrapper. */
.stock.ev-stock--limited,
.ev-product .stock.ev-stock--limited {
	color: var(--ev-gold-hi, #ffe9a8);
	font-weight: 600;
	letter-spacing: 0.04em;
}
.stock.ev-stock--limited::before,
.ev-product .stock.ev-stock--limited::before {
	content: "";
	display: inline-block;
	inline-size: 0.5em;
	block-size: 0.5em;
	margin-inline-end: 0.5em;
	border-radius: 50%;
	background: var(--ev-gold, #c9a227);
	box-shadow: 0 0 8px rgba(201, 162, 39, 0.9);
	animation: ev-limited-pulse 2.2s var(--ev-ease, ease-in-out) infinite;
}

@media (prefers-reduced-motion: reduce) {
	.ev-badge--limited,
	.stock.ev-stock--limited::before,
	.ev-product .stock.ev-stock--limited::before {
		animation: none;
	}
}

/* ---- Random-component disclosure (PDP, directly under the price) --------
   Transparency requirement: products with randomised contents say so up
   front, in both languages. Deliberately legible, not fine print.        */
.ev-random-disclosure {
	display: flex;
	align-items: flex-start;
	gap: 0.55em;
	margin: 0;
	padding: 0.7em 0.85em;
	border-radius: 6px;
	border: 1px solid rgba(201, 162, 39, 0.32);
	background: rgba(201, 162, 39, 0.07);
	border-inline-start: 3px solid var(--ev-gold, #c9a227);
	font-size: 0.9rem;
	line-height: 1.5;
	color: inherit;
}
.ev-random-disclosure__icon {
	flex: 0 0 auto;
	font-size: 1em;
	line-height: 1.5;
}

/* ---- "What's Inside" contents block -------------------------------------
   Customers must never have to infer contents from photographs. Rendered
   once per language inside the product description; the [lang="ar"] copy
   mirrors to RTL on its own so it reads correctly on the English page too. */
.ev-whats-inside {
	margin-block: 1.1rem;
	padding: 0.9rem 1.05rem;
	border-radius: 6px;
	border: 1px solid rgba(201, 162, 39, 0.28);
	background: rgba(201, 162, 39, 0.05);
}
.ev-whats-inside h3 {
	margin: 0 0 0.55rem;
	font-family: "Cinzel", "Zain", serif;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--ev-gold, #c9a227);
}
.ev-whats-inside[lang="ar"] {
	direction: rtl;
	text-align: right;
}
.ev-whats-inside[lang="ar"] h3 { letter-spacing: 0; }
.ev-whats-inside ul {
	margin: 0;
	padding-inline-start: 1.15rem;
	display: grid;
	gap: 0.3rem;
}
.ev-whats-inside li { line-height: 1.55; }

/* ---- Artist credit (PDP) — part of the collector value, not fine print -- */
.ev-artist-credit {
	display: flex;
	align-items: baseline;
	gap: 0.55em;
	margin: 0;
	font-size: 0.86rem;
	line-height: 1.5;
}
.ev-artist-credit__label {
	flex: 0 0 auto;
	font-family: "Cinzel", "Zain", serif;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--ev-gold, #c9a227);
}
[dir="rtl"] .ev-artist-credit__label { letter-spacing: 0; }
.ev-artist-credit__name { color: var(--ev-text-dim, inherit); }

