/* A/B test: Program, viz docs/ab-test-hero.md. Vzhled tištěného programu: patkové písmo, jeden druh tenké linky, žádné karty ani stíny. */
@font-face { font-family: "PT Serif"; font-style: normal; font-weight: 400; font-display: swap; src: url(/fonts/pt-normal400-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+2000-206F, U+20AC; }
@font-face { font-family: "PT Serif"; font-style: normal; font-weight: 400; font-display: swap; src: url(/fonts/pt-normal400-latin-ext.woff2) format("woff2"); unicode-range: U+0100-02AF; }
@font-face { font-family: "PT Serif"; font-style: normal; font-weight: 700; font-display: swap; src: url(/fonts/pt-normal700-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+2000-206F, U+20AC; }
@font-face { font-family: "PT Serif"; font-style: normal; font-weight: 700; font-display: swap; src: url(/fonts/pt-normal700-latin-ext.woff2) format("woff2"); unicode-range: U+0100-02AF; }
@font-face { font-family: "PT Serif"; font-style: italic; font-weight: 400; font-display: swap; src: url(/fonts/pt-italic400-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+2000-206F, U+20AC; }
@font-face { font-family: "PT Serif"; font-style: italic; font-weight: 400; font-display: swap; src: url(/fonts/pt-italic400-latin-ext.woff2) format("woff2"); unicode-range: U+0100-02AF; }
@font-face { font-family: "Playfair"; font-weight: 400 900; font-display: swap; src: url(/fonts/playfair-latin-wght.woff2) format("woff2"); unicode-range: U+0000-00FF, U+2000-206F, U+20AC; }
@font-face { font-family: "Playfair"; font-weight: 400 900; font-display: swap; src: url(/fonts/playfair-ext-wght.woff2) format("woff2"); unicode-range: U+0100-02AF; }

:root {
  --font: "PT Serif", Georgia, serif;
  --display: "Playfair", Georgia, serif;
  --paper: #fcf8ef;
  --tint: #f7f0e3;
  --rule: rgba(42, 26, 46, .32);
  --radius: 3px;
  --radius-small: 2px;
  --line: var(--rule);
}

.only-d { display: none; }
body { background: var(--paper); }
.button::after { display: none; }

/* Hero */
.prog { padding: 16px var(--gutter) 18px; background: var(--paper); text-align: center; }
.prog__head { padding-bottom: 12px; }
.prog__title { margin: 0; font: 700 11.6vw/1.12 var(--display); text-wrap: balance; }
.prog__title--long { font-size: 8.2vw; }
.prog__sub { max-width: 22em; margin: 4px auto 0; font-size: 19px; line-height: 1.3; font-style: italic; text-wrap: balance; }
.prog__photo { padding: 4px; }
.prog .ph { width: 100%; aspect-ratio: 3 / 2; max-height: 34vh; object-fit: cover; object-position: 50% 18%; outline: 1px solid var(--rule); outline-offset: 3px; }
.prog__when { padding: 12px 0 11px; }
.prog__date { margin: 0; font-size: clamp(20px, 5.7vw, 23px); line-height: 1.2; font-weight: 700; }
.prog__place { margin: 3px 0 0; font-size: 18px; line-height: 1.3; }
.stock { margin: 4px 0 0; color: var(--wine-dark); font-size: 18px; line-height: 1.3; font-weight: 700; }
.prog__buy { padding-top: 10px; border-top: 1px solid var(--rule); }
.prog__price { margin: 0 0 9px; font-size: 18px; line-height: 1.3; }
.prog__price b { font-size: clamp(20px, 5.7vw, 23px); line-height: 1; font-weight: 700; }
.prog .button { padding: 13px 8px 15px; }
.pay { margin: 8px 0 0; color: var(--ink); font-size: 17px; line-height: 1.3; font-style: italic; text-align: center; text-wrap: balance; }

.prog-rest { padding: 14px var(--gutter) 26px; background: var(--paper); }
.prog-rest__claim { max-width: 20em; margin: 0 auto 16px; font-size: 23px; line-height: 1.28; font-style: italic; text-align: center; text-wrap: balance; }
.prog-rest .hero__highlights { margin: 0; color: var(--ink); }
.prog-rest .hero__highlights strong { font-weight: 700; }
.prog-rest .hero__highlights li { text-wrap: pretty; }

/* Sekce: oddělují se střídáním podkladu, ne linkou */
.quotes, .buy, .faq { background: var(--paper); }
.story, .cast, .gallery, .venue, .final, .footer { background: var(--tint); }
.final { padding-bottom: 56px; }
.section h2, .final h2 { font-family: var(--display); text-wrap: balance; }
.quotes h2 { text-align: center; }
.footer { padding-top: 0; border-top: 0; color: #6f6273; }
/* Jediná linka v závěru: slabší než ostatní a jen v šířce obsahu, ať nepůsobí jako další sekce */
.footer .wrap::before { content: ""; display: block; height: 1px; margin-bottom: 20px; background: rgba(42, 26, 46, .13); }
.footer a, .footer__link { color: inherit; text-decoration-color: var(--rule); }

.final h2 { margin-bottom: 22px; }
.final .facts { gap: 14px; margin-bottom: 30px; padding: 0; border: 0; }
.final .countdown { margin-bottom: 24px; }

.video { border-width: 1px; border-color: var(--rule); }

/* Galerie: navazuje na herce, stejné mezery i rohy fotek, bez rámečku */
.cast:has(+ .gallery) { padding-bottom: 0; }
.gallery { padding: 22px 0 36px; }
.gallery__track { margin: 0 auto; padding: 0 var(--gutter); gap: 14px; }
.gallery__track img { border-radius: var(--radius); }
.gallery__zoom { right: 8px; bottom: 8px; width: 28px; height: 28px; padding: 4px; border: 1px solid var(--rule); border-radius: var(--radius); background: var(--paper); color: var(--ink); }

.gallery__more { border-radius: var(--radius); font: 700 26px var(--display); font-variant-numeric: lining-nums; }

/* Stránka cookies */
.legal__bar { background: var(--paper); }
.legal h1, .legal h2 { font-family: var(--display); text-wrap: balance; }
.legal h1 { font-size: 36px; }
.legal code { font-size: .85em; }

/* Lightbox: tištěný list, ovládání tenkou linkou, vínová zůstává nákupu */
.lightbox__card { border: 1px solid var(--rule); background: var(--paper); }
.lightbox__slide { aspect-ratio: auto; padding: 12px 12px 0; }
.lightbox__slide img { height: auto; aspect-ratio: 3 / 2; }
.lightbox button { border: 1px solid var(--rule); border-radius: var(--radius); background: var(--paper); color: var(--ink); }
.lightbox button svg { stroke-width: 1.8; }
.lightbox button:active:not(:disabled) { background: var(--stage); }
.lightbox button:disabled { background: none; color: var(--rule); }
.lightbox__close { top: 20px; right: 20px; }
.lightbox__info strong { font-weight: 400; }
.lightbox__info span { font-style: italic; }

/* Reference: stejné rámečky, nadpis na jeden řádek */
.quotes__list { gap: 14px; }
.quote { padding: 18px 16px 16px; border: 1px solid var(--rule); background: none; box-shadow: none; text-align: center; }
.quote__headline { margin: 0 0 8px; color: var(--ink); font: 700 min(22px, 6vw)/1.2 var(--font); }
.quote blockquote { color: var(--ink-soft); font-size: 18px; line-height: 1.36; text-wrap: pretty; }
.quote__author { display: block; margin: 0; padding-top: 12px; font-size: 17px; line-height: 1.25; text-align: center; }
.quote__author strong { display: block; font-size: 18px; font-weight: 700; }
.quote__author span span { display: block; font-style: italic; }
.quote__initials { display: none; }

/* Nákup: místo podbarvených karet tenká linka */
.facts { border: 1px solid var(--rule); background: none; }
.countdown__unit, .final .countdown__unit { border: 1px solid var(--rule); background: none; }
.help { padding: 0; background: none; }
.sticky, .consent__panel { background: var(--paper); }
.fapi-order-form .fapi-form-basic-block-title::before { border: 1px solid var(--rule); background: none; }
.fapi-order-form .fapi-form-result-prices { border: 1px solid var(--rule); background: none; }

/* Telefon na šířku a tablet na výšku: fotka vedle nákupu, tlačítko se vejde na první obrazovku */
@media (min-width: 600px) and (max-width: 1023px) {
  .prog { padding: 12px var(--gutter) 16px; }
  .prog__in, .prog-rest__in { max-width: var(--column); margin: 0 auto; }
  .prog__head { padding-bottom: 10px; }
  .prog__title { font-size: clamp(42px, 6.4vw, 60px); line-height: 1.08; }
  .prog__title--long { font-size: clamp(32px, 4.6vw, 44px); }
  .prog__sub { max-width: none; margin-top: 2px; font-size: 18px; }
  .prog__grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 20px; align-items: center; }
  .prog .ph { max-height: none; }
  .prog__when { padding-top: 0; }
  .prog-rest { padding-top: 10px; }
  .prog-rest .hero__highlights { width: fit-content; margin: 0 auto; }
}

@media (min-width: 600px) {
  .gallery__track img { height: auto; aspect-ratio: 3 / 2; }
}

@media (min-width: 1024px) {
  .section > .wrap { max-width: 1152px; }
  .gallery__track { max-width: 1152px; }
  .buy > .wrap, .venue > .wrap, .faq > .wrap, .final > .wrap { max-width: 720px; }
  .final { padding: 56px 0 72px; }
  .footer .wrap { max-width: 720px; }
  .gallery { padding: 28px 0 56px; }
  .quotes__list:has(> :nth-child(3):last-child) { column-gap: 20px; row-gap: 0; }
  .quote { display: grid; grid-row: span 3; grid-template-rows: subgrid; row-gap: 0; padding: 22px 18px 20px; }
  .quote__headline { font-size: clamp(20px, 2vw, 25px); }
  .quote__author { align-self: start; }
}

@media (min-width: 1024px) {
  .only-d { display: block; }
  .only-m { display: none; }
  .prog { padding: 34px 32px 0; }
  .prog__in { max-width: 1120px; margin: 0 auto; }
  .prog__head { padding-bottom: 22px; }
  .prog__title { font-size: clamp(66px, 6.2vw, 88px); line-height: 1.04; }
  .prog__title--long { font-size: clamp(46px, 4.4vw, 62px); }
  .prog__sub { max-width: none; margin-top: 6px; font-size: 25px; }
  .prog__grid { display: grid; grid-template-columns: minmax(0, 1.32fr) minmax(0, 1fr); gap: 44px; align-items: stretch; }
  .prog .ph { max-height: none; object-position: 50% 50%; }
  .prog__info { display: flex; flex-direction: column; justify-content: space-between; gap: 12px; padding: 0 0 2px; }
  .prog__claim { margin: 0; font-size: 26px; line-height: 1.26; font-style: italic; text-wrap: balance; }
  .prog__when { padding: 14px 0 0; border-top: 1px solid var(--rule); }
  .prog__big { margin: 0; font: 700 clamp(40px, 3.7vw, 50px)/1.1 var(--display); font-variant-numeric: lining-nums; }
  .prog__day { margin: 2px 0 0; font-size: 25px; line-height: 1.25; font-weight: 700; }
  .prog__place { margin-top: 2px; font-size: 21px; }
  .prog__buy { padding-top: 14px; }
  .prog__price { font-size: 20px; }
  .prog__price b { font-size: 36px; }
  .prog-rest { padding: 30px 32px 34px; }
  .prog-rest__in { max-width: 1120px; margin: 0 auto; }
  .prog-rest .hero__highlights { width: fit-content; margin: 0 auto; gap: 7px; font-size: 20px; }
  .prog-rest .hero__more { margin-top: 16px; }
}
