/* Cascading language dropdown -- colors from tokens.css only (theme rule: no hardcoded hex in
   section/template CSS). Structure/interaction mirrors salamxp.com's dropdown; palette is ARAYA's
   own maroon/gold/cream, not SalamXP's green. */
.an-lang-dropdown { position: relative; }
.an-lang-dropdown--desktop { display: none; }
@media (min-width: 640px) { .an-lang-dropdown--desktop { display: inline-block; } }

.an-lang-dd-trigger {
  display: inline-flex; align-items: center; gap: 6px;
  border: 1px solid var(--an-sand); background: var(--an-cream-card);
  border-radius: var(--an-radius-pill);
  padding: 7px 13px; font-size: 12.5px; font-weight: 600; color: var(--an-ink-soft);
  cursor: pointer; transition: border-color var(--an-transition), color var(--an-transition);
  font-family: var(--an-font-body);
}
.an-lang-dd-trigger:hover { border-color: var(--an-gold-strong); color: var(--an-maroon); }
.an-lang-dd-trigger:focus-visible { outline: var(--an-focus); outline-offset: 2px; }

.an-lang-dd-menu {
  position: absolute; top: calc(100% + 8px); right: 0; z-index: 60;
  width: 240px; max-height: 22rem; overflow-y: auto;
  background: var(--an-cream-card); border: 1px solid var(--an-sand);
  border-radius: 14px;
  box-shadow: 0 12px 32px rgba(46, 13, 18, 0.16);
  padding: 8px;
}
.an-lang-dropdown--mobile .an-lang-dd-trigger { width: 100%; justify-content: center; padding: 12px 16px; }
.an-lang-dropdown--mobile .an-lang-dd-menu {
  position: static; width: 100%; max-height: 14rem; margin-top: 8px;
  box-shadow: none; border-color: var(--an-cream-tint);
}

.an-lang-dd-search-wrap { padding: 4px 4px 8px; position: sticky; top: 0; background: var(--an-cream-card); }
.an-lang-dd-search {
  width: 100%; border: 1px solid var(--an-sand); border-radius: 10px;
  padding: 7px 10px; font-size: 13px; color: var(--an-ink); font-family: var(--an-font-body);
  outline: none;
}
.an-lang-dd-search:focus { border-color: var(--an-gold-strong); }

.an-lang-dd-group { display: flex; flex-direction: column; }
.an-lang-dd-pinned { padding-bottom: 6px; border-bottom: 1px solid var(--an-cream-tint); margin-bottom: 6px; }

.an-lang-dd-item {
  text-align: left; width: 100%; border: none; background: none;
  padding: 7px 10px; border-radius: 8px;
  font-size: 13.5px; font-weight: 500; color: var(--an-ink-soft);
  cursor: pointer; transition: background var(--an-transition);
  font-family: var(--an-font-body);
}
.an-lang-dd-item:hover { background: var(--an-cream-tint); }
.an-lang-dd-item.is-active { background: var(--an-cream-tint); color: var(--an-maroon); font-weight: 700; }

.an-lang-dd-noresults { padding: 8px 10px; font-size: 12.5px; color: var(--an-ink-muted); }

/* Hide Google's OWN translate banner (the "Google | Translated to: X | Show original" bar it
   shows at the very top of the page whenever a translation is active via the googtrans cookie).
   Founder-caught 2026-08-12: our own dropdown is the only language control we want visible --
   Google's banner is separate, native widget chrome, not something we built or want shown.
   Confirmed via live DOM inspection: the banner iframe's own class is an obfuscated Google
   build-hash (e.g. "VIpgJd-ZVi9od-ORHb-OEVmcd"), NOT the classic documented
   ".goog-te-banner-frame" -- that class no longer matches on the current widget version. The
   one STABLE thing across every Google-injected iframe (banner and its invisible internal
   siblings alike) is the "skiptranslate" class, so target `iframe.skiptranslate` generically
   rather than the obfuscated hash -- safe because Google never uses iframes for real translated
   page text, only for its own UI chrome. Google's script also pushes <body> down via an INLINE
   `top: 40px` style to make room for the banner (important enough to need `!important` here to
   win over that inline style, which stylesheet !important rules are permitted to do).
   Scoped to html.translated-ltr/html.translated-rtl (the class Google itself adds to <html> only
   while a translation is active -- confirmed via live DOM inspection) rather than a blanket
   `body { top: 0 }`, so this never overrides an unrelated `top` a plugin might set on body when
   no translation is running (adversarial review finding, 2026-08-12, before first live deploy). */
iframe.skiptranslate {
  display: none !important;
}
html.translated-ltr body,
html.translated-rtl body {
  top: 0 !important;
}
