/* Styl pro stránky Darujte / Poukaz / Děkujeme */
:root {
  --bg: #0a0b0e; --bg2: #0f1118; --bg3: #13151f;
  --txt: #e8e4d9; --mut: #8a8472; --mut2: #6b6757;
  --gold: #c9a84c; --gold2: #e8c870; --red: #c23b2a; --red2: #e04d3a; --grn: #5aaa6e;
  --b1: rgba(255,255,255,.06); --b2: rgba(255,255,255,.12);
  --paper: #e2d9bc; --ink: #1d1a14;
  --mono: 'IBM Plex Mono', monospace; --disp: 'Playfair Display', serif; --body: 'Crimson Pro', serif;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body { background: var(--bg); color: var(--txt); font-family: var(--body); font-size: 1.12rem; line-height: 1.7; }
a { color: var(--gold); }
.pv-nav { position: sticky; top: 0; z-index: 10; display: flex; justify-content: space-between; align-items: center; padding: 1rem 3rem; background: rgba(10,11,14,.92); backdrop-filter: blur(12px); border-bottom: 1px solid var(--b1); }
.pv-nav a { font-family: var(--mono); font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; color: var(--mut); text-decoration: none; }
.pv-nav .logo { font-family: var(--disp); font-size: 1.05rem; font-weight: 700; letter-spacing: .02em; text-transform: none; color: var(--txt); }
.wrap { max-width: 980px; margin: 0 auto; padding: 4rem 1.5rem 5rem; }
.wrap.narrow { max-width: 640px; }
.kicker { font-family: var(--mono); font-size: .72rem; letter-spacing: .32em; text-transform: uppercase; color: var(--red2); margin-bottom: 1rem; }
h1 { font-family: var(--disp); font-size: clamp(2.2rem, 6vw, 3.6rem); line-height: 1.05; margin-bottom: 1rem; }
h1 em { color: var(--gold); }
h2 { font-family: var(--disp); font-size: 1.7rem; margin: 3rem 0 1rem; }
.lead { font-size: 1.25rem; color: #c8c3b4; max-width: 640px; margin-bottom: 2.5rem; }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1.2rem; }
.card { background: var(--bg2); border: 1px solid var(--b2); padding: 1.8rem; display: flex; flex-direction: column; gap: .8rem; position: relative; }
.card.hl { border-color: var(--gold); }
.badge { position: absolute; top: -.7rem; left: 1.5rem; background: var(--gold); color: var(--bg); font-family: var(--mono); font-size: .62rem; letter-spacing: .16em; text-transform: uppercase; padding: .25rem .6rem; }
.card h3 { font-family: var(--disp); font-size: 1.5rem; }
.price { font-family: var(--mono); font-size: 1.6rem; color: var(--gold); }
.card ul { list-style: none; display: flex; flex-direction: column; gap: .35rem; flex: 1; }
.card li { padding-left: 1.2rem; position: relative; color: #c8c3b4; font-size: 1.02rem; }
.card li::before { content: '—'; position: absolute; left: 0; color: var(--mut2); }
.btn { display: inline-block; text-align: center; font-family: var(--mono); font-size: .78rem; letter-spacing: .16em; text-transform: uppercase; background: var(--gold); color: var(--bg); border: none; padding: 1rem 1.6rem; cursor: pointer; text-decoration: none; transition: background .2s; }
.btn:hover { background: var(--gold2); }
.btn:disabled { opacity: .6; cursor: wait; }
.btn.ghost { background: transparent; color: var(--gold); border: 1px solid var(--gold); }
.note { font-family: var(--mono); font-size: .66rem; letter-spacing: .12em; color: var(--mut); }
.faq { border-top: 1px solid var(--b2); }
.faq details { border-bottom: 1px solid var(--b2); padding: 1rem 0; }
.faq summary { cursor: pointer; font-family: var(--disp); font-size: 1.15rem; list-style: none; }
.faq summary::after { content: '+'; float: right; color: var(--gold); font-family: var(--mono); }
.faq details[open] summary::after { content: '−'; }
.faq p { color: #c8c3b4; margin-top: .6rem; }
.form { display: flex; flex-direction: column; gap: .9rem; }
.form label { font-family: var(--mono); font-size: .68rem; letter-spacing: .16em; text-transform: uppercase; color: var(--mut); }
.form input, .form select { width: 100%; background: rgba(255,255,255,.06); border: 1px solid var(--b2); color: var(--txt); font-family: var(--mono); font-size: 1rem; padding: .9rem 1rem; outline: none; }
.form input:focus, .form select:focus { border-color: var(--gold); }
.msg { display: none; padding: .9rem 1rem; font-family: var(--mono); font-size: .8rem; line-height: 1.6; }
.msg.show { display: block; }
.msg.err { background: rgba(194,59,42,.12); border: 1px solid rgba(194,59,42,.5); color: #ffb3a8; }
.msg.ok { background: rgba(90,170,110,.1); border: 1px solid rgba(90,170,110,.45); color: #b9e6c4; }
.foot { border-top: 1px solid var(--b1); padding: 2rem 1.5rem; text-align: center; font-family: var(--mono); font-size: .62rem; letter-spacing: .12em; color: var(--mut2); }
.foot a { color: var(--mut2); text-decoration: none; margin: 0 .7rem; }

/* Náhled / tisk poukazu — stejný design jako PDF */
.voucher { width: 100%; max-width: 760px; aspect-ratio: 210 / 148; background: var(--paper); color: var(--ink); position: relative; container-type: inline-size; margin: 0 auto; font-family: 'Source Serif 4', Georgia, serif; }
.voucher .tab { position: absolute; top: 0; left: 8.5cqw; width: 29.5cqw; height: 4.3cqw; background: #d3c79f; border: 1px solid #b7a873; border-top: none; border-radius: 0 0 .9cqw .9cqw; font-family: var(--mono); font-size: 1.2cqw; letter-spacing: .12em; padding: 1.2cqw 1.9cqw; color: #5a4f33; }
.voucher .frame { position: absolute; inset: 5.7cqw 4.8cqw 4.8cqw 4.8cqw; border: .25cqw solid var(--ink); padding: 3.8cqw 4.3cqw; }
.voucher .frame::after { content: ''; position: absolute; inset: .65cqw; border: .1cqw solid var(--ink); pointer-events: none; }
.voucher .top { display: flex; justify-content: space-between; font-family: var(--mono); font-size: 1.2cqw; letter-spacing: .1em; text-transform: uppercase; }
.voucher .top b { font-size: 1.45cqw; letter-spacing: .18em; }
.voucher .top div:last-child { text-align: right; line-height: 1.6; }
.voucher h4 { font-weight: 700; font-size: 4.8cqw; line-height: 1; margin-top: 3.3cqw; }
.voucher h4 em { font-weight: 400; color: var(--red); }
.voucher .sub { font-size: 1.75cqw; margin-top: 1.2cqw; max-width: 55cqw; line-height: 1.35; }
.voucher .count { position: absolute; right: 5.7cqw; top: 12.4cqw; width: 16.2cqw; height: 16.2cqw; border: .3cqw solid var(--red); border-radius: 50%; color: var(--red); text-align: center; transform: rotate(-12deg); font-family: var(--mono); font-weight: 700; padding-top: 2.9cqw; }
.voucher .count .n { font-size: 4.5cqw; line-height: 1; font-family: 'Source Serif 4', serif; }
.voucher .count .l { font-size: 1.05cqw; letter-spacing: .14em; margin-top: .5cqw; }
.voucher .fields { margin-top: 3.8cqw; display: flex; gap: 3.8cqw; font-family: var(--mono); font-size: 1.28cqw; text-transform: uppercase; letter-spacing: .1em; }
.voucher .fields > div { flex: 1; }
.voucher .line { border-bottom: .15cqw solid var(--ink); height: 3.3cqw; font-family: 'Source Serif 4', serif; font-size: 2.1cqw; text-transform: none; letter-spacing: 0; padding-top: .4cqw; }
.voucher .stamp { position: absolute; left: 41cqw; top: 43.8cqw; border: .33cqw solid var(--red); color: var(--red); font-family: var(--mono); font-weight: 700; font-size: 1.6cqw; letter-spacing: .2em; padding: .55cqw 1.4cqw; transform: rotate(-6deg); opacity: .75; }
.voucher .code { position: absolute; left: 4.3cqw; right: 4.3cqw; bottom: 3.8cqw; display: flex; align-items: flex-end; justify-content: space-between; gap: 2cqw; }
.voucher .box { background: var(--ink); color: var(--paper); font-family: var(--mono); padding: 1.4cqw 2.4cqw; }
.voucher .box .k { font-size: 1.05cqw; letter-spacing: .16em; color: var(--gold); }
.voucher .box .v { font-size: 2.75cqw; font-weight: 500; letter-spacing: .14em; margin-top: .3cqw; }
.voucher .how { font-family: var(--mono); font-size: 1.2cqw; line-height: 1.55; text-align: right; }

@media (max-width: 640px) { .pv-nav { padding: 1rem 1.2rem; } .wrap { padding: 2.5rem 1rem 4rem; } }

@media print {
  @page { size: A5 landscape; margin: 0; }
  body { background: #fff; }
  body > *:not(.print-area) { display: none !important; }
  .print-area, .print-area * { visibility: visible; }
  .print-area { padding: 0 !important; margin: 0 !important; }
  .print-area .voucher { max-width: none; width: 210mm; height: 147mm; aspect-ratio: auto; margin: 0; page-break-after: avoid; break-after: avoid; }
  html, body { height: 147mm; overflow: hidden; }
  .print-area .no-print { display: none !important; }
}
