/* Shared language selector; follows the existing surface and type palette. */
html,body{overflow-x:hidden}

/* ---------------------------------------------------------
   LIMBA PE BARA
   Comutatorul nu mai are fasie proprie deasupra paginii: sta pe bara de
   unelte, langa telefon si tema, si ramane mereu vizibil — restul meniului
   se poate ascunde in derularea pastilei, limba nu.
--------------------------------------------------------- */
.lang{position:relative;flex:0 0 auto}
.lang__btn{
  display:inline-flex;align-items:center;gap:6px;
  height:38px;padding:0 8px;
  border:1px solid var(--border,rgba(0,0,0,.12));border-radius:var(--r-sm,10px);
  background:transparent;color:var(--text-muted,inherit);cursor:pointer;
  font:700 12px/1 var(--f-head,'Source Sans 3',Arial,sans-serif);letter-spacing:.06em;
  transition:color var(--t-ui,.18s) var(--e-out,ease),border-color var(--t-ui,.18s) var(--e-out,ease),background-color var(--t-ui,.18s) var(--e-out,ease);
}
.lang__btn:hover{color:var(--text);border-color:var(--accent-line,currentColor)}
.lang__btn:focus-visible{outline:2px solid var(--accent,currentColor);outline-offset:2px}
.lang.is-open > .lang__btn{color:var(--text);border-color:var(--accent-line,currentColor);background:var(--accent-wash,transparent)}
.lang__globe{width:16px;height:16px;flex:0 0 auto}
.lang__code{font-size:12px}
.lang__caret{width:11px;height:11px;flex:0 0 auto;opacity:.8;transition:transform var(--t-ui,.18s) var(--e-out,ease)}
.lang.is-open .lang__caret{transform:rotate(180deg)}
.lang__menu{
  position:absolute;top:calc(100% + 8px);right:0;z-index:120;
  min-width:172px;margin:0;padding:6px;list-style:none;
  border:1px solid var(--border,rgba(0,0,0,.12));border-radius:var(--r-md,14px);
  background:var(--surface-raised,#fff);box-shadow:var(--sh-lg,0 18px 42px rgba(0,0,0,.18));
  opacity:0;visibility:hidden;transform:translateY(-6px) scale(.98);transform-origin:top right;
  transition:opacity var(--t-ui,.18s) var(--e-out,ease),transform var(--t-ui,.18s) var(--e-out,ease),visibility 0s linear var(--t-ui,.18s);
}
.lang.is-open .lang__menu{opacity:1;visibility:visible;transform:none;transition-delay:0s}
/* Fara JS butonul nu are cine sa-l deschida: atunci focusul o face. */
html:not(.lang-js) .lang:focus-within .lang__menu{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.lang__menu li{margin:0}
.lang__menu a{
  display:flex;align-items:center;gap:10px;
  min-height:40px;padding:8px 10px;border-radius:var(--r-sm,10px);
  color:var(--text-muted,inherit);text-decoration:none;white-space:nowrap;
  font:500 14px/1.2 var(--f-body,'Source Sans 3',Arial,sans-serif);
}
.lang__menu a:hover{background:var(--accent-wash,rgba(0,0,0,.05));color:var(--text)}
.lang__menu a[aria-current=true]{background:var(--accent-wash,rgba(0,0,0,.05));color:var(--accent-text,inherit);font-weight:600}
.lang__menu a:focus-visible{outline:2px solid var(--accent,currentColor);outline-offset:-2px}
.lang__abbr{min-width:22px;font:700 11px/1 var(--f-head,'Source Sans 3',Arial,sans-serif);letter-spacing:.08em;opacity:.75}
/* Pe barele stramte conteaza fiecare pixel: ramane doar codul limbii. Bara
   mobila a site-ului si antetul constructorului duc aceleasi comenzi pe
   acelasi spatiu, deci se ingusteaza la fel. */
@media(max-width:700px){
  .mbar .lang__globe,
  .hero-header__tools .lang__globe{display:none}
  .mbar .lang__btn,
  .hero-header__tools .lang__btn{height:44px;padding:0 9px}
}

/* Fasia de sus a ramas doar pentru paginile fara bara de unelte (404). */
.cm-language{display:flex;align-items:center;justify-content:flex-end;gap:2px;position:relative;z-index:90;max-width:var(--container,1280px);margin:0 auto;padding:8px 24px;font:600 12px/1.3 'Source Sans 3',Arial,sans-serif}
.cm-language a{color:inherit;text-decoration:none;border:1px solid transparent;border-radius:6px;padding:7px 10px;white-space:nowrap;min-height:32px;display:inline-flex;align-items:center}
.cm-language a[aria-current=true]{border-color:currentColor}
.cm-language a:hover{background:color-mix(in srgb,currentColor 9%,transparent)}
.cm-language a:focus-visible{outline:2px solid currentColor;outline-offset:3px}
body:has(>.cm-language) .nav{top:54px}
body:has(>.cm-language) .mbar{top:48px}
.cm-language-footer{justify-content:flex-start;padding:12px 0}
html[lang=ru] .hero-title,html[lang=en] .hero-title{overflow-wrap:break-word}
@media(max-width:600px){.cm-language{padding:4px 12px;justify-content:center;min-height:42px}.cm-language a{padding:7px 12px}.cm-language-footer{justify-content:flex-start}}
@media print{.cm-language,.lang{display:none!important}}

/* ---------------------------------------------------------
   LIMBA SUGERATA, NU IMPUSA
   Pagina de start nu mai muta pe nimeni dupa limba browserului: o mutare
   automata inseamna, pentru un motor de cautare care vine cu engleza, ca
   `/` e o redirectare catre `/en/` — si pagina romaneasca iese din index.
   Ramane atunci datoria de a arata ca site-ul e si in rusa, si in engleza:
   un punct pe glob, si invitatia pe buton, in limba omului.
--------------------------------------------------------- */
.lang--sugerat .lang__btn{position:relative}
.lang--sugerat .lang__btn::after{
  content:"";position:absolute;top:3px;right:3px;
  width:7px;height:7px;border-radius:50%;
  background:var(--accent-strong,#fe6701);
  box-shadow:0 0 0 2px var(--surface,#fff);
}
