/* A compact version of the reference's pill and floating options panel. */
.site-language-picker {
    position: relative;
    display: inline-block;
    margin: 0;
    vertical-align: middle;
    color: #242424;
    text-align: start;
    white-space: nowrap;
}
.site-language-picker > .site-language-trigger {
    display: flex;
    align-items: center;
    gap: 8px;
    box-sizing: border-box;
    min-height: 40px;
    padding-block: 6px;
    padding-inline: 6px 10px;
    border: 1px solid #d6d7dc;
    border-radius: 999px;
    color: #242424;
    background: #fff;
    box-shadow: 0 1px 3px rgba(20, 24, 42, .06);
    font-size: 14px;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0;
    list-style: none;
    cursor: pointer;
    user-select: none;
}
.site-language-trigger::-webkit-details-marker { display: none; }
.site-language-trigger::marker { content: ''; }
/* Follow the existing Start project button's rendered height, including font changes. */
.fixed-site-header .site-language-trigger {
    height: var(--header-project-link-height, var(--header-control-height, 28px));
    min-height: 0;
    padding-block: 0;
    font-size: 14px;
    line-height: 1.25;
}
.site-language-picker .site-language-flag {
    display: block;
    flex: 0 0 24px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    box-shadow: 0 1px 4px rgba(20, 24, 42, .18);
    object-fit: cover;
}
.site-language-picker .site-language-name { unicode-bidi: isolate; }
.fixed-site-header .site-language-trigger .site-language-flag {
    flex-basis: 18px;
    width: 18px;
    height: 18px;
}
.site-language-picker .site-language-chevron {
    display: block;
    flex: 0 0 12px;
    margin-inline-start: auto;
    transition: transform .18s ease;
}
.site-language-picker[open] .site-language-chevron { transform: rotate(180deg); }
.site-language-options {
    position: absolute;
    inset-block-start: calc(100% + 8px);
    inset-inline-end: 0;
    z-index: 1020;
    box-sizing: border-box;
    width: max-content;
    padding: 6px;
    border: 1px solid #e5e6eb;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 12px 32px rgba(20, 24, 42, .14);
}
.site-language-picker:not([open]) > .site-language-options { display: none; }
.site-language-picker[open] > .site-language-options { display: grid; }
.fixed-site-header .site-language-option{
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 0;
    padding: 9px 6px;
    border-radius: 7px;
    color: #242424;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0;
    text-align: start;
    text-decoration: none;
}
.site-language-trigger:hover,
.fixed-site-header .site-language-option:hover{ background: #f4f5f8; color: #242424; }
.site-language-trigger:focus-visible,
.site-language-option:focus-visible { outline: 3px solid #5685d2; outline-offset: 3px; }
.header-mobile-language { display: none; }
/* Reserve room for the added language link at the desktop breakpoint. */
@media (min-width: 1024px) and (max-width: 1199px) {
    .fixed-site-header .header-logo { flex: 0 1 250px; min-width: 0; }
    .fixed-site-header .header-nav { flex: 0 0 auto; margin-inline-start: auto; }
    .fixed-site-header #primary-navigation { white-space: nowrap; }
}
@media (max-width: 1023px) {
    .fixed-site-header .header-logo { min-width: 0; }
    .fixed-site-header .header-nav { flex: 0 0 auto; margin-inline-start: auto; }
    .fixed-site-header .nav-wrap { display: flex; align-items: center; gap: 6px; }
    .fixed-site-header #primary-navigation > .nav-language-item { display: none; }
    .header-mobile-language { display: block; }
    .header-mobile-language .site-language-trigger .site-language-name,
    .header-mobile-language .site-language-trigger .site-language-chevron { display: none; }
    .fixed-site-header .nav-wrap > .nav-label,
    .header-mobile-language .site-language-trigger {
        box-sizing: border-box;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 44px;
        height: 44px;
        padding: 10px;
    }
    .header-mobile-language .site-language-trigger {
        border: 0;
        background: transparent;
        box-shadow: none;
    }
    .fixed-site-header .nav-label .hamburger-box {
        display: block;
        width: 24px;
        height: 24px;
    }
    .fixed-site-header .nav-label .hamburger-inner,
    .fixed-site-header .nav-label .hamburger-inner::before,
    .fixed-site-header .nav-label .hamburger-inner::after { width: 24px; }
    .header-mobile-language .site-language-trigger .site-language-flag {
        flex-basis: 24px;
        width: 24px;
        height: 24px;
    }
    .header-mobile-language .site-language-option {
        box-sizing: border-box;
        justify-content: flex-start;
        min-height: 44px;
        padding: 10px;
    }
}
@media (prefers-reduced-motion: reduce) {
    .site-language-chevron { transition: none; }
}

/* Arabic overrides. Load after screen.css, pages.css, selected.css,
   navigation.css, interior.css and interior-editorial.css.
   The Arabic font is loaded by include/header.php. */

html[dir="rtl"] {
    direction: rtl;
    --font-family-primary: 'Cairo', sans-serif;
}

/* The original theme assigns fonts and tracking at many specificity levels. */
html[dir="rtl"] body,
html[dir="rtl"] body * {
    font-family: 'Cairo', sans-serif !important;
    font-optical-sizing: auto;
    font-style: normal;
    font-variation-settings: 'slnt' 0;
    letter-spacing: 0 !important;
    text-transform: none !important;
}
html[dir="rtl"] body *::before,
html[dir="rtl"] body *::after {
    letter-spacing: 0 !important;
    text-transform: none !important;
}
html[dir="rtl"] body {
    text-align: start;
    line-height: 1.8;
    word-break: normal;
    overflow-wrap: break-word;
}
html[dir="rtl"] :is(h1, h2, h3, h4, h5, h6) { line-height: 1.45; }
html[dir="rtl"] :is(p, li, figcaption) { line-height: 1.85; }
html[dir="rtl"] :is(code, pre, kbd, samp) {
    direction: ltr;
    unicode-bidi: isolate;
    text-align: left;
    font-family: Consolas, monospace !important;
}
html[dir="rtl"] :is(a[href^="mailto:"], a[href^="tel:"], [dir="ltr"]) {
    direction: ltr;
    unicode-bidi: isolate;
}
html[dir="rtl"] :is(.global-button, .nav-project-link, .global-tag) {
    line-height: 1.65;
}
html[dir="rtl"] .global-tag { margin: 0 0 1px 2px; }

/* Flex and grid already follow the document direction. Mirror only physical
   offsets; adding row-reverse would undo the natural RTL order. */
html[dir="rtl"] .header-logo { padding: 0 0 0 20px; }
html[dir="rtl"] .header-nav { text-align: end; min-width: 0; }
html[dir="rtl"] .nav-wrap { line-height: 1.65; }
html[dir="rtl"] .nav-link { line-height: 1.65; }
html[dir="rtl"] .nav-dot { right: auto; left: 2px; }
html[dir="rtl"] .fixed-site-header .nav-chevron {
    margin-right: 8px;
    margin-left: 0;
}
html[dir="rtl"] .fixed-site-header :is(.nav-dots-wrap, .services-menu, .service-menu-link) {
    text-align: start;
}
html[dir="rtl"] .fixed-site-header .services-menu .service-menu-link {
    text-align: start;
    line-height: 1.75;
}
html[dir="rtl"] .fixed-site-header .service-menu-description { line-height: 1.8; }
html[dir="rtl"] .blog-description {
    left: auto;
    right: 0;
    transform-origin: 100% 50%;
    transform: rotate(90deg) translate(50%, 50%);
}

/* Search enters from the reading direction's opposite edge. The photograph
   moves with the panel and is never reflected. */
html[dir="rtl"] .section-search,
html[dir="rtl"] .search-image { transform: translateX(-100%); }
html[dir="rtl"] .search-opened .section-search,
html[dir="rtl"] .search-opened .search-image { transform: translateX(0); }
html[dir="rtl"] .search-close { right: auto; left: 40px; }
html[dir="rtl"] .search-open svg { margin: 0 5px -4px 0; }
html[dir="rtl"] .search-input {
    direction: rtl;
    text-align: start;
    height: auto;
    min-height: 62px;
    line-height: 1.65;
}
html[dir="rtl"] .search-meta,
html[dir="rtl"] .search-results,
html[dir="rtl"] .search-suggestion,
html[dir="rtl"] .search-footer { text-align: start; }
html[dir="rtl"] .search-meta { font-size: 12px; line-height: 1.8; }
html[dir="rtl"] .search-counter-wrap { margin-left: 0; margin-right: 12px; }
html[dir="rtl"] .search-suggestion-tags { margin-right: 0; margin-left: 50px; }
html[dir="rtl"] .search-suggestion a { margin: 8px 0 1px 5px; line-height: 1.8; }
html[dir="rtl"] .search-results :is(h4, p) { line-height: 1.8; }
html[dir="rtl"] .search-footer{ height: auto; min-height: 70px; padding-bottom: 20px; }

/* Homepage: the copy and visual exchange columns through RTL grid flow. */
html[dir="rtl"] .studio-hero { text-align: start; }
html[dir="rtl"] .studio-hero h1 { line-height: 1.35; }
html[dir="rtl"] .studio-hero .studio-lead { line-height: 1.95; }
html[dir="rtl"] .studio-hero .eyebrow,
html[dir="rtl"] .studio-hero .hero-note { line-height: 1.85; }
html[dir="rtl"] .studio-hero .studio-hero-visual { padding: 0 28px 46px 0; }
html[dir="rtl"] .studio-hero .hero-image-caption { right: auto; left: 22px; line-height: 1.85; }
html[dir="rtl"] .studio-hero .hero-feature { left: auto; right: 0; }
html[dir="rtl"] .studio-hero .hero-feature strong { line-height: 1.5; }
html[dir="rtl"] .studio-hero .hero-feature > span:last-child { line-height: 1.8; }
html[dir="rtl"] .studio-hero :is(.global-button, .text-link) { line-height: 1.7; }
html[dir="rtl"] .item-wrap article { margin: 15px 15px 15px 0; text-align: start; }
html[dir="rtl"] .item-wrap h2 { line-height: 1.55; }
html[dir="rtl"] .item-meta { line-height: 1.85; }
html[dir="rtl"] .primary-tag { margin-left: 0; margin-right: -8px; }

/* Footer columns follow RTL naturally; the centered mobile layout remains. */
html[dir="rtl"] .footer-nav .nav-link { line-height: 1.8; }
html[dir="rtl"] .footer-copyright { line-height: 1.9; }

/* Interior headings retain their scale but gain space for Arabic letterforms. */
html[dir="rtl"] .interior { text-align: start; line-height: 1.9; }
html[dir="rtl"] .interior .interior-hero h1 { line-height: 1.4; max-width: 27ch; }
html[dir="rtl"] .interior .post-wrap :is(h2, h3, h4),
html[dir="rtl"] .interior .v6-page :is(h2, h3){ line-height: 1.5; }
html[dir="rtl"] .interior .post-wrap p,
html[dir="rtl"] .interior .v6-page p,
html[dir="rtl"] .interior .ns-banner-lead { line-height: 1.95; }
html[dir="rtl"] .interior :is(.ns-banner-category, .ns-banner-labels li, .ns-page-label, .v6-kicker) {
    line-height: 1.8;
}
html[dir="rtl"] .interior .v6-page-nav .v6-nav-caption {
    margin-right: 0;
    margin-left: auto;
}
html[dir="rtl"] .interior .v6-page-nav a { line-height: 1.8; }
html[dir="rtl"] .interior .v6-editorial-photo figcaption { right: auto; left: 24px; }
html[dir="rtl"] .interior .v6-flow-list li:not(:last-child)::after { left: auto; right: 17px; }
html[dir="rtl"] .interior :is(.v6-flow-number, .v6-delivery-number) {
    direction: ltr;
    unicode-bidi: isolate;
}
html[dir="rtl"] .interior .v6-delivery-number { text-align: right; }
html[dir="rtl"] .interior .v6-flow-list :is(strong, div > span),
html[dir="rtl"] .interior .v6-workflow figcaption,
html[dir="rtl"] .interior :is(.v6-output strong, .v6-output span, .v6-deliverables li) { line-height: 1.8; }
html[dir="rtl"] .interior .v6-answer { padding: 0 0 25px 44px; }
html[dir="rtl"] .interior .v6-questions summary { line-height: 1.85; }
html[dir="rtl"] .interior :is(.global-button, .v6-button, .v6-text-link) { line-height: 1.8; }

/* Prose lists, tables and form feedback retain native right-side markers. */
html[dir="rtl"] .post-wrap > :is(ul, ol),
html[dir="rtl"] .contact-notice ul {
    margin-left: 0;
    padding-left: 0;
    padding-right: 20px;
}
html[dir="rtl"] :is(th, td) { text-align: start; }
html[dir="rtl"] :is(th, td):first-child { padding-left: 12px; padding-right: 0; }
html[dir="rtl"] :is(th, td):last-child { padding-left: 0; padding-right: 12px; }
html[dir="rtl"] blockquote {
    margin-left: 0;
    margin-right: -35px;
    border-left: 0;
    border-right: 5px solid var(--color-elements-one);
}
html[dir="rtl"] dl dt { float: right; clear: right; text-align: left; }
html[dir="rtl"] dl dd { margin-left: 0; margin-right: 200px; }

/* Arabic labels stay RTL; entered email addresses and telephone numbers stay
   LTR. Arabic placeholders return to RTL while the field is empty. */
html[dir="rtl"] .contact-field :is(label, select) {
    direction: rtl;
    text-align: start;
    line-height: 1.8;
}
html[dir="rtl"] .contact-notice-error { border-left: 0; border-right: 4px solid var(--color-details); }
html[dir="rtl"] .interior .contact-notice-error { border-right: 3px solid #b91e38; }
html[dir="rtl"] .interior .contact-notice ul { padding-left: 0; padding-right: 20px; }
html[dir="rtl"] .contact-field input:is([type="email"], [type="tel"], [type="url"]),
html[dir="rtl"] input:is([type="email"], [type="tel"], [type="url"]) {
    direction: ltr;
    unicode-bidi: isolate;
    text-align: left;
}
html[dir="rtl"] .contact-field input:is([type="email"], [type="tel"], [type="url"]):placeholder-shown,
html[dir="rtl"] input:is([type="email"], [type="tel"], [type="url"]):placeholder-shown {
    direction: rtl;
    text-align: right;
}

/* These selectors target arrows present in the templates. Check marks,
   disclosure signs, downward chevrons, logos and photos are not reflected. */
html[dir="rtl"] .ns-directional-arrow,
html[dir="rtl"] .studio-hero .global-button > span[aria-hidden="true"],
html[dir="rtl"] .studio-hero .hero-feature-top > span[aria-hidden="true"],
html[dir="rtl"] .interior .v6-icon-arrow{
    display: inline-block;
    transform: scaleX(-1);
}

@media (min-width: 1024px) {
    html[dir="rtl"] .fixed-site-header .nav-project-item { padding-inline: 0 5px; }
    html[dir="rtl"] .fixed-site-header .nav-project-link { padding-inline: 11px 9px; }
    html[dir="rtl"] .fixed-site-header .nav-dots:not(.nav-services) { position: relative; }
    html[dir="rtl"] .fixed-site-header .nav-dots:not(.nav-services) > .nav-dots-wrap {
        top: calc(100% + 16px);
        right: 0;
        left: auto;
        transform: none;
        max-width: calc(100vw - 60px);
    }
    html[dir="rtl"] .fixed-site-header .nav-services > .services-menu {
        left: 0;
        right: auto;
        transform: none;
    }
    html[dir="rtl"] .home-first-screen .studio-hero-visual {
        padding: 0 calc(28 * var(--hero-unit)) calc(46 * var(--hero-unit)) 0;
    }
    html[dir="rtl"] .home-first-screen .hero-image-caption {
        right: auto;
        left: max(12px, calc(22 * var(--hero-unit)));
    }
    html[dir="rtl"] .interior .v6-page:is([data-subject="solutions_data_science"], [data-subject="solutions_cloud_services"]) .v6-flow-list li:not(:last-child)::after {
        left: -18px;
        right: 48px;
    }
}

@media (min-width: 1024px) and (max-width: 1199px) {
    html[dir="rtl"] .nav-wrap .nav-dot { right: auto; left: 0; }
}

@media (max-width: 1023px) {
    html[dir="rtl"] .nav-project-item {
        margin: 15px 10px 0 -4px;
        padding: 0 0 0 5px;
        align-items: flex-start;
    }
    html[dir="rtl"] .search-open span { padding-right: 0; padding-left: 2px; }
    html[dir="rtl"] .studio-hero .hero-image-caption { right: auto; left: 16px; }
}

@media (min-width: 480px) and (max-width: 767px) {
    html[dir="rtl"] .search-close { right: auto; left: 105px; }
}

@media (max-width: 767px) {
    html[dir="rtl"] .studio-hero .studio-hero-visual { padding: 0 20px 40px 0; }
    html[dir="rtl"] .studio-hero h1 { font-size: clamp(38px, 9vw, 68px); line-height: 1.4; }
    html[dir="rtl"] .search-suggestion-tags { margin-left: 0; }
    html[dir="rtl"] .search-input { min-height: 52px; }
    html[dir="rtl"] .interior .v6-answer { padding-left: 0; padding-right: 0; }
    html[dir="rtl"] .interior .v6-editorial-photo figcaption { right: auto; left: auto; }
    html[dir="rtl"] .interior .v6-page:is([data-subject="solutions_data_science"], [data-subject="solutions_cloud_services"]) .v6-flow-list li:not(:last-child)::after {
        right: 17px;
        left: auto;
    }
}

@media (max-width: 479px) {
    html[dir="rtl"] .search-close { right: auto; left: 45px; }
    html[dir="rtl"] .item-wrap article { margin: 0 15px 15px; }
}
