/* language switcher + RTL corrections — added by the i18n build */
.langsw{position:relative;display:inline-block}
.langsw>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:.35rem;
  padding:.5rem .7rem;border:1px solid var(--line);border-radius:.6rem;font-size:.82rem;color:var(--muted);
  background:transparent;transition:color .15s,border-color .15s;user-select:none}
.langsw>summary::-webkit-details-marker{display:none}
.langsw>summary:hover{color:var(--text);border-color:var(--violet,#7c3aed)}
.langsw__cur{white-space:nowrap}
.langsw[open]>summary{color:var(--text)}
.langsw__menu{position:absolute;top:calc(100% + .4rem);inset-inline-end:0;z-index:60;min-width:11rem;
  max-height:19rem;overflow-y:auto;padding:.35rem;border:1px solid var(--line);border-radius:.7rem;
  background:var(--bg-2,#0b0c12);box-shadow:0 18px 40px rgba(0,0,0,.45);display:grid;gap:.05rem}
.langsw__menu a{display:block;padding:.42rem .6rem;border-radius:.4rem;font-size:.84rem;color:var(--muted);text-decoration:none}
.langsw__menu a:hover{background:rgba(124,58,237,.14);color:var(--text)}
.langsw__menu a[aria-current="true"]{color:var(--violet,#a78bfa);font-weight:600}
.langsw-foot{display:flex;flex-wrap:wrap;gap:.15rem .75rem;margin-top:.75rem;font-size:.72rem;line-height:1.7}
.langsw-foot a{color:var(--muted);text-decoration:none;opacity:.75}
.langsw-foot a:hover{opacity:1;color:var(--text)}
.langsw-foot a[aria-current="true"]{opacity:1;color:var(--violet,#a78bfa)}
.langsw-foot--mobile{padding:.5rem 0 .25rem;border-top:1px solid var(--line)}
.langsw-float{position:fixed;inset-block-end:1rem;inset-inline-end:1rem;z-index:80}
.langsw-float .langsw__menu{top:auto;bottom:calc(100% + .4rem)}
.langsw-float>.langsw>summary{background:var(--bg-2,#0b0c12);box-shadow:0 10px 24px rgba(0,0,0,.4)}
nav.nav .in .langsw{margin-inline-start:.5rem;vertical-align:middle}
@media (max-width:860px){.nav__right .langsw{display:none}}

/* ── Arabic / RTL ───────────────────────────────────────────────────────
   The stylesheet is already mostly direction-agnostic (no floats, no
   translateX, no asymmetric radii), so these are targeted corrections. */

/* physical offsets that do exist in ghost.css */
[dir="rtl"] body{text-align:start}
[dir="rtl"] .nav__inner,[dir="rtl"] .foot__bar .wrap{flex-direction:row-reverse}
[dir="rtl"] ul,[dir="rtl"] ol{padding-inline-start:1.15rem;padding-inline-end:0}
[dir="rtl"] blockquote{border-inline-start:2px solid var(--line);border-left:0;padding-inline-start:1rem;padding-left:0}
[dir="rtl"] .langsw__menu{inset-inline-end:auto;inset-inline-start:0}
[dir="rtl"] th,[dir="rtl"] td{text-align:start}

/* Anything whose glyph ORDER carries meaning must stay LTR and be isolated.
   ★★★★☆ rendered RTL reads ☆★★★★ — a 4/5 review displayed as 1/5. */
[dir="rtl"] .cs,[dir="rtl"] .rs,[dir="rtl"] .bigstars,[dir="rtl"] .dl,[dir="rtl"] .dc,
[dir="rtl"] .stat .v,[dir="rtl"] .cv,[dir="rtl"] .votes,
[dir="rtl"] .mono,[dir="rtl"] code,[dir="rtl"] pre,[dir="rtl"] kbd,[dir="rtl"] samp,
[dir="rtl"] .plan__price,[dir="rtl"] .price,[dir="rtl"] time,[dir="rtl"] .badge{
  direction:ltr;unicode-bidi:isolate;text-align:start}
[dir="rtl"] pre,[dir="rtl"] .dist{direction:ltr;unicode-bidi:isolate;display:block}

/* Arabic script is cursive: any non-zero letter-spacing breaks the joins,
   and uppercasing is meaningless. ghost.css sets both on 24 rules. */
:lang(ar) *{letter-spacing:normal !important}
:lang(ar) .kicker,:lang(ar) .micro,:lang(ar) .label,:lang(ar) .pill,:lang(ar) .badge,
:lang(ar) .plan__name,:lang(ar) .stat__label,:lang(ar) .foot__col h4,:lang(ar) .cn,
:lang(ar) .kick,:lang(ar) thead th{text-transform:none}
:lang(ar) .mono,:lang(ar) code,:lang(ar) pre,:lang(ar) kbd{letter-spacing:normal}
:root:lang(ar){--sans:"Noto Sans Arabic","Segoe UI",Tahoma,system-ui,sans-serif}
:lang(ar) body{font-family:var(--sans)}
[dir="rtl"] .btn{white-space:normal}
