:root { --gfh-font-display: Tahoma,Arial,sans-serif; --gfh-font-body: Tahoma,Arial,sans-serif; --gfh-font-mono: Tahoma,Arial,sans-serif; --gfh-heading-leading: 1.4; }
body { direction: rtl; font-family: var(--gfh-font-body); }
h1,h2,h3,h4,p,a,button,.g-label,.eyebrow,.vm-label { letter-spacing: normal !important; }
h1,h2,h3,h4 { font-family: var(--gfh-font-display) !important; }
.section-title,.hero-title,.hero-title-hidden { line-height: 1.4; }
body .line-content { opacity: 1; transform: none; }
.hero-copy,.reading-column,.app-copy,.g-contact-copy,.g-sheet,.g-tabs button { text-align: right; }
.hero-content,.hero-copy { margin-left: 0; }
.hero-shade,.section-image-shade { background: linear-gradient(270deg,#121f2d 0%,rgba(18,31,45,.75) 30%,rgba(18,31,45,.2) 65%,rgba(18,31,45,0) 100%); }
.section-image { right: auto; left: 0; }
.app-devices { direction: ltr; }
.app-store-badges { direction: rtl; justify-content: flex-start; }
.g-tabs button { text-align: right !important; }
#gfh-dossier .g-meta { border-left: 0; border-right: 1px solid var(--g-line); padding-left: 0; padding-right: 28px; }
#gfh-dossier .g-contact-copy { padding-left: 0; padding-right: 0; }
#gfh-dossier .g-contact .g-photo { right: auto; left: 0; }
.portfolio-track { left: auto; right: 0; direction: rtl; }
.portfolio-label { right: auto; left: 4rem; }
.portfolio-diamonds { left: auto; right: 3.5rem; }
.horeca-text-row { gap: .22em; letter-spacing: normal; }
.horeca-middle-row { font-family: var(--gfh-font-display); }
.vm-word { white-space: nowrap; }
.vm-statement { font-family: var(--gfh-font-display); line-height: 1.55; }
.vm-label { letter-spacing: normal; }
.gfh-gate-input-wrap svg { transform: scaleX(-1); }
.gfh-gate-input-wrap input { text-align: right; }
.language-switch { color: inherit; font: 1.4rem var(--gfh-font-body); margin-inline-start: 2rem; text-decoration: none; }
.translation-status { position: relative; padding: 1rem 2.4rem; background: #eaf1f7; color: #1f3a50; font-size: 1.3rem; line-height: 1.7; }
[data-translation-missing]::before { content: 'ترجمة مطلوبة — '; display: block; direction: rtl; font: 400 1.3rem/1.7 Tahoma,Arial,sans-serif; color: #8a4a13; background: #fff0db; width: fit-content; padding: .2rem .6rem; margin-block-end: .5rem; }
[data-translation-missing] [data-translation-missing]::before { display: none; }
[dir='ltr'] { unicode-bidi: isolate; }
@media(max-width:900px) {
 .section-image { left: auto; right: auto; }
 #gfh-dossier .g-meta { border-right: 0; padding-right: 0; }
 .portfolio-label { left: 2.4rem; }
 .portfolio-diamonds { right: 1.2rem; }
 .vm-statement { font-size: clamp(2.5rem,6vw,4rem); }
}
:root { --gfh-font-scene: Tahoma,Arial,sans-serif; }
#gfh-dossier h2, #gfh-dossier .g-contact h2 { line-height: 1.4; }
#gfh-dossier .g-contact h2 em { padding-left: 0; padding-right: 3rem; font-size: inherit; }
#gfh-dossier .g-photo:after { background: linear-gradient(270deg,var(--gfh-color-navy),rgba(18,31,45,.35) 38%,rgba(18,31,45,0) 78%); }
.g-register dd { unicode-bidi: plaintext; }
@media(max-width:900px) {
 #gfh-dossier .g-contact h2 em { padding-right: 0; }
 .hero-title-stage { min-height: 22rem; }
}

/* Arabic hero titles share the kicker's right edge. */
.hero-title, .hero-title-hidden { left: auto; right: 0; text-align: right; width: 100%; line-height: 1.4; }
.hero-title-stage { min-height: 3.2em; }
/* The glyph itself covers the stage; no independent vertical wipe. */
.horeca-viewport::after { content: none; }

/* Approved open-source Arabic pairing. Files and OFL licences are self-hosted. */
@font-face { font-family: 'Cairo'; src: url('fonts/Cairo.ttf') format('truetype'); font-style: normal; font-weight: 200 1000; font-display: swap; }
@font-face { font-family: 'IBM Plex Sans Arabic'; src: url('fonts/IBMPlexSansArabic-Regular.ttf') format('truetype'); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: 'IBM Plex Sans Arabic'; src: url('fonts/IBMPlexSansArabic-Medium.ttf') format('truetype'); font-style: normal; font-weight: 500 700; font-display: swap; }
:root {
  --gfh-font-display: 'Cairo',Tahoma,sans-serif;
  --gfh-font-scene: 'Cairo',Tahoma,sans-serif;
  --gfh-font-body: 'IBM Plex Sans Arabic',Tahoma,sans-serif;
  --gfh-font-mono: 'IBM Plex Sans Arabic',Tahoma,sans-serif;
}
/* Match the shared stylesheet's important heading rule within its own layer. */
@layer site {
  html[lang="ar"] h1, html[lang="ar"] h2, html[lang="ar"] h3, html[lang="ar"] h4,
  html[lang="ar"] h1 em, html[lang="ar"] h2 em, html[lang="ar"] h3 em,
  html[lang="ar"] .heading-emphasis, html[lang="ar"] .vm-statement,
  html[lang="ar"] .horeca-text-row, html[lang="ar"] .horeca-pivot-item,
  html[lang="ar"] .g-activity {
    font-family: var(--gfh-font-display) !important;
    font-weight: 500 !important;
    font-style: normal !important;
  }
}
[data-translation-missing]::before { font-family: var(--gfh-font-body); }

/* All three animated headings participate in sizing the shared grid cell. */
#heroPin .hero-title-stage {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  min-height: 0;
  font-size: clamp(2.8rem, 1.8rem + 2vw, 5.4rem);
  margin-bottom: 2.4rem;
}
#heroPin .hero-title, #heroPin .hero-title-hidden {
  position: relative;
  grid-area: 1 / 1;
  inset: auto;
  align-self: start;
  width: 100%;
  max-width: none;
  margin: 0;
  line-height: 1.45;
}
@layer site {
  @media (max-width: 900px) {
    html[lang="ar"] #heroPin .hero-headlines { min-height: 0 !important; font-size: clamp(2.4rem,5.4vw,3.8rem) !important; }
    html[lang="ar"] #heroPin .hero-headlines h1, html[lang="ar"] #heroPin .hero-headlines h2 { line-height: 1.45 !important; }
  }
}
