/* ------------------------------------------------------------------
   Doplňky k Tailwindu — animace, countery, gradienty a stavy.
   Sdíleno všemi stránkami.
   ------------------------------------------------------------------ */

html { scroll-behavior: smooth }
body {
  font-family: 'Inter Tight', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-size: 1.0625rem;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
:focus-visible { outline: 2px solid #1D5CFF; outline-offset: 3px; border-radius: 6px }

/* ---- hero gradient (bez fotky) ---- */
.b-hero-gradient {
  background:
    radial-gradient(120% 90% at 8% 0%,   #123A73 0%, rgba(18,58,115,0) 58%),
    radial-gradient(90% 70% at 92% 6%,   rgba(29,92,255,.45) 0%, rgba(29,92,255,0) 60%),
    radial-gradient(70% 60% at 70% 100%, rgba(110,155,255,.22) 0%, rgba(110,155,255,0) 62%),
    linear-gradient(165deg, #0A2249 0%, #06142B 55%, #04101F 100%);
}

/* ---- jemný šum přes tmavé sekce ---- */
.b-sum::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  opacity: .5; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.22'/%3E%3C/svg%3E");
}

/* ---- gradientní čísla ---- */
.b-cislo, .b-stat-cislo {
  background: linear-gradient(180deg, #fff, #A9C8FF);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}

/* ---- číslované kroky ---- */
.b-kroky { counter-reset: k }
.b-krok  { counter-increment: k }
.b-krok::before {
  content: "0" counter(k);
  font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 800;
  font-size: .95rem; color: #1D5CFF; letter-spacing: .05em; padding-top: .28rem;
}
.b-tmave .b-krok::before { color: #A9C8FF }
.b-kroky .b-krok:last-child { border-bottom: 1px solid rgba(10,34,73,.12) }
.b-tmave .b-kroky .b-krok:last-child { border-bottom-color: rgba(169,200,255,.18) }

/* ---- uvozovka u reference ---- */
.b-ref p::before {
  content: "\201E"; color: #6E9BFF; font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 1.5rem; line-height: 0; vertical-align: -.05em; margin-right: .1rem;
}

/* ---- animovaný podtrh v nadpisu ---- */
.b-swash { position: relative; white-space: nowrap }
.b-swash svg { position: absolute; left: 0; right: 0; bottom: -.16em; width: 100%; height: .34em; overflow: visible }
.b-swash path {
  fill: none; stroke: #6E9BFF; stroke-width: 7; stroke-linecap: round;
  stroke-dasharray: 1000; stroke-dashoffset: 1000;
  animation: kresli 1.1s .9s cubic-bezier(.6,0,.2,1) forwards;
}
@keyframes kresli { to { stroke-dashoffset: 0 } }
@keyframes objev  { to { opacity: 1 } }
@keyframes vjezd  { from { opacity: 0; transform: translateY(14px) } to { opacity: 1; transform: none } }

/* ---- burger ---- */
.b-burger i {
  display: block; width: 19px; height: 1.6px; background: currentColor; position: relative;
  transition: transform .25s ease, background .25s ease;
}
.b-burger i::before, .b-burger i::after {
  content: ""; position: absolute; left: 0; width: 19px; height: 1.6px;
  background: currentColor; transition: transform .25s ease;
}
.b-burger i::before { top: -6px }
.b-burger i::after  { top: 6px }
.b-burger[aria-expanded="true"] i { background: transparent }
.b-burger[aria-expanded="true"] i::before { transform: translateY(6px) rotate(45deg) }
.b-burger[aria-expanded="true"] i::after  { transform: translateY(-6px) rotate(-45deg) }

/* ---- FAQ ikona ---- */
.b-faq-tlac::after {
  content: ""; position: absolute; right: .55rem; top: 50%; width: 13px; height: 13px;
  background: linear-gradient(#1D5CFF,#1D5CFF) center/13px 1.7px no-repeat,
              linear-gradient(#1D5CFF,#1D5CFF) center/1.7px 13px no-repeat;
  transform: translateY(-50%) rotate(0deg); transition: transform .3s ease;
}
.b-faq-tlac[aria-expanded="true"]::after { transform: translateY(-50%) rotate(135deg) }
.b-faq-tlac[aria-expanded="true"] { color: #1D5CFF }

/* ---- finanční check ---- */
.b-box { background: linear-gradient(160deg, #0A2249, #06142B 55%) }
.b-box-zare {
  position: absolute; width: 520px; height: 520px; right: -160px; top: -224px;
  border-radius: 50%; pointer-events: none;
  background: radial-gradient(circle, rgba(29,92,255,.4), transparent 66%);
}
.b-pruh {
  display: block; height: 100%; width: 20%; border-radius: 999px;
  background: linear-gradient(90deg, #1D5CFF, #A9C8FF);
  transition: width .45s cubic-bezier(.6,0,.2,1);
}
.b-box.hotovo .b-check-krok { display: none }
.b-box .b-check-vysledek    { display: none }
.b-box.hotovo .b-check-vysledek { display: block; animation: vjezd .5s cubic-bezier(.6,0,.2,1) }

/* ---- formulář ---- */
.b-formular .b-hlaska { display: none }
.b-formular.odeslano .b-form-telo { display: none }
.b-formular.odeslano .b-hlaska { display: block; animation: vjezd .45s ease }
.b-kariera-pole { display: none }
.b-formular.kariera .b-kariera-pole { display: block; animation: vjezd .35s ease }

/* ---- překryvy na fotkách ---- */
.b-foto-prekryv {
  position: absolute; inset: 0;
  background: linear-gradient(200deg, transparent 45%, rgba(6,20,43,.55));
}
.b-kariera-prekryv {
  position: absolute; inset: 0;
  background: linear-gradient(105deg, #06142B 28%, rgba(6,20,43,.86) 60%, rgba(10,34,73,.72));
}

/* ---- odkrývání při scrollu ---- */
.b-odkryt {
  opacity: 0; transform: translateY(22px);
  transition: opacity .7s cubic-bezier(.4,0,.2,1), transform .7s cubic-bezier(.4,0,.2,1);
  transition-delay: calc(var(--i, 0) * 70ms);
}
.b-odkryt.viditelne { opacity: 1; transform: none }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important }
  html { scroll-behavior: auto }
  .b-odkryt { opacity: 1; transform: none }
  .b-swash path { opacity: 1; stroke-dashoffset: 0 }
}
