@charset "utf-8";

/* RTL counterpart: layout direction only; page copy is intentionally unchanged. */
html[dir="rtl"],
html[dir="rtl"] body {
    direction: rtl;
    text-align: right;
}

html[dir="rtl"] body,
html[dir="rtl"] button,
html[dir="rtl"] input,
html[dir="rtl"] textarea {
    font-family: "Outfit", sans-serif;
}

/* Keep one consistent type family throughout the RTL site without
   overriding icon-font glyphs. */
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"] p,
html[dir="rtl"] a,
html[dir="rtl"] li,
html[dir="rtl"] span:not([class*="fa"]):not([class*="bi-"]),
html[dir="rtl"] label,
html[dir="rtl"] .font-family-primary,
html[dir="rtl"] .font-family-playfair,
html[dir="rtl"] .font-family-poppins,
html[dir="rtl"] .font-family-nunito,
html[dir="rtl"] .font-family-outfit {
    font-family: "Outfit", sans-serif !important;
}

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

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

html[dir="rtl"] .header .container,
html[dir="rtl"] .header-menu .nav,
html[dir="rtl"] .row,
html[dir="rtl"] footer {
    direction: rtl;
}

html[dir="rtl"] .header-menu .nav .nav-item {
    margin-right: 20px;
    margin-left: 0;
    text-align: right;
}

html[dir="rtl"] .header-menu .nav .nav-item:first-child {
    margin-right: 0;
}

html[dir="rtl"] .header-menu-extra {
    margin-right: 30px;
    margin-left: 0;
}

/* The centered header keeps its menu in the middle. Move the logo from the
   left edge to the far right, immediately before the first RTL menu item. */
@media (min-width: 992px) {
    html[dir="rtl"] .header.center .header-logo {
        margin-right: 0;
        margin-left: auto;
    }
}

html[dir="rtl"] .me-3 {
    margin-right: 0 !important;
    margin-left: 1rem !important;
}

html[dir="rtl"] .service-content ul {
    padding-right: 20px;
    padding-left: 0;
}

html[dir="rtl"] .service-content {
    text-align: right;
}

/* Balanced Arabic type scale: readable body copy, compact cards, and
   headings that scale without colliding at common viewport widths. */
html[dir="rtl"] body {
    font-size: 16px;
    line-height: 1.75;
}

html[dir="rtl"] p,
html[dir="rtl"] li {
    line-height: 1.75;
}

html[dir="rtl"] h1 {
    line-height: 1.25;
}

html[dir="rtl"] h2,
html[dir="rtl"] h3 {
    line-height: 1.35;
}

html[dir="rtl"] .display-1 {
    font-size: clamp(2.5rem, 5vw, 4.25rem) !important;
}

html[dir="rtl"] .display-2 {
    font-size: clamp(2.25rem, 4.5vw, 3.625rem) !important;
}

html[dir="rtl"] .display-4 {
    font-size: clamp(2rem, 3.5vw, 3rem) !important;
}

html[dir="rtl"] .display-5 {
    font-size: clamp(1.875rem, 3vw, 2.5rem) !important;
}

html[dir="rtl"] h1[style*="58px"],
html[dir="rtl"] h1[style*="66px"] {
    font-size: clamp(2.25rem, 4.5vw, 3.625rem) !important;
}

html[dir="rtl"] p[style*="24px"] {
    font-size: clamp(1.125rem, 1.6vw, 1.375rem) !important;
}

html[dir="rtl"] .service-btn {
    font-size: clamp(1rem, 1.35vw, 1.25rem);
    line-height: 1.45;
}

html[dir="rtl"] .service-content {
    font-size: clamp(1rem, 1.2vw, 1.125rem);
    line-height: 1.8;
}

/* Timeline: Arabic labels alternate around the center line. Numbers on even
   rows sit in the left half, aligned toward (but clear of) the center dots. */
@media (min-width: 992px) {
    html[dir="rtl"] .timeline-wrapper .timeline .timeline-date h6 {
        font-size: clamp(1.125rem, 1.6vw, 1.375rem);
        line-height: 1.55;
        margin-top: -5px;
        padding-bottom: 20px;
    }

    html[dir="rtl"] .timeline-wrapper .timeline .timeline-content .numbersOnly {
        direction: ltr;
        font-size: clamp(1.75rem, 2.4vw, 2.25rem);
        line-height: 1;
        margin-top: 0;
        padding-bottom: 20px;
        text-align: left;
    }

    html[dir="rtl"] .timeline-wrapper .timeline:nth-child(even) .timeline-content {
        margin-right: 0;
        margin-left: 0;
        text-align: right;
    }

    html[dir="rtl"] .timeline-wrapper .timeline:nth-child(even) .timeline-content .numbersOnly {
        text-align: right;
    }
}

@media (min-width: 768px) {
    html[dir="rtl"] .offset-md-1 {
        margin-right: 8.33333333%;
        margin-left: 0;
    }
}

@media (min-width: 992px) {
    html[dir="rtl"] .offset-lg-1 {
        margin-right: 8.33333333%;
        margin-left: 0;
    }

    html[dir="rtl"] .offset-lg-2 {
        margin-right: 16.66666667%;
        margin-left: 0;
    }
}

@media (max-width: 991px) {
    html[dir="rtl"] .header-menu .nav .nav-item {
        margin-right: 0;
    }

    html[dir="rtl"] .header-menu-extra {
        right: auto;
        left: 80px;
        margin-right: 0;
    }

    html[dir="rtl"] .header .header-toggle {
        position: absolute;
        top: 50%;
        right: auto;
        left: 20px;
        margin-left: 0;
        transform: translateY(-50%);
    }
}

/* Owl calculates positions left-to-right by default. Keep that geometry for
   the partners carousel while preserving RTL content inside each card. */
html[dir="rtl"] .partners-carousel-rtl {
    direction: ltr;
}

html[dir="rtl"] .partners-carousel-rtl .owl-item {
    direction: rtl;
    text-align: right;
}
