/* Arabic pages only. Loaded after site.css and layouts.css, which already use logical properties for the mirroring. */
:root {
  --serif: "Noto Naskh Arabic", "Newsreader", Georgia, serif;
  --sans: "IBM Plex Sans Arabic", "Helvetica Neue", Arial, sans-serif;
}
html { font-synthesis: none; }

/* Arabic letters join, so tracking breaks words apart. No italics either: the script has none, emphasis is colour alone. */
body, body *:not(.brand-word) { letter-spacing: 0 !important; }
i, em, address { font-style: normal; }
.brand-word { direction: ltr; }

/* Arabic reads smaller than Latin at one size and its marks need room above and below the line. */
body { font-size: 17px; line-height: 1.8; }
.hero h1 { font-size: clamp(38px, 5.6vw, 76px); line-height: 1.3; max-width: 17ch; font-weight: 500; }
.hero-lede { font-size: clamp(17px, 1.5vw, 20px); line-height: 1.8; max-width: 62ch; }
.nav a { font-size: 16px; }
.btn { font-size: 15.5px; line-height: 1.3; }
.hero-foot { font-size: 14px; }
.clip-label { font-size: 15px; }
@media (max-width: 600px) { .clip-label { font-size: 13px; letter-spacing: 0; } }

h2, .lb .b-title { line-height: 1.4; font-weight: 500; }
h3, .b-class h3, .b-mandate h3 { line-height: 1.45; font-weight: 500; }
#firm .b-lead, .b-quote { line-height: 1.7; font-weight: 400; }
.b-firm-body p, .b-class .intro, .b-plat-grid p { font-size: clamp(16.5px, 1.25vw, 18px); line-height: 1.9; }
.b-mandate .t, .b-plat-grid li { font-weight: 500; line-height: 1.5; }
.b-mandate .d, .b-plat-grid li span { font-size: 15px; line-height: 1.75; font-weight: 400; }
.b-mandate .n, .b-plat-grid li::before { font-size: 14px; }
.b-class .k, .b-platform .k { font-size: 14.5px; line-height: 1.4; }
.b-map figcaption { font-size: 14px; line-height: 1.9; }
.b-table { font-size: 15.5px; line-height: 1.75; }
.b-table td.num { font-size: 20px; line-height: 1.5; font-weight: 500; }
.b-class .b-sectors li { font-size: clamp(18px, 1.5vw, 21px); line-height: 1.5; font-weight: 400; }
.b-link { font-size: 15.5px; line-height: 1.5; }
.b-note { font-size: 16px; line-height: 1.9; }
.b-note b { font-size: 14px; }
@media (min-width: 1000px) { .b-quote { white-space: normal; } }

/* Footer */
.site-footer { font-size: 14.5px; }
.footer-top nav a { font-size: 15px; }
.footer-locations { font-size: 14.5px; }
.footer-locations b { font-size: 15.5px; }
.footer-locations address { line-height: 1.8; }
.footer-locations address[dir="ltr"] { text-align: right; }
.disclaimer { line-height: 1.9; }

/* Submission form */
.page-head h1 { font-size: clamp(36px, 5vw, 66px); line-height: 1.35; font-weight: 500; }
.page-head p { font-size: 18px; line-height: 1.85; }
.steps li { font-size: 15.5px; }
.aside-note { font-size: 14.5px; line-height: 1.85; }
.fs-title { font-weight: 500; line-height: 1.4; }
.fs-title .num { font-size: 13px; }
.fs-intro { font-size: 16px; }
.f > label, .f > .label { font-size: 15.5px; line-height: 1.5; }
.f .opt, .f .err { font-size: 14px; }
.choice span { font-size: 15px; line-height: 1.5; }
.type .card strong { font-size: 21px; line-height: 1.5; font-weight: 500; }
.type .card span { font-size: 15px; line-height: 1.7; }
.consent { font-size: 14.5px; line-height: 1.85; }
.form-status { font-size: 15px; line-height: 1.7; }
input[type=text], input[type=email], input[type=tel], input[type=url], select, textarea { font-size: 16.5px; line-height: 1.5; }
::placeholder { font-size: .94em; }

/* Email, phone and link fields are typed left to right but stay aligned with their Arabic labels. */
input[dir="ltr"] { text-align: right; }
.phone { direction: ltr; }
.phone input { text-align: left; }
.phone select, [dir="rtl"] .phone select { background-position: right 14px center; padding-inline-end: 34px; padding-inline-start: 10px; }

/* Consent bar and privacy notice */
.cookie-bar { font-size: 15px; line-height: 1.7; }
.cookie-bar button { font-size: 14.5px; }
.legal h2 { font-size: 23px; line-height: 1.5; font-weight: 500; }
.legal p, .legal li { font-size: 16.5px; line-height: 1.95; }
