/* Vrstva pohybu pro cely web.
   Zasada: animuje se VYHRADNE opacity a transform, nikdy vyska, sirka ani margin,
   aby nabeh nezpusobil posun rozvrzeni. Vychozi stav je viditelny, skryva se az
   z JavaScriptu, takze bez JS je stranka porad cela videt. */

@media (prefers-reduced-motion: no-preference){

  /* --- nabeh pri vstupu do zorneho pole --- */
  [data-rv]{
    opacity:0; transform:translate3d(0,14px,0);
    transition:opacity .5s cubic-bezier(.22,.61,.36,1),
               transform .5s cubic-bezier(.22,.61,.36,1);
    transition-delay:var(--rv-d,0ms);
  }
  [data-rv="in"]{ opacity:1; transform:none; }

  /* Recenze si klient vyslovne vyzadal vyraznejsi, ale porad klidny nabeh. */
  #p07 [data-rv]{ transform:translate3d(0,22px,0) scale(.985); }
  #p07 [data-rv="in"]{ transform:none; }

  /* --- hovery --- */
  .hdr__nav a{ position:relative; }
  .hdr__nav a::after{
    content:""; position:absolute; left:0; right:0; bottom:-4px; height:1.5px;
    background:currentColor; border-radius:2px;
    transform:scaleX(0); transform-origin:left center;
    transition:transform .28s cubic-bezier(.22,.61,.36,1);
  }
  .hdr__nav a:hover::after, .hdr__nav a:focus-visible::after{ transform:scaleX(1); }

  .btn{ transition:transform .2s cubic-bezier(.22,.61,.36,1),
                    box-shadow .2s ease, background-color .2s ease; }
  .btn:hover{ transform:translateY(-1.5px); }
  .btn--primary:hover{ box-shadow:var(--shadow-cta), 0 8px 18px rgba(0,0,0,.18); }
  .btn:active{ transform:translateY(0); }

  .p05__card, .p07__card, .p09__card, .p04__tile, .card{
    transition:transform .28s cubic-bezier(.22,.61,.36,1), box-shadow .28s ease;
  }
  .p05__card:hover, .p07__card:hover, .p04__tile:hover, .card:hover{
    transform:translateY(-3px);
  }

  .p12 a{ position:relative; }
  .p12 a::after{
    content:""; position:absolute; left:0; right:0; bottom:-2px; height:1px;
    background:currentColor; transform:scaleX(0); transform-origin:left center;
    transition:transform .25s ease;
  }
  .p12 a:hover::after{ transform:scaleX(1); }
}

/* --- stavy dotazniku ---
   Plati i pri omezenem pohybu, protoze to nejsou ozdoby, ale informace o tom,
   na co jde kliknout a co uz je zvolene. Jen bez prechodu a bez posunu. */
.wiz__opt{
  cursor:pointer;
  transition:background-color .18s ease, border-color .18s ease,
             color .18s ease, transform .18s cubic-bezier(.22,.61,.36,1),
             box-shadow .18s ease;
}
.wiz__opt:hover{
  background:var(--zinc-100); border-color:var(--zinc-400);
  box-shadow:var(--shadow-card);
}
.wiz__opt:active{ transform:translateY(1px); }
.wiz__opt[aria-pressed="true"], .wiz__opt.is-vybrano, .wiz__opt.is-active{
  background:var(--zinc-950); border-color:var(--zinc-950); color:var(--zinc-0);
}
.wiz__opt:focus-visible, .wiz__field:focus-visible, .wiz__file:focus-visible,
.btn:focus-visible, .hdr__nav a:focus-visible{
  outline:2px solid var(--zinc-950); outline-offset:2px;
}
.wiz__field{ transition:border-color .18s ease, box-shadow .18s ease; }
.wiz__field:hover{ border-color:var(--zinc-400); }
.wiz__field:focus{ border-color:var(--zinc-950); box-shadow:0 0 0 3px rgba(9,9,11,.08); }

/* Ukazatel kroku prejizdi plynule misto skoku. */
.wiz__seg{ transition:background-color .35s ease, opacity .35s ease; }
.wiz__prog{ transition:transform .35s cubic-bezier(.22,.61,.36,1); }

@media (prefers-reduced-motion: reduce){
  .wiz__opt, .wiz__field, .wiz__seg, .wiz__prog{ transition:none; }
  .wiz__opt:active{ transform:none; }
}
