/* ==========================================================================
   CLEANTIME: výber jazyka a preklad
   Vlastné okno namiesto škaredého predvoleného pruhu od Google Translate,
   v rovnakom vizuálnom jazyku ako zvyšok webu (serif nadpisy, eyebrow,
   hairline mriežka, zaoblené dlaždice).
   ========================================================================== */

/* Kým malý synchrónny skript hneď pri okne nerozhodne, či sa má ukázať,
   zvyšok stránky ostáva neviditeľný — inak by pri prvej návšteve na zlomok
   sekundy prebleslo slovenské pozadie skôr, než okno stihne nabehnúť. */
html.lang-gate-blocking body > *:not([data-lang-gate]):not(#google_translate_element):not([data-contact-consent]) {
  visibility: hidden;
}

[data-lang-gate] {
  position: fixed;
  inset: 0;
  z-index: 400;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 6vh 6vw;
  background: linear-gradient(165deg, var(--sage, #dfe9dc) 0%, var(--paper) 62%);
  opacity: 0;
  transition: opacity .38s ease;
}
[data-lang-gate][hidden] { display: none; }
[data-lang-gate].lang-gate-in { opacity: 1; }

.lang-gate-overlay {
  position: absolute;
  inset: 0;
  background: rgba(23, 32, 28, .06);
}

.lang-gate-panel {
  position: relative;
  width: min(880px, 100%);
  max-height: 88vh;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  padding: clamp(28px, 4vw, 52px) clamp(24px, 4.5vw, 56px);
  border: 1px solid var(--line);
  border-radius: var(--radius, 22px);
  background: var(--white);
  box-shadow: 0 30px 90px rgba(23, 32, 28, .16);
  transform: translateY(14px) scale(.98);
  transition: transform .42s cubic-bezier(.16, 1, .3, 1);
}
[data-lang-gate].lang-gate-in .lang-gate-panel { transform: translateY(0) scale(1); }

.lang-gate-close {
  position: absolute;
  top: 18px;
  right: 18px;
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: var(--paper);
  color: var(--ink);
  font-size: 1.2rem;
  line-height: 1;
  transition: background-color .2s ease, transform .2s ease;
}
.lang-gate-close:hover { background: var(--surface-soft, #eef3eb); transform: scale(1.06); }

.lang-gate-head { margin-bottom: 22px; }
.lang-gate-head .eyebrow { justify-content: center; }
.lang-gate-title {
  margin: 14px 0 0;
  font: clamp(1.9rem, 4vw, 2.7rem) var(--serif);
  letter-spacing: -.03em;
  text-align: center;
}
.lang-gate-desc {
  max-width: 46ch;
  margin: 10px auto 0;
  color: var(--muted);
  font-size: .95rem;
  text-align: center;
}

/* --- Tri hlavné jazyky, vidno hneď --------------------------------------- */
.lang-gate-primary {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-bottom: 18px;
}
.lang-gate-primary .lang-gate-item {
  padding: 14px 22px;
  font-size: .95rem;
}
.lang-gate-primary .lang-gate-flag { font-size: 1.4rem; }

/* --- "Zobraziť viac": zvyšok jazykov, skrytý, kým naň niekto neklikne ---- */
.lang-gate-more { text-align: center; }
.lang-gate-more-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: max-content;
  margin: 0 auto;
  padding: 11px 20px;
  border-radius: 999px;
  background: var(--ink);
  color: #fff;
  font-size: .86rem;
  font-weight: 650;
  list-style: none;
  cursor: pointer;
  transition: background-color .2s ease, transform .2s ease;
}
.lang-gate-more-toggle::-webkit-details-marker { display: none; }
.lang-gate-more-toggle::marker { content: ''; }
@media (hover: hover) and (pointer: fine) {
  .lang-gate-more-toggle:hover { background: var(--forest, #1c3026); transform: translateY(-1px); }
}

.lang-gate-chevron { transition: transform .42s cubic-bezier(.16, 1, .3, 1) !important; }
.lang-gate-more[open] .lang-gate-chevron { transform: rotate(90deg); }
.lang-gate-more.is-closing .lang-gate-chevron { transform: rotate(0deg); }

.lang-gate-more-body {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows .52s cubic-bezier(.16, 1, .3, 1) !important;
  text-align: left;
}
.lang-gate-more[open] .lang-gate-more-body { grid-template-rows: 1fr; }
/* Rovnaká špecificita ako pravidlo vyššie, ale zapísaná neskôr, takže počas
   zatvárania (open="" ešte drží, len pribudla trieda) vyhráva táto — výška
   sa animuje späť na 0fr namiesto toho, aby ju prehliadač zaseknutú nechal
   na polceste, keď open="" napokon naozaj zruší. */
.lang-gate-more.is-closing .lang-gate-more-body { grid-template-rows: 0fr; }
.lang-gate-more-body > div { min-height: 0; overflow: hidden; }
.lang-gate-more[open] .lang-gate-more-body > div { padding-top: 18px; }
.lang-gate-more.is-closing .lang-gate-more-body > div { padding-top: 0; }

.lang-gate-search-wrap { position: relative; margin-bottom: 18px; }
.lang-gate-search-icon {
  position: absolute;
  top: 50%;
  left: 17px;
  transform: translateY(-50%);
  color: var(--muted);
  pointer-events: none;
}
[data-lang-search] {
  width: 100%;
  padding: 13px 16px 13px 42px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--paper);
  color: var(--ink);
  font-size: .95rem;
  outline: none;
  transition: border-color .2s ease, box-shadow .2s ease;
}
[data-lang-search]:focus {
  border-color: #61899b;
  box-shadow: 0 0 0 3px #d9e8ef;
}

[data-lang-grid] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 8px;
  overflow-y: auto;
  padding: 2px 2px 4px;
  margin: 0 -2px;
}

.lang-gate-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--paper);
  color: var(--ink);
  font-size: .86rem;
  font-weight: 650;
  text-align: left;
  transition: border-color .2s ease, background-color .2s ease, transform .2s ease;
}
.lang-gate-item[hidden] { display: none; }
.lang-gate-flag { font-size: 1.25rem; line-height: 1; flex: 0 0 auto; }

@media (hover: hover) and (pointer: fine) {
  .lang-gate-item:hover {
    border-color: var(--ink);
    background: var(--surface-soft, #eef3eb);
    transform: translateY(-1px);
  }
}

.lang-gate-empty {
  padding: 30px 0;
  color: var(--muted);
  font-size: .9rem;
  text-align: center;
}
.lang-gate-empty[hidden] { display: none; }

/* Zamknutie rolovania stránky pod otvoreným oknom. */
body.lang-gate-lock { overflow: hidden; }

/* --- Prepínač jazyka v päte (na každej stránke) ------------------------- */
.footer-legal [data-lang-open] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.footer-legal [data-lang-open] [data-lang-current-flag] { font-size: 1rem; line-height: 1; }

@media (max-width: 600px) {
  [data-lang-gate] { padding: 0; }
  .lang-gate-panel { max-height: 100vh; height: 100%; border-radius: 0; border: 0; }
  [data-lang-grid] { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); }
}

/* ==========================================================================
   Potlačenie predvoleného vzhľadu Google Website Translator. Beží iba na
   preklad textu, vlastné UI (horný pruh, ikona, zvýraznenie pri najazdení)
   nechceme — má ho toto okno.
   ========================================================================== */
.goog-te-banner-frame,
#google_translate_element,
.skiptranslate iframe {
  display: none !important;
}
body { top: 0 !important; }
.goog-text-highlight { background: none !important; box-shadow: none !important; }
