/* SDEC website - Option B "Plant at night" (approved 1 Oct 2026) */
:root{
  --ink:#101C27;
  --deep:#1A2A38;
  --frost:#E8EEF2;
  --mist:#A9B8C6;
  --green:#7DB32F;
  --rule:rgba(232,238,242,.16);
  --rule-strong:rgba(232,238,242,.3);

  --max:1320px;
  --gutter:clamp(16px,4vw,56px);
  --display:"Sofia Sans Condensed","Arial Narrow",Arial,sans-serif;
  --body:"Sofia Sans","Helvetica Neue",Arial,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ink);color:var(--frost);font-family:var(--body);font-size:18px;line-height:1.6;font-weight:350;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
img,video{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.container{max-width:calc(var(--max) + 2*var(--gutter));margin-inline:auto;padding-inline:var(--gutter)}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;inset-inline-start:16px;top:-60px;z-index:100;background:var(--green);color:var(--ink);padding:10px 16px;font-weight:700;text-decoration:none;border-radius:2px}
.skip:focus{top:16px}
h1,h2,h3{margin:0;font-family:var(--display);font-weight:700;letter-spacing:-.005em;text-wrap:balance}
h2{font-size:clamp(44px,5.4vw,76px);line-height:.98}
p{margin:0}
ul,ol{margin:0;padding:0}

.btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 24px;border-radius:2px;text-decoration:none;cursor:pointer;
  font:700 17px/1 var(--body);letter-spacing:.01em;border:1px solid transparent;transition:background-color .15s,border-color .15s,color .15s}
.btn-green{background:var(--green);color:var(--ink)}
.btn-green:hover{background:#90c740}
.btn-line{border-color:rgba(232,238,242,.5);color:var(--frost);background:transparent}
.btn-line:hover{border-color:var(--frost);background:rgba(232,238,242,.08)}
.text-link{font-weight:700;text-decoration:none;border-bottom:2px solid var(--green);padding-bottom:3px}
.text-link:hover{color:var(--green)}
.pending{font-style:italic;color:var(--mist);opacity:.9}

/* Header */
.site-header{position:fixed;inset-inline:0;top:0;z-index:50;transition:background-color .25s}
.site-header.is-solid{background:rgba(16,28,39,.94);backdrop-filter:blur(8px)}
.header-row{display:flex;align-items:center;gap:36px;height:84px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--frost);flex:none}
.logo-mark{height:44px;width:auto}
.logo-word{height:32px;width:auto;fill:currentColor}
.mk-l{fill:var(--green)}
.mk-b{fill:currentColor}
.lang{font-size:15px;display:flex;gap:6px;color:var(--mist)}
.lang a{text-decoration:none}
.lang a[aria-current]{color:var(--frost);font-weight:700}
.header-tools{display:flex;align-items:center;gap:24px;margin-inline-start:auto}
.burger{position:relative;width:48px;height:48px;margin-inline-end:-9px;padding:0;background:none;border:0;color:inherit;cursor:pointer}
.burger span{position:absolute;inset-inline-start:9px;width:30px;height:2px;background:currentColor;transition:transform .35s cubic-bezier(.6,0,.2,1),opacity .2s}
.burger span:nth-child(1){top:15px}
.burger span:nth-child(2){top:23px}
.burger span:nth-child(3){top:31px}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
.site-header.menu-open{background:transparent;backdrop-filter:none}

/* Menu */
.site-menu{position:fixed;inset:0;z-index:45;overflow-y:auto;opacity:0;transition:opacity .3s ease;background:var(--ink);color:var(--frost)}
.site-menu[hidden]{display:none}
.site-menu.is-open{opacity:1}
.menu-inner{min-height:100%;display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px;align-content:center;padding-block:128px 64px}
.menu-inner nav{grid-column:1 / span 5}
.menu-links{list-style:none}
.menu-links li{border-top:1px solid var(--rule)}
.menu-links a{display:block;text-decoration:none;padding:10px 0 8px;font:400 clamp(26px,4vw,56px)/1.1 var(--display);transition:color .15s}
.menu-links a:hover,.menu-links a[aria-current="page"]{color:var(--green)}
.menu-aside{grid-column:9 / span 4;align-self:end;font-size:15px;line-height:1.6;color:var(--mist)}
.menu-aside p+p{margin-top:16px}
.menu-lang{display:flex;gap:20px}
.menu-lang a{text-decoration:none;color:var(--frost)}
.menu-lang a[aria-current]{text-decoration:underline;text-underline-offset:4px}
.site-menu.is-open .menu-links li{animation:menu-in .5s cubic-bezier(.2,.6,.2,1) both}
.site-menu.is-open .menu-links li:nth-child(2){animation-delay:.04s}
.site-menu.is-open .menu-links li:nth-child(3){animation-delay:.08s}
.site-menu.is-open .menu-links li:nth-child(4){animation-delay:.12s}
.site-menu.is-open .menu-links li:nth-child(5){animation-delay:.16s}
.site-menu.is-open .menu-links li:nth-child(6){animation-delay:.2s}
.site-menu.is-open .menu-links li:nth-child(7){animation-delay:.24s}
@keyframes menu-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.menu-lock{overflow:hidden}

/* Home hero */
.hero{position:relative;min-height:max(720px,100svh);display:flex;align-items:flex-end;overflow:hidden;isolation:isolate}
.hero-video{position:absolute;inset:0;width:100%;height:100%;z-index:-2;object-fit:cover;object-position:50% 40%;background:var(--ink)}
.video-toggle{position:absolute;inset-inline-end:var(--gutter);top:108px;z-index:2;display:flex;align-items:center;gap:10px;
  padding:8px 12px;border:1px solid rgba(232,238,242,.35);border-radius:2px;background:rgba(16,28,39,.35);color:var(--frost);
  font:600 13px/1 var(--body);cursor:pointer;backdrop-filter:blur(4px)}
.video-toggle:hover{border-color:var(--frost)}
.video-toggle svg{width:10px;height:12px;fill:currentColor}
.video-toggle .i-play{display:none}
.video-toggle[aria-pressed="true"] .i-play{display:block}
.video-toggle[aria-pressed="true"] .i-pause{display:none}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(16,28,39,.55) 0%,rgba(16,28,39,.1) 28%,rgba(16,28,39,.55) 55%,rgba(16,28,39,.97) 100%)}
.hero .container{width:100%;padding-block:160px 48px}
.hero h1{font:400 clamp(30px,4.7vw,74px)/1 var(--display);letter-spacing:-.005em;max-width:16em}
.hero-foot{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:28px 48px;
  margin-top:48px;padding-top:28px;border-top:1px solid rgba(232,238,242,.28)}
.hero-foot p{color:var(--mist);max-width:40em;font-size:17px}
.actions{display:flex;flex-wrap:wrap;gap:12px}
@media (prefers-reduced-motion:no-preference){
  .hero h1{animation:rise 1s cubic-bezier(.2,.6,.2,1) .35s both}
  .hero-foot{animation:fade .8s ease-out 1.1s both}
}
@keyframes rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes fade{from{opacity:0}to{opacity:1}}

/* Inner page hero */
.page-hero{position:relative;isolation:isolate;overflow:hidden;min-height:min(560px,70svh);display:flex;align-items:flex-end;background:var(--deep)}
.page-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;filter:saturate(.6) contrast(1.05) brightness(.8)}
.page-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(16,28,39,.7) 0%,rgba(16,28,39,.35) 40%,rgba(16,28,39,.96) 100%)}
.page-hero .container{width:100%;padding-block:140px 56px}
.page-hero h1{font:400 clamp(38px,5.4vw,80px)/1 var(--display);max-width:18em}
.page-hero .lede{margin-top:20px;max-width:42em;color:var(--mist);font-size:clamp(17px,1.4vw,20px)}
.page-hero.is-short{min-height:min(420px,56svh)}
.crumbs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px;font-size:14px;color:var(--mist);list-style:none}
.crumbs li+li::before{content:"/";margin-inline-end:8px;opacity:.6}
.crumbs a{text-decoration:none}
.crumbs a:hover{color:var(--frost);text-decoration:underline}

/* Proof strip */
.proof{background:var(--deep)}
.proof dl{display:grid;grid-template-columns:repeat(4,1fr);margin:0}
.proof dl>div{padding:44px 28px 40px;border-inline-start:1px solid var(--rule);display:flex;flex-direction:column-reverse;justify-content:flex-end}
.proof dl>div:first-child{border-inline-start:0;padding-inline-start:0}
.proof dd{margin:0;font:800 clamp(56px,6.4vw,92px)/.9 var(--display);font-variant-numeric:lining-nums}
.proof dt{margin-top:10px;color:var(--mist);font-size:17px}

/* Sections */
.section{padding-block:clamp(96px,11vw,160px)}
.section.tight{padding-block:clamp(72px,8vw,112px)}
.section.alt{background:var(--deep)}
.section-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:48px}
.section-head .intro{max-width:36em;color:var(--mist)}
.split{display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px}
.split>.side{grid-column:1 / span 4;align-self:start}
.split>.main{grid-column:6 / span 7}
.side.sticky{position:sticky;top:120px}
.side p{margin-top:24px;color:var(--mist)}
.side .text-link{display:inline-block;margin-top:28px}
.prose p{max-width:38em}
.prose p+p{margin-top:1em}
.prose .big{font-size:inherit;line-height:inherit;color:var(--frost)}
.quote{margin:0;padding-inline-start:24px;border-inline-start:2px solid var(--green)}
.quote blockquote{margin:0;font:400 clamp(24px,2.4vw,34px)/1.2 var(--display)}
.quote figcaption{margin-top:12px;font-size:15px;color:var(--mist);font-style:italic}

/* Home services list */
.service-list{list-style:none;border-bottom:1px solid var(--rule)}
.service-list a{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:24px;padding:34px 0;border-top:1px solid var(--rule);text-decoration:none}
.service-list h3{font-size:clamp(30px,2.8vw,40px);line-height:1;transition:color .15s}
.service-list p{color:var(--mist);font-size:16px}
.service-list a:hover h3{color:var(--green)}

/* Filters */
.filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:28px}
.chip{font:600 15px/1 var(--body);color:var(--frost);background:transparent;border:1px solid var(--rule-strong);border-radius:2px;padding:11px 16px;cursor:pointer}
.chip:hover{border-color:var(--frost)}
.chip[aria-pressed="true"]{background:var(--green);border-color:var(--green);color:var(--ink)}
.select{position:relative}
.select select{appearance:none;font:600 15px/1 var(--body);color:var(--frost);background:transparent;border:1px solid var(--rule-strong);border-radius:2px;padding-block:11px;padding-inline:16px 40px;cursor:pointer}
.select select:hover{border-color:var(--frost)}
.select::after{content:"";position:absolute;inset-inline-end:16px;top:50%;width:8px;height:8px;border-right:2px solid var(--mist);border-bottom:2px solid var(--mist);transform:translateY(-70%) rotate(45deg);pointer-events:none}
.select option{background:var(--ink);color:var(--frost)}
.filters .spacer{flex:1}
.result-count{color:var(--mist);font-size:15px;margin-bottom:20px}
.empty{padding:48px 0;color:var(--mist)}

/* Project cards */
.project-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px;list-style:none}
.project{grid-column:span 4}
.project-grid.feature:not(.is-filtered) .project:nth-child(1){grid-column:1 / -1}
.project-grid.feature:not(.is-filtered) .project:nth-child(2),
.project-grid.feature:not(.is-filtered) .project:nth-child(3){grid-column:span 6}
.project a{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;text-decoration:none;background:var(--deep)}
.project-grid.feature:not(.is-filtered) .project:nth-child(1) a{aspect-ratio:21/9}
.project img{width:100%;height:100%;object-fit:cover;filter:saturate(.7) contrast(1.06) brightness(.92);transition:transform .5s cubic-bezier(.2,.6,.2,1)}
.project a:hover img{transform:scale(1.03)}
.project a::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,28,39,0) 35%,rgba(16,28,39,.94) 100%)}
.project .cap{position:absolute;inset-inline:0;bottom:0;z-index:1;padding:24px 26px}
.project h3{font-size:clamp(24px,2vw,30px);line-height:1.02}
.project-grid.feature:not(.is-filtered) .project:nth-child(1) h3{font-size:clamp(34px,4.4vw,60px)}
.project .meta{margin-top:8px;color:var(--mist);font-size:15px}

/* Sectors (home) */
.sectors{position:relative;isolation:isolate;overflow:hidden}
.sectors>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;filter:grayscale(1) contrast(1.15) brightness(.5)}
.sectors::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(16,28,39,.9),rgba(26,42,56,.78) 60%,rgba(16,28,39,.95))}
.sectors h2{max-width:10em}
.sector-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;list-style:none;margin-top:64px}
.sector-grid li{border-top:2px solid var(--green);padding-top:22px}
.sector-grid h3{font-size:34px;line-height:1}
.sector-grid p{margin-top:14px;font-size:16px}
.sector-grid .who{margin-top:14px;color:var(--mist);font-size:15px}
.sector-grid .text-link{display:inline-block;margin-top:18px;font-size:15px}

/* Logos */
.clients-band{background:var(--deep);padding-block:64px}
.clients-band .row-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:32px}
.clients-band h2{font:600 17px/1.3 var(--body);color:var(--mist)}
.logo-row{--per-row:7;--gap:32px;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:44px var(--gap);list-style:none}
.logo-row li{flex:0 0 calc((100% - (var(--per-row) - 1) * var(--gap)) / var(--per-row));display:flex;justify-content:center}
.logo-row img{height:auto;max-height:50px;width:auto;max-width:min(150px,100%);opacity:.8}
.logo-row img.sq{max-height:72px}
.logo-wall{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--rule);border-inline-start:1px solid var(--rule);list-style:none}
.logo-wall li{border-bottom:1px solid var(--rule);border-inline-end:1px solid var(--rule)}
.logo-wall .tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;height:100%;min-height:180px;padding:28px 20px;text-decoration:none;text-align:center;transition:background-color .15s}
.logo-wall a.tile:hover{background:rgba(232,238,242,.05)}
.logo-wall img{max-height:64px;max-width:min(170px,100%);width:auto;opacity:.85}
.logo-wall img.sq{max-height:88px}
.logo-wall img.wide{max-width:min(240px,100%)}
.logo-wall .wordmark{font:600 clamp(17px,1.4vw,20px)/1.3 var(--display);color:var(--frost);opacity:.88;max-width:14em}
.logo-wall .name{font-size:14px;color:var(--mist);line-height:1.3}
.logo-wall a.tile:hover .name{color:var(--frost)}
.client-group+.client-group{margin-top:96px}
.client-group h2{font-size:clamp(34px,3.6vw,52px);margin-bottom:12px}
.client-group .intro{color:var(--mist);margin-bottom:32px;max-width:40em}
.also{margin-top:96px;padding-top:32px;border-top:1px solid var(--rule)}
.also h2{font:700 15px/1.3 var(--body);margin-bottom:12px}
.also p{color:var(--mist);max-width:56em}

/* Services overview cards */
.service-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;list-style:none}
.service-cards a{display:flex;flex-direction:column;height:100%;text-decoration:none;background:var(--deep)}
.service-cards .ph{aspect-ratio:16/10;overflow:hidden}
.service-cards img{width:100%;height:100%;object-fit:cover;filter:saturate(.6) contrast(1.05) brightness(.85);transition:transform .5s cubic-bezier(.2,.6,.2,1)}
.service-cards a:hover img{transform:scale(1.03)}
.service-cards .body{padding:24px 26px 30px;display:flex;flex-direction:column;gap:12px;flex:1}
.service-cards h3{font-size:clamp(28px,2.4vw,36px);line-height:1;transition:color .15s}
.service-cards a:hover h3{color:var(--green)}
.service-cards p{color:var(--mist);font-size:16px}

/* Numbered steps (genuine sequences only) */
.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:0;list-style:none;counter-reset:step}
.steps li{counter-increment:step;padding-block:28px 8px;padding-inline:0 24px;border-top:2px solid var(--rule-strong);position:relative}
.steps li::before{content:counter(step,decimal-leading-zero);display:block;font:700 15px/1 var(--body);color:var(--green);margin-bottom:18px}
.steps li::after{content:"";position:absolute;top:-6px;inset-inline-start:0;width:10px;height:10px;border-radius:50%;background:var(--green)}
.steps h3{font-size:clamp(22px,1.9vw,28px);line-height:1.05}
.steps p{margin-top:10px;color:var(--mist);font-size:15px}

/* Timeline */
.timeline{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);border-top:2px solid var(--rule-strong)}
.timeline li{padding-block:32px 0;padding-inline:0 24px;position:relative}
.timeline li::before{content:"";position:absolute;top:-7px;inset-inline-start:0;width:12px;height:12px;border-radius:50%;background:var(--ink);border:2px solid var(--green)}
.timeline .when{font:700 clamp(30px,2.8vw,42px)/1 var(--display);color:var(--frost)}
.timeline h3{margin-top:14px;font:700 17px/1.3 var(--body)}
.timeline p{margin-top:8px;color:var(--mist);font-size:15px}

/* Plain lists */
.tick-list{list-style:none;display:grid;gap:0}
.tick-list li{padding-block:14px;padding-inline:28px 0;border-top:1px solid var(--rule);position:relative}
.tick-list li:last-child{border-bottom:1px solid var(--rule)}
.tick-list li::before{content:"";position:absolute;inset-inline-start:2px;top:23px;width:10px;height:2px;background:var(--green)}
.tick-list.cols{grid-template-columns:1fr 1fr;column-gap:32px}
.tick-list.cols li:nth-last-child(2){border-bottom:1px solid var(--rule)}   /* close both columns, odd or even counts */

/* Discipline switcher */
.disciplines{display:grid;grid-template-columns:minmax(220px,4fr) 8fr;column-gap:56px;align-items:start}
.disc-tab{grid-column:1;display:flex;justify-content:space-between;align-items:center;width:100%;text-align:start;background:none;border:0;border-top:1px solid var(--rule);
  color:var(--mist);font:400 clamp(20px,1.7vw,24px)/1.2 var(--display);padding:14px 0;cursor:pointer;transition:color .15s}
.disc-tab:hover{color:var(--frost)}
.disc-tab[aria-expanded="true"]{color:var(--green)}
.disc-tab .ind{width:10px;height:10px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);opacity:.6;flex:none}
.disc-panel{grid-column:2;grid-row:1 / span 20}
.disc-panel[hidden]{display:none}
.disc-panel h3{font-size:clamp(32px,3vw,44px);margin-bottom:24px}
.disc-text{max-width:40em;margin-bottom:28px}
.disc-tab:last-of-type{border-bottom:1px solid var(--rule)}

/* Project detail */
.detail-hero{position:relative;isolation:isolate;overflow:hidden;min-height:min(760px,86svh);display:flex;align-items:flex-end;background:var(--deep)}
.detail-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;filter:saturate(.75) contrast(1.05)}
.detail-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(16,28,39,.65) 0%,rgba(16,28,39,.1) 35%,rgba(16,28,39,.97) 100%)}
.detail-hero .container{width:100%;padding-block:140px 56px}
.detail-hero h1{font:400 clamp(36px,5vw,76px)/1 var(--display);max-width:18em}
.facts{margin:0;border-top:2px solid var(--green)}
.facts>div{display:grid;grid-template-columns:120px 1fr;gap:16px;padding:16px 0;border-bottom:1px solid var(--rule)}
.facts dt{color:var(--mist);font-size:15px}
.facts dd{margin:0;font-size:16px}
.facts dd a{text-decoration:none;border-bottom:1px solid var(--rule-strong)}
.facts dd a:hover{border-color:var(--green)}
.detail-body h2{font-size:clamp(30px,2.8vw,40px);margin-bottom:20px}
.detail-body section+section{margin-top:56px}
.deliv h3{font:700 17px/1.3 var(--body);color:var(--frost);margin:32px 0 8px}
.no-photo{width:100%;height:100%;display:grid;place-items:center;color:var(--frost);
  background:linear-gradient(135deg,rgba(125,179,47,.08),rgba(125,179,47,0) 45%),repeating-linear-gradient(90deg,rgba(232,238,242,.035) 0 1px,transparent 1px 48px),repeating-linear-gradient(0deg,rgba(232,238,242,.035) 0 1px,transparent 1px 48px),var(--deep)}
.no-photo svg{width:clamp(56px,7vw,96px);height:auto;opacity:.5}
.no-photo .mk-b{fill:currentColor}
.project .no-photo{position:absolute;inset:0}
.project .no-photo svg{transform:translateY(-18%)}
.detail-hero.is-empty .no-photo{position:absolute;inset:0;z-index:-2;place-items:center end;padding-inline-end:12vw}
.detail-hero.is-empty .no-photo svg{width:clamp(140px,18vw,260px);opacity:.35}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;list-style:none}
.gallery li{aspect-ratio:4/3;overflow:hidden;background:var(--deep)}
.gallery img{width:100%;height:100%;object-fit:contain;filter:saturate(.8)}
.pager{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:48px}
.pager a{display:block;padding:24px;border:1px solid var(--rule);text-decoration:none;transition:border-color .15s}
.pager a:hover{border-color:var(--green)}
.pager .dir{display:block;font-size:14px;color:var(--mist);margin-bottom:6px}
.pager .t{font:700 22px/1.1 var(--display)}
.pager .next{text-align:end}

/* Register */
.register-tools{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:24px}
.search{flex:1 1 320px;max-width:520px;position:relative}
.search input{width:100%;font:400 17px/1 var(--body);color:var(--frost);background:transparent;border:1px solid var(--rule-strong);border-radius:2px;padding-block:14px;padding-inline:44px 16px}
.search input::placeholder{color:var(--mist)}
.search input:focus{border-color:var(--frost);outline:none}
.search input:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.search svg{position:absolute;inset-inline-start:16px;top:50%;width:16px;height:16px;transform:translateY(-50%);stroke:var(--mist);fill:none;stroke-width:2}
.table-wrap{overflow-x:auto;border-top:2px solid var(--rule-strong)}
.register{width:100%;border-collapse:collapse;font-size:16px;min-width:640px}
.register th{text-align:start;font:600 14px/1.3 var(--body);color:var(--mist);padding-block:14px;padding-inline:0 16px;border-bottom:1px solid var(--rule-strong)}
.register td{padding-block:14px;padding-inline:0 16px;border-bottom:1px solid var(--rule);vertical-align:top}
.register td:first-child,.register th:first-child{width:3.5em;color:var(--mist);font-variant-numeric:tabular-nums}
.register td.client{width:30%}
.register td.year{width:7em;white-space:nowrap;font-variant-numeric:tabular-nums}
.register tr[hidden]{display:none}
.register mark{background:rgba(125,179,47,.3);color:inherit;padding:0 1px}

/* Forms */
.form{display:grid;grid-template-columns:1fr 1fr;gap:20px 24px}
.field{display:flex;flex-direction:column;gap:8px}
.field.full{grid-column:1 / -1}
.field label{font-size:15px;font-weight:600}
.field .opt{font-weight:400;color:var(--mist)}
.field input,.field select,.field textarea{font:400 17px/1.4 var(--body);color:var(--frost);background:rgba(232,238,242,.03);border:1px solid var(--rule-strong);border-radius:2px;padding:13px 14px;width:100%}
.field textarea{min-height:160px;resize:vertical}
.field select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--mist) 50%),linear-gradient(135deg,var(--mist) 50%,transparent 50%);background-position:calc(100% - 22px) 52%,calc(100% - 16px) 52%;background-size:6px 6px;background-repeat:no-repeat;padding-inline-end:44px}
.field select option{background:var(--ink)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--frost);outline:none}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.field input[type=file]{padding:11px;font-size:15px}
.field .hint{font-size:14px;color:var(--mist)}
.form .submit{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:20px;margin-top:8px}
.form .submit p{font-size:14px;color:var(--mist);max-width:36em}
.hp{position:absolute;inset-inline-start:-9999px}
.split>.contact-main{grid-column:1 / span 7}
.split>.contact-aside{grid-column:9 / span 4}
.contact-card{background:var(--deep);padding:32px}
.contact-card h2{font-size:clamp(28px,2.6vw,36px);margin-bottom:20px}
.contact-card dl{margin:0}
.contact-card dl>div{padding:14px 0;border-top:1px solid var(--rule)}
.contact-card dt{font-size:14px;color:var(--mist);margin-bottom:4px}
.contact-card dd{margin:0}
.addr{font-style:normal;line-height:1.6}
.contact-card dd a,.site-footer .footer-grid a[href^="tel"],.menu-aside a[href^="tel"]{text-decoration:none;border-bottom:1px solid var(--rule-strong)}
.contact-card dd a:hover{border-color:var(--green)}
.map{margin-top:16px;aspect-ratio:4/3;background:var(--ink);border:1px solid var(--rule)}
.map iframe{display:block;width:100%;height:100%;border:0;filter:grayscale(1) invert(.9) contrast(.85)}
.map-wide{margin-top:0;aspect-ratio:16/10}
.visit-facts{margin:28px 0 28px}
.visit-facts>div{padding:14px 0;border-top:1px solid var(--rule)}
.visit-facts>div:last-child{border-bottom:1px solid var(--rule)}
.visit-facts dt{font-size:14px;color:var(--mist);margin-bottom:4px}
.visit-facts dd{margin:0}
.visit-facts a{text-decoration:none;border-bottom:1px solid var(--rule-strong)}
.visit-facts a:hover{border-color:var(--green)}
.map-ph{margin-top:16px;aspect-ratio:4/3;border:1px dashed var(--rule-strong);display:grid;place-items:center;text-align:center;padding:24px;color:var(--mist);font-size:15px}

/* CTA + footer */
.cta{padding-block:clamp(56px,6vw,88px)}
.cta h2{font-size:clamp(21px,3.2vw,48px);line-height:1.05;max-width:20ch}
.cta .btn{margin-top:32px;min-height:58px;padding:0 30px;font-size:18px}
.site-footer{border-top:1px solid var(--rule);color:var(--mist);font-size:15px}
.footer-grid{display:grid;grid-template-columns:4fr 2fr 3fr 3fr;gap:32px;padding-block:56px}
.site-footer .brand{margin-bottom:18px}
.site-footer h3{font:700 15px/1.3 var(--body);color:var(--frost);margin-bottom:12px}
.site-footer ul{list-style:none}
.site-footer li+li{margin-top:6px}
.site-footer a{text-decoration:none}
.site-footer a:hover{color:var(--frost);text-decoration:underline}
.site-footer .social{display:flex;gap:8px;list-style:none;margin:20px 0 0}
.site-footer .social li+li{margin-top:0}
.social a{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--rule);border-radius:2px;color:var(--mist);transition:border-color .15s,color .15s}
.social a:hover{border-color:var(--green);color:var(--green);text-decoration:none}
.social svg{width:18px;height:18px}
.social .fill{fill:currentColor}
.social .line{fill:none;stroke:currentColor;stroke-width:2}
.footer-base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-block:20px 40px;border-top:1px solid var(--rule);font-size:13px}

/* News */
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;list-style:none}
.news-card a{display:flex;flex-direction:column;height:100%;text-decoration:none;background:var(--deep)}
.news-card .ph{aspect-ratio:16/10;overflow:hidden;background:var(--ink)}
.news-card img{width:100%;height:100%;object-fit:cover;filter:saturate(.8);transition:transform .5s cubic-bezier(.2,.6,.2,1)}
.news-card a:hover img{transform:scale(1.03)}
.news-card .body{display:flex;flex-direction:column;gap:10px;padding:22px 24px 28px;flex:1}
.news-card time{font-size:14px;color:var(--mist)}
.news-card h3{font-size:clamp(22px,1.9vw,28px);line-height:1.08;transition:color .15s}
.news-card a:hover h3{color:var(--green)}
.news-card p{color:var(--mist);font-size:16px}
.news-card.feature{grid-column:1 / -1}
.news-card.feature a{display:grid;grid-template-columns:7fr 5fr}
.news-card.feature .ph{aspect-ratio:auto;min-height:360px}
.news-card.feature .body{justify-content:flex-end;padding:36px}
.news-card.feature h3{font-size:clamp(30px,3vw,44px)}
.news-card .draft-tag{align-self:flex-start;margin-inline-start:0}
.draft-tag{display:inline-block;margin-inline-start:8px;padding:2px 8px;border:1px solid #d9a441;color:#d9a441;font-size:12px;font-weight:700;border-radius:2px;vertical-align:middle}
.article-hero{min-height:min(620px,72svh)}
.article-meta{margin-top:16px;color:var(--mist);font-size:15px}
.article-body{max-width:44em}
.article-body>*+*{margin-top:1.1em}
.article-body h2{font-size:clamp(28px,2.6vw,38px);margin-top:1.6em}
.article-body h3{font-size:clamp(22px,2vw,28px);margin-top:1.4em}
.article-body ul,.article-body ol{padding-inline-start:1.3em}
.article-body li+li{margin-top:.4em}
.article-body a{color:var(--frost);text-decoration-color:var(--green);text-underline-offset:3px}
.article-body strong{font-weight:600}
.article-body figure{margin:2em 0}
.article-body figure img{width:100%;height:auto}
.article-body figcaption{margin-top:10px;font-size:14px;color:var(--mist)}
.slider{margin-block:56px}
.slider+.article-body>h2:first-child{margin-top:0}
.slider-track{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;padding-bottom:4px}
.slider-track::-webkit-scrollbar{display:none}
.slider-track:focus-visible{outline:2px solid var(--green);outline-offset:4px}
.slide{flex:0 0 auto;margin:0;scroll-snap-align:start}
.slide img{display:block;height:clamp(240px,36vw,480px);width:auto;max-width:none;background:var(--deep)}
.slide figcaption{width:0;min-width:100%;margin-top:12px;font-size:14px;color:var(--mist)}
.slider-nav{display:flex;align-items:center;gap:16px;margin-top:24px}
.slider-btn{display:grid;place-items:center;width:46px;height:46px;border:1px solid var(--rule-strong);border-radius:50%;background:transparent;color:var(--frost);cursor:pointer;transition:border-color .15s,color .15s}
.slider-btn:hover:not(:disabled){border-color:var(--green);color:var(--green)}
.slider-btn:disabled{opacity:.35;cursor:default}
.slider-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2}
.slider-count{font-size:14px;color:var(--mist);font-variant-numeric:tabular-nums;min-width:3.5em;text-align:center}
.article-video video{display:block;width:100%;height:auto;background:#000}
.article-body blockquote{margin:2em 0;padding-inline-start:24px;border-inline-start:2px solid var(--green);font:400 clamp(22px,2vw,28px)/1.25 var(--display)}
.article-back{margin-top:3em !important}

/* Certificates */
.btn-small{min-height:42px;padding:0 18px;font-size:15px}
.cert-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;list-style:none}
.cert-card{display:flex;flex-direction:column;background:var(--deep)}
.cert-thumb{display:block;aspect-ratio:1/1.414;overflow:hidden;background:#fff}
.cert-thumb img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .5s cubic-bezier(.2,.6,.2,1)}
.cert-thumb:hover img{transform:scale(1.02)}
.cert-body{display:flex;flex-direction:column;gap:10px;padding:24px 26px 28px;flex:1}
.cert-status{align-self:flex-start;padding:3px 10px;border:1px solid var(--rule-strong);border-radius:2px;font-size:13px;font-weight:700;color:var(--mist)}
.cert-status.is-current{border-color:var(--green);color:var(--green)}
.cert-body h3{font-size:clamp(26px,2.2vw,32px);line-height:1.05}
.cert-title{color:var(--mist)}
.cert-facts{margin:8px 0 0}
.cert-facts>div{padding:10px 0;border-top:1px solid var(--rule)}
.cert-facts dt{font-size:13px;color:var(--mist)}
.cert-facts dd{margin:2px 0 0;font-size:15px}
.cert-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto;padding-top:18px}
.cert-note{margin-top:32px;font-size:15px;color:var(--mist)}

/* 404 */
.notfound{min-height:80svh;display:flex;align-items:center}
.notfound h1{font:400 clamp(40px,6vw,88px)/1 var(--display)}
.notfound p{margin:20px 0 32px;color:var(--mist);max-width:36em}

/* Arabic (RTL) - Noto Kufi Arabic for headings, IBM Plex Sans Arabic for text; brand figures stay in Sofia Sans Condensed */
html[lang="ar"]{
  --display:"Noto Kufi Arabic","Sofia Sans Condensed",Tahoma,sans-serif;
  --body:"IBM Plex Sans Arabic","Sofia Sans",Tahoma,sans-serif;
  --figures:"Sofia Sans Condensed","Noto Kufi Arabic",sans-serif;
}
[lang="ar"] body{font-weight:400;line-height:1.85}
[lang="ar"] *{letter-spacing:0 !important}
[lang="ar"] .pending,[lang="ar"] .quote figcaption{font-style:normal}
/* :where keeps these at element strength, so component sizes (cards, footer, contact box) still win */
:where([lang="ar"]) h1,:where([lang="ar"]) h2,:where([lang="ar"]) h3{font-weight:600;line-height:1.35}
:where([lang="ar"]) h2{font-size:clamp(34px,4.2vw,58px)}
[lang="ar"] .hero h1{font-weight:500;font-size:clamp(28px,4vw,62px);line-height:1.35}
[lang="ar"] .page-hero h1,[lang="ar"] .detail-hero h1{font-weight:500;font-size:clamp(30px,4.2vw,62px);line-height:1.35}
[lang="ar"] .notfound h1{font-weight:500;font-size:clamp(32px,4.6vw,66px);line-height:1.35}
[lang="ar"] .menu-links a{font-weight:400;font-size:clamp(24px,3.2vw,44px);line-height:1.5;padding:8px 0 6px}
[lang="ar"] .project h3,[lang="ar"] .service-cards h3,[lang="ar"] .news-card h3,[lang="ar"] .steps h3,[lang="ar"] .pager .t{line-height:1.4}
[lang="ar"] .project h3{font-size:clamp(20px,1.7vw,25px)}
[lang="ar"] .project-grid.feature:not(.is-filtered) .project:nth-child(1) h3{font-size:clamp(28px,3.4vw,46px)}
[lang="ar"] .service-cards h3{font-size:clamp(23px,2vw,29px)}
[lang="ar"] .service-list h3{font-size:clamp(24px,2.2vw,32px);line-height:1.35}
[lang="ar"] .sector-grid h3{font-size:28px;line-height:1.35}
[lang="ar"] .steps h3{font-size:clamp(19px,1.6vw,23px)}
[lang="ar"] .client-group h2{font-size:clamp(28px,3vw,42px)}
[lang="ar"] .detail-body h2,[lang="ar"] .article-body h2{font-size:clamp(25px,2.3vw,33px);line-height:1.4}
[lang="ar"] .disc-tab{font-size:clamp(18px,1.5vw,21px);line-height:1.5}
[lang="ar"] .disc-panel h3{font-size:clamp(26px,2.4vw,36px);line-height:1.35}
[lang="ar"] .quote blockquote{font-size:clamp(21px,2vw,28px);line-height:1.55}
[lang="ar"] .news-card h3{font-size:clamp(20px,1.6vw,24px)}
[lang="ar"] .news-card.feature h3{font-size:clamp(24px,2.2vw,32px)}
[lang="ar"] .cta h2{font-size:clamp(21px,2.8vw,42px);line-height:1.4}
[lang="ar"] .proof dd,[lang="ar"] .timeline .when{font-family:var(--figures)}
[lang="ar"] .hero-foot p,[lang="ar"] .page-hero .lede{line-height:1.8}
[lang="ar"] .btn{font-weight:600}
/* the logo lockup and Latin-only inputs keep their left-to-right order */
[dir="rtl"] .brand{direction:ltr}
[dir="rtl"] input[dir="ltr"]{text-align:right}
[dir="rtl"] input[dir="ltr"]::placeholder{text-align:right}
/* arrows and chevrons point the reading way */
[dir="rtl"] .slider-btn svg{transform:scaleX(-1)}
[dir="rtl"] .disc-tab .ind{transform:rotate(135deg)}
[dir="rtl"] .field select{background-position:22px 52%,16px 52%}
@media (max-width:1000px){
  [dir="rtl"] .disc-tab .ind{transform:rotate(45deg)}
  [dir="rtl"] .disc-tab[aria-expanded="true"] .ind{transform:rotate(-135deg)}
}

@media (max-width:1000px){
  .split>.side,.split>.main,.split>.contact-main,.split>.contact-aside{grid-column:1 / -1}
  .split>.side{margin-bottom:40px}
  .split>.contact-aside{margin:56px 0 0}
  .side.sticky{position:static}
  .proof dl{grid-template-columns:1fr 1fr}
  .proof dl>div:nth-child(3){border-inline-start:0;padding-inline-start:0}
  .proof dl>div:nth-child(n+3){border-top:1px solid var(--rule)}
  .sector-grid{grid-template-columns:1fr;row-gap:44px}
  .footer-grid{grid-template-columns:1fr 1fr}
  .service-cards{grid-template-columns:1fr 1fr}
  .project{grid-column:span 6}
  .steps,.timeline{grid-template-columns:1fr;border-top:0}
  .steps li{padding-block:24px 20px;padding-inline:32px 0;border-top:0;border-inline-start:2px solid var(--rule-strong)}
  .steps li::after{top:28px;inset-inline-start:-6px}
  .timeline li{padding-block:0 32px;padding-inline:32px 0;border-inline-start:2px solid var(--rule-strong)}
  .timeline li::before{top:4px;inset-inline-start:-7px}
  .logo-wall{grid-template-columns:repeat(3,minmax(0,1fr))}
  .logo-row{--per-row:5}
  .news-grid{grid-template-columns:1fr 1fr}
  .cert-grid{grid-template-columns:1fr 1fr}
  .news-card.feature a{grid-template-columns:1fr}
  .news-card.feature .ph{min-height:0;aspect-ratio:16/10}
  .disciplines{display:block}
  .disc-panel{padding:8px 0 28px}
  .disc-panel h3{display:none}
  .disc-tab .ind{transform:rotate(45deg)}
  .disc-tab[aria-expanded="true"] .ind{transform:rotate(-135deg)}
  .menu-inner nav{grid-column:1 / span 8}
}
@media (max-width:720px){
  body{font-size:16px}
  .header-tools .lang{display:none}
  .menu-inner nav,.menu-aside{grid-column:1 / -1}
  .menu-aside{margin-top:48px}
  .video-toggle{top:88px}
  .hero .container{padding-bottom:32px}
  .hero-foot{margin-top:32px}
  .proof dl>div{padding:28px 16px 26px}
  .service-list a{grid-template-columns:1fr;gap:10px;padding:26px 0}
  .project,.project-grid.feature:not(.is-filtered) .project:nth-child(n){grid-column:1 / -1}
  .project-grid.feature:not(.is-filtered) .project:nth-child(1) a{aspect-ratio:4/3}
  .sector-grid,.service-cards{grid-template-columns:1fr}
  .logo-row{--per-row:3;--gap:24px;row-gap:28px}
  .logo-row img{max-height:40px;max-width:min(120px,100%)}
  .logo-wall{grid-template-columns:repeat(2,minmax(0,1fr))}
  .logo-wall .tile{padding:24px 12px}
  .news-grid{grid-template-columns:1fr}
  .cert-grid{grid-template-columns:1fr}
  .slide img{height:auto;width:82vw}
  .news-card.feature .body{padding:22px 24px 28px}
  .logo-wall .tile{min-height:140px}
  .footer-grid{grid-template-columns:1fr}
  .gallery{grid-template-columns:1fr 1fr}
  .pager{grid-template-columns:1fr}
  .pager .next{text-align:start}
  .form{grid-template-columns:1fr}
  .tick-list.cols{grid-template-columns:1fr}
  .facts>div{grid-template-columns:96px 1fr}
  .filters .select,.filters .select select{width:100%}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .site-menu,.burger span{transition:none}
  .site-menu.is-open .menu-links li{animation:none}
  .project img,.service-cards img{transition:none}
}
