/**
 * WV3 Vouchers — veřejný „dárkový" design (nákup, veřejné zobrazení, uplatnění).
 *
 * Vše přes theme tokeny (--wv3-*) + color-mix() → automaticky se přizpůsobí
 * šablonám FLOW / STARTER / MINIMAL (vč. dark mode) / CLASSIC. Žádné hex natvrdo.
 */

/* ---------- sdílené ozdoby ---------- */
.wv3-vi { width: 1.1em; height: 1.1em; display: inline-block; vertical-align: -0.18em; flex-shrink: 0; }

.wv3-vouchers__container { max-width: 760px; }

/* Voucher sekce = jemně tónované pozadí, aby bílé cenové karty (surface-alt → bílá) jasně
   vyčnívaly a hero akcent se neztratil (dřív byla sekce bílá + karty bledé → vše splývalo). */
.wv3-main > section.wv3-section.wv3-vouchers {
	background-color: var(--wv3-bg-light);
	--wv3-surface: var(--wv3-bg-light);
	--wv3-surface-alt: var(--wv3-bg);
}

/* ---------- Promo pruh pod formulářem (obrázek vlevo + odrážky v mřížce 2×) ---------- */
.wv3-voucher-promo {
	margin: 0 0 var(--wv3-space-xl, 2rem);
	padding: 1.8rem;
	border: 1px solid var(--wv3-border, rgba(0, 0, 0, 0.1));
	border-radius: var(--wv3-radius-lg, 16px);
	box-shadow: var(--wv3-shadow-sm, 0 2px 8px rgba(45, 52, 54, 0.06));
	background: color-mix(in srgb, var(--wv3-primary) 5%, var(--wv3-bg, #fff));
}
.wv3-voucher-promo__title { font-family: var(--wv3-font-heading); font-size: 1.25rem; margin: 0 0 1.3rem; color: var(--wv3-text); }
.wv3-voucher-promo__body { display: flex; gap: 1.8rem; align-items: center; flex-wrap: wrap; }
.wv3-voucher-promo__img { flex: 0 0 auto; width: 260px; max-width: 100%; height: auto; border-radius: var(--wv3-radius-md, 10px); }
.wv3-voucher-promo__list { flex: 1 1 300px; display: grid; grid-template-columns: 1fr 1fr; gap: 0.85rem 1.5rem; list-style: none; margin: 0; padding: 0; }
.wv3-voucher-promo__list li { display: flex; align-items: flex-start; gap: 0.6rem; line-height: 1.4; color: var(--wv3-text); }
.wv3-voucher-promo__ico { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: var(--wv3-radius-full, 999px); background: var(--wv3-primary); color: var(--wv3-on-primary, #fff); }
.wv3-voucher-promo__ico .wv3-vi { width: 14px; height: 14px; }
@media (max-width: 640px) {
	.wv3-voucher-promo__body { gap: 1.2rem; }
	.wv3-voucher-promo__img { width: 100%; }
	.wv3-voucher-promo__list { grid-template-columns: 1fr; }
}

/* Honeypot */
.wv3-voucher-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ---------- HERO band — jemné tónované pozadí (jako sekce na homepage), tmavý text ---------- */
.wv3-voucher-hero {
	position: relative;
	overflow: hidden;
	text-align: center;
	background: var(--wv3-primary-lighter, color-mix(in srgb, var(--wv3-primary) 8%, var(--wv3-bg, #fff)));
	border: 1px solid var(--wv3-border, rgba(0, 0, 0, 0.1));
	border-radius: var(--wv3-radius-lg, 16px);
	box-shadow: var(--wv3-shadow-sm, 0 2px 8px rgba(45, 52, 54, 0.06));
	padding: var(--wv3-space-2xl, 3rem) var(--wv3-space-xl, 2rem);
	margin-bottom: var(--wv3-space-xl, 2rem);
}
.wv3-voucher-hero__icon { width: 52px; height: 52px; color: var(--wv3-primary); opacity: 0.9; margin-bottom: var(--wv3-space-sm, 0.5rem); position: relative; z-index: 1; }
.wv3-voucher-hero__title { color: var(--wv3-text); margin: 0 0 0.4rem; font-family: var(--wv3-font-heading); position: relative; z-index: 1; }
.wv3-voucher-hero__subtitle { color: var(--wv3-text-secondary); margin: 0 auto; max-width: 46ch; position: relative; z-index: 1; }

/* ---------- STEPPER ---------- */
.wv3-voucher-steps { display: flex; align-items: flex-start; justify-content: center; gap: 0; margin: 0 auto var(--wv3-space-xl, 2rem); max-width: 460px; }
.wv3-voucher-steps__item { display: flex; flex-direction: column; align-items: center; gap: 0.4rem; flex: 0 0 auto; width: 96px; text-align: center; }
.wv3-voucher-steps__num {
	width: 38px; height: 38px; border-radius: var(--wv3-radius-full, 999px);
	display: flex; align-items: center; justify-content: center;
	font-weight: 700; font-size: 0.95rem;
	border: 2px solid var(--wv3-border, rgba(0,0,0,0.15));
	color: var(--wv3-text-secondary); background: var(--wv3-bg, #fff);
	transition: all 0.3s ease;
}
.wv3-voucher-steps__num .wv3-vi { width: 18px; height: 18px; }
.wv3-voucher-steps__label { font-size: 0.78rem; color: var(--wv3-text-secondary); line-height: 1.2; }
.wv3-voucher-steps__bar { flex: 1 1 auto; height: 2px; background: var(--wv3-border, rgba(0,0,0,0.15)); margin-top: 19px; position: relative; }
.wv3-voucher-steps__bar::after { content: ""; position: absolute; inset: 0; width: 0; background: var(--wv3-primary); transition: width 0.4s ease; }
.wv3-voucher-steps__item.is-active .wv3-voucher-steps__num { border-color: var(--wv3-primary); color: var(--wv3-primary); box-shadow: 0 0 0 4px color-mix(in srgb, var(--wv3-primary) 16%, transparent); }
.wv3-voucher-steps__item.is-active .wv3-voucher-steps__label { color: var(--wv3-text); font-weight: 600; }
.wv3-voucher-steps__item.is-done .wv3-voucher-steps__num { background: var(--wv3-primary); border-color: var(--wv3-primary); color: var(--wv3-on-primary, #fff); }
.wv3-voucher-steps__bar.is-done::after { width: 100%; }

/* ---------- step transitions ---------- */
.wv3-voucher-step { animation: wv3-voucher-fade 0.35s ease both; }
@keyframes wv3-voucher-fade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .wv3-voucher-step { animation: none; } }
.wv3-voucher-step__title { font-size: 1.29rem; margin: 0 0 1.1rem; font-family: var(--wv3-font-heading); text-align: center; }

/* ---------- KROK 1 — value karty ---------- */
.wv3-voucher-noms { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 0.9rem; margin-bottom: 1.1rem; }
.wv3-voucher-nom {
	position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.35rem;
	min-height: 116px; padding: 1.1rem 0.75rem; text-align: center; cursor: pointer;
	border: 1px solid var(--wv3-border, rgba(0,0,0,0.12)); border-radius: var(--wv3-radius-lg, 14px);
	box-shadow: var(--wv3-shadow-sm, 0 2px 8px rgba(45, 52, 54, 0.06));
	background: var(--wv3-surface-alt, var(--wv3-bg, #fff));
	transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}
.wv3-voucher-nom input { position: absolute; opacity: 0; pointer-events: none; }
.wv3-voucher-nom__icon { width: 26px; height: 26px; color: var(--wv3-primary); opacity: 0.85; }
.wv3-voucher-nom__val { font-family: var(--wv3-font-heading); font-weight: 700; font-size: clamp(1.35rem, 3.5vw, 1.9rem); line-height: 1.1; color: var(--wv3-primary); }
.wv3-voucher-nom__note { font-size: 0.74rem; color: var(--wv3-text-secondary); text-transform: uppercase; letter-spacing: 0.04em; }
.wv3-voucher-nom__check { position: absolute; top: 8px; right: 8px; width: 22px; height: 22px; border-radius: var(--wv3-radius-full, 999px); background: var(--wv3-primary); color: var(--wv3-on-primary, #fff); display: none; align-items: center; justify-content: center; }
.wv3-voucher-nom__check .wv3-vi { width: 13px; height: 13px; }
.wv3-voucher-nom__pop { position: absolute; top: -10px; left: 50%; transform: translateX(-50%); font-size: 0.65rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; padding: 2px 9px; border-radius: var(--wv3-radius-full, 999px); background: var(--wv3-primary); color: var(--wv3-on-primary, #fff); white-space: nowrap; }
.wv3-voucher-nom:hover { border-color: var(--wv3-primary); }
.wv3-voucher-nom:has(input:checked) { border-color: var(--wv3-primary); box-shadow: 0 6px 18px color-mix(in srgb, var(--wv3-primary) 26%, transparent); }
.wv3-voucher-nom:has(input:checked) .wv3-voucher-nom__check { display: flex; }
.wv3-voucher-nom:has(input:focus-visible) { outline: 2px solid var(--wv3-primary); outline-offset: 2px; }

/* custom částka */
.wv3-voucher-custom { margin-bottom: 1.1rem; padding: 1rem 1.1rem; border: 1px dashed var(--wv3-border, rgba(0,0,0,0.2)); border-radius: var(--wv3-radius-md, 10px); background: color-mix(in srgb, var(--wv3-primary) 4%, transparent); }
.wv3-voucher-custom label { display: flex; align-items: center; gap: 0.4rem; font-weight: 600; margin-bottom: 0.4rem; }
.wv3-voucher-hint { font-size: 0.82rem; color: var(--wv3-text-secondary); margin: 0.35rem 0 0; }

/* ---------- pole ---------- */
.wv3-voucher-field { margin-bottom: 1rem; }
.wv3-voucher-field label { display: block; font-weight: 600; font-size: 0.9rem; margin-bottom: 0.35rem; }
.wv3-voucher-form input[type="text"],
.wv3-voucher-form input[type="email"],
.wv3-voucher-form input[type="tel"],
.wv3-voucher-form input[type="number"],
.wv3-voucher-form input[type="date"],
.wv3-voucher-form textarea {
	width: 100%; padding: 0.72rem 0.9rem; font: inherit; box-sizing: border-box;
	border: 1px solid var(--wv3-border, rgba(0,0,0,0.15)); border-radius: var(--wv3-radius-md, 10px);
	background: var(--wv3-bg, #fff); color: var(--wv3-text, #1a1a1a);
}
.wv3-voucher-form input:focus, .wv3-voucher-form textarea:focus {
	outline: none; border-color: var(--wv3-primary);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--wv3-primary) 18%, transparent);
}

/* gift block (krok 2) */
.wv3-voucher-giftblock { margin-top: 1.5rem; padding: 1.1rem 1.2rem 0.6rem; border-radius: var(--wv3-radius-lg, 14px); border: 1px solid color-mix(in srgb, var(--wv3-primary) 24%, var(--wv3-border, rgba(0,0,0,0.12))); background: var(--wv3-primary-lighter, color-mix(in srgb, var(--wv3-primary) 8%, transparent)); }
.wv3-voucher-giftblock__desc { margin: -0.4rem 0 1rem; font-size: 0.86rem; line-height: 1.5; color: var(--wv3-text-secondary); }
.wv3-voucher-giftblock__title { display: flex; align-items: center; gap: 0.5rem; font-weight: 700; margin: 0 0 0.9rem; color: var(--wv3-text); }
.wv3-voucher-giftblock__title .wv3-vi { color: var(--wv3-primary); width: 1.3em; height: 1.3em; }
.wv3-voucher-card-note { position: relative; }
.wv3-voucher-card-note textarea { background: #fff; }
.wv3-voucher-card-note__icon { position: absolute; top: 34px; right: 12px; width: 20px; height: 20px; color: color-mix(in srgb, var(--wv3-primary) 55%, transparent); pointer-events: none; }

.wv3-voucher-actions { display: flex; gap: 0.75rem; flex-wrap: wrap; justify-content: center; margin-top: 1.4rem; }

/* ---------- souhrn ceny + souhlas s podmínkami (krok 2) ---------- */
.wv3-voucher-summary {
	margin-top: 1.6rem; padding: 1.1rem 1.2rem;
	border: 1px solid var(--wv3-border, rgba(0, 0, 0, 0.12));
	border-radius: var(--wv3-radius-lg, 14px);
	background: var(--wv3-surface-alt, var(--wv3-bg, #fff));
	text-align: center;
}
.wv3-voucher-summary__label { display: block; color: var(--wv3-text-secondary); font-weight: 600; }
.wv3-voucher-summary__amount {
	display: block; margin-top: 0.25rem;
	font-family: var(--wv3-font-heading); font-weight: 800;
	font-size: clamp(1.6rem, 5vw, 2.2rem); line-height: 1;
	color: var(--wv3-primary);
}
.wv3-voucher-legalnote { margin-top: 0.9rem; font-size: 0.8rem; line-height: 1.5; color: var(--wv3-text-secondary); text-align: center; }
.wv3-voucher-legalnote a { color: var(--wv3-primary); text-decoration: underline; }

/* Stránka obchodních podmínek používá théma wrapper .wv3-content (jako cookies/GDPR). */

.wv3-voucher-error { margin-top: 1rem; padding: 0.8rem 1rem; border-radius: var(--wv3-radius-md, 10px); border: 1px solid color-mix(in srgb, #c0392b 40%, transparent); background: color-mix(in srgb, #c0392b 8%, var(--wv3-bg, #fff)); color: #c0392b; }

/* ---------- KROK 3 — platební karta ---------- */
.wv3-voucher-paycard { border-radius: var(--wv3-radius-lg, 16px); border: 1px solid var(--wv3-border, rgba(0,0,0,0.08)); background: var(--wv3-bg, #fff); box-shadow: var(--wv3-shadow-md, 0 8px 30px rgba(0,0,0,0.08)); overflow: hidden; }
.wv3-voucher-ready { display: flex; align-items: center; gap: 0.6rem; padding: 1.1rem 1.3rem; background: color-mix(in srgb, var(--wv3-primary) 10%, var(--wv3-bg, #fff)); color: var(--wv3-text); font-weight: 600; border-bottom: 1px solid var(--wv3-border, rgba(0,0,0,0.06)); }
.wv3-voucher-ready__check { width: 28px; height: 28px; flex-shrink: 0; border-radius: var(--wv3-radius-full, 999px); background: var(--wv3-primary); color: var(--wv3-on-primary, #fff); display: flex; align-items: center; justify-content: center; }
.wv3-voucher-ready__check .wv3-vi { width: 16px; height: 16px; }
.wv3-voucher-ready__check svg path { stroke-dasharray: 26; stroke-dashoffset: 26; animation: wv3-voucher-draw 0.5s 0.15s ease forwards; }
@keyframes wv3-voucher-draw { to { stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce) { .wv3-voucher-ready__check svg path { animation: none; stroke-dashoffset: 0; } }

.wv3-voucher-pay__body { padding: 1.3rem; }
.wv3-voucher-pay__row { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; padding: 0.55rem 0; border-bottom: 1px solid var(--wv3-border, rgba(0,0,0,0.07)); }
.wv3-voucher-pay__row:last-child { border-bottom: none; }
.wv3-voucher-pay__k { color: var(--wv3-text-secondary); font-size: 0.85rem; }
.wv3-voucher-pay__v { display: flex; align-items: center; gap: 0.4rem; font-weight: 700; }
.wv3-voucher-pay__v code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-weight: 700; }
.wv3-voucher-copy { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; padding: 0; border: 1px solid var(--wv3-border, rgba(0,0,0,0.15)); border-radius: var(--wv3-radius-sm, 6px); background: var(--wv3-bg, #fff); color: var(--wv3-primary); cursor: pointer; transition: background 0.15s ease, color 0.15s ease; }
.wv3-voucher-copy:hover { background: var(--wv3-primary); color: var(--wv3-on-primary, #fff); }
.wv3-voucher-copy .wv3-vi { width: 15px; height: 15px; }

.wv3-voucher-qr-frame { width: fit-content; max-width: 100%; margin: 1.4rem auto 0; text-align: center; padding: 1rem; border-radius: var(--wv3-radius-lg, 14px); background: color-mix(in srgb, var(--wv3-primary) 10%, var(--wv3-bg, #fff)); }
.wv3-voucher-qr-frame img { display: block; margin: 0 auto; padding: 10px; border-radius: var(--wv3-radius-md, 8px); background: #fff; } /* bílé pozadí jen pod QR — nutné pro čitelnost skenerem */
.wv3-voucher-qr-frame__label { display: block; margin-top: 0.6rem; font-size: 0.78rem; color: var(--wv3-text-secondary); }

.wv3-voucher-pay__foot { padding: 1.1rem 1.3rem 1.3rem; border-top: 1px solid var(--wv3-border, rgba(0, 0, 0, 0.08)); }
.wv3-voucher-savelink { display: flex; flex-direction: column; gap: 0.45rem; padding: 0.85rem 1rem; border: 1px dashed var(--wv3-border, rgba(0, 0, 0, 0.18)); border-radius: var(--wv3-radius-md, 10px); background: color-mix(in srgb, var(--wv3-primary) 4%, var(--wv3-bg, #fff)); }
.wv3-voucher-savelink__txt { font-size: 0.82rem; color: var(--wv3-text-secondary); }
.wv3-voucher-savelink__row { display: flex; align-items: center; gap: 0.5rem; min-width: 0; }
.wv3-voucher-savelink__url { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 0.85rem; font-weight: 600; color: var(--wv3-primary); text-decoration: none; }
.wv3-voucher-savelink__url:hover { text-decoration: underline; }

/* toast */
.wv3-voucher-toast { position: fixed; left: 50%; bottom: 26px; transform: translateX(-50%) translateY(12px); background: var(--wv3-text, #222); color: var(--wv3-bg, #fff); padding: 0.55rem 1.1rem; border-radius: var(--wv3-radius-full, 999px); font-size: 0.85rem; opacity: 0; pointer-events: none; transition: opacity 0.25s ease, transform 0.25s ease; z-index: 9999; }
.wv3-voucher-toast.is-show { opacity: 1; transform: translateX(-50%) translateY(0); }

/* ---------- VOUCHER KARTA (veřejné zobrazení + uplatnění) ---------- */
.wv3-voucher-public { max-width: 600px; margin: 0 auto; }
/* potvrzovací banner uvnitř karty (po odeslání objednávky) — zaoblený, odsazený */
.wv3-voucher-public .wv3-voucher-ready { border-radius: var(--wv3-radius-md, 8px); border-bottom: none; margin-bottom: 1.1rem; }
.wv3-voucher-card {
	position: relative; overflow: hidden;
	border-radius: var(--wv3-radius-lg, 16px);
	border: 1px solid var(--wv3-border, rgba(0,0,0,0.08));
	background: var(--wv3-bg, #fff);
	box-shadow: none;
}
.wv3-voucher-card__head {
	position: relative; overflow: hidden;
	background: linear-gradient(135deg, var(--wv3-primary), var(--wv3-primary-dark, var(--wv3-primary)));
	color: var(--wv3-on-primary, #fff);
	padding: 1.4rem 1.5rem;
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.5rem; text-align: center;
}
.wv3-voucher-card__head .wv3-vi { width: 30px; height: 30px; }
.wv3-voucher-card__eyebrow { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.12em; opacity: 0.9; }
.wv3-voucher-card__brand { font-family: var(--wv3-font-heading); font-weight: 700; font-size: 1.15rem; line-height: 1.15; }
/* stuhový roh */
.wv3-voucher-card__ribbon { position: absolute; top: 0; right: 0; width: 64px; height: 64px; overflow: hidden; pointer-events: none; z-index: 2; }
.wv3-voucher-card__ribbon::before { content: ""; position: absolute; top: 12px; right: -22px; width: 90px; transform: rotate(45deg); background: color-mix(in srgb, #000 12%, var(--wv3-primary)); height: 16px; box-shadow: 0 1px 4px rgba(0,0,0,0.2); }
.wv3-voucher-card__body { padding: 1.5rem; text-align: center; }
.wv3-voucher-card__amount { font-family: var(--wv3-font-heading); font-weight: 800; font-size: clamp(2rem, 7vw, 3rem); line-height: 1; color: var(--wv3-primary); }
.wv3-voucher-card__amount-label { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--wv3-text-secondary); margin-bottom: 0.2rem; }
.wv3-voucher-card__meta { display: flex; flex-wrap: wrap; justify-content: center; gap: 1.2rem; margin-top: 1.1rem; }
.wv3-voucher-card__meta > div { min-width: 110px; }
.wv3-voucher-card__meta dt { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--wv3-text-secondary); }
.wv3-voucher-card__meta dd { margin: 0.1rem 0 0; font-weight: 700; }
.wv3-voucher-card__code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: 0.05em; }
/* perforace */
.wv3-voucher-card__perf { position: relative; height: 0; border-top: 2px dashed var(--wv3-border, rgba(0,0,0,0.18)); margin: 1.3rem 0; }
.wv3-voucher-card__perf::before, .wv3-voucher-card__perf::after { content: ""; position: absolute; top: -11px; width: 20px; height: 20px; border-radius: var(--wv3-radius-full, 999px); background: var(--wv3-bg-light, var(--wv3-bg, #fff)); border: 1px solid var(--wv3-border, rgba(0,0,0,0.12)); }
.wv3-voucher-card__perf::before { left: -11px; }
.wv3-voucher-card__perf::after { right: -11px; }

/* badge systém */
.wv3-voucher-badge { display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.3rem 0.8rem; border-radius: var(--wv3-radius-full, 999px); font-size: 0.82rem; font-weight: 700; }
.wv3-voucher-badge .wv3-vi { width: 14px; height: 14px; }
.wv3-voucher-badge--paid { background: color-mix(in srgb, #2a9d8f 16%, var(--wv3-bg, #fff)); color: #1f7a6f; }
.wv3-voucher-badge--redeemed { background: color-mix(in srgb, var(--wv3-primary) 14%, var(--wv3-bg, #fff)); color: var(--wv3-primary-dark, var(--wv3-primary)); }
.wv3-voucher-badge--pending { background: color-mix(in srgb, #6c757d 16%, var(--wv3-bg, #fff)); color: #5a6268; }
.wv3-voucher-badge--expired, .wv3-voucher-badge--cancelled { background: color-mix(in srgb, #c0392b 14%, var(--wv3-bg, #fff)); color: #b03426; }

.wv3-voucher-warn { margin: 1.1rem 0; padding: 0.9rem 1.1rem; border-left: 4px solid #c0392b; border-radius: 0 var(--wv3-radius-md, 8px) var(--wv3-radius-md, 8px) 0; background: color-mix(in srgb, #c0392b 8%, var(--wv3-bg, #fff)); color: var(--wv3-text); font-weight: 600; }
.wv3-voucher-success { text-align: center; padding: 1.2rem; }
.wv3-voucher-success__check { width: 56px; height: 56px; margin: 0 auto 0.7rem; border-radius: var(--wv3-radius-full, 999px); background: var(--wv3-primary); color: var(--wv3-on-primary, #fff); display: flex; align-items: center; justify-content: center; }
.wv3-voucher-success__check .wv3-vi { width: 30px; height: 30px; }

/* ====================================================================
   Per-šablona doladění — voucher stránky ladí s designem každé WV3 šablony.
   Vše přes theme tokeny: radius / font / barvy se dědí z aktivní šablony,
   tlačítka (.wv3-btn) styluje samo théma per-template (pill / sharp / border).
   ==================================================================== */

/* obecný hover lift value-karet (per-template upraveno níže) */
.wv3-voucher-nom:hover { transform: translateY(-3px); }

/* -------------------- FLOW — oblé (radius-xl), měkké plovoucí stíny,
   borderless karty na tónovaném pozadí, gradient akcenty. */
.template-flow .wv3-voucher-hero,
.template-flow .wv3-voucher-paycard,
.template-flow .wv3-voucher-card { border-radius: var(--wv3-radius-xl, 24px); }
.template-flow .wv3-voucher-card__head { border-radius: var(--wv3-radius-xl, 24px) var(--wv3-radius-xl, 24px) 0 0; }
.template-flow .wv3-voucher-hero,
.template-flow .wv3-voucher-promo { border: none; box-shadow: none; }
.template-flow .wv3-voucher-paycard,
.template-flow .wv3-voucher-card {
	border: none;
	box-shadow: 0 10px 34px color-mix(in srgb, var(--wv3-primary) 13%, rgba(45, 52, 54, 0.10));
}
.template-flow .wv3-voucher-nom {
	border: none;
	background: var(--wv3-bg-light, var(--wv3-bg, #fff));
	box-shadow: none;
}
.template-flow .wv3-voucher-nom:hover { box-shadow: var(--wv3-shadow-md, 0 4px 16px rgba(45, 52, 54, 0.1)); }
.template-flow .wv3-voucher-nom:has(input:checked) {
	outline: 2px solid var(--wv3-primary); outline-offset: -2px;
	box-shadow: 0 10px 26px color-mix(in srgb, var(--wv3-primary) 26%, transparent);
}
.template-flow .wv3-voucher-giftblock { background: var(--wv3-primary-lighter, color-mix(in srgb, var(--wv3-primary) 8%, transparent)); }
.template-flow .wv3-voucher-steps__item.is-done .wv3-voucher-steps__num {
	background: linear-gradient(135deg, var(--wv3-primary), var(--wv3-primary-dark, var(--wv3-primary)));
	border-color: transparent;
}
.template-flow .wv3-voucher-qr-frame img {
	border-color: transparent;
	border-radius: var(--wv3-radius-lg, 16px);
	box-shadow: var(--wv3-shadow-sm, 0 2px 8px rgba(45, 52, 54, 0.06));
}

/* -------------------- STARTER — border-centric, jemný shadow-sm +
   elevace na hover (shadow-md), outline stepper (primary-dark). */
.template-starter .wv3-voucher-paycard,
.template-starter .wv3-voucher-card {
	box-shadow: var(--wv3-shadow-sm, 0 2px 8px rgba(45, 52, 54, 0.06));
	border: 1px solid var(--wv3-border);
}
/* paycard + veřejná karta = statické (bez hoveru, nejsou klikací) */
.template-starter .wv3-voucher-nom:hover { transform: translateY(-2px); box-shadow: var(--wv3-shadow-md, 0 4px 16px rgba(45, 52, 54, 0.1)); border-color: var(--wv3-primary); }
.template-starter .wv3-voucher-nom:has(input:checked) { transform: translateY(-2px); box-shadow: 0 4px 12px color-mix(in srgb, var(--wv3-primary) 18%, transparent); }
.template-starter .wv3-voucher-steps__num {
	border: 2px solid var(--wv3-primary-dark, var(--wv3-primary));
	color: var(--wv3-primary-dark, var(--wv3-primary));
}

/* -------------------- MINIMAL (vč. dark) — bez stínů, jemné 1px bordery,
   ring na výběr. Dark mode řeší tokeny (--wv3-bg/-light/-border/-text) samy. */
.template-minimal .wv3-voucher-hero { border: 1px solid color-mix(in srgb, var(--wv3-primary) 30%, transparent); box-shadow: none; }
.template-minimal .wv3-voucher-promo,
.template-minimal .wv3-voucher-paycard,
.template-minimal .wv3-voucher-card { box-shadow: none; border: 1px solid var(--wv3-border); }
.template-minimal .wv3-voucher-card__head { border-bottom: 1px solid color-mix(in srgb, var(--wv3-primary) 22%, transparent); }
.template-minimal .wv3-voucher-nom { box-shadow: none; }
.template-minimal .wv3-voucher-nom:hover { transform: none; box-shadow: 0 0 0 2px color-mix(in srgb, var(--wv3-primary) 16%, transparent); }
.template-minimal .wv3-voucher-nom:has(input:checked) { transform: none; box-shadow: 0 0 0 2px var(--wv3-primary); }
.template-minimal .wv3-voucher-qr-frame img { box-shadow: none; }

/* -------------------- CLASSIC — ostré rohy (radius tokeny = 0 → sharp samo),
   sekundární akcent na karty/perforaci (jako služby/ceník), primary-dark
   outline stepper (jako proces), serif nadpisy, bez liftu, perforace bez koleček. */
.template-classic .wv3-voucher-hero,
.template-classic .wv3-voucher-promo { border: 1px solid var(--wv3-secondary, var(--wv3-primary)); }
.template-classic .wv3-voucher-paycard,
.template-classic .wv3-voucher-card,
.template-classic .wv3-voucher-nom {
	border: 1px solid var(--wv3-secondary, var(--wv3-primary));
	box-shadow: var(--wv3-shadow-sm, 0 2px 8px rgba(45, 52, 54, 0.06));
}
.template-classic .wv3-voucher-nom__icon { color: var(--wv3-secondary, var(--wv3-primary)); }
.template-classic .wv3-voucher-nom:hover { transform: none; box-shadow: var(--wv3-shadow-md, 0 4px 16px rgba(45, 52, 54, 0.1)); }
.template-classic .wv3-voucher-nom:has(input:checked) { transform: none; box-shadow: 0 6px 16px color-mix(in srgb, var(--wv3-secondary) 24%, transparent); }
.template-classic .wv3-voucher-card__perf { border-top-color: var(--wv3-secondary, var(--wv3-primary)); }
.template-classic .wv3-voucher-card__perf::before,
.template-classic .wv3-voucher-card__perf::after { display: none; }
/* radius-full se v CLASSIC nedědí jako 0 → kolečka/badge srovnat ručně */
.template-classic .wv3-voucher-steps__num,
.template-classic .wv3-voucher-badge { border-radius: 0; }
.template-classic .wv3-voucher-steps__num { border-color: var(--wv3-primary-dark, var(--wv3-primary)); color: var(--wv3-primary-dark, var(--wv3-primary)); }
.template-classic .wv3-voucher-giftblock { background: color-mix(in srgb, var(--wv3-secondary) 8%, var(--wv3-bg, #fff)); }
.template-classic .wv3-voucher-giftblock__title .wv3-vi { color: var(--wv3-secondary, var(--wv3-primary)); }
.template-classic .wv3-voucher-hero__title,
.template-classic .wv3-voucher-step__title { font-family: var(--wv3-font-heading); }

/* ---------- responsive ---------- */
@media (max-width: 520px) {
	.wv3-voucher-steps__item { width: 72px; }
	.wv3-voucher-steps__label { font-size: 0.7rem; }
}

/* ---------- Veřejné uplatnění poukazu (částka + popup) + historie čerpání ---------- */
.wv3-voucher-redeemform { margin-top: 1.1rem; }
.wv3-voucher-redeemform .wv3-redeem-full { width: 100%; justify-content: center; }
.wv3-voucher-redeem-or { display: flex; align-items: center; gap: 0.7rem; color: var(--wv3-text-secondary); font-size: 0.85rem; margin: 1rem 0; }
.wv3-voucher-redeem-or::before, .wv3-voucher-redeem-or::after { content: ""; flex: 1; height: 1px; background: var(--wv3-border, rgba(0,0,0,0.12)); }
.wv3-voucher-redeem-partial { display: flex; gap: 0.5rem; align-items: center; justify-content: center; }
.wv3-voucher-redeem-partial input { width: 130px; padding: 0.6rem 0.7rem; border: 1px solid var(--wv3-border, rgba(0,0,0,0.15)); border-radius: var(--wv3-radius-md, 10px); font: inherit; text-align: center; background: var(--wv3-bg, #fff); color: var(--wv3-text, #1a1a1a); }
.wv3-voucher-redeem-cur { color: var(--wv3-text-secondary); }
.wv3-voucher-redeems { margin-top: 1.2rem; text-align: center; }
.wv3-voucher-redeems__title { font-weight: 700; color: var(--wv3-text); margin-bottom: 0.4rem; font-size: 0.95rem; }
.wv3-voucher-redeems__list { list-style: none; margin: 0; padding: 0; font-size: 0.9rem; }
.wv3-voucher-redeems__list li { display: flex; justify-content: center; gap: 0.8rem; padding: 0.4rem 0; border-bottom: 1px solid var(--wv3-border, rgba(0,0,0,0.08)); color: var(--wv3-text-secondary); }
.wv3-voucher-redeems__list li:last-child { border-bottom: 0; }
.wv3-vpop-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.5); display: flex; align-items: center; justify-content: center; z-index: 99999; padding: 16px; }
.wv3-vpop-overlay[hidden] { display: none; }
.wv3-vpop { background: var(--wv3-bg, #fff); border-radius: var(--wv3-radius-lg, 14px); max-width: 380px; width: 100%; padding: 1.6rem; text-align: center; box-shadow: 0 18px 50px rgba(0,0,0,0.3); }
.wv3-vpop__title { font-family: var(--wv3-font-heading); font-size: 1.2rem; margin: 0 0 0.5rem; color: var(--wv3-text); }
.wv3-vpop__text { color: var(--wv3-text-secondary); margin: 0 0 1.2rem; line-height: 1.5; }
.wv3-vpop__actions { display: flex; gap: 0.6rem; justify-content: center; flex-wrap: wrap; }
