/*
 * Poukaz — sdílená šablona karty (.gbv) pro stránku /p/<kód>, tisk z prohlížeče
 * a náhled v konfigurátoru. Rozměry v mm, aby tisk seděl 1:1 (bez PDF — rozhodnutí
 * majitele 28. 10. 2026). Předloha: docs/poukazy-navrh/index.tpl.html.
 * Rastr = dlaždice emblému 2×2, shodná s gb4.css blok 23 (python scripts/rastr/gen.py --tile).
 */
.gbv { --gbv-tile: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15.2 16.8' preserveAspectRatio='none'%3E%3Cdefs%3E%3Cpath id='v' transform='translate(.445 .475)' d='M4.28 7.45c-0.33,0 -0.59,-0.27 -0.59,-0.6 0,-1.39 0.37,-2.79 1.08,-4.06 0.32,-0.58 0.63,-1.13 0.76,-1.36l0 -0.26c0,0.02 -0.02,0.01 -0.06,0.01l-4.25 0c-0.02,0 -0.04,0.01 -0.05,0.02l0.01 0.23c0.12,0.23 0.4,0.72 0.71,1.26l0.05 0.1c0.71,1.27 1.08,2.68 1.08,4.07 0,0.32 -0.26,0.59 -0.59,0.59 -0.32,0 -0.59,-0.27 -0.59,-0.59 0,-1.19 -0.32,-2.4 -0.93,-3.49l-0.06 -0.1c-0.33,-0.59 -0.63,-1.13 -0.73,-1.31 -0.08,-0.14 -0.12,-0.3 -0.12,-0.46l0 -0.31c0,-0.24 0.07,-0.47 0.21,-0.67 0.22,-0.32 0.6,-0.52 1.01,-0.52l4.25 0c0.24,0 0.47,0.06 0.66,0.18 0.37,0.21 0.58,0.58 0.58,0.99l0 0.33c0,0.16 -0.04,0.32 -0.12,0.47 -0.1,0.18 -0.43,0.77 -0.78,1.4 -0.61,1.09 -0.94,2.3 -0.94,3.49 0,0.33 -0.26,0.59 -0.59,0.59l0 0z'/%3E%3Cg id='l'%3E%3Cuse href='%23v' transform='rotate(180 3.8 4.2)'/%3E%3C/g%3E%3Ccircle id='o' cx='3.8' cy='4.2' r='2.83' fill='none' stroke='%23000' stroke-width='1.18'/%3E%3C/defs%3E%3Cuse href='%23o'/%3E%3Cuse href='%23l' x='7.6'/%3E%3Cuse href='%23v' y='8.4'/%3E%3Cuse href='%23o' x='7.6' y='8.4'/%3E%3C/svg%3E");
  position: relative; overflow: hidden; flex: none; box-sizing: border-box; line-height: 1.3;
  background: var(--bg-v); color: var(--ink); font-family: 'Roboto V1', Roboto, Arial, sans-serif;
  -webkit-print-color-adjust: exact; print-color-adjust: exact;
  --ink: #0b2a55; --muted: #5d6b7e; --acc: #2f7424; --bg-v: #ffffff; --stub: #f2f5f8; --perf: #c3ccd8; --hair: #d9dfe7;
  --lg-navy: #202e52; --lg-green: #439944; --lg-gpv-navy: #092857; --lg-gpv-green: #49943C;
  --rs-c: #0b2a55; --rs-a: .05; --notch: #eef1f5; }
.gbv *, .gbv *::before, .gbv *::after { box-sizing: border-box; }
/* Tmavá: štítek i emblém loga v zelené značky #4a9a3c (majitel 4. 11. 2026; štítek má na navy 4,2 : 1). */
.gbv.v-dark { --ink: #ffffff; --muted: #c3cee0; --acc: #4a9a3c; --stub: #061a38; --perf: #35517f; --hair: #2b4a7a;
  --bg-v: linear-gradient(135deg, #0b2a55 0%, #082247 52%, #061a38 100%);
  --lg-navy: #ffffff; --lg-green: #4a9a3c; --lg-gpv-navy: #ffffff; --lg-gpv-green: #4a9a3c; --rs-c: #ffffff; --rs-a: .05; }
/* Zelená (majitel 5. 11. 2026, turnaj = 3 místa, 3 barvy): tmavší zelená značky než plocha slevového poukazu,
   bílé písmo, štítek a emblém světle zelené (štítek ≥ 4,7 : 1, ztlumený text ≥ 5,4 : 1). */
.gbv.v-green { --ink: #ffffff; --muted: #d9ecd2; --acc: #bde3b3; --stub: #173d12; --perf: #5e9a50; --hair: #4d8a40;
  --bg-v: linear-gradient(135deg, #2a6820 0%, #245a1c 52%, #1d4a17 100%);
  --lg-navy: #ffffff; --lg-green: #bde3b3; --lg-gpv-navy: #ffffff; --lg-gpv-green: #bde3b3; --rs-c: #ffffff; --rs-a: .06; }
.gbv.v-green:not(.k-coupon) .gbv-hl { background: #bde3b3; }   /* slevový má bílý ústřižek — tam zůstává zelená */
.gbv.v-green .gbv-step i { background: #ffffff; color: #245a1c; }   /* zelené kolečko by na zelené zaniklo */
.gbv.k-coupon .gbv-main { background: linear-gradient(135deg, #2f7424, #245a1c); }   /* bílé písmo ≥ 5 : 1 i přes rastr (kontrola 28. 10. 2026) */
.gbv.k-coupon { --lg-navy: #fff; --lg-green: #bde3b3; --lg-gpv-navy: #fff; --lg-gpv-green: #bde3b3; }
/* Texty sedí v zónách nad podklady (templates/voucher/card.php): slevový poukaz = zelená plocha
   s bílým písmem a bílý ústřižek s tmavým — v obou vzhledech. */
.gbv-zone { position: absolute; inset: 0; }
.gbv.k-coupon .gbv-zm { --ink: #ffffff; --muted: #f1f8ee; --acc: #ffffff; }
.gbv.k-coupon .gbv-zs { --ink: #0b2a55; --muted: #46546a; }
.gbv.k-coupon .gbv-stub { background: #fff; }
.gbv-a { position: absolute; }
.gbv-main { position: absolute; left: 0; top: 0; bottom: 0; }
.gbv-logo { display: block; height: 12mm; width: auto; overflow: visible; }
.gbv-lbl { font-family: 'Bebas Neue', Arial, sans-serif; letter-spacing: .15em; color: var(--acc); white-space: nowrap; line-height: 1; text-transform: uppercase; }
.gbv-val { font-family: 'Bebas Neue', Arial, sans-serif; line-height: .84; color: var(--ink); white-space: nowrap; letter-spacing: .005em; }
.gbv-k { display: block; font-size: 2.15mm; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); line-height: 1.2; }
.gbv-nm { font-size: 4.3mm; line-height: 1.25; color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 56mm; display: block; }
.gbv-msg { font-style: italic; color: var(--ink); line-height: 1.32; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.gbv-small { font-size: 2.65mm; line-height: 1.35; color: var(--muted); }
.gbv-code { font-size: 3.6mm; letter-spacing: .12em; color: var(--ink); white-space: nowrap; font-variant-numeric: tabular-nums; text-align: center; }
.gbv-qr { background: #fff; border-radius: 2.2mm; padding: 1.4mm; }
.gbv-qr svg { display: block; width: 100%; height: 100%; }
.gbv-rs { position: absolute; pointer-events: none; background: var(--rs-c); opacity: var(--rs-a);
  /* dlaždice 2 × 2 = buňka 20 × 22 px patičky webu (gb4.css blok 23) převedená na mm */
  -webkit-mask: var(--gbv-tile) 0 0 / 10.6mm 11.7mm repeat, var(--fade, linear-gradient(#000, #000));
  -webkit-mask-composite: source-in; mask: var(--gbv-tile) 0 0 / 10.6mm 11.7mm repeat, var(--fade, linear-gradient(#000, #000)); mask-composite: intersect; }
.gbv-stub { position: absolute; top: 0; right: 0; bottom: 0; background: var(--stub); }
.gbv-perf { position: absolute; top: 0; bottom: 0; border-left: .35mm dashed var(--perf); }
.gbv-notch { position: absolute; width: 7mm; height: 7mm; border-radius: 50%; background: var(--notch); }
.gbv-hl { position: absolute; height: .6mm; background: #4a9a3c; border-radius: .3mm; }
.gbv-cob { position: absolute; display: flex; flex-direction: column; align-items: flex-end; gap: 1.2mm; text-align: right; max-height: 23mm; overflow: hidden; }   /* logo 11 + 3 řádky → končí nad hodnotou (38,7 mm) */
.gbv-cob img { display: block; max-height: 11mm; max-width: 40mm; object-fit: contain; }
.gbv.v-dark .gbv-cob img, .gbv.v-green .gbv-cob img, .gbv.k-coupon .gbv-cob img { background: #fff; border-radius: 1.6mm; padding: 1.2mm 1.8mm; }   /* logo firmy bývá tmavé — na navy, na zelené kartě i na zelené ploše slevového poukazu podložka jako u QR */
.gbv-cob-t { font-size: 2.65mm; line-height: 1.35; color: var(--ink); max-width: 50mm; overflow: hidden;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.gbv-step { display: grid; grid-template-columns: 7mm 1fr; gap: 2.4mm; align-items: start; margin-bottom: 3.4mm; font-size: 3.25mm; line-height: 1.38; }
.gbv-step i { font-style: normal; display: grid; place-items: center; width: 6.2mm; height: 6.2mm; border-radius: 50%; background: #3c8431; color: #fff; font: 3.6mm/1 'Bebas Neue', Arial, sans-serif; }
.gbv-terms { margin: 0; padding: 0 0 0 3.6mm; font-size: 2.85mm; line-height: 1.45; color: var(--ink); }
.gbv-terms li { margin-bottom: 1mm; }
.gbv-bc { background: #fff; border-radius: 1.6mm; padding: 1.6mm 2mm 1.2mm; box-shadow: 0 0 0 .25mm var(--hair); }
.gbv-bc svg { display: block; }
.gbv-bc-t { font: 2.6mm/1 'Roboto V1', Roboto, Arial, sans-serif; letter-spacing: .14em; color: #0b2a55; text-align: center; margin-top: 1mm; font-variant-numeric: tabular-nums; }
.gbv-dl { width: 210mm; height: 99mm; }
.gbv-a5 { width: 210mm; height: 148mm; }   /* A5 na šířku (templates/voucher/a5.php); A4 celá strana = tatáž karta zvětšená √2 v print.php */
/* A5 / A4: partner vpravo nahoře naproti logu — logo až 40 × 16 mm, 3 řádky textu, blok končí nad hodnotou (51,8 mm) */
.gbv-cob.gbv-cob-a5 { gap: 1.8mm; max-height: 34mm; }
.gbv-cob-a5 img { max-height: 16mm; max-width: 40mm; }
.gbv.v-dark .gbv-cob-a5 img, .gbv.v-green .gbv-cob-a5 img, .gbv.k-coupon .gbv-cob-a5 img { padding: 1.6mm 2.4mm; border-radius: 2mm; }
.gbv-cob-a5 .gbv-cob-t { font-size: 3.2mm; max-width: 72mm; }
/* emblém Golf Brothers jako vodoznak A5 / A4 (předloha a5(): navy 8 % na světlé, 14 % na tmavé a zelené) */
.gbv-wm { pointer-events: none; opacity: .08; }
.gbv.v-dark .gbv-wm, .gbv.v-green .gbv-wm { opacity: .14; }
.gbv-emb { display: block; width: auto; overflow: visible; }
/* rub A5 / A4 (templates/voucher/back.php): návod a podmínky o pětinu větší než na rubu DL */
.gbv-a5 .gbv-step { grid-template-columns: 8.6mm 1fr; gap: 3mm; margin-bottom: 4.4mm; font-size: 4mm; }
.gbv-a5 .gbv-step i { width: 7.6mm; height: 7.6mm; font-size: 4.4mm; }
.gbv-a5 .gbv-terms { padding-left: 4.4mm; font-size: 3.5mm; }
.gbv-a5 .gbv-terms li { margin-bottom: 1.4mm; }

/* tisk: jen poukazy, přesný formát stránky nastavuje šablona (@page) */
@media print {
  .gbv { --notch: #ffffff; box-shadow: none !important; }
  .no-print { display: none !important; }
}

/* ---------- stránka poukazu a konfigurátor (v4) ---------- */
.vp-wrap { max-width: 1100px; margin: 0 auto; padding-top: 8px; padding-bottom: 40px; }   /* boční okraj dává .gb-container */
.vp-stage { width: 100%; max-width: 210mm; overflow: hidden; border-radius: 12px; }   /* nikdy širší než karta (scale ≤ 1) */
.vp-scale { transform-origin: 0 0; }
.vp-grid { display: grid; gap: 24px; align-items: start; }
@media (min-width: 900px) { .vp-grid { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); } }
.vp-card { background: #fff; border: 1px solid #d9dfe7; border-radius: 14px; padding: 20px; }
.vp-bal { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.vp-bal strong { font: 40px/1 'Bebas Neue', Arial, sans-serif; color: #082247; font-weight: 400; }
.vp-bar { height: 8px; border-radius: 99px; background: #e5f1e1; margin: 10px 0 6px; overflow: hidden; }
.vp-bar span { display: block; height: 100%; background: #3c8431; }
.vp-actions { display: grid; gap: 10px; margin-top: 16px; }
.vp-btn { display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 10px 18px; border-radius: 999px; border: 1px solid #d9dfe7; background: #fff; color: #082247; font: inherit; font-size: 16px; text-decoration: none; cursor: pointer; width: 100%; }
.vp-btn:hover { border-color: #082247; }
.vp-btn.pri { background: #3c8431; border-color: #3c8431; color: #fff; }
.vp-btn.pri:hover { background: #2f7424; }
.vp-btn:focus-visible { outline: 3px solid #4a9a3c; outline-offset: 2px; }
.vp-muted { color: #5d6b7e; font-size: 14px; }
.vp-alert { border-radius: 10px; padding: 12px 14px; margin: 0 0 16px; font-size: 15px; }
.vp-alert.err { background: #fbe9e7; color: #7a1d14; }
.vp-alert.ok { background: #e5f1e1; color: #1f5418; }
.vp-form { display: grid; gap: 18px; }
.vp-field > label, .vp-custom > label, .vp-legend { display: block; font-size: 14px; color: #46546a; margin-bottom: 6px; }
.vp-field input[type=text], .vp-field input[type=email], .vp-field input[type=number], .vp-field input[type=datetime-local], .vp-field textarea {
  width: 100%; min-height: 46px; border: 1px solid #c3ccd8; border-radius: 10px; padding: 10px 12px; font: inherit; font-size: 16px; background: #fff; box-sizing: border-box; }
.vp-field textarea { min-height: 72px; resize: vertical; }
.vp-chips { display: flex; flex-wrap: wrap; gap: 8px; border: 0; padding: 0; margin: 0; }
.vp-chip { position: relative; }
.vp-chip input { position: absolute; opacity: 0; inset: 0; cursor: pointer; margin: 0; }
.vp-chip span { display: flex; align-items: center; justify-content: center; min-width: 76px; min-height: 46px; padding: 8px 14px; border: 1px solid #c3ccd8; border-radius: 10px; background: #fff; font-size: 16px; }
.vp-chip input:checked + span { border-color: #082247; box-shadow: inset 0 0 0 1px #082247; background: #f3f5f7; }
.vp-chip input:focus-visible + span { outline: 3px solid #4a9a3c; outline-offset: 2px; }
.vp-trust { display: flex; flex-wrap: wrap; gap: 6px 16px; color: #2f7424; font-size: 14px; }
.vp-more summary { cursor: pointer; color: #082247; font-size: 15px; min-height: 44px; display: flex; align-items: center; }
.vp-field-err { color: #b3261e; font-size: 14px; margin-top: 4px; }
.vp-h1 { font: 400 40px/1.05 'Bebas Neue', Arial, sans-serif; letter-spacing: .02em; color: #082247; margin: 8px 0 6px; }
.vp-lead { margin: 0 0 20px; font-size: 16px; }
.vp-preview { display: grid; gap: 14px; min-width: 0; }
.vp-shadow { box-shadow: 0 10px 30px rgba(11, 42, 85, .16); }
.vp-help { font-size: 13px; margin: 4px 0 0; }
.vp-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.vp-custom { margin-top: 12px; }
.vp-suffix { display: flex; align-items: center; gap: 8px; max-width: 260px; }
.vp-suffix span { color: #46546a; font-size: 16px; }
.vp-options { display: grid; gap: 8px; }
.vp-option { position: relative; display: block; }
.vp-option input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.vp-option span { display: grid; gap: 2px; padding: 12px 14px; min-height: 46px; border: 1px solid #c3ccd8; border-radius: 10px; background: #fff; }
.vp-option b { font-weight: 400; font-size: 16px; color: #082247; }
.vp-option small { font-size: 13px; color: #5d6b7e; }
.vp-option input:checked + span { border-color: #082247; box-shadow: inset 0 0 0 1px #082247; background: #f3f5f7; }
.vp-option input:focus-visible + span { outline: 3px solid #4a9a3c; outline-offset: 2px; }
.vp-email { display: grid; gap: 14px; margin-top: 14px; }
/* Nákupní sloupec konfigurátoru = .pd-buy detailu produktu (krémový panel, název, cena,
   množství a „Do košíku", lišty z components/pdp-buy-extra.php); tady jen odstupy. */
.vp-buy .vp-form { margin-top: 18px; }
.vp-buy .pd-price { margin-top: 20px; }
.vp-buy__err { margin: 12px 0 0; }
/* Jak dárkový poukaz funguje — kroky pod konfigurátorem. */
.vp-how { margin-top: 40px; }
.vp-steps { list-style: none; counter-reset: vp-step; display: grid; gap: 14px; padding: 0; margin: 18px 0 0; }
@media (min-width: 700px) { .vp-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .vp-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.vp-steps li { counter-increment: vp-step; position: relative; display: grid; align-content: start; gap: 6px;
  padding: 18px 18px 18px 64px; border-radius: 14px; background: #fff; box-shadow: 0 1px 3px rgba(11, 42, 85, .1); }
.vp-steps li::before { content: counter(vp-step); position: absolute; left: 18px; top: 16px; display: grid; place-items: center;
  width: 32px; height: 32px; border-radius: 50%; background: #2f7424; color: #fff; font-weight: 700; font-size: 16px; }
.vp-steps strong { color: #082247; font-size: 16px; line-height: 1.3; }
.vp-steps span { color: #46546a; font-size: 15px; line-height: 1.45; }
.vp-how__post { margin: 18px 0 0; color: #46546a; font-size: 15px; }
/* Firemní poukaz — pro koho je, daně, kde platí (voucher-buy.php, $vb_corp) */
.vp-corp { max-width: 820px; margin-top: 14px; color: #46546a; font-size: 15px; line-height: 1.55; }
.vp-corp p { margin: 0 0 10px; }
.vp-how__post a { display: inline-flex; align-items: center; min-height: 44px; color: #082247; text-decoration: underline; text-underline-offset: 3px; }
.vp-of { font: 18px/1 'Roboto V1', Roboto, Arial, sans-serif; color: #5d6b7e; }
.vp-state { margin: 12px 0 0; font-size: 15px; color: #46546a; }
.vp-state.ok { color: #2f7424; }
.vp-facts { display: grid; gap: 6px; margin: 14px 0 0; }
.vp-facts div { display: flex; justify-content: space-between; gap: 12px; border-top: 1px solid #e3e8ee; padding-top: 6px; }
.vp-facts dt { color: #5d6b7e; font-size: 14px; }
.vp-facts dd { margin: 0; font-size: 15px; color: #082247; }
.vp-code { letter-spacing: .12em; font-variant-numeric: tabular-nums; }
.vp-check { margin-top: 24px; max-width: 560px; }
.vp-row { display: flex; gap: 10px; flex-wrap: wrap; }
.vp-row input { flex: 1 1 180px; text-transform: uppercase; letter-spacing: .1em; }
.vp-btn-auto { width: auto; flex: 0 0 auto; }
.vp-actions form { margin: 0; }
.vp-form fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.vp-form legend { padding: 0; }
.vp-more summary { list-style: none; gap: 8px; }
.vp-more summary::-webkit-details-marker { display: none; }
.vp-more summary::before { content: '▸'; color: #3c8431; }
.vp-more[open] summary::before { content: '▾'; }

/* ---------- kategorie Dárkové poukazy: dlaždice s kartou (v4 components/voucher-tiles.php) ---------- */
.vt-page.pl__grid { grid-template-columns: minmax(0, 1fr); }   /* bez filtrů — mřížka přes celou šířku */
.vt-card__img { display: flex; align-items: center; aspect-ratio: 16 / 10; background: #fff; }   /* karta je 2,1 : 1 — čtverec produktové fotky by nechal půl plochy prázdné; bílá jako celá karta produktu */
/* Karta má rozměry v mm; skript dlaždice nastaví --vt-k = šířka dlaždice / šířka karty. */
.vt-stage { --vt-k: .3; position: relative; display: block; width: 100%; aspect-ratio: 210 / 99; }
.vt-scale { position: absolute; left: 0; top: 0; transform-origin: 0 0; transform: scale(var(--vt-k)); }
.vt-scale .gbv { border-radius: 3mm; box-shadow: 0 3mm 9mm rgba(8, 34, 71, .2); --notch: #fff; }
.vt-trust { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 18px; margin-top: 16px; color: #2f7424; font-size: 14px; }
.vt-trust a { color: #082247; text-decoration: underline; min-height: 44px; display: inline-flex; align-items: center; }
/* ---------- Můj účet › Dárkové poukazy: miniatura karty v tabulce (v2 pages/documents/voucher-list.php) ---------- */
.vm-row { display: flex; align-items: center; gap: 12px; }
.vm-thumb { flex: 0 0 120px; width: 120px; }
.vm-thumb .vt-stage { --vt-k: .151; }
.vm-thumb .gbv { border-radius: 4mm; box-shadow: 0 0 0 1.5mm #d9dfe7; --notch: #ffffff; }
.vm-code { font-variant-numeric: tabular-nums; letter-spacing: .08em; }
.vm-act { display: inline-flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
@media (max-width: 599px) { .vm-thumb { flex-basis: 96px; width: 96px; } .vm-thumb .vt-stage { --vt-k: .121; } }
