@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Oxanium:wght@400;500;600;700&display=swap");


:root{
 --ink:#002B49; --ink-2:#0A4263; --dark:#002B49; --dark-2:#0A4263;
 --green:#04d982; --acid:#e9ff52; --sky:#78e9ff; --paper:#f5f8f9; --white:#fff;
 --muted:#5d7180; --line:rgba(11,47,66,.14); --shadow:0 24px 70px rgba(3,21,30,.14);
 --radius:28px; --radius-sm:16px; --max:1240px; --header-h:82px;
 --font-display:"Oxanium", ui-sans-serif, system-ui, sans-serif;
 --font-body:"Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px}body{margin:0;font-family:var(--font-body);color:var(--ink);background:#fff;line-height:1.58;-webkit-font-smoothing:antialiased}body.nav-open{overflow:hidden}
a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button,input,textarea,select{font:inherit}.container{width:min(calc(100% - 40px),var(--max));margin-inline:auto}.eyebrow{display:inline-flex;align-items:center;gap:10px;text-transform:uppercase;letter-spacing:.15em;font-size:.76rem;font-weight:700;font-family:var(--font-display);color:var(--ink)}.eyebrow::before{content:"";width:28px;height:2px;background:var(--green)}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.06;letter-spacing:-.035em}h1{font-size:clamp(3rem,7vw,6.8rem);margin-bottom:28px}h2{font-size:clamp(2.3rem,4.6vw,4.7rem);margin-bottom:24px}h3{font-size:clamp(1.35rem,2vw,2rem);margin-bottom:12px}.lead{font-size:clamp(1.08rem,1.7vw,1.35rem);color:var(--muted);max-width:760px}.section{padding:clamp(82px,10vw,150px) 0;position:relative;overflow:hidden}.section-dark{background:var(--dark);color:#fff}.section-dark .lead,.section-dark .muted{color:rgba(255,255,255,.68)}.section-soft{background:var(--paper)}.section-head{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:50px;align-items:end;margin-bottom:52px}.section-number{font:700 clamp(4rem,10vw,9rem)/.8 ui-monospace,monospace;color:rgba(11,47,66,.07);position:absolute;right:4vw;top:5vw;pointer-events:none}.section-dark .section-number{color:rgba(255,255,255,.05)}
.text-link{font-weight:800;color:var(--green);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;transition:.2s}.text-link:hover{color:var(--ink);text-decoration-thickness:2px}.section-dark .text-link,.text-link-light{color:var(--green)}.section-dark .text-link:hover,.text-link-light:hover{color:#fff}
/* header */
.site-header{position:fixed;inset:0 0 auto;z-index:1000;height:var(--header-h);transition:.25s;background:rgba(255,255,255,.08);border-bottom:1px solid transparent}.site-header.scrolled{background:rgba(255,255,255,.91);backdrop-filter:blur(18px);border-color:var(--line);box-shadow:0 10px 34px rgba(2,20,29,.06)}.nav-wrap{height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:nowrap}.brand{display:flex;align-items:center;position:relative;z-index:4;flex:0 0 auto}.brand img{display:none;width:168px;height:auto}.site-header:not(.scrolled) .brand-light{display:block}.site-header.scrolled .brand-dark{display:block}.main-nav{display:flex;align-items:center;gap:clamp(15px,1.5vw,28px);font-size:.83rem;font-weight:600;font-family:var(--font-display);letter-spacing:.03em;flex-wrap:nowrap;white-space:nowrap;min-width:0}.main-nav>a{position:relative;flex:0 0 auto;white-space:nowrap}.main-nav>a::after{content:"";position:absolute;left:0;right:100%;bottom:-8px;height:2px;background:var(--green);transition:.25s}.main-nav>a:hover::after,.main-nav>a:focus-visible::after{right:0}.site-header:not(.scrolled) .main-nav>a,.site-header:not(.scrolled) .language-switch a{color:#fff}.language-switch{display:flex;gap:7px;margin-left:5px;flex:0 0 auto;white-space:nowrap}.language-switch a{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;font-size:.68rem;font-family:var(--font-display);border:1px solid currentColor;opacity:.62}.language-switch a.active,.language-switch a:hover{background:var(--green);border-color:var(--green);color:var(--dark)!important;opacity:1}.menu-toggle{display:none;border:0;background:transparent;width:46px;height:46px;position:relative;z-index:5}.menu-toggle span,.menu-toggle::before,.menu-toggle::after{content:"";position:absolute;width:25px;height:2px;background:currentColor;left:10px;transition:.25s}.menu-toggle::before{top:14px}.menu-toggle span{top:22px}.menu-toggle::after{top:30px}.site-header:not(.scrolled) .menu-toggle{color:#fff}.nav-open .menu-toggle::before{transform:translateY(8px) rotate(45deg)}.nav-open .menu-toggle span{opacity:0}.nav-open .menu-toggle::after{transform:translateY(-8px) rotate(-45deg)}
/* hero */
.hero{min-height:100svh;display:flex;align-items:flex-end;background:var(--dark);color:#fff;position:relative;overflow:hidden;padding:calc(var(--header-h) + 84px) 0 88px;isolation:isolate}
.hero-bg{position:absolute;inset:0;overflow:hidden}
.hero-bg-slide{position:absolute;inset:-2%;z-index:0;background-size:cover;background-position:center;opacity:0;transform:scale(1.03);animation:heroBgCycle 24s infinite ease-in-out;filter:saturate(.98) brightness(.9)}
.hero-bg-1{background-image:url('../images/hero/hero-reactis-01.jpg');animation-delay:0s}
.hero-bg-2{background-image:url('../images/hero/hero-reactis-02.jpg');animation-delay:8s}
.hero-bg-3{background-image:url('../images/hero/hero-reactis-03.jpg');animation-delay:16s}
.hero-bg::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(0,43,73,.72) 0%,rgba(0,43,73,.56) 38%,rgba(0,43,73,.22) 68%,rgba(0,43,73,.38) 100%),radial-gradient(circle at 78% 28%,rgba(4,217,130,.10),transparent 26%),radial-gradient(circle at 82% 72%,rgba(120,233,255,.10),transparent 22%)}
.hero-tech-overlay{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden;opacity:1}
.hero-wave-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:.96;mix-blend-mode:screen;mask-image:linear-gradient(90deg,rgba(0,0,0,.16) 0%,rgba(0,0,0,.40) 18%,rgba(0,0,0,.78) 38%,#000 100%);-webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,.16) 0%,rgba(0,0,0,.40) 18%,rgba(0,0,0,.78) 38%,#000 100%)}
.hero-grid{position:relative;z-index:4;display:grid;grid-template-columns:minmax(0,1.16fr) minmax(300px,.74fr);gap:72px;align-items:end}
.hero-copy{max-width:760px}
.hero h1 span{color:var(--green)}
.hero .lead{color:rgba(255,255,255,.82);max-width:690px}
.hero-actions,.section-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:52px;padding:0 24px;border-radius:999px;border:1px solid transparent;font-weight:700;font-family:var(--font-display);letter-spacing:.03em;font-size:.9rem;transition:.25s}
.btn-primary{background:var(--green);color:var(--dark)}.btn-primary:hover{background:var(--acid);transform:translateY(-2px)}.btn-ghost{border-color:rgba(255,255,255,.42);color:#fff}.btn-ghost:hover{border-color:#fff;background:#fff;color:var(--dark)}.btn-dark{background:var(--ink);color:#fff}.btn-dark:hover{background:var(--green);color:var(--dark)}
.hero-side{display:grid;gap:22px;align-items:end;justify-items:end}
.hero-logo-stack{display:grid;justify-items:center;gap:14px;width:min(100%,520px)}
.hero-logo-3d{perspective:2200px;display:flex;justify-content:center;width:100%}
.hero-logo-card{position:relative;width:min(100%,420px);height:280px;display:grid;place-items:center;transform-style:preserve-3d;animation:logoIntro 3s cubic-bezier(.19,1,.22,1) both,logoMicro 14s linear 3s infinite;isolation:isolate}
.hero-logo-glow{position:absolute;inset:-8% -4%;background:radial-gradient(circle at 50% 36%,rgba(4,217,130,.22),transparent 24%),radial-gradient(circle at 50% 38%,rgba(120,233,255,.12),transparent 40%);filter:blur(18px);opacity:.95;animation:logoGlowPulse 7s ease-in-out infinite}
.hero-logo-layer{position:absolute;width:min(78%,220px);height:auto;transform-origin:center center;will-change:transform,opacity,filter}
.hero-logo-back-3{opacity:.08;transform:translate3d(0,-42px,-150px);filter:brightness(.72) blur(1.6px)}
.hero-logo-back-2{opacity:.12;transform:translate3d(0,-32px,-118px);filter:brightness(.78) blur(1.2px)}
.hero-logo-back-1{opacity:.18;transform:translate3d(0,-22px,-86px);filter:brightness(.84) blur(.8px)}
.hero-logo-mid{opacity:.3;transform:translate3d(0,-12px,-50px);filter:brightness(.96) blur(.2px)}
.hero-logo-front-1{opacity:.74;transform:translate3d(0,-4px,-10px);filter:brightness(1.04)}
.hero-logo-front-2{z-index:2;transform:translate3d(0,0,42px);filter:drop-shadow(0 18px 28px rgba(0,0,0,.36)) drop-shadow(0 0 18px rgba(120,233,255,.12))}
.hero-wordmark{width:min(100%,450px);height:auto;display:block;filter:drop-shadow(0 10px 18px rgba(0,0,0,.26))}
.hero-meta{display:grid;gap:14px;width:100%;max-width:410px}
.hero-meta-item{padding:18px 0;border-top:1px solid rgba(255,255,255,.18);display:flex;justify-content:space-between;gap:16px;align-items:center;background:linear-gradient(90deg,rgba(255,255,255,.06),transparent)}
.hero-meta-item strong{font-family:var(--font-display);font-size:.82rem;font-weight:600;text-transform:uppercase;letter-spacing:.13em}
.hero-meta-item span{color:var(--green);font:700 1rem ui-monospace,monospace}
.scroll-cue{position:absolute;right:2.6vw;bottom:28px;z-index:3;writing-mode:vertical-rl;font-family:var(--font-display);font-size:.68rem;text-transform:uppercase;letter-spacing:.18em;color:rgba(255,255,255,.58);display:flex;align-items:center;gap:14px}.scroll-cue::after{content:"";height:64px;width:1px;background:linear-gradient(var(--green),transparent)}
@keyframes heroBgCycle{0%,28%{opacity:.22;transform:scale(1.03)}4%,24%{opacity:.72;transform:scale(1)}32%,100%{opacity:0;transform:scale(1.02)}}
@keyframes logoIntro{0%{opacity:0;transform:translateY(30px) rotateY(-360deg) rotateX(20deg) scale(.55)}58%{opacity:1;transform:translateY(-6px) rotateY(18deg) rotateX(8deg) scale(1.03)}100%{opacity:1;transform:translateY(0) rotateY(-12deg) rotateX(6deg) scale(1)}}
@keyframes logoMicro{0%,9%,100%{transform:rotateY(-12deg) rotateX(6deg) translate3d(0,0,0)}14%{transform:rotateY(-8deg) rotateX(4deg) translate3d(0,-2px,0)}19%{transform:rotateY(-14deg) rotateX(7deg) translate3d(0,0,0)}33%{transform:rotateY(-9deg) rotateX(5deg) translate3d(1px,-4px,0)}41%{transform:rotateY(-13deg) rotateX(6deg) translate3d(0,0,0)}57%{transform:rotateY(-7deg) rotateX(3deg) translate3d(-1px,-3px,0)}64%{transform:rotateY(-12deg) rotateX(6deg) translate3d(0,0,0)}79%{transform:rotateY(-15deg) rotateX(7deg) translate3d(1px,-2px,0)}86%{transform:rotateY(-10deg) rotateX(5deg) translate3d(0,0,0)}}
@keyframes logoGlowPulse{0%,100%{opacity:.78;transform:scale(1)}38%{opacity:1;transform:scale(1.05)}72%{opacity:.85;transform:scale(.98)}}
/* about */
.about-grid{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:70px;align-items:start}.about-copy{position:sticky;top:130px}.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.stat{background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);padding:32px;min-height:190px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 12px 36px rgba(4,32,45,.05)}.stat strong{font-size:clamp(2.6rem,5vw,5rem);line-height:1;color:var(--ink);letter-spacing:-.06em}.stat strong i{font-style:normal;color:var(--green)}.stat span{color:var(--muted);max-width:210px}

/* about refinements */
.section-about .about-grid{gap:clamp(96px,10vw,150px)}
.section-about .about-copy{padding-right:clamp(24px,4vw,70px)}
.section-about .about-copy h2{margin-bottom:clamp(28px,3vw,42px)}
.section-about .about-copy .lead{margin-top:0;max-width:560px}
.about-copy-animated.reveal{opacity:0;transform:translate3d(-34px,22px,0);filter:blur(6px)}
.about-copy-animated.reveal.in-view{opacity:1;transform:translate3d(0,0,0);filter:blur(0);transition:opacity .9s cubic-bezier(.19,1,.22,1),transform .9s cubic-bezier(.19,1,.22,1),filter .9s cubic-bezier(.19,1,.22,1)}
.about-stat.reveal{opacity:0;transform:translate3d(38px,34px,0) scale(.975);filter:blur(7px)}
.about-stat.reveal.in-view{opacity:1;transform:translate3d(0,0,0) scale(1);filter:blur(0);transition:opacity .85s cubic-bezier(.19,1,.22,1),transform .85s cubic-bezier(.19,1,.22,1),filter .85s cubic-bezier(.19,1,.22,1)}
.about-stat.reveal:nth-child(1).in-view{transition-delay:.08s}
.about-stat.reveal:nth-child(2).in-view{transition-delay:.18s}
.about-stat.reveal:nth-child(3).in-view{transition-delay:.28s}
.about-stat.reveal:nth-child(4).in-view{transition-delay:.38s}
@media(max-width:820px){
  .section-about .about-grid{gap:42px}
  .section-about .about-copy{padding-right:0}
  .about-copy-animated.reveal,.about-stat.reveal{transform:translate3d(0,26px,0);filter:blur(5px)}
}

/* cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);padding:30px;position:relative;overflow:hidden;min-height:250px;transition:.28s}.card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:transparent}.card-icon{width:52px;height:52px;border-radius:15px;display:grid;place-items:center;background:rgba(4,217,130,.12);color:var(--ink);font:800 1rem ui-monospace,monospace;margin-bottom:34px}.card p{color:var(--muted);font-size:.93rem}.card-link{display:inline-flex;align-items:center;gap:8px;margin-top:12px;font-weight:800;font-size:.85rem}.card-link::after{content:"↗";color:var(--green);font-size:1.1rem}.section-dark .card{background:rgba(255,255,255,.055);border-color:rgba(255,255,255,.12)}.section-dark .card p{color:rgba(255,255,255,.62)}.section-dark .card-icon{background:rgba(4,217,130,.14);color:var(--green)}

/* core expertise refinements */
.section-core-expertise{min-height:100svh;display:flex;align-items:center}
.section-core-expertise .container{width:min(calc(100% - 48px),1340px)}
.section-core-expertise .section-head{margin-bottom:clamp(30px,4vw,48px)}
.section-core-expertise .core-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.section-core-expertise .core-card{min-height:245px;padding:26px}
.section-core-expertise .core-card .card-icon{margin-bottom:24px}
.section-core-expertise .core-card h3{font-size:clamp(1.05rem,1.2vw,1.28rem)}
.section-core-expertise .core-card p{font-size:.88rem;line-height:1.58}
.core-head.reveal{opacity:0;transform:translate3d(-34px,22px,0);filter:blur(6px)}
.core-head.reveal.in-view{opacity:1;transform:translate3d(0,0,0);filter:blur(0);transition:opacity .9s cubic-bezier(.19,1,.22,1),transform .9s cubic-bezier(.19,1,.22,1),filter .9s cubic-bezier(.19,1,.22,1)}
.core-card.reveal{opacity:0;transform:translate3d(34px,34px,0) scale(.975);filter:blur(7px)}
.core-card.reveal.in-view{opacity:1;transform:translate3d(0,0,0) scale(1);filter:blur(0);transition:opacity .85s cubic-bezier(.19,1,.22,1),transform .85s cubic-bezier(.19,1,.22,1),filter .85s cubic-bezier(.19,1,.22,1)}
.core-card.reveal:nth-child(1).in-view{transition-delay:.06s}
.core-card.reveal:nth-child(2).in-view{transition-delay:.12s}
.core-card.reveal:nth-child(3).in-view{transition-delay:.18s}
.core-card.reveal:nth-child(4).in-view{transition-delay:.24s}
.core-card.reveal:nth-child(5).in-view{transition-delay:.30s}
.core-card.reveal:nth-child(6).in-view{transition-delay:.36s}
.core-card.reveal:nth-child(7).in-view{transition-delay:.42s}
.core-card.reveal:nth-child(8).in-view{transition-delay:.48s}
@media(max-width:1180px){
  .section-core-expertise{min-height:auto}
  .section-core-expertise .core-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .section-core-expertise .core-card{min-height:230px}
}
@media(max-width:560px){
  .section-core-expertise .container{width:min(calc(100% - 28px),var(--max))}
  .section-core-expertise .core-cards{grid-template-columns:1fr}
  .core-head.reveal,.core-card.reveal{transform:translate3d(0,26px,0);filter:blur(5px)}
}

/* visual split */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,7vw,100px);align-items:center}.visual{border-radius:var(--radius);overflow:hidden;position:relative;min-height:560px;box-shadow:var(--shadow)}.visual img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.visual-label{position:absolute;left:24px;right:24px;bottom:24px;padding:18px 20px;border-radius:14px;background:rgba(0,43,73,.78);backdrop-filter:blur(12px);color:#fff;display:flex;justify-content:space-between;gap:20px;font-size:.8rem;text-transform:uppercase;letter-spacing:.12em}.visual-label span:last-child{color:var(--green)}.feature-list{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin:30px 0 0;padding:0;list-style:none}.feature-list li{border-top:1px solid var(--line);padding:13px 0;color:var(--ink);font-weight:700;font-size:.9rem}.section-dark .feature-list li{border-color:rgba(255,255,255,.15);color:#fff}

/* training section visual */
.training-visual{
  min-height:620px;
  padding:18px;
  background:linear-gradient(145deg, rgba(0,43,73,.12), rgba(0,43,73,.04));
  display:flex;
  align-items:center;
  justify-content:center;
}
.training-visual img{
  position:relative;
  inset:auto;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  border-radius:20px;
  box-shadow:0 18px 45px rgba(0,0,0,.16);
}
.training-visual{overflow:visible}
@media(max-width:820px){
  .training-visual{min-height:440px;padding:14px}
  .training-visual img{object-position:center top}
}
@media(max-width:560px){
  .training-visual{min-height:320px;padding:8px}
  .training-visual img{border-radius:14px;object-position:center top}
}




/* cybersecurity section refinements */
.section-cybersecurity .cyber-copy .lead{max-width:620px}
.section-cybersecurity .section-actions{margin-top:30px}
.cyber-visual{
  min-height:680px;
  padding:18px;
  background:linear-gradient(145deg, rgba(0,43,73,.12), rgba(0,43,73,.04));
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:visible;
}
.cyber-visual::after{
  content:"";
  position:absolute;
  inset:18px;
  border-radius:22px;
  pointer-events:none;
  background:
    radial-gradient(circle at 50% 50%, transparent 62%, rgba(248,250,252,.18) 82%, rgba(248,250,252,.42) 100%),
    linear-gradient(180deg, rgba(255,255,255,0) 68%, rgba(255,255,255,.14) 100%);
  mix-blend-mode:screen;
}
.cyber-visual img,
.cyber-visual-image{
  position:relative!important;
  inset:auto!important;
  display:block;
  width:auto!important;
  max-width:100%;
  height:auto!important;
  max-height:720px;
  object-fit:contain!important;
  object-position:center!important;
  border-radius:20px;
  box-shadow:0 18px 45px rgba(0,0,0,.16);
}
@media(max-width:1180px){
  .cyber-visual{min-height:600px}
  .cyber-visual img,
  .cyber-visual-image{max-height:640px}
}
@media(max-width:820px){
  .cyber-visual{min-height:520px;padding:14px}
  .cyber-visual::after{inset:14px}
  .cyber-visual img,
  .cyber-visual-image{max-height:560px}
}
@media(max-width:560px){
  .cyber-visual{min-height:420px;padding:8px}
  .cyber-visual::after{inset:8px;border-radius:16px}
  .cyber-visual img,
  .cyber-visual-image{max-height:460px;border-radius:14px}
}


/* section 03 and 04 coordinated animations */
.section-training .training-copy.reveal,
.section-cybersecurity .cyber-copy.reveal{
  opacity:0;
  transform:translate3d(-34px,22px,0);
  filter:blur(6px);
}
.section-training .training-copy.reveal.in-view,
.section-cybersecurity .cyber-copy.reveal.in-view{
  opacity:1;
  transform:translate3d(0,0,0);
  filter:blur(0);
  transition:opacity .9s cubic-bezier(.19,1,.22,1),transform .9s cubic-bezier(.19,1,.22,1),filter .9s cubic-bezier(.19,1,.22,1);
}
.section-training .training-visual.reveal,
.section-cybersecurity .cyber-visual.reveal{
  opacity:0;
  transform:translate3d(38px,34px,0) scale(.975);
  filter:blur(7px);
}
.section-training .training-visual.reveal.in-view,
.section-cybersecurity .cyber-visual.reveal.in-view{
  opacity:1;
  transform:translate3d(0,0,0) scale(1);
  filter:blur(0);
  transition:opacity .95s cubic-bezier(.19,1,.22,1),transform .95s cubic-bezier(.19,1,.22,1),filter .95s cubic-bezier(.19,1,.22,1);
  transition-delay:.12s;
}
@media(max-width:820px){
  .section-training .training-copy.reveal,
  .section-cybersecurity .cyber-copy.reveal,
  .section-training .training-visual.reveal,
  .section-cybersecurity .cyber-visual.reveal{
    transform:translate3d(0,26px,0);
    filter:blur(5px);
  }
}


/* software products */
.software-product{gap:22px}
.product-logo{
  position:relative;
  z-index:2;
  width:min(100%,280px);
  min-height:84px;
  padding:14px 18px;
  border-radius:18px;
  background:rgba(255,255,255,.94);
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 14px 32px rgba(0,0,0,.12);
}
.product-logo img{
  max-width:100%;
  max-height:62px;
  width:auto;
  height:auto;
  object-fit:contain;
  display:block;
}
.product:nth-child(2) .product-logo{background:#fff}
.detail-product-logo{margin-bottom:24px}
@media(max-width:560px){
  .product-logo{width:min(100%,240px);min-height:76px}
  .product-logo img{max-height:54px}
}

/* software and sectors */
.product-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.product{border-radius:var(--radius);padding:42px;min-height:420px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden;background:var(--ink);color:#fff}.product:nth-child(2){background:#dffcf1;color:var(--ink)}.product::after{content:"";position:absolute;width:260px;height:260px;border:1px solid currentColor;opacity:.12;border-radius:50%;right:-70px;top:-70px;box-shadow:0 0 0 55px currentColor,0 0 0 110px currentColor}.product>*{position:relative;z-index:1}.product-kicker{font:800 .74rem ui-monospace,monospace;letter-spacing:.15em;text-transform:uppercase;color:var(--green)}.product:nth-child(2) .product-kicker{color:#087d57}.product h3{font-size:clamp(2.2rem,4vw,4.2rem)}.product p{max-width:470px;color:rgba(255,255,255,.65)}.product:nth-child(2) p{color:var(--muted)}.sector-strip{display:flex;gap:12px;flex-wrap:wrap}.sector-pill{padding:18px 24px;border:1px solid var(--line);border-radius:999px;font-weight:800;background:#fff}.references{margin-top:52px;padding-top:32px;border-top:1px solid var(--line)}.reference-list{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:22px}.reference{border:1px dashed rgba(11,47,66,.26);border-radius:12px;min-height:76px;display:grid;place-items:center;text-align:center;color:var(--muted);font-weight:800;font-size:.8rem;padding:10px;background:rgba(255,255,255,.65)}
/* project band */
.project-band{background:var(--acid);padding:clamp(70px,9vw,115px) 0}.project-band .section-head{margin-bottom:36px}.project-band .eyebrow::before{background:var(--ink)}
/* careers */
.careers-panel{
  position:relative;
  border-radius:var(--radius);
  overflow:hidden;
  background:
    radial-gradient(circle at 0% 0%, rgba(71,185,129,.13), rgba(71,185,129,0) 34%),
    linear-gradient(145deg, #062645 0%, #0b3156 52%, #092341 100%);
  color:#fff;
  display:grid;
  grid-template-columns:1fr .8fr;
  min-height:560px;
  box-shadow:var(--shadow);
}
.careers-panel::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(90deg, rgba(71,185,129,.95) 0 6px, transparent 6px 100%),
    linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,0) 24%);
  opacity:.95;
}
.careers-copy{
  position:relative;
  z-index:2;
  padding:clamp(40px,7vw,92px);
}
.careers-copy .eyebrow::before{background:var(--green)}
.careers-copy h2{max-width:12ch}
.careers-copy .lead{
  max-width:60ch;
  color:rgba(255,255,255,.82);
}
.roles{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:30px 0 34px;
}
.role{
  border:1px solid rgba(71,185,129,.42);
  background:rgba(255,255,255,.05);
  color:#fff;
  border-radius:999px;
  padding:10px 14px;
  font-size:.8rem;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.04);
}
.careers-copy .btn{
  box-shadow:0 10px 28px rgba(0,0,0,.18);
}
.careers-visual{
  position:relative;
  min-height:560px;
  overflow:hidden;
  background:
    radial-gradient(circle at 85% 18%, rgba(71,185,129,.18), rgba(71,185,129,0) 28%),
    linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,0)),
    linear-gradient(135deg, rgba(0,43,73,.18), rgba(0,43,73,.42));
}
.careers-visual img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.careers-visual::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(0,43,73,.04), rgba(0,43,73,.26)),
    radial-gradient(circle at 18% 90%, rgba(71,185,129,.18), rgba(71,185,129,0) 34%);
  pointer-events:none;
}
.careers-visual-badge{
  position:absolute;
  right:24px;
  bottom:24px;
  z-index:2;
  padding:14px 18px;
  border-radius:18px;
  background:rgba(5,24,44,.56);
  border:1px solid rgba(71,185,129,.32);
  backdrop-filter:blur(8px);
  display:grid;
  gap:4px;
  max-width:min(84%, 320px);
  box-shadow:0 14px 28px rgba(0,0,0,.18);
}
.careers-visual-badge span{
  font-family:var(--font-display);
  font-size:.72rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:rgba(255,255,255,.72);
}
.careers-visual-badge strong{
  font-size:.98rem;
  line-height:1.3;
  font-weight:700;
  color:#fff;
}
@media(max-width:980px){
  .careers-panel{grid-template-columns:1fr}
  .careers-visual{min-height:420px}
}
@media(max-width:560px){
  .careers-copy{padding:28px 22px 30px}
  .careers-visual{min-height:320px}
  .careers-visual-badge{
    right:16px;
    left:16px;
    bottom:16px;
    max-width:none;
    padding:12px 14px;
  }
}
/* contact */
.contact-simple-grid{display:grid;grid-template-columns:minmax(0,.78fr) minmax(320px,1.22fr);gap:70px;align-items:center}
.contact-email-card{border-top:1px solid var(--line);margin-top:34px;padding-top:28px;display:grid;gap:18px;justify-items:start}
.email-link{font-size:clamp(1.75rem,3.8vw,3.8rem);line-height:1;font-weight:800;letter-spacing:-.05em;color:var(--ink);text-decoration:none}
.email-link:hover{color:var(--green)}
.contact-photo{min-height:520px;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:var(--dark);position:relative}
.contact-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.contact-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(0,43,73,.08),rgba(0,43,73,.42));mix-blend-mode:multiply}
.contact-photo-caption{position:absolute;left:24px;right:24px;bottom:24px;z-index:2;color:#fff;font-family:var(--font-display);font-size:.72rem;text-transform:uppercase;letter-spacing:.16em;display:flex;justify-content:space-between;gap:18px}

.contact-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:70px}.contact-note{padding:26px 0;border-top:1px solid var(--line);margin-top:34px}.contact-note strong{display:block;margin-bottom:7px}.form{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:grid;gap:8px}.field.full{grid-column:1/-1}.field label{font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.field input,.field textarea,.field select{width:100%;border:1px solid var(--line);border-radius:12px;padding:15px 16px;background:#fff;color:var(--ink);outline:none}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--green);box-shadow:0 0 0 4px rgba(4,217,130,.12)}.field textarea{min-height:150px;resize:vertical}.check{display:flex;gap:10px;align-items:flex-start;font-size:.82rem;color:var(--muted)}.form-status{font-weight:700;color:#087d57;min-height:25px}
/* footer */
.site-footer{background:var(--dark);color:#fff;padding:70px 0 30px}.footer-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:80px}.footer-brand img{width:220px}.footer-brand p{max-width:430px;color:rgba(255,255,255,.55);margin-top:20px}.footer-links{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.footer-links h3{font-size:.82rem;text-transform:uppercase;letter-spacing:.12em;color:var(--green)}.footer-links a{display:block;color:rgba(255,255,255,.62);margin:8px 0;font-size:.88rem}.footer-bottom{display:flex;justify-content:space-between;gap:30px;margin-top:60px;padding-top:22px;border-top:1px solid rgba(255,255,255,.1);font-size:.75rem;color:rgba(255,255,255,.4)}
/* detail */
.detail-hero{padding:calc(var(--header-h) + 100px) 0 95px;background:var(--dark);color:#fff;position:relative;overflow:hidden}.detail-hero::after{content:"";position:absolute;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,var(--green),transparent 65%);opacity:.25;right:-80px;top:-190px}.detail-hero .container{position:relative;z-index:1}.breadcrumbs{font-size:.78rem;color:rgba(255,255,255,.5);margin-bottom:42px}.detail-hero h1{font-size:clamp(3rem,6vw,6rem);max-width:1000px}.detail-content{display:grid;grid-template-columns:.72fr 1.28fr;gap:70px}.detail-aside{position:sticky;top:110px;align-self:start;border-top:3px solid var(--green);padding-top:22px}.detail-aside a{display:block;padding:10px 0;color:var(--muted)}.detail-body h2{font-size:clamp(2rem,3.4vw,3.4rem);margin-top:0}.detail-body h3{margin-top:44px}.detail-body p,.detail-body li{color:var(--muted)}.detail-body ul{padding-left:20px}.detail-cta{margin-top:70px;background:var(--acid);border-radius:var(--radius);padding:40px}.detail-cta h3{margin-top:0}
/* reveal */
.reveal{opacity:0;transform:translateY(24px);transition:.75s cubic-bezier(.2,.7,.2,1)}.reveal.in-view{opacity:1;transform:none}
@media(max-width:1180px){.main-nav{gap:12px;font-size:.74rem}.brand img{width:154px}.main-nav>a:nth-child(7),.main-nav>a:nth-child(8){display:none}.hero-grid{grid-template-columns:minmax(0,1fr) minmax(280px,.62fr);gap:44px}.hero-logo-stack{width:min(100%,420px)}.hero-logo-card{width:min(100%,350px);height:240px}.hero-wordmark{width:min(100%,360px)}.cards{grid-template-columns:repeat(2,1fr)}.reference-list{grid-template-columns:repeat(3,1fr)}}
@media(max-width:820px){:root{--header-h:72px}.brand img{width:148px}.container{width:min(calc(100% - 28px),var(--max))}.menu-toggle{display:block}.main-nav{position:fixed;inset:0;background:var(--dark);display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:90px 35px;gap:20px;transform:translateX(100%);transition:.35s;font-size:1.05rem}.main-nav>a,.site-header.scrolled .main-nav>a{color:#fff!important}.main-nav>a:nth-child(n){display:block}.nav-open .main-nav{transform:none}.main-nav .language-switch{margin-top:15px}.hero{padding:calc(var(--header-h) + 72px) 0 64px;min-height:960px}.hero-grid{grid-template-columns:1fr;gap:30px}.hero-side{justify-items:stretch}.hero-logo-3d{justify-content:flex-start}.hero-logo-stack{width:min(100%,360px)}.hero-logo-card{width:min(72vw,280px);height:220px}.hero-wordmark{width:min(100%,320px)}.hero-meta{grid-template-columns:1fr 1fr;max-width:none}.scroll-cue{display:none}.section-head,.about-grid,.split,.contact-grid,.contact-simple-grid,.detail-content{grid-template-columns:1fr}.about-copy,.detail-aside{position:static}.stats{margin-top:20px}.visual{min-height:440px;order:-1}.contact-photo{min-height:420px}.product-grid,.careers-panel{grid-template-columns:1fr}.careers-visual{min-height:360px}.footer-grid{grid-template-columns:1fr}.footer-links{grid-template-columns:repeat(3,1fr)}.section-number{top:35px}.detail-aside{display:none}}
@media(max-width:560px){h1{font-size:clamp(2.8rem,15vw,4.5rem)}.hero{min-height:860px}.hero-wave-canvas{opacity:.72}.hero-logo-stack{width:min(100%,320px)}.hero-logo-card{width:min(82vw,240px);height:180px}.hero-wordmark{width:min(100%,280px)}.hero-meta{grid-template-columns:1fr}.hero-meta-item{padding:14px 0}.section{padding:75px 0}.stats,.cards,.product-grid,.form{grid-template-columns:1fr}.stat{min-height:150px}.feature-list{grid-template-columns:1fr}.visual{min-height:330px}.contact-photo{min-height:300px}.email-link{font-size:clamp(1.45rem,10vw,2.3rem)}.product{min-height:360px;padding:30px}.reference-list{grid-template-columns:repeat(2,1fr)}.footer-links{grid-template-columns:1fr 1fr}.footer-bottom{flex-direction:column}.field.full{grid-column:auto}.careers-copy{padding:34px 25px}.section-head{gap:15px;margin-bottom:34px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}*{animation:none!important;transition:none!important}}


/* reference logos */
.reference-logo-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
  margin-top:24px;
}
.reference-logo{
  min-height:110px;
  border-radius:20px;
  background:rgba(255,255,255,.88);
  border:1px solid rgba(0,43,73,.08);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  box-shadow:0 12px 28px rgba(0,0,0,.06);
}
.reference-logo img{
  max-width:100%;
  max-height:46px;
  width:auto;
  height:auto;
  object-fit:contain;
  display:block;
  opacity:.98;
}
.reference-logo-text span{
  font-family:Oxanium, Inter, sans-serif;
  font-weight:700;
  letter-spacing:.02em;
  color:var(--ink);
  text-align:center;
  font-size:1rem;
}
.references .muted{max-width:760px}
@media(max-width:1100px){
  .reference-logo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
  .reference-logo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .reference-logo{min-height:96px;padding:14px}
  .reference-logo img{max-height:40px}
}
@media(max-width:520px){
  .reference-logo-grid{grid-template-columns:1fr}
}



/* reference logo refinements */
.reference-logo-thales img{max-height:64px}
.reference-logo-raicam img{max-height:58px}
@media(max-width:760px){
  .reference-logo-thales img{max-height:56px}
  .reference-logo-raicam img{max-height:50px}
}


.reference-logo-name{
  background:rgba(255,255,255,.88);
  border:1px solid rgba(0,43,73,.08);
  box-shadow:0 12px 28px rgba(0,0,0,.06);
}
.reference-logo-name span{
  font-family:Oxanium, Inter, sans-serif;
  font-weight:700;
  letter-spacing:.02em;
  color:var(--ink);
  text-align:center;
  font-size:1rem;
}


/* section 07 sectors coordinated animations */
.section-sectors .sectors-head.reveal,
.section-sectors .references-intro.reveal{
  opacity:0;
  transform:translate3d(-34px,22px,0);
  filter:blur(6px);
}
.section-sectors .sectors-head.reveal.in-view,
.section-sectors .references-intro.reveal.in-view{
  opacity:1;
  transform:translate3d(0,0,0);
  filter:blur(0);
  transition:opacity .9s cubic-bezier(.19,1,.22,1),transform .9s cubic-bezier(.19,1,.22,1),filter .9s cubic-bezier(.19,1,.22,1);
}
.section-sectors .references-intro.reveal.in-view{transition-delay:.08s}

.section-sectors .sector-pill.reveal{
  opacity:0;
  transform:translate3d(0,24px,0);
  filter:blur(5px);
}
.section-sectors .sector-pill.reveal.in-view{
  opacity:1;
  transform:translate3d(0,0,0);
  filter:blur(0);
  transition:opacity .72s cubic-bezier(.19,1,.22,1),transform .72s cubic-bezier(.19,1,.22,1),filter .72s cubic-bezier(.19,1,.22,1);
}
.section-sectors .sector-pill.reveal:nth-child(1).in-view{transition-delay:.06s}
.section-sectors .sector-pill.reveal:nth-child(2).in-view{transition-delay:.12s}
.section-sectors .sector-pill.reveal:nth-child(3).in-view{transition-delay:.18s}
.section-sectors .sector-pill.reveal:nth-child(4).in-view{transition-delay:.24s}
.section-sectors .sector-pill.reveal:nth-child(5).in-view{transition-delay:.30s}

.section-sectors .reference-logo-card.reveal{
  opacity:0;
  transform:translate3d(34px,34px,0) scale(.975);
  filter:blur(7px);
}
.section-sectors .reference-logo-card.reveal.in-view{
  opacity:1;
  transform:translate3d(0,0,0) scale(1);
  filter:blur(0);
  transition:opacity .85s cubic-bezier(.19,1,.22,1),transform .85s cubic-bezier(.19,1,.22,1),filter .85s cubic-bezier(.19,1,.22,1);
}
.section-sectors .reference-logo-card.reveal:nth-child(1).in-view{transition-delay:.05s}
.section-sectors .reference-logo-card.reveal:nth-child(2).in-view{transition-delay:.10s}
.section-sectors .reference-logo-card.reveal:nth-child(3).in-view{transition-delay:.15s}
.section-sectors .reference-logo-card.reveal:nth-child(4).in-view{transition-delay:.20s}
.section-sectors .reference-logo-card.reveal:nth-child(5).in-view{transition-delay:.25s}
.section-sectors .reference-logo-card.reveal:nth-child(6).in-view{transition-delay:.30s}
.section-sectors .reference-logo-card.reveal:nth-child(7).in-view{transition-delay:.35s}
.section-sectors .reference-logo-card.reveal:nth-child(8).in-view{transition-delay:.40s}
.section-sectors .reference-logo-card.reveal:nth-child(9).in-view{transition-delay:.45s}
.section-sectors .reference-logo-card.reveal:nth-child(10).in-view{transition-delay:.50s}
.section-sectors .reference-logo-card.reveal:nth-child(11).in-view{transition-delay:.55s}
.section-sectors .reference-logo-card.reveal:nth-child(12).in-view{transition-delay:.60s}
.section-sectors .reference-logo-card.reveal:nth-child(13).in-view{transition-delay:.65s}
.section-sectors .reference-logo-card.reveal:nth-child(14).in-view{transition-delay:.70s}
.section-sectors .reference-logo-card.reveal:nth-child(15).in-view{transition-delay:.75s}

@media(max-width:820px){
  .section-sectors .sectors-head.reveal,
  .section-sectors .references-intro.reveal,
  .section-sectors .sector-pill.reveal,
  .section-sectors .reference-logo-card.reveal{
    transform:translate3d(0,26px,0);
    filter:blur(5px);
  }
  .section-sectors .reference-logo-card.reveal.in-view{transition-delay:.06s}
}
@media(prefers-reduced-motion:reduce){
  .section-sectors .sectors-head.reveal,
  .section-sectors .references-intro.reveal,
  .section-sectors .sector-pill.reveal,
  .section-sectors .reference-logo-card.reveal{
    opacity:1;
    transform:none;
    filter:none;
    transition:none;
  }
}


/* laptop optimisation: 13/14 inch screens */
@media (max-width:1440px) and (max-height:920px){
  :root{
    --max:1180px;
    --radius:28px;
    --radius-sm:20px;
  }

  .site-header .container,
  .container{
    width:min(calc(100% - 40px), var(--max));
  }

  .site-header{
    min-height:72px;
  }
  .nav-wrap{
    min-height:72px;
  }
  .brand img{
    max-width:176px;
  }
  .main-nav{
    gap:16px;
  }
  .main-nav a{
    font-size:.72rem;
    letter-spacing:.08em;
  }

  .section{
    padding:clamp(58px,6.5vw,84px) 0;
  }
  .section-number{
    top:34px;
    right:34px;
    font-size:clamp(4.2rem,9vw,8rem);
    opacity:.05;
  }
  .section-head{
    margin-bottom:30px;
    gap:22px;
  }
  .section-head h2,
  .careers-copy h2,
  .contact-simple-grid h2{
    font-size:clamp(2.05rem,4.4vw,4rem);
  }
  .lead{
    font-size:clamp(1rem,1.35vw,1.18rem);
  }

  .hero{
    min-height:760px;
    padding-top:88px;
  }
  .hero-grid{
    grid-template-columns:minmax(0,1fr) minmax(360px,.8fr);
    gap:clamp(28px,4vw,60px);
    min-height:calc(760px - 88px);
  }
  .hero-copy h1{
    font-size:clamp(2.65rem,5.7vw,5.1rem);
    max-width:900px;
  }
  .hero-logo-3d{
    width:min(37vw,380px);
  }
  .hero-mark-wrap{
    width:min(34vw,330px);
  }
  .hero-wordmark{
    width:min(27vw,260px);
  }
  .hero-meta{
    margin-top:28px;
  }
  .hero-meta-item{
    padding:14px 0;
  }

  .section-about .about-grid{
    gap:clamp(56px,7vw,92px);
  }
  .stat{
    min-height:158px;
    padding:24px;
  }
  .stat strong{
    font-size:clamp(2.3rem,4.2vw,4.4rem);
  }

  .section-core-expertise{
    min-height:auto;
  }
  .section-core-expertise .container{
    width:min(calc(100% - 40px),1240px);
  }
  .section-core-expertise .core-cards{
    gap:13px;
  }
  .section-core-expertise .core-card{
    min-height:205px;
    padding:20px;
  }
  .section-core-expertise .core-card .card-icon{
    width:44px;
    height:44px;
    margin-bottom:18px;
    border-radius:13px;
  }
  .section-core-expertise .core-card h3{
    font-size:1.02rem;
  }
  .section-core-expertise .core-card p{
    font-size:.8rem;
    line-height:1.48;
  }

  .split{
    gap:clamp(36px,5vw,70px);
  }
  .visual{
    min-height:440px;
  }
  .training-visual{
    min-height:520px;
  }
  .training-visual img,
  .training-visual-image{
    max-height:560px;
  }
  .cyber-visual{
    min-height:520px;
  }
  .cyber-visual img,
  .cyber-visual-image{
    max-height:560px;
  }

  .product{
    min-height:390px;
    padding:32px;
  }

  .project-band{
    padding:clamp(56px,6.5vw,82px) 0;
  }
  .project-band .cards .card{
    min-height:172px;
    padding:22px;
  }

  .reference-logo-grid{
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:13px;
  }
  .reference-logo{
    min-height:88px;
    padding:14px;
    border-radius:18px;
  }
  .reference-logo img{
    max-height:38px;
  }
  .reference-logo-thales img{
    max-height:52px;
  }
  .reference-logo-raicam img{
    max-height:48px;
  }

  .careers-panel{
    min-height:480px;
    grid-template-columns:1fr .92fr;
  }
  .careers-copy{
    padding:clamp(34px,5.4vw,68px);
  }
  .careers-visual{
    min-height:480px;
  }

  .contact-simple-grid{
    gap:44px;
  }
  .contact-photo{
    min-height:420px;
  }
}

@media (max-width:1280px) and (max-height:860px){
  .site-header .container,
  .container{
    width:min(calc(100% - 32px),1120px);
  }
  .main-nav{
    gap:11px;
  }
  .main-nav a{
    font-size:.68rem;
    letter-spacing:.06em;
  }
  .brand img{
    max-width:158px;
  }

  .hero{
    min-height:700px;
  }
  .hero-grid{
    min-height:calc(700px - 86px);
    grid-template-columns:minmax(0,1.08fr) minmax(300px,.72fr);
  }
  .hero-copy h1{
    font-size:clamp(2.35rem,5.25vw,4.35rem);
  }
  .hero-copy .lead{
    max-width:620px;
  }
  .hero-logo-3d{
    width:min(34vw,330px);
  }
  .hero-meta-item strong{
    font-size:.8rem;
  }

  .section{
    padding:56px 0;
  }
  .cards{
    gap:14px;
  }
  .card{
    min-height:220px;
    padding:22px;
  }

  .section-core-expertise .core-cards{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
  .section-core-expertise .core-card{
    min-height:190px;
    padding:18px;
  }
  .section-core-expertise .core-card p{
    font-size:.76rem;
  }

  .feature-list{
    gap:10px;
  }
  .feature-list li{
    padding:11px 12px;
  }

  .reference-logo-grid{
    grid-template-columns:repeat(5,minmax(0,1fr));
  }
  .reference-logo{
    min-height:82px;
  }

  .roles{
    margin:22px 0 26px;
  }
  .role{
    padding:8px 11px;
  }
}

@media (max-width:1100px){
  .main-nav{
    position:fixed;
    top:72px;
    left:16px;
    right:16px;
    display:none;
    grid-template-columns:1fr;
    gap:0;
    padding:18px;
    border-radius:20px;
    background:rgba(6,28,47,.96);
    box-shadow:0 18px 40px rgba(0,0,0,.25);
  }
  .main-nav.open{
    display:grid;
  }
  .main-nav a{
    padding:12px 8px;
    color:#fff;
    border-bottom:1px solid rgba(255,255,255,.08);
  }
  .language-switch{
    padding-top:12px;
  }
  .menu-toggle{
    display:block;
  }
  .site-header.scrolled .menu-toggle span,
  .site-header.scrolled .menu-toggle span::before,
  .site-header.scrolled .menu-toggle span::after{
    background:var(--ink);
  }
}

@media (max-width:1024px){
  .hero-grid,
  .about-grid,
  .split,
  .contact-simple-grid{
    grid-template-columns:1fr;
  }
  .hero{
    min-height:auto;
    padding:118px 0 72px;
  }
  .hero-grid{
    min-height:auto;
  }
  .hero-logo-3d{
    width:min(62vw,360px);
    margin-inline:auto;
  }
  .hero-mark-wrap{
    width:min(58vw,320px);
  }
  .hero-wordmark{
    width:min(46vw,250px);
  }
  .about-copy{
    position:static;
  }
  .section-core-expertise .core-cards{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .reference-logo-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}


/* laptop refinement v47 */
@media (max-width:1320px){
  :root{
    --header-h:68px;
    --max:1120px;
  }

  .site-header,
  .nav-wrap{
    height:68px;
    min-height:68px;
  }

  .brand img{
    width:154px;
    max-width:154px;
  }

  .menu-toggle{
    display:block;
    color:#fff;
    flex:0 0 auto;
  }
  .site-header.scrolled .menu-toggle{
    color:var(--ink);
  }
  body.nav-open .site-header{
    background:rgba(0,43,73,.96);
    border-color:rgba(255,255,255,.08);
    backdrop-filter:blur(18px);
  }
  body.nav-open .site-header .brand-light{
    display:block;
  }
  body.nav-open .site-header .brand-dark{
    display:none;
  }
  body.nav-open .site-header .menu-toggle{
    color:#fff;
  }

  .main-nav{
    position:fixed;
    top:76px;
    left:20px;
    right:20px;
    display:none;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:0;
    padding:14px;
    border-radius:22px;
    background:rgba(0,43,73,.97);
    box-shadow:0 22px 54px rgba(0,0,0,.30);
    border:1px solid rgba(255,255,255,.10);
    white-space:normal;
    max-height:calc(100svh - 98px);
    overflow:auto;
  }
  body.nav-open .main-nav{
    display:grid;
  }
  .main-nav>a{
    color:#fff!important;
    padding:12px 14px;
    border-bottom:1px solid rgba(255,255,255,.08);
    font-size:.78rem;
    letter-spacing:.08em;
  }
  .main-nav>a::after{
    display:none;
  }
  .main-nav>a:hover{
    color:var(--green)!important;
  }
  .language-switch{
    margin-left:0;
    padding:12px 8px 2px;
    grid-column:1/-1;
    justify-content:flex-start;
  }
  .language-switch a{
    color:#fff!important;
  }

  .container{
    width:min(calc(100% - 36px),var(--max));
  }

  .hero{
    min-height:auto;
    padding:112px 0 72px;
  }
  .hero-grid{
    min-height:auto;
    grid-template-columns:minmax(0,1.05fr) minmax(300px,.72fr);
    gap:34px;
  }
  .hero-copy h1{
    font-size:clamp(2.45rem,5vw,4.4rem);
    line-height:1.02;
    margin-bottom:22px;
  }
  .hero-copy .lead{
    font-size:1.05rem;
    max-width:620px;
  }
  .hero-actions{
    margin-top:28px;
  }
  .hero-logo-3d{
    width:min(31vw,300px);
  }
  .hero-mark-wrap{
    width:min(28vw,270px);
  }
  .hero-wordmark{
    width:min(23vw,220px);
  }
  .hero-meta{
    margin-top:24px;
  }
  .hero-meta-item{
    padding:11px 0;
  }
  .hero-meta-item strong{
    font-size:.78rem;
  }

  .section{
    padding:64px 0;
  }
  .section-number{
    top:28px;
    right:28px;
    font-size:clamp(3.8rem,8vw,7rem);
  }
  .section-head{
    grid-template-columns:minmax(0,1fr) minmax(260px,.78fr);
    gap:26px;
    margin-bottom:30px;
  }
  h2,
  .section-head h2,
  .careers-copy h2{
    font-size:clamp(2rem,4vw,3.5rem);
  }
  .lead{
    font-size:1.04rem;
  }

  .about-grid{
    grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);
    gap:54px;
  }
  .section-about .about-grid{
    gap:54px;
  }
  .stat{
    min-height:145px;
    padding:22px;
  }
  .stat strong{
    font-size:clamp(2.25rem,4vw,3.8rem);
  }

  .section-core-expertise .container{
    width:min(calc(100% - 36px),1160px);
  }
  .section-core-expertise .section-head{
    margin-bottom:28px;
  }
  .section-core-expertise .core-cards{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
  }
  .section-core-expertise .core-card{
    min-height:198px;
    padding:18px;
  }
  .section-core-expertise .core-card .card-icon{
    width:42px;
    height:42px;
    margin-bottom:16px;
  }
  .section-core-expertise .core-card h3{
    font-size:1rem;
  }
  .section-core-expertise .core-card p{
    font-size:.79rem;
    line-height:1.46;
  }

  .split{
    grid-template-columns:minmax(0,.9fr) minmax(0,1fr);
    gap:42px;
  }
  .visual{
    min-height:390px;
  }
  .training-visual,
  .cyber-visual{
    min-height:460px;
  }
  .training-visual img,
  .training-visual-image,
  .cyber-visual img,
  .cyber-visual-image{
    max-height:500px;
  }

  .product-grid{
    gap:18px;
  }
  .product{
    min-height:340px;
    padding:28px;
  }

  .project-band{
    padding:62px 0;
  }
  .project-band .cards{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
  }
  .project-band .cards .card{
    min-height:150px;
    padding:18px;
  }
  .project-band .cards .card-icon{
    margin-bottom:18px;
  }
  .project-band .cards h3{
    font-size:1rem;
  }

  .reference-logo-grid{
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:12px;
  }
  .reference-logo{
    min-height:78px;
    padding:12px;
    border-radius:16px;
  }
  .reference-logo img{
    max-height:34px;
  }
  .reference-logo-thales img{
    max-height:48px;
  }
  .reference-logo-raicam img{
    max-height:42px;
  }

  .careers-panel{
    min-height:440px;
    grid-template-columns:1fr .86fr;
  }
  .careers-copy{
    padding:40px;
  }
  .careers-copy h2{
    max-width:13ch;
  }
  .careers-copy .lead{
    font-size:1rem;
  }
  .roles{
    margin:20px 0 24px;
    gap:8px;
  }
  .role{
    padding:7px 10px;
    font-size:.74rem;
  }
  .careers-visual{
    min-height:440px;
  }

  .contact-simple-grid{
    grid-template-columns:minmax(0,.85fr) minmax(300px,1fr);
    gap:38px;
  }
  .contact-photo{
    min-height:380px;
  }
  .email-link{
    font-size:clamp(1.55rem,3.4vw,3rem);
  }
}

@media (max-width:1180px){
  .hero-grid,
  .about-grid,
  .split,
  .contact-simple-grid{
    grid-template-columns:1fr;
  }
  .hero-logo-3d{
    display:none;
  }
  .section-head{
    grid-template-columns:1fr;
    align-items:start;
  }
  .about-copy{
    position:static;
  }
  .stats{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .section-core-expertise .core-cards{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .project-band .cards{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .reference-logo-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .careers-panel{
    grid-template-columns:1fr;
  }
  .careers-visual{
    min-height:340px;
  }
}

@media (max-width:820px){
  .main-nav{
    grid-template-columns:1fr;
    left:14px;
    right:14px;
    top:74px;
  }
  .container{
    width:min(calc(100% - 28px),var(--max));
  }
  .stats,
  .section-core-expertise .core-cards,
  .project-band .cards,
  .reference-logo-grid{
    grid-template-columns:1fr;
  }
}


/* laptop/mobile menu refinement v48 */
@media (max-width:1320px){
  .site-header{
    height:66px;
  }
  .nav-wrap{
    height:66px;
    min-height:66px;
  }
  .brand img{
    width:148px;
    max-width:148px;
  }

  .main-nav{
    position:fixed!important;
    top:74px!important;
    right:22px!important;
    left:auto!important;
    width:min(470px, calc(100vw - 44px))!important;
    display:none!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    align-items:stretch!important;
    justify-content:start!important;
    gap:6px!important;
    padding:10px!important;
    border-radius:18px!important;
    background:rgba(0,43,73,.98)!important;
    border:1px solid rgba(255,255,255,.12)!important;
    box-shadow:0 18px 46px rgba(0,0,0,.28)!important;
    max-height:none!important;
    overflow:visible!important;
    transform:none!important;
    transition:opacity .22s ease, transform .22s ease!important;
  }

  body.nav-open .main-nav,
  .nav-open .main-nav{
    display:grid!important;
    transform:none!important;
  }

  .main-nav>a,
  .site-header.scrolled .main-nav>a{
    display:flex!important;
    align-items:center!important;
    min-height:34px!important;
    padding:8px 10px!important;
    border:0!important;
    border-radius:11px!important;
    background:rgba(255,255,255,.045)!important;
    color:#fff!important;
    font-size:.70rem!important;
    line-height:1.15!important;
    letter-spacing:.065em!important;
    white-space:normal!important;
  }

  .main-nav>a:hover,
  .main-nav>a:focus-visible{
    background:rgba(4,217,130,.14)!important;
    color:var(--green)!important;
  }

  .main-nav>a::after{
    display:none!important;
  }

  .main-nav>a:nth-child(n){
    display:flex!important;
  }

  .language-switch,
  .main-nav .language-switch{
    grid-column:1/-1!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:8px!important;
    margin:4px 0 0!important;
    padding:8px 0 0!important;
    border-top:1px solid rgba(255,255,255,.10)!important;
    overflow:visible!important;
  }

  .language-switch a,
  .site-header.scrolled .language-switch a,
  .site-header:not(.scrolled) .language-switch a{
    flex:0 0 30px!important;
    width:30px!important;
    height:30px!important;
    min-width:30px!important;
    min-height:30px!important;
    border-radius:999px!important;
    padding:0!important;
    display:grid!important;
    place-items:center!important;
    overflow:visible!important;
    color:#fff!important;
    background:rgba(255,255,255,.06)!important;
    border:1px solid rgba(255,255,255,.38)!important;
    opacity:1!important;
    font-size:.64rem!important;
    line-height:1!important;
  }

  .language-switch a.active,
  .language-switch a:hover{
    background:var(--green)!important;
    border-color:var(--green)!important;
    color:var(--dark)!important;
  }

  .menu-toggle{
    display:block!important;
    width:42px!important;
    height:42px!important;
    color:#fff;
  }
  .site-header.scrolled .menu-toggle{
    color:var(--ink)!important;
  }
  body.nav-open .site-header{
    background:rgba(0,43,73,.98)!important;
  }
  body.nav-open .site-header .menu-toggle{
    color:#fff!important;
  }

  .hero{
    padding-top:104px;
    padding-bottom:64px;
  }
  .hero-copy h1{
    font-size:clamp(2.3rem,4.8vw,4.05rem);
  }
  .hero-copy .lead{
    font-size:1rem;
  }
  .section{
    padding:58px 0;
  }
  .section-head{
    margin-bottom:26px;
  }
  h2,
  .section-head h2,
  .careers-copy h2{
    font-size:clamp(1.9rem,3.75vw,3.25rem);
  }
  .card{
    min-height:205px;
  }
}

@media (max-width:900px){
  .main-nav{
    top:72px!important;
    left:14px!important;
    right:14px!important;
    width:auto!important;
    grid-template-columns:1fr!important;
    gap:4px!important;
    padding:10px!important;
    max-height:calc(100svh - 88px)!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    transform:none!important;
  }

  body.nav-open .main-nav,
  .nav-open .main-nav{
    display:grid!important;
    transform:none!important;
  }

  .main-nav>a,
  .site-header.scrolled .main-nav>a{
    min-height:36px!important;
    padding:9px 12px!important;
    font-size:.76rem!important;
  }

  .language-switch,
  .main-nav .language-switch{
    justify-content:flex-start!important;
    padding:8px 0 2px!important;
    margin-top:4px!important;
  }

  .language-switch a{
    flex-basis:32px!important;
    width:32px!important;
    height:32px!important;
    min-width:32px!important;
    min-height:32px!important;
  }

  .hero{
    padding-top:104px;
  }
}

@media (max-width:560px){
  .site-header,
  .nav-wrap{
    height:64px;
    min-height:64px;
  }
  .brand img{
    width:138px!important;
    max-width:138px!important;
  }
  .main-nav{
    top:70px!important;
    left:10px!important;
    right:10px!important;
    padding:9px!important;
    border-radius:16px!important;
  }
  .main-nav>a{
    min-height:34px!important;
    padding:8px 10px!important;
    font-size:.72rem!important;
  }
  .language-switch{
    justify-content:center!important;
  }
  .hero{
    padding-top:96px;
    padding-bottom:54px;
  }
  .hero-copy h1{
    font-size:clamp(2.15rem,11vw,3.15rem);
  }
  .hero-actions{
    gap:10px;
  }
  .btn{
    padding:12px 16px;
  }
}


/* v49 laptop section density + robust smartphone menu */
@media (min-width:1181px) and (max-width:1440px) and (max-height:920px){
  :root{
    --max:1140px;
  }

  .container{
    width:min(calc(100% - 34px),var(--max));
  }

  .section{
    min-height:calc(100svh - 66px);
    padding:46px 0;
    display:flex;
    align-items:center;
  }
  .section > .container{
    width:min(calc(100% - 34px),var(--max));
  }
  .section-number{
    top:22px;
    right:26px;
    font-size:clamp(3.6rem,7.2vw,6.4rem);
  }

  .section-head{
    margin-bottom:22px;
  }
  h2,
  .section-head h2,
  .careers-copy h2,
  .contact-simple-grid h2{
    font-size:clamp(1.85rem,3.35vw,3rem);
    margin-bottom:16px;
  }
  h3{
    font-size:clamp(1.08rem,1.55vw,1.55rem);
  }
  .lead{
    font-size:.98rem;
    line-height:1.52;
  }
  .eyebrow{
    font-size:.68rem;
  }

  .hero{
    min-height:calc(100svh);
    padding:94px 0 46px;
  }
  .hero-grid{
    min-height:calc(100svh - 140px);
    grid-template-columns:minmax(0,1.1fr) minmax(300px,.65fr);
    gap:30px;
    align-items:center;
  }
  .hero-copy h1{
    font-size:clamp(2.25rem,4.7vw,3.85rem);
    margin-bottom:18px;
  }
  .hero-actions{
    margin-top:22px;
  }
  .hero-logo-3d{
    width:min(28vw,270px);
  }
  .hero-mark-wrap{
    width:min(25vw,245px);
  }
  .hero-wordmark{
    width:min(20vw,190px);
  }
  .hero-meta{
    margin-top:18px;
  }
  .hero-meta-item{
    padding:8px 0;
  }

  .about-grid{
    grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);
    gap:42px!important;
    align-items:center;
  }
  .about-copy{
    position:static;
  }
  .stats{
    gap:12px;
  }
  .stat{
    min-height:126px;
    padding:18px;
    border-radius:18px;
  }
  .stat strong{
    font-size:clamp(2rem,3.5vw,3.25rem);
  }
  .stat span{
    font-size:.82rem;
  }

  .section-core-expertise .container{
    width:min(calc(100% - 34px),1180px);
  }
  .section-core-expertise .section-head{
    margin-bottom:20px;
  }
  .section-core-expertise .core-cards{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
  }
  .section-core-expertise .core-card{
    min-height:156px;
    padding:16px;
    border-radius:18px;
  }
  .section-core-expertise .core-card .card-icon{
    width:36px;
    height:36px;
    margin-bottom:12px;
    border-radius:11px;
    font-size:.82rem;
  }
  .section-core-expertise .core-card h3{
    font-size:.92rem;
    margin-bottom:7px;
  }
  .section-core-expertise .core-card p{
    font-size:.71rem;
    line-height:1.38;
  }

  .split{
    grid-template-columns:minmax(0,.9fr) minmax(300px,.9fr);
    gap:34px;
    align-items:center;
  }
  .visual{
    min-height:340px;
    border-radius:24px;
  }
  .training-visual,
  .cyber-visual{
    min-height:360px;
    padding:12px;
  }
  .training-visual img,
  .training-visual-image,
  .cyber-visual img,
  .cyber-visual-image{
    max-height:390px;
    border-radius:16px;
  }
  .feature-list{
    gap:9px;
    margin:24px 0;
  }
  .feature-list li{
    padding:9px 11px;
    font-size:.79rem;
  }

  .product-grid{
    gap:16px;
  }
  .product{
    min-height:292px;
    padding:24px;
    border-radius:24px;
  }
  .product-logo{
    min-height:66px;
    width:min(100%,230px);
    padding:10px 14px;
  }
  .product-logo img{
    max-height:48px;
  }

  .project-band{
    min-height:calc(100svh - 66px);
    display:flex;
    align-items:center;
    padding:42px 0;
  }
  .project-band .section-head{
    margin-bottom:20px;
  }
  .project-band .cards{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
  }
  .project-band .cards .card{
    min-height:118px;
    padding:16px;
    border-radius:18px;
  }
  .project-band .cards .card-icon{
    width:36px;
    height:36px;
    margin-bottom:12px;
    font-size:.78rem;
  }
  .project-band .cards h3{
    font-size:.92rem;
    line-height:1.18;
  }

  .sector-strip{
    gap:8px;
    margin-bottom:18px;
  }
  .sector-pill{
    padding:9px 13px;
    font-size:.75rem;
  }
  .references h3{
    margin-bottom:8px;
  }
  .reference-logo-grid{
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:10px;
    margin-top:16px;
  }
  .reference-logo{
    min-height:66px;
    padding:10px;
    border-radius:14px;
  }
  .reference-logo img{
    max-height:29px;
  }
  .reference-logo-thales img{
    max-height:42px;
  }
  .reference-logo-raicam img{
    max-height:37px;
  }

  .careers-panel{
    min-height:380px;
    grid-template-columns:minmax(0,1fr) minmax(300px,.82fr);
  }
  .careers-copy{
    padding:34px;
  }
  .careers-copy h2{
    max-width:none;
  }
  .careers-copy .lead{
    font-size:.95rem;
  }
  .roles{
    margin:16px 0 20px;
    gap:7px;
  }
  .role{
    padding:6px 9px;
    font-size:.7rem;
  }
  .careers-visual{
    min-height:380px;
  }
  .careers-visual-badge{
    right:18px;
    bottom:18px;
    padding:10px 13px;
  }

  .contact-simple-grid{
    grid-template-columns:minmax(0,.9fr) minmax(320px,.95fr);
    gap:34px;
  }
  .contact-photo{
    min-height:340px;
  }
  .contact-email-card{
    margin-top:24px;
    padding-top:20px;
  }
}

/* keep text + image side-by-side on small laptops/tablets, not only on 4K */
@media (min-width:961px) and (max-width:1180px){
  .split,
  .contact-simple-grid{
    grid-template-columns:minmax(0,.92fr) minmax(300px,.88fr)!important;
    gap:30px!important;
    align-items:center;
  }
  .careers-panel{
    grid-template-columns:minmax(0,1fr) minmax(300px,.8fr)!important;
  }
  .careers-visual{
    min-height:360px!important;
  }
  .training-visual,
  .cyber-visual{
    min-height:350px!important;
  }
  .training-visual img,
  .training-visual-image,
  .cyber-visual img,
  .cyber-visual-image{
    max-height:380px!important;
  }
}

/* definitive mobile menu override */
@media (max-width:820px){
  .site-header{
    height:64px!important;
    min-height:64px!important;
  }
  .nav-wrap{
    height:64px!important;
    min-height:64px!important;
  }
  .brand img{
    width:136px!important;
    max-width:136px!important;
  }
  .menu-toggle{
    display:block!important;
    width:42px!important;
    height:42px!important;
    color:#fff!important;
    z-index:1003!important;
  }
  .site-header.scrolled .menu-toggle{
    color:var(--ink)!important;
  }
  body.nav-open .site-header,
  body.nav-open .site-header.scrolled{
    background:rgba(0,43,73,.99)!important;
    border-color:rgba(255,255,255,.10)!important;
  }
  body.nav-open .site-header .brand-light{
    display:block!important;
  }
  body.nav-open .site-header .brand-dark{
    display:none!important;
  }
  body.nav-open .site-header .menu-toggle{
    color:#fff!important;
  }

  .main-nav{
    position:fixed!important;
    top:64px!important;
    left:0!important;
    right:0!important;
    bottom:auto!important;
    inset:auto 0 auto 0!important;
    width:100vw!important;
    height:auto!important;
    min-height:auto!important;
    max-height:calc(100svh - 64px)!important;
    display:none!important;
    grid-template-columns:1fr!important;
    gap:3px!important;
    padding:12px 14px 16px!important;
    margin:0!important;
    border-radius:0 0 22px 22px!important;
    background:rgba(0,43,73,.99)!important;
    border:0!important;
    border-top:1px solid rgba(255,255,255,.10)!important;
    box-shadow:0 22px 42px rgba(0,0,0,.26)!important;
    transform:none!important;
    translate:none!important;
    opacity:1!important;
    visibility:visible!important;
    overflow-y:auto!important;
    z-index:1002!important;
  }
  body.nav-open .main-nav,
  .main-nav.open,
  .nav-open .main-nav{
    display:grid!important;
    transform:none!important;
    opacity:1!important;
    visibility:visible!important;
  }
  .main-nav>a,
  .site-header.scrolled .main-nav>a,
  .site-header:not(.scrolled) .main-nav>a{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    min-height:34px!important;
    padding:8px 10px!important;
    border:0!important;
    border-radius:10px!important;
    background:rgba(255,255,255,.055)!important;
    color:#fff!important;
    font-size:.72rem!important;
    line-height:1.15!important;
    letter-spacing:.055em!important;
    white-space:normal!important;
    opacity:1!important;
    visibility:visible!important;
  }
  .main-nav>a:nth-child(n){
    display:flex!important;
  }
  .main-nav>a::after{
    display:none!important;
  }
  .language-switch,
  .main-nav .language-switch{
    grid-column:1/-1!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:9px!important;
    margin:6px 0 0!important;
    padding:10px 0 0!important;
    border-top:1px solid rgba(255,255,255,.12)!important;
    overflow:visible!important;
  }
  .language-switch a,
  .site-header.scrolled .language-switch a,
  .site-header:not(.scrolled) .language-switch a{
    display:grid!important;
    place-items:center!important;
    flex:0 0 32px!important;
    width:32px!important;
    min-width:32px!important;
    height:32px!important;
    min-height:32px!important;
    padding:0!important;
    border-radius:999px!important;
    background:rgba(255,255,255,.07)!important;
    border:1px solid rgba(255,255,255,.42)!important;
    color:#fff!important;
    opacity:1!important;
    overflow:visible!important;
    font-size:.64rem!important;
    line-height:1!important;
  }
  .language-switch a.active,
  .language-switch a:hover{
    background:var(--green)!important;
    border-color:var(--green)!important;
    color:var(--dark)!important;
  }
}

@media (max-width:560px){
  .section{
    min-height:auto;
    padding:58px 0;
  }
  .section-number{
    font-size:4.6rem;
    right:16px;
    top:20px;
  }
  h2,
  .section-head h2,
  .careers-copy h2{
    font-size:clamp(1.95rem,10vw,3rem);
  }
}


/* v50 tighter small-screen layout + mobile menu top fix */

/* Notebook compatti: ulteriore riduzione proporzioni */
@media (min-width:1181px) and (max-width:1440px) and (max-height:920px){
  :root{
    --max:1080px;
    --radius:22px;
    --radius-sm:16px;
  }

  .container,
  .section > .container{
    width:min(calc(100% - 30px),var(--max))!important;
  }

  .section{
    min-height:calc(100svh - 66px)!important;
    padding:34px 0!important;
  }
  .section-number{
    top:18px!important;
    right:22px!important;
    font-size:clamp(3.1rem,6.4vw,5.4rem)!important;
    opacity:.045!important;
  }

  .section-head{
    margin-bottom:16px!important;
    gap:20px!important;
  }

  h1{
    font-size:clamp(2.15rem,4.2vw,3.45rem)!important;
  }
  h2,
  .section-head h2,
  .careers-copy h2,
  .contact-simple-grid h2{
    font-size:clamp(1.7rem,3.05vw,2.55rem)!important;
    margin-bottom:12px!important;
  }
  h3{
    font-size:clamp(.98rem,1.35vw,1.32rem)!important;
    margin-bottom:8px!important;
  }
  .lead{
    font-size:.9rem!important;
    line-height:1.44!important;
  }
  p{
    line-height:1.46!important;
  }
  .eyebrow{
    font-size:.62rem!important;
    letter-spacing:.12em!important;
    margin-bottom:8px!important;
  }

  .btn{
    padding:11px 16px!important;
    font-size:.72rem!important;
  }

  .hero{
    min-height:100svh!important;
    padding:84px 0 36px!important;
  }
  .hero-grid{
    min-height:calc(100svh - 120px)!important;
    grid-template-columns:minmax(0,1.12fr) minmax(250px,.55fr)!important;
    gap:24px!important;
    align-items:center!important;
  }
  .hero-copy h1{
    margin-bottom:14px!important;
    line-height:1.01!important;
  }
  .hero-copy .lead{
    font-size:.92rem!important;
    max-width:570px!important;
  }
  .hero-actions{
    margin-top:18px!important;
    gap:10px!important;
  }
  .hero-logo-3d{
    width:min(24vw,220px)!important;
  }
  .hero-mark-wrap{
    width:min(22vw,205px)!important;
  }
  .hero-wordmark{
    width:min(17vw,160px)!important;
  }
  .hero-meta{
    margin-top:14px!important;
  }
  .hero-meta-item{
    padding:6px 0!important;
  }
  .hero-meta-item strong{
    font-size:.68rem!important;
  }
  .hero-meta-item span{
    font-size:.66rem!important;
  }
  .scroll-cue{
    display:none!important;
  }

  .about-grid{
    grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)!important;
    gap:30px!important;
    align-items:center!important;
  }
  .about-copy{
    position:static!important;
  }
  .stats{
    gap:9px!important;
  }
  .stat{
    min-height:104px!important;
    padding:15px!important;
    border-radius:15px!important;
  }
  .stat strong{
    font-size:clamp(1.7rem,3vw,2.75rem)!important;
  }
  .stat span{
    font-size:.74rem!important;
    line-height:1.28!important;
  }

  .section-core-expertise .container{
    width:min(calc(100% - 30px),1120px)!important;
  }
  .section-core-expertise .section-head{
    margin-bottom:14px!important;
  }
  .section-core-expertise .core-cards{
    gap:8px!important;
  }
  .section-core-expertise .core-card{
    min-height:128px!important;
    padding:13px!important;
    border-radius:15px!important;
  }
  .section-core-expertise .core-card .card-icon{
    width:30px!important;
    height:30px!important;
    margin-bottom:8px!important;
    border-radius:9px!important;
    font-size:.68rem!important;
  }
  .section-core-expertise .core-card h3{
    font-size:.78rem!important;
    line-height:1.12!important;
    margin-bottom:5px!important;
  }
  .section-core-expertise .core-card p{
    font-size:.64rem!important;
    line-height:1.28!important;
  }

  .split{
    grid-template-columns:minmax(0,.92fr) minmax(280px,.78fr)!important;
    gap:28px!important;
    align-items:center!important;
  }
  .visual{
    min-height:290px!important;
    border-radius:20px!important;
  }
  .training-visual,
  .cyber-visual{
    min-height:300px!important;
    padding:9px!important;
  }
  .training-visual img,
  .training-visual-image,
  .cyber-visual img,
  .cyber-visual-image{
    max-height:320px!important;
    border-radius:14px!important;
  }
  .feature-list{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:7px!important;
    margin:16px 0 18px!important;
  }
  .feature-list li{
    padding:7px 9px!important;
    font-size:.68rem!important;
    line-height:1.25!important;
  }

  .product-grid{
    gap:12px!important;
  }
  .product{
    min-height:235px!important;
    padding:18px!important;
    border-radius:19px!important;
  }
  .product-logo{
    min-height:54px!important;
    width:min(100%,200px)!important;
    padding:8px 12px!important;
    border-radius:14px!important;
  }
  .product-logo img{
    max-height:38px!important;
  }
  .product-kicker{
    font-size:.62rem!important;
  }
  .product p{
    font-size:.78rem!important;
  }

  .project-band{
    min-height:calc(100svh - 66px)!important;
    display:flex!important;
    align-items:center!important;
    padding:34px 0!important;
  }
  .project-band .section-head{
    margin-bottom:14px!important;
  }
  .project-band .cards{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:8px!important;
  }
  .project-band .cards .card{
    min-height:94px!important;
    padding:13px!important;
    border-radius:15px!important;
  }
  .project-band .cards .card-icon{
    width:30px!important;
    height:30px!important;
    margin-bottom:8px!important;
    font-size:.66rem!important;
  }
  .project-band .cards h3{
    font-size:.76rem!important;
    line-height:1.12!important;
  }
  .project-band .section-actions{
    margin-top:12px!important;
  }

  .sector-strip{
    gap:6px!important;
    margin-bottom:12px!important;
  }
  .sector-pill{
    padding:7px 10px!important;
    font-size:.66rem!important;
  }
  .references h3{
    margin-bottom:5px!important;
  }
  .references .muted{
    font-size:.82rem!important;
  }
  .reference-logo-grid{
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    gap:8px!important;
    margin-top:12px!important;
  }
  .reference-logo{
    min-height:52px!important;
    padding:8px!important;
    border-radius:12px!important;
  }
  .reference-logo img{
    max-height:23px!important;
  }
  .reference-logo-thales img{
    max-height:34px!important;
  }
  .reference-logo-raicam img{
    max-height:30px!important;
  }
  .reference-logo-name span{
    font-size:.76rem!important;
  }

  .careers-panel{
    min-height:318px!important;
    grid-template-columns:minmax(0,1fr) minmax(260px,.72fr)!important;
    border-radius:22px!important;
  }
  .careers-copy{
    padding:26px!important;
  }
  .careers-copy .lead{
    font-size:.84rem!important;
  }
  .roles{
    margin:12px 0 16px!important;
    gap:5px!important;
  }
  .role{
    padding:5px 8px!important;
    font-size:.62rem!important;
  }
  .careers-visual{
    min-height:318px!important;
  }
  .careers-visual-badge{
    right:14px!important;
    bottom:14px!important;
    padding:8px 10px!important;
    border-radius:14px!important;
  }
  .careers-visual-badge span{
    font-size:.58rem!important;
  }
  .careers-visual-badge strong{
    font-size:.74rem!important;
  }

  .contact-simple-grid{
    grid-template-columns:minmax(0,.9fr) minmax(280px,.86fr)!important;
    gap:28px!important;
  }
  .contact-photo{
    min-height:280px!important;
    border-radius:22px!important;
  }
  .contact-email-card{
    margin-top:16px!important;
    padding-top:14px!important;
  }
  .email-link{
    font-size:clamp(1.3rem,2.7vw,2.25rem)!important;
  }
}

/* laptop molto bassi, es. 1366x768 */
@media (min-width:1181px) and (max-height:790px){
  .section{
    padding:28px 0!important;
  }
  .hero{
    padding-top:78px!important;
    padding-bottom:28px!important;
  }
  .hero-copy h1{
    font-size:clamp(2.05rem,4vw,3.15rem)!important;
  }
  .hero-copy .lead{
    font-size:.86rem!important;
  }
  .section-head{
    margin-bottom:12px!important;
  }
  .section-core-expertise .core-card{
    min-height:116px!important;
  }
  .visual,
  .training-visual,
  .cyber-visual{
    min-height:270px!important;
  }
  .training-visual img,
  .training-visual-image,
  .cyber-visual img,
  .cyber-visual-image{
    max-height:290px!important;
  }
  .careers-panel,
  .careers-visual{
    min-height:290px!important;
  }
  .contact-photo{
    min-height:250px!important;
  }
}

/* Fix definitivo menu smartphone: niente taglio in alto */
@media (max-width:820px){
  .site-header{
    height:64px!important;
    min-height:64px!important;
  }
  .nav-wrap{
    height:64px!important;
    min-height:64px!important;
  }

  .main-nav{
    position:fixed!important;
    inset:auto!important;
    top:64px!important;
    left:0!important;
    right:0!important;
    bottom:auto!important;
    width:100vw!important;
    height:auto!important;
    max-height:calc(100svh - 64px)!important;
    display:none!important;
    grid-template-columns:1fr!important;
    align-content:start!important;
    justify-content:stretch!important;
    gap:3px!important;
    padding:10px 14px 16px!important;
    margin:0!important;
    border-radius:0 0 20px 20px!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    transform:none!important;
    translate:none!important;
    opacity:1!important;
    visibility:visible!important;
    background:rgba(0,43,73,.99)!important;
    z-index:1002!important;
  }

  body.nav-open .main-nav,
  .main-nav.open,
  .nav-open .main-nav{
    display:grid!important;
    top:64px!important;
    transform:none!important;
    opacity:1!important;
    visibility:visible!important;
  }

  .main-nav>a,
  .site-header.scrolled .main-nav>a,
  .site-header:not(.scrolled) .main-nav>a{
    display:flex!important;
    min-height:32px!important;
    padding:7px 10px!important;
    align-items:center!important;
    justify-content:flex-start!important;
    border:0!important;
    border-radius:9px!important;
    background:rgba(255,255,255,.055)!important;
    color:#fff!important;
    font-size:.70rem!important;
    letter-spacing:.05em!important;
    line-height:1.1!important;
    white-space:normal!important;
  }

  .main-nav>a:nth-child(n){
    display:flex!important;
  }

  .language-switch,
  .main-nav .language-switch{
    display:flex!important;
    grid-column:1/-1!important;
    justify-content:center!important;
    align-items:center!important;
    gap:8px!important;
    margin:5px 0 0!important;
    padding:8px 0 0!important;
    border-top:1px solid rgba(255,255,255,.12)!important;
    overflow:visible!important;
  }

  .language-switch a{
    width:30px!important;
    min-width:30px!important;
    height:30px!important;
    min-height:30px!important;
    flex:0 0 30px!important;
  }
}

@media (max-width:420px){
  .main-nav{
    top:60px!important;
    max-height:calc(100svh - 60px)!important;
    padding:8px 12px 14px!important;
  }
  body.nav-open .main-nav,
  .main-nav.open{
    top:60px!important;
  }
  .site-header,
  .nav-wrap{
    height:60px!important;
    min-height:60px!important;
  }
  .main-nav>a{
    min-height:30px!important;
    padding:6px 9px!important;
    font-size:.66rem!important;
  }
}


/* v51 large desktop / 2K+ visual scale */
@media (min-width:1600px){
  #training > .container,
  #cybersecurity > .container{
    width:min(calc(100% - 96px),1560px);
  }

  #training.split,
  #cybersecurity.split{
    gap:clamp(72px,5vw,120px);
  }

  #training .split,
  #cybersecurity .split,
  #training > .container.split,
  #cybersecurity > .container.split{
    grid-template-columns:minmax(0,.82fr) minmax(720px,1.18fr);
    gap:clamp(72px,5vw,120px);
  }

  #cybersecurity > .container.split{
    grid-template-columns:minmax(520px,.82fr) minmax(720px,1.18fr);
  }

  #training .training-visual{
    min-height:760px;
    padding:24px;
  }

  #training .training-visual img,
  #training .training-visual-image{
    width:auto!important;
    height:auto!important;
    max-width:100%;
    max-height:820px;
    object-fit:contain!important;
  }

  #cybersecurity .cyber-visual{
    min-height:800px;
    padding:24px;
  }

  #cybersecurity .cyber-visual::after{
    inset:24px;
  }

  #cybersecurity .cyber-visual img,
  #cybersecurity .cyber-visual-image{
    max-height:860px;
    max-width:100%;
  }

  #training .training-copy,
  #cybersecurity .cyber-copy{
    max-width:620px;
  }
}

@media (min-width:2100px){
  #training > .container,
  #cybersecurity > .container{
    width:min(calc(100% - 140px),1760px);
  }

  #training > .container.split,
  #cybersecurity > .container.split{
    gap:clamp(90px,5.4vw,150px);
  }

  #training .training-visual{
    min-height:860px;
  }

  #training .training-visual img,
  #training .training-visual-image{
    max-height:940px;
  }

  #cybersecurity .cyber-visual{
    min-height:900px;
  }

  #cybersecurity .cyber-visual img,
  #cybersecurity .cyber-visual-image{
    max-height:980px;
  }
}


/* v52 desktop 1920 visual boost for sections 03 and 04 */
@media (min-width:1366px){
  #training > .container,
  #cybersecurity > .container{
    width:min(calc(100% - 72px), 1480px);
  }

  #training .split,
  #cybersecurity .split,
  #training > .container.split,
  #cybersecurity > .container.split{
    grid-template-columns:minmax(420px,.72fr) minmax(620px,1.28fr);
    gap:clamp(56px,4vw,92px);
    align-items:center;
  }

  #training .training-copy,
  #cybersecurity .cyber-copy{
    max-width:580px;
  }

  #training .training-visual{
    min-height:720px;
    padding:22px;
  }

  #training .training-visual img,
  #training .training-visual-image{
    width:auto!important;
    height:auto!important;
    max-width:100%;
    max-height:780px;
    object-fit:contain!important;
  }

  #cybersecurity .cyber-visual{
    min-height:760px;
    padding:22px;
  }

  #cybersecurity .cyber-visual::after{
    inset:22px;
  }

  #cybersecurity .cyber-visual img,
  #cybersecurity .cyber-visual-image{
    width:auto!important;
    height:auto!important;
    max-width:100%;
    max-height:820px;
    object-fit:contain!important;
  }
}

@media (min-width:1600px){
  #training > .container,
  #cybersecurity > .container{
    width:min(calc(100% - 90px), 1580px);
  }

  #training .split,
  #cybersecurity .split,
  #training > .container.split,
  #cybersecurity > .container.split{
    grid-template-columns:minmax(440px,.7fr) minmax(760px,1.3fr);
    gap:clamp(68px,4.5vw,110px);
  }

  #training .training-visual{
    min-height:790px;
    padding:24px;
  }

  #training .training-visual img,
  #training .training-visual-image{
    max-height:860px;
  }

  #cybersecurity .cyber-visual{
    min-height:840px;
    padding:24px;
  }

  #cybersecurity .cyber-visual::after{
    inset:24px;
  }

  #cybersecurity .cyber-visual img,
  #cybersecurity .cyber-visual-image{
    max-height:900px;
  }
}

@media (min-width:2100px){
  #training > .container,
  #cybersecurity > .container{
    width:min(calc(100% - 120px), 1760px);
  }

  #training .split,
  #cybersecurity .split,
  #training > .container.split,
  #cybersecurity > .container.split{
    grid-template-columns:minmax(480px,.68fr) minmax(860px,1.32fr);
    gap:clamp(86px,5vw,140px);
  }

  #training .training-visual{
    min-height:900px;
  }

  #training .training-visual img,
  #training .training-visual-image{
    max-height:980px;
  }

  #cybersecurity .cyber-visual{
    min-height:950px;
  }

  #cybersecurity .cyber-visual img,
  #cybersecurity .cyber-visual-image{
    max-height:1030px;
  }
}


/* v53 real 1920+ scale for Training and Cybersecurity visuals */
@media (min-width:1450px){
  #training,
  #cybersecurity{
    overflow:hidden;
  }

  #training > .container.split,
  #cybersecurity > .container.split{
    width:min(calc(100% - 72px), 1640px);
    align-items:center;
  }

  /* Training: image is the first column */
  #training > .container.split{
    grid-template-columns:minmax(620px, .98fr) minmax(420px, .62fr);
    gap:clamp(56px,4vw,86px);
  }

  /* Cybersecurity: image is the second column */
  #cybersecurity > .container.split{
    grid-template-columns:minmax(420px, .62fr) minmax(620px, .98fr);
    gap:clamp(56px,4vw,86px);
  }

  #training .training-copy,
  #cybersecurity .cyber-copy{
    max-width:560px;
  }

  #training .training-visual,
  #cybersecurity .cyber-visual{
    min-height:0!important;
    height:auto!important;
    padding:16px!important;
    display:block!important;
    align-self:center;
    overflow:visible!important;
    border-radius:var(--radius);
  }

  #training .training-visual img,
  #training .training-visual-image,
  #cybersecurity .cyber-visual img,
  #cybersecurity .cyber-visual-image{
    position:relative!important;
    inset:auto!important;
    display:block!important;
    width:100%!important;
    height:auto!important;
    max-width:100%!important;
    max-height:none!important;
    object-fit:contain!important;
    object-position:center!important;
    border-radius:20px;
  }

  #cybersecurity .cyber-visual::after{
    inset:16px!important;
  }
}

@media (min-width:1450px) and (max-height:940px){
  #training > .container.split,
  #cybersecurity > .container.split{
    width:min(calc(100% - 64px), 1500px);
  }

  #training > .container.split{
    grid-template-columns:minmax(560px, .95fr) minmax(410px, .65fr);
  }

  #cybersecurity > .container.split{
    grid-template-columns:minmax(410px, .65fr) minmax(560px, .95fr);
  }
}

@media (min-width:1800px){
  #training > .container.split,
  #cybersecurity > .container.split{
    width:min(calc(100% - 90px), 1760px);
  }

  #training > .container.split{
    grid-template-columns:minmax(720px, 1.02fr) minmax(430px, .58fr);
  }

  #cybersecurity > .container.split{
    grid-template-columns:minmax(430px, .58fr) minmax(720px, 1.02fr);
  }
}

@media (min-width:2300px){
  #training > .container.split,
  #cybersecurity > .container.split{
    width:min(calc(100% - 130px), 1980px);
  }

  #training > .container.split{
    grid-template-columns:minmax(820px, 1.04fr) minmax(460px, .56fr);
  }

  #cybersecurity > .container.split{
    grid-template-columns:minmax(460px, .56fr) minmax(820px, 1.04fr);
  }
}


/* v54 PLM/CAX longer copy refinement */
.section-core-expertise .core-card{
  display:flex;
  flex-direction:column;
}
.section-core-expertise .core-card p{
  line-height:1.5;
}
.detail-body .cards .card p{
  line-height:1.55;
}
@media (min-width:1181px) and (max-width:1440px) and (max-height:920px){
  .section-core-expertise .core-card{
    min-height:190px!important;
  }
  .section-core-expertise .core-card p{
    font-size:.67rem!important;
    line-height:1.34!important;
  }
}
@media (min-width:1181px) and (max-height:790px){
  .section-core-expertise .core-card{
    min-height:168px!important;
  }
  .section-core-expertise .core-card p{
    font-size:.62rem!important;
    line-height:1.28!important;
  }
}


/* v55 contact section image + addresses */
.contact-email-card{
  gap:20px;
}
.contact-addresses{
  display:grid;
  gap:14px;
  width:100%;
}
.address-item{
  display:grid;
  gap:6px;
  padding-top:14px;
  border-top:1px solid var(--line);
}
.address-label{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--font-display);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--muted);
}
.address-item p{
  margin:0;
  font-size:1rem;
  line-height:1.5;
  color:var(--ink);
}
.contact-photo{
  min-height:460px;
  background:
    radial-gradient(circle at 50% 100%, rgba(71,185,129,.08), rgba(71,185,129,0) 36%),
    linear-gradient(180deg, #001a2d 0%, #002B49 100%);
}
.contact-photo img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center bottom;
  padding:18px 18px 0;
}
.contact-photo::after{
  background:linear-gradient(180deg, rgba(0,43,73,.04), rgba(0,43,73,.22));
  mix-blend-mode:normal;
}
.contact-photo-caption{
  display:none!important;
}

@media (min-width:1450px){
  .contact-photo{
    min-height:500px;
  }
}
@media (min-width:1181px) and (max-width:1440px) and (max-height:920px){
  .contact-photo{
    min-height:250px!important;
  }
  .contact-photo img{
    padding:12px 12px 0!important;
  }
  .address-item p{
    font-size:.88rem!important;
    line-height:1.38!important;
  }
}
@media (max-width:960px){
  .contact-photo{
    min-height:360px;
  }
  .contact-photo img{
    padding:14px 14px 0;
  }
}
@media (max-width:560px){
  .contact-addresses{
    gap:12px;
  }
  .address-item{
    padding-top:12px;
  }
  .address-item p{
    font-size:.92rem;
  }
  .contact-photo{
    min-height:240px;
  }
  .contact-photo img{
    padding:10px 10px 0;
  }
}



/* v56 refinements */
.careers-copy .eyebrow{
  color:rgba(255,255,255,.92)!important;
}


/* v57 Ferrari text and Careers color fix */
.reference-logo-name span{
  font-size:clamp(1.35rem,1.55vw,2rem)!important;
  line-height:1!important;
  font-weight:800!important;
  letter-spacing:.035em!important;
  color:var(--ink)!important;
}

.careers-copy .eyebrow,
.careers-copy h2{
  color:#fff!important;
}

.careers-copy .eyebrow::before{
  background:var(--green)!important;
}

@media (max-width:820px){
  .reference-logo-name span{
    font-size:1.45rem!important;
  }
}


/* v58 stronger Ferrari size + Careers white fix */
.reference-logo-name{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.reference-logo-name span{
  font-size:clamp(2rem,2.6vw,3rem)!important;
  line-height:1!important;
  font-weight:800!important;
  letter-spacing:.04em!important;
  color:var(--ink)!important;
}

.careers-panel .eyebrow,
.careers-panel .careers-copy .eyebrow,
.careers-panel .careers-copy h2{
  color:#ffffff!important;
  -webkit-text-fill-color:#ffffff!important;
}

.careers-panel .careers-copy .eyebrow::before{
  background:var(--green)!important;
}

@media (max-width:820px){
  .reference-logo-name span{
    font-size:1.9rem!important;
  }
}


/* v59 Ferrari text uses site heading font */
.reference-logo-name span{
  font-family:var(--font-body)!important;
  font-size:clamp(2rem,2.55vw,3rem)!important;
  line-height:1!important;
  font-weight:800!important;
  letter-spacing:-.035em!important;
  color:var(--ink)!important;
  text-transform:none!important;
}


/* v60 hero/training eyebrow + organized footer */
.hero .eyebrow,
.section-training .eyebrow,
.section-dark .eyebrow{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}
.hero .eyebrow::before,
.section-training .eyebrow::before,
.section-dark .eyebrow::before{
  background:var(--green)!important;
}

.footer-grid{
  grid-template-columns:minmax(260px,.7fr) minmax(0,1.55fr);
  gap:clamp(44px,6vw,86px);
  align-items:start;
}
.footer-links.footer-links-organized{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(18px,2.6vw,36px);
}
.footer-contact p{
  margin:10px 0 0;
  color:rgba(255,255,255,.62);
  font-size:.86rem;
  line-height:1.45;
}
.footer-contact strong{
  color:rgba(255,255,255,.9);
  font-weight:700;
}
.footer-email{
  color:#fff!important;
  font-weight:800;
  margin-bottom:12px!important;
}
.footer-email:hover{
  color:var(--green)!important;
}

@media(max-width:1180px){
  .footer-grid{
    grid-template-columns:1fr;
    gap:38px;
  }
  .footer-links.footer-links-organized{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:620px){
  .footer-links.footer-links-organized{
    grid-template-columns:1fr;
  }
  .footer-brand img{
    width:190px;
  }
}


/* v67 desktop 1920x1080 viewport optimization */
@media (min-width:1500px) and (min-height:900px) and (max-height:1120px){

  :root{
    --header-h:76px;
  }

  .site-header{
    height:var(--header-h)!important;
  }

  .brand img{
    width:156px!important;
  }

  .main-nav{
    gap:clamp(13px,1.05vw,22px)!important;
    font-size:.78rem!important;
  }

  .section,
  .project-band{
    min-height:100svh;
    padding:clamp(54px,6.4vh,72px) 0!important;
    display:flex;
    align-items:center;
  }

  .section > .container,
  .project-band > .container{
    width:min(calc(100% - 72px), 1640px);
  }

  .section-head{
    margin-bottom:clamp(22px,3vh,34px)!important;
    gap:clamp(30px,3vw,54px)!important;
  }

  .section-number{
    font-size:clamp(5.2rem,8vw,8.4rem)!important;
    top:4vh!important;
  }

  .eyebrow{
    margin-bottom:14px!important;
  }

  h2{
    font-size:clamp(2.65rem,3.45vw,4.15rem)!important;
    line-height:.94!important;
  }

  .lead{
    font-size:clamp(1rem,1.05vw,1.17rem)!important;
    line-height:1.45!important;
  }

  .hero{
    min-height:100svh!important;
    padding:calc(var(--header-h) + 54px) 0 54px!important;
    align-items:flex-end!important;
  }

  .hero-grid{
    width:min(calc(100% - 72px), 1640px)!important;
    grid-template-columns:minmax(0,1.18fr) minmax(300px,.66fr)!important;
    gap:58px!important;
  }

  .hero h1{
    font-size:clamp(4.8rem,6.7vw,7.4rem)!important;
    line-height:.86!important;
  }

  .hero .lead{
    max-width:790px!important;
  }

  .hero-actions,
  .section-actions{
    margin-top:24px!important;
  }

  .hero-logo-stack{
    width:min(100%,460px)!important;
  }

  .hero-logo-card{
    height:260px!important;
  }

  .hero-wordmark{
    width:min(100%,390px)!important;
  }

  .scroll-cue{
    bottom:24px!important;
  }

  /* 01 */
  .section-about .about-grid{
    align-items:center!important;
  }

  .about-copy h2{
    max-width:11ch;
  }

  .stats{
    gap:14px!important;
  }

  .stat{
    padding:26px!important;
    min-height:150px!important;
  }

  .stat strong{
    font-size:clamp(2.55rem,3.7vw,4.4rem)!important;
  }

  /* 02 PLM/CAX: all 8 long cards visible in one 1080p viewport */
  .section-core-expertise{
    min-height:100svh!important;
    padding:clamp(46px,5.5vh,64px) 0!important;
  }

  .section-core-expertise .container{
    width:min(calc(100% - 72px), 1680px)!important;
  }

  .section-core-expertise .section-head{
    margin-bottom:22px!important;
  }

  .section-core-expertise .core-cards{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:14px!important;
  }

  .section-core-expertise .core-card{
    min-height:198px!important;
    padding:18px 19px!important;
    border-radius:20px!important;
  }

  .section-core-expertise .core-card .card-icon{
    width:40px!important;
    height:40px!important;
    border-radius:12px!important;
    margin-bottom:13px!important;
    font-size:.82rem!important;
  }

  .section-core-expertise .core-card h3{
    font-size:clamp(.96rem,1vw,1.12rem)!important;
    line-height:1.08!important;
    margin-bottom:7px!important;
  }

  .section-core-expertise .core-card p{
    font-size:.72rem!important;
    line-height:1.31!important;
    margin:0!important;
  }

  /* 03 / 04 */
  #training,
  #cybersecurity{
    min-height:100svh!important;
    padding:clamp(52px,6vh,70px) 0!important;
  }

  #training > .container.split,
  #cybersecurity > .container.split{
    width:min(calc(100% - 86px), 1700px)!important;
    gap:clamp(54px,4.4vw,84px)!important;
    align-items:center!important;
  }

  #training > .container.split{
    grid-template-columns:minmax(680px,1fr) minmax(390px,.56fr)!important;
  }

  #cybersecurity > .container.split{
    grid-template-columns:minmax(390px,.56fr) minmax(680px,1fr)!important;
  }

  #training .training-copy,
  #cybersecurity .cyber-copy{
    max-width:540px!important;
  }

  #training .training-visual,
  #cybersecurity .cyber-visual{
    min-height:0!important;
    height:auto!important;
    max-height:calc(100svh - 154px)!important;
    padding:12px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    overflow:visible!important;
  }

  #training .training-visual img,
  #cybersecurity .cyber-visual img,
  #cybersecurity .cyber-visual-image{
    width:auto!important;
    height:auto!important;
    max-width:100%!important;
    max-height:calc(100svh - 180px)!important;
    object-fit:contain!important;
  }

  .feature-list{
    gap:7px 18px!important;
    margin-top:22px!important;
  }

  .feature-list li{
    padding:10px 0!important;
    font-size:.84rem!important;
  }

  /* 05 */
  #software .product-grid{
    gap:22px!important;
  }

  #software .product{
    min-height:390px!important;
    padding:32px!important;
  }

  .product-logo{
    min-height:72px!important;
    max-width:250px!important;
  }

  .product-logo img{
    max-height:54px!important;
  }

  /* 06 */
  #projects .cards,
  .project-band .cards{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:14px!important;
  }

  .project-band .card{
    min-height:126px!important;
    padding:20px!important;
  }

  .project-band .card-icon{
    width:38px!important;
    height:38px!important;
    margin-bottom:16px!important;
  }

  /* 07: more logo columns to keep the complete references section on screen */
  #sectors .sector-strip{
    gap:10px!important;
    margin-bottom:22px!important;
  }

  #sectors .sector-pill{
    padding:10px 14px!important;
    font-size:.8rem!important;
  }

  #sectors .references-intro{
    margin-bottom:8px!important;
  }

  #sectors .references-intro h3{
    font-size:clamp(1.45rem,1.8vw,2rem)!important;
    margin-bottom:6px!important;
  }

  #sectors .references-intro .muted{
    font-size:.9rem!important;
    line-height:1.45!important;
  }

  #sectors .reference-logo-grid{
    grid-template-columns:repeat(6,minmax(0,1fr))!important;
    gap:12px!important;
    margin-top:18px!important;
  }

  #sectors .reference-logo{
    min-height:88px!important;
    padding:13px 16px!important;
    border-radius:16px!important;
  }

  #sectors .reference-logo img{
    max-height:38px!important;
  }

  #sectors .reference-logo-thales img,
  #sectors .reference-logo-raicam img{
    max-height:46px!important;
  }

  #sectors .reference-logo-name span{
    font-size:clamp(1.8rem,2vw,2.35rem)!important;
  }

  /* 08 */
  #careers .careers-panel{
    min-height:640px!important;
    grid-template-columns:1fr .78fr!important;
  }

  #careers .careers-copy{
    padding:clamp(48px,5vw,76px)!important;
  }

  #careers .careers-visual{
    min-height:640px!important;
  }

  #careers .roles{
    margin:24px 0 28px!important;
    gap:9px!important;
  }

  #careers .role{
    padding:9px 13px!important;
    font-size:.78rem!important;
  }

  /* 09 */
  #contact .contact-simple-grid{
    width:min(calc(100% - 72px), 1640px)!important;
    gap:clamp(54px,5vw,82px)!important;
  }

  #contact .contact-photo{
    min-height:470px!important;
  }

  #contact .email-link{
    font-size:clamp(2rem,3.2vw,3.35rem)!important;
  }

  #contact .contact-email-card{
    margin-top:24px!important;
    padding-top:22px!important;
    gap:16px!important;
  }

  #contact .address-item{
    padding-top:12px!important;
  }

  #contact .address-item p{
    font-size:.92rem!important;
    line-height:1.38!important;
  }

  /* Footer more compact on full HD */
  .site-footer{
    padding:46px 0 24px!important;
  }

  .footer-grid{
    gap:46px!important;
  }

  .footer-brand img{
    width:190px!important;
  }

  .footer-brand p{
    font-size:.88rem!important;
    line-height:1.45!important;
    margin-top:16px!important;
  }

  .footer-links.footer-links-organized{
    gap:22px!important;
  }

  .footer-links h3{
    font-size:.76rem!important;
  }

  .footer-links a,
  .footer-contact p{
    font-size:.8rem!important;
    line-height:1.38!important;
  }

  .footer-bottom{
    margin-top:34px!important;
    padding-top:18px!important;
  }
}


/* v75 definitive visible background for section 02 using the user image */
.section-core-expertise{
  position:relative!important;
  isolation:isolate;
  overflow:hidden;
  background:#eef2f5!important;
}

.section-core-expertise::before,
.section-core-expertise::after{
  content:none!important;
  display:none!important;
}

.section-core-expertise .section-core-bg{
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:
    linear-gradient(180deg, rgba(255,255,255,.03) 0%, rgba(255,255,255,.02) 100%),
    url('../images/bg-section-02-core-expertise-user.jpg');
  background-repeat:no-repeat,no-repeat;
  background-position:center center, center center;
  background-size:cover, cover;
  opacity:1;
}

.section-core-expertise > .section-number{
  position:absolute!important;
  top:5vw!important;
  right:4vw!important;
  left:auto!important;
  z-index:3!important;
  display:block!important;
  font:700 clamp(4rem,10vw,9rem)/.8 ui-monospace,monospace!important;
  color:rgba(11,47,66,.075)!important;
  pointer-events:none!important;
}

.section-core-expertise .container{
  position:relative;
  z-index:2;
}

.section-core-expertise .section-head{
  position:relative;
  z-index:2;
}

.section-core-expertise .core-card{
  background:rgba(255,255,255,.62)!important;
  border-color:rgba(11,47,66,.10)!important;
  box-shadow:0 20px 50px rgba(11,47,66,.08);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
}

.section-core-expertise .core-card:hover{
  background:rgba(255,255,255,.84)!important;
}

/* keep the ordered logo animation and contact animations */
.section-sectors .reference-logo-card.reveal:nth-child(16).in-view{
  transition-delay:.80s;
}

#contact .contact-simple-grid > .reveal{
  opacity:0;
  transform:translate3d(-34px,22px,0);
  filter:blur(6px);
}
#contact .contact-simple-grid > .reveal.in-view{
  opacity:1;
  transform:translate3d(0,0,0);
  filter:blur(0);
  transition:opacity .9s cubic-bezier(.19,1,.22,1),transform .9s cubic-bezier(.19,1,.22,1),filter .9s cubic-bezier(.19,1,.22,1);
}
#contact .contact-photo.reveal{
  opacity:0;
  transform:translate3d(38px,34px,0) scale(.975);
  filter:blur(7px);
}
#contact .contact-photo.reveal.in-view{
  opacity:1;
  transform:translate3d(0,0,0) scale(1);
  filter:blur(0);
  transition:opacity .95s cubic-bezier(.19,1,.22,1),transform .95s cubic-bezier(.19,1,.22,1),filter .95s cubic-bezier(.19,1,.22,1);
  transition-delay:.12s;
}
#contact .contact-email-card,
#contact .address-item{
  opacity:0;
  transform:translate3d(0,18px,0);
  filter:blur(4px);
}
#contact .reveal.in-view .contact-email-card,
#contact .reveal.in-view .address-item{
  opacity:1;
  transform:translate3d(0,0,0);
  filter:blur(0);
  transition:opacity .72s cubic-bezier(.19,1,.22,1),transform .72s cubic-bezier(.19,1,.22,1),filter .72s cubic-bezier(.19,1,.22,1);
}
#contact .reveal.in-view .contact-email-card{transition-delay:.14s}
#contact .reveal.in-view .address-item:nth-child(1){transition-delay:.24s}
#contact .reveal.in-view .address-item:nth-child(2){transition-delay:.34s}

@media (min-width:1500px) and (min-height:900px) and (max-height:1120px){
  .section-core-expertise > .section-number{
    top:4vh!important;
    right:4vw!important;
    font-size:clamp(5.2rem,8vw,8.4rem)!important;
  }
}

@media (max-width:820px){
  .section-core-expertise .section-core-bg{
    background-position:center top, center top;
  }
  .section-core-expertise > .section-number{
    top:18px!important;
    right:20px!important;
    font-size:clamp(3rem,14vw,5rem)!important;
  }
  .section-core-expertise .core-card{
    background:rgba(255,255,255,.84)!important;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
  #contact .contact-simple-grid > .reveal,
  #contact .contact-photo.reveal{
    transform:translate3d(0,26px,0);
    filter:blur(5px);
  }
  #contact .contact-photo.reveal.in-view{
    transition-delay:.08s;
  }
}


/* v78 section 01 background using same method as section 02 */
.section-about{
  position:relative!important;
  isolation:isolate;
  overflow:hidden;
  background:#f4f6f8!important;
}

.section-about::before,
.section-about::after{
  content:none!important;
  display:none!important;
}

.section-about .section-about-bg{
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background-image:
    linear-gradient(180deg, rgba(255,255,255,.02) 0%, rgba(255,255,255,.02) 100%),
    url('../images/bg-section-01-about-light.jpg');
  background-repeat:no-repeat,no-repeat;
  background-position:center center, center center;
  background-size:cover, cover;
  opacity:1;
}

.section-about > .section-number{
  position:absolute!important;
  top:5vw!important;
  right:4vw!important;
  left:auto!important;
  z-index:3!important;
  display:block!important;
  font:700 clamp(4rem,10vw,9rem)/.8 ui-monospace,monospace!important;
  color:rgba(11,47,66,.07)!important;
  pointer-events:none!important;
}

.section-about .container{
  position:relative;
  z-index:2;
}

.section-about .about-copy,
.section-about .stats{
  position:relative;
  z-index:2;
}

.section-about .stat{
  background:rgba(255,255,255,.68)!important;
  border-color:rgba(11,47,66,.08)!important;
  box-shadow:0 20px 50px rgba(11,47,66,.07);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
}

.section-about .stat:hover{
  background:rgba(255,255,255,.84)!important;
}

@media (min-width:1500px) and (min-height:900px) and (max-height:1120px){
  .section-about > .section-number{
    top:4vh!important;
    right:4vw!important;
    font-size:clamp(5.2rem,8vw,8.4rem)!important;
  }
}

@media (max-width:820px){
  .section-about .section-about-bg{
    background-position:center top, center top;
  }
  .section-about > .section-number{
    top:18px!important;
    right:20px!important;
    font-size:clamp(3rem,14vw,5rem)!important;
  }
  .section-about .stat{
    background:rgba(255,255,255,.86)!important;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
}


/* v79 anchor alignment + 4K section fit */
html{
  scroll-padding-top:var(--header-h)!important;
}

/* The JS handles same-page anchors precisely; this remains as fallback for direct hash URLs */
#about,#plm-cax,#training,#cybersecurity,#software,#projects,#sectors,#careers,#contact{
  scroll-margin-top:0!important;
}

/* Large UHD / 4K optimization: keep sections 02, 03 and 04 complete in one viewport */
@media (min-width:2200px) and (min-height:1200px){

  html{
    scroll-padding-top:var(--header-h)!important;
  }

  .section-number{
    top:4vh!important;
  }

  #plm-cax,
  #training,
  #cybersecurity{
    min-height:100svh!important;
    padding:clamp(72px,4.4vh,100px) 0!important;
    display:flex!important;
    align-items:center!important;
    overflow:hidden!important;
  }

  #plm-cax > .container,
  #training > .container.split,
  #cybersecurity > .container.split{
    width:min(calc(100% - 180px), 2050px)!important;
  }

  #plm-cax .section-head{
    margin-bottom:clamp(24px,2.2vh,42px)!important;
    gap:clamp(44px,3vw,72px)!important;
  }

  #plm-cax h2,
  #training h2,
  #cybersecurity h2{
    font-size:clamp(3.1rem,2.3vw,4.35rem)!important;
    line-height:.96!important;
    margin-bottom:clamp(16px,1.2vh,24px)!important;
  }

  #plm-cax .lead,
  #training .lead,
  #cybersecurity .lead{
    font-size:clamp(1.02rem,.72vw,1.18rem)!important;
    line-height:1.45!important;
  }

  #plm-cax .core-cards{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:clamp(14px,1vw,20px)!important;
  }

  #plm-cax .core-card{
    min-height:clamp(210px,13vh,270px)!important;
    padding:clamp(20px,1.25vw,28px)!important;
  }

  #plm-cax .core-card .card-icon{
    width:clamp(42px,2.2vw,54px)!important;
    height:clamp(42px,2.2vw,54px)!important;
    margin-bottom:clamp(14px,1.3vh,24px)!important;
  }

  #plm-cax .core-card h3{
    font-size:clamp(1rem,.8vw,1.22rem)!important;
    line-height:1.08!important;
    margin-bottom:8px!important;
  }

  #plm-cax .core-card p{
    font-size:clamp(.72rem,.52vw,.9rem)!important;
    line-height:1.36!important;
    margin:0!important;
  }

  #training > .container.split{
    grid-template-columns:minmax(760px,1fr) minmax(430px,.58fr)!important;
    gap:clamp(70px,4vw,120px)!important;
  }

  #cybersecurity > .container.split{
    grid-template-columns:minmax(430px,.58fr) minmax(760px,1fr)!important;
    gap:clamp(70px,4vw,120px)!important;
  }

  #training .training-copy,
  #cybersecurity .cyber-copy{
    max-width:620px!important;
  }

  #training .training-visual,
  #cybersecurity .cyber-visual{
    min-height:0!important;
    height:auto!important;
    max-height:calc(100svh - 220px)!important;
    padding:clamp(12px,.9vw,20px)!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    overflow:visible!important;
  }

  #training .training-visual img,
  #training .training-visual-image,
  #cybersecurity .cyber-visual img,
  #cybersecurity .cyber-visual-image{
    position:relative!important;
    inset:auto!important;
    display:block!important;
    width:auto!important;
    height:auto!important;
    max-width:100%!important;
    max-height:min(calc(100svh - 280px), 1500px)!important;
    object-fit:contain!important;
    object-position:center!important;
  }

  #cybersecurity .cyber-visual::after{
    inset:clamp(12px,.9vw,20px)!important;
  }

  #training .feature-list,
  #cybersecurity .feature-list{
    margin-top:clamp(20px,1.6vh,30px)!important;
    gap:clamp(7px,.7vh,12px) clamp(18px,1.2vw,28px)!important;
  }

  #training .feature-list li,
  #cybersecurity .feature-list li{
    padding:clamp(8px,.7vh,12px) 0!important;
    font-size:clamp(.82rem,.55vw,.96rem)!important;
  }

  #training .section-actions,
  #cybersecurity .section-actions{
    margin-top:clamp(22px,1.8vh,34px)!important;
  }
}

/* Very tall 4K screens: keep visuals controlled so they do not push beyond the viewport */
@media (min-width:3000px) and (min-height:1700px){
  #training .training-visual img,
  #training .training-visual-image,
  #cybersecurity .cyber-visual img,
  #cybersecurity .cyber-visual-image{
    max-height:1480px!important;
  }

  #plm-cax > .container,
  #training > .container.split,
  #cybersecurity > .container.split{
    width:min(calc(100% - 240px), 2140px)!important;
  }
}


/* v80 projects section refresh */
.project-band{
  position:relative!important;
  isolation:isolate;
  overflow:hidden;
  background:#4cb377!important;
  color:#fff!important;
  padding:clamp(72px,8vw,110px) 0!important;
}

.project-band::before,
.project-band::after{
  content:none!important;
  display:none!important;
}

.project-band > .section-number{
  position:absolute!important;
  top:5vw!important;
  right:4vw!important;
  left:auto!important;
  z-index:1!important;
  display:block!important;
  font:700 clamp(4rem,10vw,9rem)/.8 ui-monospace,monospace!important;
  color:rgba(255,255,255,.16)!important;
  pointer-events:none!important;
}

.project-band > .container{
  position:relative;
  z-index:2;
}

.project-band .section-head{
  align-items:end!important;
  gap:clamp(22px,2vw,40px)!important;
  margin-bottom:clamp(28px,2.8vw,42px)!important;
}

.project-band .eyebrow,
.project-band h2,
.project-band .lead{
  color:#fff!important;
}

.project-band .eyebrow::before{
  background:rgba(255,255,255,.72)!important;
}

.project-band .lead{
  max-width:720px;
  opacity:.96;
}

.project-band .cards{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:14px!important;
  margin-top:0!important;
}

.project-band .card{
  min-height:130px!important;
  padding:18px 16px!important;
  border-radius:18px!important;
  background:rgba(255,255,255,.14)!important;
  border:1px solid rgba(255,255,255,.22)!important;
  box-shadow:0 14px 34px rgba(12,44,28,.12)!important;
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
}

.project-band .card:hover{
  transform:translateY(-2px);
  background:rgba(255,255,255,.18)!important;
}

.project-band .card-icon{
  width:42px!important;
  height:42px!important;
  min-width:42px!important;
  border-radius:12px!important;
  display:grid!important;
  place-items:center!important;
  margin-bottom:14px!important;
  font-size:.9rem!important;
  font-weight:700!important;
  color:#fff!important;
  background:rgba(255,255,255,.16)!important;
  border:1px solid rgba(255,255,255,.24)!important;
}

.project-band .card h3{
  margin:0!important;
  color:#fff!important;
  font-size:.98rem!important;
  line-height:1.22!important;
  font-weight:600!important;
}

.project-band .section-actions{
  margin-top:clamp(24px,2.4vw,34px)!important;
}

.project-band .section-actions .btn{
  display:inline-flex!important;
  align-items:center!important;
  gap:12px!important;
}

.project-band .btn-dark{
  background:#fff!important;
  color:#0b2f42!important;
  border-color:#fff!important;
}

.project-band .btn-dark:hover{
  background:#f6f9fb!important;
  color:#0b2f42!important;
}

.project-band .project-btn-logo{
  display:block;
  height:20px;
  width:auto;
  object-fit:contain;
  flex:0 0 auto;
}

@media (min-width:1500px) and (min-height:900px) and (max-height:1120px){
  .project-band > .section-number{
    top:4vh!important;
    right:4vw!important;
    font-size:clamp(5.2rem,8vw,8.4rem)!important;
  }
}

@media (max-width:1100px){
  .project-band .cards{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

@media (max-width:820px){
  .project-band{
    padding:72px 0!important;
  }

  .project-band > .section-number{
    top:18px!important;
    right:20px!important;
    font-size:clamp(3rem,14vw,5rem)!important;
  }

  .project-band .cards{
    grid-template-columns:1fr!important;
    gap:12px!important;
  }

  .project-band .card{
    min-height:0!important;
    padding:16px 14px!important;
  }

  .project-band .section-actions .btn{
    width:100%;
    justify-content:center;
  }

  .project-band .project-btn-logo{
    height:18px;
  }
}


/* v81 projects section refinement */
.project-band .cards{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:12px!important;
  margin-top:4px!important;
  max-width:1120px!important;
  margin-inline:auto!important;
}

.project-band .card{
  min-height:108px!important;
  padding:14px 14px!important;
  border-radius:16px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:flex-start!important;
}

.project-band .card-icon{
  width:36px!important;
  height:36px!important;
  min-width:36px!important;
  border-radius:10px!important;
  margin-bottom:10px!important;
  font-size:.82rem!important;
}

.project-band .card h3{
  font-size:.92rem!important;
  line-height:1.18!important;
  letter-spacing:-0.01em!important;
}

.project-band .section-actions{
  margin-top:28px!important;
}

.project-band .section-actions .btn{
  gap:14px!important;
  padding-inline:22px!important;
}

.project-band .project-btn-logo{
  height:40px!important;
}

@media (min-width:1280px){
  .project-band .container{
    max-width:1320px!important;
  }

  .project-band .cards{
    max-width:1080px!important;
  }
}

@media (max-width:1100px){
  .project-band .cards{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    max-width:820px!important;
  }

  .project-band .card{
    min-height:104px!important;
  }
}

@media (max-width:820px){
  .project-band .cards{
    grid-template-columns:1fr!important;
    max-width:none!important;
    gap:10px!important;
  }

  .project-band .card{
    min-height:0!important;
    padding:14px 13px!important;
  }

  .project-band .project-btn-logo{
    height:34px!important;
  }
}


/* v82 projects cards more compact + blue numbered box */
.project-band .cards{
  max-width:980px!important;
  gap:10px!important;
}

.project-band .card{
  min-height:88px!important;
  padding:12px 12px!important;
  border-radius:14px!important;
}

.project-band .card-icon{
  width:30px!important;
  height:30px!important;
  min-width:30px!important;
  border-radius:8px!important;
  margin-bottom:8px!important;
  font-size:.76rem!important;
  font-weight:700!important;
  color:#ffffff!important;
  background:#002B49!important;
  border:1px solid rgba(255,255,255,.18)!important;
  box-shadow:0 8px 18px rgba(0,43,73,.20)!important;
}

.project-band .card h3{
  font-size:.84rem!important;
  line-height:1.14!important;
  margin:0!important;
}

.project-band .section-actions{
  margin-top:24px!important;
}

@media (min-width:1280px){
  .project-band .cards{
    max-width:940px!important;
  }
}

@media (max-width:1100px){
  .project-band .cards{
    gap:9px!important;
    max-width:760px!important;
  }

  .project-band .card{
    min-height:84px!important;
    padding:11px 11px!important;
  }
}

@media (max-width:820px){
  .project-band .cards{
    gap:8px!important;
    max-width:none!important;
  }

  .project-band .card{
    min-height:0!important;
    padding:12px 12px!important;
  }

  .project-band .card-icon{
    width:28px!important;
    height:28px!important;
    min-width:28px!important;
    font-size:.74rem!important;
  }

  .project-band .card h3{
    font-size:.83rem!important;
  }
}


/* v83 HYDROLAB detail page */
.hydrolab-hero{
  background:
    radial-gradient(circle at 82% 18%, rgba(76,179,119,.34), rgba(76,179,119,0) 32%),
    linear-gradient(145deg, #002B49 0%, #0A4263 58%, #073754 100%);
}
.hydrolab-hero-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(260px,420px);
  gap:clamp(36px,5vw,82px);
  align-items:center;
}
.hydrolab-hero .lead{
  color:rgba(255,255,255,.76);
}
.hydrolab-subtitle{
  color:#4cb377;
  font-family:var(--font-display);
  font-weight:700;
  letter-spacing:.03em;
  margin-top:-8px;
  margin-bottom:26px;
  font-size:clamp(1rem,1.4vw,1.3rem);
}
.hydrolab-logo-card{
  border-radius:var(--radius);
  background:rgba(255,255,255,.94);
  padding:clamp(26px,4vw,56px);
  box-shadow:0 28px 80px rgba(0,0,0,.2);
}
.hydrolab-logo-card img{
  width:100%;
  height:auto;
}
.hydrolab-detail{
  display:grid;
  grid-template-columns:.62fr 1.38fr;
  gap:clamp(44px,6vw,86px);
}
.hydrolab-aside{
  border-top-color:#4cb377;
}
.hydrolab-stats{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  margin-bottom:clamp(42px,5vw,72px);
}
.hydrolab-stat{
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  padding:18px;
  min-height:116px;
  display:grid;
  align-content:center;
  box-shadow:0 14px 38px rgba(3,21,30,.06);
}
.hydrolab-stat strong{
  font-family:var(--font-display);
  color:var(--ink);
  font-size:clamp(1.55rem,2.4vw,2.6rem);
  line-height:1;
}
.hydrolab-stat span{
  color:var(--muted);
  font-size:.82rem;
  font-weight:700;
  margin-top:10px;
}
.hydrolab-section{
  margin-bottom:clamp(54px,6vw,86px);
}
.hydrolab-section h2{
  font-size:clamp(2.05rem,3.3vw,3.65rem);
  max-width:900px;
}
.hydrolab-objectives,
.hydrolab-scope-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
.hydrolab-scope-grid{
  grid-template-columns:repeat(5,minmax(0,1fr));
}
.hydrolab-objective,
.hydrolab-scope-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:20px;
  padding:22px;
  min-height:210px;
  box-shadow:0 16px 44px rgba(3,21,30,.05);
}
.hydrolab-scope-card{
  min-height:210px;
  padding:18px;
}
.hydrolab-objective h3{
  font-size:clamp(1.15rem,1.6vw,1.55rem);
}
.hydrolab-scope-card span{
  display:block;
  font-family:var(--font-display);
  color:#4cb377;
  font-weight:800;
  letter-spacing:.02em;
  margin-bottom:10px;
}
.hydrolab-objective p,
.hydrolab-scope-card p,
.hydrolab-phase p{
  color:var(--muted);
  font-size:.94rem;
  line-height:1.55;
}
.hydrolab-timeline{
  display:grid;
  gap:14px;
}
.hydrolab-phase{
  display:grid;
  grid-template-columns:62px minmax(0,1fr);
  gap:18px;
  align-items:start;
  background:#fff;
  border:1px solid var(--line);
  border-radius:20px;
  padding:20px;
}
.hydrolab-phase-num{
  width:50px;
  height:50px;
  border-radius:14px;
  background:#002B49;
  color:#fff;
  display:grid;
  place-items:center;
  font-family:var(--font-display);
  font-weight:800;
}
.hydrolab-phase h3{
  font-size:clamp(1.1rem,1.55vw,1.45rem);
  margin-bottom:4px;
}
.hydrolab-list-section{
  background:#f5f8f9;
  border-radius:var(--radius);
  padding:clamp(28px,4vw,46px);
}
.hydrolab-list-section ul{
  margin:0;
  padding-left:20px;
  display:grid;
  gap:12px;
}
.hydrolab-list-section li{
  color:var(--muted);
  line-height:1.6;
}
.hydrolab-cta{
  background:
    radial-gradient(circle at 92% 10%, rgba(76,179,119,.22), rgba(76,179,119,0) 34%),
    #002B49;
  color:#fff;
}
.hydrolab-cta p{
  color:rgba(255,255,255,.72);
}
@media(max-width:1180px){
  .hydrolab-hero-layout,
  .hydrolab-detail{
    grid-template-columns:1fr;
  }
  .hydrolab-stats,
  .hydrolab-objectives,
  .hydrolab-scope-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:720px){
  .hydrolab-stats,
  .hydrolab-objectives,
  .hydrolab-scope-grid{
    grid-template-columns:1fr;
  }
  .hydrolab-phase{
    grid-template-columns:1fr;
  }
  .hydrolab-logo-card{
    max-width:360px;
  }
}


/* v84 HYDROLAB content visibility fix */
.hydrolab-body .reveal,
.hydrolab-body .reveal.in-view,
.hydrolab-stats .reveal,
.hydrolab-stats .reveal.in-view{
  opacity:1!important;
  transform:none!important;
  filter:none!important;
}

.hydrolab-body p,
.hydrolab-body li,
.hydrolab-objective p,
.hydrolab-scope-card p,
.hydrolab-phase p,
.hydrolab-list-section li{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  color:var(--muted)!important;
}

.hydrolab-body .lead{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
}

.hydrolab-objective,
.hydrolab-scope-card,
.hydrolab-phase,
.hydrolab-list-section{
  overflow:visible!important;
}


/* v85 email update + mobile about ordering */
@media (max-width:820px){
  #about.section-about .about-grid,
  .section-about .about-grid{
    display:flex!important;
    flex-direction:column!important;
    grid-template-columns:1fr!important;
    gap:28px!important;
    align-items:stretch!important;
  }

  #about.section-about .about-copy,
  .section-about .about-copy{
    order:1!important;
    width:100%!important;
    position:relative!important;
    top:auto!important;
    padding-right:0!important;
  }

  #about.section-about .about-copy .section-actions,
  .section-about .about-copy .section-actions{
    display:flex!important;
    order:10!important;
    margin-top:22px!important;
    margin-bottom:0!important;
    clear:both!important;
  }

  #about.section-about .about-copy .section-actions .btn,
  .section-about .about-copy .section-actions .btn{
    width:auto!important;
    max-width:max-content!important;
  }

  #about.section-about .about-stats,
  #about.section-about .stats,
  .section-about .about-stats,
  .section-about .stats{
    order:2!important;
    width:100%!important;
    margin-top:0!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:12px!important;
  }

  #about.section-about .stat,
  .section-about .stat{
    min-height:118px!important;
    padding:16px!important;
  }
}

@media (max-width:560px){
  #about.section-about .about-stats,
  #about.section-about .stats,
  .section-about .about-stats,
  .section-about .stats{
    grid-template-columns:1fr!important;
    gap:10px!important;
  }

  #about.section-about .about-copy .section-actions .btn,
  .section-about .about-copy .section-actions .btn{
    width:100%!important;
    max-width:none!important;
    justify-content:center!important;
  }
}


/* v86 mobile expandable cards for section 02 */
.core-card-copy{
  display:contents;
}

.core-card-toggle{
  display:none;
}

@media (max-width:820px){
  #plm-cax .core-card{
    position:relative;
  }

  #plm-cax .core-card-copy{
    display:block;
    position:relative;
    margin-top:8px;
  }

  #plm-cax .core-card p{
    position:relative;
    display:-webkit-box!important;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    overflow:hidden;
    max-height:none!important;
    margin-bottom:0!important;
    padding-bottom:2px;
  }

  #plm-cax .core-card:not(.is-open) .core-card-copy::after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:42px;
    height:24px;
    pointer-events:none;
    background:linear-gradient(180deg, rgba(255,255,255,0), rgba(255,255,255,.92) 72%, rgba(255,255,255,.98) 100%);
  }

  #plm-cax .core-card.is-open .core-card-copy::after{
    display:none;
  }

  #plm-cax .core-card.is-open p{
    display:block!important;
    -webkit-line-clamp:unset;
    overflow:visible;
  }

  #plm-cax .core-card-toggle{
    display:inline-flex!important;
    align-items:center;
    justify-content:center;
    margin-top:10px;
    padding:8px 12px;
    border-radius:999px;
    border:1px solid rgba(0,43,73,.14);
    background:rgba(0,43,73,.06);
    color:#002B49;
    font-size:.78rem;
    font-weight:700;
    line-height:1;
    cursor:pointer;
    transition:all .2s ease;
  }

  #plm-cax .core-card-toggle:hover,
  #plm-cax .core-card-toggle:focus-visible{
    background:rgba(0,43,73,.12);
    border-color:rgba(0,43,73,.22);
    outline:none;
  }
}

@media (max-width:560px){
  #plm-cax .core-card-toggle{
    width:100%;
  }
}


/* v87 minimal arrow toggle for mobile section 02 cards */
@media (max-width:820px){
  #plm-cax .core-card-copy{
    padding-bottom:2px;
  }

  #plm-cax .core-card:not(.is-open) .core-card-copy::after{
    bottom:30px!important;
    height:22px!important;
  }

  #plm-cax .core-card-toggle{
    width:28px!important;
    height:28px!important;
    min-width:28px!important;
    min-height:28px!important;
    padding:0!important;
    margin-top:8px!important;
    border-radius:50%!important;
    display:inline-grid!important;
    place-items:center!important;
    line-height:1!important;
    font-size:1.05rem!important;
    font-weight:800!important;
    background:#002B49!important;
    color:#fff!important;
    border:1px solid rgba(0,43,73,.18)!important;
    box-shadow:0 8px 18px rgba(0,43,73,.16)!important;
  }

  #plm-cax .core-card-toggle:hover,
  #plm-cax .core-card-toggle:focus-visible{
    background:#0A4263!important;
    color:#fff!important;
    transform:translateY(-1px);
  }
}

@media (max-width:560px){
  #plm-cax .core-card-toggle{
    width:28px!important;
    max-width:28px!important;
    justify-self:start!important;
  }
}

