/* ============================================================
   Globální odsazení sekcí — versovaná vrstva
   Načítá se AŽ ZA hlavním stylem (priorita 30 + závislost), takže
   spolehlivě přebíjí Webflow export. Nepatří do additionalStyle.css:
   ten jde přes @import bez ?ver= a uvázl by v cache (viz docs/08 §F).
   ============================================================ */

/* Boční odsazení podle Webflow: nad 1200 px ho nese .section (8 %),
   pod 1200 px .section 0 % a přebírá ho .content-container (5 %).
   Aby nové bloky lícovaly se zbytkem webu, kopírujeme to jedním tokenem.
   Ověřeno měřením: 5 % = 19 px na šířce 375 px, stejně jako původní sekce. */
@media screen and (max-width: 1200px) {
    :root { --abf-gutter: 5%; }
}

/* ── Přepínač „Bez horního odsazení" ──────────────────────────────────
   Webflow třída .normal-paddings-bottom měla jen `padding-bottom: 80px`,
   takže přepínač kromě horního odsazení ZMENŠIL i spodní (120 → 80) a na
   mobilu ho naopak zvětšil (60 → 80). Bloky ji přitom používají výhradně
   ve významu „nahoře nic, dole normálně". Srovnáváme ji tedy
   s .normal-paddings-both, jen s nulou nahoře.
   Týká se: FAQ, Přehled hal, Vše na jednom místě a původní Realizační tým. */
.section.normal-paddings-bottom {
    padding-top: 0;
    padding-bottom: 120px;
}

@media screen and (max-width: 1200px) {
    .section.normal-paddings-bottom { padding-bottom: 100px; }
}

@media screen and (max-width: 767px) {
    .section.normal-paddings-bottom { padding-bottom: 60px; }
}

/* ── Jednotný svislý rytmus nových bloků ──────────────────────────────
   Web má standard 120 px (pod 1200 px 100, pod 767 px 60) — viz Webflow
   .section.normal-paddings-both. Část nových bloků měla 60 px, takže mezery
   mezi sekcemi „poskakovaly" (hlášeno kolegy). Srovnáváme je na standard.

   Mezera MEZI sekcemi se pak řídí přepínačem „Bez horního odsazení":
     obě sekce plné      → 120 + 120 = 240 px (jako dvě samostatné sekce)
     druhá s přepínačem  → 120 +   0 = 120 px  ← běžná mezera mezi sekcemi
   Je to stejný princip, jaký používá původní web třídou .normal-paddings-top. */
:root { --abf-section-y: 120px; }

@media screen and (max-width: 1200px) { :root { --abf-section-y: 100px; } }
@media screen and (max-width: 767px)  { :root { --abf-section-y: 60px; } }

/* svislé odsazení nese vnitřní kontejner */
.wp-block-custom-reference-partneru > .rp-container,
.wp-block-custom-pronajem-sluzby > .ps-container,
.wp-block-custom-dalsi-aktuality > .da-container,
.wp-block-custom-fotogalerie-filtrace > .fgf-container {
    padding-top: var(--abf-section-y);
    padding-bottom: var(--abf-section-y);
}

/* svislé odsazení nese samotná sekce */
.wp-block-custom-rozcestnik.rc-section,
.wp-block-custom-multifunkcni-prostory.mp-section {
    padding-top: var(--abf-section-y);
    padding-bottom: var(--abf-section-y);
}

/* přepínač musí přebít i tohle → znovu, se stejnou specificitou a později */
.wp-block-custom-rozcestnik.rc-section--tight,
.wp-block-custom-multifunkcni-prostory.mp-section--tight {
    padding-top: 0;
}

/* Třídu doplňuje PHP filtr (render_block), aby se nemusel měnit save()
   statických bloků — to by invalidovalo už uložený obsah na webech flotily.
   U kontejnerových bloků nese odsazení vnitřní kontejner, u Archivu akcí
   sekce samotná (.section.normal-paddings-both → nutná stejná specificita). */
.section.abf-no-top-padding,
.abf-no-top-padding > .rp-container,
.abf-no-top-padding > .ps-container,
.abf-no-top-padding > .da-container,
.abf-no-top-padding > .fgf-container {
    padding-top: 0;
}

/* ── Blok vložený do sekce šablony ────────────────────────────────────
   Šablony typu „Ubytování"/„Textová stránka" obalují obsah vlastní sekcí
   i kontejnerem. Blok, který si přidává další sekci, tak měl odsazení
   dvakrát (naměřeno 195 px nahoře místo 120) a obsah dvakrát omezenou šířku.
   Když je blok vnořený, vlastní odsazení i omezení šířky vypustí. */
.content-container .section.wp-block-custom-block {
    padding-top: 0;
    padding-bottom: 0;
    padding-left: 0;
    padding-right: 0;
}

.content-container .section.wp-block-custom-block > .content-container {
    max-width: none;
    padding-left: 0;
    padding-right: 0;
}

/* ── Nadpisy sekcí nových bloků ──────────────────────────────────────
   Standard webu = .h2.capitalizied (verzálky, váha 900, pod 479 px 32 px).
   Šest bloků druhé vlny mělo jen vlastní třídu bez verzálek → nadpisy
   vypadaly menší než zbytek webu (hlášeno kolegy). Archiv, Ubytování,
   FAQ, Přehled hal i Vše na jednom místě už standard používají. */
.wp-block-custom-reference-partneru .rp-heading,
.wp-block-custom-pronajem-sluzby .ps-heading,
.wp-block-custom-rozcestnik .rc-heading,
.wp-block-custom-multifunkcni-prostory .mp-heading,
.wp-block-custom-dalsi-aktuality .da-heading,
.wp-block-custom-fotogalerie-filtrace .fgf-heading {
    text-transform: uppercase;
    font-weight: 900;
}

/* Další aktuality byly jako jediné na střed — sjednoceno vlevo. */
.wp-block-custom-dalsi-aktuality .da-heading {
    text-align: left;
}

@media screen and (max-width: 479px) {
    .wp-block-custom-reference-partneru .rp-heading,
    .wp-block-custom-pronajem-sluzby .ps-heading,
    .wp-block-custom-rozcestnik .rc-heading,
    .wp-block-custom-multifunkcni-prostory .mp-heading,
    .wp-block-custom-dalsi-aktuality .da-heading,
    .wp-block-custom-fotogalerie-filtrace .fgf-heading {
        font-size: 32px;
    }
}

/* ── Prázdné tlačítko ────────────────────────────────────────────────
   Bloky Úvod (všechny varianty) zapisují tlačítko i bez textu a odkazu —
   na stránce pak zbyl prázdný červený obdélník (hlášeno kolegy).
   :empty sedne jen na skutečně prázdný element; tlačítko s textem nebo
   ikonou zůstává. Oprava v save() by invalidovala uložený obsah. */
.wp-block-custom-block a.button:empty,
.section a.button:empty {
    display: none;
}

/* Šablona „Textová stránka" — stejný vzhled jako Ubytování (odkud vznikla kopií),
   jen s vlastní třídou, ať v markupu nezůstává matoucí stopa po ubytování. */
.section.normal-paddings-both.text-page {
    padding-top: 75px;
}

/* FAQ: mezera mezi nadpisem a otázkami. Musí být TADY (vrstva načítaná poslední),
   ne ve faq.css — blokové CSS jde v kaskádě před Webflow exportem a ten mezeru
   přebíjel zpět na nulu (známá past pořadí, viz docs/08 §F). */
.wp-block-custom-faq .faq-block {
    margin-top: 40px;
}

/* Šablona „Textová stránka": .content-container je flex column (Webflow) —
   flex položky IGNORUJÍ float (obtékané obrázky nefungovaly) a bez šířky se
   smrskávaly na obsah (nadpis 334 px, oddělovač 0 px — změřeno). Pro redakční
   text je správný obyčejný blokový tok: šířky i obtékání pak fungují samy.
   Hero sekce nahoře flex zůstává — tahle třída je jen na obsahové sekci. */
.section.text-page .content-container {
    display: block;
}

/* Prohlížečový default `figure { margin: 1em 40px }` (Webflow reset ho nechává)
   uzil tabulky a galerie o 80 px — figury lícují se sloupcem. */
.section.text-page .content-container > figure {
    margin-left: 0;
    margin-right: 0;
}

/* ── Admin bar vs. fixní navbar ────────────────────────────────────────
   WP admin bar posune obsah stránky o svou výšku (html{margin-top:32px}),
   ale fixní navbar ne — přihlášený redaktor pak vidí 32px bílý pruh mezi
   menu a hero a admin bar navíc překrývá vršek navbaru. Návštěvníka se
   netýká (bez admin baru mezera není). Výšky 32/46 px jsou dané WP. */
body.admin-bar .navbar.w-nav { top: 32px; }
@media screen and (max-width: 782px) {
    body.admin-bar .navbar.w-nav { top: 46px; }
}

/* ── Doprava: redakční text u P3 Letňany ───────────────────────────────
   Pole je v hubu WYSIWYG, takže obsahuje odstavce (a případně seznamy).
   Webflow vrstva jim uvnitř bloku nedává žádné odsazení, takže text
   splýval do jedné souvislé plochy (hlášeno kolegy: „nedělají se
   odstavce, udělat větší mezeru"). Blok vlastní CSS soubor nemá,
   pravidla proto patří sem — do versované globální vrstvy. */
.wp-block-custom-doprava .doprava-p3 {
    margin-bottom: 24px;
}

.wp-block-custom-doprava .doprava-p3 p {
    margin: 0 0 14px;
    line-height: 1.6;
}

.wp-block-custom-doprava .doprava-p3 p:last-child {
    margin-bottom: 0;
}

.wp-block-custom-doprava .doprava-p3 :is(ul, ol) {
    margin: 0 0 14px;
    padding-left: 20px;
}

.wp-block-custom-doprava .doprava-p3 li {
    margin: 0 0 6px;
}

/* Název parkoviště sází render tučně (v hubu je to prosté textové pole). */
.wp-block-custom-doprava .doprava-park-nazev {
    font-weight: 700;
}

/* ── Čitelný text na plochách, jejichž barvu si web volí sám ───────────
   Weby flotily si v Nastavení veletrhu volí značkovou barvu i gradienty.
   Text na nich měl dosud natvrdo bílou, takže při světlé volbě (žlutá,
   světle zelená) prakticky zmizel — v obou režimech. PHP proto ke každé
   ploše dopočítá čitelné popředí (abf_popredi_na_plose) a vystaví ho jako
   token; tady ho jen aplikujeme. Výchozí zůstává bílá, takže se u dnešních
   červených webů nic nemění. */
.button.primary-red,
.button.primary-red .text-7 {
    color: var(--abf-on-button, #fff);
}

.section.red-bg :is(.white-text, .h1, .h2, .h3, p, li, .event-subtext),
.content-container.data :is(.white-text, .h1, .h2, .h3, p, li) {
    color: var(--abf-on-container, #fff);
}

/* Obrysové tlačítko na barevném pásu: obrys dělá Webflow přes box-shadow,
   ne border, takže border-color by nic neudělal. Hover musí být explicitní —
   původní pravidlo dává bílé pozadí, a kdybychom nechali jen barvu textu,
   vznikla by na světlé značce bílá na bílé. */
.section.red-bg .button.secondary-white,
.content-container.data .button.secondary-white {
    color: var(--abf-on-container, #fff);
    box-shadow: inset 0 0 0 1px var(--abf-on-container, #fff);
}

.section.red-bg .button.secondary-white:hover,
.content-container.data .button.secondary-white:hover {
    /* Plochu ZÁMĚRNĚ nezesvětlujeme: tint by u červené posunul podklad natolik,
       že by na něm bílý text spadl pod čitelnost. Hover dáváme najevo silnějším
       obrysem, který funguje na libovolné barvě pásu. */
    color: var(--abf-on-container, #fff);
    background-color: transparent;
    box-shadow: inset 0 0 0 2px var(--abf-on-container, #fff);
}

/* Formulářové tlačítko sdílí gradient s .button.primary-red. */
.forminator-button {
    color: var(--abf-on-button, #fff);
}

/* ── Značkově zbarvené ikony vykreslené jako SVG ───────────────────────
   Část ikon má barvu zapsanou přímo v atributu (stroke="#D91920"), takže
   nereaguje na nastavení barev. U statických bloků nejde markup měnit —
   invalidoval by se uložený obsah na webech flotily — proto to přebíjíme
   cíleně přes atributový selektor. Záměrně jen u checklistových ikon,
   ať se omylem nepřebarví vložené logo nebo ilustrace. */
:is(.field-list-item, .list-item-wrapper, .benefit-item, .event-arrow, .location-info-wrapper) [stroke="#D91920" i] {
    stroke: var(--heading-red-solid, #d91920);
}

:is(.field-list-item, .list-item-wrapper, .benefit-item, .event-arrow, .location-info-wrapper) [fill="#D91920" i] {
    fill: var(--heading-red-solid, #d91920);
}

html[data-theme="dark"] :is(.field-list-item, .list-item-wrapper, .benefit-item, .event-arrow, .location-info-wrapper) [stroke="#D91920" i] {
    stroke: var(--abf-brand-text);
}

html[data-theme="dark"] :is(.field-list-item, .list-item-wrapper, .benefit-item, .event-arrow, .location-info-wrapper) [fill="#D91920" i] {
    fill: var(--abf-brand-text);
}

/* Hover primárního tlačítka má vlastní nastavitelnou barvu — text na ní musí
   být čitelný i tehdy, když si web zvolí světlý hover. */
.button.primary-red:hover,
.forminator-button:hover {
    color: var(--abf-on-hover, #fff);
}

/* Poloprůhledné červené tinty aktivních stavů zůstávají ve Webflow exportu
   natvrdo. Export needitujeme — přebíjíme je tady, ať respektují nastavenou
   značkovou barvu. Před color-mix() je vždy neutrální hodnota: ve starším
   prohlížeči, který color-mix neumí, se deklarace zahodí a bez ní by prosvitla
   původní natvrdo červená. */
.speaker-tab-link.w--current {
    background-color: transparent;
    background-color: color-mix(in srgb, var(--heading-red-solid, #d91920) 15%, transparent);
}

@media screen and (max-width: 1200px) {
    .nav-dropdown-list.w--open {
        background-image: none;
        background-image: linear-gradient(
            color-mix(in srgb, var(--heading-red-solid, #d91920) 8%, transparent),
            color-mix(in srgb, var(--heading-red-solid, #d91920) 8%, transparent)
        );
    }
}

/* Závoj pod textem na barevných plochách. Musí ležet NAD gradientem, proto se
   vrství jako první vrstva background-image, ne jako background-color — ta by
   zůstala pod ním a nebyla vidět. Při běžné značkové barvě je token
   `transparent`, takže se dnešní weby nijak nemění; objeví se jen u gradientu,
   na kterém by žádná barva textu neprošla. */
.section.normal-paddings-both.red-bg,
.content-container.data {
    background-image:
        linear-gradient(var(--abf-container-scrim, transparent), var(--abf-container-scrim, transparent)),
        var(--container-bg-gradient, linear-gradient(#d91920, #d91920));
}

.button.primary-red,
.forminator-button {
    background-image:
        linear-gradient(var(--abf-button-scrim, transparent), var(--abf-button-scrim, transparent)),
        var(--ui-buttons-gradient, linear-gradient(#d91920, #d91920));
}

/* Odesílací tlačítko Forminatoru si drží vlastní pravidlo s !important
   (additionalStyle.css), takže obecný zápis výše ho nepřebije — musí být
   stejně konkrétní. Hover má vlastní !important a zůstává nedotčený. */
.forminator-custom-form .forminator-row .forminator-button.forminator-button-submit {
    background-image:
        linear-gradient(var(--abf-button-scrim, transparent), var(--abf-button-scrim, transparent)),
        var(--ui-buttons-gradient, linear-gradient(#d91920, #d91920)) !important;
}
