
:root{
  --blue:#274B68;
  --gray:#6C8593;
  --bg:#0E1114;
  --bg2:#151A1F;
  --panel:#111820;
  --text:#F4F4F4;
  --muted:#AAB6BC;
  --line:rgba(255,255,255,.12);
  --shadow:0 30px 90px rgba(0,0,0,.35);
  --radius:24px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Manrope",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:var(--bg);
  color:var(--text);
  overflow-x:hidden;
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 10% 10%, rgba(39,75,104,.35), transparent 30%),
    radial-gradient(circle at 90% 20%, rgba(108,133,147,.22), transparent 30%),
    linear-gradient(180deg, rgba(255,255,255,.02), transparent);
  z-index:-2;
}
a{color:inherit}
img{max-width:100%;display:block}
.container{width:min(1180px,92vw);margin:0 auto}
.section{padding:110px 0;position:relative}
.eyebrow{
  margin:0 0 14px;
  color:#DCE8EE;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-size:.78rem;
  font-weight:800;
}
h1,h2,h3,p{margin-top:0}
h1{
  font-size:clamp(3.2rem,8vw,7.6rem);
  line-height:.88;
  max-width:900px;
  letter-spacing:-.07em;
  margin-bottom:28px;
}
h2{
  font-size:clamp(2rem,4vw,4.5rem);
  line-height:1;
  letter-spacing:-.055em;
  margin-bottom:24px;
}
p{color:var(--muted);line-height:1.75}
.btn{
  border:0;
  border-radius:999px;
  padding:14px 22px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  font-weight:800;
  cursor:pointer;
  transition:.25s ease;
}
.btn-primary{
  color:white;
  background:linear-gradient(135deg,var(--blue),#386985);
  box-shadow:0 18px 45px rgba(39,75,104,.35);
}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 24px 60px rgba(39,75,104,.48)}
.btn-secondary{
  color:white;
  background:rgba(255,255,255,.08);
  border:1px solid var(--line);
}
.btn-secondary:hover{background:rgba(255,255,255,.14)}

.site-header{
  position:fixed;
  inset:0 0 auto;
  z-index:50;
  transition:.25s ease;
}
.site-header.scrolled{
  background:rgba(14,17,20,.78);
  backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.header-inner{
  height:86px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
}
 .brand{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  top:24px;
  transition:all .35s ease;
}
.brand img{height:170px;width:auto;transition:all .35s ease}
.site-header.scrolled .brand{top:14px}
.site-header.scrolled .brand img{height:56px}

.main-nav{
  display:flex;
  align-items:center;
  gap:26px;
}
.main-nav a{
  text-decoration:none;
  color:rgba(255,255,255,.78);
  font-size:.92rem;
  font-weight:700;
}
.main-nav a:hover{color:white}
.language-switch{
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(255,255,255,.05);
}
.language-switch button{
  border:0;
  background:transparent;
  color:rgba(255,255,255,.55);
  font-weight:900;
  cursor:pointer;
}
.language-switch button.active{color:white}
.menu-toggle{
  display:none;
  width:42px;
  height:42px;
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(255,255,255,.06);
}
.menu-toggle span{
  display:block;
  width:18px;
  height:2px;
  background:white;
  margin:4px auto;
}

.hero{
  min-height:100vh;
  position:relative;
  display:grid;
  place-items:center;
  isolation:isolate;
  overflow:hidden;
  padding:120px 0 70px;
}
.hero-bg{position:absolute;inset:0;z-index:-3}
.hero-bg img{
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:.32;
  filter:contrast(1.08) saturate(.72);
}
.hero-shade{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, rgba(14,17,20,.98) 0%, rgba(14,17,20,.82) 42%, rgba(14,17,20,.35) 100%),
    linear-gradient(180deg, rgba(14,17,20,.1), rgba(14,17,20,.95));
}
.hero-content{position:relative;z-index:2}
.hero-text{
  max-width:650px;
  font-size:clamp(1.05rem,2vw,1.35rem);
  color:#D5DEE3;
  margin-bottom:34px;
}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}
.flow-lines{position:absolute;inset:0;overflow:hidden;opacity:.9}
.line{
  position:absolute;
  border:1px solid rgba(154,190,209,.22);
  border-radius:80px;
  filter:drop-shadow(0 0 14px rgba(39,75,104,.5));
}
.line-1{width:520px;height:220px;right:5%;top:22%;border-left:0;animation:float 8s ease-in-out infinite}
.line-2{width:390px;height:390px;right:18%;bottom:12%;border-top:0;animation:float 11s ease-in-out infinite reverse}
.line-3{width:620px;height:1px;left:20%;top:62%;background:linear-gradient(90deg,transparent,rgba(153,197,220,.35),transparent);border:0}
.dot{
  position:absolute;
  width:8px;
  height:8px;
  border-radius:50%;
  background:#DCE8EE;
  box-shadow:0 0 22px #DCE8EE;
}
.dot-1{right:28%;top:31%;animation:travel1 5s linear infinite}
.dot-2{right:22%;bottom:29%;animation:travel2 7s linear infinite}
.dot-3{left:42%;top:62%;animation:travel3 6s linear infinite}
@keyframes float{50%{transform:translate3d(0,-18px,0)}}
@keyframes travel1{0%{transform:translateX(-200px);opacity:0}20%,70%{opacity:1}100%{transform:translateX(220px);opacity:0}}
@keyframes travel2{0%{transform:translateY(-120px);opacity:0}20%,70%{opacity:1}100%{transform:translateY(160px);opacity:0}}
@keyframes travel3{0%{transform:translateX(-250px);opacity:0}20%,70%{opacity:1}100%{transform:translateX(270px);opacity:0}}

.two-col,.contact-layout{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
  align-items:start;
}
.section-copy p{font-size:1.05rem}
.stats{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin-top:34px;
}
.stats div,.card,.contact-card{
  background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.035));
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:24px;
  box-shadow:var(--shadow);
}
.stats strong{display:block;font-size:1.5rem}
.stats span{display:block;color:var(--muted);font-size:.88rem}

.centered{text-align:center;margin-inline:auto;max-width:820px}
.cards{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  margin-top:42px;
}
.card{
  min-height:280px;
  position:relative;
  overflow:hidden;
}
.card::after{
  content:"";
  position:absolute;
  inset:auto -30% -60% auto;
  width:220px;
  height:220px;
  background:radial-gradient(circle,rgba(39,75,104,.45),transparent 65%);
}
.card-icon{
  display:inline-flex;
  width:46px;
  height:46px;
  border-radius:50%;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.16);
  color:#DCE8EE;
  margin-bottom:42px;
}
.card h3{font-size:1.5rem;margin-bottom:14px}

.sectors{background:linear-gradient(180deg,rgba(255,255,255,.03),transparent)}
.sector-grid{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:32px;
}
.sector-grid span{
  padding:12px 16px;
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(255,255,255,.045);
  color:#D8E2E7;
}

.gallery-note{max-width:620px;margin-inline:auto}
.gallery-grid{
  columns:3 260px;
  column-gap:18px;
  margin-top:44px;
}
.gallery-item{
  break-inside:avoid;
  margin:0 0 18px;
  border-radius:22px;
  overflow:hidden;
  border:1px solid var(--line);
  background:rgba(255,255,255,.04);
  cursor:pointer;
  position:relative;
}
.gallery-item img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  transition:transform .45s ease, filter .45s ease;
}
.gallery-item:nth-child(2n) img{aspect-ratio:3/4}
.gallery-item:hover img{transform:scale(1.05);filter:brightness(1.08)}
.gallery-item figcaption{
  position:absolute;
  left:14px;
  right:14px;
  bottom:14px;
  padding:10px 12px;
  border-radius:14px;
  background:rgba(14,17,20,.72);
  backdrop-filter:blur(10px);
  color:white;
  font-size:.9rem;
}

.process-line{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  background:rgba(255,255,255,.035);
  margin-top:38px;
}
.process-line div{
  padding:28px 18px;
  border-right:1px solid var(--line);
}
.process-line div:last-child{border-right:0}
.process-line strong{display:block;color:#DCE8EE;margin-bottom:40px}
.process-line span{font-weight:800}

.contacts{background:linear-gradient(180deg,transparent,rgba(39,75,104,.16))}
.contact-card a{
  display:block;
  color:white;
  text-decoration:none;
  margin:12px 0;
  font-weight:800;
}
.contact-card .linkedin{color:#DCE8EE}

.site-footer{
  border-top:1px solid var(--line);
  padding:28px 0;
}
.footer-inner{
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:center;
}
.footer-inner p{margin:0;font-size:.92rem}
.footer-inner a{color:var(--muted);text-decoration:none;margin-left:16px;font-size:.92rem}

.cookie-banner{
  position:fixed;
  left:20px;
  right:20px;
  bottom:20px;
  z-index:80;
  max-width:760px;
  margin:auto;
  display:none;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  background:rgba(17,24,32,.95);
  border:1px solid var(--line);
  border-radius:22px;
  padding:18px;
  box-shadow:var(--shadow);
  backdrop-filter:blur(18px);
}
.cookie-banner.show{display:flex}
.cookie-banner p{margin:0}

.lightbox{
  position:fixed;
  inset:0;
  z-index:100;
  display:none;
  align-items:center;
  justify-content:center;
  background:rgba(0,0,0,.88);
  padding:70px;
}
.lightbox.open{display:flex}
.lightbox img{
  max-height:82vh;
  max-width:86vw;
  border-radius:18px;
  box-shadow:var(--shadow);
}
.lightbox-close,.lightbox-prev,.lightbox-next{
  position:absolute;
  border:1px solid var(--line);
  background:rgba(255,255,255,.08);
  color:white;
  border-radius:999px;
  cursor:pointer;
}
.lightbox-close{top:24px;right:24px;width:48px;height:48px;font-size:2rem}
.lightbox-prev,.lightbox-next{top:50%;width:54px;height:54px;font-size:3rem;line-height:1}
.lightbox-prev{left:24px}.lightbox-next{right:24px}
.lightbox p{position:absolute;bottom:22px;color:white}

.reveal{
  opacity:0;
  transform:translateY(28px);
  transition:opacity .7s ease, transform .7s ease;
}
.reveal.visible{opacity:1;transform:none}

@media (max-width:900px){
  .header-inner{height:76px}
  .brand img{height:46px}
  .menu-toggle{display:block}
  .main-nav{
    position:fixed;
    left:20px;
    right:20px;
    top:86px;
    display:none;
    flex-direction:column;
    align-items:flex-start;
    padding:22px;
    border:1px solid var(--line);
    border-radius:22px;
    background:rgba(14,17,20,.94);
    backdrop-filter:blur(18px);
  }
  .main-nav.open{display:flex}
  .language-switch{margin-left:auto}
  .two-col,.contact-layout{grid-template-columns:1fr;gap:28px}
  .cards,.stats,.process-line{grid-template-columns:1fr}
  .process-line div{border-right:0;border-bottom:1px solid var(--line)}
  .process-line div:last-child{border-bottom:0}
  .footer-inner{flex-direction:column;align-items:flex-start}
  .cookie-banner{flex-direction:column;align-items:flex-start}
  .section{padding:80px 0}
}
@media (max-width:560px){
  h1{font-size:3.4rem}
  .hero-actions{flex-direction:column}
  .btn{width:100%}
  .lightbox{padding:40px 18px}
  .lightbox-prev,.lightbox-next{display:none}
}


/* v0.2 improvements */
.solution-cards{
  grid-template-columns:repeat(4,1fr);
}
.solution-card{
  min-height:360px;
  padding:0;
  isolation:isolate;
  display:flex;
  align-items:flex-end;
}
.solution-card::after{display:none}
.solution-card .card-bg{
  position:absolute;
  inset:0;
  background-image:linear-gradient(180deg,rgba(14,17,20,.15),rgba(14,17,20,.92)), var(--card-image);
  background-size:cover;
  background-position:center;
  z-index:-2;
  transition:transform .55s ease, filter .55s ease;
}
.solution-card::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(135deg,rgba(39,75,104,.42),transparent 55%);
  z-index:-1;
}
.solution-card:hover .card-bg{
  transform:scale(1.08);
  filter:brightness(1.08);
}
.solution-card .card-content{
  padding:26px;
}
.solution-card h3{
  font-size:1.32rem;
}
.solution-card p{
  color:#E4EBEF;
  font-size:.94rem;
}
.sector-grid span{
  display:inline-flex;
  align-items:center;
  gap:10px;
}
.sector-grid i{
  font-style:normal;
  width:28px;
  height:28px;
  display:inline-grid;
  place-items:center;
  border-radius:50%;
  background:rgba(255,255,255,.08);
}
.process-line{
  grid-template-columns:repeat(7,1fr);
}
@media (max-width:1100px){
  .solution-cards{grid-template-columns:repeat(2,1fr)}
  .process-line{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:650px){
  .solution-cards{grid-template-columns:1fr}
  .process-line{grid-template-columns:1fr}
}

/* v0.4 corrections */
.hero-bg img{opacity:.78 !important;filter:contrast(1.05) saturate(.92) !important}.hero-shade{background:linear-gradient(90deg,rgba(14,17,20,.88) 0%,rgba(14,17,20,.62) 40%,rgba(14,17,20,.18) 100%),linear-gradient(180deg,rgba(14,17,20,.08),rgba(14,17,20,.90)) !important}.about .two-col{display:grid;grid-template-columns:1fr 1fr;gap:70px}.history-timeline{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:70px}.history-line{position:absolute;left:8%;right:8%;top:72px;height:2px;background:linear-gradient(90deg,transparent,#79AFCB,transparent);opacity:.8}.history-item{position:relative}.history-year{font-size:2rem;font-weight:900;color:#DCE8EE;margin-bottom:22px}.history-dot{width:24px;height:24px;border-radius:50%;background:var(--blue);border:5px solid #DCE8EE;box-shadow:0 0 25px rgba(39,75,104,.8);margin-bottom:28px}.history-item h3{font-size:1.12rem;margin-bottom:12px}.history-item p{font-size:.95rem}.solution-card h3[data-i18n]{font-size:1.32rem}.sector-grid{display:grid !important;grid-template-columns:repeat(4,1fr) !important;gap:18px;margin-top:44px}.sector-card{min-height:260px;padding:26px;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.035));box-shadow:var(--shadow);position:relative;overflow:hidden}.sector-card::after{content:"";position:absolute;right:-50px;bottom:-50px;width:170px;height:170px;background:radial-gradient(circle,rgba(39,75,104,.4),transparent 65%)}.sector-icon{width:86px;height:86px;display:grid;place-items:center;border-radius:22px;background:rgba(255,255,255,.08);border:1px solid var(--line);margin-bottom:28px}
.sector-icon svg{width:42px;height:42px;fill:none;stroke:#6FA6C8;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 10px rgba(111,166,200,.18))}.sector-card h3{font-size:1.2rem}.sector-card p{font-size:.92rem}@media(max-width:1100px){.history-timeline,.sector-grid{grid-template-columns:repeat(2,1fr) !important}.history-line{display:none}}@media(max-width:700px){.about .two-col,.history-timeline,.sector-grid{grid-template-columns:1fr !important}}

.history-timeline{
  position:relative;
  padding:40px;
  border-radius:24px;
  overflow:hidden;
}
.history-timeline::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(rgba(14,17,20,.82),rgba(14,17,20,.82)),
    url('../img/history-bg.jpg');
  background-size:cover;
  background-position:center;
  z-index:0;
}
.history-timeline > *{
  position:relative;
  z-index:1;
}


/* v0.6 timeline alignment fix */
.history-timeline{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:24px !important;
  align-items:start;
}

.history-timeline .history-line{
  display:block;
  position:absolute;
  left:8%;
  right:8%;
  top:112px;
  height:2px;
  width:auto;
  background:linear-gradient(90deg,transparent,#79AFCB,transparent);
}

@media (max-width:1200px){
  .history-timeline{
    display:flex !important;
    flex-direction:column !important;
    gap:34px !important;
    padding-left:56px !important;
  }

  .history-timeline .history-line{
    display:block !important;
    left:28px !important;
    right:auto !important;
    top:42px !important;
    bottom:42px !important;
    width:2px !important;
    height:auto !important;
    background:linear-gradient(180deg,transparent,#79AFCB,transparent) !important;
  }

  .history-item{
    display:grid;
    grid-template-columns:90px 28px 1fr;
    column-gap:16px;
    align-items:start;
  }

  .history-year{
    margin-bottom:0 !important;
    line-height:1;
  }

  .history-dot{
    margin:6px 0 0 0 !important;
  }

  .history-item h3,
  .history-item p{
    grid-column:3;
  }
}

@media (max-width:650px){
  .history-timeline{
    padding:32px 24px 32px 44px !important;
  }

  .history-timeline .history-line{
    left:22px !important;
  }

  .history-item{
    grid-template-columns:1fr;
    gap:8px;
    padding-left:18px;
  }

  .history-year,
  .history-item h3,
  .history-item p{
    grid-column:1;
  }

  .history-dot{
    position:absolute;
    left:14px;
    transform:translateX(-50%);
  }
}


/* v0.7 mobile timeline dot alignment */
@media (max-width:650px){
  .history-item{
    position:relative;
    padding-left:34px !important;
  }

  .history-dot{
    left:-8px !important;
    top:58px !important;
    margin:0 !important;
    transform:none !important;
  }

  .history-timeline .history-line{
    left:18px !important;
  }
}


/* v0.8 process section redesign */
.process-feature{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  padding:130px 0;
}

.process-bg-image{
  position:absolute;
  inset:0;
  z-index:-3;
  background-image:url('../img/process-bg.jpg');
  background-size:cover;
  background-position:center;
  opacity:.48;
  filter:contrast(1.05) saturate(.9);
}

.process-feature::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  background:
    linear-gradient(90deg,rgba(14,17,20,.96) 0%,rgba(14,17,20,.76) 46%,rgba(14,17,20,.42) 100%),
    linear-gradient(180deg,rgba(14,17,20,.72),rgba(14,17,20,.96));
}

.process-flow{
  margin-top:56px;
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:18px;
  position:relative;
}

.process-flow::before{
  content:"";
  position:absolute;
  left:4%;
  right:4%;
  top:46px;
  height:2px;
  background:linear-gradient(90deg,transparent,#9cc9de,transparent);
  opacity:.75;
}

.process-step{
  grid-column:span 3;
  min-height:260px;
  padding:24px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:26px;
  background:rgba(14,17,20,.58);
  backdrop-filter:blur(14px);
  box-shadow:0 26px 80px rgba(0,0,0,.35);
  position:relative;
  overflow:hidden;
}

.process-step:nth-child(5),
.process-step:nth-child(6),
.process-step:nth-child(7){
  grid-column:span 4;
}

.process-step::after{
  content:"";
  position:absolute;
  right:-50px;
  bottom:-55px;
  width:170px;
  height:170px;
  background:radial-gradient(circle,rgba(39,75,104,.55),transparent 68%);
}

.process-step span{
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#DCE8EE;
  color:#274B68;
  font-weight:900;
  margin-bottom:36px;
  box-shadow:0 0 0 8px rgba(220,232,238,.08), 0 0 26px rgba(220,232,238,.3);
  position:relative;
  z-index:2;
}

.process-step h3{
  font-size:1.28rem;
  margin-bottom:12px;
}

.process-step p{
  font-size:.94rem;
  color:#D8E3E8;
}

.process-step-highlight{
  background:linear-gradient(180deg,rgba(39,75,104,.72),rgba(14,17,20,.62));
}

@media(max-width:1100px){
  .process-flow{
    grid-template-columns:1fr;
  }
  .process-flow::before{
    left:29px;
    right:auto;
    top:0;
    bottom:0;
    width:2px;
    height:auto;
    background:linear-gradient(180deg,transparent,#9cc9de,transparent);
  }
  .process-step,
  .process-step:nth-child(5),
  .process-step:nth-child(6),
  .process-step:nth-child(7){
    grid-column:auto;
    padding-left:86px;
    min-height:auto;
  }
  .process-step span{
    position:absolute;
    left:0;
    top:24px;
    width:58px;
    height:58px;
  }
}


/* v0.9 process 50/50 section */
.process-split{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 20% 20%, rgba(39,75,104,.25), transparent 32%),
    linear-gradient(180deg, rgba(255,255,255,.025), rgba(39,75,104,.08));
}

.process-split-layout{
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:56px;
  align-items:center;
}

.process-photo{
  position:sticky;
  top:110px;
  align-self:start;
  border-radius:32px;
  overflow:hidden;
  min-height:680px;
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 30px 100px rgba(0,0,0,.46);
  background:#111820;
}

.process-photo::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(14,17,20,.03), rgba(14,17,20,.2)),
    linear-gradient(135deg, rgba(39,75,104,.28), transparent 50%);
  pointer-events:none;
}

.process-photo img{
  width:100%;
  height:100%;
  min-height:680px;
  object-fit:cover;
  object-position:center;
  filter:contrast(1.03) saturate(.95);
}

.process-content .section-heading{
  margin-bottom:34px;
}

.process-steps-vertical{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:16px;
}

.process-steps-vertical::before{
  content:"";
  position:absolute;
  left:27px;
  top:28px;
  bottom:28px;
  width:2px;
  background:linear-gradient(180deg, transparent, #9cc9de, transparent);
  opacity:.75;
}

.process-step-row{
  position:relative;
  display:grid;
  grid-template-columns:56px 1fr;
  gap:20px;
  padding:20px 22px 20px 0;
  border-radius:24px;
  transition:.25s ease;
}

.process-step-row span{
  width:56px;
  height:56px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#DCE8EE;
  color:#274B68;
  font-weight:900;
  box-shadow:0 0 0 8px rgba(220,232,238,.08),0 0 26px rgba(220,232,238,.25);
  position:relative;
  z-index:2;
}

.process-step-row div{
  padding:18px 22px;
  border:1px solid rgba(255,255,255,.13);
  background:rgba(255,255,255,.055);
  backdrop-filter:blur(12px);
  border-radius:22px;
}

.process-step-row h3{
  margin-bottom:8px;
  font-size:1.15rem;
}

.process-step-row p{
  margin-bottom:0;
  font-size:.94rem;
  color:#D7E2E7;
}

.process-step-row:hover{
  transform:translateX(6px);
}

.process-step-row:hover div{
  background:rgba(39,75,104,.22);
}

.process-step-final div{
  border-color:rgba(220,232,238,.32);
  background:linear-gradient(135deg, rgba(39,75,104,.42), rgba(255,255,255,.055));
}

@media(max-width:1000px){
  .process-split-layout{
    grid-template-columns:1fr;
  }
  .process-photo{
    position:relative;
    top:auto;
    min-height:460px;
  }
  .process-photo img{
    min-height:460px;
  }
}

@media(max-width:560px){
  .process-photo,
  .process-photo img{
    min-height:420px;
  }
  .process-step-row{
    grid-template-columns:48px 1fr;
    gap:14px;
  }
  .process-step-row span{
    width:48px;
    height:48px;
  }
  .process-steps-vertical::before{
    left:23px;
  }
}


/* v10 - process section like company history */
#process{
  position:relative;
}

#process .process-bg-image,
#process .process-photo{
  opacity:.85 !important;
  filter:blur(6px) brightness(.8) !important;
}

#process::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(rgba(10,14,18,.65),rgba(10,14,18,.65));
  pointer-events:none;
}

#process .process-flow,
#process .process-content,
#process .container{
  position:relative;
  z-index:2;
}

#process .process-step,
#process .process-step-row div{
  background:rgba(10,14,18,.45) !important;
  backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.18);
}



/* v11 - process background visibility like approved mockup */
#process.process-feature,
#process.process-split,
#process{
  background:transparent !important;
  isolation:isolate;
}

#process .process-bg-image{
  opacity:.72 !important;
  filter:blur(2px) brightness(1.05) contrast(1.05) saturate(.95) !important;
  background-position:center 46% !important;
  transform:scale(1.025);
}

#process::before{
  background:
    linear-gradient(90deg,rgba(10,14,18,.72) 0%,rgba(10,14,18,.50) 42%,rgba(10,14,18,.34) 100%),
    linear-gradient(180deg,rgba(10,14,18,.52),rgba(10,14,18,.68)) !important;
  z-index:-1;
}

#process .section-heading{
  position:relative;
  z-index:3;
}

#process .process-flow{
  position:relative;
  z-index:3;
}

#process .process-step{
  background:rgba(7,12,16,.34) !important;
  border:1px solid rgba(220,232,238,.42) !important;
  backdrop-filter:blur(5px) !important;
  -webkit-backdrop-filter:blur(5px) !important;
  box-shadow:0 20px 70px rgba(0,0,0,.28) !important;
}

#process .process-step::after{
  opacity:.28 !important;
}

#process .process-step p{
  color:#F0F5F7 !important;
}

#process .process-step h3{
  color:#fff !important;
}

#process .process-step-highlight{
  background:rgba(39,75,104,.45) !important;
}


/* v12 - Process section rebuilt like approved mockup */
#process.process-background{
  position:relative !important;
  overflow:hidden !important;
  isolation:isolate !important;
  padding:130px 0 115px !important;
  background:#0E1114 !important;
}

#process .process-background-image{
  position:absolute !important;
  inset:0 !important;
  z-index:-3 !important;
  background-image:url('../img/process-bg.jpg') !important;
  background-size:cover !important;
  background-position:center 48% !important;
  opacity:.82 !important;
  filter:blur(1.2px) brightness(.82) contrast(1.08) saturate(.95) !important;
  transform:scale(1.018) !important;
}

#process.process-background::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  z-index:-2 !important;
  background:
    linear-gradient(90deg, rgba(8,12,16,.82) 0%, rgba(8,12,16,.48) 42%, rgba(8,12,16,.66) 100%),
    linear-gradient(180deg, rgba(8,12,16,.45) 0%, rgba(8,12,16,.54) 45%, rgba(8,12,16,.82) 100%) !important;
  pointer-events:none !important;
}

#process.process-background::after{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  z-index:-1 !important;
  background:radial-gradient(circle at 52% 45%, rgba(39,75,104,.22), transparent 42%) !important;
  pointer-events:none !important;
}

#process .process-heading{
  max-width:610px !important;
  margin:0 0 84px 0 !important;
  text-align:left !important;
}

#process .process-heading h2{
  font-size:clamp(3.1rem, 6vw, 6rem) !important;
  max-width:760px !important;
  line-height:.95 !important;
  margin-bottom:22px !important;
}

#process .process-heading p:not(.eyebrow){
  max-width:620px !important;
  color:#F0F5F7 !important;
  font-size:1.12rem !important;
}

#process .process-cards{
  position:relative !important;
  display:grid !important;
  grid-template-columns:repeat(7, minmax(140px, 1fr)) !important;
  gap:16px !important;
  align-items:stretch !important;
}

#process .process-cards::before{
  content:"" !important;
  position:absolute !important;
  left:4% !important;
  right:4% !important;
  top:34px !important;
  height:2px !important;
  background:linear-gradient(90deg, transparent, rgba(220,232,238,.85), transparent) !important;
  opacity:.85 !important;
  z-index:1 !important;
}

#process .process-card{
  position:relative !important;
  z-index:2 !important;
  min-height:300px !important;
  padding:78px 18px 24px !important;
  border-radius:12px !important;
  border:1px solid rgba(220,232,238,.62) !important;
  background:rgba(5,10,14,.34) !important;
  backdrop-filter:blur(4px) !important;
  -webkit-backdrop-filter:blur(4px) !important;
  box-shadow:0 24px 70px rgba(0,0,0,.26) !important;
  overflow:visible !important;
}

#process .process-card span{
  position:absolute !important;
  left:50% !important;
  top:-34px !important;
  transform:translateX(-50%) !important;
  width:72px !important;
  height:72px !important;
  display:grid !important;
  place-items:center !important;
  border-radius:50% !important;
  color:#274B68 !important;
  background:#DCE8EE !important;
  border:3px solid rgba(255,255,255,.95) !important;
  font-weight:900 !important;
  font-size:1rem !important;
  box-shadow:0 0 0 10px rgba(220,232,238,.14),0 0 30px rgba(220,232,238,.32) !important;
  z-index:5 !important;
}

#process .process-icon{
  height:64px !important;
  display:grid !important;
  place-items:center !important;
  color:#6FA6C8 !important;
  font-size:3rem !important;
  margin:0 0 22px !important;
  line-height:1 !important;
}

#process .process-card h3{
  font-size:1.13rem !important;
  color:#fff !important;
  margin-bottom:14px !important;
  text-align:left !important;
}

#process .process-card p{
  font-size:.9rem !important;
  line-height:1.62 !important;
  color:#F1F6F8 !important;
  margin-bottom:0 !important;
  text-align:left !important;
}

#process .process-card:hover{
  background:rgba(39,75,104,.32) !important;
  transform:translateY(-4px) !important;
  transition:.25s ease !important;
}

/* remove old process layouts that may still exist */
#process .process-split-layout,
#process .process-photo,
#process .process-content,
#process .process-flow,
#process .process-step,
#process .process-step-row,
#process .process-steps-vertical{
  all:unset;
}

@media(max-width:1200px){
  #process .process-cards{
    grid-template-columns:repeat(2, minmax(0,1fr)) !important;
    gap:54px 18px !important;
  }
  #process .process-cards::before{
    display:none !important;
  }
  #process .process-card{
    min-height:260px !important;
  }
}

@media(max-width:700px){
  #process.process-background{
    padding:90px 0 !important;
  }
  #process .process-heading{
    margin-bottom:58px !important;
  }
  #process .process-cards{
    grid-template-columns:1fr !important;
    gap:50px !important;
  }
  #process .process-card{
    min-height:auto !important;
  }
}


/* v13 - process line icons and footer cleanup */
#process .process-icon svg{
  width:56px;
  height:56px;
  stroke:#6FA6C8;
  stroke-width:3;
  fill:none;
  stroke-linecap:round;
  stroke-linejoin:round;
  filter:drop-shadow(0 0 10px rgba(111,166,200,.18));
}

#process .process-icon{
  color:#6FA6C8 !important;
}

/* v19 - Mobile gallery: compatta con scorrimento orizzontale */
@media (max-width: 700px){
  .gallery-section{
    overflow:hidden;
  }
  .gallery-section .container{
    padding-right:0;
  }
  .gallery-grid{
    columns:initial;
    display:flex;
    gap:14px;
    overflow-x:auto;
    overflow-y:hidden;
    margin-top:30px;
    padding:4px 22px 20px 0;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
  }
  .gallery-grid::after{
    content:"";
    flex:0 0 8px;
  }
  .gallery-item{
    flex:0 0 min(78vw, 330px);
    margin:0;
    scroll-snap-align:start;
  }
  .gallery-item img,
  .gallery-item:nth-child(2n) img{
    aspect-ratio:4/3;
  }
  .gallery-item figcaption{
    font-size:.82rem;
  }
  .gallery-note::after{
    content:" Scorri le foto lateralmente.";
  }
}

.gallery-empty {
  grid-column: 1 / -1;
  margin: 0;
  padding: 24px;
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 18px;
  background: rgba(255,255,255,0.06);
  color: rgba(255,255,255,0.82);
}
