/* Fosten 2026: preserve the supplied composition and palette, fix layout and motion. */
:root { --header-space:110px; --ease:cubic-bezier(.16,1,.3,1); }
html { scroll-padding-block-start:var(--header-space); }
body { overflow-x:clip; }
[hidden] { display:none!important; }
main:focus,section[tabindex="-1"]:focus { outline:none; }
.skip-link { top:12px; transform:translateY(calc(-100% - 24px)); }
.skip-link:focus { transform:none; }
button,a,input,select,textarea { -webkit-tap-highlight-color:transparent; }
input,textarea,select { min-width:0; }
h1,h2,h3,p { overflow-wrap:anywhere; }
.manifesto>* { min-width:0; }
input::placeholder,textarea::placeholder { color:#a5a2a0; opacity:1; }
.form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.rfq .choice-grid input { display:block; }
.choice-grid label { position:relative; }
.rfq .choice-grid input:focus-visible+span { outline:2px solid #c5c1ff; }
.bot-field { left:auto!important; inset-inline-start:0; }
footer>*,.subfooter>* { min-width:0; }
a[href^="mailto:"] { display:inline-block; overflow-wrap:anywhere; unicode-bidi:isolate; }
a[href^="tel:"] { unicode-bidi:isolate; }
#nav { min-height:88px; padding-block:16px; gap:20px; }
#nav.scrolled { padding-block:12px; }
header#nav .logo { width:150px; min-width:150px; height:56px; min-height:56px; flex-shrink:0; }
header#nav .logo img { width:150px!important; height:90px!important; max-width:150px!important; max-height:90px!important; }
#nav .nav-button { margin:0; white-space:nowrap; }
.language-switch .lang-option { min-height:44px; min-width:44px; font-family:'Noto Sans Arabic','DM Sans',sans-serif; }
#nav .language-switch a::after { display:none; }
.subnav#nav { position:sticky; background:rgba(8,8,8,.96); }
.subnav-logo { line-height:1.2; }
.subnav-logo span { margin-block-start:6px; }
#nav nav { margin-inline-start:auto; }
#nav>.language-switch { margin-inline-start:0; }
.nav-toggle { min-height:44px; }
#fosten-scroll-progress { width:100%; transform:scaleX(0); transform-origin:left; }
html[dir="rtl"] #fosten-scroll-progress { transform-origin:right; }
.hero { min-height:100svh; padding-block:130px 90px; }
.hero-content { padding-top:0; padding-bottom:35px; }
.hero-video { z-index:0; transform:translate3d(0,var(--hero-shift,0px),0) scale(1.1); }
.hero-overlay { z-index:1; background:linear-gradient(90deg,rgba(0,0,0,.76),rgba(0,0,0,.42) 60%,rgba(0,0,0,.28)),linear-gradient(0deg,#080808aa,transparent 45%); }
.hero-kicker { color:#b4b3eb; }
#hero .hero-title { overflow:visible; }
.hero-title span { will-change:auto; }
.hero-bottom { bottom:32px; max-width:none; padding-inline-end:150px; align-items:end; }
.hero-actions { flex-wrap:wrap; }
.button.primary { color:#fff; }
.footer-extras span { opacity:1; }
.hero-bottom span { line-height:1.6; }
.hero-bottom span:last-child { display:none; }
.motion-toggle { position:absolute; z-index:3; inset-inline-end:5vw; bottom:28px; border:1px solid #ffffff45; border-radius:999px; padding:10px 16px; min-height:44px; color:#f5f3ee; background:#08080899; font-size:.72rem; }
.motion-toggle:hover { background:#25252e; }
.manifesto-image { will-change:auto; }
.manifesto-image .image-placeholder { transition:none; transform:translate3d(0,var(--fosten-manifesto-shift,0px),0) scale(1.08); }
.manifesto-image:hover .image-placeholder { transform:translate3d(0,var(--fosten-manifesto-shift,0px),0) scale(1.08); }
.statement { padding-block:90px; }
.statement h2 { overflow-wrap:anywhere; }
.service-controls { display:flex; align-items:center; gap:10px; width:90%; max-width:var(--max); margin:45px auto 20px; }
.service-hint { color:#b2afbb; font-size:.8rem; margin-inline-end:auto; }
.service-controls button { width:46px; height:46px; border:1px solid var(--line); border-radius:50%; background:#141417; color:#fff; font-size:1.2rem; }
.service-controls button:disabled { opacity:.35; cursor:default; }
.service-pin { margin-top:0; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x proximity; scroll-padding-inline:5vw; overscroll-behavior-x:contain; scrollbar-width:thin; scrollbar-color:#6566ae #171717; }
.service-track { padding:16px 5vw 28px; gap:20px; direction:inherit; }
.service-card { flex-shrink:0; scroll-snap-align:start; min-height:560px; transition:background .4s,border-color .4s; }
.service-card h3 { margin-top:80px; }
.service-card button,.service-more { min-height:44px; display:inline-flex; align-items:center; }
.service-card:hover { transform:none; }
.service-card button:hover,.service-card:hover .service-number { transform:none; }
.service-more { width:fit-content; }
.service-sequence { position:relative; }
.services { overflow:clip; }
.service-sequence.is-pinned .service-pin { position:sticky; top:var(--header-space); scroll-snap-type:none; scrollbar-width:none; }
.service-sequence.is-pinned .service-pin::-webkit-scrollbar { display:none; }
.image-placeholder { overflow-wrap:anywhere; }
.network-inner>* { min-width:0; }
.network-stats strong { overflow-wrap:anywhere; }
.closing h2 { overflow-wrap:anywhere; }
.subhero h1,.legal-page h1 { overflow-wrap:anywhere; }
.subhero { padding-top:80px; }
.detail { min-width:0; }
.detail-button { min-height:44px; }
.subfooter { overflow-wrap:anywhere; }

/* Arabic shaping stays intact: animate whole lines, never individual glyphs. */
html[dir="rtl"] body,html[dir="rtl"] h1,html[dir="rtl"] h2,html[dir="rtl"] h3,
html[dir="rtl"] .image-placeholder,html[dir="rtl"] .network-stats strong { font-family:'Noto Sans Arabic',Tahoma,Arial,sans-serif; letter-spacing:0!important; }
html[dir="rtl"] body { line-height:1.8; }
html[dir="rtl"] :is(h1,h2,h3) { line-height:1.4; font-weight:700; }
html[dir="rtl"] :is(.section-label,.form-section h3,.service-number,.detail-number,.network-stats span,.capability-item>span,.footer-logo small) { letter-spacing:0; }
html[dir="rtl"] .hero .hero-title { font-size:clamp(3.5rem,7vw,8rem); line-height:1.25; }
html[dir="rtl"] .hero .hero-title span { line-height:1.3; }
html[dir="rtl"] .hero-overlay { background:linear-gradient(270deg,rgba(0,0,0,.76),rgba(0,0,0,.42) 60%,rgba(0,0,0,.28)),linear-gradient(0deg,#080808aa,transparent 45%); }
html[dir="rtl"] .hero-kicker { text-align:right; font-family:'DM Sans',sans-serif; letter-spacing:.12em; }
html[dir="rtl"] :is(.hero p,.manifesto-copy p,.service-intro p,.network-copy p,.quote-intro p,.service-card p,.capability-item p) { line-height:1.95; }
html[dir="rtl"] .service-track { direction:rtl; }
html[dir="rtl"] .service-card { text-align:start; }
html[dir="rtl"] .service-card h3 { line-height:1.5; font-size:clamp(1.8rem,2.5vw,2.7rem); }
html[dir="rtl"] .service-card .service-meta { font-size:.78rem; }
html[dir="rtl"] :is(.manifesto-copy h2,.service-intro h2,.network h2,.quote-intro h2,.closing h2) { font-size:clamp(2.6rem,5vw,5.7rem); }
html[dir="rtl"] .capabilities h2 { font-size:clamp(2.8rem,5.5vw,6rem); }
html[dir="rtl"] .statement h2 { font-size:clamp(3rem,6.5vw,7rem); }
html[dir="rtl"] .subhero h1 { font-size:clamp(3rem,7vw,7rem); line-height:1.45; }
html[dir="rtl"] .legal-page h1 { font-size:clamp(2.5rem,6vw,5.5rem); }
html[dir="rtl"] .form-section h3 { font-size:.9rem; }
html[dir="rtl"] .rfq :is(input[type="email"],input[type="tel"],input[type="number"],input[type="date"]) { direction:ltr; unicode-bidi:isolate; text-align:start; }
html[dir="rtl"] .logo,html[dir="rtl"] .subnav-logo,html[dir="rtl"] .footer-logo { font-family:'Manrope',sans-serif; }
html[dir="rtl"] .network::before,html[dir="rtl"] .quote::before,html[dir="rtl"] .statement::before { right:auto; left:0; }
html[dir="rtl"] .network-stats div::after { right:auto; left:0; }
html[dir="rtl"] .skip-link { left:auto; right:20px; }

@media (max-width:1180px) {
  #nav { gap:12px; }
  #nav>.language-switch { margin-inline-start:auto; }
  #nav nav { margin:0; max-height:calc(100dvh - 90px); overflow-y:auto; overscroll-behavior:contain; background:#101013fa; }
  #nav nav a { min-height:44px; display:flex; align-items:center; padding-block:8px; }
  .subnav#nav { flex-wrap:nowrap; }
  .subnav#nav nav { width:100%; }
}
@media (max-width:900px),(pointer:coarse) {
  .hero-video { transform:none; }
  .service-card { min-height:540px; }
  .service-card::before { filter:none; transition:none; }
  .service-card:hover::before { transform:scale(1.06); opacity:.56; }
  .manifesto-image .image-placeholder,.manifesto-image:hover .image-placeholder { transform:none; }
  .network-stats { gap:14px; }
}
@media (max-width:600px) {
  :root { --header-space:92px; }
  #nav { padding:12px 5vw; gap:8px; }
  header#nav .logo { min-width:92px; width:92px; min-height:48px; height:48px; }
  header#nav .logo img { width:108px!important; height:68px!important; max-width:108px!important; max-height:68px!important; }
  #nav .language-switch .lang-option { font-size:.72rem; min-width:40px; padding:6px 7px; }
  .subnav-logo { font-size:1.15rem; }
  .subnav-logo span { font-size:.42rem; }
  .hero { padding-block:120px 115px; min-height:100svh; }
  .hero-content { padding-bottom:10px; }
  .hero h1 { font-size:clamp(3.25rem,14vw,5.5rem); line-height:.95; }
  .hero p { font-size:1rem; }
  .hero-actions { flex-direction:row; gap:10px; }
  .hero-actions .button { padding-inline:18px; font-size:.78rem; }
  .hero-bottom { bottom:80px; padding-inline-end:0; font-size:.58rem; }
  .motion-toggle { bottom:20px; }
  html[dir="rtl"] .hero-bottom { bottom:80px; }
  html[dir="rtl"] .hero .hero-title { font-size:clamp(3rem,12.5vw,4.8rem); }
  html[dir="rtl"] .hero-kicker { font-size:10px; line-height:1.7; }
  html[dir="rtl"] :is(.manifesto-copy h2,.service-intro h2,.network h2,.quote-intro h2,.closing h2,.capabilities h2) { font-size:clamp(2.4rem,10vw,3.7rem); }
  html[dir="rtl"] .statement h2 { font-size:clamp(2.5rem,10vw,4rem); }
  .statement h2 { font-size:clamp(2.6rem,11vw,4.5rem); line-height:1; }
  .manifesto { padding-block:80px; }
  .services { padding-block:80px; }
  .service-controls { margin-top:32px; }
  .service-hint { max-width:58%; font-size:.72rem; }
  .service-card { width:82vw; padding:26px; min-height:510px; }
  html[dir="rtl"] .service-card { min-height:540px; }
  .service-card h3 { margin-top:52px; }
  .form-grid { grid-template-columns:1fr; }
  .rfq input,.rfq select,.rfq textarea { font-size:16px; }
  .rfq input[type="checkbox"] { font-size:inherit; }
  .closing h2 { font-size:clamp(2.8rem,12vw,4.5rem); }
  .subhero { padding-block:65px 75px; }
  .legal-page { padding-block:65px; }
  .legal-page h1 { font-size:clamp(2.8rem,12vw,4rem); }
  .detail { padding:35px 25px; }
  .subfooter { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { transition:none!important; animation:none!important; }
  .hero-video { display:block; transform:none; }
  .service-pin { scroll-snap-type:none; }
  .service-card::before,.manifesto-image .image-placeholder { transform:none!important; }
}
html.motion-paused *,html.motion-paused *::before,html.motion-paused *::after { transition:none!important; animation:none!important; }
@media print {
  #nav,.motion-toggle,.service-controls,.hero-video { display:none!important; }
  .hero { min-height:0; }
  .service-sequence { height:auto!important; }
  .service-pin { overflow:visible; position:static!important; }
  .service-track { width:auto; display:block; }
  .service-card { width:auto; break-inside:avoid; }
}
