/* ============================================================
   Faceplastica Academy — She Rises v2, editorial institute cut
   ============================================================ */
:root{
  --flame:#E7551A; --flame-600:#C8460E; --flame-300:#FCA355;
  --euca:#023A3B; --euca-deep:#0E241E;
  --glow:#91B4BB; --cream:#FFECD1; --gold:#F5B824;
  --earth:#211E1D; --earth-70:#4A4542; --earth-55:#6E6663;
  --warm:#FFF8ED; --paper:#FFFDFA;
  --hairline:rgba(33,30,29,.10); --hairline-d:rgba(255,236,209,.18);
  --gold-line:rgba(245,184,36,.55);
  --shadow:0 4px 14px rgba(33,30,29,.06);
  --shadow-lift:0 14px 34px rgba(33,30,29,.11);
  --serif:'Playfair Display',Georgia,serif;
  --sans:'DM Sans',Inter,system-ui,sans-serif;
  --ease:cubic-bezier(0.22,0.61,0.36,1);
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.42'/%3E%3C/svg%3E");
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-block-start:104px}
section[id]{scroll-margin-block-start:104px}
body{background:var(--paper);color:var(--earth-70);font:400 18px/1.68 var(--sans);
  text-align:start;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
@media (max-width:767px){body{font-size:17px}}

h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.14;
  letter-spacing:-0.015em;color:var(--earth);text-wrap:balance}
h1{font-size:clamp(36px,5vw,60px)}
h2{font-size:clamp(28px,3.2vw,42px)}
h3{font-size:21px;line-height:1.32;letter-spacing:-0.008em}
h1 em,h2 em,h3 em{font-style:italic;color:var(--flame);font-weight:600}
.on-dark h1 em,.on-dark h2 em{color:var(--flame-300)}
p{max-inline-size:66ch;text-wrap:pretty}
a{color:var(--euca)}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{
  outline:3px solid rgba(231,85,26,.30);outline-offset:3px;border-radius:4px}
img{max-inline-size:100%}
::selection{background:var(--cream);color:var(--euca)}

.wrap{max-inline-size:1140px;margin-inline:auto;padding-inline:26px}
.wrap-narrow{max-inline-size:860px}
.sec{padding-block:110px}
@media (max-width:767px){.sec{padding-block:64px}}
.sec-h{margin-block-end:52px;max-inline-size:44ch}
.sec-h p{color:var(--earth-55)}
.sec-cream{background:var(--cream)}
.sec-warm{background:var(--warm)}
.sec-line{border-block-start:1px solid var(--hairline)}
.sec-rel{position:relative;overflow:hidden;isolation:isolate}
.sec-rel > .wrap{position:relative;z-index:1}

/* eyebrow with a hairline rule — editorial signature */
.eyebrow{display:flex;align-items:center;gap:12px;font:700 12px/1 var(--sans);
  letter-spacing:.18em;text-transform:uppercase;color:var(--flame);margin-block-end:18px}
.eyebrow::after{content:"";flex:0 0 46px;block-size:1px;background:var(--gold-line)}
.on-dark .eyebrow{color:var(--flame-300)}
.on-dark .eyebrow::after{background:rgba(245,184,36,.45)}

/* ---------- buttons ---------- */
.btn{position:relative;display:inline-flex;align-items:center;gap:11px;color:#fff;overflow:hidden;
  background:linear-gradient(135deg,var(--flame) 0%,var(--flame-300) 100%);
  border:none;font:700 17px/1 var(--sans);letter-spacing:.005em;padding:0 34px;block-size:58px;
  border-radius:999px;text-decoration:none;cursor:pointer;
  box-shadow:0 6px 20px rgba(231,85,26,.24);
  transition:box-shadow .22s var(--ease),transform .22s var(--ease)}
.btn::after{content:"→";font-weight:400;transition:transform .22s var(--ease)}
.btn::before{content:"";position:absolute;inset:0;
  background:linear-gradient(135deg,var(--flame-600) 0%,var(--flame) 100%);
  opacity:0;transition:opacity .22s var(--ease);z-index:-1}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(231,85,26,.32)}
.btn:hover::before{opacity:1}
.btn:hover::after{transform:translateX(3px)}
.btn:active{transform:scale(.98)}

.btn-ghost{display:inline-flex;align-items:center;gap:10px;background:transparent;color:var(--euca);
  border:1px solid rgba(2,58,59,.32);font:500 16px/1 var(--sans);padding:0 26px;block-size:50px;
  border-radius:999px;text-decoration:none;cursor:pointer;
  transition:background .22s var(--ease),border-color .22s var(--ease),transform .22s var(--ease)}
.btn-ghost::after{content:"→";font-weight:400;transition:transform .22s var(--ease)}
.btn-ghost:hover{background:rgba(2,58,59,.05);border-color:var(--euca);transform:translateY(-1px)}
.btn-ghost:hover::after{transform:translateX(3px)}
.btn-ghost:active{transform:scale(.98)}
.on-dark .btn-ghost{color:var(--cream);border-color:rgba(255,236,209,.42)}
.on-dark .btn-ghost:hover{background:rgba(255,236,209,.08);border-color:var(--cream)}
.cta-row{display:flex;gap:14px;flex-wrap:wrap;align-items:center}

/* text link with animated rule */
.link-more{display:inline-flex;align-items:center;gap:8px;font-weight:500;text-decoration:none;
  border-block-end:1px solid var(--gold-line);padding-block-end:3px;
  transition:border-color .22s var(--ease),gap .22s var(--ease)}
.link-more:hover{border-color:var(--flame);gap:12px}

/* ---------- topbar ---------- */
.topbar{background:rgba(255,253,250,.88);backdrop-filter:saturate(1.2);
  border-block-end:1px solid var(--hairline);position:sticky;inset-block-start:0;z-index:50}
.topbar .row{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:20px}
.brand{display:inline-flex;align-items:center;gap:12px;font-family:var(--serif);font-weight:700;
  font-size:21px;color:var(--euca);text-decoration:none;letter-spacing:-0.015em;line-height:1.05}
.brand .mark{inline-size:auto;block-size:38px;flex:0 0 auto}
.brand .wordmark{display:flex;flex-direction:column}
.brand .wordmark small{font-family:var(--sans);font-weight:500;font-size:11px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--earth-55);margin-block-start:3px}
.nav{display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.nav a{position:relative;font:500 15px/1 var(--sans);color:var(--earth-70);text-decoration:none;
  padding-block:4px;transition:color .16s var(--ease)}
.nav a::after{content:"";position:absolute;inset-inline:0;inset-block-end:-2px;block-size:1.5px;
  background:var(--flame);transform:scaleX(0);transform-origin:inline-start;
  transition:transform .22s var(--ease)}
.nav a:hover{color:var(--euca)}
.nav a:hover::after{transform:scaleX(1)}
.nav a[aria-current="page"]{color:var(--euca);font-weight:700}
.nav a[aria-current="page"]::after{transform:scaleX(1)}
.lang{font:600 13px/1 var(--sans);letter-spacing:.06em;color:var(--earth-55);
  border:1px solid var(--hairline);border-radius:999px;padding:9px 15px;user-select:none}
.lang span[aria-current]{color:var(--euca)}
@media (max-width:767px){html{scroll-padding-block-start:20px}section[id]{scroll-margin-block-start:20px}
  .topbar{position:static}.topbar .row{flex-direction:column;align-items:flex-start;gap:13px}
  .nav{gap:16px 18px}.nav a{font-size:14.5px}.lang{padding:7px 12px;font-size:12px}}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;isolation:isolate;padding-block:118px;
  background:radial-gradient(120% 100% at 78% 12%,#0A4A46 0%,var(--euca) 46%,var(--euca-deep) 100%);
  color:var(--cream)}
.hero::after{content:"";position:absolute;inset:0;background-image:var(--grain);
  opacity:.055;mix-blend-mode:overlay;pointer-events:none;z-index:0}
.hero .grid{display:grid;grid-template-columns:1.08fr .92fr;gap:64px;align-items:center;
  position:relative;z-index:1}
.hero h1{color:var(--cream);font-size:clamp(38px,5.2vw,64px);letter-spacing:-0.02em}
.hero .tagline{display:flex;align-items:center;gap:12px;font-family:var(--serif);font-style:italic;
  color:var(--glow);font-size:18px;margin-block-end:22px}
.hero .tagline::before{content:"";inline-size:34px;block-size:1px;background:var(--gold-line)}
.hero .sub{font-weight:300;font-size:20px;line-height:1.62;color:rgba(255,236,209,.82);
  margin-block:26px 38px;max-inline-size:46ch}
/* real brand leaf field (asset from the 12-week landing) */
.leaves{position:absolute;inset:0;z-index:0;pointer-events:none;
  background:url("assets/leaves.svg") center/cover no-repeat;opacity:.9}
.leaves-soft{opacity:.55}
.on-dark .leaves{filter:brightness(1.6)}

.leaf{position:absolute;background:var(--glow);opacity:.10;border-radius:60% 60% 60% 0;
  pointer-events:none;z-index:0}
.leaf-1{inline-size:360px;block-size:360px;inset-block-start:-96px;inset-inline-end:-76px;transform:rotate(40deg)}
.leaf-2{inline-size:230px;block-size:230px;inset-block-end:-64px;inset-inline-start:-54px;transform:rotate(200deg)}
.leaf-3{inline-size:150px;block-size:150px;inset-block-start:22%;inset-inline-start:8%;transform:rotate(118deg);opacity:.06}
.leaf-flame{background:var(--flame)}
@media (max-width:900px){.hero .grid{grid-template-columns:1fr;gap:40px}.hero{padding-block:76px}}

.hero-media{position:relative}
.float-card{position:absolute;inset-block-end:-20px;inset-inline-start:-20px;
  background:var(--cream);color:var(--euca);border-radius:16px;padding:18px 24px;
  box-shadow:0 16px 38px rgba(0,0,0,.32)}
.float-card .big{font-family:var(--serif);font-weight:700;font-size:28px;line-height:1.05;
  display:block;letter-spacing:-0.02em}
.float-card .lbl2{font:500 12.5px/1.4 var(--sans);letter-spacing:.06em;text-transform:uppercase;
  color:rgba(2,58,59,.66)}
@media (max-width:900px){.float-card{inset-inline-start:14px;inset-block-end:14px;padding:14px 18px}
  .float-card .big{font-size:24px}}

/* ---------- definition line ---------- */
.defline{padding-block:84px}
.defline p{font-family:var(--serif);font-weight:600;font-size:clamp(23px,2.6vw,33px);
  line-height:1.42;letter-spacing:-0.015em;color:var(--earth);max-inline-size:30ch;
  padding-inline-start:30px;border-inline-start:2px solid var(--flame)}
@media (max-width:767px){.defline{padding-block:52px}.defline p{padding-inline-start:20px}}

/* ---------- boundaries: the visual centre ---------- */
.bounds-box{position:relative;overflow:hidden;isolation:isolate;color:var(--cream);border-radius:26px;
  padding:64px;box-shadow:0 22px 54px rgba(2,58,59,.20);
  background:radial-gradient(110% 120% at 88% 0%,#0A4A46 0%,var(--euca) 52%,var(--euca-deep) 100%)}
.bounds-box::after{content:"";position:absolute;inset:0;background-image:var(--grain);
  opacity:.05;mix-blend-mode:overlay;pointer-events:none}
.bounds-box > *{position:relative;z-index:1}
.bounds-box h2{color:var(--cream);max-inline-size:22ch}
.bounds-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-block-start:44px}
.bounds-col{padding-inline:0 40px}
.bounds-col + .bounds-col{padding-inline:40px 0;border-inline-start:1px solid rgba(245,184,36,.28)}
.bounds-col h3{color:var(--cream);font-family:var(--sans);font-weight:700;font-size:13px;
  letter-spacing:.18em;text-transform:uppercase;padding-block-end:16px;margin-block-end:22px;
  border-block-end:1px solid var(--hairline-d)}
.bounds-col ul{list-style:none}
.bounds-col li{padding-inline-start:34px;position:relative;margin-block-end:16px;line-height:1.55;
  color:rgba(255,236,209,.92)}
.bounds-col li::before{position:absolute;inset-inline-start:0;inset-block-start:1px;font-weight:700;
  inline-size:20px;block-size:20px;display:flex;align-items:center;justify-content:center;
  border-radius:50%;font-size:11px}
.col-do li::before{content:"✓";color:#fff;background:var(--flame)}
.col-dont li::before{content:"✕";color:var(--euca-deep);background:var(--glow)}
@media (max-width:900px){.bounds-box{padding:38px 26px;border-radius:18px}
  .bounds-grid{grid-template-columns:1fr;gap:34px}
  .bounds-col,.bounds-col + .bounds-col{padding-inline:0;border-inline-start:none}
  .bounds-col + .bounds-col{padding-block-start:34px;border-block-start:1px solid rgba(245,184,36,.28)}}

/* ---------- method trio ---------- */
.method-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:44px;margin-block-end:44px}
.method-grid > div{position:relative;padding-block-start:26px;border-block-start:1px solid var(--hairline)}
.method-grid > div::before{content:"";position:absolute;inset-block-start:-1px;inset-inline-start:0;
  inline-size:44px;block-size:1px;background:var(--flame)}
.method-grid h3{margin-block-end:14px}
.method-note{font-size:15px;line-height:1.6;color:var(--earth-55);
  border-inline-start:2px solid var(--gold-line);padding-inline-start:20px;max-inline-size:74ch}
@media (max-width:900px){.method-grid{grid-template-columns:1fr;gap:32px}}

/* ---------- cards ---------- */
.prog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.prog-grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:26px}
.card{position:relative;overflow:hidden;background:var(--paper);border:none;border-radius:18px;
  box-shadow:var(--shadow);padding:36px 32px;display:flex;flex-direction:column;gap:14px;
  transition:transform .28s var(--ease),box-shadow .28s var(--ease)}
.card::before{content:"";position:absolute;inset-block-start:0;inset-inline:0;block-size:2px;
  background:linear-gradient(90deg,var(--flame),var(--flame-300));
  transform:scaleX(0);transform-origin:inline-start;transition:transform .32s var(--ease)}
.card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift)}
.card:hover::before{transform:scaleX(1)}
.card .meta{font:500 13px/1.55 var(--sans);letter-spacing:.04em;color:var(--earth-55);
  text-transform:uppercase}
.card p:not(.meta){color:var(--earth-70)}
.card .btn-ghost{align-self:flex-start;margin-block-start:auto}
@media (max-width:900px){.prog-grid,.prog-grid-2{grid-template-columns:1fr}}

/* ---------- steps ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:30px}
.step{position:relative;padding-block-start:24px;border-block-start:1px solid var(--hairline)}
.step .num{font-family:var(--serif);font-weight:600;font-size:34px;line-height:1;color:var(--flame);
  display:block;margin-block-end:14px;letter-spacing:-0.02em}
.step p{font-size:16px;line-height:1.6}
@media (max-width:900px){.steps{grid-template-columns:1fr 1fr;gap:26px}}
@media (max-width:560px){.steps{grid-template-columns:1fr}}
.small-note{font-size:15px;color:var(--earth-55);margin-block-start:34px;max-inline-size:60ch}

/* ---------- founder ---------- */
.founder-row{display:grid;grid-template-columns:330px 1fr;gap:52px;align-items:start}
.founder-row .photo-frame{position:relative;isolation:isolate}
.founder-row .photo-frame::after{content:"";position:absolute;inset-block-start:18px;inset-inline-start:18px;
  inline-size:100%;block-size:100%;border:1px solid var(--gold-line);border-radius:18px;z-index:0}
.founder-row .photo-img{position:relative;z-index:1;aspect-ratio:1/1;border-radius:18px}
.founder-row h3{font-size:27px;margin-block-end:6px}
.founder-row .role{font:700 12px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;
  color:var(--flame);margin-block:0 18px}
@media (max-width:767px){.founder-row{grid-template-columns:1fr;gap:36px}
  .founder-row .photo-frame{max-inline-size:300px}}

/* ---------- instructors ---------- */
.people{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.person{position:relative;background:var(--paper);border-radius:20px;overflow:hidden;
  box-shadow:var(--shadow);transition:transform .28s var(--ease),box-shadow .28s var(--ease)}
.person:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift)}
.person .pimg{position:relative;aspect-ratio:1/1;overflow:hidden}
.person .pimg img{inline-size:100%;block-size:100%;object-fit:cover;display:block;
  transition:transform .5s var(--ease)}
.person:hover .pimg img{transform:scale(1.03)}
.person .field{position:absolute;inset-block-end:12px;inset-inline-start:12px;
  background:rgba(2,58,59,.86);color:var(--cream);border-radius:999px;padding:7px 15px;
  font:700 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase}
.person .pbody{padding:26px 26px 30px}
.person h3{font-size:22px;margin-block-end:4px}
.person .role{font:700 11.5px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;
  color:var(--flame);margin-block-end:14px}
.person .exp{font-size:15.5px;line-height:1.55;color:var(--earth-55)}
.people-4{grid-template-columns:repeat(4,1fr);gap:22px}
.people-4 .person .pbody{padding:22px 22px 26px}
.people-4 .person h3{font-size:19.5px}
.people-4 .person .exp{font-size:14.5px}
@media (max-width:1100px){.people-4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:900px){.people{grid-template-columns:1fr}
  .people-4{grid-template-columns:repeat(2,1fr);gap:16px}}
@media (max-width:560px){.people-4{grid-template-columns:1fr}}

/* founder credential line */
.founder-row .cred{display:inline-flex;align-items:center;gap:9px;
  font:700 12px/1 var(--sans);letter-spacing:.13em;text-transform:uppercase;
  color:var(--earth-55);margin-block-end:22px;padding-block-end:16px;
  border-block-end:1px solid var(--gold-line)}
.founder-row .cred::before{content:"";inline-size:5px;block-size:5px;border-radius:50%;
  background:var(--flame);flex:0 0 auto}

/* group label above a faculty grid */
.group-h{display:flex;align-items:baseline;gap:16px;margin-block:44px 22px}
.group-h:first-of-type{margin-block-start:0}
.group-h span{font:700 12px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;
  color:var(--flame);white-space:nowrap}
.group-h i{flex:1;block-size:1px;background:var(--gold-line);display:block}

/* ---------- faculty roster (no photo) ---------- */
.roster{border-block-start:1px solid var(--hairline)}
.roster-row{display:grid;grid-template-columns:minmax(190px,1fr) minmax(150px,.7fr) 2fr;
  gap:12px 28px;padding-block:20px;border-block-end:1px solid var(--hairline);align-items:baseline}
.roster-row .nm{font-family:var(--serif);font-weight:600;font-size:20px;color:var(--earth);
  letter-spacing:-0.01em}
.roster-row .fl{font:700 11.5px/1.4 var(--sans);letter-spacing:.15em;text-transform:uppercase;
  color:var(--flame)}
.roster-row .ln{font-size:15.5px;line-height:1.55;color:var(--earth-55)}
@media (max-width:820px){.roster-row{grid-template-columns:1fr;gap:6px;padding-block:18px}}

/* ---------- documents ---------- */
.docs{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.doc-card{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--hairline);
  border-radius:18px;padding:28px 26px 24px;box-shadow:var(--shadow);
  transition:transform .28s var(--ease),box-shadow .28s var(--ease),border-color .28s var(--ease)}
.doc-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift);border-color:var(--gold-line)}
.doc-card .kind{font:700 11.5px/1 var(--sans);letter-spacing:.17em;text-transform:uppercase;
  color:var(--flame);margin-block-end:14px}
.doc-card h3{font-size:20px;line-height:1.3;margin-block-end:10px}
.doc-card p{font-size:15px;line-height:1.55;color:var(--earth-55);margin-block-end:20px}
.doc-card .go{margin-block-start:auto;font:500 15px/1 var(--sans);color:var(--earth);
  text-decoration:none;border-block-end:1px solid var(--gold-line);padding-block-end:4px;
  align-self:flex-start;transition:color .2s var(--ease),border-color .2s var(--ease)}
.doc-card .go:hover{color:var(--flame);border-color:var(--flame)}
.doc-card .meta2{font:500 13px/1.5 var(--sans);color:var(--earth-55);margin-block-start:14px}
@media (max-width:900px){.docs{grid-template-columns:1fr}}

/* =====================================================================
   ARABIC / RTL
   Font pairing: IBM Plex Sans Arabic for headings and UI (modern, the
   register Dubai institutions use), Noto Naskh Arabic for running prose
   and legal documents (Naskh is what formal Arabic documents are set in).
   ===================================================================== */
html[dir="rtl"]{
  --serif:'IBM Plex Sans Arabic','Noto Naskh Arabic',sans-serif;
  --sans:'IBM Plex Sans Arabic','Noto Naskh Arabic',sans-serif;
  --naskh:'Noto Naskh Arabic','IBM Plex Sans Arabic',serif;
}
/* ⛔ letter-spacing breaks Arabic joined script — kill it everywhere.
   uppercase is a no-op in Arabic; drop it so nothing depends on it. */
html[dir="rtl"] *{letter-spacing:normal !important;text-transform:none !important}

html[dir="rtl"] body{font-size:17.5px;line-height:1.85}
html[dir="rtl"] h1,html[dir="rtl"] h2,html[dir="rtl"] h3{font-weight:600;line-height:1.4}
html[dir="rtl"] h1{font-size:clamp(30px,4.4vw,52px)}
html[dir="rtl"] h2{font-size:clamp(25px,3.2vw,38px)}
/* italic accents do not exist in Arabic type — mark them with colour only */
html[dir="rtl"] h1 em,html[dir="rtl"] h2 em{font-style:normal;font-weight:700}

/* running prose and legal documents in Naskh */
html[dir="rtl"] .prose p,html[dir="rtl"] .prose li,
html[dir="rtl"] .person .exp,html[dir="rtl"] .roster-row .ln,
html[dir="rtl"] .doc-card p,html[dir="rtl"] .card p{
  font-family:var(--naskh);line-height:1.95}
html[dir="rtl"] .prose > p:first-of-type{font-family:var(--naskh);font-weight:500;line-height:1.75}
html[dir="rtl"] .prose h3{font-family:var(--serif);font-weight:600}

/* eyebrows and small caps lines: no tracking, slightly larger to stay legible */
html[dir="rtl"] .eyebrow,html[dir="rtl"] .person .role,html[dir="rtl"] .person .field,
html[dir="rtl"] .col-h,html[dir="rtl"] .contact-card .lbl,html[dir="rtl"] .c-item .lbl,
html[dir="rtl"] .doc-card .kind,html[dir="rtl"] .reg-card .office,html[dir="rtl"] .group-h span,
html[dir="rtl"] .roster-row .fl,html[dir="rtl"] .founder-row .cred,html[dir="rtl"] .stat-l{
  font-size:13.5px;font-weight:600}

/* directional glyphs and gradients */
html[dir="rtl"] .btn::after,html[dir="rtl"] .btn-ghost::after{content:"←"}
html[dir="rtl"] .btn:hover::after,html[dir="rtl"] .btn-ghost:hover::after{transform:translateX(-3px)}
html[dir="rtl"] .hero{background:radial-gradient(120% 100% at 22% 12%,#0A4A46 0%,var(--euca) 46%,var(--euca-deep) 100%)}
html[dir="rtl"] .div-stripe{background:linear-gradient(270deg,transparent 0%,var(--glow) 30%,var(--flame) 62%,transparent 100%)}
html[dir="rtl"] .leaves{transform:scaleX(-1)}
html[dir="rtl"] .quote::before{content:"”"}

/* latin runs inside Arabic text: numbers, names, phone, marks */
html[dir="rtl"] .ltr{direction:ltr;unicode-bidi:isolate;display:inline-block}
/* same isolation without touching layout — for numbers that are already block-level */
html[dir="rtl"] .ltr-num{direction:ltr;unicode-bidi:isolate}

/* Arabic labels are full names, not acronyms — they must be allowed to wrap,
   and on a phone the definition list reads better stacked. */
html[dir="rtl"] .reg-card dt{white-space:normal}
@media (max-width:560px){
  html[dir="rtl"] .reg-card dl{grid-template-columns:1fr;gap:2px 0}
  html[dir="rtl"] .reg-card dd{margin-block-end:14px}
  html[dir="rtl"] .reg-card dd:last-of-type{margin-block-end:0}
}

/* language switch: the active language sits first in reading order */
.lang a{color:var(--earth-55);text-decoration:none;transition:color .18s var(--ease)}
.lang a:hover{color:var(--flame)}
.lang [aria-current="true"]{color:var(--euca);font-weight:700}
.on-dark .lang a{color:rgba(255,236,209,.7)}

/* Registered-mark sign. ® is a circled letter: its painted ink is only ~45% of its em
   box, so anything below full size reads as a speck. The sign is therefore set at the
   size of the text it sits in, and only raised. Capped in absolute terms so display
   headings do not get a logo-sized ring: every text size on the site up to 22px stays
   1:1, only h1/h2 are limited. */
.rtm{font-size:min(1em,22px);vertical-align:.3em;font-weight:600;letter-spacing:0;line-height:0}
html[dir="rtl"] .rtm{vertical-align:.26em}
h1 .rtm,h2 .rtm{vertical-align:.85em}
html[dir="rtl"] h1 .rtm,html[dir="rtl"] h2 .rtm{vertical-align:.7em}

/* "last updated" line on legal documents */
.updated{font:500 13px/1 var(--sans);letter-spacing:.04em;color:var(--earth-55);
  margin-block-end:26px;padding-block-end:14px;border-block-end:1px solid var(--hairline);
  max-inline-size:70ch}

/* ---------- student quotes ---------- */
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.quote{position:relative;background:var(--warm);border-radius:18px;padding:38px 32px 32px;
  box-shadow:var(--shadow);transition:transform .28s var(--ease),box-shadow .28s var(--ease)}
.quote::before{content:"“";position:absolute;inset-block-start:10px;inset-inline-start:26px;
  font-family:var(--serif);font-weight:700;font-size:64px;line-height:1;color:var(--flame);opacity:.3}
.quote:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift)}
.quote p{font-family:var(--serif);font-weight:600;font-size:21px;line-height:1.42;color:var(--earth);
  letter-spacing:-0.01em;position:relative}
@media (max-width:900px){.quotes{grid-template-columns:1fr}}

/* ---------- faq ---------- */
.faq{max-inline-size:800px}
.faq details{border-block-end:1px solid var(--hairline);transition:border-color .22s var(--ease)}
.faq details[open]{border-color:var(--gold-line)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px;
  padding-block:24px;font:500 19px/1.45 var(--sans);color:var(--earth);
  transition:color .16s var(--ease)}
.faq summary:hover{color:var(--flame)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--flame);font:400 26px/1 var(--sans);flex:0 0 auto;
  transition:transform .22s var(--ease)}
.faq details[open] summary::after{content:"–";transform:rotate(180deg)}
.faq .a{padding-block-end:26px;color:var(--earth-55);max-inline-size:62ch}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:60px;align-items:start}
.c-item{margin-block-end:24px;padding-block-end:24px;border-block-end:1px solid var(--hairline)}
.c-item:last-of-type{border-block-end:none}
.c-item .lbl{font:700 12px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;
  color:var(--flame);margin-block-end:9px}
.c-item p:not(.lbl){font-family:var(--serif);font-size:21px;color:var(--earth);line-height:1.35}
.form-card{background:var(--paper);border-radius:20px;padding:38px 34px;box-shadow:var(--shadow-lift)}
form .f{margin-block-end:20px;display:flex;flex-direction:column;gap:7px}
label{font:500 13px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--earth-55)}
input,textarea{font:400 17px/1.5 var(--sans);color:var(--earth);background:var(--paper);
  border:1px solid var(--hairline);border-radius:12px;padding:14px 16px;inline-size:100%;
  transition:border-color .22s var(--ease),box-shadow .22s var(--ease)}
input:hover,textarea:hover{border-color:rgba(33,30,29,.22)}
input:focus,textarea:focus{border-color:var(--flame)}
textarea{min-block-size:130px;resize:vertical}
.form-note{font-size:14px;color:var(--earth-55);margin-block-start:14px}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr;gap:40px}
  .form-card{padding:30px 24px}}

/* ---------- photos ---------- */
.photo-img{inline-size:100%;block-size:auto;border-radius:18px;box-shadow:var(--shadow);
  object-fit:cover;display:block}
.hero .photo-img{box-shadow:0 22px 54px rgba(0,0,0,.34)}

/* ghost display word behind a section */
.ghost{position:absolute;font-family:var(--serif);font-weight:600;
  font-size:clamp(70px,11vw,132px);letter-spacing:-0.03em;line-height:.9;
  color:rgba(33,30,29,.045);z-index:0;pointer-events:none;user-select:none;white-space:nowrap}
.on-dark .ghost,.ghost.on-dark{color:rgba(255,236,209,.055)}
.ghost-r{inset-inline-end:-1.5%;inset-block-start:2%}
.ghost-l{inset-inline-start:-2%;inset-block-start:4%}

/* gradient hairline between sections */
.div-stripe{block-size:2px;border:none;margin:0;
  background:linear-gradient(90deg,transparent 0%,var(--glow) 30%,var(--flame) 62%,transparent 100%);
  opacity:.5}

/* trust strip — four cells, one frame */
.stat-row{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--hairline);
  border-radius:18px;overflow:hidden;background:var(--paper);box-shadow:var(--shadow)}
.stat-cell{padding:28px 18px;text-align:center;border-inline-end:1px solid var(--hairline)}
.stat-cell:last-child{border-inline-end:0}
.stat-n{font-family:var(--serif);font-weight:700;font-size:clamp(26px,2.6vw,34px);line-height:1;
  color:var(--flame);display:block;margin-block-end:8px;letter-spacing:-0.02em}
.stat-l{font:500 13px/1.45 var(--sans);letter-spacing:.04em;color:var(--earth-55)}
@media (max-width:640px){.stat-row{grid-template-columns:1fr 1fr}
  .stat-cell:nth-child(2){border-inline-end:0}
  .stat-cell:nth-child(3),.stat-cell:nth-child(4){border-block-start:1px solid var(--hairline)}}

/* ---------- registrations / credentials strip ---------- */
.reg-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;margin-block-start:8px}
.reg-card{position:relative;background:var(--paper);border:1px solid var(--hairline);border-radius:18px;
  padding:34px 32px;box-shadow:var(--shadow)}
.reg-card .reg-h{display:flex;align-items:baseline;justify-content:space-between;gap:16px;
  padding-block-end:16px;margin-block-end:18px;border-block-end:1px solid var(--gold-line)}
.reg-card .office{font:700 12px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--flame)}
.reg-card .num{font-family:var(--serif);font-weight:700;font-size:22px;color:var(--earth);letter-spacing:-0.01em}
.reg-card dl{display:grid;grid-template-columns:auto 1fr;gap:10px 20px;font-size:15.5px}
.reg-card dt{font-weight:500;color:var(--earth-55);white-space:nowrap}
.reg-card dd{color:var(--earth)}
.reg-card .quote-line{margin-block-start:20px;padding-inline-start:18px;
  border-inline-start:2px solid var(--gold-line);font-size:15px;line-height:1.55;color:var(--earth-55)}
@media (max-width:900px){.reg-grid{grid-template-columns:1fr}.reg-card{padding:26px 22px}}

/* class-41 highlight band */
.band{position:relative;overflow:hidden;isolation:isolate;border-radius:24px;padding:48px 52px;
  background:linear-gradient(135deg,var(--cream) 0%,var(--warm) 100%);
  border:1px solid var(--gold-line)}
.band .k{font-family:var(--serif);font-weight:700;font-size:clamp(26px,3vw,36px);line-height:1.25;
  letter-spacing:-0.015em;color:var(--euca);max-inline-size:28ch}
.band .src{font:500 13px/1.5 var(--sans);letter-spacing:.04em;color:var(--earth-55);margin-block-start:20px}
@media (max-width:767px){.band{padding:32px 24px;border-radius:16px}}

/* contact — plain details, no form */
.contact-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.contact-card{background:var(--paper);border-radius:18px;box-shadow:var(--shadow);padding:32px 28px;
  transition:transform .28s var(--ease),box-shadow .28s var(--ease)}
.contact-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift)}
.contact-card .lbl{font:700 12px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;
  color:var(--flame);margin-block-end:12px}
.contact-card .val{font-family:var(--serif);font-weight:600;font-size:21px;line-height:1.35;
  color:var(--earth);letter-spacing:-0.01em}
.contact-card .val a{color:var(--earth);text-decoration:none;border-block-end:1px solid var(--gold-line)}
.contact-card .val a:hover{color:var(--flame);border-color:var(--flame)}
.contact-card .sub{font-size:15px;color:var(--earth-55);margin-block-start:8px}
@media (max-width:900px){.contact-cards{grid-template-columns:1fr}}

/* ---------- prose ---------- */
.prose{max-inline-size:70ch}
.prose > p:first-of-type{font-family:var(--serif);font-weight:600;font-size:clamp(21px,2.1vw,26px);
  line-height:1.45;letter-spacing:-0.012em;color:var(--earth);margin-block-end:24px;max-inline-size:50ch}
.prose h3{margin-block:40px 14px}
.prose p{margin-block-end:16px}
.prose ul{margin-block:0 16px;padding-inline-start:24px}
.prose li{margin-block-end:9px}

/* ---------- page hero (subpages) ---------- */
.page-hero{position:relative;overflow:hidden;isolation:isolate;padding-block:86px 78px;
  background:radial-gradient(120% 130% at 82% 0%,#0A4A46 0%,var(--euca) 50%,var(--euca-deep) 100%);
  color:var(--cream)}
.page-hero::after{content:"";position:absolute;inset:0;background-image:var(--grain);
  opacity:.055;mix-blend-mode:overlay;pointer-events:none}
.page-hero .wrap{position:relative;z-index:1}
.page-hero h1{color:var(--cream);max-inline-size:19ch}
.page-hero .lede{font-weight:300;font-size:20px;line-height:1.6;color:rgba(255,236,209,.82);
  margin-block-start:20px;max-inline-size:54ch}

/* ---------- legal docs ---------- */
.doc-nav{display:flex;gap:12px;flex-wrap:wrap;margin-block-start:30px}
.doc-nav a{font:500 15px/1 var(--sans);color:var(--cream);
  border:1px solid rgba(255,236,209,.42);border-radius:999px;padding:12px 20px;text-decoration:none;
  transition:background .22s var(--ease),border-color .22s var(--ease)}
.doc-nav a:hover{background:rgba(255,236,209,.09);border-color:var(--cream)}

/* company details */
.detail-card{background:var(--warm);border-radius:20px;box-shadow:var(--shadow);padding:38px 34px;
  max-inline-size:760px}
.detail-card .c-item:last-child{margin-block-end:0;padding-block-end:0}

/* ---------- footer ---------- */
.foot{position:relative;overflow:hidden;isolation:isolate;padding-block:72px 44px;font-size:15px;
  background:radial-gradient(100% 140% at 12% 0%,#0A4A46 0%,var(--euca) 50%,var(--euca-deep) 100%);
  color:rgba(255,236,209,.78)}
.foot::after{content:"";position:absolute;inset:0;background-image:var(--grain);opacity:.05;
  mix-blend-mode:overlay;pointer-events:none}
.foot .wrap{position:relative;z-index:1}
.foot-top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:44px;
  padding-block-end:40px;border-block-end:1px solid var(--hairline-d)}
.foot .brand-f{display:inline-flex;align-items:center;gap:13px;font-family:var(--serif);
  font-weight:700;font-size:23px;color:var(--cream);letter-spacing:-0.015em;text-decoration:none}
.foot .brand-f .mark{inline-size:auto;block-size:44px;flex:0 0 auto}
.foot .tag{font-family:var(--serif);font-style:italic;color:var(--glow);font-size:18px;
  margin-block-start:14px}
.foot .col-h{font:700 12px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;
  color:var(--flame-300);margin-block-end:18px}
.foot .col ul{list-style:none}
.foot .col li{margin-block-end:11px}
.foot .col a{color:rgba(255,236,209,.82);text-decoration:none;transition:color .16s var(--ease)}
.foot .col a:hover{color:var(--cream)}
.foot-bottom{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
  padding-block-start:30px}
.foot .legal p{margin-block-end:6px}
.foot .tiny{font-size:13px;color:rgba(255,236,209,.55)}
@media (max-width:900px){.foot-top{grid-template-columns:1fr;gap:32px}}

/* 404 */
.err{min-block-size:58vh;display:flex;align-items:center}

/* ---------- reveal, staggered ---------- */
.rv{opacity:0;transform:translateY(10px);
  transition:opacity .52s var(--ease),transform .52s var(--ease);
  transition-delay:calc(var(--d,0) * 90ms)}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .rv{opacity:1;transform:none;transition:none}
  html{scroll-behavior:auto}
  .btn,.btn-ghost,.card,.quote,.nav a::after{transition:none}
}
