:root {
  --tma: #1d2030;
  --cervena: #e4222c;
  --cervena-tmava: #b5161f;
  --zluta: #ffd500;
  --zluta-svetla: #fff200;
  --modra: #0b5fd0;
  --bila: #ffffff;
  --okraj: 24px;
  color-scheme: light;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 72px; }
body { margin: 0; background: var(--bila); color: var(--tma); font-family: 'Montserrat', 'Arial', sans-serif; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img { max-width: 100%; display: block; }
a { color: var(--cervena); text-decoration: none; }
a:hover { color: var(--cervena-tmava); }
h1, h2, h3, p, ul, ol, dl, dd, figure, blockquote { margin: 0; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } html { scroll-behavior: auto; } }

.obal { width: 100%; max-width: 1296px; margin: 0 auto; padding: 0 var(--okraj); }

/* typografie */
.lbl { font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif; font-weight: 600; font-size: 15px; line-height: 1.2; letter-spacing: 0.14em; text-transform: uppercase; }
.cap { font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif; font-weight: 500; font-size: 17px; line-height: 1.3; }
.h2 { font-weight: 800; font-size: 30px; line-height: 1.08; letter-spacing: -0.02em; text-wrap: pretty; }
.h3 { font-weight: 800; font-size: 20px; line-height: 1.2; letter-spacing: -0.01em; }
.p { font-weight: 500; font-size: 17px; line-height: 1.5; text-wrap: pretty; }
.p.mensi { font-size: 16px; }
.p.tucny { font-weight: 600; font-size: 18px; }
.titulek { font-weight: 900; font-size: 68px; line-height: 0.88; letter-spacing: -0.035em; }
.nadpis-velky { font-weight: 900; font-size: 50px; line-height: 0.92; letter-spacing: -0.04em; }
.nadpis-stredni { font-weight: 900; font-size: 38px; line-height: 0.98; letter-spacing: -0.035em; text-wrap: pretty; }
.velke-cislo { font-weight: 900; font-size: 50px; line-height: 1; letter-spacing: -0.03em; }
.cervena { color: var(--cervena); } .zluta { color: var(--zluta); } .zlutasvetla { color: var(--zluta-svetla); }
.bila { color: var(--bila); } .bila-92 { color: rgba(255,255,255,0.92); } .svetla { color: rgba(255,255,255,0.8); }
.seda { color: rgba(29,32,48,0.6); } .sedasvetla { color: rgba(255,255,255,0.55); } .modra { color: var(--modra); }
.tmava { background: var(--tma); color: var(--bila); }
.zlute { background: var(--zluta); }
.linka { display: inline-block; width: 48px; height: 8px; background: var(--cervena); flex-shrink: 0; }

/* tlačítka */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 22px; font-family: 'Montserrat', 'Arial', sans-serif; font-weight: 800; font-size: 16px; text-align: center; transition: background 0.2s, color 0.2s; }
.btn-cervene { background: var(--cervena); color: var(--bila); } .btn-cervene:hover { background: var(--cervena-tmava); color: var(--bila); }
.btn-obrys-bily { border: 2px solid var(--bila); color: var(--bila); } .btn-obrys-bily:hover { background: var(--bila); color: var(--tma); }
.btn-modre { background: var(--modra); color: var(--bila); } .btn-modre:hover { background: #084a9f; color: var(--bila); }
.btn-bile-cervene { background: var(--bila); color: var(--cervena); } .btn-bile-cervene:hover { background: var(--zluta); color: var(--tma); }
.btn-tmave { background: var(--tma); color: var(--bila); } .btn-tmave:hover { background: #000; color: var(--bila); }
.odkaz-zluty { color: var(--zluta); font-weight: 700; font-size: 15px; } .odkaz-zluty:hover { color: var(--bila); }
.odkaz-modry { color: var(--modra); font-weight: 700; font-size: 15px; text-align: center; }

/* hlavička */
.hlavicka { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,0.96); backdrop-filter: blur(6px); border-bottom: 1px solid rgba(29,32,48,0.08); }
.hlavicka-in { height: 60px; display: flex; align-items: center; justify-content: space-between; }
.znacka { font-weight: 900; font-size: 18px; letter-spacing: -0.02em; color: var(--tma); }
.burger { display: flex; align-items: center; gap: 8px; background: none; border: 0; color: var(--tma); cursor: pointer; padding: 8px 0; min-height: 44px; }
.menu { display: none; position: absolute; left: 0; right: 0; top: 60px; background: var(--bila); flex-direction: column; padding: 8px var(--okraj) 20px; box-shadow: 0 16px 30px rgba(29,32,48,0.15); }
.menu.otevreno { display: flex; }
.menu a { color: var(--tma); font-weight: 700; font-size: 17px; padding: 12px 0; border-bottom: 1px solid rgba(29,32,48,0.1); }
.menu a.menu-btn { color: var(--bila); border: 0; margin-top: 12px; }
.jazyky { margin-left: auto; margin-right: 14px; display: flex; align-items: center; gap: 6px; font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif; font-weight: 600; font-size: 17px; letter-spacing: 0.06em; line-height: 1; white-space: nowrap; }
.jazyky .jazyk { display: inline-flex; align-items: center; min-height: 44px; padding: 0 2px; color: var(--tma); opacity: 0.6; border-bottom: 3px solid transparent; }
.jazyky a.jazyk:hover { color: var(--cervena); opacity: 1; }
.jazyky .jazyk.aktivni { opacity: 1; border-bottom-color: var(--cervena); }
.jazyky .tecka-j { color: var(--tma); opacity: 0.35; }
@media (max-width: 479px) {
  .burger .lbl { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .znacka { font-size: 16px; }
  html[lang="pl"] .znacka { font-size: 14px; letter-spacing: -0.03em; }
  .jazyky { margin-right: 6px; gap: 4px; font-size: 16px; }
}

/* úvod */
.uvod { position: relative; overflow: hidden; padding: 44px 0 110px; }
.prach { position: absolute; max-width: none; mix-blend-mode: multiply; pointer-events: none; object-fit: cover; }
.uvod-prach { left: -320px; top: 270px; width: 1060px; height: 596px; transform: rotate(-12deg); }
.uvod-in { position: relative; display: flex; flex-direction: column; gap: 40px; }
.uvod-text { display: flex; flex-direction: column; gap: 14px; }
.uvod-podtitul { font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif; font-weight: 500; font-size: 22px; line-height: 1.2; margin-bottom: 18px; }
.uvod-datum { font-weight: 800; font-size: 26px; letter-spacing: -0.02em; margin-top: 10px; }
.uvod-logo { position: absolute; right: var(--okraj); bottom: 28px; width: 80px; height: auto; }
.listek { display: flex; background: var(--bila); box-shadow: 0 22px 44px rgba(29,32,48,0.28); transform: rotate(-3deg); animation: vjezd 0.9s cubic-bezier(0.16, 1, 0.3, 1) 0.4s both; margin: 0 -6px; }
@keyframes vjezd { 0% { transform: translateX(120%) rotate(8deg); } 100% { transform: translateX(0) rotate(-3deg); } }
.listek-pruh { width: 58px; flex-shrink: 0; background: var(--cervena); color: var(--bila); display: flex; align-items: center; justify-content: center; border-right: 3px dashed rgba(29,32,48,0.35); }
.listek-pruh span { transform: rotate(-90deg); white-space: nowrap; font-weight: 900; font-size: 15px; letter-spacing: 0.1em; }
.listek-obsah { flex-grow: 1; padding: 22px 20px; display: flex; flex-direction: column; gap: 16px; }
.listek-radek { display: flex; align-items: center; gap: 12px; }
.listek-radek strong { display: block; font-weight: 900; font-size: 21px; }
.listek-radek.hotovo strong, .listek-radek.hotovo .cap { color: rgba(29,32,48,0.55); font-weight: 800; }
.listek-radek .cap { display: block; font-size: 15px; }
.ctverec { width: 30px; height: 30px; flex-shrink: 0; border: 4px solid var(--tma); background: var(--zluta); display: flex; align-items: center; justify-content: center; }
.ctverec.plny { background: var(--tma); border: 0; }
.ctverec svg { width: 20px; height: 20px; }
.listek .btn { align-self: flex-start; }

/* kolotoč */
.dvojice { display: grid; grid-template-columns: minmax(0, 1fr); }
.kolotoc { position: relative; background: var(--tma); }
.kolotoc-foto { position: relative; height: 330px; overflow: hidden; }
.kolotoc-foto::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 70px; background: linear-gradient(0deg, var(--tma) 0%, rgba(29,32,48,0) 100%); }
.kf { position: absolute; inset: 0; opacity: 0; animation: kol 40s linear infinite; }
.kf img { width: 100%; height: 100%; object-fit: cover; }
@keyframes kol { 0% { opacity: 0; } 2% { opacity: 1; } 12.50% { opacity: 1; } 14.50% { opacity: 0; } 100% { opacity: 0; } }
.kolotoc-text { padding: 8px var(--okraj) 36px; display: flex; flex-direction: column; gap: 14px; }
.kolotoc-popisek { display: flex; align-items: center; gap: 12px; }
.kolotoc-popisek .linka { width: 40px; height: 6px; }
.popisky { position: relative; flex-grow: 1; height: 22px; }
.popisky .kf { display: flex; align-items: center; white-space: nowrap; font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif; font-weight: 500; font-size: 16px; color: var(--bila); }
.popisky b { font-weight: 600; color: var(--zluta); margin-right: 5px; }
.tecky { display: flex; gap: 8px; }
.tecka { position: relative; width: 8px; height: 8px; border-radius: 50%; background: rgba(255,255,255,0.35); }
.tecka .kf { border-radius: 50%; background: var(--zluta); }

/* online */
.online { position: relative; background: var(--tma); overflow: hidden; padding-bottom: 48px; }
.online-foto { position: relative; height: 300px; overflow: hidden; }
.online-foto img { position: absolute; left: -30px; top: -20px; width: 460px; max-width: none; height: 440px; object-fit: cover; border: 10px solid var(--bila); transform: rotate(-7deg); box-shadow: 0 30px 60px rgba(0,0,0,0.45); }
.online-foto::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 140px; background: linear-gradient(0deg, var(--tma) 10%, rgba(29,32,48,0) 100%); }
.online-text { position: relative; padding: 8px var(--okraj) 0; display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }

/* Libuše */
.libuse { padding-bottom: 52px; }
.libuse-foto { position: relative; height: 360px; overflow: hidden; }
.libuse-foto img { width: 100%; height: 100%; object-fit: cover; object-position: 40% center; }
.libuse-foto::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 120px; background: linear-gradient(180deg, rgba(29,32,48,0) 0%, var(--tma) 100%); }
.libuse-text { display: flex; flex-direction: column; gap: 14px; }
.citat { font-weight: 800; font-size: 32px; line-height: 1.08; letter-spacing: -0.02em; color: var(--zluta); text-wrap: pretty; }

/* Bůh jednal */
.buh { padding: 56px 0 48px; overflow: hidden; }
.buh-hlava { display: flex; flex-direction: column; gap: 12px; }
.polaroidy { display: flex; gap: 18px; padding: 28px var(--okraj) 16px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.polaroidy::-webkit-scrollbar { display: none; }
.pol { flex: 0 0 250px; scroll-snap-align: start; background: var(--bila); padding: 10px 10px 12px; box-shadow: 0 14px 30px rgba(29,32,48,0.22); display: flex; flex-direction: column; gap: 8px; }
.pol img { width: 100%; height: 160px; object-fit: cover; }
.pol figcaption { font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif; font-weight: 500; font-size: 17px; line-height: 1.25; }
.pol figcaption b { font-weight: 600; }
.pol.r1 { transform: rotate(-2deg); } .pol.r2 { transform: rotate(2.5deg); } .pol.r3 { transform: rotate(-3deg); }
.petr { font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif; font-weight: 600; font-size: 21px; line-height: 1.3; color: var(--cervena); margin-top: 16px; }

/* vize + mapa */
.vize { position: relative; overflow: hidden; padding: 56px 0; }
.vize-prach { left: -200px; top: 560px; width: 820px; height: 461px; opacity: 0.85; transform: rotate(-6deg); }
.vize-in { position: relative; display: flex; flex-direction: column; gap: 48px; }
.vize-text { display: flex; flex-direction: column; gap: 18px; }
.hledame { background: var(--tma); color: var(--bila); padding: 26px 22px; display: flex; flex-direction: column; gap: 12px; }
.hledame-1 { font-weight: 900; font-size: 24px; line-height: 1.1; letter-spacing: -0.02em; color: var(--bila); text-wrap: pretty; }
.hledame-2 { font-weight: 700; font-size: 19px; line-height: 1.35; color: var(--zluta); text-wrap: pretty; }
.hledame ul { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 14px; }
.hledame li { position: relative; padding-left: 20px; font-weight: 800; font-size: 18px; line-height: 1.25; }
.hledame li::before { content: ""; position: absolute; left: 0; top: 6px; width: 10px; height: 10px; background: var(--cervena); }
.mapa-blok { display: flex; flex-direction: column; gap: 12px; }
.mapa { position: relative; width: 100%; margin: 12px 0 8px; }
.mapa svg { display: block; width: 100%; height: auto; overflow: visible; }
.bod { position: absolute; width: 32px; height: 32px; margin: -16px 0 0 -16px; border-radius: 50%; cursor: pointer; z-index: 2; }
.bod .tip { display: none; position: absolute; bottom: 26px; background: var(--tma); color: var(--bila); padding: 10px 14px 11px; white-space: nowrap; box-shadow: 0 12px 26px rgba(29,32,48,0.35); z-index: 5; }
.bod .tip.stred { left: 50%; transform: translateX(-50%); } .bod .tip.vlevo { left: -6px; } .bod .tip.vpravo { right: -6px; }
.bod:hover .tip, .bod.otevreny .tip, .bod:focus .tip { display: block; }
.bod:hover, .bod.otevreny { z-index: 6; }
.tip-mesto { font-weight: 900; font-size: 18px; line-height: 1.1; }
.tip-stav { font-size: 12px; color: var(--zluta); margin-top: 3px; }
.tip-koord { font-size: 15px; color: rgba(255,255,255,0.85); margin-top: 4px; }
.legenda { display: flex; flex-direction: column; gap: 8px; }
.legenda .cap { display: flex; align-items: center; gap: 10px; }
.bod-leg { display: inline-block; border-radius: 50%; flex-shrink: 0; }
.bod-leg.cerveny { width: 16px; height: 16px; background: var(--cervena); }
.bod-leg.zluty { width: 14px; height: 14px; background: var(--zluta); border: 2px solid var(--tma); }
/* SK a PL: pohraničí sousední země s otazníky místo bodů */
.bod.otaznik > span { display: flex; align-items: center; justify-content: center; width: 22px; height: 22px; margin: 5px; border-radius: 50%; background: var(--zluta); border: 2px solid var(--tma); font: 900 14px/1 Montserrat, sans-serif; color: var(--tma); }
.zeme-popisek { font: 600 15px "Barlow Condensed", sans-serif; letter-spacing: 0.18em; text-transform: uppercase; fill: rgba(29,32,48,0.5); }
.bod-leg.otaznik-leg { width: 16px; height: 16px; background: var(--zluta); border: 2px solid var(--tma); font: 900 10px/12px Montserrat, sans-serif; font-style: normal; text-align: center; color: var(--tma); }
.bod-leg.sedy { width: 10px; height: 10px; background: rgba(29,32,48,0.55); }
.napoveda { color: rgba(29,32,48,0.6); font-size: 15px !important; }

/* jak to funguje */
.jak { padding: 48px 0 56px; border-top: 1px solid rgba(29,32,48,0.12); }
.jak-in { display: flex; flex-direction: column; gap: 28px; }
.jak-hlava { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.kroky { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 22px; }
.kroky li { display: flex; gap: 16px; }
.kroky li > div { display: flex; flex-direction: column; gap: 4px; }
.krok-cislo { font-weight: 900; font-size: 30px; line-height: 1; color: var(--cervena); width: 44px; flex-shrink: 0; }
.jen-desktop { display: none; }

/* potřeby */
.potreby { padding: 52px 0; }
.potreby .h2 { margin: 12px 0 22px; }
.potreby-mrizka { display: grid; grid-template-columns: minmax(0, 1fr); gap: 22px; }
.sloupek { border-top: 3px solid var(--tma); padding-top: 16px; display: flex; flex-direction: column; gap: 10px; }
.odrazky { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.odrazky li { position: relative; padding-left: 22px; font-weight: 500; font-size: 16px; line-height: 1.5; }
.odrazky li::before { content: ""; position: absolute; left: 0; top: 8px; width: 10px; height: 10px; background: var(--cervena); }
.cisla { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.cislo { font-weight: 900; font-size: 32px; }
.kdo dt { font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif; font-weight: 600; font-size: 15px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--cervena); margin-top: 8px; }
.kdo dd { font-weight: 500; font-size: 16px; line-height: 1.5; }

/* týmy, akordeon */
.tymy { padding: 52px var(--okraj); display: flex; flex-direction: column; gap: 14px; }
.akordeon { margin-top: 8px; }
.akordeon details { border-top: 1px solid rgba(29,32,48,0.2); }
.akordeon details:first-child { border-top: 3px solid var(--tma); }
.akordeon details:last-child { border-bottom: 1px solid rgba(29,32,48,0.2); }
.akordeon summary { list-style: none; cursor: pointer; padding: 17px 36px 17px 0; position: relative; font-weight: 800; font-size: 18px; line-height: 1.25; }
.akordeon summary::-webkit-details-marker { display: none; }
.akordeon summary::after { content: "+"; position: absolute; right: 2px; top: 11px; font-size: 28px; font-weight: 700; color: var(--tma); }
.akordeon details[open] summary::after { content: "–"; color: var(--cervena); }
.akordeon details p { font-weight: 500; font-size: 16px; line-height: 1.5; padding: 0 0 18px; }

/* kalendář */
.kalendar { padding: 52px var(--okraj); display: flex; flex-direction: column; gap: 14px; }
.udalosti { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; margin-top: 8px; }
.udalost { border-top: 3px solid var(--zluta); padding-top: 14px; display: flex; flex-direction: column; gap: 4px; }
.udalost.hlavni { border-top-color: var(--cervena); }
.kdy { font-weight: 900; font-size: 26px; color: var(--zluta); }
.udalost.hlavni .kdy { color: var(--bila); }

/* registrace */
.registrace { position: relative; overflow: hidden; padding: 0 0 56px; }
.reg-prach { left: 60px; top: 380px; width: 900px; height: 506px; transform: rotate(-10deg); opacity: 0.9; }
.registrace-in { position: relative; display: flex; flex-direction: column; gap: 32px; }
.pozvani { display: flex; flex-direction: column; gap: 14px; }
.pozvani-foto { width: calc(100% + 2 * var(--okraj)); max-width: none; margin: 0 calc(-1 * var(--okraj)) 18px; height: 300px; object-fit: cover; }
.zaskrtnuti { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 12px; margin-top: 4px; }
.zaskrtnuti li { display: flex; align-items: center; gap: 12px; font-weight: 800; font-size: 21px; }
.zaskrtnuti li::before { content: ""; width: 28px; height: 28px; flex-shrink: 0; border: 4px solid var(--tma); background: var(--zluta); }
.formular-karta { position: relative; background: var(--bila); border: 3px solid var(--tma); padding: 26px 22px; display: flex; flex-direction: column; gap: 14px; }
.formular-karta .btn { margin-top: 6px; }

/* One2One, Firecamp */
.one2one { position: relative; background: var(--modra); overflow: hidden; padding: 48px var(--okraj) 52px; }
.o2o-pozadi { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.35; }
.vrstva { position: relative; display: flex; flex-direction: column; gap: 14px; }
.bila-karta { background: var(--bila); padding: 22px 20px; display: flex; flex-direction: column; gap: 12px; margin-top: 6px; }
.firecamp { background: var(--cervena); color: var(--bila); padding: 48px var(--okraj); display: flex; flex-direction: column; gap: 14px; }
.fire-radek { display: flex; gap: 18px; align-items: flex-start; margin: 4px 0 8px; }
.fire-plakat { background: var(--bila); padding: 8px; transform: rotate(-3deg); box-shadow: 0 16px 30px rgba(60,0,0,0.35); flex-shrink: 0; }
.fire-plakat img { width: 130px; height: 158px; object-fit: cover; }

/* CfaN */
.cfan { padding: 52px 0; }
.cfan-in { display: flex; flex-direction: column; gap: 32px; }
.cfan-text { display: flex; flex-direction: column; gap: 16px; }
.cfan-logo { width: 110px; height: auto; }
.tlacitka { display: flex; gap: 10px; flex-wrap: wrap; }
.osa { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; }
.osa-bod { border-top: 3px solid var(--zluta); padding-top: 12px; display: flex; flex-direction: column; gap: 4px; }
.osa-bod.siroky { border-top-color: var(--cervena); }
.rok { font-weight: 900; font-size: 30px; line-height: 1; color: var(--zluta); }
.rok.bily { color: var(--bila); }

/* materiály + otázky */
.mat-otazky { padding: 48px 0 56px; }
.mat-in { display: flex; flex-direction: column; gap: 48px; }
.materialy, .otazky { display: flex; flex-direction: column; gap: 14px; }
.stahovani { list-style: none; padding: 0; margin-top: 8px; }
.stahovani li { border-top: 1px solid rgba(29,32,48,0.2); }
.stahovani li:first-child { border-top: 3px solid var(--tma); }
.stahovani li:last-child { border-bottom: 1px solid rgba(29,32,48,0.2); }
.stahovani a { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 16px 0; color: var(--tma); }
.stahovani a strong { display: block; font-weight: 800; font-size: 17px; }
.stahovani a .cap { display: block; font-size: 15px; color: rgba(29,32,48,0.6); }
.stahovani a i { font-style: normal; color: var(--cervena); font-weight: 800; font-size: 22px; }
.stahovani a:hover strong { color: var(--cervena); }

/* podpora */
.podpora { padding: 44px 0; }
.podpora-in { display: flex; flex-direction: column; gap: 18px; }
.platba { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
.qr { width: 110px; height: 110px; background: var(--bila); padding: 6px; border: 2px solid var(--tma); }

/* patička */
.paticka { padding: 44px 0 110px; }
.paticka-in { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; }
.pat-sloupec { display: flex; flex-direction: column; gap: 8px; }
.pat-znacka { display: flex; align-items: center; justify-content: space-between; font-weight: 900; font-size: 24px; letter-spacing: -0.02em; }
.pat-znacka img { width: 80px; height: auto; }
.partner { font-weight: 800; font-size: 18px; }
.paticka a { color: var(--bila); }
.paticka a:hover { color: var(--zluta); }
.pat-odkaz { font-weight: 700; font-size: 16px; padding: 4px 0; }
.pat-spodek { margin-top: 28px; color: rgba(255,255,255,0.5); }

/* spodní lišta na mobilu */
.spodni-lista { position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; padding: 12px var(--okraj) 16px; background: var(--bila); box-shadow: 0 -8px 24px rgba(29,32,48,0.12); transform: translateY(110%); transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1); }
.spodni-lista.viditelna { transform: translateY(0); }
.spodni-lista .btn { width: 100%; }

@media (max-width: 380px) { .popisky .kf { font-size: 15px; } }

/* menší vstupenka na telefonu, ať je vidět prach */
@media (max-width: 699px) {
  .listek { width: 300px; margin: 0 0 0 auto; }
  .listek-pruh { width: 46px; border-right-width: 2px; }
  .listek-pruh span { font-size: 13px; }
  .listek-obsah { padding: 16px 16px 18px; gap: 12px; }
  .listek-radek { gap: 10px; }
  .listek-radek strong { font-size: 18px; }
  .listek-radek .cap { font-size: 14px; }
  .ctverec { width: 24px; height: 24px; border-width: 3px; }
  .ctverec svg { width: 16px; height: 16px; }
  .listek .btn { min-height: 44px; padding: 0 16px; font-size: 15px; }
}

/* polsky nazev ROZSWIETL CIEMNOSC je o tretinu delsi nez ROZSVIT TMU */
html[lang="pl"] .titulek { font-size: 14vw; }

/* ---------- tablet ---------- */
@media (min-width: 700px) {
  html[lang="pl"] .titulek { font-size: 13vw; }
  :root { --okraj: 40px; }
  .titulek { font-size: 110px; }
  .h2 { font-size: 38px; }
  .polaroidy { justify-content: flex-start; }
  .potreby-mrizka { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
  .udalosti { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .udalost.hlavni { grid-column: span 2; }
  .osa { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .osa-bod.siroky { grid-column: span 2; }
  .paticka-in { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pozvani-foto { width: 100%; margin: 0 0 18px; }
  .listek { max-width: 520px; }
}

/* ---------- desktop ---------- */
@media (min-width: 1024px) {
  :root { --okraj: 72px; }
  html { scroll-padding-top: 90px; }
  .lbl { font-size: 17px; }
  .cap { font-size: 19px; }
  .h2 { font-size: 46px; line-height: 1.04; }
  .h3 { font-size: 22px; }
  .p { font-size: 19px; }
  .p.mensi { font-size: 17px; }
  .hlavicka-in { height: 84px; }
  .znacka { font-size: 24px; }
  .burger { display: none; }
  .jazyky { margin: 0 0 0 28px; font-size: 18px; gap: 8px; }
  .menu { display: flex; position: static; flex-direction: row; align-items: center; gap: 30px; padding: 0; box-shadow: none; background: transparent; }
  .menu a { font-size: 16px; padding: 0; border: 0; }
  .menu a.menu-btn { margin: 0; min-height: 48px; padding: 0 22px; }
  html[lang="pl"] .znacka, html[lang="pl"] .menu a { white-space: nowrap; }
  html[lang="pl"] .znacka { font-size: 20px; }
  html[lang="pl"] .menu { gap: 18px; }
  html[lang="pl"] .menu a { font-size: 15px; }
  html[lang="pl"] .menu a.menu-btn { padding: 0 16px; }
}
@media (min-width: 1024px) and (max-width: 1279px) {
  .menu { gap: 16px; }
  .menu a { font-size: 15px; }
  .menu a.menu-btn { padding: 0 16px; }
  .jazyky { margin-left: 14px; font-size: 16px; gap: 4px; }
  html[lang="pl"] .menu { gap: 10px; }
  html[lang="pl"] .menu a { font-size: 13px; }
  html[lang="pl"] .menu a.menu-btn { padding: 0 10px; }
  html[lang="pl"] .znacka { font-size: 15px; margin-right: 8px; }
}
@media (min-width: 1024px) {

  .uvod { padding: 80px 0 90px; min-height: 740px; }
  .uvod-prach { left: -120px; top: 160px; width: 1500px; height: 844px; transform: rotate(-9deg); }
  .uvod-in { flex-direction: row; align-items: center; justify-content: space-between; gap: 40px; }
  .uvod-podtitul { font-size: 34px; }
  .titulek { font-size: 170px; }
  html[lang="pl"] .titulek { font-size: min(118px, 8.2vw); }
  .uvod-datum { font-size: 38px; }
  .listek { width: 468px; flex-shrink: 0; margin: 0; }
  .listek-pruh { width: 84px; } .listek-pruh span { font-size: 21px; }
  .listek-obsah { padding: 34px 32px; gap: 24px; }
  .listek-radek strong { font-size: 30px; } .listek-radek .cap { font-size: 20px; }
  .ctverec { width: 44px; height: 44px; border-width: 6px; } .ctverec svg { width: 28px; height: 28px; }
  .uvod-logo { width: 140px; bottom: 40px; right: 72px; }

  .dvojice { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kolotoc { height: 640px; }
  .kolotoc-foto { height: 350px; }
  .kolotoc-text { position: absolute; left: 72px; right: 56px; bottom: 56px; padding: 0; }
  .kolotoc-text .h2 { font-size: 38px; }
  .popisky { height: 28px; } .popisky .kf { font-size: 20px; }
  .tecka { width: 10px; height: 10px; }
  .online { height: 640px; padding: 0; display: flex; flex-direction: column; justify-content: flex-end; }
  .online-foto { position: absolute; inset: 0; height: auto; }
  .online-foto img { left: 60px; top: -60px; width: 560px; height: 420px; border-width: 12px; transform: rotate(-6deg); }
  .online-foto::after { top: 200px; bottom: 0; height: auto; background: linear-gradient(0deg, var(--tma) 55%, rgba(29,32,48,0) 100%); }
  .online-text { padding: 0 72px 56px 56px; }
  .velke-cislo { font-size: 88px; }

  .libuse { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 0; align-items: center; }
  .libuse-foto { height: 560px; }
  .libuse-foto::after { top: 0; left: auto; width: 200px; height: auto; background: linear-gradient(90deg, rgba(29,32,48,0) 0%, var(--tma) 100%); }
  .libuse-text { padding: 56px 72px; }
  .citat { font-size: 52px; }

  .buh { padding: 96px 0 110px; }
  .buh-hlava { flex-direction: row; align-items: flex-end; justify-content: space-between; gap: 40px; }
  .buh-hlava .p { max-width: 460px; font-size: 22px; }
  .nadpis-velky { font-size: 120px; }
  .polaroidy { max-width: 1296px; margin: 0 auto; padding: 56px 72px 16px; overflow: visible; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; }
  .pol img { height: 260px; }
  .pol.r2 { margin-top: 30px; }
  .petr { font-size: 26px; margin-top: 40px; }

  .vize { padding: 96px 0; }
  .vize-prach { left: 640px; top: 120px; width: 960px; height: 540px; }
  .vize-in { flex-direction: row; align-items: center; gap: 72px; }
  .vize-text { flex: 0 0 42%; }
  .mapa-blok { flex: 1; }
  .nadpis-stredni { font-size: 52px; }
  .legenda { flex-direction: row; flex-wrap: wrap; gap: 10px 28px; }
  .hledame { padding: 32px 34px; gap: 14px; }
  .hledame-1 { font-size: 30px; }
  .hledame-2 { font-size: 22px; }

  .jak { padding: 96px 0; }
  .jak-in { flex-direction: row; gap: 80px; align-items: flex-start; }
  .jak-hlava { flex: 0 0 34%; gap: 16px; }
  .jak-hlava .h2 { font-size: 42px; }
  .jen-desktop { display: inline-flex; margin-top: 12px; }
  .kroky { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; flex: 1; }
  .kroky li { flex-direction: column; gap: 6px; }
  .krok-cislo { font-size: 40px; }

  .potreby { padding: 96px 0; }
  .potreby .h2 { margin: 14px 0 40px; }
  .potreby-mrizka { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 36px; }
  .odrazky li { font-size: 17px; }
  .cisla { grid-template-columns: minmax(0, 1fr); }
  .cislo { font-size: 36px; }

  .tymy { padding: 96px 56px 96px 72px; }
  .tymy .akordeon { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 32px; }
  .tymy .akordeon details:first-child { grid-column: span 2; }
  .tymy .akordeon details { border-top: 1px solid rgba(29,32,48,0.2); border-bottom: 0; }
  .tymy .akordeon details:first-child { border-top: 3px solid var(--tma); }
  .kalendar { padding: 96px 72px 96px 56px; }
  .kdy { font-size: 32px; }
  .udalost.hlavni .kdy { font-size: 40px; }

  .registrace { padding: 96px 0; }
  .reg-prach { left: -160px; top: 280px; width: 1000px; height: 562px; }
  .registrace-in { flex-direction: row; gap: 72px; align-items: flex-start; }
  .pozvani { flex: 0 0 42%; }
  .pozvani-foto { height: 300px; }
  .pozvani .nadpis-velky { font-size: 72px; }
  .zaskrtnuti li { font-size: 26px; }
  .zaskrtnuti li::before { width: 32px; height: 32px; border-width: 5px; }
  .formular-karta { flex: 1; padding: 40px; }

  .one2one, .firecamp { padding: 80px 72px; }
  .fire-plakat img { width: 190px; height: 231px; }

  .cfan { padding: 96px 0; }
  .cfan-in { flex-direction: row; gap: 72px; align-items: center; }
  .cfan-text { flex: 0 0 42%; }
  .cfan-logo { width: 150px; }
  .osa { flex: 1; gap: 36px 32px; }
  .rok { font-size: 48px; }

  .mat-otazky { padding: 96px 0; }
  .mat-in { flex-direction: row; gap: 80px; align-items: flex-start; }
  .materialy { flex: 0 0 34%; }
  .otazky { flex: 1; }
  .akordeon summary { font-size: 20px; }
  .akordeon details p { font-size: 17px; }

  .podpora { padding: 56px 0; }
  .podpora-in { flex-direction: row; justify-content: space-between; align-items: center; gap: 40px; }
  .platba { flex-wrap: nowrap; gap: 28px; }

  .paticka { padding: 56px 0 48px; }
  .paticka-in { grid-template-columns: 1.4fr 1fr 1.2fr 0.8fr; gap: 40px; }
  .pat-znacka { justify-content: flex-start; gap: 24px; font-size: 30px; }
  .pat-znacka img { width: 90px; }

  .spodni-lista { display: none; }
}

/* ---------- široké monitory: stránka max. 1440 px uprostřed ---------- */
@media (min-width: 1500px) {
  html { background: #e8e6e1; }
  body { max-width: 1440px; margin: 0 auto; box-shadow: 0 0 60px rgba(29,32,48,0.12); }
}
