/* Sélecteur de langue + ajustements pour l'arabe (écriture de droite à gauche). */
.lsw { position: relative; display: inline-block; font-family: 'Inter', 'Syne', system-ui, sans-serif; }
.lsw-btn { display: inline-flex; align-items: center; gap: 8px; height: 38px; padding: 0 12px; border-radius: 999px; border: 0.5px solid rgba(255,255,255,0.18); background: rgba(255,255,255,0.04); color: var(--text, #e2e4ef); font: 600 13px/1 inherit; font-family: inherit; cursor: pointer; transition: border-color .2s, background .2s; white-space: nowrap; }
.lsw-btn:hover, .lsw.open .lsw-btn { border-color: rgba(255,255,255,0.4); background: rgba(255,255,255,0.08); }
.lsw-btn:focus-visible, .lsw-menu li:focus-visible { outline: 2px solid var(--accent2, #b455f7); outline-offset: 2px; }
.lsw-chev { opacity: .7; transition: transform .2s; } .lsw.open .lsw-chev { transform: rotate(180deg); }
.lsw-flag { width: 22px; height: 16px; border-radius: 3px; object-fit: cover; flex-shrink: 0; box-shadow: 0 0 0 .5px rgba(255,255,255,.12); display: block; }
.lsw-menu { position: absolute; top: calc(100% + 8px); inset-inline-end: 0; z-index: 400; width: 214px; max-height: min(380px, 70vh); overflow-y: auto; margin: 0; padding: 6px; list-style: none; background: #1c1d22; border: 0.5px solid rgba(255,255,255,0.12); border-radius: 14px; box-shadow: 0 24px 60px rgba(0,0,0,.6); scrollbar-width: thin; scrollbar-color: #4a4b52 transparent; }
.lsw-menu[hidden] { display: none; }
.lsw-menu li { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 9px; cursor: pointer; font-size: 14px; font-weight: 600; color: #f2f3f5; }
.lsw-menu li:hover, .lsw-menu li:focus { background: rgba(255,255,255,0.07); outline: none; }
.lsw-menu li[aria-selected="true"] { background: rgba(139,60,247,0.12); }
.lsw-menu li .lsw-check { margin-inline-start: auto; color: var(--accent2, #b455f7); }
@media (max-width: 600px) { .lsw-btn { height: 34px; padding: 0 10px; gap: 6px; } .lsw-code { display: none; } .lsw-menu { width: 200px; } }

/* ── Arabe : on garde la mise en page, on inverse ce qui doit l'être ── */
html[dir="rtl"] body { text-align: start; }
html[dir="rtl"] .hero { text-align: start; }
html[dir="rtl"] .hero-actions .hero-btn svg, html[dir="rtl"] .hero-link svg, html[dir="rtl"] .feat-more svg, html[dir="rtl"] .cta-arrow, html[dir="rtl"] .nx-back svg { transform: scaleX(-1); }
html[dir="rtl"] .hero-link:hover svg, html[dir="rtl"] .feat-more:hover svg { transform: scaleX(-1) translateX(4px); }
html[dir="rtl"] .shot-tilt { transform: rotateY(14deg) rotateX(5deg) rotateZ(-1deg) scale(1.05); transform-origin: 80% 50%; }
html[dir="rtl"] .hero-shot:hover .shot-tilt { transform: rotateY(8deg) rotateX(3deg) rotateZ(-.5deg) scale(1.05); }
html[dir="rtl"] .hero-shot { margin-right: 0; margin-left: clamp(-60px, calc((1200px - 100vw) / 2 + 24px), 0px); }
html[dir="rtl"] .theme-glow { right: auto; left: -160px; }
html[dir="rtl"] .feat-tag { right: auto; left: 16px; }
html[dir="rtl"] .faq-q, html[dir="rtl"] .review-item, html[dir="rtl"] .cmp-row > div { text-align: start; }
html[dir="rtl"] .cmp-row > div.us { border-left: 0; border-right: 0.5px solid var(--border2); }
html[dir="rtl"] .nav-badge, html[dir="rtl"] .td-mono, html[dir="rtl"] .dc, html[dir="rtl"] .gal-url, html[dir="rtl"] code { direction: ltr; unicode-bidi: isolate; }
html[dir="rtl"] .dc { text-align: left; }
/* dashboard : le menu passe à droite */
html[dir="rtl"] .sidebar { left: auto; right: 0; border-right: none; border-left: 0.5px solid var(--border); }
html[dir="rtl"] .main { margin-left: 0; margin-right: var(--sidebar, 240px); }
html[dir="rtl"] .nav-item.active, html[dir="rtl"] .nx-grp .nav-item.active { border-radius: 8px; }
html[dir="rtl"] .toast { right: auto; left: 24px; }
@media (max-width: 700px) {
  html[dir="rtl"] .sidebar { transform: translateX(100%); }
  html[dir="rtl"] .sidebar.open { transform: translateX(0); }
  html[dir="rtl"] .main { margin-right: 0; }
}

/* Arabe : pas d'espacement entre les lettres (il casse la liaison des lettres) */
html[lang="ar"] *, html[lang="ar"] *::before, html[lang="ar"] *::after { letter-spacing: 0 !important; }
/* Mécaniques 3D de l'accueil : elles se calculent de gauche à droite, seul le texte passe en RTL */
html[dir="rtl"] .cine-stage, html[dir="rtl"] .slides-track, html[dir="rtl"] .belt-in, html[dir="rtl"] .slides-dots { direction: ltr; }
html[dir="rtl"] .slide figcaption, html[dir="rtl"] .cine-copy, html[dir="rtl"] .cc-bar { direction: rtl; }
