/* ECOTECH CLEAN CSS BUNDLE — generated from the final approved cascade */


/* ===== SOURCE: style.css ===== */


:root{
  /* Match homepage V9 matte mineral — site-wide */
  --navy:#17252B;
  --blue:#3E7D82;
  --cyan:#8CC5C4;
  --purple:#B66F52;
  --lavender:#D9A98A;
  --bg:#F7F5EF;
  --bg-soft:#F2F0E9;
  --ink:#17252B;
  --muted:#3E524E;
  --line:rgba(23,37,43,0.12);
  --line-strong:rgba(23,37,43,0.26);
  --grad:linear-gradient(135deg,#3E7D82,#426B5A,#B66F52);
  --grad-soft:linear-gradient(135deg,rgba(62,125,130,0.16),rgba(66,107,90,0.05),rgba(182,111,82,0.06));
  --hero-dark:#0E1715;
  --hero-dark-2:#16221F;
  --max:1320px;
  --ease:cubic-bezier(.22,1,.36,1);
  --font:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  --mono:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:140px}body{background:var(--bg);color:var(--ink);font-family:'Inter',sans-serif;font-size:17.5px;line-height:1.72;letter-spacing:0.01em;letter-spacing:0.01em;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.container{width:92%;max-width:var(--max);margin:0 auto}.kicker{display:inline-flex;gap:8px;align-items:center;font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--blue);background:rgba(62,125,130,0.22);border:1px solid rgba(140,197,196,0.26);padding:6px 14px;border-radius:100px}.kicker::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--grad)}h1{font-size:clamp(42px,6vw,72px);line-height:.98;letter-spacing:-.04em;font-weight:800}h2{font-size:clamp(28px,3.5vw,48px);line-height:1.05;letter-spacing:-.03em;font-weight:700}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 24px;font-size:13px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;border-radius:10px;border:1px solid transparent;cursor:pointer;transition:all .35s var(--ease)}.btn-primary{background:var(--navy);color:#fff}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 32px rgba(23,37,43,0.26)}.btn-secondary{background:#fff;color:var(--navy);border-color:var(--line-strong)}.btn-secondary:hover{border-color:var(--blue);transform:translateY(-2px)}.topbar{position:sticky;top:0;z-index:60;background:var(--hero-dark);border-bottom:1px solid rgba(255,255,255,0.22)}.topbar-inner{height:104px;display:flex;align-items:center;justify-content:space-between}.logo-wrap{display:flex;align-items:center;line-height:0}.logo-img{height:100px;width:auto;display:block;object-fit:contain;background:transparent}.nav{display:flex;gap:32px;align-items:center}.nav a{font-size:15px;font-weight:500;color:rgba(255,255,255,0.82);position:relative;padding:4px 0}.nav a:hover{color:#fff}.nav a.active{color:var(--cyan)}.nav a:not(.btn)::after{content:'';position:absolute;left:0;right:100%;bottom:-6px;height:2px;background:var(--cyan);border-radius:2px;transition:right .3s var(--ease)}.nav a:not(.btn):hover::after{right:0}.nav a.active::after{right:0}.btn-cta{background:var(--grad) !important;color:#fff !important;border:none;border-radius:100px;text-transform:none;letter-spacing:0;font-size:15px;font-weight:600;padding:13px 28px !important}.btn-cta:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(140,197,196,0.3)}.mobile-toggle{display:none;width:42px;height:42px;border-radius:10px;border:1px solid rgba(255,255,255,0.26);background:rgba(255,255,255,0.06);color:#fff;font-size:20px;cursor:pointer}.platform-bar{position:sticky;top:104px;z-index:55;background:var(--navy);border-bottom:1px solid rgba(255,255,255,0.22);overflow-x:auto;scrollbar-width:none}.platform-bar::-webkit-scrollbar{display:none}.platform-inner{display:flex;min-width:max-content}.platform-inner a{padding:13px 18px;font-size:11px;letter-spacing:.09em;text-transform:uppercase;font-weight:600;color:rgba(255,255,255,0.58);border-right:1px solid rgba(255,255,255,0.06);transition:all .2s;position:relative}.platform-inner a::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--grad);transform:scaleX(0);transition:transform .3s var(--ease)}.platform-inner a:hover{color:#fff;background:rgba(255,255,255,0.04)}.platform-inner a:hover::after{transform:scaleX(1)}.hero-section{background:radial-gradient(120% 90% at 78% 12%,var(--hero-dark-2),var(--hero-dark) 55%);position:relative;overflow:hidden}.hero-section::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,0.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.035) 1px,transparent 1px);background-size:42px 42px;-webkit-mask-image:radial-gradient(70% 70% at 68% 35%,#000,transparent);mask-image:radial-gradient(70% 70% at 68% 35%,#000,transparent);pointer-events:none}.hero{padding:88px 0 64px;display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center;position:relative;overflow:visible}.hero::before{content:'';position:absolute;top:-30%;right:-15%;width:65%;height:90%;background:radial-gradient(circle,rgba(140,197,196,0.28),transparent 70%);filter:blur(40px);border-radius:50%;pointer-events:none}.hero-badge{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.dot{width:8px;height:8px;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 4px rgba(140,197,196,0.22);animation:pulse 2s infinite}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(140,197,196,0.45)}70%{box-shadow:0 0 0 10px rgba(140,197,196,0)}100%{box-shadow:0 0 0 0 rgba(140,197,196,0)}}.hero h1{margin-top:18px;color:#fff}.hero h1 .grad{background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero p{margin-top:18px;color:rgba(255,255,255,0.62);font-size:18px;max-width:560px;line-height:1.6}.hero-ctas{margin-top:28px;display:flex;gap:12px;flex-wrap:wrap}.hero .btn-primary{background:var(--grad);color:#fff}.hero .btn-primary:hover{box-shadow:0 16px 36px rgba(140,197,196,0.35)}.hero .btn-secondary{background:transparent;color:#fff;border-color:rgba(255,255,255,0.22)}.hero .btn-secondary:hover{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(140,197,196,0.22)}.hero-visual{position:relative;aspect-ratio:1/1;display:grid;place-items:center;overflow:visible;max-width:600px;margin:0 auto;width:100%}.cube-rings{position:absolute;left:50%;bottom:2%;width:102%;height:46%;transform:translateX(-50%);pointer-events:none;z-index:1}.cube-rings .ring{position:absolute;left:50%;top:50%;border-radius:50%;transform:translate(-50%,-50%);border:1px solid rgba(62,125,130,0.4)}.cube-rings .ring:nth-child(1){width:32%;height:32%;border-color:rgba(140,197,196,0.55)}.cube-rings .ring:nth-child(2){width:56%;height:56%;border-color:rgba(62,125,130,0.4)}.cube-rings .ring:nth-child(3){width:80%;height:80%;border-color:rgba(98,92,112,0.25)}.cube-rings .ring:nth-child(4){width:100%;height:100%;border-color:rgba(98,92,112,0.22)}.hero-visual::after{content:'';position:absolute;left:50%;top:48%;width:70%;height:70%;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(62,125,130,0.28),transparent 70%);filter:blur(40px);pointer-events:none;z-index:0}
.cube-card{width:88%;aspect-ratio:1/1;background:none;border:none;border-radius:0;display:grid;place-items:center;padding:0;position:relative;z-index:2;transition:all .6s var(--ease)}.cube-card:hover{transform:rotateY(-6deg) rotateX(4deg) translateY(-6px)}.cube-logo{width:92%;height:auto;object-fit:contain;background:transparent;filter:drop-shadow(0 30px 60px rgba(140,197,196,0.5))}.stats-bar{margin-top:32px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stat{padding:18px 20px;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.22);border-radius:14px;display:flex;gap:12px;align-items:center}.stat div>div:nth-child(1){color:#fff}.stat .small{color:rgba(255,255,255,0.55)}.stat-num{font-size:26px;font-weight:800;color:#fff}
.trusted-strip{background:var(--hero-dark);padding:36px 0 44px;border-top:1px solid rgba(255,255,255,0.06)}.trusted-label{text-align:center;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,0.35);font-weight:700}.trusted-logos{margin-top:26px;display:flex;justify-content:center;align-items:center;gap:56px;flex-wrap:wrap}.trusted-logos span{font-size:17px;font-weight:700;color:rgba(255,255,255,0.4);letter-spacing:-.01em;transition:color .3s}.trusted-logos span:hover{color:rgba(255,255,255,0.85)}.section{padding:80px 0}.section-soft{background:var(--bg-soft)}.section-navy{background:var(--navy);color:#fff;position:relative;overflow:hidden}.section-navy::before{content:'';position:absolute;inset:0;background:radial-gradient(60% 60% at 20% 20%,rgba(66,107,90,0.26),transparent),radial-gradient(50% 50% at 80% 30%,rgba(98,92,112,0.26),transparent);pointer-events:none}.section-navy .kicker{background:rgba(255,255,255,0.22);color:var(--cyan);border-color:rgba(255,255,255,0.22)}.section-navy h2{color:#fff}.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:40px}.pillar{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;transition:all .4s var(--ease)}.pillar:hover{transform:translateY(-4px);box-shadow:0 20px 40px rgba(23,37,43,0.22)}.pillar-num{font-size:28px;font-weight:800;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.service-item{display:grid;grid-template-columns:100px 1fr;gap:20px;padding:32px 0;border-top:1px solid var(--line)}.service-num{font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:600;color:var(--blue)}.service-title{font-size:24px;margin-bottom:10px;display:flex;gap:8px;align-items:center}.service-title::after{content:'↗';font-size:13px;opacity:0;transform:translateX(-6px);transition:all .3s}.service-item:hover .service-title::after{opacity:1;transform:translateX(0)}.service-cols{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:10px}.label{font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--blue);margin-bottom:6px}.small{font-size:14px;color:var(--muted);line-height:1.7}.tags{margin-top:12px;display:flex;flex-wrap:wrap;gap:6px}.tag{font-size:11px;padding:5px 10px;border-radius:100px;background:var(--bg-soft);border:1px solid var(--line);color:var(--muted)}.how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,0.22);border:1px solid rgba(255,255,255,0.22);border-radius:16px;overflow:hidden;margin-top:32px}.how-card{padding:28px;background:rgba(255,255,255,0.02)}.how-card h4{color:var(--cyan);font-size:15px;margin-bottom:8px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.card{background:#fff;border:1px solid var(--line);padding:24px;border-radius:14px;transition:all .4s var(--ease)}.card:hover{transform:translateY(-4px);box-shadow:0 20px 40px rgba(23,37,43,0.22)}.form-wrap{background:#fff;border:1px solid var(--line);padding:28px;border-radius:16px;box-shadow:0 16px 32px rgba(23,37,43,0.04);position:relative}.form-wrap::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--grad);border-radius:16px 16px 0 0}.input{width:100%;padding:12px 14px;background:var(--bg-soft);border:1px solid var(--line);border-radius:10px;font-size:14px}.input:focus{outline:none;border-color:var(--blue);background:#fff;box-shadow:0 0 0 4px rgba(140,197,196,0.255)}.textarea{min-height:110px;resize:vertical}.field{margin-bottom:14px}.field label{font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--muted);margin-bottom:5px;display:block}.error-msg{font-size:11px;color:#DC2626;display:none;margin-top:4px}.field.invalid .error-msg{display:block}.field.invalid .input{border-color:#DC2626}.form-status{margin-top:12px;padding:12px;border-radius:10px;font-size:13px;display:none}.form-status.success{display:block;background:#E0F2FE;color:#0C4A6E;border:1px solid #BAE6FD}.form-status.error{display:block;background:#FEE2E2;color:#991B1B;border:1px solid #FECACA}.honey{position:absolute;left:-9999px}.footer{padding:48px 0 28px;background:var(--navy);color:rgba(255,255,255,0.65)}.footer .logo-img{height:52px !important;filter:none !important;max-width:160px}.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:28px}.footer a{color:rgba(255,255,255,0.65);font-size:14px;line-height:2.2}.footer a:hover{color:#fff}.copy{margin-top:36px;padding-top:20px;border-top:1px solid rgba(255,255,255,0.22);display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:11.5px;color:rgba(255,255,255,0.4)}.reveal{opacity:0;transform:translateY(16px);transition:all .7s var(--ease)}.reveal.in{opacity:1;transform:translateY(0)}@media(max-width:980px){.hero{grid-template-columns:1fr;padding-top:40px}.hero-visual{order:-1;aspect-ratio:1.6/1}.pillars,.grid-3,.service-cols,.how-grid,.footer-grid{grid-template-columns:1fr}.nav{display:none;position:absolute;top:104px;left:0;right:0;background:var(--hero-dark-2);flex-direction:column;padding:20px;gap:18px;border-bottom:1px solid rgba(255,255,255,0.22)}.nav.open{display:flex}.mobile-toggle{display:flex;align-items:center;justify-content:center}.service-item{grid-template-columns:1fr}.topbar-inner{height:84px}.platform-bar{top:84px}.section{padding:56px 0}.stats-bar{grid-template-columns:1fr}.logo-img{height:74px !important;max-width:220px}}



.hero-visual{perspective:1400px}
.hero-visual::before{content:'';position:absolute;left:50%;top:50%;width:90%;height:90%;transform:translate(-50%,-50%);
background:radial-gradient(circle,rgba(140,197,196,0.26),transparent 65%);
filter:blur(36px);pointer-events:none;z-index:0}
.cube-card{transform-style:preserve-3d;will-change:transform;background:radial-gradient(circle at var(--lx,35%) var(--ly,30%),rgba(255,255,255,0.238),transparent 42%)}
/* heavy multi-axis rotate + filter glow removed for smoother 60fps */
@keyframes ambientPulse{0%,100%{transform:translate(-50%,-50%) scale(1);opacity:.9}50%{transform:translate(-50%,-50%) scale(1.06);opacity:1}}


/* Brand cube breathing */
.cube3d{
 animation:cubeBreath 6s ease-in-out infinite;
 will-change:transform;
}
@keyframes cubeBreath{
 0%,100%{transform:translateY(0) scale(1);}
 50%{transform:translateY(-8px) scale(1.025);}
}
.photon-field{
 position:absolute;inset:-120px;pointer-events:none;
}
.photon{
 position:absolute;width:3px;height:3px;border-radius:50%;
 background:#8CC5C4;
 box-shadow:0 0 10px #00B0E0;
 opacity:.75;
}


/* Full-page photon canvas */
#photonCanvas{
 position:fixed;
 inset:0;
 width:100vw;
 height:100vh;
 pointer-events:none;
 z-index:2;
}
.cube3d{position:relative;z-index:3;}

#photonCanvas{mix-blend-mode:screen;opacity:.95}


/* ===== Premium Section Reveals ===== */
.reveal{opacity:0;will-change:transform,opacity,filter}
.reveal.in{opacity:1;transition:900ms cubic-bezier(.22,1,.36,1)}
.fx-fadeup{transform:translateY(60px)}
.fx-fadeup.in{transform:none}
.fx-left{transform:translateX(-80px)}
.fx-left.in{transform:none}
.fx-right{transform:translateX(80px)}
.fx-right.in{transform:none}
.fx-scale{transform:scale(.92)}
.fx-scale.in{transform:scale(1)}
.fx-blur{filter:blur(14px);transform:scale(.98)}
.fx-blur.in{filter:blur(0);transform:none}
.fx-rotate{transform:translateY(40px) rotate(-4deg)}
.fx-rotate.in{transform:none}
.reveal,.reveal.in{
 transition-property:opacity,transform,filter;
}


/* Premium micro interactions */
.stat-value.counting{font-variant-numeric:tabular-nums}
.hover-lift{
transition:transform .35s cubic-bezier(.22,1,.36,1),
box-shadow .35s ease;
}
.hover-lift:hover{
transform:translateY(-8px);
box-shadow:0 20px 50px rgba(0,0,0,0.26);
}
.image-reveal{
clip-path:inset(0 100% 0 0);
transition:clip-path 1.2s cubic-bezier(.22,1,.36,1);
}
.image-reveal.in{
clip-path:inset(0 0 0 0);
}
.draw-line{
position:relative;
overflow:hidden;
}
.draw-line::after{
content:"";
position:absolute;
left:0;bottom:0;
height:2px;width:100%;
background:currentColor;
transform:scaleX(0);
transform-origin:left;
transition:transform .9s ease;
}
.draw-line.in::after{transform:scaleX(1);}


/* Header spacing refinement */
header nav,
.navbar,
.header-nav{
    gap:clamp(20px,2vw,36px);
}
header .container,
.navbar .container{
    display:flex;
    align-items:center;
    justify-content:space-between;
}
header nav a,
.navbar a{
    padding:10px 4px;
    letter-spacing:.02em;
}
.logo{
    margin-right:20px;
}
.header-actions{
    margin-left:24px;
    display:flex;
    align-items:center;
    gap:14px;
}

/* Capability groups around hero cube + neural-network connectors */
.capability-group{
position:absolute;
width:30.6%;
min-width:150px;
min-height:46px;
padding:12px 18px;
background:rgba(255,255,255,0.05);
backdrop-filter:blur(16px);
border:1px solid rgba(255,255,255,0.22);
border-radius:999px;
color:#fff;
font-size:14px;
font-weight:600;
display:flex;
flex-direction:column;
justify-content:center;
transition:all .35s ease;
box-shadow:0 8px 24px rgba(0,0,0,0.26);
z-index:2;
animation:floatGroup 6s ease-in-out infinite;
}
.capability-group small{display:none;color:#D9A98A;font-weight:400;margin-top:8px}
.capability-group:hover{border-color:rgba(98,92,112,0.6);transform:translateY(-4px);border-radius:24px;min-height:120px;animation-play-state:paused;z-index:5}
.capability-group:hover small{display:block;line-height:1.5}
.capability-group.g1{top:1.6%;left:34.7%;animation-delay:0s}
.capability-group.g2{top:17.7%;left:0;animation-delay:.9s}
.capability-group.g3{top:17.7%;right:0;animation-delay:1.8s}
.capability-group.g4{bottom:15.3%;left:0;animation-delay:2.7s}
.capability-group.g5{bottom:15.3%;right:0;animation-delay:3.6s}
.capability-group.g6{bottom:1.6%;left:34.7%;animation-delay:4.5s}
@keyframes floatGroup{0%,100%{translate:0 0}50%{translate:0 -6px}}

.neuro-svg{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;overflow:visible}
.neuro-line{stroke:rgba(62,125,130,0.22);stroke-width:1.5;fill:none}
.neuro-pulse{stroke:var(--cyan);stroke-width:2.5;fill:none;stroke-linecap:round;stroke-dasharray:6 94;filter:drop-shadow(0 0 4px rgba(140,197,196,0.85));animation:neuroFlow 2.8s linear infinite}
@keyframes neuroFlow{from{stroke-dashoffset:0}to{stroke-dashoffset:-100}}
@media(prefers-reduced-motion:reduce){.capability-group,.neuro-pulse{animation:none !important}}

.capability-group,.neuro-svg{display:none!important;}
.hero-visual{display:flex;align-items:center;justify-content:center;}
.cube-card{will-change:transform;animation:heroFloat 8s ease-in-out infinite;}
.cube-logo{will-change:transform;animation:heroBreath 6s ease-in-out infinite;}
.hero-section::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 70% 40%,rgba(140,197,196,0.26),transparent 42%);pointer-events:none;}
@keyframes heroFloat{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,-10px,0)}}
@keyframes heroBreath{0%,100%{transform:scale(1)}50%{transform:scale(1.03)}}


/* ===== Performance & smoothness polish ===== */
#photonCanvas{
  position:fixed;
  inset:0;
  width:100vw;
  height:100vh;
  pointer-events:none;
  z-index:2;
  mix-blend-mode:screen;
  opacity:.55; /* lower visual cost */
  will-change:contents;
}

/* Prefer compositing layers only where needed */
.cube-card{
  will-change:transform;
  backface-visibility:hidden;
}
.cube-logo{
  will-change:transform;
  backface-visibility:hidden;
}

/* Soften expensive continuous filter animations on low-power */
@media (max-width:980px){
  .cube-card{animation:heroFloat 10s ease-in-out infinite !important;}
  .cube-logo{animation:heroBreath 8s ease-in-out infinite !important;}
  .hero-visual::before{animation:none !important;filter:none !important;}
  #photonCanvas{opacity:.35;}
}

/* Stronger reduced-motion: kill continuous motion */
@media (prefers-reduced-motion:reduce){
  .cube-card,
  .cube-logo,
  .hero-visual::before,
  .dot,
  .capability-group,
  .neuro-pulse{
    animation:none !important;
  }
  #photonCanvas{display:none !important;}
  .reveal{
    opacity:1 !important;
    transform:none !important;
    filter:none !important;
    transition:none !important;
  }
  .hover-lift:hover{transform:none !important;box-shadow:none !important;}
}

/* Reveal transitions — stick to opacity + transform only */
.reveal{
  opacity:0;
  will-change:transform,opacity;
  transition:opacity 700ms cubic-bezier(.22,1,.36,1),
              transform 700ms cubic-bezier(.22,1,.36,1);
}
.reveal.in{
  opacity:1;
  transform:none;
  filter:none;
}
.fx-fadeup{transform:translateY(36px)}
.fx-left{transform:translateX(-40px)}
.fx-right{transform:translateX(40px)}
.fx-scale{transform:scale(.96)}
.fx-blur{transform:translateY(20px)} /* drop expensive blur filter */
.fx-rotate{transform:translateY(24px)}

/* Hover lift — GPU friendly */
.hover-lift{
  transition:transform .3s cubic-bezier(.22,1,.36,1),
              box-shadow .3s ease;
}
.hover-lift:hover{
  transform:translateY(-6px);
  box-shadow:0 16px 40px rgba(0,0,0,0.238);
}

/* Image reveal without layout thrash */
.image-reveal{
  clip-path:inset(0 100% 0 0);
  transition:clip-path 1s cubic-bezier(.22,1,.36,1);
}
.image-reveal.in{
  clip-path:inset(0 0 0 0);
}

/* Logo sizing safety after compression */
.logo-img{height:100px;width:auto;max-width:300px;}
.cube-logo{max-width:100%;height:auto;}
.footer .logo-img{height:44px !important;max-width:140px;}

/* Missing utility styles used in markup */
.section-eyebrow{
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--blue);
  margin-bottom:10px;
}
.section-intro{
  max-width:640px;
  color:var(--muted);
  margin:12px 0 28px;
  font-size:17px;
}
.platform-grid{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:8px;
}
.platform-grid span{
  font-size:13px;
  font-weight:600;
  padding:10px 16px;
  border-radius:100px;
  background:var(--bg-soft);
  border:1px solid var(--line);
  color:var(--ink);
  transition:border-color .25s, transform .25s;
}
.platform-grid span:hover{
  border-color:var(--blue);
  transform:translateY(-2px);
}
.breadcrumb{
  font-size:13px;
  color:var(--muted);
  margin-bottom:12px;
}
.breadcrumb a{color:var(--blue);}
.prose h3{margin:20px 0 8px;font-size:18px;}
.prose p{margin-bottom:12px;color:var(--muted);}
.hairline{height:1px;background:var(--line);}


/* ===== New logo palette polish ===== */
:root{
  --glow-cyan: rgba(140,197,196,0.45);
  --glow-purple: rgba(98,92,112,0.35);
}

/* Header logo sits better with square mark */
.topbar-inner{height:110px}
.platform-bar{top:110px}
@media(max-width:980px){
  .topbar-inner{height:84px}
  .platform-bar{top:84px}
  .nav{top:84px}
}

/* Cube hero visual — cyan ambient matching logo glow */
.hero-visual::before{
  background:radial-gradient(circle,rgba(140,197,196,0.24),transparent 68%) !important;
}
.hero-visual::after{
  background:radial-gradient(circle,rgba(98,92,112,0.22),transparent 70%) !important;
}
.cube-logo{
  filter:drop-shadow(0 20px 50px rgba(140,197,196,0.55)) drop-shadow(0 0 30px rgba(98,92,112,0.25));
}

/* Gradient text & accents feel cooler */
.hero-badge,.hero h1 .grad,.pillar-num{
  background:var(--grad);
  -webkit-background-clip:text;
  background-clip:text;
}

/* Soft section background slightly cooler */
.section-soft{background:linear-gradient(180deg,#F2F0E9 0%,#fff 100%)}

/* Cards pick up subtle blue border on hover */
.card:hover,.pillar:hover{
  border-color:rgba(140,197,196,0.25);
}

/* Platform pills */
.platform-grid span:hover{
  border-color:var(--cyan);
  color:var(--navy);
  background:rgba(140,197,196,0.22);
}

/* Form gradient top bar already uses --grad */

/* Favicon-friendly: ensure icon is crisp */
link[rel="icon"]{/* noop */}




/* ===== Premium hero cube (sample-inspired, logo palette) ===== */
html, body { overflow-x: hidden; max-width: 100vw; }

.logo-img {
  height: 96px !important;
  width: auto !important;
  max-width: 300px !important;
  object-fit: contain !important;
}
.footer .logo-img {
  height: 72px !important;
  max-width: 200px !important;
  filter: none !important;
}
.topbar-inner { height: 114px !important; }
.platform-bar { top: 114px !important; }
@media (max-width: 980px) {
  .logo-img { height: 70px !important; max-width: 210px !important; }
  .topbar-inner { height: 88px !important; }
  .platform-bar { top: 88px !important; }
  .nav { top: 88px !important; }
}

.hero-section {
  width: 100% !important;
  max-width: 100vw !important;
  overflow: hidden !important;
  background: radial-gradient(120% 100% at 70% 20%, #16221F 0%, #0E1715 55%, #0A100E 100%) !important;
}
.hero-section::before {
  background-image: none !important; /* cleaner, less grid noise */
  background: radial-gradient(ellipse 80% 60% at 75% 40%, rgba(140,197,196,0.22), transparent 60%) !important;
}
.hero::before { display: none !important; }

.hero-visual {
  position: relative !important;
  width: 100% !important;
  max-width: 540px !important;
  aspect-ratio: 1 / 1.05 !important;
  margin: 0 auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: visible !important;
  perspective: 1400px !important;
}

/* Soft floor glow under cube */
.cube-glow {
  position: absolute;
  left: 50%;
  bottom: 8%;
  width: 70%;
  height: 28%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at center, rgba(140,197,196,0.35) 0%, rgba(98,92,112,0.22) 45%, transparent 70%);
  filter: blur(18px);
  z-index: 0;
  pointer-events: none;
}

/* Orbital rings (like sample) */
.cube-orbit {
  position: absolute;
  left: 50%;
  bottom: 6%;
  width: 92%;
  height: 42%;
  transform: translateX(-50%);
  z-index: 1;
  pointer-events: none;
}
.orbit {
  position: absolute;
  left: 50%;
  top: 50%;
  border-radius: 50%;
  border: 1.5px solid rgba(140,197,196,0.22);
  transform: translate(-50%, -50%) rotateX(72deg);
  box-shadow: 0 0 12px rgba(140,197,196,0.22);
}
.orbit-1 { width: 42%; height: 42%; border-color: rgba(140,197,196,0.4); }
.orbit-2 { width: 68%; height: 68%; border-color: rgba(62,125,130,0.28); }
.orbit-3 { width: 94%; height: 94%; border-color: rgba(98,92,112,0.26); }

.cube-card {
  position: relative !important;
  z-index: 3 !important;
  width: 78% !important;
  max-width: 420px !important;
  aspect-ratio: 1 / 1 !important;
  display: grid !important;
  place-items: center !important;
  background: none !important;
  border: none !important;
  padding: 0 !important;
  transform-style: preserve-3d !important;
  will-change: transform !important;
  animation: heroFloat 8s ease-in-out infinite !important;
  backface-visibility: hidden !important;
}
.cube-logo {
  width: 100% !important;
  height: auto !important;
  max-width: 100% !important;
  object-fit: contain !important;
  background: transparent !important;
  filter:
    drop-shadow(0 25px 50px rgba(140,197,196,0.4))
    drop-shadow(0 8px 24px rgba(98,92,112,0.25)) !important;
  animation: heroBreath 6.5s ease-in-out infinite !important;
  will-change: transform !important;
  backface-visibility: hidden !important;
  image-rendering: auto;
}

/* Tiny floating pixel particles around cube (CSS, light) */
.cube-particles {
  position: absolute;
  inset: 8% 5%;
  z-index: 2;
  pointer-events: none;
  background-image:
    radial-gradient(circle, #8CC5C4 1.2px, transparent 1.2px),
    radial-gradient(circle, #625C70 1px, transparent 1px),
    radial-gradient(circle, #7adfff 1.4px, transparent 1.4px),
    radial-gradient(circle, #3E7D82 1px, transparent 1px);
  background-size: 90px 90px, 120px 120px, 70px 70px, 150px 150px;
  background-position: 10% 20%, 80% 30%, 25% 70%, 70% 75%;
  opacity: 0.55;
  animation: particleDrift 14s ease-in-out infinite alternate;
  mask-image: radial-gradient(circle at 50% 45%, #000 20%, transparent 70%);
  -webkit-mask-image: radial-gradient(circle at 50% 45%, #000 20%, transparent 70%);
}
@keyframes particleDrift {
  0% { transform: translateY(0) scale(1); opacity: .45; }
  100% { transform: translateY(-10px) scale(1.03); opacity: .7; }
}

@keyframes heroFloat {
  0%, 100% { transform: translate3d(0, 0, 0); }
  50% { transform: translate3d(0, -14px, 0); }
}
@keyframes heroBreath {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.04); }
}

/* Photon field stronger + brand cyan */
#photonCanvas {
  opacity: 0.8 !important;
  mix-blend-mode: screen !important;
  z-index: 1 !important;
}

/* Hide legacy rings if any remain */
.cube-rings { display: none !important; }
.hero-visual::before,
.hero-visual::after {
  display: none !important;
}

@media (prefers-reduced-motion: reduce) {
  .cube-card, .cube-logo, .cube-particles { animation: none !important; }
  #photonCanvas { display: none !important; }
}

@media (max-width: 980px) {
  .hero-visual { max-width: 380px !important; margin-bottom: 12px; }
  .cube-card { max-width: 300px !important; }
}


/* ===== Chrome / Chromium visibility + quality fixes ===== */
/* Avoid filter+3D transform on same layer (Chrome GPU bug) */
.cube-card {
  transform-style: preserve-3d !important;
  /* no filter here */
  filter: none !important;
}
.cube-logo {
  filter: none !important; /* drop-shadow moved to pseudo glow */
  display: block !important;
  width: 100% !important;
  height: auto !important;
  opacity: 1 !important;
  visibility: visible !important;
  /* force independent layer without filter */
  transform: translateZ(0);
  -webkit-transform: translateZ(0);
}
/* Glow via parent shadow box instead of filter on img */
.cube-card::after {
  content: '';
  position: absolute;
  left: 10%;
  right: 10%;
  bottom: 2%;
  height: 18%;
  background: radial-gradient(ellipse at center, rgba(140,197,196,0.5), rgba(98,92,112,0.255) 50%, transparent 70%);
  filter: blur(16px);
  z-index: -1;
  pointer-events: none;
  border-radius: 50%;
}

/* Header logo must stay opaque and unfiltered */
.logo-img {
  filter: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  display: block !important;
  height: 100px !important;
  max-width: 320px !important;
  width: auto !important;
  object-fit: contain !important;
  /* prevent Chrome subpixel disappearing */
  transform: translateZ(0);
  -webkit-transform: translateZ(0);
}
.topbar .logo-img {
  /* ensure contrast on dark bar */
  background: transparent !important;
}
.footer .logo-img {
  height: 72px !important;
  max-width: 200px !important;
  filter: none !important;
}

/* Photon: screen blend can hide on some Chrome GPUs — soften */
#photonCanvas {
  mix-blend-mode: screen !important;
  opacity: 0.7 !important;
  pointer-events: none !important;
}

/* Ensure hero visual doesn't clip SVG */
.hero-visual {
  overflow: visible !important;
}
.cube-card img,
.cube-logo {
  max-width: 100%;
  height: auto;
}

/* ===== Chromium fix: header logo + hero cube invisible in Chrome only ===== */
/* Root cause: main.js was applying the scroll-reveal effect (.image-reveal, which
   starts at clip-path:inset(0 100% 0 0) — i.e. fully clipped/invisible — and only
   un-clips once an IntersectionObserver marks it .in) to EVERY <img> on the page,
   including the header/footer logo and the hero cube image. Combined with the
   cube's GPU-promoted layer (will-change + backface-visibility + preserve-3d),
   Chromium was not consistently repainting the clip-path change on that layer, so
   the element stayed clipped to zero width forever. Firefox happened to repaint
   it correctly, which is why the same markup looked fine there. main.js has been
   updated to never apply .image-reveal to these elements; this rule is a hard
   safety net so they can never be hidden this way again, in any browser. */
.logo-img,
.cube-logo,
.tech-logo-stage img,
.service-mark-stage img {
  clip-path: none !important;
  -webkit-clip-path: none !important;
  opacity: 1 !important;
  visibility: visible !important;
}


/* New brand logo sizing + visibility */
.logo-img {
  height: 88px !important;
  width: auto !important;
  max-width: 280px !important;
  object-fit: contain !important;
  filter: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  display: block !important;
  background: transparent !important;
  transform: translateZ(0);
  -webkit-transform: translateZ(0);
}
.topbar-inner { height: 108px !important; }
.platform-bar { top: 108px !important; }
.footer .logo-img {
  height: 64px !important;
  max-width: 200px !important;
  filter: none !important;
}
@media (max-width: 980px) {
  .logo-img { height: 64px !important; max-width: 200px !important; }
  .topbar-inner { height: 84px !important; }
  .platform-bar { top: 84px !important; }
}

/* Hero uses real brand cube PNG */
.cube-logo {
  filter: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-width: 100% !important;
}
.cube-card {
  filter: none !important;
  max-width: 400px !important;
  width: 82% !important;
}


/* ===== Achievement stats (hero) ===== */
.stats-bar{
  margin-top:36px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
}
.stat-achieve{
  position:relative;
  display:flex;
  gap:14px;
  align-items:flex-start;
  padding:20px 18px 18px;
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.22);
  border-radius:16px;
  overflow:hidden;
  cursor:default;
  transition:transform .35s cubic-bezier(.22,1,.36,1),
              border-color .35s ease,
              box-shadow .35s ease,
              background .35s ease;
}
.stat-achieve::after{
  content:'';
  position:absolute;
  left:18px;
  right:18px;
  bottom:0;
  height:2px;
  background:var(--grad);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .45s cubic-bezier(.22,1,.36,1);
  border-radius:2px;
}
.stat-achieve:hover{
  transform:translateY(-6px);
  border-color:rgba(140,197,196,0.35);
  background:rgba(255,255,255,0.06);
  box-shadow:0 16px 40px rgba(140,197,196,0.22), 0 0 0 1px rgba(140,197,196,0.22);
}
.stat-achieve:hover::after{
  transform:scaleX(1);
}
.stat-icon{
  flex-shrink:0;
  width:42px;
  height:42px;
  border-radius:12px;
  display:grid;
  place-items:center;
  color:#7adfff;
  background:linear-gradient(135deg,rgba(140,197,196,0.238),rgba(98,92,112,0.22));
  border:1px solid rgba(140,197,196,0.22);
  box-shadow:0 0 20px rgba(140,197,196,0.255);
  transition:transform .35s ease, box-shadow .35s ease;
}
.stat-achieve:hover .stat-icon{
  transform:scale(1.06);
  box-shadow:0 0 28px rgba(140,197,196,0.28);
}
.stat-body{min-width:0}
.stat-achieve .stat-num{
  font-size:28px;
  font-weight:800;
  line-height:1.1;
  letter-spacing:-.02em;
  background:var(--grad);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  font-variant-numeric:tabular-nums;
}
.stat-label{
  margin-top:4px;
  font-weight:700;
  font-size:13px;
  color:#fff;
  letter-spacing:.01em;
}
.stat-achieve .small{
  margin-top:2px;
  font-size:12px;
  color:rgba(255,255,255,0.5);
  line-height:1.4;
}
@media(max-width:980px){
  .stats-bar{grid-template-columns:1fr;gap:10px}
  .stat-achieve{padding:16px}
}

/* ===== Monochrome tech symbols strip ===== */
.trusted-strip{
  background:var(--hero-dark);
  padding:42px 0 48px;
  border-top:1px solid rgba(255,255,255,0.06);
}
.trusted-label{
  text-align:center;
  font-size:11px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:rgba(255,255,255,0.35);
  font-weight:700;
}
.tech-symbols{
  margin-top:28px;
  display:flex;
  justify-content:center;
  align-items:stretch;
  gap:12px 18px;
  flex-wrap:wrap;
}
.tech-item{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  min-width:72px;
  padding:12px 10px 10px;
  border-radius:14px;
  color:rgba(255,255,255,0.42);
  transition:color .3s ease, background .3s ease, transform .3s ease;
}
.tech-item:hover{
  color:rgba(255,255,255,0.92);
  background:rgba(255,255,255,0.04);
  transform:translateY(-3px);
}
.tech-mark{
  width:40px;
  height:32px;
  display:grid;
  place-items:center;
}
.tech-mark svg{
  width:36px;
  height:28px;
  display:block;
}
.tech-name{
  font-size:11px;
  font-weight:600;
  letter-spacing:.02em;
  text-align:center;
  white-space:nowrap;
}


/* ===== Trust & credibility ===== */
.ph-note{font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:rgba(90,107,125,0.75);margin-left:4px}
.footer-contact a{color:rgba(255,255,255,0.65)}
.footer-contact a:hover{color:#fff}
.footer .ph-note{color:rgba(255,255,255,0.35)}

.trust-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:28px}
.trust-metric{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px 16px}
.trust-metric-value{font-size:28px;font-weight:800;letter-spacing:-.03em;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.trust-metric-label{margin-top:6px;font-size:13px;color:var(--muted);line-height:1.45}
.trust-logos{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:22px}
.trust-logo-slot{display:grid;place-items:center;min-height:72px;border:1px dashed var(--line-strong);border-radius:12px;background:rgba(255,255,255,0.7);font-size:12px;font-weight:600;color:var(--muted)}
.trust-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.trust-chips span{font-size:12px;font-weight:600;padding:6px 12px;border-radius:100px;background:#fff;border:1px solid var(--line);color:var(--muted)}

.testimonial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:28px}
.testimonial-card{margin:0;background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;display:flex;flex-direction:column;gap:16px}
.testimonial-card blockquote{margin:0;font-size:15px;line-height:1.65;color:var(--ink)}
.testimonial-card figcaption{display:flex;gap:12px;align-items:center}
.t-avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-weight:700;color:#fff;background:var(--grad);flex-shrink:0}
.t-name{font-size:14px;font-weight:700}
.t-role{font-size:12px;color:var(--muted);margin-top:2px}

.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:28px}
.team-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px}
.team-photo{height:140px;border-radius:12px;background:var(--bg-soft);border:1px dashed var(--line-strong);display:grid;place-items:center;font-size:12px;font-weight:600;color:var(--muted);margin-bottom:14px}
.team-card h3{font-size:17px;margin-bottom:4px}
.team-title{font-size:13px;font-weight:600;color:var(--blue);margin-bottom:10px}
.team-link{display:inline-block;margin-top:12px;font-size:13px;font-weight:600;color:var(--blue)}
.team-link:hover{text-decoration:underline}

.trust-list{margin:12px 0 0;padding-left:18px;color:var(--muted);font-size:14px;line-height:1.8}
.trust-list a{color:var(--blue);font-weight:600}

.legal-page{max-width:800px}
.legal-body{margin-top:28px}
.legal-body h2{font-size:22px;margin:28px 0 10px}
.legal-body p{color:var(--muted);margin-bottom:12px;line-height:1.7}
.legal-body a{color:var(--blue)}

@media(max-width:980px){
  .trust-metrics,.trust-logos,.testimonial-grid,.team-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .trust-metrics,.trust-logos,.testimonial-grid,.team-grid{grid-template-columns:1fr}
}


/* ===== Accessibility (WCAG 2.2 AA) ===== */
.skip-link{
  position:absolute;
  left:12px;
  top:12px;
  z-index:10000;
  padding:12px 18px;
  background:#fff;
  color:#17252B;
  font-weight:700;
  font-size:14px;
  border-radius:10px;
  border:2px solid #8CC5C4;
  box-shadow:0 8px 24px rgba(23,37,43,0.26);
  transform:translateY(-150%);
  transition:transform .2s ease;
}
.skip-link:focus{
  transform:translateY(0);
  outline:3px solid #625C70;
  outline-offset:3px;
}

/* Consistent focus ring — do not remove outlines sitewide */
:focus{outline:none}
:focus-visible{
  outline:3px solid #8CC5C4;
  outline-offset:3px;
  border-radius:4px;
}
.btn:focus-visible,
.btn-cta:focus-visible{
  outline:3px solid #D9A98A;
  outline-offset:3px;
  box-shadow:0 0 0 6px rgba(140,197,196,0.25);
}
.input:focus-visible,
select.input:focus-visible,
textarea.input:focus-visible{
  outline:3px solid #8CC5C4;
  outline-offset:2px;
  border-color:#3E7D82;
}
.nav a:focus-visible{
  outline:3px solid #8CC5C4;
  outline-offset:6px;
  border-radius:4px;
}
.platform-inner a:focus-visible{
  outline:2px solid #8CC5C4;
  outline-offset:-2px;
}
.card:focus-within,
.pillar:focus-within,
.testimonial-card:focus-within,
.team-card:focus-within{
  box-shadow:0 0 0 3px rgba(140,197,196,0.35);
}

/* Error text contrast */
.error-msg{color:#B91C1C}
.form-status.error{color:#7F1D1D;background:#FEE2E2;border-color:#FECACA}
.form-status.success{color:#0C4A6E;background:#E0F2FE;border-color:#BAE6FD}

/* Improve muted text slightly for AA on white where practical */
.small{color:#4A5B6C}

/* Mobile nav open state */
.nav.open{display:flex}
body.nav-open{overflow:hidden}

/* Reduced motion — comprehensive */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
    scroll-behavior:auto !important;
  }
  .reveal{opacity:1 !important;transform:none !important;filter:none !important}
  .cube-card,.stat-achieve,.hover-lift{transition:none !important}
  .dnode,.orbit,.photon{animation:none !important}
}


/* Perf: content-visibility for below-fold sections */
.section:not(.hero-section){
  content-visibility:auto;
  contain-intrinsic-size:1px 800px;
}
img{max-width:100%;height:auto}

/* =========================================================
   Premium UI polish — spacing, type, motion, components
   ========================================================= */
:root{
  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-5:24px;
  --space-6:32px;
  --space-7:48px;
  --space-8:64px;
  --space-9:96px;
  --radius-sm:10px;
  --radius-md:14px;
  --radius-lg:18px;
  --radius-pill:999px;
  --shadow-sm:0 4px 16px rgba(23,37,43,0.06);
  --shadow-md:0 12px 32px rgba(23,37,43,0.22);
  --shadow-lg:0 20px 48px rgba(23,37,43,0.22);
  --shadow-glow:0 16px 40px rgba(140,197,196,0.26);
  --ease-out:cubic-bezier(.22,1,.36,1);
  --ease-soft:cubic-bezier(.16,1,.3,1);
}

/* Type rhythm */
body{
  font-size:16.5px;
  line-height:1.7;
  letter-spacing:-0.01em;
}
h1{
  line-height:1.05;
  letter-spacing:-0.035em;
  text-wrap:balance;
}
h2, .section-title{
  line-height:1.12;
  letter-spacing:-0.03em;
  text-wrap:balance;
}
h3{
  line-height:1.25;
  letter-spacing:-0.02em;
  text-wrap:balance;
}
p{text-wrap:pretty}
.section-intro{
  margin-top:var(--space-4);
  max-width:640px;
  font-size:17.5px;
  line-height:1.7;
  color:var(--muted);
}
.kicker{
  letter-spacing:.14em;
  padding:7px 14px;
}

/* Section vertical rhythm */
.section{padding:var(--space-9) 0}
.section-soft{padding:var(--space-9) 0}
.hero{padding:96px 0 72px;gap:56px}
.hero-lead, .hero p{
  font-size:18px;
  line-height:1.7;
  max-width:540px;
}
.hero-ctas{margin-top:var(--space-6);gap:14px}
.hero .btn-primary{
  box-shadow:0 10px 28px rgba(140,197,196,0.28);
}
.hero .btn-primary:hover{
  box-shadow:0 16px 40px rgba(140,197,196,0.38);
  transform:translateY(-3px);
}

/* Buttons — unified micro-interactions */
.btn{
  border-radius:var(--radius-sm);
  padding:15px 26px;
  transition:
    transform .35s var(--ease-out),
    box-shadow .35s var(--ease-out),
    background .25s ease,
    border-color .25s ease,
    color .25s ease;
}
.btn:active{transform:translateY(0) scale(.98)}
.btn-cta{
  transition:
    transform .35s var(--ease-out),
    box-shadow .35s var(--ease-out),
    filter .25s ease !important;
}
.btn-cta:hover{
  filter:brightness(1.05);
  box-shadow:0 14px 32px rgba(140,197,196,0.32);
}

/* Cards & surfaces */
.card,
.pillar,
.cap-card,
.testimonial-card,
.team-card,
.proof-card,
.trust-metric,
.form-wrap,
.how-card{
  border-radius:var(--radius-lg);
}
.card,
.pillar,
.cap-card,
.testimonial-card,
.team-card,
.proof-card,
.trust-metric{
  padding:var(--space-5);
  transition:
    transform .4s var(--ease-out),
    box-shadow .4s var(--ease-out),
    border-color .3s ease;
}
.card:hover,
.pillar:hover,
.cap-card:hover,
.proof-card:hover,
.team-card:hover{
  transform:translateY(-6px);
  box-shadow:var(--shadow-md);
  border-color:rgba(140,197,196,0.22);
}
.cap-icon,
.stat-icon{
  width:44px;
  height:44px;
  border-radius:12px;
}

/* Grids */
.pillars,
.capability-grid,
.grid-3,
.proof-grid,
.testimonial-grid,
.team-grid,
.trust-metrics{
  gap:var(--space-4);
  margin-top:var(--space-6);
}

/* Hero cube depth */
.hero-visual{
  filter:drop-shadow(0 30px 60px rgba(140,197,196,0.255));
}
.cube-card{
  animation:heroFloat 9s var(--ease-soft) infinite;
}
.cube-logo{
  animation:heroBreath 7s var(--ease-soft) infinite;
  filter:drop-shadow(0 24px 48px rgba(140,197,196,0.45));
}
.hero-section::after{
  content:'';
  position:absolute;
  inset:auto 0 0 0;
  height:120px;
  background:linear-gradient(to bottom,transparent,rgba(6,14,28,0.35));
  pointer-events:none;
}

/* Stats */
.stat-achieve{
  border-radius:var(--radius-lg);
  padding:20px 18px;
}
.stat-achieve:hover{
  transform:translateY(-6px);
  box-shadow:0 16px 40px rgba(140,197,196,0.238);
}

/* Nav polish */
.topbar{
  backdrop-filter:blur(12px);
  background:rgba(6,14,28,0.92);
  transition:box-shadow .3s ease, background .3s ease;
}
.topbar.is-scrolled{
  box-shadow:0 8px 32px rgba(0,0,0,0.25);
}
.nav a{
  transition:color .25s ease;
}
.nav a:not(.btn)::after{
  transition:right .35s var(--ease-out);
}
.nav.open{
  animation:navIn .35s var(--ease-out);
}
@keyframes navIn{
  from{opacity:0;transform:translateY(-8px)}
  to{opacity:1;transform:translateY(0)}
}
.mobile-toggle{
  transition:background .25s ease, border-color .25s ease, transform .2s ease;
}
.mobile-toggle:hover{
  background:rgba(255,255,255,0.22);
  border-color:rgba(255,255,255,0.28);
}
.mobile-toggle:active{transform:scale(.96)}

/* Forms */
.input,
select.input,
textarea.input{
  border-radius:var(--radius-sm);
  padding:13px 14px;
  transition:
    border-color .25s ease,
    box-shadow .25s ease,
    background .25s ease;
}
.input:hover{
  border-color:rgba(23,37,43,0.26);
}
.input:focus,
.input:focus-visible{
  border-color:var(--blue);
  box-shadow:0 0 0 4px rgba(140,197,196,0.26);
  background:#fff;
}
.form-wrap{
  box-shadow:var(--shadow-sm);
  padding:var(--space-6);
}
.form-status{
  transition:opacity .3s ease, transform .3s ease;
  animation:statusIn .35s var(--ease-out);
}
@keyframes statusIn{
  from{opacity:0;transform:translateY(6px)}
  to{opacity:1;transform:translateY(0)}
}
.field{margin-bottom:var(--space-4)}
.field label{
  letter-spacing:.1em;
  margin-bottom:6px;
}

/* Footer */
.footer{padding:var(--space-8) 0 var(--space-6)}
.footer-grid{gap:var(--space-6)}
.footer a{
  transition:color .25s ease;
}
.copy{
  margin-top:var(--space-7);
  padding-top:var(--space-5);
  font-size:12px;
}

/* Scroll reveals — calmer */
.reveal{
  transition:
    opacity .8s var(--ease-out),
    transform .8s var(--ease-out),
    filter .8s var(--ease-out);
}
.fx-fadeup{transform:translateY(28px)}
.fx-left{transform:translateX(-32px)}
.fx-right{transform:translateX(32px)}
.fx-scale{transform:scale(.97)}

/* Service items */
.service-item{
  padding:var(--space-6) 0;
  transition:background .3s ease;
}
.service-title{
  transition:color .25s ease;
}
.service-item:hover .service-title{color:var(--blue)}

/* Platform bar */
.platform-inner a{
  transition:color .2s ease, background .2s ease;
}

/* Testimonials / team already structured — refine */
.testimonial-card blockquote{
  font-size:15.5px;
  line-height:1.7;
}
.team-photo{
  transition:border-color .3s ease, background .3s ease;
}
.team-card:hover .team-photo{
  border-color:rgba(140,197,196,0.35);
}

/* Trusted strip */
.trusted-strip{padding:48px 0 52px}
.tech-item{
  transition:color .3s ease, background .3s ease, transform .3s var(--ease-out);
}

/* Legal pages */
.legal-body h2{margin-top:var(--space-6)}
.legal-body p{line-height:1.75}

/* Mobile refinements */
@media (max-width:980px){
  .section,
  .section-soft{padding:var(--space-8) 0}
  .hero{padding:48px 0 56px;gap:var(--space-6)}
  .hero-ctas .btn{width:100%;justify-content:center}
  .nav{
    top:84px;
    padding:var(--space-5);
    gap:var(--space-4);
  }
  .nav a{
    padding:12px 4px;
    min-height:44px;
    display:flex;
    align-items:center;
  }
  .mobile-toggle{
    width:44px;
    height:44px;
  }
  .footer-grid{gap:var(--space-5)}
  .form-wrap{padding:var(--space-5)}
}
@media (max-width:600px){
  body{font-size:16px}
  h1{font-size:clamp(34px,10vw,48px)}
  .stats-bar{gap:10px}
  .trust-metrics,
  .testimonial-grid,
  .team-grid{gap:12px}
}

/* Touch targets */
@media (pointer:coarse){
  .nav a:not(.btn),
  .platform-inner a,
  .footer a{
    min-height:44px;
    display:inline-flex;
    align-items:center;
  }
  .btn{min-height:48px}
}

/* Reduced motion already handled globally — keep polish calm */
@media (prefers-reduced-motion:reduce){
  .nav.open{animation:none}
  .form-status{animation:none}
  .hero-section::after{display:none}
}

/* =========================================================
   Homepage polish — section rhythm, placeholders, wave, cards
   ========================================================= */

/* 2. Section background rhythm */
#trust{
  padding-top:64px;
  padding-bottom:64px;
}
#testimonials{
  background:linear-gradient(180deg,#ffffff 0%,var(--bg-soft) 100%);
}
#team{
  /* inherits section-soft */
}

/* 3. Designed empty states for logo / photo slots */
.trust-logo-slot,
.team-photo{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  text-align:center;
}
.slot-icon{
  width:28px;
  height:28px;
  color:var(--muted);
  opacity:.72;
  flex-shrink:0;
}
.trust-logo-slot{
  min-height:88px;
  padding:14px 10px;
}
.team-photo{
  height:170px;
  margin-bottom:16px;
  gap:10px;
}

/* 4. Dark strip → light content wave divider */
.trusted-strip{
  position:relative;
  padding-bottom:72px; /* room for wave */
  overflow:hidden;
}
.trusted-strip .strip-wave{
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  width:100%;
  height:48px;
  display:block;
  pointer-events:none;
  z-index:1;
}

/* 5. Testimonial elevation + team card proportion */
.testimonial-card{
  box-shadow:0 12px 24px rgba(23,37,43,0.06);
  border-color:rgba(23,37,43,0.22);
}
.testimonial-card:hover{
  box-shadow:0 16px 36px rgba(23,37,43,0.22);
}
.team-card{
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
}
.team-card .team-photo{
  width:100%;
}
.team-card h3,
.team-card .team-title,
.team-card .small{
  text-align:center;
}
.team-card .team-link{
  align-self:center;
}

@media (max-width:980px){
  #trust{
    padding-top:48px;
    padding-bottom:48px;
  }
  .trusted-strip{
    padding-bottom:64px;
  }
  .trusted-strip .strip-wave{
    height:36px;
  }
  .team-photo{
    height:150px;
  }
}
@media (max-width:600px){
  .team-photo{
    height:140px;
  }
}

/* Contact CTA two-column — responsive */
.contact-cta-grid{
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:48px;
  align-items:start;
}
@media (max-width:980px){
  .contact-cta-grid{
    grid-template-columns:1fr;
    gap:28px;
  }
}

/* =========================================================
   Shared page header + About page
   ========================================================= */

.page-header{
  position:relative;
  overflow:hidden;
  background:radial-gradient(120% 100% at 70% 20%,var(--hero-dark-2) 0%,var(--hero-dark) 55%,#0A100E 100%);
  color:#fff;
  padding:56px 0 64px;
  min-height:220px;
  display:flex;
  align-items:center;
}
.page-header::before{
  content:'';
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,0.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,0.035) 1px,transparent 1px);
  background-size:42px 42px;
  -webkit-mask-image:radial-gradient(70% 70% at 68% 35%,#000,transparent);
  mask-image:radial-gradient(70% 70% at 68% 35%,#000,transparent);
  pointer-events:none;
}
.page-header-inner{
  position:relative;
  z-index:2;
  max-width:820px;
}
.page-header .kicker{
  background:rgba(255,255,255,0.22);
  color:var(--cyan);
  border-color:rgba(255,255,255,0.22);
}
.page-header h1{
  margin-top:16px;
  color:#fff;
  font-size:clamp(32px,4.5vw,52px);
  line-height:1.08;
  letter-spacing:-.035em;
  font-weight:800;
  text-wrap:balance;
}
.page-header-deco{
  position:absolute;
  right:4%;
  bottom:-12%;
  width:180px;
  height:auto;
  opacity:.15;
  pointer-events:none;
  z-index:1;
  user-select:none;
}

/* About body */
.about-intro{
  margin-top:0;
  max-width:640px;
  font-size:17px;
  line-height:1.7;
  color:var(--muted);
}
.about-principles{
  margin-top:40px;
}

/* Founding timeline */
.about-timeline{
  list-style:none;
  margin:36px 0 0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
  position:relative;
}
.about-timeline::before{
  content:'';
  position:absolute;
  top:28px;
  left:calc(16.66% + 8px);
  right:calc(16.66% + 8px);
  height:2px;
  background:linear-gradient(90deg,var(--blue),var(--cyan),var(--purple));
  opacity:.45;
  z-index:0;
  pointer-events:none;
}
.about-timeline-step{
  position:relative;
  z-index:1;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius-lg,16px);
  padding:22px 20px 20px;
  margin:0 8px;
  text-align:center;
  transition:transform .35s var(--ease-out,cubic-bezier(.22,1,.36,1)),
              box-shadow .35s ease,
              border-color .3s ease;
}
.about-timeline-step:hover{
  transform:translateY(-4px);
  box-shadow:0 16px 32px rgba(23,37,43,0.22);
  border-color:rgba(140,197,196,0.25);
}
.about-timeline-num{
  display:inline-grid;
  place-items:center;
  width:36px;
  height:36px;
  margin-bottom:12px;
  border-radius:50%;
  font-size:13px;
  font-weight:800;
  color:#fff;
  background:var(--grad);
  box-shadow:0 0 0 4px rgba(140,197,196,0.22);
}
.about-timeline-step h3{
  font-size:16px;
  margin-bottom:8px;
  letter-spacing:-.02em;
}
.about-timeline-step .small{
  margin:0;
}

/* Honesty callout */
.about-callout{
  margin:40px 0 0;
  max-width:720px;
  padding:22px 24px 22px 26px;
  background:var(--bg-soft);
  border:1px solid var(--line);
  border-left:4px solid var(--cyan);
  border-radius:0 14px 14px 0;
  box-shadow:0 8px 24px rgba(23,37,43,0.04);
}
.about-callout p{
  margin:0;
  font-size:17.5px;
  line-height:1.65;
  color:var(--ink);
  font-weight:500;
  letter-spacing:-.01em;
}

@media (max-width:980px){
  .page-header{
    padding:40px 0 48px;
    min-height:180px;
  }
  .page-header h1{
    font-size:clamp(28px,6vw,40px);
  }
  .page-header-deco{
    width:120px;
    right:2%;
    opacity:.12;
  }
  .about-timeline{
    grid-template-columns:1fr;
    gap:14px;
  }
  .about-timeline::before{
    display:none;
  }
  .about-timeline-step{
    margin:0;
    text-align:left;
    display:grid;
    grid-template-columns:36px 1fr;
    grid-template-rows:auto auto;
    column-gap:14px;
    align-items:start;
  }
  .about-timeline-num{
    grid-row:1 / span 2;
    margin-bottom:0;
  }
  .about-timeline-step h3{
    grid-column:2;
  }
  .about-timeline-step .small{
    grid-column:2;
  }
  .about-callout{
    padding:18px 18px 18px 20px;
  }
  .about-callout p{
    font-size:16px;
  }
}
@media (max-width:600px){
  .page-header{
    padding:32px 0 40px;
    min-height:160px;
  }
  .page-header-deco{
    display:none;
  }
}

/* =========================================================
   Services page — groups, icons, quick-nav
   ========================================================= */

.section-services{
  padding-top:48px;
}
.services-intro{
  max-width:640px;
  font-size:17px;
  line-height:1.7;
  color:var(--muted);
  margin:0;
}
.services-intro-sub{
  max-width:640px;
  font-size:15px;
  line-height:1.65;
  color:var(--muted);
  margin:10px 0 0;
}

/* Category quick-nav pills */
.services-quick-nav{
  display:flex;
  flex-wrap:nowrap;
  gap:8px;
  margin:28px 0 8px;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  padding-bottom:4px;
}
.services-quick-nav::-webkit-scrollbar{display:none}
.services-quick-nav a{
  flex:0 0 auto;
  font-size:12px;
  font-weight:600;
  letter-spacing:.02em;
  padding:8px 14px;
  border-radius:999px;
  background:#fff;
  border:1px solid var(--line);
  color:var(--muted);
  transition:border-color .25s ease, color .25s ease, background .25s ease, transform .25s ease;
  white-space:nowrap;
}
.services-quick-nav a:hover{
  border-color:var(--cyan);
  color:var(--navy);
  background:rgba(140,197,196,0.22);
  transform:translateY(-1px);
}
.services-quick-nav a:focus-visible{
  outline:3px solid #8CC5C4;
  outline-offset:2px;
}

/* Group headers */
.service-group{
  margin-top:36px;
}
.service-group:first-child{
  margin-top:20px;
}
.service-group-label{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:12px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--blue);
  margin:0 0 4px;
  padding:10px 0 6px 14px;
  border-left:3px solid var(--cyan);
  scroll-margin-top:140px;
}
.service-item{
  scroll-margin-top:140px;
}

/* Icon + number column */
.service-meta{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:12px;
}
.service-icon{
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  border-radius:12px;
  color:var(--blue);
  background:linear-gradient(135deg,rgba(140,197,196,0.22),rgba(98,92,112,0.22));
  border:1px solid rgba(140,197,196,0.26);
}
.service-icon svg{
  width:22px;
  height:22px;
  display:block;
}
.service-title{
  display:flex;
  align-items:center;
  gap:10px;
}

@media (max-width:980px){
  .service-item{
    grid-template-columns:1fr;
  }
  .service-meta{
    flex-direction:row;
    align-items:center;
    gap:12px;
    margin-bottom:4px;
  }
  .service-group-label,
  .service-item{
    scroll-margin-top:120px;
  }
}
@media (max-width:600px){
  .services-quick-nav{
    margin-top:20px;
  }
  .service-group{
    margin-top:28px;
  }
}

/* =========================================================
   Solutions — comparison table
   ========================================================= */

.solutions-intro{
  max-width:640px;
  font-size:17px;
  line-height:1.7;
  color:var(--muted);
  margin:0 0 32px;
}

.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

.compare-wrap{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius-lg,18px);
  overflow:hidden;
  box-shadow:0 12px 32px rgba(23,37,43,0.05);
}
.compare-table{
  width:100%;
  border-collapse:collapse;
  table-layout:fixed;
}
.compare-table thead th{
  background:linear-gradient(180deg,var(--bg-soft) 0%,#fff 100%);
  padding:22px 18px 18px;
  text-align:center;
  vertical-align:bottom;
  border-bottom:1px solid var(--line-strong);
  font-weight:700;
}
.compare-table thead th.compare-corner{
  background:var(--bg-soft);
  width:18%;
}
.compare-icon{
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  margin:0 auto 10px;
  border-radius:12px;
  color:var(--blue);
  background:linear-gradient(135deg,rgba(140,197,196,0.22),rgba(98,92,112,0.22));
  border:1px solid rgba(140,197,196,0.26);
}
.compare-icon svg{
  width:22px;
  height:22px;
  display:block;
}
.compare-model{
  display:block;
  font-size:15px;
  letter-spacing:-.02em;
  background:var(--grad);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  color:transparent;
}
.compare-table tbody th{
  text-align:left;
  font-size:13px;
  font-weight:700;
  color:var(--ink);
  padding:16px 18px;
  border-bottom:1px solid var(--line);
  background:rgba(240,246,252,0.45);
  vertical-align:top;
  width:18%;
}
.compare-table tbody td{
  padding:16px 18px;
  font-size:14px;
  line-height:1.55;
  color:var(--muted);
  border-bottom:1px solid var(--line);
  vertical-align:top;
  text-align:left;
}
.compare-table tbody tr:last-child th,
.compare-table tbody tr:last-child td{
  border-bottom:none;
}
.compare-table tbody tr:hover td{
  background:rgba(140,197,196,0.03);
}

.solutions-helper{
  margin-top:36px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:16px 24px;
  padding:22px 24px;
  background:var(--bg-soft);
  border:1px solid var(--line);
  border-radius:var(--radius-lg,16px);
}
.solutions-helper p{
  margin:0;
  flex:1 1 280px;
  font-size:16.5px;
  line-height:1.55;
  color:var(--ink);
  font-weight:500;
  max-width:560px;
}

/* Stacked mobile cards */
@media (max-width:720px){
  .compare-wrap{
    border:none;
    background:transparent;
    box-shadow:none;
    overflow:visible;
  }
  .compare-table,
  .compare-table thead,
  .compare-table tbody,
  .compare-table tr,
  .compare-table th,
  .compare-table td{
    display:block;
    width:100%;
  }
  .compare-table thead tr{
    display:none;
  }
  /* One card per model column — we walk rows and show per-model via data-label.
     Simpler approach: hide thead, show each body cell as labeled row grouped by...
     Actually for true per-model cards we need a different structure on mobile.
     Use column-oriented stacking: each td becomes a labeled field; group visually
     by repeating model name from data-label as section headers is awkward.
     Better: show three synthetic cards via CSS using the first-of-type pattern.
     Practical approach used below: each <tr> becomes a row block with label + 3 values
     still hard. Switch to card-per-column using nth-child visibility.

     Final mobile pattern: each body row shows as:
       [row label]
       Model: value (for each td)
  */
  .compare-table tbody tr{
    background:#fff;
    border:1px solid var(--line);
    border-radius:14px;
    margin-bottom:12px;
    padding:14px 16px 8px;
    box-shadow:0 8px 20px rgba(23,37,43,0.04);
  }
  .compare-table tbody th{
    display:block;
    width:100%;
    background:transparent;
    border:none;
    padding:0 0 10px;
    font-size:12px;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--blue);
  }
  .compare-table tbody td{
    display:block;
    border:none;
    border-top:1px solid var(--line);
    padding:12px 0;
    text-align:left;
  }
  .compare-table tbody td::before{
    content:attr(data-label);
    display:block;
    font-size:12px;
    font-weight:700;
    color:var(--ink);
    margin-bottom:4px;
    background:var(--grad);
    -webkit-background-clip:text;
    background-clip:text;
    -webkit-text-fill-color:transparent;
  }
  .compare-table tbody tr:last-child th,
  .compare-table tbody tr:last-child td{
    border-bottom:none;
  }
  .solutions-helper{
    flex-direction:column;
    align-items:stretch;
    text-align:left;
  }
  .solutions-helper .btn{
    width:100%;
    justify-content:center;
  }
}

/* =========================================================
   Industries page
   ========================================================= */

.industries-intro{
  max-width:640px;
  font-size:17px;
  line-height:1.7;
  color:var(--muted);
  margin:0 0 8px;
}
.industry-grid{
  margin-top:32px;
}
.industry-card{
  display:flex;
  flex-direction:column;
  position:relative;
  overflow:hidden;
  border-top:3px solid transparent;
  padding-top:calc(var(--space-5,24px) - 1px);
}
.industry-card.accent-blue{border-top-color:var(--blue)}
.industry-card.accent-cyan{border-top-color:var(--cyan)}
.industry-card.accent-purple{border-top-color:var(--purple)}

.industry-icon{
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  margin-bottom:14px;
  border-radius:12px;
  color:var(--blue);
  background:linear-gradient(135deg,rgba(140,197,196,0.22),rgba(98,92,112,0.22));
  border:1px solid rgba(140,197,196,0.26);
  flex-shrink:0;
}
.industry-card.accent-cyan .industry-icon{color:var(--cyan)}
.industry-card.accent-purple .industry-icon{color:var(--purple)}
.industry-icon svg{
  width:24px;
  height:24px;
  display:block;
}
.industry-card h3{
  margin:0 0 8px;
  font-size:18px;
  letter-spacing:-.02em;
}
.industry-card .small{
  flex:1 1 auto;
  margin:0;
}
.industry-links{
  margin-top:16px;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.industry-links a{
  font-size:13px;
  font-weight:600;
  color:var(--blue);
  letter-spacing:.01em;
  transition:color .2s ease, transform .2s ease;
  display:inline-flex;
  align-items:center;
  min-height:28px;
}
.industry-links a:hover{
  color:var(--navy);
  transform:translateX(2px);
}
.industry-links a:focus-visible{
  outline:3px solid #8CC5C4;
  outline-offset:2px;
  border-radius:4px;
}

@media (max-width:600px){
  .industry-icon{
    width:40px;
    height:40px;
  }
  .industry-icon svg{
    width:22px;
    height:22px;
  }
}

/* =========================================================
   Portfolio — cards, accents, detail layout
   ========================================================= */

.section-portfolio{padding-top:48px}
.portfolio-intro{
  max-width:640px;
  font-size:17px;
  line-height:1.7;
  color:var(--muted);
  margin:0 0 28px;
}
.portfolio-grid{margin-top:8px}
.portfolio-card{
  display:block;
  border-top:4px solid var(--blue);
  transition:transform .35s var(--ease-out,cubic-bezier(.22,1,.36,1)),
              box-shadow .35s ease,
              border-color .3s ease;
}
.portfolio-card .tags{margin-top:16px}
.portfolio-card-title{
  margin:12px 0;
  font-size:18px;
  letter-spacing:-.02em;
  line-height:1.3;
}

/* Category accent colors */
.portfolio-card.accent-snowflake,
.portfolio-side-card.accent-snowflake{border-top-color:#3E7D82}
.portfolio-card.accent-dba,
.portfolio-side-card.accent-dba{border-top-color:#8CC5C4}
.portfolio-card.accent-databricks,
.portfolio-side-card.accent-databricks{border-top-color:#625C70}
.portfolio-card.accent-integration,
.portfolio-side-card.accent-integration{border-top-color:#426B5A}
.portfolio-card.accent-managed,
.portfolio-side-card.accent-managed{border-top-color:#5A6B7D}
.portfolio-card.accent-engineering,
.portfolio-side-card.accent-engineering{border-top-color:#D9A98A}
.portfolio-card.accent-default,
.portfolio-side-card.accent-default{border-top-color:var(--blue)}

.portfolio-cat-chip{
  display:inline-flex;
  align-items:center;
  font-size:12px;
  font-weight:700;
  letter-spacing:.04em;
  padding:6px 12px;
  border-radius:999px;
  border:1px solid var(--line);
  background:var(--bg-soft);
  color:var(--ink);
  margin-top:6px;
}
.portfolio-cat-chip.accent-snowflake{border-color:rgba(62,125,130,0.35);color:#426B5A;background:rgba(62,125,130,0.22)}
.portfolio-cat-chip.accent-dba{border-color:rgba(140,197,196,0.35);color:#0A7A96;background:rgba(140,197,196,0.22)}
.portfolio-cat-chip.accent-databricks{border-color:rgba(98,92,112,0.35);color:#5A3AA8;background:rgba(98,92,112,0.22)}
.portfolio-cat-chip.accent-integration{border-color:rgba(66,107,90,0.35);color:#426B5A;background:rgba(66,107,90,0.22)}
.portfolio-cat-chip.accent-managed{border-color:rgba(90,107,125,0.35);color:#3A4A5C;background:rgba(90,107,125,0.22)}
.portfolio-cat-chip.accent-engineering{border-color:rgba(200,184,248,0.55);color:#5A3AA8;background:rgba(200,184,248,0.26)}

/* Detail two-column */
.portfolio-detail-layout{
  display:grid;
  grid-template-columns:1fr minmax(240px,300px);
  gap:40px;
  align-items:start;
}
.portfolio-detail-title{
  font-size:clamp(28px,4vw,48px);
  line-height:1.1;
  letter-spacing:-.03em;
  margin:8px 0 12px;
}
.portfolio-detail-meta{margin:0 0 8px}
.portfolio-narrative{margin-top:20px}
.portfolio-narrative p{margin-bottom:14px;color:var(--muted);line-height:1.75}
.portfolio-narrative p strong{color:var(--ink);font-weight:600}

.portfolio-side-card{
  background:#fff;
  border:1px solid var(--line);
  border-top:4px solid var(--blue);
  border-radius:16px;
  padding:22px 20px;
  box-shadow:0 12px 28px rgba(23,37,43,0.06);
}
.portfolio-detail-sidebar--desktop{
  position:sticky;
  top:140px;
}
.portfolio-detail-sidebar--mobile{display:none}
.portfolio-side-card .tags{margin-top:8px}

@media (max-width:900px){
  .portfolio-detail-layout{
    grid-template-columns:1fr;
    gap:0;
  }
  .portfolio-detail-sidebar--desktop{display:none}
  .portfolio-detail-sidebar--mobile{
    display:block;
    margin:16px 0 8px;
  }
  .portfolio-detail-sidebar--mobile .portfolio-side-card{
    position:static;
  }
}

/* =========================================================
   Blog page + prose lists
   ========================================================= */

.prose ul,
.prose ol{
  margin:0 0 16px;
  padding-left:1.25em;
  color:var(--muted);
  line-height:1.7;
}
.prose li{
  margin-bottom:6px;
}
.prose li::marker{
  color:var(--blue);
}
.prose p{margin-bottom:12px;color:var(--muted);line-height:1.75}
.prose h3{margin:24px 0 10px;font-size:18px;color:var(--ink);letter-spacing:-.02em}

.section-blog{padding-top:48px}
.blog-intro{
  max-width:560px;
  font-size:17px;
  line-height:1.7;
  color:var(--muted);
  margin:0 0 28px;
}
.blog-grid{margin-top:8px}

.blog-card{
  display:block;
  border-left:3px solid var(--blue);
  transition:transform .35s cubic-bezier(.22,1,.36,1), box-shadow .35s ease;
}
.blog-card-meta{
  display:flex;
  align-items:center;
  gap:8px;
}
.blog-cat-dot{
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--blue);
  flex-shrink:0;
}
.blog-card-title{
  margin:12px 0;
  font-size:18px;
  letter-spacing:-.02em;
  line-height:1.3;
}

.blog-card.blog-accent-snowflake{border-left-color:#3E7D82}
.blog-card.blog-accent-snowflake .blog-cat-dot{background:#3E7D82}
.blog-card.blog-accent-security{border-left-color:#625C70}
.blog-card.blog-accent-security .blog-cat-dot{background:#625C70}
.blog-card.blog-accent-postgres{border-left-color:#8CC5C4}
.blog-card.blog-accent-postgres .blog-cat-dot{background:#8CC5C4}
.blog-card.blog-accent-migration{border-left-color:#426B5A}
.blog-card.blog-accent-migration .blog-cat-dot{background:#426B5A}
.blog-card.blog-accent-databricks{border-left-color:#5A3AA8}
.blog-card.blog-accent-databricks .blog-cat-dot{background:#5A3AA8}
.blog-card.blog-accent-cost{border-left-color:#5A6B7D}
.blog-card.blog-accent-cost .blog-cat-dot{background:#5A6B7D}
.blog-card.blog-accent-staffing{border-left-color:#D9A98A}
.blog-card.blog-accent-staffing .blog-cat-dot{background:#D9A98A}
.blog-card.blog-accent-default{border-left-color:var(--blue)}

.blog-detail-title{
  font-size:clamp(28px,4vw,48px);
  line-height:1.12;
  letter-spacing:-.03em;
  margin:8px 0 16px;
}
.blog-byline{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:8px;
}
.blog-author-avatar{
  width:40px;
  height:40px;
  font-size:13px;
}
.blog-author-name{
  font-size:14px;
  font-weight:700;
  color:var(--ink);
}
.blog-body{margin-top:28px}
.blog-related{
  margin-top:48px;
  padding-top:8px;
}
.blog-related-title{
  font-size:22px;
  margin-bottom:4px;
  letter-spacing:-.02em;
}
.blog-related-grid{margin-top:20px}

@media (max-width:600px){
  .blog-detail-title{font-size:clamp(26px,8vw,36px)}
  .blog-related-grid{grid-template-columns:1fr}
}

/* =========================================================
   Contact page
   ========================================================= */

.section-contact{padding-top:48px}
.contact-layout{
  display:grid;
  grid-template-columns:1fr 1.15fr;
  gap:40px;
  align-items:start;
}
.contact-lead{
  font-size:17px;
  line-height:1.7;
  color:var(--muted);
  max-width:380px;
  margin:0 0 20px;
}

/* Checkmark trust list */
.trust-list--checks{
  list-style:none;
  margin:0 0 24px;
  padding:0;
}
.trust-list--checks li{
  position:relative;
  padding:8px 0 8px 28px;
  font-size:14.5px;
  line-height:1.55;
  color:var(--ink);
  font-weight:500;
}
.trust-list--checks li::before{
  content:'';
  position:absolute;
  left:0;
  top:10px;
  width:16px;
  height:16px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='%2318C0E8' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-size:16px 16px;
  background-repeat:no-repeat;
}
.trust-list--checks a{color:var(--blue);font-weight:600}

.contact-methods{
  display:flex;
  flex-direction:column;
  gap:14px;
  margin-top:4px;
}
.contact-method{
  display:flex;
  gap:12px;
  align-items:flex-start;
}
.contact-method-icon{
  flex-shrink:0;
  width:36px;
  height:36px;
  border-radius:10px;
  display:grid;
  place-items:center;
  color:var(--blue);
  background:linear-gradient(135deg,rgba(140,197,196,0.22),rgba(98,92,112,0.22));
  border:1px solid rgba(140,197,196,0.26);
}
.contact-method-icon svg{width:18px;height:18px;display:block}
.contact-method-label{
  font-size:10px;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--muted);
  margin-bottom:2px;
}
.contact-method a{
  color:var(--ink);
  font-weight:600;
  font-size:14px;
}
.contact-method a:hover{color:var(--blue)}
.contact-prefer{margin-top:18px}
.contact-prefer a{color:var(--blue);font-weight:600}

.contact-form-col{
  border-left:1px solid var(--line);
  padding-left:40px;
}

.contact-faq{
  margin-top:56px;
  padding-top:36px;
  border-top:1px solid var(--line);
}
.contact-faq-title{
  font-size:22px;
  letter-spacing:-.02em;
  margin-bottom:20px;
}
.contact-faq-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
}
.contact-faq-item{
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  padding:18px 18px 16px;
}
.contact-faq-item h3{
  font-size:15px;
  margin:0 0 8px;
  letter-spacing:-.01em;
}
.contact-faq-item .small{margin:0}

@media (max-width:980px){
  .contact-layout{
    grid-template-columns:1fr;
    gap:28px;
  }
  .contact-form-col{
    border-left:none;
    padding-left:0;
  }
  .contact-faq-grid{
    grid-template-columns:1fr;
  }
}

/* =========================================================
   Legal pages (privacy / terms) + endpoint pages (404 / thank-you)
   ========================================================= */

.section-legal{padding-top:48px;padding-bottom:64px}
.legal-layout{
  display:grid;
  grid-template-columns:1fr;
  gap:32px;
  align-items:start;
}
.legal-toc{display:none}
.legal-toc-label{
  font-size:10px;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--muted);
  margin-bottom:10px;
}
.legal-toc a{
  display:block;
  font-size:13px;
  line-height:1.4;
  color:var(--muted);
  padding:6px 0;
  border-left:2px solid transparent;
  padding-left:12px;
  transition:color .2s ease, border-color .2s ease;
}
.legal-toc a:hover{
  color:var(--blue);
  border-left-color:var(--cyan);
}
.legal-page{max-width:760px}
.legal-updated{margin:12px 0 8px}
.legal-updated .tag{
  font-size:11px;
  font-weight:600;
  letter-spacing:.04em;
  color:var(--muted);
  background:var(--bg-soft);
}
.legal-body h2{
  font-size:20px;
  margin:32px 0 12px;
  letter-spacing:-.02em;
  scroll-margin-top:120px;
}
.legal-body p{
  color:var(--muted);
  margin-bottom:16px;
  line-height:1.75;
}
.legal-body a{color:var(--blue);font-weight:600}

@media (min-width:1100px){
  .legal-layout{
    grid-template-columns:200px minmax(0,1fr);
    gap:48px;
  }
  .legal-toc{
    display:block;
    position:sticky;
    top:120px;
    align-self:start;
  }
}

/* Endpoint pages: 404 + thank-you */
.section-endpoint{
  min-height:calc(100vh - 220px);
  display:flex;
  align-items:center;
  padding:100px 0;
}
.endpoint-inner{
  text-align:center;
  max-width:520px;
  margin:0 auto;
}
.endpoint-deco{
  position:relative;
  display:inline-grid;
  place-items:center;
  margin-bottom:20px;
}
.endpoint-deco img{
  opacity:.12;
  width:120px;
  height:auto;
}
.endpoint-code{
  position:absolute;
  font-size:clamp(64px,12vw,96px);
  font-weight:800;
  letter-spacing:-.06em;
  line-height:1;
  color:rgba(23,37,43,0.22);
  pointer-events:none;
}
.endpoint-success{
  margin-bottom:16px;
  display:inline-grid;
  place-items:center;
}
.endpoint-lead{
  margin:12px 0 28px;
  font-size:17px;
  line-height:1.65;
  color:var(--muted);
}
.endpoint-links{
  margin-top:22px;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:8px 18px;
}
.endpoint-links a{
  font-size:14px;
  font-weight:600;
  color:var(--blue);
}
.endpoint-links a:hover{text-decoration:underline}
.endpoint-suggestions{
  margin-top:36px;
  padding-top:24px;
  border-top:1px solid var(--line);
  text-align:left;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.endpoint-suggestions-label{
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--muted);
  margin:0 0 4px;
}
.endpoint-suggestions a{
  font-size:14px;
  font-weight:600;
  color:var(--blue);
  line-height:1.4;
}
.endpoint-suggestions a:hover{text-decoration:underline}

@media (max-width:600px){
  .section-endpoint{padding:64px 0;min-height:auto}
  .endpoint-code{font-size:64px}
}

/* =========================================================
   Global polish — selection, scrollbar, focus, scroll progress,
   shrink header, footer watermark, back-to-top
   ========================================================= */

::selection{
  background:var(--cyan);
  color:var(--navy);
}
::-moz-selection{
  background:var(--cyan);
  color:var(--navy);
}

/* Progressive enhancement — WebKit scrollbar */
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:var(--bg-soft)}
::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,#3E7D82,#8CC5C4,#625C70);
  border-radius:8px;
  border:2px solid var(--bg-soft);
}
::-webkit-scrollbar-thumb:hover{filter:brightness(1.08)}

/* Global keyboard focus — don't fight existing button styles */
:focus:not(:focus-visible){outline:none}
:focus-visible{
  outline:2px solid var(--cyan);
  outline-offset:2px;
}

/* Scroll progress bar */
.scroll-progress{
  position:fixed;
  top:0;
  left:0;
  height:2px;
  width:0%;
  z-index:10001;
  background:var(--grad);
  pointer-events:none;
  transform-origin:left center;
}

/* Shrink-on-scroll header */
.topbar{
  transition:height .28s cubic-bezier(.22,1,.36,1), box-shadow .28s ease, background .28s ease;
}
.topbar .logo-img{
  transition:height .28s cubic-bezier(.22,1,.36,1), max-width .28s ease;
}
.topbar.is-scrolled{
  box-shadow:0 8px 32px rgba(0,0,0,0.25);
}
.topbar.is-compact .topbar-inner{
  height:72px !important;
}
.topbar.is-compact .logo-img{
  height:56px !important;
  max-width:180px !important;
}
.platform-bar{
  transition:top .28s cubic-bezier(.22,1,.36,1);
}
body.has-compact-header .platform-bar{
  top:72px !important;
}
@media (max-width:980px){
  .topbar.is-compact .topbar-inner{height:64px !important}
  .topbar.is-compact .logo-img{height:48px !important;max-width:150px !important}
  body.has-compact-header .platform-bar{top:64px !important}
}

/* Page-header watermark subtle motion */
.page-header-deco{
  transition:transform .5s cubic-bezier(.22,1,.36,1);
  transform-style:preserve-3d;
}
@media (hover:hover) and (prefers-reduced-motion:no-preference){
  .page-header:hover .page-header-deco{
    transform:rotateY(-6deg) rotateX(4deg) scale(1.03);
  }
}

/* Footer watermark + social */
.footer{
  position:relative;
  overflow:hidden;
}
.footer-watermark{
  position:absolute;
  right:-40px;
  bottom:-50px;
  width:min(320px,50vw);
  opacity:.05;
  pointer-events:none;
  user-select:none;
  z-index:0;
}
.footer .container{position:relative;z-index:1}
.footer-social{
  display:flex;
  gap:12px;
  margin-top:16px;
  align-items:center;
}
.footer-social a{
  display:inline-grid;
  place-items:center;
  width:36px;
  height:36px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,0.22);
  color:rgba(255,255,255,0.7);
  transition:color .2s, border-color .2s, background .2s;
}
.footer-social a:hover{
  color:#fff;
  border-color:rgba(140,197,196,0.45);
  background:rgba(140,197,196,0.22);
}
.footer-social svg{width:18px;height:18px}

/* Back to top */
.back-to-top{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:90;
  width:44px;
  height:44px;
  border-radius:50%;
  border:none;
  cursor:pointer;
  display:grid;
  place-items:center;
  background:var(--grad);
  color:#fff;
  box-shadow:0 10px 28px rgba(140,197,196,0.3);
  opacity:0;
  visibility:hidden;
  transform:translateY(10px);
  transition:opacity .3s ease, transform .3s ease, visibility .3s;
}
.back-to-top.is-visible{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
.back-to-top:hover{filter:brightness(1.06)}
.back-to-top:focus-visible{
  outline:3px solid #D9A98A;
  outline-offset:3px;
}
.back-to-top svg{width:20px;height:20px;display:block}
@media (max-width:600px){
  .back-to-top{right:14px;bottom:14px;width:42px;height:42px}
}

/* =========================================================
   Homepage ambient gradients — light sections + card borders
   (fixed specificity, stronger opacity, glow blobs)
   ========================================================= */

:root{
  --grad-border:linear-gradient(135deg,rgba(66,107,90,0.55),rgba(140,197,196,0.5),rgba(98,92,112,0.55));
  --grad-border-strong:linear-gradient(135deg,rgba(66,107,90,0.9),rgba(140,197,196,0.85),rgba(98,92,112,0.9));
}

/* Positioning context for ambient layers */
.section:not(.section-navy),
.section-soft{
  position:relative;
  isolation:isolate;
  overflow:hidden;
}
.section:not(.section-navy) > .container,
.section-soft > .container{
  position:relative;
  z-index:1;
}

/* Plain white sections — criss-cross + single source of truth (no empty override) */
.section:not(.section-navy):not(.section-soft)::before{
  content:'';
  position:absolute;
  inset:0;
  background:
    linear-gradient(115deg, rgba(62,125,130,0.238), transparent 48%),
    linear-gradient(245deg, rgba(98,92,112,0.22), transparent 48%);
  pointer-events:none;
  z-index:0;
}
.section:not(.section-navy):not(.section-soft)::after{
  content:'';
  position:absolute;
  top:-15%;
  right:-8%;
  width:50%;
  height:75%;
  background:radial-gradient(circle, rgba(140,197,196,0.26), transparent 70%);
  filter:blur(38px);
  pointer-events:none;
  z-index:0;
}

/* Soft sections — purple leads + grid + glow blob */
.section-soft::before{
  content:'';
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(130deg, rgba(98,92,112,0.255), transparent 46%),
    linear-gradient(260deg, rgba(62,125,130,0.22), transparent 46%),
    linear-gradient(rgba(62,125,130,0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(140,197,196,0.05) 1px, transparent 1px);
  background-size:auto, auto, 42px 42px, 42px 42px;
  pointer-events:none;
  z-index:0;
}
.section-soft::after{
  content:'';
  position:absolute;
  top:-10%;
  left:-5%;
  width:45%;
  height:70%;
  background:radial-gradient(circle, rgba(140,197,196,0.26), transparent 70%);
  filter:blur(37px);
  pointer-events:none;
  z-index:0;
}

/* Section-specific rhythm */
#testimonials.section::before{
  background:
    linear-gradient(100deg, rgba(140,197,196,0.255), transparent 50%),
    linear-gradient(280deg, rgba(98,92,112,0.221), transparent 45%);
}
#testimonials.section::after{
  top:auto;
  bottom:-20%;
  left:40%;
  right:auto;
  width:55%;
  height:60%;
  background:radial-gradient(circle, rgba(98,92,112,0.238), transparent 70%);
  filter:blur(41px);
}
#team.section-soft::before{
  background-image:
    linear-gradient(145deg, rgba(62,125,130,0.238), transparent 47%),
    linear-gradient(300deg, rgba(98,92,112,0.221), transparent 48%),
    linear-gradient(rgba(62,125,130,0.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(140,197,196,0.045) 1px, transparent 1px);
  background-size:auto, auto, 42px 42px, 42px 42px;
}
#team.section-soft::after{
  top:30%;
  left:auto;
  right:-10%;
  width:40%;
  height:65%;
  background:radial-gradient(circle, rgba(98,92,112,0.255), transparent 70%);
  filter:blur(36px);
}
#trust.section-soft::after{
  top:auto;
  bottom:-15%;
  left:20%;
  width:50%;
  height:55%;
  background:radial-gradient(circle, rgba(62,125,130,0.238), transparent 70%);
  filter:blur(40px);
}
#contact-cta.section::before{
  content:'';
  position:absolute;
  inset:0;
  background:
    linear-gradient(125deg, rgba(62,125,130,0.221), transparent 50%),
    linear-gradient(250deg, rgba(98,92,112,0.22), transparent 48%);
  pointer-events:none;
  z-index:0;
}
#contact-cta.section::after{
  content:'';
  position:absolute;
  top:10%;
  left:-12%;
  width:42%;
  height:80%;
  background:radial-gradient(circle, rgba(140,197,196,0.238), transparent 70%);
  filter:blur(37px);
  pointer-events:none;
  z-index:0;
}

/* Gradient borders — double-background technique */
.card,
.pillar,
.testimonial-card,
.team-card,
.trust-metric{
  border:1px solid transparent;
  background-color:#fff;
  background-image:
    linear-gradient(#fff, #fff),
    var(--grad-border);
  background-origin:border-box;
  background-clip:padding-box, border-box;
  -webkit-background-clip:padding-box, border-box;
  transition:
    transform .4s cubic-bezier(.22,1,.36,1),
    box-shadow .4s ease;
}
.card:hover,
.pillar:hover,
.testimonial-card:hover,
.team-card:hover,
.trust-metric:hover{
  background-image:
    linear-gradient(#fff, #fff),
    var(--grad-border-strong);
  box-shadow:0 20px 40px rgba(62,125,130,0.22);
}

/* Fallback ring for browsers that mishandle multi-bg clip */
@supports not ((background-clip: padding-box) or (-webkit-background-clip: padding-box)){
  .card,
  .pillar,
  .testimonial-card,
  .team-card,
  .trust-metric{
    border:1px solid rgba(140,197,196,0.35);
    background-image:none;
    background-color:#fff;
  }
}

.form-wrap{
  background-image:none;
  background-color:#fff;
  border:1px solid var(--line);
}


/* =========================================================
   Site-wide ambient gradients — per-page variants + headers
   ========================================================= */

/* Page-header atmospheric blob (content pages) */
.page-header{
  position:relative;
  overflow:hidden;
}
.page-header::after{
  content:'';
  position:absolute;
  top:-20%;
  right:-10%;
  width:55%;
  height:90%;
  background:radial-gradient(circle, rgba(140,197,196,0.22), transparent 68%);
  filter:blur(36px);
  pointer-events:none;
  z-index:0;
}
.page-header-inner,
.page-header-deco{
  position:relative;
  z-index:1;
}

/* Services — cyan-leading */
.section-services::before{
  content:'';
  position:absolute;
  inset:0;
  background:
    linear-gradient(100deg, rgba(140,197,196,0.255), transparent 50%),
    linear-gradient(280deg, rgba(62,125,130,0.22), transparent 48%);
  pointer-events:none;
  z-index:0;
}
.section-services::after{
  content:'';
  position:absolute;
  top:5%;
  left:-8%;
  width:48%;
  height:70%;
  background:radial-gradient(circle, rgba(140,197,196,0.255), transparent 70%);
  filter:blur(38px);
  pointer-events:none;
  z-index:0;
}

/* Portfolio — blue-leading */
.section-portfolio::before{
  content:'';
  position:absolute;
  inset:0;
  background:
    linear-gradient(120deg, rgba(62,125,130,0.238), transparent 48%),
    linear-gradient(300deg, rgba(98,92,112,0.22), transparent 48%);
  pointer-events:none;
  z-index:0;
}
.section-portfolio::after{
  content:'';
  position:absolute;
  bottom:-15%;
  right:-5%;
  width:50%;
  height:65%;
  background:radial-gradient(circle, rgba(62,125,130,0.238), transparent 70%);
  filter:blur(37px);
  pointer-events:none;
  z-index:0;
}

/* Blog — purple-leading */
.section-blog::before{
  content:'';
  position:absolute;
  inset:0;
  background:
    linear-gradient(135deg, rgba(98,92,112,0.255), transparent 48%),
    linear-gradient(315deg, rgba(140,197,196,0.22), transparent 48%);
  pointer-events:none;
  z-index:0;
}
.section-blog::after{
  content:'';
  position:absolute;
  top:-10%;
  right:10%;
  width:45%;
  height:60%;
  background:radial-gradient(circle, rgba(98,92,112,0.255), transparent 70%);
  filter:blur(40px);
  pointer-events:none;
  z-index:0;
}

/* Contact — match homepage contact-cta */
.section-contact::before{
  content:'';
  position:absolute;
  inset:0;
  background:
    linear-gradient(125deg, rgba(62,125,130,0.221), transparent 50%),
    linear-gradient(250deg, rgba(98,92,112,0.22), transparent 48%);
  pointer-events:none;
  z-index:0;
}
.section-contact::after{
  content:'';
  position:absolute;
  top:10%;
  left:-12%;
  width:42%;
  height:80%;
  background:radial-gradient(circle, rgba(140,197,196,0.238), transparent 70%);
  filter:blur(37px);
  pointer-events:none;
  z-index:0;
}

/* About / Solutions / Industries */
.section-about::before,
.section-solutions::before,
.section-industries::before{
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:0;
}
.section-about::before{
  background:
    linear-gradient(110deg, rgba(62,125,130,0.221), transparent 50%),
    linear-gradient(250deg, rgba(98,92,112,0.22), transparent 48%);
}
.section-about::after{
  content:'';
  position:absolute;
  top:-8%;
  right:-6%;
  width:48%;
  height:70%;
  background:radial-gradient(circle, rgba(140,197,196,0.238), transparent 70%);
  filter:blur(37px);
  pointer-events:none;
  z-index:0;
}
.section-solutions::before{
  background:
    linear-gradient(125deg, rgba(140,197,196,0.238), transparent 48%),
    linear-gradient(290deg, rgba(98,92,112,0.22), transparent 48%);
}
.section-solutions::after{
  content:'';
  position:absolute;
  bottom:-12%;
  left:-8%;
  width:50%;
  height:65%;
  background:radial-gradient(circle, rgba(62,125,130,0.221), transparent 70%);
  filter:blur(38px);
  pointer-events:none;
  z-index:0;
}
.section-industries::before{
  background:
    linear-gradient(105deg, rgba(98,92,112,0.221), transparent 48%),
    linear-gradient(265deg, rgba(62,125,130,0.22), transparent 48%);
}
.section-industries::after{
  content:'';
  position:absolute;
  top:20%;
  right:-10%;
  width:44%;
  height:70%;
  background:radial-gradient(circle, rgba(98,92,112,0.238), transparent 70%);
  filter:blur(37px);
  pointer-events:none;
  z-index:0;
}

/* Ensure page sections have positioning context */
.section-services,
.section-portfolio,
.section-blog,
.section-contact,
.section-about,
.section-solutions,
.section-industries{
  position:relative;
  isolation:isolate;
  overflow:hidden;
}
.section-services > .container,
.section-portfolio > .container,
.section-blog > .container,
.section-contact > .container,
.section-about > .container,
.section-solutions > .container,
.section-industries > .container{
  position:relative;
  z-index:1;
}

/* Utility pages — quieter: soft blob only, no criss-cross, no grid */
.section-legal,
.section-endpoint{
  position:relative;
  isolation:isolate;
  overflow:hidden;
}
.section-legal::before,
.section-endpoint::before{
  content:none; /* no diagonal wash */
}
.section-legal::after,
.section-endpoint::after{
  content:'';
  position:absolute;
  top:10%;
  right:-15%;
  width:55%;
  height:60%;
  background:radial-gradient(circle, rgba(140,197,196,0.12), transparent 70%);
  filter:blur(44px);
  pointer-events:none;
  z-index:0;
  -webkit-mask-image:none;
  mask-image:none;
}
.section-legal > .container,
.section-endpoint > .container,
.section-legal .legal-layout,
.section-endpoint .endpoint-inner{
  position:relative;
  z-index:1;
}

/* Portfolio / blog cards pick up shared .card gradient borders already */
.portfolio-card,
.blog-card{
  border:1px solid transparent;
  background-color:#fff;
  background-image:
    linear-gradient(#fff, #fff),
    var(--grad-border);
  background-origin:border-box;
  background-clip:padding-box, border-box;
  -webkit-background-clip:padding-box, border-box;
}
.portfolio-card:hover,
.blog-card:hover{
  background-image:
    linear-gradient(#fff, #fff),
    var(--grad-border-strong);
}


/* Wave → ambient seam: fade gradients in under strip-wave */
.section-soft::before,
.section-soft::after{
  -webkit-mask-image: linear-gradient(180deg, transparent 0, transparent 48px, #000 140px);
  mask-image: linear-gradient(180deg, transparent 0, transparent 48px, #000 140px);
}
/* Page content under page-header also soft-starts */
main.section::before,
main.section::after,
main > .section::before,
main > .section::after{
  -webkit-mask-image: linear-gradient(180deg, transparent 0, transparent 32px, #000 120px);
  mask-image: linear-gradient(180deg, transparent 0, transparent 32px, #000 120px);
}
/* Don't mask navy/hero */
.section-navy::before,
.section-navy::after,
.hero-section::before,
.hero-section::after,
.page-header::before,
.page-header::after{
  -webkit-mask-image: none;
  mask-image: none;
}

/* =========================================================
   Interaction polish — draw-line dark, gradient drift, hero in
   ========================================================= */

.section-navy .draw-line,
.hero-section .draw-line,
.page-header .draw-line{
  color:inherit;
}
.hero-section .draw-line::after{
  background:var(--cyan);
  height:3px;
}
.section-navy .draw-line::after{
  background:var(--cyan);
}

.hero-badge,
.hero h1 .grad{
  background-size:200% auto;
  animation:gradientDrift 8s ease-in-out infinite;
}
@keyframes gradientDrift{
  0%,100%{background-position:0% 50%}
  50%{background-position:100% 50%}
}
@media (prefers-reduced-motion:reduce){
  .hero-badge,
  .hero h1 .grad{animation:none}
}

/* Hero word stagger */
.hero-word{
  display:inline-block;
  opacity:0;
  transform:translateY(18px);
  transition:opacity .55s cubic-bezier(.22,1,.36,1), transform .55s cubic-bezier(.22,1,.36,1);
}
.hero-word.is-in{
  opacity:1;
  transform:translateY(0);
}
.hero-section.is-entered .hero-word{
  opacity:1;
  transform:none;
}

/* Cube entrance (one-shot) */
.cube-card.hero-cube-enter{
  animation:heroCubeIn .85s cubic-bezier(.34,1.56,.64,1) both;
}
@keyframes heroCubeIn{
  0%{opacity:0;transform:scale(.86) rotateY(18deg) rotateX(-8deg)}
  100%{opacity:1;transform:scale(1) rotateY(0) rotateX(0)}
}
@media (prefers-reduced-motion:reduce){
  .cube-card.hero-cube-enter{animation:none}
  .hero-word{opacity:1;transform:none;transition:none}
}

/* Magnetic buttons — CSS baseline; JS sets transform */
.btn-primary,
.btn-cta{
  will-change:transform;
  transition:transform .2s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease, background .35s ease;
}

/* =========================================================
   Nav dropdown (Services)
   ========================================================= */
.nav-item.has-dropdown{
  position:relative;
  display:flex;
  align-items:center;
}
.nav-item .nav-parent{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.nav-caret{
  font-size:10px;
  opacity:.7;
}
.nav-dropdown{
  position:absolute;
  top:calc(100% + 12px);
  left:0;
  min-width:260px;
  padding:10px 0;
  background:var(--hero-dark-2);
  border:1px solid rgba(255,255,255,.14);
  border-radius:12px;
  box-shadow:0 18px 40px rgba(0,0,0,.35);
  opacity:0;
  visibility:hidden;
  transform:translateY(6px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s;
  z-index:80;
}
.nav-item.has-dropdown:hover .nav-dropdown,
.nav-item.has-dropdown:focus-within .nav-dropdown{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
.nav-dropdown a{
  display:block;
  padding:10px 18px;
  font-size:14px;
  color:rgba(255,255,255,.82);
  white-space:nowrap;
}
.nav-dropdown a:hover{
  color:#fff;
  background:rgba(255,255,255,.06);
}
.nav-dropdown-extra{
  margin-top:6px;
  border-top:1px solid rgba(255,255,255,.1);
  padding-top:12px !important;
  color:var(--cyan) !important;
  font-weight:600;
}
@media (max-width:980px){
  .nav-item.has-dropdown{
    flex-direction:column;
    align-items:stretch;
    width:100%;
  }
  .nav-dropdown{
    position:static;
    opacity:1;
    visibility:visible;
    transform:none;
    box-shadow:none;
    border:none;
    background:transparent;
    padding:4px 0 8px 12px;
    min-width:0;
  }
  .nav-dropdown a{
    padding:8px 10px;
    font-size:14px;
  }
  .nav-caret{display:none}
}

/* Service areas (consolidated taxonomy) */
.service-area-block{
  display:grid;
  grid-template-columns:72px 1fr;
  gap:20px;
  padding:36px 0;
  border-top:1px solid var(--line);
}
.service-area-block:first-child{border-top:none;padding-top:12px}
.service-area-num{
  font-family:'JetBrains Mono',monospace;
  font-size:13px;
  font-weight:700;
  color:var(--blue);
  padding-top:6px;
}
.service-area-title{
  font-size:clamp(22px,2.4vw,28px);
  margin:0 0 6px;
  letter-spacing:-.02em;
}
.service-area-tagline{
  font-size:15px;
  color:var(--blue);
  font-weight:600;
  margin:0 0 12px;
}
.service-area-desc{
  color:var(--muted);
  font-size:15.5px;
  line-height:1.65;
  max-width:62ch;
  margin:0 0 16px;
}
.service-area-focus{
  margin:0;
  padding:0;
  list-style:none;
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:8px 20px;
}
.service-area-focus li{
  position:relative;
  padding-left:14px;
  font-size:14px;
  color:var(--ink);
  line-height:1.45;
}
.service-area-focus li::before{
  content:'';
  position:absolute;
  left:0;
  top:.55em;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--cyan);
}
@media (max-width:700px){
  .service-area-block{grid-template-columns:1fr;gap:8px;padding:28px 0}
  .service-area-num{padding-top:0}
}

/* Footer: five columns when Technologies is present */
.footer-grid{
  grid-template-columns:1.4fr 1fr 1fr 1fr 1fr;
}
@media (max-width:980px){
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:560px){
  .footer-grid{grid-template-columns:1fr}
}

.tech-cat-anchor{
  height:0;
  overflow:hidden;
  scroll-margin-top:140px;
}
.service-area-block{
  scroll-margin-top:140px;
}

/* =========================================================
   Technologies hub (Tier 2)
   ========================================================= */
.section-technologies{
  position:relative;
}
/* Restrained ambient on dense catalog */
.section-technologies::before{
  content:'';
  position:absolute;
  inset:0;
  background:
    linear-gradient(115deg, rgba(62,125,130,.03), transparent 45%),
    linear-gradient(245deg, rgba(98,92,112,.025), transparent 45%);
  pointer-events:none;
  z-index:0;
}
.section-technologies > .container{position:relative;z-index:1}

.tech-hub-intro{
  max-width:62ch;
  margin-bottom:28px;
}

.tech-toolbar{
  display:flex;
  flex-direction:column;
  gap:14px;
  margin-bottom:36px;
}
.tech-search-wrap{
  position:relative;
  max-width:360px;
}
.tech-search-icon{
  position:absolute;
  left:14px;
  top:50%;
  transform:translateY(-50%);
  color:var(--muted);
  pointer-events:none;
}
.tech-search{
  width:100%;
  padding:12px 14px 12px 42px;
  border:1px solid var(--line);
  border-radius:100px;
  background:#fff;
  font:inherit;
  font-size:15px;
  color:var(--ink);
  outline:none;
  transition:border-color .2s, box-shadow .2s;
}
.tech-search:focus{
  border-color:var(--cyan);
  box-shadow:0 0 0 3px rgba(140,197,196,.18);
}
.tech-filters{
  display:flex;
  gap:8px;
  overflow-x:auto;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
  padding-bottom:2px;
}
.tech-filters::-webkit-scrollbar{display:none}
.tech-filter{
  flex:0 0 auto;
  font-size:12px;
  font-weight:600;
  padding:8px 14px;
  border-radius:100px;
  background:#fff;
  border:1px solid var(--line);
  color:var(--muted);
  cursor:pointer;
  transition:all .2s ease;
  font-family:inherit;
}
.tech-filter:hover{
  border-color:var(--blue);
  color:var(--ink);
}
.tech-filter.is-active{
  background:rgba(62,125,130,.1);
  border-color:rgba(140,197,196,.45);
  color:var(--blue);
}
.tech-empty{
  padding:28px;
  text-align:center;
  color:var(--muted);
  border:1px dashed var(--line);
  border-radius:14px;
  margin-bottom:24px;
}

.tech-category{
  margin-bottom:48px;
  scroll-margin-top:140px;
}
.tech-category-head{
  margin-bottom:16px;
  padding-bottom:10px;
  border-bottom:1px solid var(--line);
}
.tech-category-title{
  font-size:clamp(20px,2.2vw,26px);
  letter-spacing:-.02em;
  margin:0;
}
.tech-category-count{
  font-weight:500;
  color:var(--muted);
  font-size:.75em;
}

.tech-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:14px;
}
@media (min-width:1200px){
  .tech-grid{grid-template-columns:repeat(4, minmax(0, 1fr))}
}
@media (max-width:900px){
  .tech-grid{grid-template-columns:repeat(2, minmax(0, 1fr))}
}
@media (max-width:560px){
  .tech-grid{grid-template-columns:1fr}
}

.tech-card{
  display:flex;
  gap:12px;
  align-items:flex-start;
  padding:16px 16px 14px;
  text-decoration:none;
  color:inherit;
  border-radius:14px;
  transition:transform .25s var(--ease), box-shadow .25s;
  min-height:0;
}
.tech-card:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 28px rgba(23,37,43,.08);
}
.tech-card.is-highlighted{
  outline:2px solid var(--cyan);
  outline-offset:2px;
  box-shadow:0 0 0 4px rgba(140,197,196,.15);
}
.tech-card-icon{
  flex-shrink:0;
  width:32px;
  height:32px;
  color:var(--blue);
}
.tech-card-icon svg{display:block;width:100%;height:100%}
.tech-card-body{min-width:0;flex:1}
.tech-card-top{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:6px 10px;
  margin-bottom:6px;
}
.tech-card-name{
  font-size:15.5px;
  font-weight:700;
  letter-spacing:-.01em;
  margin:0;
  line-height:1.25;
}
.tech-card-cat{
  font-size:10px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--muted);
  background:var(--bg-soft);
  border:1px solid var(--line);
  padding:2px 8px;
  border-radius:100px;
}
.tech-card-summary{
  margin:0;
  font-size:13px;
  line-height:1.5;
  color:var(--muted);
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

/* Technology detail (Tier 3) */
.tech-back{
  margin:0 0 16px;
  font-size:14px;
  font-weight:600;
}
.tech-back a{color:var(--blue)}
.tech-back a:hover{text-decoration:underline}
.tech-detail-layout{margin-top:8px}
.tech-diagram{
  margin-top:36px;
  min-height:120px;
  border:1px dashed var(--line);
  border-radius:14px;
  background:rgba(240,246,252,.5);
  display:grid;
  place-items:center;
  color:var(--muted);
  font-size:13px;
}
.tech-diagram::after{
  content:'Diagram — Step 5 (' attr(data-diagram-type) ')';
}
.tech-related{
  margin-top:56px;
  padding-top:28px;
  border-top:1px solid var(--line);
}
.tech-related-title{
  font-size:clamp(22px,2.4vw,28px);
  margin:0 0 18px;
  letter-spacing:-.02em;
}
.tech-related-grid{
  grid-template-columns:repeat(2, minmax(0, 1fr));
}
@media (min-width:900px){
  .tech-related-grid{grid-template-columns:repeat(4, minmax(0, 1fr))}
}
@media (max-width:560px){
  .tech-related-grid{grid-template-columns:1fr}
}
.tech-not-found{
  max-width:480px;
  padding:48px 0 80px;
}
.tech-not-found h1{margin-bottom:12px}
.tech-not-found code{
  font-family:'JetBrains Mono',monospace;
  font-size:13px;
  background:var(--bg-soft);
  padding:2px 6px;
  border-radius:4px;
}

/* ============ V2: Mega menu, directory cards, detail pages ============ */
.nav-item{position:relative}
.mega{display:none;position:absolute;top:100%;left:50%;transform:translateX(-50%);min-width:640px;max-width:820px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 30px 60px rgba(23,37,43,0.28);padding:26px;z-index:80}
.nav-item:hover .mega,.nav-item:focus-within .mega{display:block}
.mega-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.mega-col-title{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--blue);margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.mega a.mega-link{display:block;color:var(--ink);font-size:14px;padding:6px 4px;border-radius:8px;transition:all .2s}
.mega a.mega-link:hover{background:var(--bg-soft);color:var(--blue);padding-left:8px}
.mega-foot{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}
.mega-foot a{font-size:13px;font-weight:700;color:var(--blue)}
.mega-flat{display:grid;grid-template-columns:repeat(2,1fr);gap:6px 22px}
@media(max-width:980px){.mega{display:none !important;position:static;transform:none;box-shadow:none;border:none;min-width:0;max-width:none;padding:6px 0 6px 14px;margin-top:6px;border-left:2px solid var(--line)}.nav-item:hover .mega,.nav-item:focus-within .mega{display:none}.nav-item.open .mega{display:block !important}.mega-cols{grid-template-columns:1fr;gap:14px}.mega-flat{grid-template-columns:1fr}}

/* Breadcrumb */
.crumb{display:flex;gap:8px;align-items:center;font-size:12.5px;color:rgba(255,255,255,0.55);flex-wrap:wrap}
.crumb a{color:rgba(255,255,255,0.72)}
.crumb a:hover{color:#fff}
.crumb span.sep{opacity:.5}

/* Directory grid (technologies.html / services.html) */
.cat-block{margin-top:56px}
.cat-block:first-child{margin-top:0}
.cat-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;flex-wrap:wrap}
.cat-head h2{font-size:clamp(22px,2.6vw,30px)}
.cat-count{font-size:12px;color:var(--muted);font-weight:600;letter-spacing:.04em}
.tile-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.tile{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;display:flex;flex-direction:column;gap:12px;transition:all .35s var(--ease);text-align:left}
.tile:hover{transform:translateY(-4px);border-color:transparent;box-shadow:0 20px 40px rgba(23,37,43,0.18)}
.tile-icon{width:46px;height:46px;border-radius:12px;background:var(--grad-soft);display:grid;place-items:center;color:var(--blue)}
.tile-icon svg{width:24px;height:24px}


.tile h3{font-size:18px;font-weight:700;letter-spacing:-.01em}
.tile .tagline{font-size:13px;color:var(--muted);line-height:1.5;flex-grow:1}
.tile .tile-cta{font-size:12.5px;font-weight:700;color:var(--blue);display:inline-flex;align-items:center;gap:6px}
.tile .tile-cta::after{content:'→';transition:transform .25s}
.tile:hover .tile-cta::after{transform:translateX(4px)}
@media(max-width:980px){.tile-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.tile-grid{grid-template-columns:1fr}}

/* Pill lists (homepage full technology giveaway) */
.pill-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.pill-link{font-size:13px;padding:8px 14px;border-radius:100px;background:#fff;border:1px solid var(--line);color:var(--ink);font-weight:500;transition:all .2s}
.pill-link:hover{border-color:var(--blue);color:var(--blue);background:var(--bg-soft)}
.section-navy .pill-link{background:rgba(255,255,255,0.06);border-color:rgba(255,255,255,0.22);color:rgba(255,255,255,0.85)}
.section-navy .pill-link:hover{background:rgba(255,255,255,0.14);border-color:var(--cyan);color:#fff}

/* Service overview cards on homepage */
.svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:36px}
.svc-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;transition:all .3s var(--ease)}
.svc-card:hover{transform:translateY(-3px);box-shadow:0 16px 32px rgba(23,37,43,0.16)}
.svc-card h4{font-size:15px;font-weight:700;margin-bottom:6px}
.svc-card p{font-size:12.5px;color:var(--muted);line-height:1.5}
@media(max-width:980px){.svc-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.svc-grid{grid-template-columns:1fr}}

/* Detail page hero */
.detail-hero{background:radial-gradient(120% 90% at 78% 12%,var(--hero-dark-2),var(--hero-dark) 55%);padding:36px 0 54px;position:relative;overflow:hidden}
.detail-hero-inner{display:grid;grid-template-columns:1fr 320px;gap:40px;align-items:center;margin-top:22px}
.detail-title{color:#fff}
.detail-title h1{font-size:clamp(32px,4.4vw,52px);margin-top:12px}
.detail-tagline{color:var(--cyan);font-size:17px;font-weight:600;margin-top:14px}
.pic-slot{aspect-ratio:1/1;border-radius:20px;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.22);display:grid;place-items:center;position:relative;overflow:hidden}
.pic-slot::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 50% 40%,rgba(140,197,196,0.28),transparent 70%)}
.pic-slot svg{width:44%;height:44%;position:relative;z-index:1;color:var(--cyan)}
.pic-slot .pic-label{position:absolute;bottom:14px;left:0;right:0;text-align:center;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,0.4);font-weight:700}
@media(max-width:820px){.detail-hero-inner{grid-template-columns:1fr}.pic-slot{max-width:220px;margin:0 auto}}

.breadcrumb-bar{padding:20px 0 0}

/* =========================================================
   Capability Showcase — signature “What We Offer” component
   ========================================================= */
.capability-section{
  background:#fff;
  padding:110px 0 120px;
  position:relative;
}
.capability-section::before{
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:1px;
  background:linear-gradient(90deg,transparent,var(--line),transparent);
}
.capability-showcase{
  display:grid;
  grid-template-columns:minmax(240px,0.38fr) minmax(0,0.62fr);
  gap:56px 64px;
  align-items:start;
}
.capability-intro{
  position:sticky;
  top:120px;
}
.capability-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--blue);
  margin-bottom:18px;
}
.capability-eyebrow::before{
  content:'';
  width:6px;height:6px;
  border-radius:50%;
  background:var(--grad);
  flex-shrink:0;
}
.capability-heading{
  font-size:clamp(28px,3.2vw,42px);
  line-height:1.08;
  letter-spacing:-.03em;
  font-weight:700;
  color:var(--navy);
  margin:0 0 18px;
}
.capability-heading em{
  font-style:normal;
  background:var(--grad);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.capability-lede{
  font-size:15.5px;
  line-height:1.65;
  color:var(--muted);
  margin:0 0 28px;
  max-width:34ch;
}
.capability-count{
  display:inline-flex;
  align-items:baseline;
  gap:10px;
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--muted);
  padding-top:4px;
  border-top:1px solid var(--line);
  width:fit-content;
}
.capability-count-num{
  font-size:22px;
  font-weight:800;
  letter-spacing:-.03em;
  color:var(--navy);
  font-variant-numeric:tabular-nums;
}

/* Stack + rail */
.capability-stack{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:0;
  padding-left:28px;
}
.capability-rail{
  position:absolute;
  left:0;
  top:8px;
  bottom:8px;
  width:2px;
  background:var(--grad);
  border-radius:2px;
  opacity:.55;
}
.capability-item{
  position:relative;
  display:grid;
  grid-template-columns:48px 1fr auto;
  align-items:center;
  gap:8px 14px;
  min-height:64px;
  padding:18px 16px 18px 8px;
  margin:0 -8px;
  border-radius:12px;
  border-bottom:1px solid var(--line);
  cursor:default;
  transition:
    background .35s var(--ease),
    transform .35s var(--ease),
    box-shadow .35s var(--ease);
}
.capability-item:last-child{border-bottom:none}
.capability-item::before{
  content:'';
  position:absolute;
  left:-28px;
  top:50%;
  width:10px;height:10px;
  margin-top:-5px;
  border-radius:50%;
  background:#fff;
  border:2px solid var(--blue);
  box-shadow:0 0 0 3px rgba(62,125,130,0.12);
  transition:border-color .35s var(--ease), box-shadow .35s var(--ease), background .35s var(--ease);
  z-index:1;
}
.capability-num{
  font-size:12px;
  font-weight:700;
  letter-spacing:.08em;
  color:var(--muted);
  font-variant-numeric:tabular-nums;
  transition:color .35s var(--ease);
}
.capability-body{min-width:0}
.capability-title{
  display:block;
  font-size:clamp(17px,1.35vw,21px);
  font-weight:650;
  letter-spacing:-.015em;
  color:var(--navy);
  line-height:1.3;
  transition:transform .35s var(--ease), color .35s var(--ease);
}
.capability-arrow{
  font-size:18px;
  color:var(--blue);
  opacity:.35;
  transform:translateX(0);
  transition:opacity .35s var(--ease), transform .35s var(--ease);
  justify-self:end;
}

/* Hover */
.capability-item:hover{
  background:linear-gradient(90deg,rgba(62,125,130,0.05),rgba(140,197,196,0.03),transparent 70%);
}
.capability-item:hover::before{
  border-color:var(--cyan);
  background:var(--cyan);
  box-shadow:0 0 0 4px rgba(140,197,196,0.18);
}
.capability-item:hover .capability-num{color:var(--blue)}
.capability-item:hover .capability-title{
  transform:translateX(5px);
  color:var(--navy);
}
.capability-item:hover .capability-arrow{
  opacity:1;
  transform:translateX(6px);
  color:var(--cyan);
}

/* First item slight emphasis when list is long */
.capability-stack[data-count]:not([data-count="1"]):not([data-count="2"]):not([data-count="3"]):not([data-count="4"])
  .capability-item:first-child{
  background:linear-gradient(90deg,rgba(62,125,130,0.04),transparent 60%);
}
.capability-stack[data-count]:not([data-count="1"]):not([data-count="2"]):not([data-count="3"]):not([data-count="4"])
  .capability-item:first-child .capability-title{font-weight:700}

/* Focus for a11y */
.capability-item:focus-within{
  outline:2px solid var(--cyan);
  outline-offset:2px;
}

/* Reduced motion */
@media (prefers-reduced-motion:reduce){
  .capability-item,
  .capability-item::before,
  .capability-num,
  .capability-title,
  .capability-arrow{
    transition:none !important;
  }
  .capability-item:hover .capability-title,
  .capability-item:hover .capability-arrow{
    transform:none;
  }
}

/* Responsive */
@media (max-width:980px){
  .capability-showcase{
    grid-template-columns:1fr;
    gap:40px;
  }
  .capability-intro{position:static}
  .capability-lede{max-width:48ch}
  .capability-section{padding:80px 0 88px}
}
@media (max-width:640px){
  .capability-section{padding:72px 0 80px}
  .capability-stack{padding-left:22px}
  .capability-item{
    grid-template-columns:40px 1fr auto;
    min-height:56px;
    padding:16px 8px 16px 4px;
    gap:6px 10px;
  }
  .capability-item::before{
    left:-22px;
    width:8px;height:8px;
    margin-top:-4px;
  }
  .capability-title{font-size:17px}
  .capability-num{font-size:11px}
  .capability-heading{font-size:clamp(24px,7vw,32px)}
}

/* Legacy offer classes kept for safety / non-detail pages */
.offer-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 24px;margin-top:26px}
.offer-item{display:flex;gap:10px;align-items:flex-start;font-size:15px;color:var(--ink);padding:10px 0;border-bottom:1px solid var(--line)}
.offer-item svg{width:18px;height:18px;flex-shrink:0;margin-top:3px;color:var(--blue)}
@media(max-width:700px){.offer-grid{grid-template-columns:1fr}}

.related-strip{margin-top:16px;display:flex;flex-wrap:wrap;gap:8px}

/* Service detail subgroups (kept for any residual use) */
.subgroup{background:#fff;border:1px solid var(--line);border-radius:16px;padding:26px;margin-top:16px}
.subgroup h3{font-size:18px;margin-bottom:14px;display:flex;align-items:center;gap:10px}
.subgroup h3::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--grad);flex-shrink:0}
.subgroup .offer-item{border-bottom:1px solid var(--line)}
.subgroup .offer-item:last-child{border-bottom:none}

/* Industries strip */
.industry-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:32px}
.industry-chip{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 18px;font-size:14.5px;font-weight:600;display:flex;align-items:center;gap:10px}
.industry-chip svg{width:20px;height:20px;color:var(--blue);flex-shrink:0}
@media(max-width:820px){.industry-grid{grid-template-columns:1fr 1fr}}

/* CTA band reused on detail pages */
.cta-band{background:var(--navy);border-radius:20px;padding:44px 40px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;color:#fff;margin-top:64px}
.cta-band h3{font-size:clamp(20px,2.4vw,26px);color:#fff}
.cta-band p{color:rgba(255,255,255,0.6);margin-top:6px;font-size:14.5px}



.pic-slot 
.pic-slot

/* =========================================================
   Technology logo stage — optical normalization
   ========================================================= */
.tech-logo-stage{
  width:84px;
  height:64px;
  display:grid;
  place-items:center;
  flex-shrink:0;
  margin-bottom:4px;
  overflow:visible;
  transition:transform .35s var(--ease);
}
.tech-logo-stage img{
  display:block;
  width:auto;
  height:auto;
  object-fit:contain;
  opacity:1;
  visibility:visible;
  clip-path:none;
  -webkit-clip-path:none;
}
/* Optical shape classes — perceived visual weight, not forced geometry */
.tech-logo-stage[data-logo-shape="square"] img{
  max-width:50px;
  max-height:50px;
}
.tech-logo-stage[data-logo-shape="wide"] img{
  max-width:68px;
  max-height:36px;
}
.tech-logo-stage[data-logo-shape="ultrawide"] img{
  max-width:72px;
  max-height:28px;
}
.tech-logo-stage[data-logo-shape="tall"] img{
  max-width:42px;
  max-height:54px;
}
.tile:hover .tech-logo-stage{
  transform:translateY(-3px);
}
@media(max-width:640px){
  .tech-logo-stage{width:72px;height:56px}
  .tech-logo-stage[data-logo-shape="square"] img{max-width:44px;max-height:44px}
  .tech-logo-stage[data-logo-shape="wide"] img{max-width:58px;max-height:32px}
  .tech-logo-stage[data-logo-shape="ultrawide"] img{max-width:64px;max-height:24px}
  .tech-logo-stage[data-logo-shape="tall"] img{max-width:36px;max-height:48px}
}

/* Authentic logo in technology detail hero pic-slot */
.pic-slot .tech-logo-stage{
  width:58%;
  height:58%;
  position:relative;
  z-index:1;
  display:grid;
  place-items:center;
  margin-bottom:0;
  background:rgba(255,255,255,0.94);
  border-radius:14px;
  box-shadow:0 8px 24px rgba(0,0,0,0.18);
  padding:10px;
  box-sizing:border-box;
}
.pic-slot .tech-logo-stage img{
  max-width:100%;
  max-height:100%;
  width:auto;
  height:auto;
  object-fit:contain;
}
.pic-slot .tech-logo-stage[data-logo-shape="ultrawide"] img{
  max-width:100%;
  max-height:55%;
}
.pic-slot .tech-logo-stage[data-logo-shape="wide"] img{
  max-width:100%;
  max-height:70%;
}
.pic-slot .tech-logo-stage[data-logo-shape="tall"] img{
  max-width:70%;
  max-height:100%;
}

/* =========================================================
   Ecotech Service Mark System
   ========================================================= */
.service-mark-stage{
  width:84px;
  height:72px;
  display:grid;
  place-items:center;
  flex-shrink:0;
  margin-bottom:14px;
  transition:transform .35s var(--ease);
}
.service-mark-stage img{
  display:block;
  width:auto;
  height:auto;
  max-width:56px;
  max-height:56px;
  object-fit:contain;
  opacity:1;
  visibility:visible;
  clip-path:none;
  -webkit-clip-path:none;
}
.tile:hover .service-mark-stage{
  transform:translateY(-3px);
}
@media(max-width:640px){
  .service-mark-stage{width:72px;height:64px;margin-bottom:12px}
  .service-mark-stage img{max-width:48px;max-height:48px}
}

/* Detail page hero service mark */
.pic-slot .service-mark-stage{
  width:58%;
  height:58%;
  margin-bottom:0;
  background:rgba(255,255,255,0.94);
  border-radius:14px;
  box-shadow:0 8px 24px rgba(0,0,0,0.18);
  padding:12px;
  box-sizing:border-box;
}
.pic-slot .service-mark-stage img{
  max-width:100%;
  max-height:100%;
}


/* ===== SOURCE: site-unify-v28.css ===== */

/* site-unify-v28.css — every page matches homepage V9 mineral palette */
:root{
  --navy:#17252B !important;
  --blue:#3E7D82 !important;
  --cyan:#8CC5C4 !important;
  --purple:#B66F52 !important;
  --lavender:#D9A98A !important;
  --bg:#F7F5EF !important;
  --bg-soft:#F2F0E9 !important;
  --ink:#17252B !important;
  --muted:#3E524E !important;
  --line:rgba(23,37,43,0.12) !important;
  --line-strong:rgba(23,37,43,0.26) !important;
  --grad:linear-gradient(135deg,#3E7D82,#426B5A,#B66F52) !important;
  --grad-soft:linear-gradient(135deg,rgba(62,125,130,0.16),rgba(66,107,90,0.05),rgba(182,111,82,0.06)) !important;
  --hero-dark:#0E1715 !important;
  --hero-dark-2:#16221F !important;
}
html,body{background:#E9E7DF !important;color:#17252B !important}
.section-soft{background:#F2F0E9 !important}
.section-soft::before,.section-soft::after{opacity:0 !important;content:none !important}
.tile,.card,.svc-card{background:#F7F5EF !important;border-color:rgba(23,37,43,0.10) !important}
.tile h3,.card h3{color:#17252B !important}
.tile p,.card p,.small,.muted{color:#3E524E !important}
h1,h2,h3,h4{color:#17252B}
.kicker{color:#3E7D82 !important}
.offer-item svg,.industry-chip svg{color:#3E7D82 !important}
.pill-link{background:rgba(247,245,239,0.9);border-color:rgba(23,37,43,0.10);color:#17252B}
.pill-link:hover{border-color:#3E7D82;color:#3E7D82}
.btn-primary{background:linear-gradient(135deg,#3E7D82,#426B5A,#B66F52) !important;color:#fff !important}
.btn-secondary{color:#17252B;border-color:rgba(23,37,43,0.16)}
.btn-secondary:hover{border-color:#3E7D82;color:#3E7D82}
.section-navy,.page-header,.hero-section{background:#0E1715 !important;color:#fff}
.section-navy h2,.section-navy h3,.page-header h1,.page-header h2{color:#fff !important}
.section-navy .kicker{color:#8CC5C4 !important}
.section-navy .pill-link{background:rgba(255,255,255,0.06);border-color:rgba(255,255,255,0.18);color:rgba(255,255,255,0.88)}
.section-navy .pill-link:hover{border-color:#8CC5C4;color:#fff}
.section:not(.section-navy):not(.hero-section)::before,
.section:not(.section-navy):not(.hero-section)::after,
.page-header::before,.page-header::after{filter:saturate(0.35) !important}
.cta-band{background:linear-gradient(125deg,#0E1715 0%,#16221F 50%,#1A2A26 100%) !important;color:#fff !important}
.cta-band h3{color:#fff !important}
.cta-band p{color:rgba(233,231,223,0.75) !important}
input,textarea,select{background:#F7F5EF;border-color:rgba(23,37,43,0.14);color:#17252B}
input:focus,textarea:focus,select:focus{border-color:#3E7D82 !important}
.label{color:#3E7D82 !important}
.platform-bar{background:#F2F0E9 !important;color:#17252B !important}
.home-page-v3{
  --n:#17252B !important;--paper:#E9E7DF !important;--paper-2:#F2F0E9 !important;
  --mist:#F2F0E9 !important;--sage:#E9E7DF !important;--sand:#F2F0E9 !important;
  --muted:#3E524E !important;--blue:#3E7D82 !important;--teal:#3E7D82 !important;
  --violet:#625C70 !important;--orange:#B66F52 !important;--ink:#17252B !important;
  background:#E9E7DF !important;color:#17252B !important;
}
.v3-hero{background:radial-gradient(circle at 14% 38%,rgba(62,125,130,.10),transparent 25%),radial-gradient(circle at 85% 28%,rgba(182,111,82,.07),transparent 23%),#E9E7DF !important}
.v3-start{background:linear-gradient(180deg,#F7F5EF 0%,#F2F0E9 100%) !important}
.v3-signal{background:linear-gradient(180deg,#F2F0E9,#E9E7DF) !important}
.v3-depth{background:#F2F0E9 !important}
.v3-industries{background:#E9E7DF !important}
.v3-final{background:linear-gradient(125deg,#0E1715 0%,#16221F 50%,#1A2A26 100%) !important;color:#fff !important}
.v3-final h2,.v3-final .v3-kicker{color:#fff !important}
.v3-final p{color:rgba(233,231,223,.78) !important}
.v3-final a{background:#F7F5EF !important;color:#17252B !important}
.v3-btn--dark{background:#17252B !important;color:#fff !important}
.v3-btn--light{background:rgba(247,245,239,.85) !important;color:#3E524E !important;border:1px solid rgba(23,37,43,.12) !important}
.v3-kicker{color:#3E524E !important}
.v3-path-step,.v3-problem,.v3-depth-card{background:#F7F5EF !important}
.v3-path-step--data .v3-path-num,.v3-path-step--data .v3-path-label,
.v3-path-step--insight .v3-path-num,.v3-path-step--insight .v3-path-label{color:#3E7D82 !important}
.v3-path-step--data::before,.v3-path-step--insight::before{background:#3E7D82 !important}
.v3-path-step--intel::before{background:#625C70 !important}
.v3-path-step--people::before{background:#B66F52 !important}
.v3-path-step--outcome::before{background:linear-gradient(90deg,#3E7D82,#426B5A) !important}

/* structural traps */
.hero-section,.page-header{
  background:radial-gradient(120% 100% at 70% 20%, var(--hero-dark-2) 0%, var(--hero-dark) 55%, #0A100E 100%) !important;
}
.stat-icon{color:#8CC5C4;background:linear-gradient(135deg,rgba(140,197,196,0.24),rgba(182,111,82,0.2))}
:focus-visible{outline-color:#3E7D82}
.form-status.success{background:#E8F0EA;color:#2F4A3A;border-color:#C7DBC9}


/* ===== SOURCE: sitewide-text-accents-v1.css ===== */


/* =========================================================
   ECOTECH SITEWIDE TYPOGRAPHIC ACCENT SYSTEM V1
   Matte + punchy text colors. No background recoloring.
   ========================================================= */

:root{
  --accent-teal:#2F8587;
  --accent-terracotta:#B7654B;
  --accent-ochre:#B08A3E;
  --accent-plum:#80607D;
  --accent-indigo:#536B8A;
  --accent-sage:#4F8175;
  --accent-coral:#B96862;
  --accent-olive:#788044;
  --accent-rust:#9A604A;
}

/* Global accent utility: future content can use these without inventing colors. */
.text-accent-teal{color:var(--accent-teal)!important;}
.text-accent-terracotta{color:var(--accent-terracotta)!important;}
.text-accent-ochre{color:var(--accent-ochre)!important;}
.text-accent-plum{color:var(--accent-plum)!important;}
.text-accent-indigo{color:var(--accent-indigo)!important;}
.text-accent-sage{color:var(--accent-sage)!important;}
.text-accent-coral{color:var(--accent-coral)!important;}
.text-accent-olive{color:var(--accent-olive)!important;}

/* -------- ABOUT: people, trust, delivery -------- */
body.eco-nav-page:not(.home-page-v3) .about-hero h1,
body.eco-nav-page:not(.home-page-v3) .about-intro h1{
  color:var(--accent-teal)!important;
}
body.eco-nav-page:not(.home-page-v3) .about-story h2:nth-of-type(odd){
  color:var(--accent-terracotta)!important;
}
body.eco-nav-page:not(.home-page-v3) .about-story h2:nth-of-type(even){
  color:var(--accent-indigo)!important;
}

/* -------- SERVICES: warm + action-oriented -------- */
body.eco-nav-page .service-page h1,
body.eco-nav-page .services-hero h1{
  color:var(--accent-teal)!important;
}
body.eco-nav-page .service-card:nth-child(4n+1) h2,
body.eco-nav-page .service-card:nth-child(4n+1) h3{
  color:var(--accent-teal)!important;
}
body.eco-nav-page .service-card:nth-child(4n+2) h2,
body.eco-nav-page .service-card:nth-child(4n+2) h3{
  color:var(--accent-terracotta)!important;
}
body.eco-nav-page .service-card:nth-child(4n+3) h2,
body.eco-nav-page .service-card:nth-child(4n+3) h3{
  color:var(--accent-indigo)!important;
}
body.eco-nav-page .service-card:nth-child(4n) h2,
body.eco-nav-page .service-card:nth-child(4n) h3{
  color:var(--accent-ochre)!important;
}

/* -------- TECHNOLOGIES: cooler/data vocabulary -------- */
body.eco-nav-page .tech-page h1,
body.eco-nav-page .technologies-hero h1{
  color:var(--accent-indigo)!important;
}
body.eco-nav-page .tech-card:nth-child(5n+1) h2,
body.eco-nav-page .tech-card:nth-child(5n+1) h3{
  color:var(--accent-teal)!important;
}
body.eco-nav-page .tech-card:nth-child(5n+2) h2,
body.eco-nav-page .tech-card:nth-child(5n+2) h3{
  color:var(--accent-indigo)!important;
}
body.eco-nav-page .tech-card:nth-child(5n+3) h2,
body.eco-nav-page .tech-card:nth-child(5n+3) h3{
  color:var(--accent-plum)!important;
}
body.eco-nav-page .tech-card:nth-child(5n+4) h2,
body.eco-nav-page .tech-card:nth-child(5n+4) h3{
  color:var(--accent-ochre)!important;
}
body.eco-nav-page .tech-card:nth-child(5n) h2,
body.eco-nav-page .tech-card:nth-child(5n) h3{
  color:var(--accent-sage)!important;
}

/* -------- INDUSTRIES: grounded / sector-led -------- */
body.eco-nav-page .industries-hero h1,
body.eco-nav-page .industry-page h1{
  color:var(--accent-terracotta)!important;
}
body.eco-nav-page .industry-card:nth-child(3n+1) h2,
body.eco-nav-page .industry-card:nth-child(3n+1) h3{
  color:var(--accent-olive)!important;
}
body.eco-nav-page .industry-card:nth-child(3n+2) h2,
body.eco-nav-page .industry-card:nth-child(3n+2) h3{
  color:var(--accent-teal)!important;
}
body.eco-nav-page .industry-card:nth-child(3n) h2,
body.eco-nav-page .industry-card:nth-child(3n) h3{
  color:var(--accent-terracotta)!important;
}

/* -------- BLOG / PORTFOLIO: editorial, slightly more sophisticated -------- */
body.eco-nav-page .blog-hero h1,
body.eco-nav-page .insights-hero h1{
  color:var(--accent-plum)!important;
}
body.eco-nav-page .blog-card h2,
body.eco-nav-page .blog-card h3{
  color:var(--accent-plum)!important;
}
body.eco-nav-page .portfolio-hero h1{
  color:var(--accent-indigo)!important;
}
body.eco-nav-page .portfolio-card h2,
body.eco-nav-page .portfolio-card h3{
  color:var(--accent-indigo)!important;
}

/* -------- CONTACT: warm, human, high-confidence -------- */
body.eco-nav-page .contact-hero-v2 h1,
body.eco-nav-page .contact-hero h1{
  color:var(--accent-teal)!important;
}
body.eco-nav-page .contact-form h2,
body.eco-nav-page .contact-form h3{
  color:var(--accent-terracotta)!important;
}
body.eco-nav-page .contact-step:nth-child(3n+1) h3,
body.eco-nav-page .contact-step:nth-child(3n+1) strong{
  color:var(--accent-teal)!important;
}
body.eco-nav-page .contact-step:nth-child(3n+2) h3,
body.eco-nav-page .contact-step:nth-child(3n+2) strong{
  color:var(--accent-ochre)!important;
}
body.eco-nav-page .contact-step:nth-child(3n) h3,
body.eco-nav-page .contact-step:nth-child(3n) strong{
  color:var(--accent-indigo)!important;
}

/* Kicker/eyebrow hierarchy: use one strong accent, not rainbow headings. */
body.eco-nav-page:not(.home-page-v3) .eyebrow,
body.eco-nav-page:not(.home-page-v3) .kicker,
body.eco-nav-page:not(.home-page-v3) .section-kicker{
  color:var(--accent-teal)!important;
}

/* Links get chromatic identity without changing their geometry. */
body.eco-nav-page:not(.home-page-v3) .text-link:hover,
body.eco-nav-page:not(.home-page-v3) .learn-more:hover,
body.eco-nav-page:not(.home-page-v3) a:hover{
  text-decoration-color:currentColor;
}

/* Keep all accent typography matte: no glow, shadow or gradient text. */
body.eco-nav-page .eyebrow,
body.eco-nav-page .kicker,
body.eco-nav-page h1,
body.eco-nav-page h2,
body.eco-nav-page h3{
  text-shadow:none!important;
}

/* =========================================================
   V2 — ACTUAL PAGE STRUCTURE ACCENTS
   ========================================================= */

/* ABOUT — timeline storytelling */
body.eco-nav-page .about-timeline-step:nth-child(3n+1) .about-timeline-num,
body.eco-nav-page .about-timeline-step:nth-child(3n+1) h3{
  color:var(--accent-teal)!important;
}
body.eco-nav-page .about-timeline-step:nth-child(3n+2) .about-timeline-num,
body.eco-nav-page .about-timeline-step:nth-child(3n+2) h3{
  color:var(--accent-terracotta)!important;
}
body.eco-nav-page .about-timeline-step:nth-child(3n) .about-timeline-num,
body.eco-nav-page .about-timeline-step:nth-child(3n) h3{
  color:var(--accent-indigo)!important;
}
body.eco-nav-page .about-principles .card:nth-child(3n+1) h3{color:var(--accent-teal)!important;}
body.eco-nav-page .about-principles .card:nth-child(3n+2) h3{color:var(--accent-ochre)!important;}
body.eco-nav-page .about-principles .card:nth-child(3n) h3{color:var(--accent-plum)!important;}
body.eco-nav-page .about-callout h2{color:var(--accent-terracotta)!important;}

/* SERVICES — capability tiles */
body.eco-nav-page .detail-hero .kicker{color:var(--accent-teal)!important;}
body.eco-nav-page .cat-head h2{color:var(--accent-indigo)!important;}
body.eco-nav-page .cat-count{color:var(--accent-ochre)!important;}
body.eco-nav-page .tile-grid .tile:nth-child(4n+1) h3,
body.eco-nav-page .tile-grid .tile:nth-child(4n+1) .tagline{color:var(--accent-teal)!important;}
body.eco-nav-page .tile-grid .tile:nth-child(4n+2) h3,
body.eco-nav-page .tile-grid .tile:nth-child(4n+2) .tagline{color:var(--accent-terracotta)!important;}
body.eco-nav-page .tile-grid .tile:nth-child(4n+3) h3,
body.eco-nav-page .tile-grid .tile:nth-child(4n+3) .tagline{color:var(--accent-indigo)!important;}
body.eco-nav-page .tile-grid .tile:nth-child(4n) h3,
body.eco-nav-page .tile-grid .tile:nth-child(4n) .tagline{color:var(--accent-ochre)!important;}
body.eco-nav-page .tile .label{color:var(--accent-sage)!important;}
body.eco-nav-page .tile-cta{color:var(--accent-teal)!important;}

/* TECHNOLOGIES — category-led cool spectrum */
body.eco-nav-page .cat-block:nth-of-type(5n+1) .cat-head h2{color:var(--accent-teal)!important;}
body.eco-nav-page .cat-block:nth-of-type(5n+2) .cat-head h2{color:var(--accent-indigo)!important;}
body.eco-nav-page .cat-block:nth-of-type(5n+3) .cat-head h2{color:var(--accent-plum)!important;}
body.eco-nav-page .cat-block:nth-of-type(5n+4) .cat-head h2{color:var(--accent-ochre)!important;}
body.eco-nav-page .cat-block:nth-of-type(5n) .cat-head h2{color:var(--accent-sage)!important;}
body.eco-nav-page .cat-block .cat-count{color:var(--accent-ochre)!important;}
body.eco-nav-page .cat-block .tile:nth-child(5n+1) .tagline{color:var(--accent-teal)!important;}
body.eco-nav-page .cat-block .tile:nth-child(5n+2) .tagline{color:var(--accent-indigo)!important;}
body.eco-nav-page .cat-block .tile:nth-child(5n+3) .tagline{color:var(--accent-plum)!important;}
body.eco-nav-page .cat-block .tile:nth-child(5n+4) .tagline{color:var(--accent-ochre)!important;}
body.eco-nav-page .cat-block .tile:nth-child(5n) .tagline{color:var(--accent-sage)!important;}

/* INDUSTRIES — chips and offer story */
body.eco-nav-page .industry-chip:nth-child(4n+1){color:var(--accent-olive)!important;}
body.eco-nav-page .industry-chip:nth-child(4n+2){color:var(--accent-teal)!important;}
body.eco-nav-page .industry-chip:nth-child(4n+3){color:var(--accent-terracotta)!important;}
body.eco-nav-page .industry-chip:nth-child(4n){color:var(--accent-indigo)!important;}
body.eco-nav-page .offer-item:nth-child(3n+1) strong{color:var(--accent-teal)!important;}
body.eco-nav-page .offer-item:nth-child(3n+2) strong{color:var(--accent-ochre)!important;}
body.eco-nav-page .offer-item:nth-child(3n) strong{color:var(--accent-terracotta)!important;}

/* CONTACT — use the actual V2 contact structure */
body.contact-page .contact-eyebrow-v2,
body.contact-page .section-kicker-v2,
body.contact-page .context-kicker{
  color:var(--accent-teal)!important;
}
body.contact-page .contact-route-v2 > *:nth-child(3n+1){color:var(--accent-teal)!important;}
body.contact-page .contact-route-v2 > *:nth-child(3n+2){color:var(--accent-ochre)!important;}
body.contact-page .contact-route-v2 > *:nth-child(3n){color:var(--accent-indigo)!important;}
body.contact-page .contact-main-v2 h2:nth-of-type(1){color:var(--accent-terracotta)!important;}
body.contact-page .contact-main-v2 h2:nth-of-type(2){color:var(--accent-teal)!important;}
body.contact-page .contact-main-v2 h2:nth-of-type(3){color:var(--accent-indigo)!important;}
body.contact-page .contact-context-v2 h2{color:var(--accent-terracotta)!important;}
body.contact-page .context-flow-v2 h3:nth-child(3n+1){color:var(--accent-teal)!important;}
body.contact-page .context-flow-v2 h3:nth-child(3n+2){color:var(--accent-ochre)!important;}
body.contact-page .context-flow-v2 h3:nth-child(3n){color:var(--accent-indigo)!important;}
body.contact-page .field-v2 label{color:var(--accent-indigo)!important;}
body.contact-page .interest-choice label:nth-of-type(3n+1){color:var(--accent-teal)!important;}
body.contact-page .interest-choice label:nth-of-type(3n+2){color:var(--accent-terracotta)!important;}
body.contact-page .interest-choice label:nth-of-type(3n){color:var(--accent-plum)!important;}

/* BLOG / PORTFOLIO — actual card containers */
body.eco-nav-page .blog-grid > *,
body.eco-nav-page .portfolio-grid > *{
  transition:color .2s ease,border-color .2s ease;
}
body.eco-nav-page .blog-grid > *:nth-child(3n+1) h2,
body.eco-nav-page .blog-grid > *:nth-child(3n+1) h3{color:var(--accent-plum)!important;}
body.eco-nav-page .blog-grid > *:nth-child(3n+2) h2,
body.eco-nav-page .blog-grid > *:nth-child(3n+2) h3{color:var(--accent-teal)!important;}
body.eco-nav-page .blog-grid > *:nth-child(3n) h2,
body.eco-nav-page .blog-grid > *:nth-child(3n) h3{color:var(--accent-terracotta)!important;}
body.eco-nav-page .portfolio-grid > *:nth-child(3n+1) h2,
body.eco-nav-page .portfolio-grid > *:nth-child(3n+1) h3{color:var(--accent-indigo)!important;}
body.eco-nav-page .portfolio-grid > *:nth-child(3n+2) h2,
body.eco-nav-page .portfolio-grid > *:nth-child(3n+2) h3{color:var(--accent-teal)!important;}
body.eco-nav-page .portfolio-grid > *:nth-child(3n) h2,
body.eco-nav-page .portfolio-grid > *:nth-child(3n) h3{color:var(--accent-ochre)!important;}

/* Common CTA labels get one recognizable signature color. */
body.eco-nav-page .btn-primary,
body.eco-nav-page .tile-cta{
  color:var(--accent-teal)!important;
}


/* ===== SOURCE: button-contrast-v1.css ===== */


/* =========================================================
   ECOTECH BUTTON CONTRAST V1
   Buttons are controls, not typographic accents.
   Keep them high-contrast and readable.
   ========================================================= */

:root{
  --button-ink:#30483F;
  --button-teal:#2F8587;
  --button-terracotta:#9A604A;
  --button-light:#F6F5F1;
  --button-line:rgba(48,72,63,.22);
}

/* Primary actions: dark, quiet, maximum readability. */
.btn-primary,
.eco-nav-v23__cta,
.contact-page .btn-primary,
.contact-page button[type="submit"],
.contact-page input[type="submit"]{
  background:var(--button-ink)!important;
  color:var(--button-light)!important;
  border-color:var(--button-ink)!important;
  text-shadow:none!important;
}

/* Secondary actions can carry the signature teal without sacrificing contrast. */
.btn-secondary{
  background:var(--button-teal)!important;
  color:#fff!important;
  border-color:var(--button-teal)!important;
  text-shadow:none!important;
}

/* Tile / text CTAs sit on light surfaces, so use dark teal text. */
.tile-cta,
.v3-path-go{
  color:var(--button-ink)!important;
  text-shadow:none!important;
}

.tile-cta:hover,
.v3-path-go:hover{
  color:var(--button-teal)!important;
}

/* Homepage pill links: outline control, not colored body copy. */
.home-page-v3 .pill-link{
  color:var(--button-ink)!important;
  border-color:var(--button-line)!important;
  background:transparent!important;
}
.home-page-v3 .pill-link:hover{
  color:var(--button-teal)!important;
  border-color:var(--button-teal)!important;
}

/* Navigation CTA must always remain readable regardless of page accent rules. */
.eco-nav-v23__cta,
.eco-nav-v23__sheet-cta{
  background:var(--button-ink)!important;
  color:var(--button-light)!important;
  border-color:var(--button-ink)!important;
}

/* Interest choices are selectable controls; labels shouldn't inherit
   decorative heading colors that reduce contrast. */
.contact-page .interest-choice label{
  color:var(--button-ink)!important;
}

/* Dark CTA bands: reverse the hierarchy. */
.cta-band .btn-primary,
.v3-final .btn-primary{
  background:var(--button-light)!important;
  color:var(--button-ink)!important;
  border-color:var(--button-light)!important;
}

/* Focus states remain obvious and accessible. */
.btn:focus-visible,
button:focus-visible,
input[type="submit"]:focus-visible,
a.btn:focus-visible{
  outline:2px solid var(--button-teal)!important;
  outline-offset:3px;
}

/* Never let sitewide heading accent rules recolor button text. */
.btn,
.btn *,
.tile-cta,
.tile-cta *,
.eco-nav-v23__cta,
.eco-nav-v23__cta *{
  text-shadow:none!important;
}


/* ===== SOURCE: services-text-contrast-v1.css ===== */


/* =========================================================
   ECOTECH SERVICES — TEXT CONTRAST V1
   Large typography is explicitly assigned to its background.
   ========================================================= */

/* DARK SERVICE HERO
   Large title must remain light; accent color is reserved for the kicker. */
body.eco-nav-page .detail-hero{
  color:#F6F5F1!important;
}
body.eco-nav-page .detail-hero h1{
  color:#F6F5F1!important;
  text-shadow:none!important;
}
body.eco-nav-page .detail-hero h1 em{
  color:#B7654B!important;
}
body.eco-nav-page .detail-hero p,
body.eco-nav-page .detail-hero .hero-copy,
body.eco-nav-page .detail-hero .lede{
  color:rgba(246,245,241,.82)!important;
}
body.eco-nav-page .detail-hero .kicker{
  color:#5F9C9D!important;
}

/* LIGHT CONTENT SURFACES
   Stronger dark text is the base; colored accents are limited to short
   headings/labels so readability stays high. */
body.eco-nav-page main h2,
body.eco-nav-page .content-section h2,
body.eco-nav-page .section-head h2,
body.eco-nav-page .cat-head h2{
  color:#30483F!important;
  text-shadow:none!important;
}
body.eco-nav-page main h3,
body.eco-nav-page .tile h3,
body.eco-nav-page .card h3{
  color:#30483F!important;
  text-shadow:none!important;
}
body.eco-nav-page .tile p,
body.eco-nav-page .tile .tagline,
body.eco-nav-page .card p{
  color:#626762!important;
}

/* Bring color back only where it helps hierarchy. */
body.eco-nav-page .cat-head .cat-count{
  color:#B08A3E!important;
}
body.eco-nav-page .tile-grid .tile:nth-child(4n+1) h3{
  color:#2F8587!important;
}
body.eco-nav-page .tile-grid .tile:nth-child(4n+2) h3{
  color:#B7654B!important;
}
body.eco-nav-page .tile-grid .tile:nth-child(4n+3) h3{
  color:#536B8A!important;
}
body.eco-nav-page .tile-grid .tile:nth-child(4n) h3{
  color:#B08A3E!important;
}
body.eco-nav-page .tile .label{
  color:#4F8175!important;
}
body.eco-nav-page .tile .tile-cta{
  color:#30483F!important;
}

/* DARK CTA BAND
   Never allow colored heading rules to leak into the dark background. */
body.eco-nav-page .cta-band{
  color:#F6F5F1!important;
}
body.eco-nav-page .cta-band h2,
body.eco-nav-page .cta-band h3{
  color:#F6F5F1!important;
}
body.eco-nav-page .cta-band p{
  color:rgba(246,245,241,.78)!important;
}
body.eco-nav-page .cta-band .btn-primary{
  background:#F6F5F1!important;
  color:#30483F!important;
  border-color:#F6F5F1!important;
}

/* SERVICE INDEX CATEGORY TITLES */
body.eco-nav-page .cat-block .cat-head h2{
  color:#30483F!important;
}
body.eco-nav-page .cat-block:nth-child(4n+1) .cat-head h2{color:#2F8587!important;}
body.eco-nav-page .cat-block:nth-child(4n+2) .cat-head h2{color:#B7654B!important;}
body.eco-nav-page .cat-block:nth-child(4n+3) .cat-head h2{color:#536B8A!important;}
body.eco-nav-page .cat-block:nth-child(4n) .cat-head h2{color:#80607D!important;}

/* Breadcrumbs/navigation-like text stays quiet. */
body.eco-nav-page .breadcrumb,
body.eco-nav-page .breadcrumbs{
  color:#626762!important;
}


/* ===== SOURCE: button-contrast-v2.css ===== */


/* =========================================================
   ECOTECH — SITEWIDE BUTTON CONTRAST V2
   Final control layer. Decorative text colors never override controls.
   ========================================================= */

:root{
  --ctrl-dark:#30483F;
  --ctrl-teal:#2F8587;
  --ctrl-light:#F6F5F1;
  --ctrl-line:rgba(48,72,63,.24);
}

/* ---------- Universal solid buttons ---------- */
a.btn,
button.btn,
button[type="submit"],
input[type="submit"],
.btn-cta,
.contact-submit-v2{
  text-shadow:none!important;
}

/* Primary: highest contrast on light/neutral surfaces. */
.btn-primary,
a.btn-primary,
button.btn-primary,
.contact-submit-v2{
  background:var(--ctrl-dark)!important;
  color:var(--ctrl-light)!important;
  border-color:var(--ctrl-dark)!important;
}

/* Secondary: punchy but still high contrast. */
.btn-secondary,
a.btn-secondary,
button.btn-secondary{
  background:var(--ctrl-teal)!important;
  color:#fff!important;
  border-color:var(--ctrl-teal)!important;
}

/* Pill/rounded CTAs used throughout service/technology pages. */
.btn-cta{
  background:var(--ctrl-dark)!important;
  color:var(--ctrl-light)!important;
  border-color:var(--ctrl-dark)!important;
}

/* ---------- Navigation ---------- */
.eco-nav-v23__cta,
.eco-nav-v23__sheet-cta{
  background:var(--ctrl-dark)!important;
  color:var(--ctrl-light)!important;
  border-color:var(--ctrl-dark)!important;
}

/* ---------- Homepage buttons ---------- */
.home-page-v3 .v3-btn--dark,
.home-page-v3 .v3-btn{
  background:var(--ctrl-dark)!important;
  color:var(--ctrl-light)!important;
  border-color:var(--ctrl-dark)!important;
}
.home-page-v3 .v3-btn--light{
  background:var(--ctrl-light)!important;
  color:var(--ctrl-dark)!important;
  border-color:var(--ctrl-light)!important;
}

/* Outline/pill links are controls even though they look like text. */
.pill-link{
  background:var(--ctrl-light)!important;
  color:var(--ctrl-dark)!important;
  border-color:var(--ctrl-line)!important;
}
.pill-link:hover{
  background:#fff!important;
  color:var(--ctrl-teal)!important;
  border-color:var(--ctrl-teal)!important;
}

/* On intentionally dark sections, reverse the control. */
.section-navy .pill-link,
.detail-hero .pill-link{
  background:transparent!important;
  color:var(--ctrl-light)!important;
  border-color:rgba(246,245,241,.34)!important;
}
.section-navy .pill-link:hover,
.detail-hero .pill-link:hover{
  background:rgba(246,245,241,.10)!important;
  color:#fff!important;
  border-color:rgba(246,245,241,.65)!important;
}

/* Service/technology tile CTAs are text controls on light cards. */
.tile-cta,
.v3-path-go{
  background:transparent!important;
  color:var(--ctrl-dark)!important;
  border-color:transparent!important;
}
.tile-cta:hover,
.v3-path-go:hover{
  color:var(--ctrl-teal)!important;
}

/* ---------- Dark CTA bands ---------- */
.cta-band .btn-primary,
.v3-final .btn-primary,
.v3-final .v3-btn--light{
  background:var(--ctrl-light)!important;
  color:var(--ctrl-dark)!important;
  border-color:var(--ctrl-light)!important;
}
.cta-band .btn-secondary,
.v3-final .btn-secondary,
.v3-final .v3-btn--dark{
  background:var(--ctrl-teal)!important;
  color:#fff!important;
  border-color:var(--ctrl-teal)!important;
}

/* ---------- Contact choices are controls, not decorative headings ---------- */
.contact-page .interest-choice label{
  color:var(--ctrl-dark)!important;
}
.contact-page .interest-choice label:hover{
  color:var(--ctrl-teal)!important;
}

/* ---------- Disabled state ---------- */
button:disabled,
input[type="submit"]:disabled,
.btn[aria-disabled="true"]{
  opacity:.55!important;
  cursor:not-allowed!important;
  filter:none!important;
}

/* ---------- Keyboard focus ---------- */
a.btn:focus-visible,
button:focus-visible,
input[type="submit"]:focus-visible,
.btn:focus-visible,
.btn-cta:focus-visible,
.contact-submit-v2:focus-visible{
  outline:2px solid var(--ctrl-teal)!important;
  outline-offset:3px;
}

/* Prevent text-accent rules from ever recoloring a control's label. */
.btn *,
.btn-cta *,
.eco-nav-v23__cta *,
.contact-submit-v2 *,
.v3-btn *{
  text-shadow:none!important;
}


/* ===== SOURCE: services-nav-buttons-v2.css ===== */


/* =========================================================
   SERVICE DETAIL — CURRENT NAV + BUTTON FINISH
   ========================================================= */

/* The detail-page hero uses the same current navigation as the rest of ECOTECH. */
body.eco-nav-page .detail-hero .hero-ctas .btn-primary{
  background:#30483F!important;
  color:#F6F5F1!important;
  border:1px solid #30483F!important;
  box-shadow:none!important;
}
body.eco-nav-page .detail-hero .hero-ctas .btn-primary:hover{
  background:#2F8587!important;
  color:#fff!important;
  border-color:#2F8587!important;
}
body.eco-nav-page .detail-hero .hero-ctas .btn-secondary{
  background:#F6F5F1!important;
  color:#30483F!important;
  border:1px solid rgba(246,245,241,.72)!important;
}
body.eco-nav-page .detail-hero .hero-ctas .btn-secondary:hover{
  background:#fff!important;
  color:#2F8587!important;
  border-color:#fff!important;
}

/* Remove the visual effect of old inline gradient declarations. */
body.eco-nav-page .detail-hero .hero-ctas .btn{
  text-shadow:none!important;
  filter:none!important;
}

/* Current nav must sit above every service hero/decorative layer. */
.eco-nav-v23{
  position:relative;
  z-index:1000!important;
}
.eco-nav-v23__menu,
.eco-nav-v23__sheet{
  z-index:1100!important;
}


/* ===== SOURCE: navigation.css ===== */

/* ECOTECH CONSOLIDATED NAVIGATION V1 */

/* =========================================================
   ECOTECH NAV V23
   One shared navigation. Old topbar is removed.
   ========================================================= */

:root{
  --eco-nav-bg:#E9E7DF;
  --eco-nav-light:#F5F3EC;
  --eco-nav-ink:#17252B;
  --eco-nav-forest:#426B5A;
  --eco-nav-teal:#3E7D82;
  --eco-nav-border:rgba(23,37,43,.11);
}

body.eco-nav-page{
  padding-top:82px;
}

.eco-nav-v23{
  position:fixed;
  top:12px;
  left:50%;
  z-index:9999;
  width:min(1240px,calc(100% - 28px));
  min-height:66px;
  transform:translateX(-50%);
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:34px;
  box-sizing:border-box;
  padding:8px 12px 8px 18px;
  border:1px solid var(--eco-nav-border);
  border-radius:18px;
  background:#E9E7DF;
  box-shadow:0 10px 32px rgba(23,37,43,.07);
  /* blur only on desktop — mobile blur freezes UI with photon/canvas */
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  transition:min-height .22s ease,padding .22s ease,background-color .22s ease,box-shadow .22s ease;
}
@media (min-width:901px){
  .eco-nav-v23{
    background:rgba(233,231,223,.91);
    backdrop-filter:blur(16px) saturate(112%);
    -webkit-backdrop-filter:blur(16px) saturate(112%);
  }
}

.eco-nav-v23.is-scrolled{
  min-height:56px;
  padding-top:5px;
  padding-bottom:5px;
  background:#E9E7DF;
  box-shadow:0 8px 26px rgba(23,37,43,.10);
}
@media (min-width:901px){
  .eco-nav-v23.is-scrolled{
    background:rgba(233,231,223,.97);
  }
}

.eco-nav-v23__brand{
  display:flex;
  align-items:center;
  min-width:0;
  color:var(--eco-nav-ink);
  text-decoration:none;
}

.eco-nav-v23__logo{
  display:block;
  width:auto;
  height:50px;
  max-width:178px;
  object-fit:contain;
}

.eco-nav-v23__links{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}

.eco-nav-v23__link,
.eco-nav-v23__trigger{
  position:relative;
  display:inline-flex;
  align-items:center;
  border:0;
  border-radius:10px;
  padding:11px 14px;
  color:rgba(23,37,43,.76);
  background:transparent;
  font:inherit;
  font-size:13px;
  font-weight:650;
  line-height:1.1;
  letter-spacing:.005em;
  text-decoration:none;
  cursor:pointer;
  white-space:nowrap;
}

.eco-nav-v23__link:hover,
.eco-nav-v23__trigger:hover{
  color:var(--eco-nav-ink);
  background:rgba(255,255,255,.30);
}

.eco-nav-v23__link.is-active{
  color:var(--eco-nav-ink);
}

.eco-nav-v23__link.is-active::after{
  content:"";
  position:absolute;
  left:14px;
  right:14px;
  bottom:2px;
  height:2px;
  border-radius:2px;
  background:var(--eco-nav-teal);
}

.eco-nav-v23__trigger span{
  margin-left:5px;
  font-size:9px;
  transition:transform .18s ease;
}

.eco-nav-v23__item{
  position:relative;
}

.eco-nav-v23__item.is-open .eco-nav-v23__trigger{
  color:var(--eco-nav-ink);
  background:rgba(255,255,255,.30);
}

.eco-nav-v23__item.is-open .eco-nav-v23__trigger span{
  transform:rotate(180deg);
}

.eco-nav-v23__menu{
  position:absolute;
  top:calc(100% + 10px);
  left:50%;
  width:min(700px,calc(100vw - 36px));
  transform:translate(-50%,-5px);
  display:grid;
  grid-template-columns:1.05fr 1fr;
  gap:10px;
  padding:14px;
  border:1px solid var(--eco-nav-border);
  border-radius:16px;
  background:rgba(245,243,236,.98);
  box-shadow:0 22px 55px rgba(23,37,43,.14);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .18s ease,transform .18s ease,visibility .18s ease;
}

.eco-nav-v23__item.is-open .eco-nav-v23__menu{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translate(-50%,0);
}

.eco-nav-v23__intro{
  padding:18px;
  border-radius:12px;
  background:var(--eco-nav-ink);
  color:var(--eco-nav-light);
}

.eco-nav-v23__intro small{
  display:block;
  color:#8CC5C4;
  font-size:8px;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.eco-nav-v23__intro strong{
  display:block;
  margin-top:8px;
  font-size:21px;
  line-height:1.08;
  letter-spacing:-.03em;
}

.eco-nav-v23__intro p{
  margin:8px 0 0;
  color:rgba(245,243,236,.65);
  font-size:10px;
  line-height:1.5;
}

.eco-nav-v23__list{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
}

.eco-nav-v23__list a{
  display:block;
  padding:12px;
  border:1px solid rgba(23,37,43,.08);
  border-radius:10px;
  color:var(--eco-nav-ink);
  background:rgba(255,255,255,.36);
  font-size:10px;
  font-weight:700;
  line-height:1.25;
  text-decoration:none;
  transition:background-color .16s ease,border-color .16s ease,transform .16s ease;
}

.eco-nav-v23__list a:hover{
  background:#fff;
  border-color:rgba(62,125,130,.30);
  transform:translateY(-2px);
}

.eco-nav-v23__list small{
  display:block;
  margin-top:4px;
  color:rgba(23,37,43,.52);
  font-size:8.5px;
  font-weight:500;
  line-height:1.35;
}

.eco-nav-v23__cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:44px;
  padding:0 17px;
  border-radius:11px;
  background:var(--eco-nav-ink);
  color:var(--eco-nav-light);
  font-size:12px;
  font-weight:750;
  line-height:1;
  text-decoration:none;
  white-space:nowrap;
  transition:background-color .18s ease,transform .18s ease;
}

.eco-nav-v23__cta:hover{
  background:var(--eco-nav-forest);
  transform:translateY(-1px);
}

.eco-nav-v23__cta span{
  transition:transform .18s ease;
}

.eco-nav-v23__cta:hover span{
  transform:translateX(3px);
}

.eco-nav-v23__mobile{
  display:none;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  padding:0;
  border:0;
  border-radius:10px;
  background:transparent;
  cursor:pointer;
}

.eco-nav-v23__mobile-lines{
  position:relative;
  display:block;
  width:20px;
  height:2px;
  border-radius:2px;
  background:var(--eco-nav-ink);
}

.eco-nav-v23__mobile-lines::before,
.eco-nav-v23__mobile-lines::after{
  content:"";
  position:absolute;
  left:0;
  width:20px;
  height:2px;
  border-radius:2px;
  background:var(--eco-nav-ink);
  transition:transform .18s ease,top .18s ease;
}

.eco-nav-v23__mobile-lines::before{top:-6px}
.eco-nav-v23__mobile-lines::after{top:6px}

.eco-nav-v23.mobile-open .eco-nav-v23__mobile-lines{
  background:transparent;
}

.eco-nav-v23.mobile-open .eco-nav-v23__mobile-lines::before{
  top:0;
  transform:rotate(45deg);
}

.eco-nav-v23.mobile-open .eco-nav-v23__mobile-lines::after{
  top:0;
  transform:rotate(-45deg);
}

.eco-nav-v23__sheet{
  display:none;
}

@media(max-width:900px){
  body.eco-nav-page{
    padding-top:70px;
  }

  .eco-nav-v23{
    top:9px;
    width:calc(100% - 20px);
    min-height:58px;
    grid-template-columns:auto 1fr auto;
    gap:10px;
    padding:7px 9px 7px 13px;
  }

  .eco-nav-v23.is-scrolled{
    min-height:54px;
  }

  .eco-nav-v23__logo{
    height:42px;
    max-width:152px;
  }

  .eco-nav-v23__links,
  .eco-nav-v23__cta{
    display:none;
  }

  .eco-nav-v23__mobile{
    display:flex;
    justify-self:end;
  }

  .eco-nav-v23__sheet{
    position:fixed;
    inset:0;
    z-index:-1;
    display:flex;
    flex-direction:column;
    gap:0;
    padding:96px 26px 28px;
    overflow:auto;
    background:var(--eco-nav-bg);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .20s ease,visibility .20s ease;
  }

  .eco-nav-v23.mobile-open .eco-nav-v23__sheet{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }

  .eco-nav-v23__sheet a{
    display:flex;
    align-items:flex-start;
    gap:16px;
    padding:14px 0;
    border-bottom:1px solid rgba(23,37,43,.12);
    color:var(--eco-nav-ink);
    text-decoration:none;
  }

  .eco-nav-v23__sheet a b{
    width:25px;
    padding-top:4px;
    color:var(--eco-nav-teal);
    font-size:9px;
    letter-spacing:.08em;
  }

  .eco-nav-v23__sheet a span{
    font-size:27px;
    font-weight:720;
    line-height:1;
    letter-spacing:-.035em;
  }

  .eco-nav-v23__sheet a small{
    display:block;
    margin-top:4px;
    color:rgba(23,37,43,.54);
    font-size:10px;
    font-weight:500;
    line-height:1.35;
  }

  .eco-nav-v23__sheet .eco-nav-v23__sheet-cta{
    justify-content:center;
    margin-top:24px;
    padding:15px;
    border:0;
    border-radius:11px;
    background:var(--eco-nav-ink);
    color:var(--eco-nav-light);
    font-size:12px;
    font-weight:750;
  }
}

@media(prefers-reduced-motion:reduce){
  .eco-nav-v23,
  .eco-nav-v23 *,
  .eco-nav-v23__mobile-lines::before,
  .eco-nav-v23__mobile-lines::after{
    transition:none !important;
  }
}


/* Technology dropdown additions */

/* V26: technology dropdown only. V24 navigation remains the base. */
.eco-nav-v23__menu--technology{
  width:min(880px,calc(100vw - 36px));
  grid-template-columns:260px 1fr;
}
.eco-nav-v23__technology-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
}
.eco-nav-v23__technology-grid a{
  display:block;
  padding:11px 10px;
  border:1px solid rgba(23,37,43,.08);
  border-radius:9px;
  color:#17252B;
  background:rgba(255,255,255,.38);
  text-decoration:none;
  font-size:10px;
  font-weight:700;
  line-height:1.2;
  transition:background-color .16s ease,border-color .16s ease,transform .16s ease;
}
.eco-nav-v23__technology-grid a:hover{
  background:#fff;
  border-color:rgba(62,125,130,.30);
  transform:translateY(-2px);
}
.eco-nav-v23__technology-grid small{
  display:block;
  margin-top:4px;
  color:rgba(23,37,43,.52);
  font-size:8px;
  font-weight:500;
  line-height:1.3;
}
@media(max-width:900px){
  .eco-nav-v23__menu--technology{width:auto;grid-template-columns:1fr}
  .eco-nav-v23__technology-grid{grid-template-columns:1fr 1fr}
}


/* ===== SOURCE: sitewide-text-contrast-v3.css ===== */


/* =========================================================
   ECOTECH — SITEWIDE LARGE-TEXT CONTRAST V3
   One final rule: large text must be readable against the
   surface it sits on. Accent color is secondary to contrast.
   ========================================================= */

:root{
  --contrast-light:#F6F5F1;
  --contrast-soft:rgba(246,245,241,.80);
  --contrast-teal:#2F8587;
  --contrast-warm:#B7654B;
}

/* DARK / NAVY / INK SURFACES
   Covers shared legacy surfaces as well as newer homepage sections. */
.section-navy,
.page-header,
.hero-section,
.cta-band,
.detail-hero,
.hp7-tech-depth,
.v3-final,
.footer{
  color:var(--contrast-light);
}

/* Large headings: always readable. */
.section-navy h1,
.section-navy h2,
.section-navy h3,
.page-header h1,
.page-header h2,
.page-header h3,
.hero-section h1,
.hero-section h2,
.hero-section h3,
.cta-band h1,
.cta-band h2,
.cta-band h3,
.detail-hero h1,
.detail-hero h2,
.detail-hero h3,
.hp7-tech-depth h1,
.hp7-tech-depth h2,
.hp7-tech-depth h3,
.v3-final h1,
.v3-final h2,
.v3-final h3,
.footer h1,
.footer h2,
.footer h3{
  color:var(--contrast-light)!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Supporting copy on dark surfaces. */
.section-navy p,
.page-header p,
.hero-section p,
.cta-band p,
.detail-hero p,
.hp7-tech-depth p,
.v3-final p,
.footer p{
  color:var(--contrast-soft)!important;
  opacity:1!important;
}

/* Short accent labels can still carry the visual personality. */
.section-navy .kicker,
.page-header .kicker,
.hero-section .kicker,
.cta-band .kicker,
.detail-hero .kicker,
.hp7-kicker,
.v3-final .kicker{
  color:var(--contrast-teal)!important;
  opacity:1!important;
}

/* Highlighted words are allowed to be colorful, but only with the
   high-contrast matte accents. */
.section-navy h1 em,
.page-header h1 em,
.hero-section h1 em,
.detail-hero h1 em,
.v3-final h1 em{
  color:var(--contrast-teal)!important;
  -webkit-text-fill-color:var(--contrast-teal)!important;
  background:none!important;
  -webkit-background-clip:initial!important;
  background-clip:initial!important;
}

/* Dark CTA / footer links. */
.cta-band a:not(.btn),
.section-navy a:not(.btn),
.detail-hero a:not(.btn),
.v3-final a:not(.btn),
.footer a{
  color:rgba(246,245,241,.86);
}
.cta-band a:not(.btn):hover,
.section-navy a:not(.btn):hover,
.detail-hero a:not(.btn):hover,
.v3-final a:not(.btn):hover,
.footer a:hover{
  color:#fff;
}

/* LIGHT / GREIGE SURFACES
   Prevent muted accent colors from becoming too close to the canvas. */
body:not(.home-page-v3) main:not(.section-navy):not(.detail-hero) h1,
body:not(.home-page-v3) main:not(.section-navy):not(.detail-hero) h2,
body:not(.home-page-v3) main:not(.section-navy):not(.detail-hero) h3{
  text-shadow:none!important;
}

/* Preserve the deliberately colorful small labels on light surfaces. */
body:not(.home-page-v3) .eyebrow,
body:not(.home-page-v3) .kicker,
body:not(.home-page-v3) .section-kicker{
  opacity:1!important;
}

/* Navigation remains its own high-contrast system. */
.eco-nav-v23,
.eco-nav-v23 *{
  text-shadow:none!important;
}

/* Form labels and helper text must remain readable. */
.contact-page label,
.contact-page .field-v2 label{
  opacity:1!important;
}

/* Never use opacity as a substitute for hierarchy on large text. */
h1,h2,h3{
  -webkit-font-smoothing:antialiased;
}


/* ===== SOURCE: sitewide-neutral-wash-v1.css ===== */


/* =========================================================
   ECOTECH — SITEWIDE NEUTRAL WASH CONTROL V1
   Eliminate legacy green/teal atmospheric washes that were
   leaking through the matte greige system.
   ========================================================= */

/* Neutralize generic content surfaces across the inner pages. */
body.eco-nav-page main > .section:not(.section-navy):not(.detail-hero):not(.cta-band),
body.eco-nav-page main .content-section:not(.section-navy):not(.detail-hero):not(.cta-band),
body.eco-nav-page main .cat-block,
body.eco-nav-page main .tile-grid{
  background-color:#F4F3EF!important;
}

/* Kill inherited decorative pseudo-element washes on ordinary content areas. */
body.eco-nav-page main > .section:not(.section-navy):not(.detail-hero):not(.cta-band)::before,
body.eco-nav-page main > .section:not(.section-navy):not(.detail-hero):not(.cta-band)::after,
body.eco-nav-page main .content-section:not(.section-navy):not(.detail-hero):not(.cta-band)::before,
body.eco-nav-page main .content-section:not(.section-navy):not(.detail-hero):not(.cta-band)::after,
body.eco-nav-page main .cat-block::before,
body.eco-nav-page main .cat-block::after{
  background-image:none!important;
  background:none!important;
  opacity:0!important;
}

/* Cards remain slightly lighter than the canvas, never green-tinted. */
body.eco-nav-page main .tile,
body.eco-nav-page main .card,
body.eco-nav-page main .service-card,
body.eco-nav-page main .industry-card,
body.eco-nav-page main .blog-card,
body.eco-nav-page main .portfolio-card{
  background-color:#F8F7F3!important;
}

/* Remove old teal/green border washes where they were being used as
   atmospheric decoration rather than semantic accents. */
body.eco-nav-page main .tile,
body.eco-nav-page main .card,
body.eco-nav-page main .service-card,
body.eco-nav-page main .industry-card,
body.eco-nav-page main .blog-card,
body.eco-nav-page main .portfolio-card{
  box-shadow:none;
}

/* Do NOT touch the intentionally designed homepage atmosphere. */
.home-page-v3 main > .section,
.home-page-v3 main > .section::before,
.home-page-v3 main > .section::after{
  /* inherited homepage-specific rules remain authoritative */
}

/* Explicitly dark surfaces stay dark. */
body.eco-nav-page .detail-hero,
body.eco-nav-page .section-navy,
body.eco-nav-page .cta-band,
body.eco-nav-page footer{
  /* no background override */
}

/* Colored typography remains untouched. This file controls washes,
   not the matte accent text system. */



/* ===== SOURCE: bold-text-contrast-v1.css ===== */
/* ===== SOURCE: services-tech-bold-pop-v2.css ===== */

/* =========================================================
   ECOTECH — 15 MATTE COLORS FOR BOLD / EMPHASIS TEXT
   Purpose: structural bold (card titles, steps, labels, short
   emphasis) carries a matte hue so pages have visible variety.
   Body strong/b in prose stays neutral. Controls excluded.
   ========================================================= */

:root{
  /* 15 matte accents — chroma high enough to pop on cream, not neon */
  --m01: #1F8A8D;  /* sea */
  --m02: #3D7A6A;  /* forest */
  --m03: #B45A3C;  /* clay */
  --m04: #A07A28;  /* ochre */
  --m05: #5A6E9A;  /* indigo */
  --m06: #8A5A72;  /* plum */
  --m07: #4A8A6A;  /* sage */
  --m08: #7A8A3A;  /* olive */
  --m09: #A86A48;  /* copper */
  --m10: #6A7A8A;  /* slate */
  --m11: #C46A5A;  /* coral */
  --m12: #5A8A8A;  /* cyan */
  --m13: #8A6A5A;  /* taupe */
  --m14: #6A8A5A;  /* moss */
  --m15: #9A6A8A;  /* rose */

  /* Lighter mates for dark surfaces */
  --m01d: #6EC4C6;
  --m02d: #7AB8A4;
  --m03d: #E09070;
  --m04d: #D4B050;
  --m05d: #8AA0C8;
  --m06d: #C090B0;
  --m07d: #80C0A0;
  --m08d: #B0C060;
  --m09d: #D4A070;
  --m10d: #A0B0C0;
  --m11d: #E0A090;
  --m12d: #80C0C0;
  --m13d: #C0A090;
  --m14d: #A0C090;
  --m15d: #D0A0C0;

  --bold-neutral: #2A3A36;
  --bold-neutral-soft: #4A5550;
}

/* Utility classes — use on em / span / strong for intentional emphasis */
.m01,.matte-sea{color:var(--m01)!important}
.m02,.matte-forest{color:var(--m02)!important}
.m03,.matte-clay{color:var(--m03)!important}
.m04,.matte-ochre{color:var(--m04)!important}
.m05,.matte-indigo{color:var(--m05)!important}
.m06,.matte-plum{color:var(--m06)!important}
.m07,.matte-sage{color:var(--m07)!important}
.m08,.matte-olive{color:var(--m08)!important}
.m09,.matte-copper{color:var(--m09)!important}
.m10,.matte-slate{color:var(--m10)!important}
.m11,.matte-coral{color:var(--m11)!important}
.m12,.matte-cyan{color:var(--m12)!important}
.m13,.matte-taupe{color:var(--m13)!important}
.m14,.matte-moss{color:var(--m14)!important}
.m15,.matte-rose{color:var(--m15)!important}

/* Legacy aliases */
.v17-teal,.text-accent-teal,.about-v2-accent-teal{color:var(--m01)!important}
.v17-forest,.text-accent-sage{color:var(--m02)!important}
.v17-copper,.text-accent-terracotta,.about-v2-accent-terracotta{color:var(--m03)!important}
.v17-ochre,.text-accent-ochre,.about-v2-accent-ochre{color:var(--m04)!important}
.v17-indigo,.text-accent-indigo,.about-v2-accent-indigo{color:var(--m05)!important}
.v17-violet,.v17-plum,.text-accent-plum,.about-v2-accent-plum{color:var(--m06)!important}
.v17-sage{color:var(--m07)!important}
.v17-olive,.text-accent-olive{color:var(--m08)!important}
.v17-coral{color:var(--m11)!important}
.v17-slate{color:var(--m10)!important}

.v17-accent,.about-v2-accent{font-style:normal;font-weight:700}

/* Prose strong/b stays neutral — structure, not decoration */
body.eco-nav-page main strong:not([class*="matte"]):not([class*="m0"]):not([class*="accent"]):not([class*="v17"]),
body.eco-nav-page main b:not([class*="matte"]):not([class*="m0"]):not([class*="accent"]):not([class*="v17"]){
  color:var(--bold-neutral);
}

/* ---- Structural bold: rotate matte hues (purpose = scan hierarchy) ---- */

/* Homepage path steps */
.v3-path-step--data .v3-path-num,.v3-path-step--data .v3-path-label{color:var(--m01)!important}
.v3-path-step--insight .v3-path-num,.v3-path-step--insight .v3-path-label{color:var(--m02)!important}
.v3-path-step--intel .v3-path-num,.v3-path-step--intel .v3-path-label{color:var(--m06)!important}
.v3-path-step--people .v3-path-num,.v3-path-step--people .v3-path-label{color:var(--m03)!important}
.v3-path-step--outcome .v3-path-num,.v3-path-step--outcome .v3-path-label{color:var(--m05)!important}
.v3-path-step .v3-path-title{color:var(--bold-neutral)!important}

/* Problem cards */
.v3-problem--blue h3{color:var(--m01)!important}
.v3-problem--teal h3{color:var(--m02)!important}
.v3-problem--violet h3{color:var(--m06)!important}
.v3-problem--orange h3{color:var(--m03)!important}
.v3-problem--blue{border-top-color:var(--m01)!important}
.v3-problem--teal{border-top-color:var(--m02)!important}
.v3-problem--violet{border-top-color:var(--m06)!important}
.v3-problem--orange{border-top-color:var(--m03)!important}

/* Service / tech tiles */
body.eco-nav-page .tile:nth-child(5n+1) h3{color:var(--m01)!important}
body.eco-nav-page .tile:nth-child(5n+2) h3{color:var(--m03)!important}
body.eco-nav-page .tile:nth-child(5n+3) h3{color:var(--m05)!important}
body.eco-nav-page .tile:nth-child(5n+4) h3{color:var(--m04)!important}
body.eco-nav-page .tile:nth-child(5n) h3{color:var(--m02)!important}
body.eco-nav-page .tile .tile-cta{color:var(--m01)!important}
body.eco-nav-page .tile:nth-child(5n+2) .tile-cta{color:var(--m03)!important}
body.eco-nav-page .tile:nth-child(5n+3) .tile-cta{color:var(--m05)!important}
body.eco-nav-page .tile:nth-child(5n+4) .tile-cta{color:var(--m04)!important}
body.eco-nav-page .tile:nth-child(5n) .tile-cta{color:var(--m02)!important}

/* Category heads on hubs */
body.eco-nav-page .cat-block:nth-child(5n+1) .cat-head h2{color:var(--m01)!important}
body.eco-nav-page .cat-block:nth-child(5n+2) .cat-head h2{color:var(--m03)!important}
body.eco-nav-page .cat-block:nth-child(5n+3) .cat-head h2{color:var(--m05)!important}
body.eco-nav-page .cat-block:nth-child(5n+4) .cat-head h2{color:var(--m06)!important}
body.eco-nav-page .cat-block:nth-child(5n) .cat-head h2{color:var(--m02)!important}

/* About capabilities + process */
.about-v2-capability:nth-child(5n+1) h3,.about-v2-capability:nth-child(5n+1) .about-v2-number{color:var(--m01)!important}
.about-v2-capability:nth-child(5n+2) h3,.about-v2-capability:nth-child(5n+2) .about-v2-number{color:var(--m05)!important}
.about-v2-capability:nth-child(5n+3) h3,.about-v2-capability:nth-child(5n+3) .about-v2-number{color:var(--m03)!important}
.about-v2-capability:nth-child(5n+4) h3,.about-v2-capability:nth-child(5n+4) .about-v2-number{color:var(--m06)!important}
.about-v2-capability:nth-child(5n) h3,.about-v2-capability:nth-child(5n) .about-v2-number{color:var(--m02)!important}

.about-v2-process-step:nth-child(1)>span,.about-v2-process-step:nth-child(1) h3{color:var(--m01)!important}
.about-v2-process-step:nth-child(2)>span,.about-v2-process-step:nth-child(2) h3{color:var(--m02)!important}
.about-v2-process-step:nth-child(3)>span,.about-v2-process-step:nth-child(3) h3{color:var(--m03)!important}
.about-v2-process-step:nth-child(4)>span,.about-v2-process-step:nth-child(4) h3{color:var(--m05)!important}

.about-v2-why-grid article:nth-child(5n+1) h3{color:var(--m01)!important}
.about-v2-why-grid article:nth-child(5n+2) h3{color:var(--m02)!important}
.about-v2-why-grid article:nth-child(5n+3) h3{color:var(--m05)!important}
.about-v2-why-grid article:nth-child(5n+4) h3{color:var(--m03)!important}
.about-v2-why-grid article:nth-child(5n) h3{color:var(--m06)!important}

.eco-pair>div:nth-child(1) h3{color:var(--m01)!important}
.eco-pair>div:nth-child(2) h3{color:var(--m05)!important}
.eco-pair>div:nth-child(3) h3{color:var(--m03)!important}
.eco-pair>div:nth-child(4) h3{color:var(--m02)!important}

/* Industries */
.ind-v3-reality-grid article:nth-child(1) h3{color:var(--m01)!important}
.ind-v3-reality-grid article:nth-child(2) h3{color:var(--m05)!important}
.ind-v3-reality-grid article:nth-child(3) h3{color:var(--m03)!important}
.ind-v3-reality-grid article:nth-child(4) h3{color:var(--m04)!important}

.ind-v3-group:nth-child(1) .ind-v3-group-head h3{color:var(--m01)!important}
.ind-v3-group:nth-child(2) .ind-v3-group-head h3{color:var(--m03)!important}
.ind-v3-group:nth-child(3) .ind-v3-group-head h3{color:var(--m02)!important}

.ind-v3-adapt-list>div:nth-child(1) strong{color:var(--m01d)!important}
.ind-v3-adapt-list>div:nth-child(2) strong{color:var(--m03d)!important}
.ind-v3-adapt-list>div:nth-child(3) strong{color:var(--m08d)!important}
.ind-v3-adapt-list>div:nth-child(4) strong{color:var(--m06d)!important}
.ind-v3-adapt-list>div:nth-child(5) strong{color:var(--m05d)!important}
.ind-v3-adapt-list>div:nth-child(6) strong{color:var(--m09d)!important}

.ind-v3-cap-grid a:nth-child(5n+1) h3,.ind-v3-cap-grid a:nth-child(5n+1) span{color:var(--m01)!important}
.ind-v3-cap-grid a:nth-child(5n+2) h3,.ind-v3-cap-grid a:nth-child(5n+2) span{color:var(--m05)!important}
.ind-v3-cap-grid a:nth-child(5n+3) h3,.ind-v3-cap-grid a:nth-child(5n+3) span{color:var(--m03)!important}
.ind-v3-cap-grid a:nth-child(5n+4) h3,.ind-v3-cap-grid a:nth-child(5n+4) span{color:var(--m06)!important}
.ind-v3-cap-grid a:nth-child(5n) h3,.ind-v3-cap-grid a:nth-child(5n) span{color:var(--m02)!important}

/* Kickers — section signal, not body */
body.eco-nav-page .kicker,
body.eco-nav-page [class*="-kicker"],
body.eco-nav-page .v3-kicker,
body.eco-nav-page .hp7-kicker,
body.eco-nav-page .about-v2-kicker,
body.eco-nav-page .ind-v3-kicker{color:var(--m01)!important}

/* Detail pages */
body.eco-nav-page .detail-hero .kicker{color:var(--m01d)!important}
body.eco-nav-page .detail-tagline{color:var(--m04d)!important;font-weight:700!important}
body.eco-nav-page .capability-item:nth-child(5n+1) .capability-num{color:var(--m05)!important}
body.eco-nav-page .capability-item:nth-child(5n+2) .capability-num{color:var(--m01)!important}
body.eco-nav-page .capability-item:nth-child(5n+3) .capability-num{color:var(--m03)!important}
body.eco-nav-page .capability-item:nth-child(5n+4) .capability-num{color:var(--m06)!important}
body.eco-nav-page .capability-item:nth-child(5n) .capability-num{color:var(--m02)!important}
body.eco-nav-page .capability-item .capability-title{color:var(--bold-neutral)!important}
body.eco-nav-page .capability-item .capability-arrow{color:var(--m01)!important}

/* Contact flow */
body.contact-page .context-flow-v2 h3:nth-child(3n+1){color:var(--m01)!important}
body.contact-page .context-flow-v2 h3:nth-child(3n+2){color:var(--m04)!important}
body.contact-page .context-flow-v2 h3:nth-child(3n){color:var(--m05)!important}

/* Dark surfaces: neutral bold → light; chromatic → light mates */
body.eco-nav-page .detail-hero strong:not([class*="matte"]):not([class*="m0"]),
body.eco-nav-page .detail-hero b:not([class*="matte"]):not([class*="m0"]),
body.eco-nav-page .cta-band strong:not([class*="matte"]):not([class*="m0"]),
body.eco-nav-page .cta-band b:not([class*="matte"]):not([class*="m0"]),
body.eco-nav-page .section-navy strong:not([class*="matte"]):not([class*="m0"]),
body.eco-nav-page .section-navy b:not([class*="matte"]):not([class*="m0"]),
body.eco-nav-page .v3-final strong:not([class*="matte"]):not([class*="m0"]),
body.eco-nav-page .v3-final b:not([class*="matte"]):not([class*="m0"]),
body.eco-nav-page .hp7-tech-depth strong:not([class*="matte"]):not([class*="m0"]),
body.eco-nav-page .about-v2-tech strong:not([class*="matte"]):not([class*="m0"]){
  color:#F6F5F1!important;
}

/* Dark-surface utility mates */
.section-navy .m01,.hp7-tech-depth .m01,.v3-final .m01,.detail-hero .m01,
.about-v2-tech .m01,.ind-v3-adapt .m01,.cta-band .m01,
.section-navy .matte-sea,.v3-final .matte-sea,.detail-hero .matte-sea{color:var(--m01d)!important}
.section-navy .m02,.hp7-tech-depth .m02,.v3-final .m02,.detail-hero .m02,
.section-navy .matte-forest,.v3-final .matte-forest{color:var(--m02d)!important}
.section-navy .m03,.v3-final .m03,.detail-hero .m03,.about-v2-tech .m03,
.section-navy .matte-clay,.v3-final .matte-clay{color:var(--m03d)!important}
.section-navy .m04,.about-v2-tech .m04,.detail-hero .m04,
.section-navy .matte-ochre{color:var(--m04d)!important}
.section-navy .m05,.about-v2-tech .m05,.v3-final .m05,.detail-hero .m05,
.section-navy .matte-indigo,.v3-final .matte-indigo{color:var(--m05d)!important}
.section-navy .m06,.about-v2-tech .m06,.v3-final .m06,.detail-hero .m06,
.section-navy .matte-plum,.v3-final .matte-plum{color:var(--m06d)!important}

/* em in headings defaults to sea if unclassed — still a signal */
h1 em:not([class]),h2 em:not([class]),h3 em:not([class]){
  font-style:normal;
  font-weight:700;
  color:var(--m01);
}
.section-navy h1 em:not([class]),.section-navy h2 em:not([class]),
.v3-final h1 em:not([class]),.v3-final h2 em:not([class]),
.detail-hero h1 em:not([class]){color:var(--m01d)!important}

.eco-pullquote em{color:var(--m01)}
.eco-pullquote--on-dark em{color:var(--m01d)}

/* Nav / buttons never inherit bold color rules */
body.eco-nav-page .btn,body.eco-nav-page .btn *,
body.eco-nav-page button,body.eco-nav-page button *,
body.eco-nav-page .eco-nav-v23,body.eco-nav-page .eco-nav-v23 *{
  text-shadow:none!important;
}
body.eco-nav-page .btn strong,body.eco-nav-page .btn b,
body.eco-nav-page .eco-nav-v23 strong,body.eco-nav-page .eco-nav-v23 b{
  color:inherit!important;
}


/* ===== CONSOLIDATED READABILITY (from readability.css / v3 / v5) ===== */

/* Base readable muted tones */
body{
  --readable-muted:#53636A;
  --readable-soft:#647278;
  --readable-dark-copy:#D9E2E1;
  --readable-dark-soft:#C8D4D2;
}
body .small{ color:var(--readable-muted); }

/* Heroes / dark detail headers — supporting copy */
.v3-hero p,
.detail-hero p,
.v3-hero .v3-hero__lead,
.detail-hero .lead,
.detail-hero .small{
  color:var(--contrast-soft, #D4DEDD) !important;
}

/* Homepage technology depth */
.hp7-tech-depth{ color:var(--contrast-light, #F4F3EF); }
.hp7-tech-depth p,
.hp7-tech-depth .v19-proof-line,
.hp7-tech-depth span{ color:#CBD8D6 !important; }
.hp7-tech-depth .hp7-kicker{ color:var(--contrast-teal, #9CC7C5) !important; }
.hp7-tech-depth .hp7-tech-depth__stats span{ color:#C5D2D0 !important; }
.hp7-tech-depth .hp7-logo span{ color:#D2DCDA !important; }

/* Homepage final CTA */
.v3-final{ color:var(--contrast-light, #F6F5F1); }
.v3-final p,
.v3-final .small{ color:#D7E0DE !important; }
.v3-final .v3-kicker{ color:var(--contrast-teal, #9CC7C5) !important; }

/* CTA bands */
.cta-band{ color:var(--contrast-light, #F6F5F1) !important; }
.cta-band p,
.cta-band .small{ color:#D7E0DE !important; }
.cta-band h3{ color:#fff !important; }

/* About dark tech section */
.about-v2-tech,
body.about-page-v2 .about-v2-tech{ color:var(--contrast-light, #F4F3EF); }
.about-v2-tech p,
.about-v2-tech .about-v2-copy,
.about-v2-tech span,
body.about-page-v2 .about-v2-tech p,
body.about-page-v2 .about-v2-tech .about-v2-copy,
body.about-page-v2 .about-v2-tech span{ color:#D6E0DE !important; }
.about-v2-tech .about-v2-kicker,
body.about-page-v2 .about-v2-tech .about-v2-kicker{ color:var(--contrast-teal, #9CC7C5) !important; }
.about-v2-tech .about-v2-text-link,
body.about-page-v2 .about-v2-tech .about-v2-text-link{ color:#B7D9D5 !important; }
.about-v2-tech .about-v2-tech-stat strong,
body.about-page-v2 .about-v2-tech .about-v2-tech-stat strong{ color:var(--contrast-light, #F4F3EF) !important; }
.about-v2-tech .about-v2-tech-stat span,
body.about-page-v2 .about-v2-tech .about-v2-tech-stat span{ color:#C9D6D4 !important; }

/* Industries dark adapt section */
.ind-v3-adapt,
body.industries-v3 .ind-v3-adapt{ color:var(--contrast-light, #F6F5F1); }
.ind-v3-adapt h2,
.ind-v3-adapt strong,
body.industries-v3 .ind-v3-adapt h2,
body.industries-v3 .ind-v3-adapt strong{ color:var(--contrast-light, #F6F5F1); }

/* Section navy */
.section-navy,
.section-navy h2,
.section-navy h3,
.section-navy h4{ color:var(--contrast-light, #F6F5F1); }
.section-navy p,
.section-navy li,
.section-navy .small{ color:#D5DFDD !important; }
.section-navy .kicker{ color:var(--contrast-teal, #9CC7C5) !important; }

/* Soft section / visual copy on light */
.section-soft p,
.section-soft li,
.eco-visual__copy p,
.eco-visual__copy li{ color:#53636A; }
.eco-visual__copy .eco-visual-link{ color:#315E78; }

/* Homepage positioning line (must stay dark on light hero) */
.ecotech-positioning-line,
.v3-hero .ecotech-positioning-line,
.home-page-v3 .ecotech-positioning-line,
.home-page-v3 .v3-hero__content > p.ecotech-positioning-line,
.v3-hero__content > p.ecotech-positioning-line{
  display:block !important;
  color:#17252B !important;
  background:transparent !important;
  opacity:1 !important;
  visibility:visible !important;
  text-shadow:none !important;
  -webkit-text-fill-color:#17252B !important;
  font-weight:500 !important;
  line-height:1.6 !important;
  max-width:700px;
  margin-left:auto;
  margin-right:auto;
}

/* Contact dark surfaces */
.contact-context-v2,
.contact-response-v2{ color:var(--contrast-light, #F6F5F1); }
.contact-context-v2 p,
.contact-response-v2 p{ color:var(--contrast-soft, rgba(246,245,241,.80)) !important; }

/* Mobile readability */
@media(max-width:800px){
  body{ font-size:17px; }
  .v3-hero p,
  .detail-hero p{
    font-size:16px !important;
    line-height:1.58;
  }
  .ecotech-positioning-line{
    color:#17252B !important;
    font-size:15px !important;
    line-height:1.55 !important;
  }
  body.industries-v3 .ind-v3-adapt p,
  .ind-v3-adapt p{ font-size:14px; line-height:1.55; }
  body.about-page-v2 .about-v2-tech p,
  .about-v2-tech p{ font-size:15px; line-height:1.6; }
  .footer .small{ font-size:13px; line-height:1.65; }
}


/* ===== TYPOGRAPHY RHYTHM VARIATION ===== */

/* Big-number stat callout */
.eco-stat-row{
  display:flex;
  flex-wrap:wrap;
  gap:32px 48px;
  margin:28px 0 8px;
  align-items:flex-end;
}
.eco-stat{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:100px;
}
.eco-stat strong{
  font-size:clamp(42px, 6vw, 64px);
  line-height:1;
  letter-spacing:-.04em;
  font-weight:800;
  color:var(--ink, #17252B);
}
.eco-stat span{
  font-size:13px;
  font-weight:600;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--readable-muted, #53636A);
}
.eco-stat--on-dark strong{ color:var(--contrast-light, #F6F5F1); }
.eco-stat--on-dark span{ color:var(--contrast-teal, #9CC7C5); }

/* Pull-quote / callout — larger distinct type */
.eco-pullquote{
  margin:36px 0;
  max-width:640px;
  padding:28px 0 28px 28px;
  border-left:3px solid var(--cyan, #3E7D82);
  font-size:clamp(20px, 2.4vw, 26px);
  line-height:1.45;
  font-weight:500;
  letter-spacing:-.02em;
  color:var(--ink, #17252B);
}
.eco-pullquote em{
  font-style:normal;
  color:var(--cyan, #3E7D82);
}
.eco-pullquote--on-dark{
  color:var(--contrast-light, #F6F5F1);
  border-left-color:var(--contrast-teal, #9CC7C5);
}
.eco-pullquote--on-dark em{ color:var(--contrast-teal, #9CC7C5); }

/* Two-column unlisted pair */
.eco-pair{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:28px 40px;
  margin:24px 0;
}
.eco-pair > div h3{
  margin:0 0 8px;
  font-size:18px;
  letter-spacing:-.02em;
}
.eco-pair > div p{
  margin:0;
  font-size:15.5px;
  line-height:1.6;
  color:var(--readable-muted, #53636A);
}
@media(max-width:700px){
  .eco-pair{ grid-template-columns:1fr; gap:20px; }
}

/* Heading hierarchy: dominant section titles */
.eco-h-dominant{
  font-size:clamp(32px, 4.5vw, 48px) !important;
  line-height:1.08 !important;
  letter-spacing:-.035em !important;
}
.eco-h-support{
  font-size:clamp(22px, 2.8vw, 30px) !important;
  line-height:1.2 !important;
  letter-spacing:-.025em !important;
}

/* Asymmetric split layout */
.eco-split{
  display:grid;
  grid-template-columns:1.1fr 0.9fr;
  gap:40px 48px;
  align-items:start;
}
.eco-split--reverse{ grid-template-columns:0.9fr 1.1fr; }
@media(max-width:900px){
  .eco-split,
  .eco-split--reverse{ grid-template-columns:1fr; gap:24px; }
}

/* Unnumbered list items (keep card look, drop the number) */
.eco-unnum span.num,
.eco-unnum > span:first-child:not(.label):not(.kicker){
  display:none;
}


/* CEO / team portraits always paint above #photonCanvas (z-index:2) */
.home-people-portrait,
.about-leadership-layout figure,
img[src*="anjana-sukumar"],
img[src*="team/"]{
  position: relative;
  z-index: 6 !important;
  isolation: isolate;
  mix-blend-mode: normal !important;
}
