/* Shared bidirectional foundation. Keep this file byte-identical across all websites. */

html[dir='ltr'] { direction: ltr; }
html[dir='rtl'] { direction: rtl; }

body { text-align: start; }

:where(bdi, code, kbd, samp, .bidi-isolate, [data-bidi-isolate]) {
  unicode-bidi: isolate;
}

:where(.bidi-ltr, [data-bidi='ltr']) {
  direction: ltr;
  unicode-bidi: isolate;
}

:where(.bidi-rtl, [data-bidi='rtl']) {
  direction: rtl;
  unicode-bidi: isolate;
}

/* Brand spelling, addresses, and store-style numeric prices keep their own order. */
:where(.nav-logo, .footer-logo, .app-name) {
  direction: ltr;
  unicode-bidi: isolate;
}

:where(a[href^='mailto:'], .contact-email, .support-email, input[type='email'], input[type='url'], input[type='tel']) {
  direction: ltr;
  unicode-bidi: isolate;
  text-align: start;
}

:where(.pricing-price, .section-num, .manifesto-num) {
  unicode-bidi: isolate;
}

/* Screenshot rails are mechanical sequences, not prose. Page direction must not reverse their DOM order. */
:where([data-slider], [data-slider-track]) {
  unicode-bidi: isolate;
}

[data-slider-track] { direction: ltr; }

/* Directional glyphs opt in; logos, screenshots, and decorative art are never mirrored wholesale. */
.bidi-icon {
  display: inline-block;
  direction: ltr;
  unicode-bidi: isolate;
}

[dir='rtl'] .bidi-icon[data-bidi-mirror] { transform: scaleX(-1); }

.doc-back::before {
  content: '\2190';
  display: inline-block;
  margin-inline-end: 0.45em;
  direction: ltr;
  unicode-bidi: isolate;
}

[dir='rtl'] .doc-back::before { content: '\2192'; }

.summary-link::after {
  content: '\2192';
  display: inline-block;
  margin-inline-start: 0.45em;
  direction: ltr;
  unicode-bidi: isolate;
}

[dir='rtl'] .summary-link::after { content: '\2190'; }
