﻿*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --g:#1c7a32;--g2:#0f5420;--g3:#2ea84a;--gl:rgba(28,122,50,.15);
  --dk:#070707;--dk2:#0d0d0d;--dk3:#141414;
  --wh:#fff;--mu:#777;
  --serif:'Playfair Display',Georgia,serif;
  --sans:'Inter',sans-serif;
}
html{scroll-behavior:auto;overflow-x:hidden}
body{background:var(--dk);color:var(--wh);font-family:var(--sans);overflow-x:hidden;cursor:none}
::-webkit-scrollbar{width:2px}
::-webkit-scrollbar-thumb{background:var(--g)}

/* ── CURSOR ── */
#cur{position:fixed;width:8px;height:8px;background:var(--g3);border-radius:50%;pointer-events:none;z-index:9999;transform:translate(-50%,-50%)}
#curR{position:fixed;width:34px;height:34px;border:1px solid rgba(46,168,74,.4);border-radius:50%;pointer-events:none;z-index:9998;transform:translate(-50%,-50%);transition:all .1s}

/* ── LOADER ── */
#ld{position:fixed;inset:0;background:var(--dk);z-index:9000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px}
.ld-mark{font-family:var(--serif);font-size:clamp(48px,8vw,96px);font-weight:900;letter-spacing:-.02em;overflow:hidden;line-height:1}
.ld-mark span{display:inline-block;transform:translateY(110%);animation:su .8s cubic-bezier(.16,1,.3,1) forwards}
.ld-mark span:nth-child(1){animation-delay:.1s}
.ld-mark span:nth-child(2){animation-delay:.22s;color:var(--g3)}
.ld-mark span:nth-child(3){animation-delay:.34s}
.ld-sub{font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:rgba(255,255,255,.3)}
.ld-bar{width:200px;height:1px;background:rgba(255,255,255,.08)}
.ld-prog{height:100%;background:var(--g3);width:0;animation:ldp 2s cubic-bezier(.4,0,.2,1) forwards}
@keyframes su{to{transform:translateY(0)}}
@keyframes ldp{to{width:100%}}
@keyframes fu{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}

/* ── NAV ── */
nav{position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;align-items:center;justify-content:space-between;padding:24px 60px;transition:all .4s}
nav.s{background:rgba(7,7,7,.95);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);padding:16px 60px;border-bottom:1px solid rgba(28,122,50,.15)}
.nbur{display:none;flex-direction:column;justify-content:center;gap:5px;background:none;border:none;cursor:pointer;padding:8px;z-index:1002;flex-shrink:0}
.nbur span{display:block;width:22px;height:2px;background:#fff;transition:transform .3s,opacity .3s;transform-origin:center}
body.mob-open{overflow:hidden}
.nlogo{font-family:var(--serif);font-size:20px;font-weight:900;letter-spacing:.03em;text-decoration:none;color:var(--wh)}
.nlogo span{color:var(--g3)}
.nlogo img{height:36px;width:auto;display:block}
.nlinks{display:flex;gap:36px;list-style:none}
.nlang-mob{display:none}
.nlinks a{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.5);text-decoration:none;transition:color .25s}
.nlinks a:hover{color:var(--wh)}
.nlinks a.nav-active{color:var(--wh);border-bottom:1px solid var(--g3);padding-bottom:2px}

/* ── BREADCRUMB ── */
.breadcrumb{padding:18px 60px;display:flex;align-items:center;gap:10px;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.25);border-bottom:1px solid rgba(255,255,255,.05)}
.breadcrumb a{color:rgba(255,255,255,.35);text-decoration:none;transition:color .25s}
.breadcrumb a:hover{color:var(--g3)}
.breadcrumb-sep{color:rgba(255,255,255,.15)}
@media(max-width:960px){.breadcrumb{padding:14px 22px}}
.ncta{font-size:11px;letter-spacing:.14em;text-transform:uppercase;padding:10px 24px;border:1px solid var(--g3);color:var(--g3);background:transparent;cursor:pointer;transition:all .3s;font-family:var(--sans)}
.ncta:hover{background:var(--g3);color:#fff}

/* ── HERO ── */
#hero{position:relative;height:100vh;min-height:700px;display:flex;align-items:flex-end;overflow:hidden}
.hbg{position:absolute;inset:0;will-change:transform}
.hbg img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.12);transition:transform 9s ease;opacity:.55}
.hbg img.rdy{transform:scale(1)}
.hov{position:absolute;inset:0;background:linear-gradient(160deg,rgba(0,0,0,.6) 0%,rgba(0,0,0,.1) 40%,rgba(0,0,0,.85) 100%)}
.hov2{position:absolute;inset:0;background:linear-gradient(to top,rgba(7,7,7,1) 0%,transparent 55%)}
.hcnt{position:relative;z-index:3;padding:0 60px 80px;width:100%}
.hey{display:flex;align-items:center;gap:14px;margin-bottom:32px;opacity:0;animation:fu .8s .6s forwards}
.hey-line{width:40px;height:1px;background:var(--g3)}
.hey span{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--g3)}
.hh1{font-family:var(--serif);font-size:clamp(58px,8.5vw,118px);font-weight:900;line-height:.93;letter-spacing:-.025em}
.hl{display:block;overflow:hidden}
.hli{display:block;transform:translateY(110%);animation:su .95s cubic-bezier(.16,1,.3,1) forwards}
.hl:nth-child(1) .hli{animation-delay:.25s}
.hl:nth-child(2) .hli{animation-delay:.4s;color:var(--g3)}
.hl:nth-child(3) .hli{animation-delay:.55s}
.hsub{display:flex;justify-content:space-between;align-items:flex-end;margin-top:56px;opacity:0;animation:fu .8s 1s forwards}
.hdesc{font-size:15px;color:rgba(255,255,255,.55);line-height:1.85;max-width:440px;font-weight:300}
.hbtns{display:flex;gap:14px}
.bg{padding:14px 32px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;background:var(--g3);color:#fff;border:none;cursor:pointer;font-weight:500;font-family:var(--sans);transition:background .3s}
.bg:hover{background:var(--g2)}
.bo{padding:14px 32px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;background:transparent;color:#fff;border:1px solid rgba(255,255,255,.3);cursor:pointer;font-family:var(--sans);transition:border-color .3s}
.bo:hover{border-color:rgba(255,255,255,.7)}
.hscroll{position:absolute;bottom:36px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;opacity:0;animation:fu .8s 1.3s forwards}
.hsl{width:1px;height:56px;background:linear-gradient(to bottom,var(--g3),transparent);animation:pulse 2s 1.5s infinite}
.hst{font-size:9px;letter-spacing:.26em;text-transform:uppercase;color:rgba(255,255,255,.3)}
@keyframes pulse{0%,100%{opacity:1;transform:scaleY(1)}50%{opacity:.3;transform:scaleY(.5)}}

/* ── TICKER ── */
.ticker{background:var(--g);padding:14px 0;overflow:hidden;display:flex}
.tt{display:flex;white-space:nowrap;animation:tl 26s linear infinite}
.ti{display:inline-flex;align-items:center;gap:16px;padding:0 32px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:rgba(0,0,0,.75);font-weight:600}
.td{width:3px;height:3px;border-radius:50%;background:rgba(0,0,0,.3)}
@keyframes tl{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ── ABOUT SPLIT ── */
#about{display:grid;grid-template-columns:1fr 1fr;min-height:92vh}
.ab-img{position:relative;overflow:hidden}
.ab-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 7s ease}
.ab-img:hover img{transform:scale(1.04)}
.ab-tag{position:absolute;bottom:32px;left:32px;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--g3);border:1px solid var(--g3);padding:8px 18px}
.ab-cnt{background:var(--dk2);padding:90px 72px;display:flex;flex-direction:column;justify-content:center}
.ey{font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--g3);margin-bottom:18px;display:flex;align-items:center;gap:12px}
.ey::before{content:'';width:28px;height:1px;background:var(--g3)}
.sh2{font-family:var(--serif);font-size:clamp(36px,4vw,58px);font-weight:900;line-height:1.06;margin-bottom:24px}
.sh2 em{color:var(--g3);font-style:italic}
.sbody{font-size:14px;color:rgba(255,255,255,.55);line-height:1.9;font-weight:300;margin-bottom:16px}
.stats{display:flex;gap:44px;margin-top:44px;padding-top:40px;border-top:1px solid rgba(255,255,255,.07)}
.stat .n{font-family:var(--serif);font-size:44px;font-weight:900;color:var(--g3);line-height:1}
.stat .l{font-size:10px;color:var(--mu);letter-spacing:.12em;text-transform:uppercase;margin-top:4px}


/* ── FULLWIDTH PHOTO ── */
.fwp{position:relative;height:80vh;overflow:hidden;display:flex;align-items:center;justify-content:center}
.fwp-bg{position:absolute;inset:0;will-change:transform}
.fwp-bg img{width:100%;height:110%;object-fit:cover;display:block}
.fwp-ov{position:absolute;inset:0;background:rgba(0,0,0,.58)}
.fwp-cnt{position:relative;z-index:2;text-align:center;padding:0 60px;max-width:900px}
.fwp-cnt blockquote{font-family:var(--serif);font-size:clamp(30px,4.5vw,58px);font-weight:900;line-height:1.15;margin-bottom:20px}
.fwp-cnt blockquote em{color:var(--g3);font-style:italic}
.fwp-cnt cite{font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.4)}


/* ── MARQUEE ── */
#mrq{padding:80px 0;overflow:hidden;background:var(--dk3);border-top:1px solid rgba(255,255,255,.05);border-bottom:1px solid rgba(255,255,255,.05)}
.mr{display:flex;white-space:nowrap}
.mr:first-child{animation:ml 24s linear infinite;margin-bottom:18px}
.mr:last-child{animation:mr2 20s linear infinite}
.mi{display:inline-flex;align-items:center;gap:16px;padding:0 26px;font-size:clamp(20px,2.6vw,32px);font-family:var(--serif);font-weight:900;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.1)}
.mi.f{color:var(--wh);-webkit-text-stroke:0}
.md{width:7px;height:7px;border-radius:50%;background:var(--g3);flex-shrink:0}
@keyframes ml{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes mr2{from{transform:translateX(-50%)}to{transform:translateX(0)}}

/* ── SERVICES CARDS ── */
#svc{padding:130px 60px;background:var(--dk)}
.svhdr{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:80px}
.sgrid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:3px}
.sc{position:relative;overflow:hidden;background:var(--dk3);cursor:pointer}
.sc img{width:100%;height:520px;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.16,1,.3,1)}
.sc:hover img{transform:scale(1.07)}
.scov{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.95) 0%,transparent 55%);transition:background .4s}
.sc:hover .scov{background:linear-gradient(to top,rgba(0,0,0,.97) 0%,rgba(28,122,50,.08) 100%)}
.scb{position:absolute;bottom:0;left:0;right:0;padding:30px}
.scn{font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--g3);margin-bottom:8px}
.sct{font-family:var(--serif);font-size:24px;font-weight:900;line-height:1.15;margin-bottom:10px}
.scd{font-size:12px;color:rgba(255,255,255,.5);line-height:1.75;max-height:0;overflow:hidden;transition:max-height .5s}
.sc:hover .scd{max-height:120px}
.sca{display:inline-flex;align-items:center;gap:6px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--g3);margin-top:14px;opacity:0;transform:translateY(6px);transition:all .35s .05s}
.sc:hover .sca{opacity:1;transform:none}

/* ── PROCESS ── */
#proc{padding:110px 60px;background:var(--dk2)}
.pgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:68px;border:1px solid rgba(255,255,255,.05)}
.pstep{padding:50px 38px;border-right:1px solid rgba(255,255,255,.05);transition:background .3s}
.pstep:last-child{border-right:none}
.pstep:hover{background:rgba(28,122,50,.05)}
.psn{font-family:var(--serif);font-size:72px;font-weight:900;color:rgba(28,122,50,.14);line-height:1;margin-bottom:22px}
.pst{font-size:14px;font-weight:500;margin-bottom:12px;letter-spacing:.02em}
.psb{font-size:13px;color:rgba(255,255,255,.45);line-height:1.75}

/* ── SECTORS ── */
#sec{padding:110px 60px;background:var(--dk)}
.seclist{margin-top:64px}
.secitem{display:grid;grid-template-columns:72px 1fr 200px 72px;align-items:center;gap:32px;padding:26px 0;border-top:1px solid rgba(255,255,255,.06);cursor:pointer;transition:padding-left .3s}
.secitem:last-child{border-bottom:1px solid rgba(255,255,255,.06)}
.secitem:hover{padding-left:18px}
.secn{font-size:10px;color:var(--g3);letter-spacing:.16em}
.secname{font-family:var(--serif);font-size:clamp(22px,3vw,40px);font-weight:900;transition:color .3s}
.secitem:hover .secname{color:var(--g3)}
.sectag{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--mu)}
.secarr{font-size:20px;color:var(--mu);transition:all .3s;text-align:right}
.secitem:hover .secarr{color:var(--g3);transform:translateX(8px)}

/* ── CONTACT ── */
#ct{display:grid;grid-template-columns:45fr 55fr;min-height:85vh;background:#080c08}
.ct-l{position:relative;overflow:hidden}
.ct-l-bg{position:absolute;inset:0;background:url('images/construction-engineers.jpg') center/cover no-repeat;filter:brightness(.18) saturate(.4)}
.ct-l-inner{position:relative;z-index:1;padding:110px 60px 80px;display:flex;flex-direction:column;justify-content:center;min-height:85vh}
.ct-l-inner .ey{margin-bottom:18px}
.ct-h2{font-family:var(--serif);font-size:clamp(32px,4vw,52px);font-weight:900;line-height:1.1;color:#fff;margin:0 0 20px}
.ct-h2-gr{color:var(--g3)}
.ct-desc{font-size:13px;color:rgba(255,255,255,.45);line-height:1.85;font-weight:300;max-width:380px;margin-bottom:32px}
.ct-div{width:36px;height:2px;background:var(--g3);margin-bottom:34px}
.ct-list{display:flex;flex-direction:column;gap:22px}
.ct-li{display:flex;align-items:flex-start;gap:16px}
.ct-li-ico{width:38px;height:38px;border:1px solid rgba(46,168,74,.3);border-radius:4px;display:flex;align-items:center;justify-content:center;color:var(--g3);flex-shrink:0}
.ct-li-lbl{font-size:8.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--g3);margin-bottom:4px}
.ct-li-val{font-size:13px;color:rgba(255,255,255,.75);line-height:1.5;text-decoration:none;display:block}
a.ct-li-val:hover{color:#fff}
.ct-r{background:#0c0f0c;display:flex;flex-direction:column;padding:70px 50px 0;border-left:1px solid rgba(46,168,74,.08)}
.ct-r-h{font-family:var(--serif);font-size:clamp(22px,2.5vw,30px);font-weight:700;color:#fff;margin:0 0 26px;font-style:italic}
.ct-r-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px}
.ct-rc{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.07);border-radius:8px;padding:22px 20px;transition:border-color .3s,background .3s}
.ct-rc:hover{border-color:rgba(46,168,74,.3);background:rgba(46,168,74,.04)}
.ct-rc-ico{color:var(--g3);margin-bottom:14px}
.ct-rc-lbl{font-size:8.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--g3);margin-bottom:8px}
.ct-rc-val{font-size:12.5px;color:rgba(255,255,255,.7);line-height:1.65;text-decoration:none;display:block;font-weight:300}
.ct-rc-link:hover{color:#fff}
.ct-map-wrap{flex:1;min-height:180px;overflow:hidden;border-top:1px solid rgba(46,168,74,.08)}
.ct-wmap{display:block;width:100%;height:100%;min-height:180px}
/* features bar */
.ct-feats{display:flex;align-items:stretch;background:#070a07;border-top:1px solid rgba(46,168,74,.12);padding:0 60px}
.ct-feat{display:flex;align-items:center;gap:18px;padding:34px 0;flex:1}
.ct-feat-ico{width:46px;height:46px;border:1px solid rgba(46,168,74,.28);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--g3);flex-shrink:0}
.ct-feat-n{font-size:14px;font-weight:600;color:#fff;margin-bottom:5px}
.ct-feat-d{font-size:11.5px;color:rgba(255,255,255,.3);line-height:1.55;max-width:180px}
.ct-feat-sep{width:1px;height:52px;background:rgba(255,255,255,.07);flex-shrink:0;margin:0 28px}

/* legacy index.html contact */
.ctlbl{font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.35);margin-bottom:6px}
.ctval{font-size:13px;font-weight:500;color:#fff;line-height:1.5}
.cth2{font-family:var(--serif);font-size:clamp(36px,4vw,60px);font-weight:900;color:#fff;line-height:1.05;margin-bottom:20px}
.ctp{font-size:14px;color:rgba(255,255,255,.68);line-height:1.85;margin-bottom:44px;font-weight:300}
.ctl{background:var(--g);padding:90px 72px;display:flex;flex-direction:column;justify-content:center}
.ctl .ey{color:rgba(255,255,255,.55)}
.ctl .ey::before{background:rgba(255,255,255,.4)}
.ctinfo{display:flex;flex-direction:column;gap:20px;margin-bottom:48px}
.ctrow{display:flex;align-items:flex-start;gap:16px}
.ctico{width:40px;height:40px;border:1px solid rgba(255,255,255,.3);display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0;color:#fff}
.bdark{display:inline-block;padding:15px 34px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;background:#fff;color:var(--g2);border:none;cursor:pointer;font-family:var(--sans);font-weight:600;transition:all .3s}
.bdark:hover{background:rgba(255,255,255,.88)}

/* ── FOOTER ── */
footer{background:var(--dk);border-top:1px solid rgba(255,255,255,.06);padding:44px 60px;display:flex;justify-content:space-between;align-items:center}
.flogo{font-family:var(--serif);font-size:20px;font-weight:900}
.flogo span{color:var(--g3)}
.flinks{display:flex;gap:26px}
.flinks a{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.3);text-decoration:none;transition:color .3s}
.flinks a:hover{color:var(--g3)}
.fcopy{font-size:10px;color:rgba(255,255,255,.2)}

/* ── REVEAL ── */
.rv{opacity:0;transform:translateY(40px);transition:opacity .9s ease,transform .9s ease}
.rv.on{opacity:1;transform:none}
.rl{opacity:0;transform:translateX(-48px);transition:opacity .9s ease,transform .9s ease}
.rl.on{opacity:1;transform:none}
.rr{opacity:0;transform:translateX(48px);transition:opacity .9s ease,transform .9s ease}
.rr.on{opacity:1;transform:none}

/* ── RESPONSIVE ── */
@media(max-width:960px){
  /* CURSOR — hide on touch */
  #cur,#curR{display:none}
  body{cursor:auto}

  /* NAV — burger menu */
  nav{padding:14px 20px}
  nav.s{padding:12px 20px}
  .nbur{display:flex}
  .ncta{display:none}
  .lang-sw{display:none}
  .nlinks{display:flex !important;position:fixed;inset:0;background:rgba(5,8,5,.97);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:1001;flex-direction:column;align-items:center;justify-content:center;gap:0;opacity:0;pointer-events:none;transform:translateY(-10px);transition:opacity .35s,transform .35s;list-style:none;padding:0;margin:0}
  nav.mopen .nlinks{opacity:1;pointer-events:auto;transform:translateY(0)}
  nav.mopen .nbur span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
  nav.mopen .nbur span:nth-child(2){opacity:0}
  nav.mopen .nbur span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}
  .nlinks li{width:100%;border-bottom:1px solid rgba(255,255,255,.06)}
  .nlinks a{font-size:13px !important;letter-spacing:.22em;padding:20px 0;display:block;text-align:center;color:rgba(255,255,255,.5) !important;border-bottom:none !important}
  .nlinks a:hover,.nlinks a.nav-active{color:#fff !important}
  /* Lang switcher inside mobile menu */
  .nlang-mob{display:flex !important;justify-content:center;align-items:center;gap:12px;padding:24px 0;border-bottom:none !important}
  .nlang-mob .lang-btn{font-size:12px;letter-spacing:.2em;color:rgba(255,255,255,.4);padding:8px 14px}
  .nlang-mob .lang-btn.active{color:var(--g3)}
  .nlang-mob .lang-sep{color:rgba(255,255,255,.2)}

  /* HERO */
  .hcnt{padding:0 22px 70px}
  .hscroll{display:none}
  .hsub{flex-direction:column;align-items:flex-start;gap:20px}
  .hbtns{flex-wrap:wrap;gap:10px}
  .hdesc{font-size:13px;max-width:100%}

  /* TICKER */
  .ti{padding:0 18px;font-size:10px}

  /* ABOUT */
  #about{grid-template-columns:1fr;min-height:auto}
  .ab-img{height:55vw}
  .ab-cnt{padding:52px 24px}
  .stats{gap:20px;flex-wrap:wrap;margin-top:32px;padding-top:28px}

  /* FULLWIDTH PHOTO */
  .fwp{height:60vh}
  .fwp-cnt{padding:0 24px}

/* MARQUEE */
  #mrq{padding:48px 0}

  /* SERVICES */
  #svc{padding:72px 22px}
  .svhdr{flex-direction:column;gap:14px}
  .sgrid{grid-template-columns:1fr}
  .sc img{height:260px}
  .sc .scd{max-height:80px}
  .sc .sca{opacity:1;transform:none}

  /* PROCESS */
  #proc{padding:64px 22px}
  .pgrid{grid-template-columns:1fr 1fr}
  .pstep{padding:32px 20px}
  .pstep:nth-child(2n){border-right:none}
  .psn{font-size:54px}

  /* SECTORS */
  #sec{padding:64px 22px}
  .secitem{grid-template-columns:40px 1fr 40px;gap:12px;padding:20px 0}
  .sectag{display:none}
  .secname{font-size:clamp(18px,4.5vw,28px)}

  /* SERVICE DETAIL PAGES */
  .svc-ph{height:52vh;min-height:300px}
  .svc-ph-cnt{padding:0 22px 40px}
  .svc-pg{padding:56px 22px}
  .svc-pg-grid{grid-template-columns:1fr}
  .svc-pg-side{position:static;flex-direction:row;flex-wrap:wrap;gap:3px}
  .svc-fact{flex:1;min-width:100px;padding:20px 18px}
  .svc-lead{font-size:15px;margin-bottom:36px}

  /* CONTACT */
  #ct{grid-template-columns:1fr;height:auto}
  .ct-l-inner{min-height:auto;padding:80px 24px 52px}
  .ct-r{padding:44px 24px 0;border-left:none;border-top:1px solid rgba(46,168,74,.08)}
  .ct-r-grid{grid-template-columns:1fr 1fr}
  .ct-feats{flex-direction:column;padding:0 24px}
  .ct-feat-sep{width:100%;height:1px;margin:0}
  .ct-feat{padding:24px 0}

  /* FOOTER */
  footer{flex-direction:column;gap:14px;text-align:center;padding:28px 22px}
  .flinks{flex-wrap:wrap;justify-content:center;gap:16px}
}

@media(max-width:520px){
  /* HERO */
  .hh1{font-size:clamp(42px,11vw,62px)}
  .hsub{gap:14px}
  .bg,.bo{padding:13px 22px;font-size:10px}

  /* ABOUT */
  .stats{gap:16px}
  .stat .n{font-size:36px}

  /* PROCESS */
  .pgrid{grid-template-columns:1fr}
  .pstep{border-right:none;border-bottom:1px solid rgba(255,255,255,.05)}
  .pstep:last-child{border-bottom:none}

  /* SECTORS */
  .secitem{grid-template-columns:32px 1fr 32px;gap:8px}

  /* CONTACT */
  .ct-r-grid{grid-template-columns:1fr}
  .ct-h2{font-size:30px}
  .ct-r-h{font-size:20px}
  .ct-feats{padding:0 16px}

  /* SERVICE DETAIL */
  .svc-ph{height:44vh;min-height:260px}
  .svc-fact-n{font-size:32px}
}

/* ── SERVICE DETAIL PAGES ── */
.svc-ph{position:relative;height:72vh;min-height:480px;display:flex;align-items:flex-end;overflow:hidden}
.svc-ph-bg{position:absolute;inset:0}
.svc-ph-bg img{width:100%;height:115%;object-fit:cover;display:block}
.svc-ph-ov{position:absolute;inset:0;background:linear-gradient(160deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,.1) 40%,rgba(0,0,0,.9) 100%)}
.svc-ph-cnt{position:relative;z-index:2;padding:0 60px 64px}
.svc-ph-h{font-family:var(--serif);font-size:clamp(44px,6vw,84px);font-weight:900;line-height:1;margin-top:16px}

.svc-pg{padding:100px 60px;background:var(--dk2)}
.svc-pg-grid{display:grid;grid-template-columns:1fr 320px;gap:80px;align-items:start}
.svc-lead{font-size:17px;color:rgba(255,255,255,.7);line-height:1.85;font-weight:300;margin-bottom:52px;border-left:2px solid var(--g3);padding-left:24px}
.svc-sh{font-family:var(--serif);font-size:22px;font-weight:700;margin-bottom:20px;margin-top:44px;color:var(--wh)}
.svc-sh:first-of-type{margin-top:0}
.svc-body{font-size:14px;color:rgba(255,255,255,.5);line-height:1.9;margin-bottom:0;margin-top:20px}
.svc-ul{list-style:none;display:flex;flex-direction:column;gap:12px}
.svc-ul li{font-size:14px;color:rgba(255,255,255,.55);line-height:1.7;display:flex;align-items:flex-start;gap:14px}
.svc-ul li::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--g3);flex-shrink:0;margin-top:8px}

.svc-pg-side{position:-webkit-sticky;position:sticky;top:100px;display:flex;flex-direction:column;gap:1px}
.svc-fact{background:var(--dk3);padding:28px 32px}
.svc-fact-n{font-family:var(--serif);font-size:42px;font-weight:900;color:var(--g3);line-height:1}
.svc-fact-l{font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--mu);margin-top:4px}
.svc-cta-btn{display:block;text-align:center;margin-top:24px;text-decoration:none}

/* make .sc cards fully clickable */
.sc{cursor:pointer}
.sc > a.sc-link{position:absolute;inset:0;z-index:5}

@media(max-width:960px){
  .svc-ph-cnt{padding:0 22px 44px}
  .svc-pg{padding:60px 22px}
  .svc-pg-grid{grid-template-columns:1fr}
  .svc-pg-side{position:static;flex-direction:row;flex-wrap:wrap;gap:3px}
  .svc-fact{flex:1;min-width:120px}
}

/* ── LANG SWITCHER ── */
.lang-sw{display:flex;align-items:center;gap:6px;margin-right:16px}
.lang-sep{color:rgba(255,255,255,.15);font-size:11px}
.lang-btn{background:transparent;border:none;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.3);cursor:pointer;font-family:var(--sans);padding:4px 2px;transition:color .25s}
.lang-btn:hover{color:var(--wh)}
.lang-btn.active{color:var(--g3);border-bottom:1px solid var(--g3)}

/* ── SAFARI / IOS COMPAT ── */
/* Dynamic viewport height: shrinks with URL bar on iOS Safari 15.4+ */
@supports (height:100dvh){
  #hero{height:100dvh}
}