/* ==========================================================================
   Arabic / RTL overrides
   Loaded ONLY when the active locale is right-to-left (see
   resources/views/partials/rtl-assets.blade.php), so the English site never
   downloads or parses any of this.

   The bundled theme (css/clientside/app.min.css) already handles Phosphor
   icon flipping, Select2, DataTables and Slick via its own [dir="rtl"]
   rules , those switch on automatically once <html dir="rtl"> is set. What
   remains, and what lives here, is: the Arabic typeface, direction-aware
   fixes for this app's own components, and a safety net for the many
   hardcoded inline `left:` / `margin-left:` styles in the Blade views.
   ========================================================================== */

/* --- Typography ---------------------------------------------------------- */

html[dir="rtl"],
html[dir="rtl"] body,
html[dir="rtl"] button,
html[dir="rtl"] input,
html[dir="rtl"] select,
html[dir="rtl"] textarea {
    font-family: 'Readex Pro', 'Segoe UI', Tahoma, Arial, sans-serif;
}

/* The theme hardcodes its own font-family directly on these elements
   (h1-h6 -> "Inter", b/strong -> "Inter"), which , being a rule that
   targets the element itself rather than an inherited ancestor value ,
   wins over html[dir="rtl"]'s inherited Readex Pro regardless of selector
   specificity. Every element with its own explicit, non-icon font-family
   needs an explicit override here; inheritance alone can't reach them. */
html[dir="rtl"] h1,
html[dir="rtl"] h2,
html[dir="rtl"] h3,
html[dir="rtl"] h4,
html[dir="rtl"] h5,
html[dir="rtl"] h6,
html[dir="rtl"] .h1,
html[dir="rtl"] .h2,
html[dir="rtl"] .h3,
html[dir="rtl"] .h4,
html[dir="rtl"] .h5,
html[dir="rtl"] .h6,
html[dir="rtl"] b,
html[dir="rtl"] strong {
    font-family: 'Readex Pro', 'Segoe UI', Tahoma, Arial, sans-serif;
}

/* Arabic has no letter-casing and no true small-caps; uppercase transforms
   are a no-op visually but the tracking they ship with makes text look
   loose and broken, so neutralise both. */
html[dir="rtl"] .text-uppercase,
html[dir="rtl"] [style*="text-transform: uppercase"],
html[dir="rtl"] [style*="text-transform:uppercase"] {
    text-transform: none !important;
    letter-spacing: normal !important;
}

/* Arabic glyphs sit taller than Latin; a touch more leading keeps
   diacritics from colliding with the line above. Multi-line body text gets
   the full bump; short single-line labels (buttons, badges, pills) keep a
   tighter value , at 1.85 the extra leading reads as visible empty space
   above/below the text rather than breathing room between lines. */
html[dir="rtl"] p,
html[dir="rtl"] li {
    line-height: 1.85;
}
html[dir="rtl"] .text-14,
html[dir="rtl"] .text-15,
html[dir="rtl"] .text-16 {
    line-height: 1.6;
}

/* --- Direction-neutral numerals ------------------------------------------ */

/* Prices, dates, durations and counts must stay LTR even inside RTL text,
   otherwise "LE1,832.00" renders with the currency on the wrong side. */
html[dir="rtl"] .price,
html[dir="rtl"] .amount,
html[dir="rtl"] time,
html[dir="rtl"] .session-card__meta-value,
html[dir="rtl"] .session-card__timestamp {
    direction: ltr;
    unicode-bidi: embed;
    display: inline-block;
}

/* Readex Pro's ascent/descent metrics differ enough from the Latin fallback
   that plain digits set in it sit visibly higher than an inline-flex
   sibling icon, even though the flex box itself is centered correctly ,
   the glyphs float inside their own line box. Numerals get nothing from
   Arabic typography anyway, so keep them on the Latin stack. */
html[dir="rtl"] [data-wallet-balance],
html[dir="rtl"] .rs-step-badge,
html[dir="rtl"] .mentorship-home-step__num {
    font-family: 'Segoe UI', Tahoma, Arial, sans-serif;
    line-height: normal;
}

/* Every Phosphor icon (<i class="ph...">) sitting next to Arabic text ,
   eyebrow badges, course-card level/lesson-count rows, "show details"
   arrows, sort-dropdown carets, and anything else pairing an icon with a
   text node , shows the same optical mismatch: Readex Pro's glyphs render
   visually lower within their own line box than the icon glyph does
   within its, so even though the flex row centers both boxes at an
   identical geometric center (confirmed via getBoundingClientRect — the
   boxes really are centered), the icon reads as sitting noticeably above
   the text next to it. Same ascent/descent mismatch as the numerals
   above, just for running text instead of digits.

   This used to be patched per-wrapper (`span.flex.text-2xl { transform:
   translateY(2px) }`), which only covered icons wrapped in that exact
   span — everything else (bare `<i>` siblings like the show-details arrow
   or the sort caret, which have no such wrapper) stayed broken. Targeting
   the icon element itself instead of a wrapper convention covers every
   occurrence in one rule, and using an em value (rather than a fixed px
   nudge) keeps the correction proportional across the icon's many
   font-sizes (text-2xl badges vs a plain-sized arrow) instead of only
   being tuned for one. */

/*Shutdown due switched to readex pro font*/
/*html[dir="rtl"] i[class^="ph-"],*/
/*html[dir="rtl"] i[class*=" ph-"] {*/
/*    transform: translateY(0.12em);*/
/*}*/

/* Exception 1: an icon that's the ONLY content of a circular badge (the
   header search-trigger's magnifying glass, the student/mentor dashboard's
   mobile hamburger toggle, the homepage mentorship section's benefit
   icons, and the same pattern anywhere else on the site) has no adjacent
   text to optically align against — the badge centers it by flex alone,
   correctly, and the nudge above (tuned for icon-next-to-Arabic-text
   pairs) only pushes it *off* that already-correct center instead of
   fixing anything. .dashboard-menu-toggle and .mentorship-home-benefit-icon
   are listed explicitly alongside .rounded-circle since they draw their
   own circle via a plain border-radius:50% in the page's own <style>
   block rather than carrying that utility class — and at
   .mentorship-home-benefit-icon's much larger 40px icon size, the nudge's
   em-based offset (~4.8px here) is large enough to be immediately obvious,
   not just a subtle few-pixel drift. */
html[dir="rtl"] .rounded-circle > i:only-child,
html[dir="rtl"] .dashboard-menu-toggle > i:only-child,
html[dir="rtl"] .mentorship-home-benefit-icon > i:only-child {
    transform: none;
}

/* Exception 2: the header/mobile-menu sign-in button (icon then text in
   DOM order) requests keeping its icon on the physical left rather than
   letting it mirror to the "logical start" (physical right) side RTL
   would otherwise put a first-in-DOM flex child on — a deliberate
   deviation from strict logical mirroring for this specific button.
   `order` moves it past the text in flex order without touching markup;
   under RTL that visually lands it on the left (the last item in a row
   sits at the "end", which is the physical left in RTL).

   Its icon+text pair is also much smaller (15px icon, ~13px text — a
   compact pill button, not a text-2xl badge or body-text row) than every
   context the 0.12em nudge above was tuned against, and at this size
   0.12em (~1.8px) undershoots badly — verified by testing several
   offsets live against this specific button; 0 (i.e. no additional nudge
   beyond the mirror flip) was the closest match. Rather than stretch one
   em-based formula across every icon size on the site, this pattern gets
   its own value.

   Selector is deliberately more specific than both the base rule above
   and the `i.rtl-mirror` rule below (this icon carries that class too) —
   equal specificity would leave the winner decided by source order alone,
   which is exactly the kind of silent breakage a file reorganisation
   could cause. */
html[dir="rtl"] a.btn-signin-custom i.rtl-mirror {
    order: 1;
    transform: scaleX(-1) translateY(0);
}

/* The theme's own base stylesheet sets a plain, unlayered `a { display:
   inline-block }` — and per the CSS cascade-layers spec, ANY unlayered rule
   beats ANY rule inside @layer (which is where Tailwind's own utilities,
   including .flex, are compiled to), regardless of specificity. So every
   `<a class="flex items-center ...">` on the site — a very common
   icon+text link pattern ("Show Details →", "Show more courses ↓", and
   more like them) — silently falls back to normal inline flow instead of
   the flex-centered row the class list asks for, icon and text aligned by
   plain text baseline instead. <button> isn't affected (the theme has no
   competing unlayered rule for it), which is why some icon+text pairs on
   the same pages look fine and others don't.
   This was never actually RTL-specific — English has the exact same
   broken display value — but it only reads as *visibly* broken in Arabic:
   Readex Pro's own baseline sits low enough relative to the Phosphor icon's
   that the plain-inline-flow baseline gap becomes obvious, where Inter's
   metrics happened to keep it close enough to unnoticed. Scoped to RTL
   here rather than fixing it unconditionally so this doesn't touch
   anything in the English site that nobody has actually reported. */
html[dir="rtl"] a.flex.items-center {
    display: inline-flex !important;
    align-items: center !important;
}

/* --- Layout mirroring ---------------------------------------------------- */

/* The numbered "Find Your Mentor" steps (homepage) lay the badge and its
   text out as a row that correctly reverses under RTL — the badge ends up
   on the right — but the dashed connector between badges is a ::before
   pinned at a physical `left`, so it stayed on the left, completely
   detached from the badges it's supposed to link. The store page's step
   row uses a different (text-align: center) layout that isn't affected by
   this — only this component needs the mirror. */
html[dir="rtl"] .mentorship-home-step::before {
    left: auto;
    right: 23px;
}

/* Store page "How It Works" step connectors: each dashed line is drawn as
   `left: 50%+55px; width: 100%-110px` on the step BEFORE it in the
   sequence, extending physically rightward to meet the next step's circle
   — correct only in LTR, where "next" is to the right. RTL keeps the same
   DOM order (1,2,3,4) but flexbox/grid reversal renders it right-to-left,
   so "next" is now to the physical left while the connector still reaches
   right: step 1's line dangles into empty space past its own circle
   (nothing is there), and the 3-to-4 gap — the one pair whose connector
   would need to reach further left than any of the others — never gets
   drawn at all, since $loop->last skips a connector on step 4 assuming
   (LTR-only) that the last step needs nothing further past it. */
html[dir="rtl"] .rs-step-connector {
    left: auto;
    right: calc(50% + 55px);
}

/* Same bug, two more independent implementations of the identical
   "numbered steps + connecting line" pattern — the mentor application
   page's account/profile/documents stepper and the mentor package
   booking wizard's 5-step indicator (size/schedule/time/review/payment).
   Both draw their connector the same way as the store page above (a
   pseudo-element or sibling div anchored at `left: 50%`, extending
   `width: 100%` toward what's assumed to be the next step immediately to
   the right) and break identically under RTL: confirmed live on the
   booking wizard — with the fix not yet applied, step 1's line visibly
   overshot past its own circle into empty space, since step 1 sits at
   the *rightmost* position under RTL's flex reversal and nothing is
   there to reach. Flipping the anchor from left to right, same technique
   as .rs-step-connector, makes every connector reach toward the correct
   physically-next circle instead. */
html[dir="rtl"] .mentor-stepper__line {
    left: auto;
    right: 50%;
}

html[dir="rtl"] .wizard-indicator__step:not(:last-child)::after {
    left: auto;
    right: 50%;
}

/* Bundle card buttons ("Buy Now" / share icon): centered by symmetric
   14px/14px padding around a 24px line-height, not flexbox — that math
   centers the LINE BOX exactly, but Readex Pro's glyphs sit visually higher
   within their own line box than the Latin fallback (same ascent/descent
   mismatch as the eyebrow icons and numerals elsewhere in this file), so
   both the button label and the icon read as pushed toward the top with
   extra empty space below. Shifting 2px from top to bottom padding (same
   52px total height) moves the line box down to match. */
html[dir="rtl"] .mg-card-btn {
    padding-top: 16px;
    padding-bottom: 12px;
}

/* Bundle card corner ribbon ("Active"/"Pending"): a diagonal banner pinned
   to the top-right corner, rotated across it. Mirroring it to the top-left
   keeps the same "ribbon draped across a corner" look instead of the same
   45° slant now sitting oddly in a layout that reads the other way. */
html[dir="rtl"] .mg-card-label {
    right: auto;
    left: -35px;
    transform: rotate(-45deg);
}

html[dir="rtl"] .text-start { text-align: right !important; }
html[dir="rtl"] .text-end   { text-align: left  !important; }

/* The dashboard sidebars are positioned with explicit left/right offsets in
   several places; flip the whole flex row instead of chasing each rule.
   (One shared class, .student-dashboard-sidebar — the mentor portal's own
   off-canvas menu reuses it too, see mentor/components/sidebar.blade.php.) */
html[dir="rtl"] .student-dashboard-sidebar {
    direction: rtl;
    text-align: right;
}

/* This off-canvas menu docks correctly on the right in RTL (inset-inline-start
   auto-flips), but its closed state's hide-transform is a hardcoded physical
   translateX(-100%) — a leftward shift that assumes the LTR default of
   docking, and hiding toward, the left edge. From a right-docked position
   that same leftward shift moves the panel INTO view instead of past the
   right edge, so the menu rendered fully open on every page load instead of
   hidden. :not(.active) keeps this from fighting the open state, which sets
   this same custom property to 0 at higher specificity. */
@media (max-width: 1200px) {
    html[dir="rtl"] .student-dashboard-sidebar:not(.active) {
        --tw-translate-x: 100%;
    }
}

/* The theme hardcodes the mobile off-canvas menu's own direction to ltr
   regardless of page locale, which breaks the whole subtree's automatic
   flex/text-align mirroring (icons stay left-of-label, text stays
   left-aligned) even though <html> is correctly rtl. */
html[dir="rtl"] .mobile-menu {
    direction: rtl;
}

/* Badges/pills pinned with ms-auto stay on the correct edge automatically,
   but anything pinned with an explicit inline `left:` needs mirroring. */
html[dir="rtl"] .badge-pill.ms-auto {
    margin-inline-start: auto;
    margin-inline-end: 0;
}

/* --- Component-specific ------------------------------------------------- */

/* Store page stat row (icon + value/label pair): the label column has a
   hardcoded text-align:left in the page's own <style> block, so the number
   and its caption stay left-aligned inside a centered flex row even once
   everything else on the page has mirrored. */
html[dir="rtl"] .rs-stat {
    text-align: right;
}

/* Mentorship session cards: the action rail sits on the right in LTR, so it
   belongs on the left in RTL. Grid column order is what actually moves it. */
html[dir="rtl"] .session-card__body {
    direction: rtl;
}
html[dir="rtl"] .session-card__status,
html[dir="rtl"] .session-card__meta,
html[dir="rtl"] .session-card__chips {
    direction: rtl;
}

/* Reason/feedback panels use a left accent border in LTR. */
html[dir="rtl"] .mentor-reason-card,
html[dir="rtl"] .session-card__info {
    text-align: right;
}

/* The mentor application stepper draws its connector line to the right of
   each step; in RTL the sequence runs the other way. */
html[dir="rtl"] .mentor-stepper__line {
    left: auto;
    right: 50%;
}

/* Upload dropzones and their filename text. */
html[dir="rtl"] .mentor-upload__box,
html[dir="rtl"] .mentor-upload__filename {
    text-align: center;
}

/* --- Forms --------------------------------------------------------------- */

html[dir="rtl"] .common-input,
html[dir="rtl"] .form-control {
    text-align: right;
}

/* Inputs that hold Latin-only data (email, URLs, slugs, phone, passwords)
   must stay LTR even on an Arabic page — this is why usernames/slugs being
   Latin-only matters. direction:ltr is what that requires; text-align is a
   separate concern and was wrongly copied along with it as "left" to
   match, which put every Arabic PLACEHOLDER in these fields (e.g. "أدخل
   البريد الإلكتروني") flush against the field's left edge with a large
   empty gap on the right — backwards for a reader scanning right-to-left,
   who expects the field's content to start at the right edge same as
   every other field on the page. text-align:right keeps that expectation
   for the empty/placeholder state while direction:ltr still makes actual
   typed input (an email address, a phone number) flow left-to-right
   character-by-character as the user types — the two properties don't
   conflict; text-align just anchors *where* that LTR run sits when it
   doesn't fill the whole field. */
html[dir="rtl"] input[type="email"],
html[dir="rtl"] input[type="url"],
html[dir="rtl"] input[type="tel"],
html[dir="rtl"] input[type="password"],
html[dir="rtl"] input[name="slug"] {
    direction: ltr;
    text-align: right;
}

/* Icons absolutely positioned inside inputs (search, etc.). */
html[dir="rtl"] .search-form .ph-magnifying-glass {
    left: auto;
    right: 20px;
}

/* Newsletter footer form: the email input is forced LTR above (it holds
   Latin-only data), which also flips its own logical ps-24/pe-48 padding
   to match — the 48px gutter reserved for the send button lands on the
   physical right. The button itself is a separate element though, still
   positioned by the page's RTL direction via inset-inline-end-0/me-8,
   which puts it on the physical LEFT — directly on top of where the
   email placeholder starts, covering the first couple characters. This
   isn't a mirroring choice to reverse (unlike the search-trigger's own
   circular button, whose input holds Arabic-capable query text); the
   whole widget reads as an LTR flow because its content is, so the
   button is pinned to the same physical right side its input already
   reserves for it, instead of following the page's general RTL mirror. */
html[dir="rtl"] .newsletter-subscription-form button[type="submit"] {
    inset-inline-end: auto;
    left: auto;
    right: 8px;
}

/* Password show/hide toggle (sign-in, sign-up, reset-password): same bug
   as the newsletter button. input[type=password] is forced LTR above, so
   the dots start from the physical left, but .toggle-password is a
   sibling still positioned by the page's RTL direction via
   inset-inline-end-0, which also resolves to the physical left — right on
   top of the first few dots instead of at the far end of the field. Pin
   it to the right, matching the LTR page's own icon-at-the-end position. */
html[dir="rtl"] .toggle-password {
    inset-inline-end: auto;
    left: auto;
    right: 16px;
}

/* The field's own pe-44 (padding-inline-end: 44px) is what actually reserves
   the icon's clearance — but "inline-end" flips to the physical LEFT in
   RTL, the opposite side from where the icon above was just pinned back to
   the physical right. That leaves the right side with only the input's
   base 24px padding, plenty for a few dots but not full revealed password
   text, which is right-aligned (see input[type=password] above) and so
   renders flush against that same 24px — close enough to the icon's own
   16px-from-edge position that the two overlap. Only visible once the
   password is actually revealed (dots are narrow enough to clear 24px;
   typed text mostly isn't), which is why this went unnoticed until someone
   actually clicked the eye. Swapping which physical side gets the 44px
   fixes the clearance; :has() (not input[type="password"]) is what makes
   this survive the reveal toggle, since that JS swaps the input's type
   attribute to "text" — a plain type selector would stop matching and the
   overlap would return the moment the field is revealed. */
html[dir="rtl"] .relative:has(> .toggle-password) input {
    padding-right: 44px !important;
    padding-left: 24px !important;
}

/* Homepage "Asking for team training?" form (create-training-request-form
   .blade.php): its email field is forced LTR above, flipping its own
   ps-60 padding to a physical left gutter — while the round icon badge is
   a sibling <span>, unaffected by that (direction:ltr is only set on the
   <input> itself), so it keeps its natural, unforced RTL position via
   inset-inline-start-0, which resolves to the physical right. Left
   gutter, right icon: the two no longer line up, so either the text
   overlaps the icon or (previously) the icon got pinned left to match the
   gutter — which then broke consistency with this form's other three
   fields (name/position/company: plain text inputs, no forced direction,
   icon naturally on the right) by putting only the email icon on the
   opposite side from all the others.

   Matching the icon to the other three instead — moving the *input's*
   reserved gutter to the right instead of moving the icon to the left —
   keeps every icon in the form on the same side. */
html[dir="rtl"] input[type="email"].ps-60 {
    padding-left: 16px;
    padding-right: 60px;
}

/* Global search modal's icon sits inside a `.search-form` wrapper, the same
   class the header's small search-trigger uses — so the trigger-specific
   `.search-form .ph-magnifying-glass { right: 20px }` rule above (needed
   there) leaks into the modal too, stacking on top of this icon's own
   ms-20 margin (20px) for a combined 28px inset. With the input's 48px
   start padding, that left only a ~0px gap before the placeholder text —
   visually flush, not "too close," touching. Restoring right:0 here makes
   the modal icon rely on its ms-20 margin alone, mirroring the LTR
   left:0 + ms-20 exactly (8px clearance to the text on both sides). */
html[dir="rtl"] #global-search-portal .ph-magnifying-glass {
    right: 0;
}


/* The auth pages' illustration (sign in / sign up / forgot password) is
   drawn pointing left, deliberately toward the form column sitting to its
   left in LTR. The row itself already mirrors correctly under RTL (form and
   image swap sides via inherited direction), but the character doesn't —
   it just keeps pointing left, now away from the form instead of at it. */
html[dir="rtl"] .account-img img {
    transform: scaleX(-1);
}

/* Header search-trigger's embedded icon button (.minus-42-ml): it's
   absolutely positioned and pinned to inset-inline-end:0, so its final
   physical position is solved from margin-inline-start (this becomes the
   free/auto side of the box-model equation) — meaning a MORE negative
   value here pushes the button further *inward*, away from the edge, not
   toward it. -42px (tuned for LTR's own end padding) under-shoots by ~22px
   in RTL, measured live via getBoundingClientRect against the pill's own
   curved edge; -30px reproduces the same ~6px overlap the LTR side gets
   for free, so the button nests into the curve instead of leaving a
   sliver of pill background visible beside it. */
html[dir="rtl"] .search-form .minus-42-ml {
    margin-inline-start: -42px !important;
}

/* The header search-trigger's form has flex-shrink:1 with no minimum, so
   it competes for space against the nav links and the sign-in button —
   Arabic's longer nav labels ("الإرشاد", "الرئيسية", the categories
   dropdown) leave it far less room than English's shorter ones, shrinking
   it from ~330px down to ~220px. The icon button and placeholder text end
   up crammed toward opposite ends of a visibly narrower pill, reading as
   broken/lopsided even though the same relative embedding math applies in
   both languages. Giving it a floor keeps the two languages' search bars
   visually comparable.

   Scoped to the same xl (1200px+) breakpoint as the search-trigger's own
   input (.common-input is `hidden xl:block`) — below that, the form
   renders as just the 36px icon button, nothing to give a floor to. Without
   this scope the 300px floor applied everywhere, including the student and
   mentor dashboard headers' mobile widths, forcing 300px of space for a
   36px button and crushing the language switcher and "Home" link beside it
   into unreadable, character-per-line vertical slivers. */
@media (min-width: 1200px) {
    html[dir="rtl"] .search-form {
        min-width: 300px;
    }
}

/* The theme flips a fixed short list of Phosphor icons (arrow-right/left,
   caret-left/right, arrow-up-right) by swapping their glyph via ::before
   content — anything outside that list (e.g. the "back to home" u-turn
   arrow) needs a manual mirror. Opt in per-icon with .rtl-mirror rather
   than flipping every directional glyph, since some (caret-down, the
   circular "switch view" arrows) are already direction-neutral.

   Selector is `i.rtl-mirror`, not just `.rtl-mirror`: every use of this
   class in the codebase is on an `<i>` icon, and the generic Phosphor
   vertical-alignment rule above (`i[class*=" ph-"]`) matches the same
   elements with equal specificity except for that extra type selector —
   without it, source order alone would let this rule's `transform` win,
   but only by accident, and any file reorganisation could silently flip
   that and drop the mirror. Both effects are combined into one
   declaration (rather than relying on cascade order between two separate
   rules) since `transform` doesn't merge across rules — whichever rule
   wins sets the whole property, so a mirrored icon needs its flip and
   its optical-centering nudge written together here. */
html[dir="rtl"] i.rtl-mirror {
    display: inline-block;
    transform: scaleX(-1) translateY(0.12em);
}

/* Bootstrap's dropdown-menu inherits the theme's global `text-align: left`
   instead of picking up the page direction, so menu items stay left-aligned
   even once the toggle button and its label have mirrored correctly. */
html[dir="rtl"] .dropdown-menu {
    text-align: right;
}

/* .form-select's RTL rule (shipped by the theme) moves the caret glyph to
   the left but leaves the LTR padding in place — 2.25rem was reserved on
   the right for the caret, 0.75rem on the left. With the caret now on the
   left that's inverted: the caret crowds the text and the right side sits
   oddly empty. */
html[dir="rtl"] .form-select {
    padding-right: 0.75rem;
    padding-left: 2.25rem;
}

/* --- Utilities ----------------------------------------------------------- */

/* Opt-out hook: add .force-ltr to any element whose content must not be
   mirrored (code blocks, video embeds, Bunny player, charts). */
html[dir="rtl"] .force-ltr {
    direction: ltr;
    text-align: left;
}

html[dir="rtl"] .bunny-player-wrapper,
html[dir="rtl"] pre,
html[dir="rtl"] code {
    direction: ltr;
    text-align: left;
}
html[dir="rtl"] input#global-search-input {
    padding-top: 24px;
}
html[dir="rtl"] .bundle-hero-title{
    direction: rtl;
    unicode-bidi: plaintext;
    text-align: right;
}
html[dir="rtl"] .breadcrumb__list  {
    align-items: baseline !important;
}

html[dir="rtl"] .breadcrumb__list li:nth-child(1) .breadcrumb__link {
    align-items: baseline !important;
}
html[dir="rtl"] .mentorship-home-tech__item {
    align-items: baseline !important;
}
html[dir="rtl"] img.banner-thumb__img.rounded-12 {
    transform: rotateY(180deg);
}

html[dir="rtl"] .translation-beta-modal__cta{
    align-items: baseline;
}

html[dir="rtl"] .mb-8.d-flex.align-items-center.gap-8 {
    align-items: baseline !important;
}
html[dir="rtl"] .btn i[class^="ph-"] , html[dir="rtl"] span i[class^="ph-"] {
    transform: translateY(0) !important;
}

.translation-beta-modal {
    position: relative;
    overflow-y: hidden !important;
}
.translation-beta-modal__inner:before {
    content:'';
    width: 100%;
    height: 100vh;
    background: url('../images/banner-translate.png');
    position: absolute;
    right: -120px;
    top: -266px;
    z-index: -1;
    opacity: 0.2;

}
html[dir="rtl"] .rtl__fix_translate_y {
    transform: translateY(0) !important;
}
