@font-face {
  font-family: "Noto Sans Arabic Local";
  src: url("fonts/noto-sans-arabic.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}
@font-face {
  font-family: "Noto Naskh Arabic Local";
  src: url("fonts/noto-naskh-arabic.woff2") format("woff2");
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
}
@font-face {
  font-family: "Cormorant Garamond Local";
  src: url("fonts/cormorant-garamond-regular.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "Cormorant Garamond Local";
  src: url("fonts/cormorant-garamond-italic.woff2") format("woff2");
  font-style: italic;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "Cormorant Garamond Local";
  src: url("fonts/cormorant-garamond-semibold.woff2") format("woff2");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}

:root {
  --ink: #0b0b0b;
  --ink-soft: #171717;
  --paper: #f3f3f1;
  --paper-bright: #fcfcfb;
  --stone: #ececea;
  --fog: #f7f7f5;
  --charcoal: #15181d;
  --muted: #686d72;
  --line: rgba(18, 23, 30, .11);
  --blue: #2055a6;
  --copper: #b98a52;
  --white: #fff;
  --shell: min(92vw, 1320px);
  --serif: "Cormorant Garamond Local", Georgia, "Times New Roman", serif;
  --brand-serif: "Cormorant Garamond Local", Georgia, "Times New Roman", serif;
  --sans: "Segoe UI", Tahoma, Arial, sans-serif;
  --display-weight: 400;
  --display-tracking: -.035em;
}

html[lang="ar"] {
  --serif: "Noto Naskh Arabic Local", "Traditional Arabic", serif;
  --sans: "Noto Sans Arabic Local", Tahoma, Arial, sans-serif;
  --display-weight: 600;
  --display-tracking: -.018em;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper-bright); color: var(--ink); font-family: var(--sans); font-size: 16px; font-weight: 400; line-height: 1.65; overflow-x: hidden; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
section[id], footer[id] { scroll-margin-top: 86px; }
body.menu-open { overflow: hidden; }
body.menu-open .site-header { color: var(--ink); }
a { color: inherit; text-decoration: none; }
img { display: block; width: 100%; }
button { font: inherit; }
.svg-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
svg { width: 1.25rem; height: 1.25rem; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.shell { width: var(--shell); margin-inline: auto; }

.site-header { position: fixed; inset: 0 0 auto; z-index: 100; color: var(--ink); transition: background .35s ease, color .35s ease, transform .35s ease; }
.site-header.scrolled { background: rgba(252, 252, 251, .94); color: var(--ink); border-bottom: 1px solid var(--line); backdrop-filter: blur(16px); }
.nav-wrap { height: 92px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 48px; }
.brand { display: inline-flex; align-items: center; width: max-content; direction: ltr; transition: opacity .25s, transform .25s; }
.brand-logo { width: auto; height: 70px; object-fit: contain; }
.main-nav, .main-nav-links { display: flex; align-items: center; justify-content: center; }
.main-nav-links { gap: clamp(22px, 3vw, 46px); font-size: .9rem; font-weight: 500; }
.main-nav-links a { position: relative; padding: 10px 0; }
.main-nav-links a::after { content: ""; position: absolute; inset: auto 0 4px; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform .25s ease; }
.main-nav-links a:hover::after, .main-nav-links a.active::after { transform: scaleX(1); }
[dir="ltr"] .main-nav-links a::after { transform-origin: left; }
.nav-drawer-head, .nav-drawer-foot, .menu-backdrop { display: none; }
.nav-actions { display: flex; align-items: center; gap: 10px; }
.language-toggle { border: 0; background: transparent; color: inherit; cursor: pointer; display: inline-flex; align-items: center; gap: 4px; padding: 10px; font-size: .78rem; letter-spacing: .1em; transition: opacity .25s, transform .25s; }
.language-toggle svg { width: 13px; height: 13px; }
.nav-contact { height: 43px; padding: 0 18px; background: var(--ink); color: #fff; display: inline-flex; align-items: center; gap: 13px; font-size: .84rem; transition: background .2s, color .2s, transform .2s; }
.site-header.scrolled .nav-contact { background: var(--ink); color: #fff; }
[dir="rtl"] .nav-contact svg, [dir="rtl"] .button svg { transform: scaleX(-1); }
.menu-toggle { display: none; width: 44px; height: 44px; border: 0; background: transparent; color: inherit; cursor: pointer; position: relative; }
.menu-toggle span { display: block; position: absolute; width: 25px; height: 1px; background: currentColor; left: 10px; transition: .3s; }
.menu-toggle span:first-child { top: 17px; }
.menu-toggle span:last-child { top: 26px; width: 18px; }

.hero { min-height: min(900px, 100svh); position: relative; overflow: hidden; color: var(--ink); display: flex; align-items: center; padding: 132px 0 58px; background: var(--paper-bright); }
.hero::after { display: none; }
.hero-grid { position: absolute; inset: 0; background-image: linear-gradient(rgba(18,23,30,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(18,23,30,.035) 1px, transparent 1px); background-size: 96px 96px; mask-image: linear-gradient(110deg, transparent 15%, #000 72%); opacity: .7; }
.hero-inner { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, .92fr) minmax(500px, 1.08fr); gap: clamp(54px, 6vw, 94px); align-items: center; width: var(--shell); }
.hero-copy { position: relative; max-width: 670px; }
.eyebrow, .section-index { margin: 0 0 26px; font-size: .76rem; letter-spacing: .16em; text-transform: uppercase; font-weight: 600; }
.eyebrow::before, .section-index::before { content: ""; display: inline-block; width: 44px; height: 1px; margin-inline-end: 14px; vertical-align: middle; background: currentColor; opacity: .65; }
.hero h1 { margin: 0; max-width: 13ch; font-size: clamp(4rem, 5.8vw, 6.6rem); line-height: .98; font-family: var(--serif); font-weight: var(--display-weight); letter-spacing: var(--display-tracking); text-wrap: balance; }
.hero h1 span, .hero h1 em { display: block; }
.hero h1 em { color: var(--blue); font-family: var(--serif); font-weight: inherit; }
.hero-text { max-width: 590px; margin: 29px 0 0; color: var(--muted); line-height: 1.95; font-size: clamp(.96rem, 1.05vw, 1.04rem); text-wrap: pretty; }
.hero-actions { display: flex; gap: 26px; align-items: center; margin-top: 34px; }
.button { min-height: 56px; padding: 0 23px; display: inline-flex; align-items: center; justify-content: center; gap: 28px; font-size: .92rem; border: 1px solid transparent; transition: transform .3s, background .3s, color .3s, box-shadow .3s; }
.button-light { background: #fff; color: #111; }
.button-dark { background: var(--ink); color: #fff; }
.hero .button-light { background: var(--ink); color: #fff; box-shadow: 0 16px 34px rgba(18,23,30,.14); }
.text-link { display: inline-flex; align-items: center; gap: 14px; font-size: .87rem; }
.text-link .line { width: 48px; height: 1px; background: currentColor; transition: width .25s; }
.text-link:hover .line { width: 70px; }
.hero-media { position: relative; isolation: isolate; width: min(100%, 630px); padding: 24px 24px 54px 0; justify-self: start; animation: heroMediaIn 1.05s cubic-bezier(.2,.8,.2,1) both; }
.hero-media::before { content: ""; position: absolute; z-index: -2; width: 158px; height: 158px; inset: -8px auto auto -20px; background-image: radial-gradient(circle, rgba(32,85,166,.48) 1.35px, transparent 1.55px); background-size: 13px 13px; mask-image: linear-gradient(135deg, #000 20%, transparent 82%); animation: patternDrift 7s ease-in-out infinite alternate; }
.hero-media::after { content: ""; position: absolute; z-index: -1; width: 42%; height: 31%; inset: auto -3px 23px auto; border: 1px solid rgba(32,85,166,.22); background: repeating-linear-gradient(135deg, rgba(32,85,166,.07) 0 1px, transparent 1px 9px); }
[dir="rtl"] .hero-media::before { inset: -8px -20px auto auto; }
[dir="rtl"] .hero-media::after { inset: auto auto 23px -3px; }
.hero-picture { position: relative; isolation: isolate; box-shadow: 0 30px 74px rgba(22,29,38,.16); overflow: hidden; }
.hero-picture::before { content: ""; position: absolute; z-index: 3; inset: 15px; border: 1px solid rgba(255,255,255,.42); pointer-events: none; transition: inset .5s ease, border-color .5s ease; }
[dir="rtl"] .hero-picture::before { inset: 15px; }
.hero-picture::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(9,13,18,.48), transparent 42%); pointer-events: none; }
.hero-picture img { width: 100%; aspect-ratio: .94 / 1; object-fit: cover; object-position: center 52%; filter: saturate(.82) contrast(1.04); transition: transform 1s cubic-bezier(.2,.8,.2,1), filter .5s ease; }
.hero-picture-label { position: absolute; z-index: 2; inset: auto 26px 24px; display: grid; gap: 4px; color: #fff; direction: ltr; text-align: left; }
.hero-picture-label small { font-size: .56rem; letter-spacing: .18em; opacity: .72; }
.hero-picture-label strong { font-family: var(--brand-serif); font-size: 1.05rem; letter-spacing: .13em; font-weight: 600; }
.hero-note { position: absolute; z-index: 3; inset: auto auto 0 0; width: min(330px, 72%); display: grid; grid-template-columns: 42px 1fr; gap: 15px; align-items: start; padding: 18px 20px; background: #fff; border: 1px solid var(--line); box-shadow: 0 20px 50px rgba(18,23,30,.13); }
[dir="rtl"] .hero-note { inset: auto 0 0 auto; }
.hero-note span { font-family: var(--brand-serif); color: var(--blue); font-size: 1.5rem; line-height: 1; }
.hero-note p { margin: 0; color: var(--muted); line-height: 1.75; font-size: .76rem; }
.scroll-cue { position: absolute; z-index: 3; inset-inline-start: 4vw; bottom: 28px; display: flex; align-items: center; gap: 12px; color: var(--muted); font-size: .65rem; letter-spacing: .15em; }
.scroll-cue span { width: 42px; height: 1px; background: currentColor; }

.section { position: relative; padding: clamp(88px, 7vw, 110px) 0; }
.section-top { display: grid; grid-template-columns: 1fr; width: min(100%, 940px); margin-inline-end: auto; row-gap: 14px; align-items: start; margin-bottom: clamp(44px, 4vw, 58px); }
.section-top h2 { margin: 0; max-width: 15ch; font-family: var(--serif); font-size: clamp(3rem, 3.8vw, 4.35rem); line-height: 1.08; font-weight: var(--display-weight); letter-spacing: var(--display-tracking); text-wrap: balance; overflow-wrap: normal; word-break: normal; }
.section-top h2::after { display: none; }
.section-top > p:last-child:not(.section-index) { margin: 4px 0 0; max-width: 38rem; color: var(--muted); font-size: clamp(.92rem, .95vw, .98rem); line-height: 1.82; text-wrap: pretty; }
.section-index { grid-column: 1 / -1; align-self: start; margin: 0 0 3px; padding-top: 0; color: var(--blue); }
.section-index::before { width: 7px; height: 7px; margin-inline-end: 11px; background: currentColor; opacity: 1; transform: rotate(45deg); }
.section-top-light { color: #fff; }
.section-top-light h2::after { background: linear-gradient(90deg, var(--copper), #7ea6e1); }
.section-top-light .section-index, .section-top-light > p:last-child { color: rgba(255,255,255,.58); }

.about { overflow: hidden; background: var(--fog); }
.about::after, .work::after, .contact::after { content: ""; position: absolute; width: 190px; height: 190px; inset: 46px 3vw auto auto; background-image: radial-gradient(circle, rgba(32,85,166,.21) 1px, transparent 1.25px); background-size: 12px 12px; mask-image: linear-gradient(135deg, #000, transparent 78%); pointer-events: none; }
[dir="rtl"] .about::after, [dir="rtl"] .work::after, [dir="rtl"] .contact::after { inset: 46px auto auto 3vw; transform: scaleX(-1); }
.section > .shell, .contact > .shell { position: relative; z-index: 1; }
.about .section-top { margin-bottom: 34px; }
.about-layout { display: grid; grid-template-columns: minmax(0, 1.16fr) minmax(420px, .84fr); gap: 0; align-items: center; }
.about-visual { position: relative; padding: 18px 18px 30px 0; }
.about-visual::before { content: ""; position: absolute; inset: 0 auto auto 0; width: 55%; height: 58%; border: 1px solid rgba(32,85,166,.75); z-index: 0; }
[dir="rtl"] .about-visual::before { inset: 0 0 auto auto; }
.about-visual::after { content: ""; position: absolute; z-index: 0; width: 125px; height: 125px; inset: auto -18px 7px auto; background-image: radial-gradient(circle, rgba(32,85,166,.34) 1.15px, transparent 1.35px); background-size: 11px 11px; mask-image: linear-gradient(315deg, #000, transparent 78%); }
[dir="rtl"] .about-visual::after { inset: auto auto 7px -18px; transform: scaleX(-1); }
.about-visual img { position: relative; z-index: 1; aspect-ratio: 1.12 / 1; object-fit: cover; object-position: center 55%; filter: saturate(.78) contrast(1.04); box-shadow: 0 28px 62px rgba(20,24,29,.13); transition: transform .75s cubic-bezier(.2,.8,.2,1), filter .5s; }
.image-caption { position: relative; z-index: 2; display: flex; justify-content: space-between; padding: 13px 4px 0; font-size: .58rem; letter-spacing: .18em; color: var(--muted); direction: ltr; }
.about-copy { position: relative; z-index: 3; margin-inline-start: -58px; padding: clamp(35px, 3.4vw, 52px); background: rgba(255,255,255,.96); border-top: 3px solid var(--blue); box-shadow: 0 28px 74px rgba(20,24,29,.12); backdrop-filter: blur(12px); }
.about-copy .lead { position: relative; font-family: var(--serif); font-size: clamp(1.62rem, 1.9vw, 2.02rem); font-weight: var(--display-weight); line-height: 1.55; margin: 0 0 24px; padding-bottom: 23px; border-bottom: 1px solid var(--line); text-wrap: pretty; }
.about-copy .lead::before { content: ""; display: block; width: 34px; height: 3px; margin-bottom: 18px; background: var(--blue); }
.about-copy > p:not(.lead):not(.vision-panel) { max-width: 58ch; color: var(--muted); line-height: 1.88; margin: 0; text-wrap: pretty; }
.vision-tabs { display: inline-flex; gap: 3px; margin-top: 29px; padding: 4px; border: 1px solid rgba(18,23,30,.09); background: var(--stone); }
.vision-tab { position: relative; border: 0; background: transparent; padding: 10px 17px; color: var(--muted); cursor: pointer; font-size: .88rem; transition: background .25s ease, color .25s ease, box-shadow .25s ease; }
.vision-tab::after { display: none; }
.vision-tab.active { background: #fff; color: var(--ink); box-shadow: 0 6px 16px rgba(18,23,30,.08); }
.vision-panel { min-height: 88px; margin: 15px 0 0; padding: 15px 18px 16px; border: 0; border-inline-start: 2px solid var(--blue); background: rgba(32,85,166,.04); color: var(--muted); line-height: 1.82; }

.services { background: radial-gradient(circle at 82% 9%, rgba(62,111,190,.15), transparent 27%), linear-gradient(135deg, #101217 0%, #171b22 100%); color: #fff; }
.services .section-top h2 { max-width: 15ch; }
.services-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.service-row { --glow-x: 50%; --glow-y: 50%; min-height: 338px; padding: 29px 28px 26px; border: 1px solid rgba(255,255,255,.14); display: flex; flex-direction: column; align-items: stretch; position: relative; isolation: isolate; overflow: hidden; background: linear-gradient(145deg, rgba(255,255,255,.055), rgba(255,255,255,.018)); transition: transform .42s cubic-bezier(.2,.8,.2,1), border-color .35s, box-shadow .35s, background .35s; }
.service-row::before { content: ""; position: absolute; z-index: -1; inset: 0; background: radial-gradient(380px circle at var(--glow-x) var(--glow-y), rgba(62,111,190,.24), transparent 46%); opacity: 0; transition: opacity .35s ease; }
.service-row::after { content: ""; position: absolute; z-index: 2; inset: auto 0 0; height: 3px; background: linear-gradient(90deg, transparent, #5d8bd3, var(--copper), transparent); transform: scaleX(0); transform-origin: center; transition: transform .45s cubic-bezier(.2,.8,.2,1); }
.service-row.featured { background: linear-gradient(145deg, #235cad 0%, #173e78 100%); border-color: rgba(132,169,230,.58); }
.service-row.featured::before { background: radial-gradient(380px circle at var(--glow-x) var(--glow-y), rgba(255,255,255,.2), transparent 48%); }
.service-number { position: absolute; top: 31px; inset-inline-end: 30px; font-family: var(--brand-serif); color: rgba(255,255,255,.42); font-size: 1rem; letter-spacing: .08em; }
.service-icon { width: 66px; height: 66px; border: 1px solid rgba(255,255,255,.2); display: grid; place-items: center; position: relative; color: #a9c5ef; background: linear-gradient(145deg, rgba(255,255,255,.1), rgba(255,255,255,.025)); box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 16px 38px rgba(0,0,0,.16); transition: color .35s, background .35s, border-color .35s, transform .45s cubic-bezier(.2,.8,.2,1); }
.service-icon::before { content: ""; position: absolute; inset: 7px; border: 1px solid rgba(255,255,255,.08); }
.service-icon svg { width: 29px; height: 29px; stroke-width: 1.45; }
.service-row > div { margin-top: auto; padding-top: 52px; position: relative; z-index: 1; }
.service-row h3 { max-width: 16ch; font-family: var(--serif); font-size: clamp(1.6rem, 1.85vw, 2.05rem); font-weight: var(--display-weight); line-height: 1.3; margin: 0 0 13px; text-wrap: balance; }
.service-row p { margin: 0; color: rgba(255,255,255,.65); line-height: 1.85; font-size: .88rem; font-weight: 400; max-width: 42ch; text-wrap: pretty; }
.service-cta { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 21px; padding-top: 15px; border-top: 1px solid rgba(255,255,255,.17); color: rgba(255,255,255,.68); font-size: .66rem; font-weight: 600; letter-spacing: .115em; transition: color .3s ease, border-color .3s ease; }
.service-cta svg { width: 18px; height: 18px; transition: translate .3s ease, color .3s ease; }
[dir="rtl"] .service-cta svg { transform: scaleX(-1); }
.featured .service-cta { border-color: rgba(255,255,255,.3); color: rgba(255,255,255,.84); }
.service-cta:focus-visible { outline: 2px solid var(--copper); outline-offset: 6px; }
.featured p { color: rgba(255,255,255,.79); }
.featured .service-icon { color: #fff; border-color: rgba(255,255,255,.42); background: rgba(255,255,255,.12); }
.service-tag { position: absolute; top: 29px; inset-inline-end: 72px; font-size: .61rem; letter-spacing: .12em; text-transform: uppercase; border: 1px solid rgba(255,255,255,.4); padding: 6px 9px; }

.work { overflow: hidden; background: var(--stone); }
.project-grid { display: grid; grid-template-columns: 1.35fr 1fr; gap: 20px; }
.project-card { min-height: 340px; position: relative; overflow: hidden; color: #fff; border: 1px solid rgba(18,23,30,.12); box-shadow: 0 16px 45px rgba(20,24,29,.07); transition: box-shadow .45s ease, transform .45s cubic-bezier(.2,.8,.2,1), border-color .45s ease; }
.project-large { grid-row: span 2; min-height: 650px; }
.project-card::before { content: ""; position: absolute; z-index: 2; inset: 14px; border: 1px solid rgba(255,255,255,.16); pointer-events: none; transition: inset .4s ease, border-color .4s ease; }
.project-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(8,12,16,.86), rgba(8,12,16,.14) 68%, transparent); }
.project-card img { position: absolute; inset: 0; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.project-large img { object-position: center 58%; }
.project-ncms img { object-position: center 28%; }
.project-info { position: absolute; z-index: 3; inset: auto 28px 28px; transition: transform .4s cubic-bezier(.2,.8,.2,1); }
.project-info span { display: inline-flex; align-items: center; min-height: 27px; padding: 0 10px; border: 1px solid rgba(255,255,255,.25); background: rgba(8,12,16,.22); backdrop-filter: blur(10px); font-size: .65rem; letter-spacing: .11em; color: rgba(255,255,255,.82); }
.project-info h3 { margin: 13px 0 0; font-family: var(--serif); font-size: clamp(1.45rem, 2.05vw, 2.2rem); font-weight: var(--display-weight); line-height: 1.35; max-width: 620px; text-wrap: balance; }
.sectors { display: grid; grid-template-columns: 1fr 3fr; gap: 30px; margin-top: 46px; padding-top: 0; }
.sectors > p { margin: 0; color: #333a42; font-family: var(--serif); font-size: 1.22rem; font-weight: var(--display-weight); }
.sector-list { display: flex; flex-wrap: wrap; gap: 10px; }
.sector-list span { border: 1px solid rgba(18,23,30,.16); padding: 10px 15px; font-size: .8rem; background: rgba(255,255,255,.62); color: #3e454d; transition: transform .28s, background .28s, color .28s, border-color .28s, box-shadow .28s; }

.approach { min-height: 780px; position: relative; overflow: hidden; color: #fff; background: var(--charcoal); }
.approach-image { position: absolute; inset: 0; background: url("images/architectural-plan.webp") center / cover no-repeat; filter: grayscale(1); opacity: .24; }
.approach::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(15,18,23,.97), rgba(15,18,23,.69)); }
[dir="ltr"] .approach::before { background: linear-gradient(-90deg, rgba(15,18,23,.97), rgba(15,18,23,.69)); }
.approach-inner { position: relative; z-index: 1; }
.approach-content { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(330px, .78fr); gap: clamp(44px, 6vw, 96px); align-items: start; }
.steps { display: grid; gap: 12px; list-style: none; margin: 0; padding: 0; }
.steps li { display: grid; grid-template-columns: 62px 1fr; gap: 24px; padding: 30px 28px; border: 1px solid rgba(255,255,255,.14); border-inline-start: 3px solid rgba(126,166,225,.62); background: rgba(255,255,255,.035); position: relative; overflow: hidden; transition: transform .35s cubic-bezier(.2,.8,.2,1), background .35s ease, border-color .35s ease, box-shadow .35s ease; }
.steps li::after { content: ""; position: absolute; inset: auto 0 0; height: 2px; background: linear-gradient(90deg, transparent, rgba(126,166,225,.9), var(--copper), transparent); transform: scaleX(0); transition: transform .4s ease; }
.steps > li > span { color: var(--copper); font-family: var(--serif); font-size: 1.45rem; }
.steps h3 { margin: 0 0 8px; font-family: var(--serif); font-size: 2rem; font-weight: var(--display-weight); }
.steps p { margin: 0; max-width: 58ch; color: rgba(255,255,255,.57); line-height: 1.85; text-wrap: pretty; }
.why-card { border-top: 3px solid var(--blue); background: rgba(242,243,241,.97); color: var(--ink); padding: 38px; box-shadow: 0 30px 80px rgba(0,0,0,.2); backdrop-filter: blur(12px); }
.card-kicker { margin: 0 0 25px; font-family: var(--serif); font-size: 1.8rem; }
.why-card ul { list-style: none; padding: 0; margin: 0; }
.why-card li { padding: 13px 26px 13px 0; position: relative; border-bottom: 1px solid var(--line); color: #4f4b46; line-height: 1.55; transition: color .25s, padding-inline-start .25s; }
[dir="ltr"] .why-card li { padding: 13px 0 13px 26px; }
.why-card li::before { content: "✓"; position: absolute; inset-inline-start: 0; color: var(--blue); font-weight: 700; }

.contact { position: relative; overflow: hidden; background: #f5f5f3; padding: clamp(88px, 7vw, 110px) 0; }
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(54px, 7vw, 110px); align-items: center; }
.contact h2 { max-width: 11ch; font-family: var(--serif); font-size: clamp(3.2rem, 4.7vw, 5.25rem); line-height: 1.07; font-weight: var(--display-weight); margin: 0; letter-spacing: var(--display-tracking); text-wrap: balance; }
.contact-copy > p:not(.section-index) { color: var(--muted); line-height: 1.9; max-width: 52ch; margin: 28px 0 34px; text-wrap: pretty; }
.contact-panel { display: grid; grid-template-rows: 250px auto; border: 1px solid rgba(18,23,30,.2); background: #12171e; color: #fff; min-height: 520px; box-shadow: 0 24px 70px rgba(18,23,30,.16); }
.contact-visual { position: relative; overflow: hidden; }
.contact-visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.68), rgba(0,0,0,.06)); }
.contact-visual > img { height: 100%; object-fit: cover; object-position: center 62%; filter: saturate(.72); transition: transform .8s ease; }
.contact-panel:hover .contact-visual > img { transform: scale(1.035); }
.contact-brand { position: absolute; z-index: 2; inset: auto 24px 20px; width: 108px; direction: ltr; color: #fff; }
.contact-brand-logo { width: 100%; height: auto; border: 1px solid rgba(255,255,255,.2); }
.contact-list { padding: 36px 30px; display: flex; flex-direction: column; justify-content: center; }
.contact-list > * { display: grid; grid-template-columns: 34px 1fr; gap: 11px; align-items: start; padding: 20px 0; border-bottom: 1px solid rgba(255,255,255,.15); transition: color .25s, transform .25s, border-color .25s; }
.contact-list > *:last-child { border-bottom: 0; }
.contact-list svg { color: #7697cf; }
.contact-list small, .contact-list b { display: block; }
.contact-list small { color: rgba(255,255,255,.48); margin-bottom: 6px; }
.contact-list b { font-size: .83rem; font-weight: 500; word-break: break-word; }
[dir="rtl"] .contact-list > * span { text-align: right; }
[dir="rtl"] .contact-list b[dir="ltr"] { direction: ltr; unicode-bidi: isolate; text-align: right; }
[dir="ltr"] .contact-list > * span { text-align: left; }
.whatsapp-inline { width: 24px; height: 24px; }

.footer { background: #050505; color: #fff; padding: 70px 0 25px; }
.footer-brand .brand-logo { height: 126px; }
.footer-main { display: grid; grid-template-columns: 1.55fr .7fr 1.05fr 1.05fr; gap: clamp(38px, 6vw, 90px); padding-bottom: 62px; }
.footer-intro > p { margin: 30px 0 28px; color: rgba(255,255,255,.55); line-height: 1.85; max-width: 380px; font-size: .87rem; }
.footer-column { display: flex; flex-direction: column; align-items: flex-start; gap: 13px; }
.footer-column h3 { margin: 0 0 14px; color: #fff; font-family: var(--serif); font-size: 1.3rem; font-weight: var(--display-weight); }
.footer-column a, .footer-column > span { color: rgba(255,255,255,.52); font-size: .8rem; line-height: 1.65; transition: color .2s, transform .2s; }
.footer-contact a { direction: ltr; text-align: left; }
.social-links { display: flex; gap: 9px; }
.social-links a { width: 43px; height: 43px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.24); transition: background .28s, transform .28s, border-color .28s; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.14); padding: 23px 86px 44px; display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 20px; color: rgba(255,255,255,.38); font-size: .7rem; }
.footer-bottom span:nth-child(2) { text-align: center; }
.footer-bottom span:last-child { text-align: end; }

.floating-whatsapp, .back-top { position: fixed; z-index: 80; bottom: 22px; width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; box-shadow: 0 8px 25px rgba(0,0,0,.2); }
.floating-whatsapp { right: 24px; width: 58px; height: 58px; background: #25d366; box-shadow: 0 10px 30px rgba(37, 211, 102, .28); transition: transform .25s ease, box-shadow .25s ease; }
.floating-whatsapp::before, .floating-whatsapp::after { content: ""; position: absolute; inset: 0; border: 1px solid rgba(37,211,102,.62); border-radius: inherit; z-index: -1; animation: whatsappRipple 2.6s ease-out infinite; }
.floating-whatsapp::after { animation-delay: 1.3s; }
.floating-whatsapp:hover { transform: translateY(-4px) scale(1.03); box-shadow: 0 15px 35px rgba(37,211,102,.38); }
.floating-whatsapp img { position: relative; z-index: 2; width: 100%; height: 100%; }
.back-top { left: 24px; border: 1px solid var(--line); background: rgba(255,255,255,.9); color: var(--ink); cursor: pointer; opacity: 0; pointer-events: none; transition: .25s; }
.back-top.visible { opacity: 1; pointer-events: auto; }
.back-top svg { transform: rotate(-90deg); }
.reveal { opacity: 0; transform: translateY(30px); transition: opacity .8s ease, transform .8s ease; }
.reveal.visible { opacity: 1; transform: none; }

@keyframes heroDrift { from { transform: scale(1.11); } to { transform: scale(1.02); } }
@keyframes heroMediaIn {
  from { opacity: 0; transform: translateY(28px) scale(.985); }
  to { opacity: 1; transform: none; }
}
@keyframes patternDrift {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(10px, 8px, 0); }
}
@keyframes whatsappRipple {
  0% { opacity: .58; transform: scale(.94); }
  72%, 100% { opacity: 0; transform: scale(1.55); }
}

html[lang="ar"] .hero h1 { line-height: 1.08; }
html[lang="ar"] .section-top h2,
html[lang="ar"] .contact h2 { line-height: 1.12; }
html[lang="ar"] .section-index { letter-spacing: .055em; }
html[lang="ar"] .service-row h3,
html[lang="ar"] .project-info h3,
html[lang="ar"] .steps h3 { line-height: 1.45; }

@media (hover: hover) and (pointer: fine) {
  .brand:hover { opacity: .82; transform: translateY(-2px); }
  .language-toggle:hover { opacity: .65; transform: translateY(-1px); }
  .nav-contact:hover { background: var(--blue); color: #fff; transform: translateY(-2px); box-shadow: 0 12px 28px rgba(32,85,166,.24); }
  .button:hover { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(0,0,0,.18); }
  .button-light:hover, .button-dark:hover { background: var(--blue); color: #fff; }
  .button:hover svg { translate: 4px 0; }
  [dir="rtl"] .button:hover svg { translate: -4px 0; }
  .about-visual:hover img { transform: scale(1.025); filter: saturate(.9) contrast(1.04); }
  .hero-picture:hover img { transform: scale(1.035); filter: saturate(.9) contrast(1.05); }
  .hero-picture:hover::before { inset: 20px; border-color: rgba(255,255,255,.72); }
  .vision-tab:hover { color: var(--blue); }
  .service-row:hover { transform: translateY(-9px); border-color: rgba(126,166,225,.62); box-shadow: 0 25px 65px rgba(0,0,0,.34); }
  .service-row:hover::before { opacity: 1; }
  .service-row:hover::after { transform: scaleX(1); }
  .service-row:hover .service-icon { color: #fff; border-color: rgba(132,169,230,.72); background: rgba(32,85,166,.34); transform: translateY(-4px) rotate(-2deg); }
  [dir="rtl"] .service-row:hover .service-icon { transform: translateY(-4px) rotate(2deg); }
  .service-row:hover .service-cta { color: #fff; border-color: rgba(169,197,239,.56); }
  .service-row:hover .service-cta svg { translate: -5px 0; color: var(--copper); }
  [dir="ltr"] .service-row:hover .service-cta svg { translate: 5px 0; }
  .project-card:hover { transform: translateY(-6px); border-color: rgba(32,85,166,.48); box-shadow: 0 26px 60px rgba(20,24,29,.18); }
  .project-card:hover::before { inset: 18px; border-color: rgba(255,255,255,.5); }
  .project-card:hover img { transform: scale(1.06); }
  .project-card:hover .project-info { transform: translateY(-6px); }
  .sector-list span:hover { background: var(--blue); color: #fff; border-color: var(--blue); box-shadow: 0 12px 23px rgba(32,85,166,.18); transform: translateY(-3px); }
  .steps li:hover { background: rgba(255,255,255,.08); border-color: rgba(126,166,225,.5); transform: translateX(-6px); box-shadow: 0 18px 42px rgba(0,0,0,.18); }
  [dir="ltr"] .steps li:hover { transform: translateX(6px); }
  .steps li:hover::after { transform: scaleX(1); }
  .why-card li:hover { color: var(--ink); translate: 5px 0; }
  [dir="rtl"] .why-card li:hover { translate: -5px 0; }
  .contact-list > *:hover { color: #9dbbeb; transform: translateX(4px); border-color: rgba(118,151,207,.45); }
  [dir="rtl"] .contact-list > *:hover { transform: translateX(-4px); }
  .footer-column a:hover { color: #fff; }
  .social-links a:hover { background: var(--blue); border-color: var(--blue); transform: translateY(-3px); }
}

@media (max-width: 1050px) {
  .nav-wrap { grid-template-columns: auto 1fr auto; }
  .menu-backdrop { position: fixed; z-index: 90; inset: 0; display: block; opacity: 0; visibility: hidden; pointer-events: none; background: rgba(9,13,18,.58); backdrop-filter: blur(4px); transition: opacity .3s ease, visibility .3s ease; }
  .menu-backdrop.open { opacity: 1; visibility: visible; pointer-events: auto; }
  .main-nav { position: fixed; z-index: 4; inset: 0 auto 0 0; width: min(86vw, 380px); height: 100dvh; overflow-y: auto; padding: 20px 22px 28px; background: linear-gradient(180deg, #fff, #f5f5f3); color: var(--ink); display: grid; grid-template-rows: auto 1fr auto; align-items: stretch; gap: 18px; font-family: var(--sans); transform: translateX(-104%); visibility: hidden; pointer-events: none; box-shadow: 24px 0 70px rgba(9,13,18,.22); transition: transform .44s cubic-bezier(.2,.8,.2,1), visibility 0s .44s; }
  .main-nav.open { transform: translateX(0); visibility: visible; pointer-events: auto; transition: transform .44s cubic-bezier(.2,.8,.2,1), visibility 0s; }
  .nav-drawer-head { display: flex; min-height: 64px; align-items: center; justify-content: space-between; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
  .drawer-brand { display: inline-flex; align-items: center; direction: ltr; }
  .drawer-brand img { width: auto; height: 62px; }
  .menu-close { position: relative; width: 44px; height: 44px; border: 1px solid var(--line); background: var(--fog); color: var(--ink); cursor: pointer; }
  .menu-close span { position: absolute; top: 21px; left: 11px; width: 21px; height: 1px; background: currentColor; transform: rotate(45deg); }
  .menu-close span:last-child { transform: rotate(-45deg); }
  .main-nav-links { display: grid; align-content: start; gap: 4px; padding-top: 8px; font-family: var(--serif); }
  .main-nav-links a { display: flex; min-height: 60px; align-items: center; justify-content: space-between; padding: 10px 12px; border-bottom: 1px solid rgba(18,23,30,.08); font-size: 1.55rem; line-height: 1.3; opacity: 0; transform: translateX(-16px); transition: color .25s ease, background .25s ease, padding .3s ease, opacity .35s ease, transform .4s cubic-bezier(.2,.8,.2,1); }
  .main-nav.open .main-nav-links a { opacity: 1; transform: none; }
  .main-nav.open .main-nav-links a:nth-child(1) { transition-delay: .08s; }
  .main-nav.open .main-nav-links a:nth-child(2) { transition-delay: .12s; }
  .main-nav.open .main-nav-links a:nth-child(3) { transition-delay: .16s; }
  .main-nav.open .main-nav-links a:nth-child(4) { transition-delay: .2s; }
  .main-nav.open .main-nav-links a:nth-child(5) { transition-delay: .24s; }
  .main-nav-links a::after { position: static; flex: 0 0 7px; width: 7px; height: 7px; margin-inline-start: auto; background: var(--blue); border-radius: 50%; opacity: .28; transform: none; }
  .main-nav-links a.active { color: var(--blue); background: rgba(32,85,166,.055); padding-inline-start: 17px; }
  .main-nav-links a.active::after { opacity: 1; }
  .nav-drawer-foot { display: grid; gap: 13px; padding-top: 17px; border-top: 1px solid var(--line); color: var(--muted); font-size: .66rem; letter-spacing: .12em; }
  .nav-drawer-meta { display: flex; min-height: 34px; align-items: center; justify-content: space-between; gap: 14px; }
  .drawer-language { display: inline-flex; min-height: 34px; align-items: center; gap: 7px; padding: 0 10px; border: 1px solid var(--line); background: #fff; color: var(--ink); cursor: pointer; font-size: .63rem; letter-spacing: .08em; }
  .drawer-language svg { width: 12px; height: 12px; }
  .nav-drawer-foot > a { display: flex; min-height: 52px; align-items: center; justify-content: space-between; padding: 0 16px; background: var(--ink); color: #fff; font-size: .8rem; font-weight: 600; letter-spacing: 0; }
  .nav-drawer-foot svg { width: 18px; height: 18px; }
  body.menu-open .site-header, body.menu-open .site-header.scrolled { background: transparent; border-color: transparent; backdrop-filter: none; }
  body.menu-open .nav-wrap > .brand, body.menu-open .nav-actions { opacity: 0; pointer-events: none; }
  .brand, .nav-actions { position: relative; z-index: 2; }
  .menu-toggle { display: block; z-index: 2; }
  .menu-toggle.active span:first-child { transform: rotate(45deg); top: 22px; }
  .menu-toggle.active span:last-child { transform: rotate(-45deg); top: 22px; width: 25px; }
  .nav-contact { display: none; }
  .hero-inner { grid-template-columns: minmax(0, .9fr) minmax(380px, 1.1fr); gap: 44px; }
  .hero h1 { font-size: clamp(3.4rem, 6.6vw, 5rem); }
  .section-top { width: min(100%, 820px); }
  .section-top > p:last-child:not(.section-index) { grid-column: auto; }
  .about-layout { grid-template-columns: minmax(0, 1fr) minmax(390px, .92fr); gap: 0; }
  .about-copy { margin-inline-start: -34px; padding: 34px; }
  .contact-grid { grid-template-columns: 1fr; }
  .contact-copy { max-width: 720px; }
  .services-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-main { grid-template-columns: 1.3fr .7fr 1fr; }
  .footer-contact { grid-column: 2 / span 2; }
}

@media (min-width: 761px) and (max-width: 900px) {
  .hero { min-height: auto; padding: 126px 0 76px; }
  .hero-inner { grid-template-columns: 1fr; gap: 58px; }
  .hero-copy { max-width: 670px; }
  .hero h1 { max-width: 12ch; font-size: clamp(4.1rem, 9vw, 5rem); }
  .hero-text { max-width: 55ch; }
  .hero-media { width: min(88%, 640px); justify-self: end; }
  .hero-picture img { aspect-ratio: 1.18 / 1; }
  .scroll-cue { display: none; }
  .section { padding: 84px 0; }
  .section-top { grid-template-columns: 1fr; gap: 0; margin-bottom: 40px; }
  .section-top > p:last-child:not(.section-index) { grid-column: auto; margin-top: 18px; }
  .section-top h2 { max-width: 16ch; font-size: clamp(3rem, 7vw, 3.75rem); }
}

@media (max-width: 760px) {
  :root { --shell: min(90vw, 620px); }
  body { font-size: 15px; }
  section[id], footer[id] { scroll-margin-top: 74px; }
  .nav-wrap { height: 74px; display: flex; justify-content: space-between; gap: 12px; }
  .brand-logo { height: 56px; }
  .nav-actions { margin-inline-start: 0; gap: 5px; }
  .language-toggle { min-width: 42px; min-height: 42px; justify-content: center; border: 1px solid var(--line); background: rgba(255,255,255,.72); }
  .language-toggle svg { display: none; }
  .menu-toggle { order: 2; width: 46px; height: 46px; border: 1px solid var(--line); background: var(--ink); color: #fff; }
  .menu-toggle span { left: 10px; }
  .main-nav { width: min(calc(100vw - 30px), 370px); padding: max(17px, env(safe-area-inset-top)) 18px max(22px, env(safe-area-inset-bottom)); overscroll-behavior: contain; }
  .main-nav-links a { min-height: 58px; font-size: 1.46rem; }
  .hero { min-height: auto; padding: 112px 0 54px; }
  .hero::after { display: none; }
  .hero-grid { background-size: 72px 72px; mask-image: linear-gradient(to bottom, #000, transparent 70%); opacity: .42; }
  .hero-inner { grid-template-columns: 1fr; gap: 42px; padding: 0; }
  .hero-copy { max-width: 100%; }
  .eyebrow { margin-bottom: 16px; font-size: .66rem; line-height: 1.7; }
  .eyebrow::before { width: 32px; }
  .hero h1 { max-width: 100%; font-size: clamp(2.4rem, 10.6vw, 3rem); }
  html[lang="ar"] .hero h1 { line-height: 1.13; }
  .hero-text { max-width: 36ch; margin-top: 20px; font-size: .9rem; line-height: 1.88; }
  .hero-actions { display: grid; align-items: stretch; gap: 15px; margin-top: 27px; }
  .hero-actions .button { width: 100%; }
  .text-link { justify-content: center; }
  .hero-media { width: 100%; padding: 21px 11px 0; justify-self: stretch; }
  .hero-media::before { width: 116px; height: 116px; inset: 0 auto auto -5px; background-size: 11px 11px; }
  .hero-media::after { width: 45%; height: 31%; inset: auto 0 40px auto; }
  [dir="rtl"] .hero-media::before { inset: 0 -5px auto auto; }
  [dir="rtl"] .hero-media::after { inset: auto auto 40px 0; }
  .hero-picture::before, [dir="rtl"] .hero-picture::before { inset: 11px; }
  .hero-picture img { aspect-ratio: 1.08 / 1; object-position: center 54%; }
  .hero-picture-label { inset: auto auto 18px 18px; width: max-content; }
  [dir="rtl"] .hero-picture-label { inset: auto 18px 18px auto; text-align: right; }
  .hero-picture-label small { font-size: .49rem; }
  .hero-picture-label strong { font-size: .82rem; }
  .hero-note, [dir="rtl"] .hero-note { position: relative; inset: auto; width: calc(100% - 24px); margin: -18px 12px 0; grid-template-columns: 34px 1fr; gap: 11px; padding: 15px 16px; box-shadow: 0 18px 42px rgba(18,23,30,.11); }
  .hero-note span { font-size: 1.25rem; }
  .hero-note p { font-size: .7rem; line-height: 1.65; }
  .scroll-cue { display: none; }
  .button { min-height: 56px; }
  .section { padding: clamp(68px, 16vw, 80px) 0; }
  .section-top { grid-template-columns: 1fr; gap: 0; margin-bottom: 32px; }
  .section-top > p:last-child:not(.section-index) { grid-column: auto; }
  .section-top h2 { max-width: 100%; font-size: clamp(2.12rem, 9.6vw, 2.85rem); line-height: 1.08; }
  html[lang="ar"] .section-top h2 { line-height: 1.19; }
  .section-top h2 + p { margin-top: 16px !important; }
  .section-index { padding: 0; margin: 0 0 14px; font-size: .67rem; }
  .about-layout { grid-template-columns: 1fr; gap: 32px; }
  .about-visual { padding: 10px 10px 22px 0; }
  .about-visual::before { inset: 0 auto auto 0; width: 60%; height: 54%; }
  [dir="rtl"] .about-visual::before { inset: 0 0 auto auto; }
  .about-visual::after { width: 86px; height: 86px; inset: auto -5px 0 auto; }
  [dir="rtl"] .about-visual::after { inset: auto auto 0 -5px; }
  .about-visual img { aspect-ratio: 1.27 / 1; }
  .about-copy { margin: 0; padding: 25px 22px; box-shadow: 0 18px 42px rgba(20,24,29,.08); }
  .about-copy .lead { font-size: 1.32rem; line-height: 1.62; padding-bottom: 19px; }
  .about-copy .lead::before { width: 28px; margin-bottom: 14px; }
  .about-copy > p:not(.lead):not(.vision-panel), .vision-panel { font-size: .88rem; line-height: 1.88; }
  .vision-tabs { margin-top: 26px; }
  .vision-tab { padding: 9px 13px; font-size: .82rem; }
  .vision-panel { min-height: auto; padding: 16px 17px; }
  .services-list { grid-template-columns: 1fr; gap: 12px; }
  .service-row, .service-row.featured { min-height: 276px; padding: 22px; }
  .service-number { top: 22px; inset-inline-end: 21px; }
  .service-icon { width: 52px; height: 52px; }
  .service-icon svg { width: 23px; height: 23px; }
  .service-row > div { padding-top: 34px; }
  .service-row h3 { max-width: 15ch; font-size: 1.42rem; line-height: 1.42; margin-bottom: 8px; }
  .service-row p { font-size: .82rem; line-height: 1.78; }
  .service-cta { margin-top: 17px; padding-top: 13px; font-size: .64rem; }
  .service-tag { top: 24px; inset-inline-end: 66px; }
  .project-grid { grid-template-columns: 1fr; }
  .project-large { grid-row: auto; min-height: 0; aspect-ratio: 1 / 1.08; }
  .project-card { min-height: 0; aspect-ratio: 1.12 / 1; }
  .project-info { inset: auto 20px 20px; }
  .project-info h3 { font-size: 1.45rem; }
  .sectors { grid-template-columns: 1fr; margin-top: 38px; }
  .sector-list { gap: 8px; }
  .sector-list span { padding: 9px 12px; font-size: .75rem; }
  .approach { min-height: auto; }
  .approach-content { grid-template-columns: 1fr; gap: 32px; }
  .steps { gap: 10px; }
  .steps li { grid-template-columns: 39px 1fr; gap: 13px; padding: 21px 17px; }
  .steps h3 { font-size: 1.48rem; }
  .steps p { font-size: .83rem; line-height: 1.78; }
  .why-card { padding: 25px 21px; }
  .why-card li { font-size: .82rem; }
  .contact { padding: 72px 0; }
  .contact-grid { gap: 36px; }
  .contact h2 { max-width: 100%; font-size: clamp(2.35rem, 10.5vw, 3.25rem); }
  html[lang="ar"] .contact h2 { line-height: 1.13; }
  .contact-copy > p:not(.section-index) { margin: 22px 0 28px; font-size: .92rem; line-height: 1.85; }
  .contact-copy .button { width: 100%; }
  .contact-panel { grid-template-rows: 220px auto; min-height: auto; }
  .contact-list { padding: 25px 22px; }
  .contact-list > * { padding: 17px 0; }
  .contact-brand { inset: auto 18px 17px; width: 88px; transform: none; }
  .footer { padding-top: 58px; }
  .footer-main { grid-template-columns: 1fr; gap: 34px; }
  .footer-intro { grid-column: auto; }
  .footer-intro > p { margin-top: 24px; font-size: .82rem; }
  .footer-column h3 { font-size: 1.18rem; margin-bottom: 8px; }
  .footer-column a, .footer-column > span { font-size: .76rem; }
  .footer-contact { grid-column: auto; }
  .footer-bottom { grid-template-columns: 1fr; padding: 22px 76px 62px; gap: 10px; }
  .footer-bottom span, .footer-bottom span:nth-child(2), .footer-bottom span:last-child { text-align: center; }
  .floating-whatsapp { right: 14px; bottom: calc(14px + env(safe-area-inset-bottom)); width: 50px; height: 50px; box-shadow: 0 8px 24px rgba(37,211,102,.25); }
  .back-top { display: none; }
  [dir="rtl"] .floating-whatsapp { right: auto; left: 14px; }
  .about::after, .work::after, .contact::after { width: 112px; height: 112px; inset-block-start: 25px; opacity: .68; }
}

@media (max-width: 370px) {
  :root { --shell: calc(100vw - 30px); }
  .nav-wrap { gap: 7px; }
  .brand-logo { height: 50px; }
  .language-toggle { min-width: 38px; min-height: 40px; padding: 7px; font-size: .68rem; }
  .menu-toggle { width: 42px; height: 42px; }
  .menu-toggle span { left: 8px; }
  .main-nav { width: calc(100vw - 22px); padding-inline: 15px; }
  .main-nav-links a { min-height: 54px; font-size: 1.28rem; }
  .hero { padding-top: 101px; }
  .hero-inner { gap: 34px; }
  .hero h1 { font-size: clamp(2.15rem, 11.5vw, 2.65rem); }
  .hero-text { font-size: .85rem; }
  .hero-picture-label { inset-block-end: 15px; }
  .hero-picture-label strong { font-size: .72rem; letter-spacing: .1em; }
  .hero-note, [dir="rtl"] .hero-note { width: calc(100% - 18px); margin-inline: 9px; }
  .section-top h2 { font-size: 2rem; }
  .service-row, .service-row.featured { padding: 20px; }
  .project-info { inset: auto 17px 17px; }
  .contact-list { padding-inline: 18px; }
  .footer-bottom { padding-inline: 58px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}
