/* WASSIMVISUALS V3.0.9 — Locale-safe language popup and type rhythm
   Last-loaded overrides: no database migration and no changes to project effects.
   UI QA validated on 320 / 390 / 768 / 1024 / 1440 viewports. */

/* Menu anchor: physical left/right are intentional.  The selector sits at
   opposite sides of the grid in LTR and RTL; inline-end used the wrong edge. */
body.wv3 .wv3-header-frame .wv-lang-switch{
  position:relative; direction:ltr; overflow:visible;
}
body.wv3 .wv3-header-frame .wv-lang-options{
  inset-inline-start:auto; inset-inline-end:auto;
  left:auto; right:0;
  width:max-content; min-width:min(215px,calc(100vw - 28px));
  max-width:calc(100vw - 28px);
  box-sizing:border-box; direction:ltr;
  overflow-x:hidden;
}
html[dir="rtl"] body.wv3 .wv3-header-frame .wv-lang-options{
  inset-inline-start:auto; inset-inline-end:auto;
  right:auto; left:0;
}
body.wv3 .wv3-header-frame .wv-lang-options>a{
  display:flex; align-items:center; min-width:0; max-width:100%;
  padding:11px 12px; min-height:45px; line-height:1.5;
}
body.wv3 .wv3-header-frame .wv-lang-name{min-width:0; white-space:normal; line-height:1.5}
body.wv3 .wv3-header-frame .wv-lang-options [lang="ar"],
body.wv3 .wv3-header-frame .wv-lang-options [lang="ary"]{
  font-family:Alexandria,Tahoma,Arial,sans-serif;
}
@media(max-width:700px){
 body.wv3 .wv3-header-frame .wv-lang-options{min-width:min(205px,calc(100vw - 28px));}
}

/* Shared vertical rhythm; avoid intersecting title/paragraph glyph boxes. */
body.wv3 :is(.wv3-hero-copy,.wv3-section-heading>div,.wv3-philosophy-main,
              .wv3-service,.wv3-process-card,.wv3-contact .wv3-shell){min-width:0}
body.wv3 :is(.wv3-hero-title,.wv3-section-heading h2,.wv3-philosophy-main h2,
              .wv3-contact h2,.wv3-service h3,.wv3-process-card h3){
  max-width:100%; overflow-wrap:break-word; word-break:normal; text-wrap:balance;
}
body.wv3 .wv3-hero-title{
  line-height:1.14; letter-spacing:-.052em;
  padding-block:.10em; margin-block:clamp(26px,3vw,48px) clamp(18px,2.5vw,30px)!important;
}
body.wv3 .wv3-hero-desc{max-width:590px;line-height:1.82}
body.wv3 .wv3-hero-links{align-items:center;flex-wrap:wrap;row-gap:12px}
body.wv3 .wv3-section-heading h2{line-height:1.2;letter-spacing:-.034em;word-spacing:.035em}
body.wv3 .wv3-section-heading p{line-height:1.78;margin-block-start:clamp(15px,2vw,26px)}
body.wv3 .wv3-philosophy-main h2{line-height:1.19;letter-spacing:-.022em;word-spacing:.04em;font-weight:730;font-size:clamp(44px,6.05vw,99px)}
body.wv3 .wv3-philosophy-main p{
  line-height:1.83; width:min(100%,660px); max-width:100%;
  text-align:start;margin-block-start:clamp(26px,3vw,44px);margin-inline:0!important;
}
body.wv3 .wv3-service h3{line-height:1.3;letter-spacing:-.028em}
body.wv3 .wv3-service p{line-height:1.7}
body.wv3 .wv3-process-card h3{line-height:1.25;letter-spacing:-.025em}
body.wv3 .wv3-process-card p{line-height:1.72}
body.wv3 .wv3-contact h2{
  font-size:clamp(56px,8.4vw,120px);line-height:1.21;letter-spacing:-.042em;
  text-wrap:balance;
}
body.wv3 .wv3-contact p{line-height:1.78;max-width:720px}
body.wv3 .wv3-project h3{line-height:1.35}
body.wv3 :is(.wv3-project-overline,.wv3-overline,.wv3-work-note,.wv3-kicker){line-height:1.6}
body.wv3 .wv3-process-card,
body.wv3 .wv3-service,
body.wv3 .wv3-contact-actions{min-width:0}

/* Scroll Story is pinned, so it needs a generously sized text-safe region. */
body.wv3 .wv-vision-headlines{height:clamp(215px,28vw,395px);max-height:100%}
body.wv3 .wv-vision-headline{
  padding-block:.08em; line-height:1.15; letter-spacing:-.044em;
  overflow-wrap:break-word; word-break:normal; text-wrap:balance;
}
body.wv3 .wv-vision-core{top:13%;bottom:17%}

/* Arabic + Moroccan Darija: script needs more leading and zero tracking.
   Scope using dir=rtl rather than lang=ar so the ary locale is never omitted. */
html[dir="rtl"] body.wv3 :is(.wv3-hero-title,.wv3-section-heading h2,
    .wv3-philosophy-main h2,.wv3-service h3,.wv3-process-card h3,
    .wv3-contact h2,.wv-vision-headline,.wv3-portfolio-intro h1){
  letter-spacing:0!important; text-transform:none;
  word-break:normal;overflow-wrap:break-word;
}
html[dir="rtl"] body.wv3 .wv3-hero-title{line-height:1.5;font-weight:780;word-spacing:0}
html[dir="rtl"] body.wv3 .wv3-section-heading h2{line-height:1.52}
html[dir="rtl"] body.wv3 .wv3-philosophy-main h2{
  font-size:clamp(45px,5.8vw,88px);line-height:1.56;word-spacing:0;
}
html[dir="rtl"] body.wv3 :is(.wv3-service h3,.wv3-process-card h3,.wv3-project h3){line-height:1.55}
html[dir="rtl"] body.wv3 .wv3-contact h2{
  font-size:clamp(46px,7.8vw,110px);line-height:1.54;
}
html[dir="rtl"] body.wv3 :is(.wv3-hero-desc,.wv3-section-heading p,
    .wv3-philosophy-main p,.wv3-service p,.wv3-process-card p,.wv3-contact p){line-height:1.94}
html[dir="rtl"] body.wv3 .wv-vision-headline{
  font-family:var(--wv3-font),Alexandria,Tahoma,sans-serif;
  font-size:clamp(44px,6.2vw,104px);line-height:1.53;
  padding-block:.08em;
}
html[dir="rtl"] body.wv3 .wv-vision-topline,
html[dir="rtl"] body.wv3 .wv-vision-footer{letter-spacing:0}

@media(max-width:850px){
 body.wv3 .wv3-section-heading h2{line-height:1.22}
 body.wv3 .wv-vision-headlines{height:clamp(180px,29vh,295px)}
 body.wv3 .wv-vision-core{top:11%;bottom:22%}
}
@media(max-width:600px){
 body.wv3 .wv3-hero-title{line-height:1.19;letter-spacing:-.042em;
   font-size:clamp(42px,11.35vw,70px);padding-block:.12em;
   margin-block:24px 20px!important}
 body.wv3 .wv3-hero-desc{font-size:15px;line-height:1.9}
 body.wv3 .wv3-section-heading h2{line-height:1.27;letter-spacing:-.03em;
   font-size:clamp(43px,10.4vw,66px)}
 body.wv3 .wv3-section-heading p{font-size:15px;line-height:1.85;margin-top:18px}
 body.wv3 .wv3-philosophy-main h2{line-height:1.3;font-size:clamp(37px,8.6vw,60px)}
 body.wv3 .wv3-philosophy-main p{font-size:15px;line-height:1.84;margin-top:24px}
 body.wv3 .wv3-service h3{line-height:1.34}
 body.wv3 .wv3-process-card h3{line-height:1.32}
 body.wv3 .wv3-process-card p{line-height:1.78}
 body.wv3 .wv3-contact h2{font-size:clamp(44px,10.5vw,68px);line-height:1.24}
 body.wv3 .wv3-contact p{font-size:16px;line-height:1.85}
 body.wv3 .wv-vision-core{top:11%;bottom:24%}
 body.wv3 .wv-vision-headlines{height:clamp(170px,26vh,240px)}
 body.wv3 .wv-vision-headline{font-size:clamp(38px,10.2vw,65px);line-height:1.22}
 html[dir="rtl"] body.wv3 .wv3-hero-title{
   font-size:clamp(36px,9.1vw,59px);line-height:1.64;
 }
 html[dir="rtl"] body.wv3 .wv3-section-heading h2{
   font-size:clamp(36px,8.9vw,59px);line-height:1.65;
 }
 html[dir="rtl"] body.wv3 .wv3-philosophy-main h2{
   font-size:clamp(36px,8.75vw,58px);line-height:1.63;
 }
 html[dir="rtl"] body.wv3 .wv3-contact h2{
   font-size:clamp(37px,9vw,62px);line-height:1.63;
 }
 html[dir="rtl"] body.wv3 .wv-vision-headline{
   font-size:clamp(34px,8.4vw,54px);line-height:1.58;
 }
}
@media(max-width:390px){
 body.wv3 .wv3-hero-title{font-size:clamp(38px,10.8vw,49px)}
 body.wv3 .wv3-section-heading h2{font-size:clamp(39px,10.1vw,55px)}
 html[dir="rtl"] body.wv3 .wv3-hero-title{font-size:clamp(34px,8.8vw,52px)}
}
