/* Tiger Translate — taalwisselaar */
.tt-switcher {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.875rem;
}
.tt-switcher__link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  text-decoration: none;
  padding: 0.15rem 0.5rem;
  border-radius: 999px;
  color: inherit;
  opacity: 0.7;
}
.tt-switcher__link:hover { opacity: 1; }
.tt-switcher__link.is-active {
  opacity: 1;
  font-weight: 600;
  background: rgba(0, 0, 0, 0.06);
}
.tt-switcher__flag {
  font-size: 1.1em;
  line-height: 1;
}
.tt-switcher__code {
  font-size: 0.8em;
  letter-spacing: 0.03em;
}
.tt-float__flag { font-size: 1.15em; line-height: 1; display: inline-flex; }

/* WordPress vervangt de vlag-emoji door <img class="emoji"> met een eigen
 * margin (margin: 0 .05em 0 .1em) en inline-baseline-uitlijning. Dat gaf een
 * scheve, rechts-zware knop met een ogenschijnlijk te grote ruimte naast de
 * vlag. Strak resetten zodat vlag + code netjes aansluiten. */
.tt-switcher__flag img.emoji,
.tt-float__flag img.emoji {
  margin: 0;
  height: 1em;
  width: auto;
  vertical-align: middle;
}

/* ── Floating taalwisselaar (rechtsonder) ───────────────────── */
.tt-float {
  position: fixed;
  right: 1.25rem;
  bottom: 1.25rem;
  z-index: 1050;
}
.tt-float__toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.55rem 0.85rem;
  border: 0;
  border-radius: 999px;
  background: #92a496; /* sage — matcht het thema */
  color: #fff;
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 6px 20px rgba(16, 21, 26, 0.18);
  transition: background-color 0.15s ease, transform 0.15s ease;
}
.tt-float__toggle:hover { background: #778a75; transform: translateY(-1px); }
.tt-float__current { letter-spacing: 0.03em; }

.tt-float__panel {
  position: absolute;
  right: 0;
  bottom: calc(100% + 0.5rem);
  background: #fff;
  border: 1px solid rgba(16, 21, 26, 0.1);
  border-radius: 12px;
  box-shadow: 0 12px 30px rgba(16, 21, 26, 0.16);
  padding: 0.4rem;
}
.tt-float__panel .tt-switcher {
  flex-direction: column;
  align-items: stretch;
  gap: 0.15rem;
}
.tt-float__panel .tt-switcher__link {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.45rem 0.7rem;
  border-radius: 8px;
  color: #10151a;
}
.tt-float__panel .tt-switcher__link:hover { background: rgba(146, 164, 150, 0.15); }
.tt-float__panel .tt-switcher__link.is-active { background: rgba(146, 164, 150, 0.22); }

@media print { .tt-float { display: none; } }

/* ── Eigen vertaal-animatie (i.p.v. de Google-spinner) ───────── */
#tt-translating {
  position: fixed;
  right: 1.25rem;
  bottom: 1.25rem;
  z-index: 2147483600; /* boven alles, ook de floating switcher */
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.6rem 1rem;
  background: #10151a;
  color: #fff;
  font-size: 0.875rem;
  line-height: 1;
  border-radius: 999px;
  box-shadow: 0 8px 24px rgba(16, 21, 26, 0.25);
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.3s ease, transform 0.3s ease;
}
#tt-translating.is-done {
  opacity: 0;
  transform: translateY(8px);
}
.tt-translating__spinner {
  width: 1rem;
  height: 1rem;
  border: 2px solid rgba(255, 255, 255, 0.35);
  border-top-color: #fff;
  border-radius: 50%;
  animation: tt-spin 0.7s linear infinite;
}
@keyframes tt-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .tt-translating__spinner { animation-duration: 1.6s; }
}

/* ── Skeleton-placeholder op tekst die nog vertaald wordt ─────────
 * We zetten deze class op het PARENT-element van een nog-onvertaalde
 * tekst-node. De tekst zelf wordt transparant (NL-tekst niet leesbaar,
 * maar breedte/hoogte blijven → geen layout-shift), met een grijze
 * pulserende shimmer-achtergrond erachter. Zodra de vertaling binnen is
 * halen we de class weg en verschijnt de echte tekst. */
.tt-pending {
  color: transparent !important;
  /* Sommige thema-/Bootstrap-elementen zetten -webkit-text-fill-color (bv. via
   * gradient-tekst of utility-classes); die wint van `color`. Expliciet
   * transparant zetten zodat de tekst ECHT verdwijnt en niet bovenop de skeleton
   * blijft staan (zoals de "vanaf €.."-prijs op de productpagina). */
  -webkit-text-fill-color: transparent !important;
  text-shadow: none !important;
  background-image: linear-gradient(
    90deg,
    rgba(16, 21, 26, 0.06) 25%,
    rgba(16, 21, 26, 0.12) 37%,
    rgba(16, 21, 26, 0.06) 63%
  ) !important;
  background-size: 400% 100% !important;
  /* Forceer normale achtergrond-clip: een element met `background-clip:text`
   * (gradient-tekst) zou onze shimmer anders op de letters clippen i.p.v. het
   * hele veld → tekst bleef zichtbaar. */
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
  border-radius: 4px;
  animation: tt-shimmer 1.4s ease-in-out infinite;
  /* De shimmer strak om de tekst, niet om de hele regelhoogte. */
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
/* Kind-elementen (links, <strong> e.d.) binnen een pending-veld mee
 * onzichtbaar maken, zodat er geen halve NL-tekst doorheen schemert. */
.tt-pending * {
  color: transparent !important;
  -webkit-text-fill-color: transparent !important;
  text-shadow: none !important;
}
/* Iconen/afbeeldingen binnen een pending-veld wél zichtbaar laten. */
.tt-pending img, .tt-pending svg { opacity: 0.4; }
@keyframes tt-shimmer {
  0%   { background-position: 100% 0; }
  100% { background-position: -100% 0; }
}
@media (prefers-reduced-motion: reduce) {
  .tt-pending { animation: none; }
}
