:root{
  --bg:#20262c;--side:#475c70;--surface:#272d34;--btn:#373c42;--line:#343a3f;
  --head:#eeeeee;--text:#a6a7a8;--white:#fff;--accent:#007ced;
  --font:"Poppins",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --side-w:70px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:15px/1.8 var(--font);padding-left:var(--side-w)}
img{max-width:100%;height:auto;display:block}
a{color:#0099cc;text-underline-offset:3px}
a:hover{color:var(--accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
h1,h2,h3{color:var(--head);font-weight:600;line-height:1.2;margin:0;text-wrap:balance}
p{margin:0 0 1em;text-wrap:pretty}
.wrap{max-width:1180px;margin:0 auto;padding:0 50px}
.skip{position:absolute;left:-9999px;top:0;background:var(--accent);color:#fff;padding:10px 16px;z-index:100}
.skip:focus{left:12px;top:12px}

/* Sidebar header */
.site-header{position:fixed;left:0;top:0;bottom:0;width:var(--side-w);background:var(--side);z-index:30;display:flex;flex-direction:column;align-items:center;padding-top:16px}
.brand{display:flex;flex-direction:column;align-items:center;gap:12px;text-decoration:none;color:var(--white)}
.brand:hover{color:var(--white)}
.brand-avatar{width:50px;height:50px;object-fit:cover}
.brand-mark{font-size:24px;font-weight:600;line-height:1;letter-spacing:.01em}
.nav-toggle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:48px;height:48px;display:grid;place-items:center;background:none;border:0;color:var(--white);cursor:pointer;padding:0}
.nav-toggle-bars,.nav-toggle-bars::before,.nav-toggle-bars::after{display:block;height:2px;background:currentColor;border-radius:1px;transition:transform .2s,opacity .2s}
.nav-toggle-bars{position:relative;width:26px}
.nav-toggle-bars::before,.nav-toggle-bars::after{content:"";position:absolute;left:0}
.nav-toggle-bars::before{top:-9px;width:34px;left:-4px}
.nav-toggle-bars::after{top:9px;width:34px;left:-4px}
.nav-toggle[aria-expanded="true"] .nav-toggle-bars{background:transparent}
.nav-toggle[aria-expanded="true"] .nav-toggle-bars::before{transform:translateY(9px) rotate(45deg);width:30px;left:-2px}
.nav-toggle[aria-expanded="true"] .nav-toggle-bars::after{transform:translateY(-9px) rotate(-45deg);width:30px;left:-2px}

/* Slide-out panel */
.site-nav{position:fixed;top:0;bottom:0;left:var(--side-w);width:320px;max-width:calc(100vw - var(--side-w));background:var(--bg);text-align:center;border-left:1px solid rgba(255,255,255,.08);padding:48px 36px;overflow-y:auto;z-index:29;transform:translateX(-110%);visibility:hidden;transition:transform .25s ease,visibility 0s linear .25s}
.site-nav.is-open{transform:none;visibility:visible;transition:transform .25s ease}
.nav-photo{width:120px;height:120px;object-fit:cover;object-position:50% 15%;border-radius:50%;border:3px solid var(--side);margin:0 auto 20px}
.nav-mark{font-size:30px;font-weight:600;color:var(--white);line-height:1;margin:0 0 18px}
.nav-name{font-size:20px;font-weight:600;color:var(--white);margin:0 0 4px}
.nav-sub{font-size:13px;color:var(--text);margin:0 0 32px}
.nav-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);text-align:left}
.nav-list a{display:block;padding:14px 4px;color:var(--head);text-decoration:none;font-size:15px;border-bottom:1px solid var(--line);transition:color .15s,padding .15s}
.nav-list a:hover{color:var(--accent);padding-left:10px}
.nav-list a[aria-current="page"]{color:var(--accent);font-weight:500}
.nav-social{list-style:none;display:flex;justify-content:center;gap:10px;margin:28px 0 0;padding:0}
.nav-social a{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--btn);color:var(--head);transition:background .15s}
.nav-social a:hover{background:var(--accent);color:#fff}
.nav-scrim{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:28;opacity:0;visibility:hidden;transition:opacity .25s,visibility 0s linear .25s}
.nav-scrim.is-open{opacity:1;visibility:visible;transition:opacity .25s}

@media (max-width:860px){
  body{padding-left:0;padding-top:64px}
  .site-header{right:0;bottom:auto;width:auto;height:64px;flex-direction:row;padding:0 12px 0 16px;justify-content:space-between}
  .brand{flex-direction:row;gap:14px}
  .brand-avatar{width:40px;height:40px}
  .brand-mark{font-size:22px}
  .nav-toggle{position:static;transform:none}
  .site-nav{left:0;top:64px;width:100%;max-width:none;padding:32px 24px;border-left:0;transform:translateY(-8px);opacity:0}
  .site-nav.is-open{transform:none;opacity:1}
  .wrap{padding:0 24px}
}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 28px;background:var(--btn);color:#f5f5f5;border:0;text-decoration:none;font:500 14px/1 var(--font);cursor:pointer;box-shadow:0 10px 10px -8px rgba(0,0,0,.45);transition:background .15s}
.btn:hover{background:var(--accent);color:#fff}
.btn[disabled]{opacity:.6;cursor:default}

/* Section titles (original: short blue bar over a grey rule) */
.title{display:inline-block;font-size:22px;padding-bottom:6px;margin-bottom:34px;background:linear-gradient(var(--accent),var(--accent)) left bottom/25px 2px no-repeat,linear-gradient(var(--line),var(--line)) left bottom/100% 2px no-repeat}

/* Home hero */
.hero{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);min-height:min(100svh,900px);overflow:hidden}
.hero-photo{position:relative;margin:0;min-height:560px;background:#2b3138}
.hero-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 16%;animation:hero-in 1.2s cubic-bezier(.2,.7,.2,1) both}
.hero-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(32,38,44,0) 58%,rgba(32,38,44,.65) 86%,#20262c 100%);pointer-events:none}
.hero-text{position:relative;display:flex;flex-direction:column;justify-content:center;padding:80px clamp(24px,5vw,96px) 80px clamp(28px,3.4vw,56px)}
.hero-text>*{animation:rise .8s cubic-bezier(.2,.7,.2,1) both}
.hero-text>*:nth-child(2){animation-delay:.08s}.hero-text>*:nth-child(3){animation-delay:.16s}.hero-text>*:nth-child(4){animation-delay:.24s}.hero-text>*:nth-child(5){animation-delay:.32s}
.hero h1{font-size:clamp(40px,4.8vw,72px);line-height:1.05;letter-spacing:-.015em;margin:0}
.hero-rule{width:56px;height:3px;background:var(--accent);margin:28px 0 30px}
.hero-lead{font-size:12px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--head);margin:0 0 14px}
.company-list{list-style:none;margin:0 0 44px;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:36px;max-width:620px;border-top:1px solid var(--line)}
.company-list li{position:relative;padding:11px 0 11px 18px;border-bottom:1px solid var(--line);font-size:14px;line-height:1.5;transition:color .2s}
.company-list li::before{content:"";position:absolute;left:0;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:var(--accent)}
.company-list li:hover{color:var(--head)}
.btn-arrow{gap:12px;align-self:flex-start}
.btn-arrow svg{transition:transform .2s}
.btn-arrow:hover svg{transform:translateX(4px)}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes hero-in{from{opacity:0;transform:scale(1.04)}to{opacity:1;transform:none}}
@media (max-width:1100px){.company-list{grid-template-columns:minmax(0,1fr)}}
@media (max-width:860px){
  .hero{grid-template-columns:minmax(0,1fr);min-height:0}
  .hero-photo{min-height:0;height:min(78svh,620px)}
  .hero-photo::after{background:linear-gradient(180deg,rgba(32,38,44,0) 50%,rgba(32,38,44,.7) 82%,#20262c 100%)}
  .hero-text{margin-top:-96px;padding:0 24px 56px}
  .company-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:520px){.company-list{grid-template-columns:minmax(0,1fr)}}

/* About */
.about{padding:120px 0 128px;border-top:1px solid var(--line);background:linear-gradient(180deg,#232a31,#20262c 40%)}
.about-grid{display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr);gap:72px;align-items:start}
.about-side{position:sticky;top:40px}
.about-body{max-width:760px}
.about-body p{font-size:16px;line-height:1.9;margin:0 0 1.15em}
.about-body .lead{font-size:clamp(19px,1.9vw,25px);line-height:1.55;color:var(--head);margin-bottom:1.3em}
.about-body strong{color:var(--head);font-weight:600}
@media (max-width:860px){.about{padding:72px 0 88px}.about-grid{grid-template-columns:minmax(0,1fr);gap:8px}.about-side{position:static}}
@media (prefers-reduced-motion:reduce){.hero-text>*,.hero-photo img{animation:none}}

/* Inner pages */
.page-head{padding:80px 0 44px}
.page-head h1,.page-head .page-heading{font-size:clamp(30px,3.6vw,48px);font-weight:600;color:var(--head);line-height:1.2;margin:0 0 16px;text-wrap:balance}
.page-head .page-sub{font-size:14px;line-height:1.8;max-width:92ch;margin:0}
.page{padding:0 0 96px}
.geo{margin:0 0 80px;position:relative;background:#1b2026;border:1px solid var(--line)}
.geo svg{width:100%;height:auto;display:block}
.geo-land path{fill:#2a3139;stroke:#1b2026;stroke-width:.8}
.geo-hl path{fill:#475c70;stroke:#1b2026;stroke-width:.8;transition:fill .2s}
.geo-hl path:hover{fill:#5d7891}
.arc{fill:none;stroke:#007ced;stroke-width:1.8;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;opacity:.85;animation:geo-draw 1.4s cubic-bezier(.3,.6,.3,1) forwards}
.arc-flow{fill:none;stroke:#cfe6ff;stroke-width:1.8;stroke-linecap:round;stroke-dasharray:.6 7;opacity:0;animation:geo-flow 2.6s linear infinite,geo-fade .6s ease forwards}
.pin .dot{fill:#007ced;stroke:#eeeeee;stroke-width:2}
.pin .pulse{fill:#007ced;transform-box:fill-box;transform-origin:center;animation:geo-pulse 2.4s ease-out infinite}
.geo-pins .pin:nth-child(2) .pulse{animation-delay:.6s}
.geo-pins .pin:nth-child(3) .pulse{animation-delay:1.2s}
.geo-pins .pin:nth-child(4) .pulse{animation-delay:1.8s}
.geo-labels text{fill:#eeeeee;font:600 15px var(--font);letter-spacing:.14em}
.geo-legend{display:none;flex-wrap:wrap;gap:8px 20px;padding:14px 16px;border-top:1px solid var(--line);font-size:12px;font-weight:500;letter-spacing:.12em;color:var(--head)}
.geo-legend span{display:flex;align-items:center;gap:8px}
.geo-legend span::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent)}
@keyframes geo-draw{to{stroke-dashoffset:0}}
@keyframes geo-flow{to{stroke-dashoffset:-7.6}}
@keyframes geo-fade{to{opacity:.9}}
@keyframes geo-pulse{0%{transform:scale(1);opacity:.55}100%{transform:scale(4.2);opacity:0}}
@media (max-width:640px){.geo-labels{display:none}.geo-legend{display:flex}.geo{margin-bottom:56px}}
@media (prefers-reduced-motion:reduce){.arc{animation:none;stroke-dashoffset:0}.arc-flow,.pin .pulse{animation:none;display:none}}
.section-h1{font-size:clamp(24px,2.6vw,32px);margin-bottom:10px}
.timeline{list-style:none;margin:8px 0 0;padding:0;border-left:2px solid var(--line)}
.tl-item{position:relative;display:grid;grid-template-columns:200px minmax(0,1fr);gap:28px;padding:0 0 40px 34px}
.tl-item:last-child{padding-bottom:4px}
.tl-item::before{content:"";position:absolute;left:-8px;top:5px;width:10px;height:10px;border-radius:50%;background:var(--bg);border:2px solid var(--accent)}
.company-loc{justify-self:start;align-self:start;margin:0;padding:3px 12px;background:var(--btn);color:var(--head);font-size:12px;line-height:1.6;letter-spacing:.02em}
.company-loc:empty{visibility:hidden}
.tl-item>div{grid-column:2}
.tl-item h3{font-size:17px;margin:0 0 8px}
.tl-item p{font-size:14px;line-height:1.8;margin:0}
@media (max-width:700px){.tl-item{grid-template-columns:minmax(0,1fr);gap:10px;padding-left:24px}.tl-item>div{grid-column:auto}.company-loc:empty{display:none}}


.presence-countries{font-size:13px;font-weight:500;letter-spacing:.2em;color:var(--head);margin:-40px 0 64px;text-align:center}
.dash-list{list-style:none;margin:0;padding:0;font-size:14px;line-height:1.75}
.dash-list li{position:relative;padding-left:16px;margin-bottom:4px}
.dash-list li::before{content:"";position:absolute;left:0;top:.85em;width:7px;height:1px;background:var(--text)}
.projects{display:grid;gap:56px;margin-top:96px}
.project{margin:0}
.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.project-grid a{display:block;aspect-ratio:4/3;overflow:hidden;background:#2b3138}
.project-grid.one{grid-template-columns:minmax(0,1fr)}
.project-grid.one a{aspect-ratio:auto}
.project-grid img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.7,.2,1),opacity .2s}
.project-grid a:hover img{transform:scale(1.03)}
.project figcaption{margin-top:16px;font-size:13px;font-weight:500;letter-spacing:.14em;color:var(--head)}
@media (max-width:560px){.project-grid{grid-template-columns:minmax(0,1fr)}}

/* Missing-image fallback */
.photo.is-missing{display:grid;place-items:center;border:1px dashed var(--side)}
.photo.is-missing img{display:none}
.photo.is-missing::after{content:attr(data-missing);padding:24px;text-align:center;font-size:13px}

/* Contact */
.map-embed{position:relative;aspect-ratio:16/10;background:#2b3138;margin-bottom:32px;overflow:hidden}
.map-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(1) invert(.9) contrast(.9)}
.map-load{position:absolute;inset:0;width:100%;background:none;border:0;color:var(--head);font:500 14px var(--font);cursor:pointer}
.map-load:hover{color:var(--accent)}
.info-block{display:grid;grid-template-columns:44px minmax(0,1fr);gap:16px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line)}
.info-block svg{width:44px;height:44px;padding:12px;border-radius:50%;background:var(--btn);color:var(--accent)}
.info-block h4{margin:0;font-size:16px;font-weight:500;line-height:1.6;color:var(--head)}
.info-block a{color:var(--head);text-decoration:none}
.info-block a:hover{color:var(--accent)}
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:64px;align-items:start}
@media (max-width:960px){.contact-grid{grid-template-columns:minmax(0,1fr);gap:40px}}
.details{margin:0;display:grid;gap:18px}
.details dt{font-size:12px;font-weight:500;letter-spacing:.12em;text-transform:uppercase}
.details dd{margin:2px 0 0;font-size:16px;color:var(--head)}
.pending{border:1px dashed var(--side);padding:16px 18px;font-size:14px;margin:0}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:20px}
.field label{font-size:13px;font-weight:500;color:var(--head)}
.field input,.field textarea{width:100%;padding:12px 14px;background:transparent;border:2px solid var(--btn);border-radius:0;color:var(--head);font:15px/1.5 var(--font);transition:border-color .15s}
.field textarea{min-height:170px;resize:vertical}
.field input:focus,.field textarea:focus{outline:0;border-color:var(--accent)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-note{font-size:13px;margin:0 0 20px}
.form-status{margin-top:16px;font-size:14px;min-height:1.5em}
.form-status.is-error{color:#ff8a8a}
.form-status.is-ok{color:#7fd69a}
