.elementor-kit-5{--e-global-color-primary:#195B7D;--e-global-color-secondary:#0098CE;--e-global-color-text:#333333;--e-global-color-accent:#4E284F;--e-global-color-tbhblue:#0098CE;--e-global-color-tbhplum:#4E284F;--e-global-color-tbhteal:#195B7D;--e-global-color-tbhsand:#FFF7E7;--e-global-color-tbhmist:#F3F7F9;--e-global-color-tbhline:#E2E8EC;--e-global-color-tbhmuted:#626C74;--e-global-color-tbhink:#333333;--e-global-color-tbhfooter:#2D7497;--e-global-color-tbhfootertext:#D7E6EE;--e-global-color-tbhwhite:#FFFFFF;--e-global-color-tbhfootermuted:#9FC4D8;--e-global-typography-primary-font-family:"IBM Plex Sans";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"IBM Plex Sans";--e-global-typography-secondary-font-weight:500;--e-global-typography-text-font-family:"IBM Plex Sans";--e-global-typography-text-font-size:16.5px;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.65em;--e-global-typography-accent-font-family:"IBM Plex Sans";--e-global-typography-accent-font-weight:500;--e-global-typography-tbhdisplay-font-family:"IBM Plex Sans";--e-global-typography-tbhdisplay-font-size:42px;--e-global-typography-tbhdisplay-font-weight:600;--e-global-typography-tbhdisplay-line-height:1.15em;--e-global-typography-tbhdisplay-letter-spacing:-0.6px;--e-global-typography-tbhh2-font-family:"IBM Plex Sans";--e-global-typography-tbhh2-font-size:22.5px;--e-global-typography-tbhh2-font-weight:600;--e-global-typography-tbhh2-line-height:1.25em;--e-global-typography-tbhh2-letter-spacing:-0.34px;--e-global-typography-tbhh3-font-family:"IBM Plex Sans";--e-global-typography-tbhh3-font-size:19px;--e-global-typography-tbhh3-font-weight:600;--e-global-typography-tbhh3-line-height:1.35em;--e-global-typography-tbhlead-font-family:"IBM Plex Sans";--e-global-typography-tbhlead-font-size:18px;--e-global-typography-tbhlead-font-weight:400;--e-global-typography-tbhlead-line-height:1.7em;--e-global-typography-tbhmeta-font-family:"IBM Plex Sans";--e-global-typography-tbhmeta-font-size:15px;--e-global-typography-tbhmeta-font-weight:500;--e-global-typography-tbhui-font-family:"IBM Plex Sans";--e-global-typography-tbhui-font-size:15px;--e-global-typography-tbhui-font-weight:500;--e-global-typography-tbhrx300-font-family:"Readex Pro";--e-global-typography-tbhrx300-font-weight:300;--e-global-typography-tbhrx500-font-family:"Readex Pro";--e-global-typography-tbhrx500-font-weight:500;--e-global-typography-tbhrx700-font-family:"Readex Pro";--e-global-typography-tbhrx700-font-weight:700;color:var( --e-global-color-tbhink );font-family:"IBM Plex Sans", "Readex Pro", "IBM Plex Sans", Tahoma, sans-serif;font-size:16.5px;font-weight:400;line-height:1.65em;}.elementor-kit-5 button,.elementor-kit-5 input[type="button"],.elementor-kit-5 input[type="submit"],.elementor-kit-5 .elementor-button{background-color:var( --e-global-color-tbhblue );font-family:"IBM Plex Sans", "Readex Pro", "IBM Plex Sans", Tahoma, sans-serif;font-size:15px;font-weight:600;color:var( --e-global-color-tbhwhite );border-radius:0px 0px 0px 0px;padding:14px 24px 14px 24px;}.elementor-kit-5 button:hover,.elementor-kit-5 button:focus,.elementor-kit-5 input[type="button"]:hover,.elementor-kit-5 input[type="button"]:focus,.elementor-kit-5 input[type="submit"]:hover,.elementor-kit-5 input[type="submit"]:focus,.elementor-kit-5 .elementor-button:hover,.elementor-kit-5 .elementor-button:focus{background-color:var( --e-global-color-tbhwhite );color:var( --e-global-color-tbhteal );}.elementor-kit-5 e-page-transition{background-color:#FFBC7D;}.elementor-kit-5 a{color:var( --e-global-color-tbhteal );}.elementor-kit-5 a:hover{color:var( --e-global-color-tbhblue );}.elementor-kit-5 h1{color:var( --e-global-color-tbhteal );font-family:"IBM Plex Sans", "Readex Pro", "IBM Plex Sans", Tahoma, sans-serif;font-size:42px;font-weight:600;line-height:1.15em;letter-spacing:-0.6px;}.elementor-kit-5 h2{color:var( --e-global-color-tbhteal );font-family:"IBM Plex Sans", "Readex Pro", "IBM Plex Sans", Tahoma, sans-serif;font-size:22.5px;font-weight:600;line-height:1.25em;letter-spacing:-0.34px;}.elementor-kit-5 h3{color:var( --e-global-color-tbhteal );font-family:"IBM Plex Sans", "Readex Pro", "IBM Plex Sans", Tahoma, sans-serif;font-size:19px;font-weight:600;line-height:1.35em;letter-spacing:-0.3px;}.elementor-kit-5 h4{color:var( --e-global-color-tbhteal );font-family:"IBM Plex Sans", "Readex Pro", "IBM Plex Sans", Tahoma, sans-serif;font-size:15px;font-weight:600;line-height:1.4em;letter-spacing:0px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1200px;}.e-con{--container-max-width:1200px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:0px;}.elementor-element{--widgets-spacing:0px 0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-kit-5 h1{font-size:30px;}.elementor-kit-5 h2{font-size:20px;}.elementor-kit-5 h3{font-size:19px;}.elementor-kit-5 h4{font-size:15px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-5 h1{font-size:26px;}.elementor-kit-5 h2{font-size:18px;}.elementor-kit-5 h3{font-size:18px;}.elementor-kit-5 h4{font-size:15px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* ===== 00-base : start ===== */
/* ==========================================================================
   READ ME FIRST - Site Settings > Custom CSS
   This box only holds the few things Elementor's panels cannot do (cut corners, fade masks, line limits, hiding empty blocks,
   Arabic/English mirroring, sticky/scroll behaviour). It is split into blocks by area, each with a plain-language note:
   00 base | 10 header | 20 footer | 30 shapes | 40 home | 50 contact | 60 publications | 70 projects | 80 news | 85 people+about | 90 general.
   Colours, fonts, sizes, spacing, images and backgrounds are NOT here: change them in Elementor (widget Style tab, Site Settings).
   Safe rule: change a number inside a block only if you know what it does; never delete a block.
   ========================================================================== */

/* BASE: fonts and colour names for the custom rules in this box.
   - The English font and the text/heading/button sizes and colours are set in Site Settings > Typography / Global Colors (not here).
   - Arabic pages use Readex Pro (free, SIL Open Font License; Light / Medium / Bold, registered in Elementor Pro > Custom Fonts); Elementor cannot choose a font per language, so those rules live here.
   - The colour names below (--tbh-blue ...) simply point at your Global Colors, so when you change a Global Color in Site Settings the
     rules in this box follow automatically. */
body {
  --tbh-blue: var(--e-global-color-tbhblue); --tbh-plum: var(--e-global-color-tbhplum); --tbh-teal: var(--e-global-color-tbhteal);
  --tbh-sand: var(--e-global-color-tbhsand); --tbh-mist: var(--e-global-color-tbhmist); --tbh-line: var(--e-global-color-tbhline);
  --tbh-muted: var(--e-global-color-tbhmuted); --tbh-ink: var(--e-global-color-tbhink);
}
body { font-family: var(--tbh-font-en); color: var(--tbh-ink); }
/* ARABIC FONTS (21 Oct 2026): Readex Pro, a free font (SIL Open Font License) chosen as the closest free match to the brand font GE SS Two.
   It is registered in Elementor Pro > Custom Fonts (self-hosted file, Light 300 / Medium 500 / Bold 700) and used on Arabic pages only.
   English stays IBM Plex Sans (Site Settings > Typography). The file holds the Arabic letters; Latin letters and Latin digits inside
   Arabic text come from IBM Plex Sans automatically, and Arabic-Indic digits typed in the text come from Readex Pro.
     Light 300  = body text: paragraphs, excerpts, descriptions, form text, footer text, card text
     Medium 500 = small headings (h3-h6), card and publication titles, labels, buttons, the main menu, the side category lists
     Bold 700   = large headings: h1, h2, page titles, hero titles
   "!important" is needed because Elementor writes its own weight on every widget. To move a group to another weight change the number
   in that group (only 300 / 500 / 700 exist as files). The three Global Fonts "Arabic ..." in Site Settings > Global Fonts make Elementor load the font file.
   GE SS Two (commercial) is switched off: it can be re-enabled only after a web licence is purchased (Custom Fonts > GE SS Two > Publish, then swap the name below). */
body { --tbh-font-ar: "Readex Pro", "IBM Plex Sans", Tahoma, sans-serif; --tbh-font-ar-body: var(--tbh-font-ar); }
html[lang^="ar"] body { font-family: var(--tbh-font-ar); font-weight: 300; }
/* Light 300 - body text */
html[lang^="ar"] .elementor-widget-text-editor:where(:not(.tbh-seclabel, .tbh-pubmeta, .tbh-hubbanner__go, .tbh-evstrip__meta)),
html[lang^="ar"] .elementor-widget-icon-list .elementor-icon-list-text,
html[lang^="ar"] .elementor-widget-theme-post-excerpt,
html[lang^="ar"] .elementor-widget-theme-post-content,
html[lang^="ar"] .elementor-widget-shortcode,
html[lang^="ar"] .elementor-widget-image .widget-image-caption,
html[lang^="ar"] .elementor-widget-form .elementor-field-group,
html[lang^="ar"] .elementor-widget-form .elementor-field-label,
html[lang^="ar"] .elementor-widget-form .elementor-field,
html[lang^="ar"] .elementor-widget-form .elementor-message { font-family: var(--tbh-font-ar) !important; font-weight: 300 !important; }
/* Medium 500 - small headings, labels, buttons, menu, side lists */
html[lang^="ar"] h3, html[lang^="ar"] h4, html[lang^="ar"] h5, html[lang^="ar"] h6,
html[lang^="ar"] .elementor-heading-title,
html[lang^="ar"] .elementor-nav-menu .elementor-item, html[lang^="ar"] .elementor-nav-menu .elementor-sub-item,
html[lang^="ar"] .elementor-nav-menu--dropdown a,
html[lang^="ar"] .elementor-button, html[lang^="ar"] .elementor-form .elementor-button,
html[lang^="ar"] .e-n-accordion-item-title-text,
html[lang^="ar"] .elementor-widget-taxonomy-filter .e-filter-item,
html[lang^="ar"] .tbh-pubmeta, html[lang^="ar"] .tbh-hubbanner__go, html[lang^="ar"] .tbh-evstrip__meta,
html[lang^="ar"] .tbh-today .elementor-widget-text-editor:not(:last-child),
html[lang^="ar"] .tbh-fhead .elementor-heading-title { font-family: var(--tbh-font-ar) !important; font-weight: 500 !important; }
/* Bold 700 - large headings and page / hero titles */
html[lang^="ar"] h1, html[lang^="ar"] h2,
html[lang^="ar"] h1.elementor-heading-title, html[lang^="ar"] h2.elementor-heading-title,
html[lang^="ar"] .tbh-seclabel { font-family: var(--tbh-font-ar) !important; font-weight: 700 !important; }
/* Arabic letters join: no letter spacing on headings (the English heading style uses a small negative spacing) */
html[lang^="ar"] h1, html[lang^="ar"] h2, html[lang^="ar"] h3, html[lang^="ar"] h4, html[lang^="ar"] .elementor-heading-title { letter-spacing: normal !important; }
/* Arabic paragraphs read better a little larger and looser (Readex Pro Light is thin): line-height 1.9 (short labels and captions are left as they are). */
html[lang^="ar"] .elementor-widget-text-editor:where(:not(.tbh-pubmeta, .tbh-pubby, .tbh-evstrip__meta, .tbh-hubbanner__go, .tbh-photo__cap, .tbh-seclabel)) { line-height: 1.9; }
html[lang^="ar"] .tbh-today .elementor-widget-text-editor { line-height: 1.6; }
html[lang^="ar"] .tbh-today .elementor-widget-text-editor p { font-size: 1em; }
/* Elementor writes the body line-height as "1.65em", which children inherit as a fixed 27px; the design uses a unitless 1.65 (1.9 for Arabic). */
html body.elementor-kit-5 { line-height: 1.65; }
html[lang^="ar"] body.elementor-kit-5 { line-height: 1.9; }
/* ===== 00-base : end ===== */

/* ===== 10-header : start ===== */
/* HEADER: layout that Elementor has no control for.
   The header is a two-row grid (logo centred on top, menu centred below, language switch at the end edge) that turns into ONE compact row
   when the page is scrolled and in burger mode (tablet/phone). What you CAN change in Elementor, you change there:
   - logo size: Header template > logo widget > Style > Height (desktop / tablet / mobile)
   - menu font, colours, spacing, dropdown: Header template > Nav Menu widget > Style
   - side padding / background / border: Header template > the header container > Style / Layout
   The sizes below (the "!important" ones) only fine-tune the logo/menu at in-between screen widths and while scrolled. */

.tbh-hdr { position: relative; z-index: 20; }
.tbh-hdr .tbh-logo { flex: none; }
.elementor .tbh-logo img { width: auto; max-width: none; display: block; } /* higher specificity: Elementor image widget CSS loads after this */
.tbh-nav .elementor-nav-menu--main .elementor-item { display: flex; align-items: center; }
.tbh-nav .elementor-nav-menu--main .elementor-item::before { content: none !important; display: none !important; }
.tbh-nav .elementor-menu-toggle { margin: 0; }
.tbh-nav .elementor-nav-menu--dropdown { background: #fff; box-shadow: none; }

/* Desktop: logo centred on row 1, menu centred on row 2 */
.tbh-hdr > .e-con-inner {
  display: grid !important; grid-template-columns: 1fr auto 1fr; grid-template-areas: ". logo lang" "nav nav nav";
  align-items: center; column-gap: 16px; row-gap: 0; padding-block: 18px 4px; flex-direction: row;
}
.tbh-hdr > .e-con-inner > .tbh-logo { grid-area: logo; justify-self: center; width: auto; margin: 0; }
.tbh-hdr > .e-con-inner > .tbh-hdr__lang { grid-area: lang; justify-self: end; width: auto; margin: 0; }
.tbh-hdr > .e-con-inner > .tbh-nav { grid-area: nav; justify-self: stretch; width: 100%; margin: 0; }
.tbh-nav .elementor-nav-menu--main > .elementor-nav-menu { justify-content: center; flex-wrap: wrap; }
.tbh-hdr .tbh-nav .elementor-nav-menu--main .elementor-item { white-space: nowrap; max-width: none; }

/* Compact state (Elementor adds .elementor-sticky--effects after 90px of scroll): one row, small logo + menu + language switch */
.tbh-hdr.elementor-sticky--effects > .e-con-inner { grid-template-columns: auto 1fr auto; grid-template-areas: "logo nav lang"; padding-block: 8px; }
.tbh-hdr.elementor-sticky--effects .tbh-logo img { height: 44px !important; }
.tbh-hdr.elementor-sticky--effects > .e-con-inner > .tbh-logo { justify-self: start; }
.tbh-hdr.elementor-sticky--effects { box-shadow: 0 1px 12px rgba(25, 91, 125, .08); }

/* Narrow desktops (1025-1279px): keep all 8 menu items on one row */
@media (min-width: 1025px) and (max-width: 1279px) {
  .tbh-hdr .tbh-nav .elementor-nav-menu--main .elementor-item { font-size: 14px !important; padding-inline: 8px !important; }
  .tbh-hdr .tbh-logo img { height: 84px !important; }
}
@media (min-width: 1025px) and (max-width: 1199px) {
  .tbh-nav .elementor-nav-menu--main .elementor-nav-menu { column-gap: 2px; }
  .tbh-hdr .tbh-lang { padding-inline: 12px; }
}
@media (min-width: 1025px) and (max-width: 1139px) {
  .tbh-hdr .tbh-nav .elementor-nav-menu--main .elementor-item { font-size: 13.5px !important; padding-inline: 6px !important; }
}

/* Tablet + phone (burger mode, up to 1024px): one compact row = logo | language switch | burger */
@media (max-width: 1024px) {
  .tbh-hdr > .e-con-inner, .tbh-hdr.elementor-sticky--effects > .e-con-inner {
    grid-template-columns: 1fr auto auto; grid-template-areas: "logo lang nav"; column-gap: 10px; padding-block: 10px;
  }
  .tbh-hdr > .e-con-inner > .tbh-logo { justify-self: start; }
  .tbh-hdr > .e-con-inner > .tbh-nav { justify-self: end; width: auto; }
  .tbh-hdr.elementor-sticky--effects .tbh-logo img { height: 52px !important; }
  .tbh-hdr .tbh-lang { padding: 10px 14px; }
}
/* Phones */
@media (max-width: 767px) {
  .tbh-hdr.elementor-sticky--effects .tbh-logo img { height: 42px !important; }
  .tbh-hdr .tbh-lang { padding: 9px 12px; font-size: 13.5px; }
}
/* Small tablets (768-860px): slightly smaller logo and language switch (Arabic labels are wider) */
@media (min-width: 768px) and (max-width: 860px) {
  .tbh-hdr .tbh-logo img { height: 42px !important; }
  .tbh-hdr .tbh-lang { font-size: 13px; }
}
/* ===== 10-header : end ===== */

/* ===== 20-footer : start ===== */
/* FOOTER: small details Elementor has no control for.
   What you CAN change in Elementor, you change there (Footer template):
   - background pattern + how faint it is: click the footer container > Style > Background Overlay (image, Opacity slider)
   - colours: click an element > Style > colour (they use the Global Colours of Site Settings)
   - logo height, text sizes, column widths, spacing: the widgets / containers themselves */
.tbh-ftr .elementor-icon-list-items { gap: 0; }
.tbh-ftr a:hover { color: #fff; text-decoration: underline; }
/* "Today" box (Hijri + Gregorian date): no extra paragraph spacing, tight label */
.tbh-today .elementor-widget-text-editor p { margin: 0; }
.tbh-today .elementor-widget-text-editor:first-child { padding-bottom: 2px; }
@media (max-width: 767px) { .tbh-today { padding-top: 4px; } }
/* ===== 20-footer : end ===== */

/* ===== 30-shapes : start ===== */
/* SHAPES AND DECORATION that Elementor has no control for.
   Images, colours and sizes of these blocks are set in Elementor (the pattern images are in the Media Library):
   - the faint strip beside page titles: click the strip container > Style > Background (image)
   - the hero panel of "Our History": click the container > Style > Background (desktop + tablet image), colour
   - the blue photo slot on People: click the container > Style > Background Overlay (image) / Background colour
   What stays here: the cut corner (clip-path, mirrored for Arabic), the fade-out mask of the strip, the caption position. */

/* Cut corner (apply with the CSS class "tbh-cut" on any container). English: top-right corner cut; Arabic: top-left. */
.tbh-cut { clip-path: polygon(0 0, calc(100% - var(--tbh-cut)) 0, 100% var(--tbh-cut), 100% 100%, 0 100%); }
html[dir="rtl"] .tbh-cut { clip-path: polygon(var(--tbh-cut) 0, 100% 0, 100% 100%, 0 100%, 0 var(--tbh-cut)); }

/* Pattern strip beside inner page titles: fades in from the start edge (CSS class "tbh-strip") */
.tbh-strip { -webkit-mask-image: linear-gradient(90deg, transparent, #000); mask-image: linear-gradient(90deg, transparent, #000); }
html[dir="rtl"] .tbh-strip { -webkit-mask-image: linear-gradient(270deg, transparent, #000); mask-image: linear-gradient(270deg, transparent, #000); }

/* Photo slot on People (CSS class "tbh-photo"): 3:1 shape; the caption chip sits in the bottom corner */
.tbh-photo { position: relative; aspect-ratio: 3 / 1; }
.tbh-photo > * { position: relative; }
.tbh-photo .tbh-photo__cap { position: absolute; inset-block-end: 0; inset-inline-start: 0; }
/* ===== 30-shapes : end ===== */

/* ===== 40-home : start ===== */
/* HOME PAGE: what Elementor has no control for.
   Colours, fonts, sizes and spacing of the Home texts/buttons are set on the widgets themselves (Home page and the Loop Item templates
   "Event strip", "Selected publication card", "Featured project banner"). The banner PHOTO is chosen in Home settings (ACF) and its
   tint in the banner container > Style > Background Overlay. The text-link buttons ("All publications"...) are Button widgets with the class tbh-textlink. */

/* Arrow after the text-link buttons (the arrow flips for Arabic and nudges on hover) */
.tbh-textlink .elementor-button-text::after { content: "\2192"; display: inline-block; margin-inline-start: .55em; transition: transform .15s; }
html[dir="rtl"] .tbh-textlink .elementor-button-text::after { content: "\2190"; }
.tbh-textlink .elementor-button:hover .elementor-button-text::after { transform: translateX(3px); }
html[dir="rtl"] .tbh-textlink .elementor-button:hover .elementor-button-text::after { transform: translateX(-3px); }

/* Banner: full width, shape follows the screen (min-height is set in Elementor) */
.tbh-herobanner { width: 100%; aspect-ratio: 16 / 7; max-height: 700px; }
@media (max-width: 1024px) { .tbh-herobanner { aspect-ratio: 16 / 9; } }
@media (max-width: 767px) { .tbh-herobanner { aspect-ratio: 4 / 3; } }
.elementor.elementor .e-con > .elementor-widget.tbh-herotitle { max-width: 760px; }
.elementor.elementor .e-con > .elementor-widget.tbh-herotext { max-width: 700px; }

/* Upcoming-event strip: hidden when no event qualifies; summary limited to 2 lines; meta line without paragraph spacing */
.tbh-evstrip-wrap:not(:has(.tbh-evstrip)) { display: none; }
.tbh-evstrip__meta p, .tbh-evstrip__meta { margin: 0; letter-spacing: .01em; }
.tbh-evstrip__sum { max-width: 72ch; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; }
.tbh-evstrip__sum:has(.elementor-widget-container:empty) { display: none; }
.elementor-widget-button.tbh-evstrip__cta .elementor-button { white-space: nowrap; }

/* Selected publications: 4:3 cover, titles keep the text colour */
.tbh-home-sec h2 { margin: 0; }
.elementor .tbh-sel .tbh-pimg img { aspect-ratio: 4 / 3; }
.tbh-sel .elementor-heading-title a { color: inherit; text-decoration: none; }
.tbh-sel .elementor-heading-title a:hover { color: var(--tbh-teal); }
.tbh-feat-grid .elementor-loop-container { align-items: stretch; }

/* Featured project banner */
.tbh-pfeat .elementor-heading-title a { color: inherit; text-decoration: none; }
.tbh-pfeat .elementor-heading-title a:hover { color: var(--tbh-teal); }
.tbh-pfeat__ex { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 5; line-clamp: 5; overflow: hidden; }
.tbh-pfeat__ex:has(.elementor-widget-container:empty) { display: none; }
.tbh-pfeat > .e-con, .tbh-pfeat .e-con { min-width: 0; }
/* ===== 40-home : end ===== */

/* ===== 50-contact : start ===== */
/* CONTACT PAGE. Labels, field/button colours, fonts, borders and message colours are set in Elementor (Form widget > Style).
   Left here: field padding/height, the contact details list, the message boxes and small Arabic/mobile fixes. */
.tbh-contact-list { margin: 0; padding: 0; display: grid; gap: 20px; }
.tbh-contact-list > div { display: grid; gap: 4px; }
.tbh-contact-list dt { font-size: 14px; font-weight: 600; color: var(--tbh-teal); }
.tbh-contact-list dd { margin: 0; font-size: 16.5px; }
.tbh-contact-list a { color: var(--tbh-ink); text-decoration: underline; text-decoration-color: var(--tbh-blue); text-underline-offset: 3px; }
.tbh-contact-list a:hover { color: var(--tbh-teal); }
.tbh-form { font-family: var(--tbh-font-en); }
html[lang^="ar"] .tbh-form { font-family: var(--tbh-font-ar-body); }
.tbh-form .elementor-field-group { margin-bottom: 0; }
.tbh-form .elementor-field-textual, .tbh-form .elementor-field-group .elementor-select-wrapper select {
  width: 100%; box-sizing: border-box; font: inherit; padding: 10px 12px; min-height: 44px; box-shadow: none;
}
.tbh-form textarea.elementor-field-textual { min-height: 140px; resize: vertical; }
.tbh-form .elementor-select-wrapper::before { color: var(--tbh-muted); }
.tbh-form .elementor-field-group .elementor-select-wrapper { font-size: 16.5px; line-height: inherit; }
.tbh-form .elementor-field-textual:focus, .tbh-form .elementor-select-wrapper select:focus { outline: 2px solid var(--tbh-blue); outline-offset: 0; border-color: var(--tbh-blue); }
.tbh-form .elementor-field-group.elementor-field-type-submit { margin-top: 6px; }
.tbh-form .elementor-button { font: inherit; border: 0; min-height: 44px; transition: background .15s; }
.tbh-form .elementor-message { line-height: 1.5; margin: 4px 0 0; padding: 12px 14px; border-inline-start: 3px solid var(--tbh-line); background: var(--tbh-mist); }
.tbh-form .elementor-message-success { border-color: var(--tbh-blue); }
.tbh-form .elementor-message-danger { border-color: #c0392b; background: #fdf3f2; }
.tbh-form .elementor-message.elementor-help-inline { padding: 0; margin: 4px 0 0; background: none; border: 0; font-size: 13.5px; }
html[dir="rtl"] .tbh-form .elementor-select-wrapper::before { inset-inline-end: 12px; }
.tbh-form .elementor-field-type-submit.e-form__buttons { display: flex; justify-content: flex-start !important; } /* start side in both LTR and RTL */
@media (max-width: 600px) { .tbh-contact-panel .tbh-form .elementor-field-group { width: 100%; } }
/* ===== 50-contact : end ===== */

/* ===== 60-publications : start ===== */
/* PUBLICATIONS (catalogue list, filter panel, cards, single publication page).
   Set in Elementor instead: card/row fonts, sizes and colours (Loop Item templates "Publication card"), the Filter list look
   (Taxonomy Filter widget > Style), the "Filter" heading rule, the single-page title and text (Single: Publication template).
   Left here: layout rules (sticky sidebar, row shape, cover crop 16:9, line limits) that need CSS. */

/* Sticky filter sidebar (desktop only) */
.tbh-side { position: sticky; top: 104px; align-self: flex-start; }
@media (max-width: 1024px) { .tbh-side { position: static; } }
/* Filter list: one item per line, full width */
.elementor .tbh-filter .e-filter-item { text-align: start; width: 100%; justify-content: flex-start; margin: 0; }
.elementor .elementor-element.tbh-filter .e-filter-item[aria-pressed="true"] { font-weight: 600; }
.elementor .tbh-filter .e-filter { align-items: stretch; gap: 0; }
/* Catalogue: fixed sidebar, grid takes the rest (desktop only; stacks below 1025px) */
@media (min-width: 1025px) {
  .tbh-side { flex: none; }
  .tbh-catmain { flex: 1 1 0; min-width: 0; }
}
/* Card button row: collapse completely when neither language has a file; small download icon */
.tbh-pdf-row:not(:has(.elementor-widget)) { display: none; }
.tbh-pdf-row .elementor-button { white-space: nowrap; }
.tbh-pdf-row .elementor-button-icon { font-size: 12px; }
/* Single publication */
.tbh-single-pub .elementor-widget-shortcode, .tbh-single-pub .elementor-widget-theme-post-content { max-width: 100%; }
.tbh-pubbody p { font-size: 17px; line-height: 1.75; }
.tbh-pubbody:empty, .tbh-pubbody .elementor-widget-container:empty { display: none; }
.tbh-single-pub .elementor-widget-button .elementor-button-icon { font-size: 13px; }

/* Cover images: 16:9 crop; the widget is hidden when the post has no Featured Image (Elementor would show a grey placeholder) */
.tbh-pimg, .tbh-pimg .elementor-widget-container { width: 100%; }
.elementor .tbh-pimg img { display: block; width: 100%; aspect-ratio: 16 / 9; height: auto; object-fit: cover; }
.tbh-pimg:not(:has(img)), .tbh-pimg:has(img[src*="placeholder"]),
.tbh-pubcover:not(:has(img)), .tbh-pubcover:has(img[src*="placeholder"]) { display: none; }
.tbh-pub { overflow: hidden; }
.tbh-pub .tbh-pimg { margin: 0; }
.elementor.elementor .tbh-single-pub .elementor-widget.tbh-pubcover { max-width: none; }
.elementor .tbh-pubcover img { display: block; width: 100%; aspect-ratio: 1400 / 460; height: auto; object-fit: cover; }
.tbh-pub .tbh-pdf-row { margin-top: auto; padding-top: 10px; }
.tbh-pub > .e-con { flex: 1 1 auto; }
/* Cards: long abstracts are cut to 4 lines so the grid stays even (the full abstract is on the single page) */
.tbh-pub .elementor-widget-text-editor { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; line-clamp: 4; overflow: hidden; }

/* Catalogue list (IIS style): one row per publication, divider between rows */
.tbh-publist .e-loop-item { border-bottom: 1px solid var(--tbh-line); padding-block: 30px; }
.tbh-publist .e-loop-item:first-child { padding-top: 6px; }
.tbh-publist .e-loop-item:last-child { border-bottom: 0; }
.tbh-publist .e-loop-container { row-gap: 0; }
.tbh-pubrow { align-items: flex-start; }
.elementor.elementor .tbh-pubrow > .elementor-widget.tbh-pimg--row { flex: none; width: 160px; max-width: 100%; }
.elementor .tbh-pubrow .tbh-pimg--row img { aspect-ratio: 780 / 690; width: 100%; height: auto; object-fit: cover; }
.tbh-pubrow .tbh-pubrow__body { min-width: 0; }
.tbh-pubrow .elementor-widget-text-editor { -webkit-line-clamp: 2; line-clamp: 2; }
.tbh-pubrow .elementor-widget-text-editor.tbh-nolimit { display: block; overflow: visible; -webkit-line-clamp: unset; line-clamp: unset; }
.tbh-pubrow .elementor-widget-text-editor:has(.elementor-widget-container:empty) { display: none; }
.tbh-pubmeta, .tbh-pubby { margin: 0; }
.tbh-pubmeta { letter-spacing: .04em; text-transform: uppercase; }
html[lang^="ar"] .tbh-pubmeta { letter-spacing: 0; text-transform: none; }
.tbh-pubmeta__sep { margin-inline: .65em; color: #9fc7da; font-weight: 400; }
.tbh-pubby__label { color: var(--tbh-muted); }
.tbh-pubby:empty, .tbh-pubrow .elementor-widget-text-editor.tbh-nolimit:has(.elementor-widget-container:empty) { display: none; }
.tbh-pubrow .elementor-widget-heading .elementor-heading-title a { color: inherit; text-decoration: none; }
.tbh-pubrow .elementor-widget-heading .elementor-heading-title a:hover { color: var(--tbh-teal); }
.tbh-pubrow .tbh-pdf-row { margin-top: 0; padding-top: 6px; }
@media (max-width: 767px) {
  .elementor.elementor .tbh-pubrow > .elementor-widget.tbh-pimg--row { width: 140px; }
  .tbh-publist .e-loop-item { padding-block: 24px; }
}
/* Filter panel: collapsible group look */
.tbh-side { flex: none; }
.elementor .tbh-fgroup.elementor-widget { --n-accordion-title-normal-color: var(--tbh-ink); --n-accordion-title-hover-color: var(--tbh-teal); --n-accordion-title-active-color: var(--tbh-ink); }
.elementor .tbh-fgroup .e-n-accordion-item { border: 0; border-bottom: 1px solid var(--tbh-line); border-radius: 0; }
.elementor .tbh-fgroup .e-n-accordion-item-title { padding: 16px 0; border: 0; background: none; font-size: 16px; font-weight: 600; cursor: pointer; }
.elementor .tbh-fgroup .e-n-accordion-item-title-text { font-size: 16px; font-weight: 600; }
.elementor .tbh-fgroup .e-n-accordion-item > .e-con { border: 0; background: none; }
.elementor .tbh-fgroup .tbh-filter, .elementor .tbh-fgroup .e-filter, .elementor .tbh-fgroup .e-filter-item { max-width: 100%; box-sizing: border-box; }
/* Compact rows */
.tbh-publist .e-loop-item { border-bottom-color: #ebf0f3; }
.tbh-pubrow .tbh-pimg--row { margin: 0; }
.tbh-pubrow .tbh-pubmeta { line-height: 1.4; }
.tbh-pubrow .tbh-pubby { line-height: 1.5; }
.tbh-pubrow .elementor-button { line-height: 1.4; }
/* News rows with no cover: the text fills the row */
.tbh-newsrow .tbh-pimg--row:not(:has(img)), .tbh-newsrow .tbh-pimg--row:has(img[src*="placeholder"]) { display: none; }
/* ===== 60-publications : end ===== */

/* ===== 70-projects : start ===== */
/* PROJECTS (cards on the Projects page and Home). Colours, fonts and spacing are set in the Loop Item template "Project card".
   Left here: the shape mark above the title (cycles hexagon / rounded block / triangle), the whole-card link and the "with photo" variant. */
.tbh-proj__body::before { content: ""; position: static; inset: auto; flex: none; opacity: 1; mix-blend-mode: normal; width: 40px; height: 46px; background: var(--tbh-plum);
  clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%); margin-block-end: auto; }
.tbh-cards .e-loop-item:nth-child(3n+2) .tbh-proj__body::before { clip-path: polygon(25% 14%, 50% 0, 75% 14%, 100% 58%, 100% 86%, 75% 100%, 25% 100%, 0 86%, 0 58%); height: 40px; }
.tbh-cards .e-loop-item:nth-child(3n) .tbh-proj__body::before { clip-path: polygon(50% 0, 100% 100%, 0 100%); height: 36px; width: 42px; }
.tbh-proj { position: relative; overflow: hidden; }
.tbh-proj > .e-con { flex: 1 1 auto; }
.tbh-proj .tbh-pimg { margin: 0; }
.tbh-proj__body { min-height: 280px; }
.tbh-proj__body > .elementor-widget-heading { margin-top: 28px; }
.tbh-proj__body .elementor-heading-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.tbh-proj__body .elementor-heading-title a:focus-visible::after { outline: 2px solid var(--tbh-blue); outline-offset: -2px; }
.tbh-proj:hover .elementor-heading-title a { color: var(--tbh-teal); }
.tbh-proj:has(.tbh-pimg img:not([src*="placeholder"])) .tbh-proj__body { min-height: 0; }
.tbh-proj:has(.tbh-pimg img:not([src*="placeholder"])) .tbh-proj__body::before { display: none; }
.tbh-proj:has(.tbh-pimg img:not([src*="placeholder"])) .tbh-proj__body > .elementor-widget-heading { margin-top: 0; }
/* Single project: lede and an empty content block collapse cleanly */
.tbh-projlede:has(.elementor-widget-container:empty), .tbh-projlede .elementor-widget-container:empty { display: none; }
/* ===== 70-projects : end ===== */

/* ===== 80-news : start ===== */
/* NEWS. The list reuses the publication row (block "60-publications"). Left here: list width, page numbers, and the typography of the
   imported article text (paragraphs, headings, lists, quotes) which Elementor cannot style element by element. */
.elementor.elementor .elementor-widget.tbh-newslist { max-width: 900px; width: 100%; }
.tbh-pubmeta__hijri { font-weight: 400; color: var(--tbh-muted); text-transform: none; letter-spacing: 0; }
.tbh-news-grid .elementor-pagination { margin-top: 32px; display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-start; }
.tbh-news-grid .elementor-pagination .page-numbers { padding: 8px 14px; background: var(--tbh-mist); color: var(--tbh-teal); text-decoration: none; font-weight: 500; }
.tbh-news-grid .elementor-pagination .page-numbers.current, .tbh-news-grid .elementor-pagination a.page-numbers:hover { background: var(--tbh-teal); color: #fff; }
.tbh-newsbody { color: var(--tbh-ink); }
.tbh-newsbody p { margin: 0 0 1.1em; font-size: 17.5px; line-height: 1.8; }
html[lang^="ar"] .tbh-newsbody p { line-height: 2; }
.tbh-newsbody h2, .tbh-newsbody h3, .tbh-newsbody h4 { color: var(--tbh-plum); font-weight: 600; line-height: 1.35; margin: 1.6em 0 .5em; }
.tbh-newsbody h2 { font-size: 19.5px; } .tbh-newsbody h3 { font-size: 21px; } .tbh-newsbody h4 { font-size: 18px; }
.tbh-newsbody ul, .tbh-newsbody ol { margin: 0 0 1.2em; padding-inline-start: 1.4em; font-size: 17.5px; line-height: 1.8; }
.tbh-newsbody li { margin-bottom: .4em; }
.tbh-newsbody blockquote { margin: 1.6em 0; padding: 4px 22px; border-inline-start: 3px solid var(--tbh-blue); color: var(--tbh-muted); font-size: 18.5px; line-height: 1.75; }
.tbh-newsbody img, .tbh-newsbody figure { max-width: 100%; height: auto; }
.tbh-newsbody a { color: var(--tbh-teal); text-decoration: underline; text-underline-offset: 3px; }
.tbh-newsbody a:hover { color: var(--tbh-blue); }
.tbh-newsbody > *:last-child { margin-bottom: 0; }
.tbh-single-news .tbh-crumb span:last-child { overflow-wrap: anywhere; }
/* ===== 80-news : end ===== */

/* ===== 85-people-about : start ===== */
/* PEOPLE and ABOUT. Card colours, text sizes, paddings and the portrait width are set in Elementor (Loop Item templates "Person card").
   Left here: crop of the photos, the short blue bar above section labels, the sticky label column, the vision pull-quote. */
.tbh-people-group:not(:has(.e-loop-item)) { display: none; }   /* a group with nobody in it stays hidden */
.tbh-label .elementor-heading-title::before { content: ""; display: block; width: 36px; height: 3px; background: var(--tbh-blue); margin-block-end: 16px; }
.elementor .tbh-mphoto img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; object-position: center top; display: block; }
.elementor .tbh-member .tbh-mphoto img { aspect-ratio: 4 / 5; }
.tbh-cphoto { flex: none; max-width: 100%; }
.elementor .tbh-cphoto img { max-width: 100%; aspect-ratio: 1 / 1; height: auto; object-fit: cover; object-position: center top; display: block; }
.elementor .tbh-illus img { display: block; width: 100%; height: auto; }   /* hand-drawn illustration fills its slot */
@media (min-width: 1025px) { .tbh-labelcol { position: sticky; top: 104px; align-self: flex-start; } }
.tbh-vquote p { margin: 0; padding-inline-start: 28px; border-inline-start: 3px solid var(--tbh-blue); }
.tbh-typeitem .elementor-widget-text-editor p { margin: 0; }
/* ===== 85-people-about : end ===== */

/* ===== 90-general : start ===== */
/* GENERAL helpers used on many pages. */
/* Equal-height cards in Loop Grids */
.tbh-cards .e-loop-item > .e-con { height: 100%; }
/* The theme adds a bottom margin to the last paragraph of a text widget; widgets are spaced by Elementor gaps instead */
.elementor-widget-text-editor p:last-child { margin-block-end: 0; }
/* Text column widths (CSS classes on text widgets): tbh-w18 / w44 / w52 / w60 / w68 / mission. Elementor has no max-width control for a widget. */
.elementor.elementor .e-con > .elementor-widget.tbh-mission { max-width: 593px; }
.elementor.elementor .e-con > .elementor-widget.tbh-w18 { max-width: 605px; }
.elementor.elementor .e-con > .elementor-widget.tbh-w52 { max-width: 562px; }
.elementor.elementor .e-con > .elementor-widget.tbh-w68 { max-width: 673px; }
.elementor.elementor .e-con > .elementor-widget.tbh-w44 { max-width: 739px; }
.elementor.elementor .e-con > .elementor-widget.tbh-w60 { max-width: 594px; }
/* ===== 90-general : end ===== */

/* ===== 65-home-publications : start ===== */
/* HOME "Selected publications": ONE large card + THREE compact rows. Layout, widths, sizes, colours and texts are set in Elementor:
   Home page > section "Selected publications" (container .tbh-home-pubs, two Loop Grids) and the Loop Item templates
   "Home: selected publication - large / small" (EN and AR). Which publications appear is chosen in each publication's "Homepage placement" field.
   Here only what Elementor has no control for (line limits, stretching, row dividers on the last item, thumbnail width). */
.tbh-home-large .elementor-widget-loop-grid, .tbh-home-large .elementor-widget-loop-grid > .elementor-widget-container,
.tbh-home-large .elementor-loop-container, .tbh-home-large .e-loop-item, .tbh-home-large .tbh-homelg { height: 100%; }
.tbh-homelg .elementor-widget-text-editor.tbh-nolimit { display: block; overflow: visible; -webkit-line-clamp: unset; line-clamp: unset; }
.tbh-homelg .tbh-homelg__ex { -webkit-line-clamp: 3; line-clamp: 3; }
.tbh-homelg .elementor-widget-text-editor:has(.elementor-widget-container:empty) { display: none; }
.tbh-homelg .elementor-widget-heading .elementor-heading-title a { color: inherit; text-decoration: none; }
.tbh-homelg .elementor-widget-heading .elementor-heading-title a:hover { color: var(--tbh-teal); }
.tbh-home-small .elementor-loop-container > :first-child .tbh-homesm { padding-top: 0; }
.tbh-home-small .elementor-loop-container > :last-child .tbh-homesm, .tbh-home-small .elementor-loop-container > .tbh-homesm:last-child { border-bottom: 0; padding-bottom: 0; }
.elementor.elementor .tbh-homesm > .elementor-widget.tbh-pimg--row { width: 130px; }
@media (max-width: 767px) {
  .elementor.elementor .tbh-homesm > .elementor-widget.tbh-pimg--row { width: 96px; }
  .tbh-home-small .elementor-loop-container > :first-child .tbh-homesm { padding-top: 20px; }
}
/* ===== 65-home-publications : end ===== */


/* 61 — Publications filter sidebar: fits the screen (scrolls inside itself on short screens so the last category is always reachable) */
@media (min-width: 1025px) {
  .tbh-side { max-height: calc(100vh - 120px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: var(--e-global-color-tbhline, #E2E8EC) transparent; padding-bottom: 8px; }
}

/* ===== 62-publication-categories : start ===== */
/* PUBLICATIONS HUB + CATEGORY PAGES. Set in Elementor instead: the hub banner (photo, tint, texts, size) and the 6 category boxes (image, name, link)
   on the Publications page; the category page header and list in Theme Builder > "Publication category" (EN / AR); category pictures and
   definitions in Publications > Publication Types (Description + Box image + Banner image). Left here: image crops, hover effects, the category list look. */

/* Hub boxes (CSS class "tbh-catbox" on a container that is a link): 4:3 picture, zoom + underlined name on hover */
.tbh-catbox { text-decoration: none; color: inherit; min-width: 0; }
.tbh-catbox .tbh-catimg { overflow: hidden; }
.elementor .tbh-catimg img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .35s ease; }
.tbh-catbox:hover .tbh-catimg img, .tbh-catbox:focus-visible .tbh-catimg img { transform: scale(1.04); }
.tbh-catbox:hover .tbh-catname .elementor-heading-title, .tbh-catbox:focus-visible .tbh-catname .elementor-heading-title {
  text-decoration: underline; text-decoration-color: var(--tbh-blue); text-decoration-thickness: 2px; text-underline-offset: 6px; }
.tbh-catbox:focus-visible, .tbh-hubbanner:focus-visible { outline: 2px solid var(--tbh-blue); outline-offset: 4px; }
/* Hub banner (container that is a link, CSS class "tbh-hubbanner"): the "Open the catalogue" line is underlined on hover */
.tbh-hubbanner { text-decoration: none; color: #fff; }
.tbh-hubbanner:hover .tbh-hubbanner__go p, .tbh-hubbanner:focus-visible .tbh-hubbanner__go p { text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 2px; }
.tbh-hubbanner .elementor-widget-text-editor p { margin: 0; }

/* Category page: big picture at the top (16:6, 16:9 on phones) */
.elementor .tbh-catbanner img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 6; object-fit: cover; }
@media (max-width: 767px) { .elementor .tbh-catbanner img { aspect-ratio: 16 / 9; } }
.tbh-catbanner:not(:has(img)) { display: none; }
.tbh-catdef p { margin: 0 0 1em; }
.tbh-catdef:has(.elementor-widget-container:empty) { display: none; }

/* Category list in the side panel (Nav Menu widget, CSS class "tbh-catnav"): same look as the catalogue filter list
   (rule on the start edge, current category highlighted). Colours and font are set on the widget (Style tab). */
.elementor .tbh-catnav .elementor-nav-menu--main .elementor-nav-menu { display: flex; flex-direction: column; align-items: stretch; }
.elementor .tbh-catnav .elementor-nav-menu--main .elementor-item { border-inline-start: 3px solid var(--tbh-line); line-height: 1.65; text-align: start; justify-content: flex-start; }
.elementor .tbh-catnav .elementor-nav-menu--main .elementor-item:hover { border-color: #9FC7DA; }
.elementor .tbh-catnav .elementor-nav-menu--main .elementor-item.elementor-item-active { border-color: var(--tbh-blue); background: var(--tbh-mist); font-weight: 600; }
.tbh-catnav .elementor-nav-menu--main .elementor-item::before, .tbh-catnav .elementor-nav-menu--main .elementor-item::after { content: none !important; }
/* Phones: the category list becomes a row of compact chips that scrolls sideways, above the publication list */
@media (max-width: 767px) {
  .elementor .tbh-catnav .elementor-nav-menu--main .elementor-nav-menu { flex-direction: row; overflow-x: auto; gap: 8px; padding-bottom: 6px; scrollbar-width: thin; }
  .elementor .tbh-catnav .elementor-nav-menu--main .elementor-nav-menu > li { flex: none; }
  .elementor .tbh-catnav .elementor-nav-menu--main .elementor-item { border: 1px solid var(--tbh-line); white-space: nowrap; padding: 8px 14px; }
  .elementor .tbh-catnav .elementor-nav-menu--main .elementor-item.elementor-item-active { border-color: var(--tbh-blue); }
}
/* ===== 62-publication-categories : end ===== */


/* Project banner focus (ACF field "Banner focus" on each project) */
.tbh-focus-top .tbh-pbanner { background-position: center top !important; }
.tbh-focus-bottom .tbh-pbanner { background-position: center bottom !important; }

/* Publication banner focus (ACF field "Banner focus" on each publication) */
.tbh-focus-top .tbh-pubcover img { object-position: center top; }
.tbh-focus-bottom .tbh-pubcover img { object-position: center bottom; }/* End custom CSS */
/* Start Custom Fonts CSS */@font-face {
	font-family: 'Readex Pro';
	font-style: normal;
	font-weight: 300;
	font-display: auto;
	src: url('https://tabahresearch.org/wp-content/uploads/2026/10/readex-pro-arabic.woff2') format('woff2');
}
@font-face {
	font-family: 'Readex Pro';
	font-style: normal;
	font-weight: 500;
	font-display: auto;
	src: url('https://tabahresearch.org/wp-content/uploads/2026/10/readex-pro-arabic.woff2') format('woff2');
}
@font-face {
	font-family: 'Readex Pro';
	font-style: normal;
	font-weight: 700;
	font-display: auto;
	src: url('https://tabahresearch.org/wp-content/uploads/2026/10/readex-pro-arabic.woff2') format('woff2');
}
/* End Custom Fonts CSS */