/* ==========================================================================
   CLEANTIME: plynulé rolovanie (GSAP ScrollSmoother)

   Obsah stránky sa v skutočnosti neroluje. Rolovanie prebieha natívne, ale
   to, čo vidíte, sa posúva transformom vnútri pevného rámu, takže na cieľovú
   pozíciu dobieha s dojazdom. Odtiaľ ten mäkký, ťažký pohyb.

   Z toho plynú dve pravidlá, ktoré sa nedajú obísť:

   1. Kostra musí byť presne #smooth-wrapper > #smooth-content. Rám sa stane
      pevný cez celé okno a obsah sa v ňom posúva.

   2. Hlavička, cookie lišta a hlásenia musia zostať mimo tejto kostry.
      Transform na obsahu z nich totiž vytvorí nový vzťažný rámec a ich
      position: fixed by sa už nevzťahovalo na okno, ale na posúvajúci sa
      obsah. Odrolovali by preč spolu so stránkou.

   Rozmery si ScrollSmoother nastaví sám hneď po štarte. Tu je len to, čo
   musí platiť ešte predtým, než sa skript stihne načítať, aby stránka pri
   načítaní neposkočila.
   ========================================================================== */

/* Natívne plynulé rolovanie by si s dojazdom prekážalo. Ide preč, ale len
   tam, kde kostra naozaj je, ostatné stránky si ho nechávajú. */
html:has(#smooth-content) {
  scroll-behavior: auto;
}

#smooth-content {
  /* Rovnaká hodnota, akú si nastaví aj skript. Bez nej by sa vnútorné
     okraje pri úzkych oknách prirátali k šírke a vznikol by vodorovný posun. */
  width: 100%;
  box-sizing: border-box;
  /* Obsah nesmie byť orezaný, orezáva až rám okolo neho. */
  overflow: visible;
}

/* Kým skript nebeží, kostra sa správa ako obyčajné dva obaly a stránka
   roluje natívne. Nič sa preto nenastavuje natvrdo. Trieda pribudne až vtedy,
   keď je plynulé rolovanie naozaj zapnuté, takže sa na ňu dá bezpečne viazať. */
html.has-smooth-scroll #smooth-wrapper {
  overflow: hidden;
}

/* Pri obmedzenom pohybe sa plynulé rolovanie nevypína, len sa mu skracuje
   dojazd. Rieši to app.js, tu sa teda nič vypínať nemá: rám musí zostať
   orezaný vždy, keď je efekt zapnutý, inak by sa obsah vykresľoval mimo neho. */
