/* ===========================================================
   Reincofusion Technologies — Shared Design System
   =========================================================== */
:root{
  --blue-900:#062355; --blue-800:#0A3179; --blue-700:#0F44A8;
  --blue-600:#1558D6; --blue-500:#2B71F5; --blue-100:#DDE8FD; --blue-50:#EFF5FF;
  --cyan:#00C2D7; --cyan-light:#3DDCEC;
  --ink:#0A1628; --slate:#5B6B85; --slate-light:#8494AC;
  --line:#E4EAF3; --bg:#FFFFFF; --bg-soft:#F5F8FD;
  --grad:linear-gradient(115deg,#1558D6 0%,#2B71F5 45%,#00C2D7 100%);
  --grad-soft:linear-gradient(115deg,#EFF5FF 0%,#E6F6F9 100%);
  --f-head:'Plus Jakarta Sans',system-ui,sans-serif;
  --f-body:'Inter',system-ui,sans-serif;
  --r-sm:10px; --r-md:16px; --r-lg:24px; --r-pill:100px;
  --sh-sm:0 2px 8px rgba(10,22,40,.05);
  --sh-md:0 8px 28px rgba(10,22,40,.09);
  --sh-lg:0 24px 60px rgba(10,22,40,.14);
  --sh-blue:0 12px 32px rgba(21,88,214,.28);
  --maxw:1220px;
  --s2:1rem; --s3:1.5rem; --s4:2.5rem; --s5:4rem; --s6:6rem; --s7:8rem;
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;}
}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
h1,h2,h3,h4{font-family:var(--f-head);margin:0;line-height:1.14;letter-spacing:-.025em;font-weight:700;}
p{margin:0;} a{color:inherit;text-decoration:none;} ul{margin:0;padding:0;list-style:none;}
button{font-family:inherit;cursor:pointer;}
:focus-visible{outline:2px solid var(--blue-500);outline-offset:3px;}
img{max-width:100%;display:block;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--s3);}
.grad-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;}
.eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--f-head);font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--blue-600);}
.eyebrow::before{content:"";width:22px;height:2px;border-radius:2px;background:var(--grad);}
.eyebrow--light{color:var(--cyan-light);}
.eyebrow--light::before{background:linear-gradient(90deg,#7FB0FF,#3DDCEC);}

/* ---------- BUTTONS ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.85rem 1.7rem;border-radius:var(--r-pill);font-family:var(--f-head);font-size:.92rem;font-weight:600;border:1.5px solid transparent;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease,border-color .18s ease;}
.btn svg{width:14px;height:14px;transition:transform .18s;}
.btn:hover svg{transform:translateX(3px);}
.btn--primary{background:var(--grad);color:#fff;box-shadow:var(--sh-blue);}
.btn--primary:hover{transform:translateY(-2px);box-shadow:0 16px 40px rgba(21,88,214,.36);}
.btn--outline{border-color:var(--line);color:var(--ink);background:#fff;}
.btn--outline:hover{border-color:var(--blue-500);color:var(--blue-600);transform:translateY(-2px);box-shadow:var(--sh-sm);}
.btn--light{background:#fff;color:var(--blue-700);}
.btn--light:hover{transform:translateY(-2px);box-shadow:var(--sh-md);}
.btn--ghost-light{border-color:rgba(255,255,255,.45);color:#fff;}
.btn--ghost-light:hover{background:rgba(255,255,255,.14);border-color:#fff;}

/* ---------- NAV ---------- */
.nav{position:sticky;top:0;z-index:90;background:rgba(255,255,255,.85);backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:border-color .25s,box-shadow .25s;}
.nav.is-scrolled{border-bottom-color:var(--line);box-shadow:0 2px 14px rgba(10,22,40,.05);}
.nav__inner{max-width:var(--maxw);margin:0 auto;padding:1rem var(--s3);display:flex;align-items:center;justify-content:space-between;gap:1rem;}
.brand{display:flex;align-items:center;gap:.6rem;}
.brand__mark{width:34px;height:34px;flex-shrink:0;}
.brand__name{font-family:var(--f-head);font-size:1.16rem;font-weight:800;letter-spacing:-.03em;}
.brand__name b{font-weight:800;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;}
.nav__links{display:flex;align-items:center;gap:2.1rem;font-family:var(--f-head);font-size:.93rem;font-weight:500;}
.nav__links a:not(.btn){position:relative;padding:.2rem 0;color:var(--ink);transition:color .18s;}
.nav__links a:not(.btn):hover,.nav__links a.is-active{color:var(--blue-600);}
.nav__links a:not(.btn)::after{content:"";position:absolute;left:0;bottom:-2px;width:100%;height:2px;border-radius:2px;background:var(--grad);transform:scaleX(0);transform-origin:left;transition:transform .22s;}
.nav__links a:not(.btn):hover::after,.nav__links a.is-active::after{transform:scaleX(1);}
.menu-toggle{display:none;background:none;border:0;padding:.4rem;}
.menu-toggle span{display:block;width:22px;height:2px;border-radius:2px;background:var(--ink);margin:5px 0;transition:transform .25s,opacity .2s;}
.menu-toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.menu-toggle.is-open span:nth-child(2){opacity:0;}
.menu-toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ---------- 3D CANVAS LAYER ---------- */
.scene{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;}
.hero{position:relative;overflow:hidden;padding:var(--s6) 0 var(--s7);background:var(--bg);}
.hero__blob{position:absolute;border-radius:50%;filter:blur(90px);opacity:.5;pointer-events:none;z-index:0;}
.hero__blob--1{width:520px;height:520px;background:#BBD5FF;top:-160px;right:-90px;}
.hero__blob--2{width:420px;height:420px;background:#B8F0F6;bottom:-180px;right:180px;opacity:.42;}
.hero__blob--3{width:340px;height:340px;background:#DCE7FF;top:120px;left:-180px;opacity:.45;}
.hero__inner{position:relative;z-index:3;max-width:var(--maxw);margin:0 auto;padding:0 var(--s3);display:grid;grid-template-columns:1.02fr .98fr;gap:var(--s5);align-items:center;}
.hero h1{font-size:clamp(2.6rem,5vw,4.15rem);font-weight:800;letter-spacing:-.035em;margin:var(--s3) 0 var(--s3);max-width:13ch;}
.hero__sub{font-size:1.1rem;color:var(--slate);max-width:46ch;margin-bottom:var(--s4);}
.hero__ctas{display:flex;gap:.9rem;flex-wrap:wrap;margin-bottom:var(--s4);}
.hero__proof{display:flex;align-items:center;gap:1.6rem;flex-wrap:wrap;font-size:.87rem;color:var(--slate);}
.hero__proof div{display:flex;align-items:center;gap:.5rem;}
.hero__proof svg{width:17px;height:17px;color:var(--blue-600);flex-shrink:0;}

/* ---------- HERO DASHBOARD VISUAL ---------- */
.visual{position:relative;transform-style:preserve-3d;}
.visual__panel{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-lg);padding:1.4rem;position:relative;z-index:2;transition:transform .3s cubic-bezier(.2,.7,.3,1);transform-style:preserve-3d;}
.visual__bar{display:flex;align-items:center;gap:.4rem;margin-bottom:1.1rem;}
.visual__bar i{width:9px;height:9px;border-radius:50%;background:var(--line);display:block;}
.visual__bar span{margin-left:auto;font-size:.7rem;font-weight:600;color:var(--slate-light);font-family:var(--f-head);letter-spacing:.06em;text-transform:uppercase;}
.visual__metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;margin-bottom:1.1rem;}
.metric{background:var(--bg-soft);border-radius:var(--r-sm);padding:.85rem;}
.metric b{display:block;font-family:var(--f-head);font-size:1.35rem;font-weight:800;letter-spacing:-.02em;color:var(--blue-700);}
.metric span{display:block;font-size:.7rem;color:var(--slate-light);font-weight:500;margin-top:.1rem;}
.visual__chart{background:var(--bg-soft);border-radius:var(--r-md);padding:1rem;}
.visual__chart svg{width:100%;height:auto;display:block;}
.spark{fill:none;stroke:url(#sparkGrad);stroke-width:2.5;stroke-linecap:round;}
@media (prefers-reduced-motion:no-preference){
  .spark{stroke-dasharray:1;stroke-dashoffset:1;pathLength:1;animation:draw 1.9s ease .3s forwards;}
  @keyframes draw{to{stroke-dashoffset:0;}}
}
.visual__rows{margin-top:1.1rem;display:grid;gap:.55rem;}
.vrow{display:flex;align-items:center;gap:.7rem;font-size:.8rem;}
.vrow i{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.vrow span:last-child{margin-left:auto;font-family:var(--f-head);font-weight:700;color:var(--ink);}
.vrow span:nth-child(2){color:var(--slate);}
.float-card{position:absolute;background:#fff;border-radius:var(--r-md);box-shadow:var(--sh-md);padding:.8rem 1rem;display:flex;align-items:center;gap:.65rem;z-index:3;border:1px solid var(--line);}
.float-card b{font-family:var(--f-head);font-size:.92rem;font-weight:700;display:block;line-height:1.2;}
.float-card em{font-style:normal;font-size:.7rem;color:var(--slate-light);}
.float-card__ic{width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.float-card--a{top:-22px;left:-30px;}
.float-card--a .float-card__ic{background:var(--blue-50);color:var(--blue-600);}
.float-card--b{bottom:-26px;right:-18px;}
.float-card--b .float-card__ic{background:#E3F9FC;color:#0596A8;}
.float-card svg{width:16px;height:16px;}
@media (prefers-reduced-motion:no-preference){
  .float-card--a{animation:floaty 6s ease-in-out infinite;}
  .float-card--b{animation:floaty 6s ease-in-out 1.5s infinite;}
  @keyframes floaty{0%,100%{transform:translateY(0);}50%{transform:translateY(-9px);}}
}
@media (max-width:1080px){.float-card--a{left:-8px;}.float-card--b{right:-4px;}}

/* ---------- PAGE HERO (inner pages) ---------- */
.phero{position:relative;overflow:hidden;background:var(--blue-900);color:#fff;padding:var(--s6) 0 var(--s5);}
.phero::before{content:"";position:absolute;inset:0;background:radial-gradient(700px 380px at 78% 12%,rgba(0,194,215,.30),transparent 62%),radial-gradient(600px 340px at 12% 88%,rgba(43,113,245,.34),transparent 60%);z-index:1;}
.phero__inner{position:relative;z-index:3;max-width:var(--maxw);margin:0 auto;padding:0 var(--s3);}
.crumb{display:flex;align-items:center;gap:.5rem;font-size:.82rem;color:rgba(255,255,255,.6);margin-bottom:1.3rem;}
.crumb a:hover{color:#fff;}
.crumb svg{width:12px;height:12px;opacity:.6;}
.phero h1{font-size:clamp(2.3rem,4.6vw,3.6rem);font-weight:800;letter-spacing:-.035em;max-width:16ch;margin:.8rem 0 1.2rem;}
.phero p{font-size:1.08rem;color:rgba(255,255,255,.82);max-width:52ch;}
.phero__stats{display:flex;gap:var(--s5);flex-wrap:wrap;margin-top:var(--s4);padding-top:var(--s4);border-top:1px solid rgba(255,255,255,.16);}
.phero__stats div b{display:block;font-family:var(--f-head);font-size:1.9rem;font-weight:800;letter-spacing:-.03em;}
.phero__stats div span{font-size:.84rem;color:rgba(255,255,255,.66);}

/* ---------- SECTIONS ---------- */
.sec{padding:var(--s6) 0;}
.sec--soft{background:var(--bg-soft);}
.sec--grad{background:var(--grad);color:#fff;}
.sec--dark{background:var(--blue-900);color:rgba(255,255,255,.78);}
.head{max-width:660px;margin-bottom:var(--s5);}
.head--center{margin-left:auto;margin-right:auto;text-align:center;}
.head--center .eyebrow{justify-content:center;}
.head h2{font-size:clamp(1.95rem,3.5vw,2.8rem);font-weight:800;margin-top:.9rem;letter-spacing:-.03em;}
.head p{color:var(--slate);font-size:1.06rem;margin-top:1rem;}
.sec--grad .head h2,.sec--dark .head h2{color:#fff;}
.sec--grad .head p{color:rgba(255,255,255,.85);}
.sec--dark .head p{color:rgba(255,255,255,.72);}
.reveal{opacity:0;transform:translateY(20px);transition:opacity .6s cubic-bezier(.2,.7,.3,1),transform .6s cubic-bezier(.2,.7,.3,1);}
.reveal.is-visible{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;}}

/* ---------- STATS ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s3);}
.stat{text-align:center;padding:0 .5rem;}
.stat b{display:block;font-family:var(--f-head);font-size:clamp(2.3rem,4vw,3.2rem);font-weight:800;letter-spacing:-.04em;line-height:1;}
.stat span{display:block;font-size:.9rem;color:rgba(255,255,255,.82);margin-top:.7rem;font-weight:500;}
@media (max-width:760px){.stats{grid-template-columns:1fr 1fr;row-gap:var(--s4);}}

/* ---------- CARDS (3D tilt) ---------- */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:2rem 1.8rem;position:relative;overflow:hidden;transition:transform .25s cubic-bezier(.2,.7,.3,1),box-shadow .25s,border-color .25s;transform-style:preserve-3d;}
.card::after{content:"";position:absolute;left:0;top:0;height:3px;width:100%;background:var(--grad);transform:scaleX(0);transform-origin:left;transition:transform .3s;}
.card:hover{box-shadow:var(--sh-lg);border-color:transparent;}
.card:hover::after{transform:scaleX(1);}
.card__ic{width:52px;height:52px;border-radius:14px;background:var(--blue-50);color:var(--blue-600);display:flex;align-items:center;justify-content:center;margin-bottom:1.3rem;transition:background .25s,color .25s;}
.card:hover .card__ic{background:var(--grad);color:#fff;}
.card__ic svg{width:25px;height:25px;}
.card h3{font-size:1.22rem;font-weight:700;margin-bottom:.6rem;}
.card p{color:var(--slate);font-size:.94rem;}
.card__link{display:inline-flex;align-items:center;gap:.4rem;margin-top:1.1rem;font-family:var(--f-head);font-size:.86rem;font-weight:600;color:var(--blue-600);}
.card__link svg{width:13px;height:13px;transition:transform .2s;}
.card:hover .card__link svg{transform:translateX(4px);}
@media (max-width:960px){.cards{grid-template-columns:1fr 1fr;}}
@media (max-width:640px){.cards{grid-template-columns:1fr;}}

/* ---------- STEPS ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s3);position:relative;}
.steps::before{content:"";position:absolute;top:26px;left:8%;right:8%;height:2px;background:linear-gradient(90deg,var(--blue-100),var(--cyan-light));z-index:0;}
.step{position:relative;z-index:1;}
.step__n{width:54px;height:54px;border-radius:50%;background:#fff;border:2px solid var(--blue-100);display:flex;align-items:center;justify-content:center;font-family:var(--f-head);font-weight:800;font-size:1rem;color:var(--blue-600);margin-bottom:1.3rem;transition:background .25s,color .25s,border-color .25s,transform .25s;}
.step:hover .step__n{background:var(--grad);color:#fff;border-color:transparent;transform:scale(1.08);}
.step h3{font-size:1.18rem;font-weight:700;margin-bottom:.5rem;}
.step p{color:var(--slate);font-size:.92rem;}
@media (max-width:860px){.steps{grid-template-columns:1fr 1fr;row-gap:var(--s4);}.steps::before{display:none;}}
@media (max-width:520px){.steps{grid-template-columns:1fr;}}

/* ---------- WORK CARDS ---------- */
.work{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;}
.wcard{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;text-align:left;padding:0;width:100%;transition:transform .25s cubic-bezier(.2,.7,.3,1),box-shadow .25s,border-color .25s,opacity .3s;transform-style:preserve-3d;}
.wcard:hover{box-shadow:var(--sh-lg);border-color:transparent;}
.wcard__top{height:150px;background:var(--grad);position:relative;overflow:hidden;}
.wcard__top svg{position:absolute;inset:0;width:100%;height:100%;opacity:.35;transition:transform .4s cubic-bezier(.2,.7,.3,1);}
.wcard:hover .wcard__top svg{transform:scale(1.08);}
.wcard__tag{position:absolute;top:1rem;left:1.1rem;background:rgba(255,255,255,.22);backdrop-filter:blur(6px);border-radius:var(--r-pill);padding:.28rem .8rem;font-family:var(--f-head);font-size:.68rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#fff;}
.wcard__body{padding:1.5rem;}
.wcard__body h3{font-size:1.1rem;font-weight:700;margin-bottom:.5rem;}
.wcard__body p{font-size:.89rem;color:var(--slate);}
.wcard__link{display:inline-flex;align-items:center;gap:.4rem;margin-top:1rem;font-family:var(--f-head);font-size:.84rem;font-weight:600;color:var(--blue-600);}
.wcard__link svg{width:13px;height:13px;transition:transform .2s;}
.wcard:hover .wcard__link svg{transform:translateX(4px);}
.wcard.is-hidden{display:none;}
.note{margin-top:var(--s3);font-size:.83rem;color:var(--slate-light);}
@media (max-width:960px){.work{grid-template-columns:1fr 1fr;}}
@media (max-width:640px){.work{grid-template-columns:1fr;}}

/* ---------- FILTER PILLS ---------- */
.filters{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin-bottom:var(--s4);}
.filters button{background:#fff;border:1.5px solid var(--line);border-radius:var(--r-pill);padding:.55rem 1.25rem;font-family:var(--f-head);font-size:.87rem;font-weight:600;color:var(--slate);transition:all .18s;}
.filters button:hover{border-color:var(--blue-500);color:var(--blue-600);}
.filters button.is-on{background:var(--grad);border-color:transparent;color:#fff;box-shadow:var(--sh-blue);}

/* ---------- MODAL ---------- */
.overlay{position:fixed;inset:0;background:rgba(10,22,40,.55);backdrop-filter:blur(4px);display:none;align-items:flex-start;justify-content:center;padding:5vh 1.25rem;z-index:200;overflow-y:auto;}
.overlay.is-open{display:flex;}
.sheet{background:#fff;max-width:660px;width:100%;border-radius:var(--r-lg);padding:2.4rem;position:relative;box-shadow:var(--sh-lg);}
@media (prefers-reduced-motion:no-preference){
  .sheet{animation:pop .24s cubic-bezier(.2,.7,.3,1);}
  @keyframes pop{from{opacity:0;transform:translateY(14px) scale(.985);}to{opacity:1;transform:none;}}
}
.sheet__close{position:absolute;top:1.3rem;right:1.3rem;width:34px;height:34px;border-radius:50%;border:0;background:var(--bg-soft);color:var(--slate);display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s;}
.sheet__close:hover{background:var(--blue-50);color:var(--blue-600);}
.sheet__close svg{width:15px;height:15px;}
.sheet__tag{display:inline-block;background:var(--blue-50);color:var(--blue-600);border-radius:var(--r-pill);padding:.3rem .85rem;font-family:var(--f-head);font-size:.7rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;}
.sheet h3{font-size:1.65rem;font-weight:800;margin:.9rem 2rem 1.5rem 0;letter-spacing:-.03em;}
.sheet__meta{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;background:var(--bg-soft);border-radius:var(--r-md);padding:1.1rem;margin-bottom:1.7rem;}
.sheet__meta dt{font-size:.7rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--slate-light);margin-bottom:.25rem;}
.sheet__meta dd{margin:0;font-family:var(--f-head);font-size:.95rem;font-weight:700;}
.sheet__block{margin-bottom:1.4rem;}
.sheet__block h4{font-family:var(--f-head);font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--blue-600);margin-bottom:.5rem;}
.sheet__block p{font-size:.95rem;color:var(--slate);}
.sheet__out{background:var(--grad-soft);border-radius:var(--r-md);padding:1.1rem 1.2rem;color:var(--ink) !important;font-weight:500;}
.sheet__tech{display:flex;flex-wrap:wrap;gap:.5rem;}
.sheet__tech span{background:var(--bg-soft);border-radius:var(--r-pill);padding:.35rem .85rem;font-size:.8rem;font-weight:500;color:var(--slate);}
@media (max-width:560px){.sheet{padding:1.8rem;}.sheet__meta{grid-template-columns:1fr;}}

/* ---------- ESTIMATOR ---------- */
.est{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--s5);align-items:start;}
.est__g{margin-bottom:1.8rem;}
.est__gl{font-family:var(--f-head);font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--slate-light);margin-bottom:.85rem;display:block;}
.est__opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:.7rem;}
.est__opt{position:relative;display:block;background:#fff;border:1.5px solid var(--line);border-radius:var(--r-md);padding:.9rem 1rem;cursor:pointer;transition:border-color .18s,box-shadow .18s,transform .18s;}
.est__opt:hover{border-color:var(--blue-100);transform:translateY(-2px);}
.est__opt input{position:absolute;opacity:0;pointer-events:none;}
.est__opt .t{display:block;font-family:var(--f-head);font-size:.9rem;font-weight:700;}
.est__opt .s{display:block;font-size:.78rem;color:var(--slate-light);margin-top:.1rem;}
.est__opt.is-on{border-color:var(--blue-500);background:var(--blue-50);box-shadow:0 4px 14px rgba(21,88,214,.13);}
.est__panel{background:var(--grad);color:#fff;border-radius:var(--r-lg);padding:2.2rem;position:sticky;top:96px;box-shadow:var(--sh-blue);}
.est__pl{font-size:.78rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:rgba(255,255,255,.75);font-family:var(--f-head);}
.est__range{font-family:var(--f-head);font-size:2.1rem;font-weight:800;letter-spacing:-.035em;margin:.5rem 0 .3rem;line-height:1.12;}
.est__weeks{font-size:.9rem;color:rgba(255,255,255,.85);margin-bottom:1.5rem;}
.est__break{border-top:1px solid rgba(255,255,255,.22);padding-top:1.1rem;margin-top:1.3rem;font-size:.83rem;}
.est__break div{display:flex;justify-content:space-between;gap:.6rem;margin-bottom:.6rem;color:rgba(255,255,255,.75);}
.est__break div span:last-child{color:#fff;font-weight:600;text-align:right;}
.est__note{font-size:.76rem;color:rgba(255,255,255,.7);margin-top:1.1rem;line-height:1.55;}
@media (max-width:920px){.est{grid-template-columns:1fr;}.est__panel{position:static;}}

/* ---------- TESTIMONIAL ---------- */
.quote{max-width:790px;margin:0 auto;text-align:center;}
.quote__q{font-family:var(--f-head);font-size:clamp(1.35rem,2.6vw,1.95rem);font-weight:600;letter-spacing:-.025em;line-height:1.4;margin:0 0 1.9rem;}
.quote__who{display:flex;align-items:center;justify-content:center;gap:.85rem;}
.quote__av{width:46px;height:46px;border-radius:50%;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--f-head);font-weight:800;font-size:.92rem;flex-shrink:0;}
.quote__who cite{font-style:normal;text-align:left;font-size:.85rem;color:var(--slate);}
.quote__who cite b{display:block;font-family:var(--f-head);font-size:.96rem;font-weight:700;color:var(--ink);}
.quote__nav{display:flex;justify-content:center;gap:.5rem;margin-top:2.1rem;}
.quote__nav button{width:30px;height:4px;border-radius:4px;border:0;padding:0;background:var(--line);transition:background .2s,width .2s;}
.quote__nav button.is-on{background:var(--grad);width:44px;}

/* ---------- CTA ---------- */
.cta{background:var(--grad);border-radius:var(--r-lg);padding:var(--s5);text-align:center;color:#fff;position:relative;overflow:hidden;box-shadow:var(--sh-blue);}
.cta h2{font-size:clamp(1.8rem,3.2vw,2.6rem);font-weight:800;letter-spacing:-.03em;max-width:18ch;margin:0 auto;}
.cta p{color:rgba(255,255,255,.88);margin:1rem auto 2rem;max-width:46ch;}
.cta__btns{display:flex;gap:.9rem;justify-content:center;flex-wrap:wrap;}

/* ---------- CONTACT ---------- */
.contact{display:grid;grid-template-columns:.95fr 1.05fr;gap:var(--s5);align-items:start;}
.contact h2{font-size:clamp(1.8rem,3vw,2.4rem);font-weight:800;letter-spacing:-.03em;max-width:14ch;}
.contact__p{color:var(--slate);margin-top:1rem;max-width:40ch;}
.contact__items{margin-top:2.2rem;display:grid;gap:1.2rem;}
.citem{display:flex;gap:.9rem;align-items:flex-start;}
.citem__ic{width:42px;height:42px;border-radius:12px;background:var(--blue-50);color:var(--blue-600);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.citem__ic svg{width:19px;height:19px;}
.citem b{display:block;font-family:var(--f-head);font-size:.78rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--slate-light);}
.citem span{font-size:.98rem;font-weight:500;}
.formbox{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:2.2rem;box-shadow:var(--sh-md);}
.field{margin-bottom:1.1rem;}
.field label{display:block;font-family:var(--f-head);font-size:.8rem;font-weight:600;color:var(--ink);margin-bottom:.4rem;}
.field input,.field textarea,.field select{width:100%;background:var(--bg-soft);border:1.5px solid transparent;border-radius:var(--r-sm);padding:.82rem .95rem;font-family:var(--f-body);font-size:.94rem;color:var(--ink);transition:border-color .18s,background .18s;}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--blue-500);background:#fff;}
.field input::placeholder,.field textarea::placeholder{color:var(--slate-light);}
.field textarea{resize:vertical;min-height:110px;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
@media (max-width:520px){.field-row{grid-template-columns:1fr;}}
.formmsg{margin-top:1rem;font-size:.87rem;font-weight:500;color:var(--blue-600);display:none;}
.formmsg.is-on{display:block;}
@media (max-width:860px){.contact{grid-template-columns:1fr;}}

/* ---------- SPLIT / DETAIL BLOCKS ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:var(--s5);align-items:center;}
.split--rev .split__media{order:-1;}
.split h2{font-size:clamp(1.7rem,3vw,2.35rem);font-weight:800;letter-spacing:-.03em;}
.split h3{font-size:clamp(1.4rem,2.4vw,1.85rem);font-weight:800;letter-spacing:-.03em;}
.split p{color:var(--slate);margin-top:1rem;}
.split__media{border-radius:var(--r-lg);overflow:hidden;position:relative;}
@media (max-width:860px){.split{grid-template-columns:1fr;gap:var(--s4);}.split--rev .split__media{order:0;}}

.tick{display:grid;gap:.7rem;margin-top:1.5rem;}
.tick li{display:flex;gap:.7rem;align-items:flex-start;font-size:.95rem;color:var(--slate);}
.tick svg{width:19px;height:19px;color:var(--blue-600);flex-shrink:0;margin-top:.2rem;}

/* service detail visual */
.svis{background:var(--grad-soft);border:1px solid var(--line);border-radius:var(--r-lg);padding:2rem;display:flex;align-items:center;justify-content:center;min-height:290px;position:relative;overflow:hidden;transform-style:preserve-3d;transition:transform .3s cubic-bezier(.2,.7,.3,1);}
.svis svg{width:100%;max-width:330px;height:auto;}
.svis__badge{position:absolute;top:1.2rem;right:1.2rem;background:#fff;border-radius:var(--r-pill);padding:.35rem .95rem;font-family:var(--f-head);font-size:.72rem;font-weight:700;color:var(--blue-600);box-shadow:var(--sh-sm);}

/* ---------- TIMELINE ---------- */
.tl{position:relative;padding-left:2.6rem;}
.tl::before{content:"";position:absolute;left:9px;top:8px;bottom:8px;width:2px;background:linear-gradient(180deg,var(--blue-500),var(--cyan));border-radius:2px;}
.tl__item{position:relative;padding-bottom:2.4rem;}
.tl__item:last-child{padding-bottom:0;}
.tl__item::before{content:"";position:absolute;left:-2.6rem;top:5px;width:20px;height:20px;border-radius:50%;background:#fff;border:3px solid var(--blue-500);box-shadow:0 0 0 4px rgba(21,88,214,.12);}
.tl__yr{font-family:var(--f-head);font-size:.82rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--blue-600);}
.tl__item h3{font-size:1.2rem;font-weight:700;margin:.35rem 0 .45rem;}
.tl__item p{color:var(--slate);font-size:.94rem;}

/* ---------- TEAM ---------- */
.team{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem;}
.tcard{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;transition:transform .25s cubic-bezier(.2,.7,.3,1),box-shadow .25s;transform-style:preserve-3d;}
.tcard:hover{box-shadow:var(--sh-lg);}
.tcard__av{height:170px;background:var(--grad);display:flex;align-items:center;justify-content:center;font-family:var(--f-head);font-size:2.6rem;font-weight:800;color:rgba(255,255,255,.92);letter-spacing:-.04em;}
.tcard__b{padding:1.3rem;}
.tcard__b h3{font-size:1.05rem;font-weight:700;}
.tcard__b span{display:block;font-size:.84rem;color:var(--blue-600);font-weight:600;margin-top:.15rem;}
.tcard__b p{font-size:.86rem;color:var(--slate);margin-top:.6rem;}
@media (max-width:960px){.team{grid-template-columns:1fr 1fr;}}
@media (max-width:520px){.team{grid-template-columns:1fr;}}

/* ---------- VALUES ---------- */
.vals{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;}
.val{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.13);border-radius:var(--r-lg);padding:1.9rem;transition:transform .25s,background .25s;}
.val:hover{transform:translateY(-5px);background:rgba(255,255,255,.1);}
.val__n{font-family:var(--f-head);font-size:.78rem;font-weight:700;letter-spacing:.1em;color:var(--cyan-light);}
.val h3{font-size:1.15rem;font-weight:700;color:#fff;margin:.7rem 0 .5rem;}
.val p{font-size:.92rem;color:rgba(255,255,255,.7);}
@media (max-width:860px){.vals{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.vals{grid-template-columns:1fr;}}

/* ---------- TECH MARQUEE ---------- */
.marquee{overflow:hidden;position:relative;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);}
.marquee__track{display:flex;gap:1rem;width:max-content;}
@media (prefers-reduced-motion:no-preference){
  .marquee__track{animation:scrollx 34s linear infinite;}
  @keyframes scrollx{from{transform:translateX(0);}to{transform:translateX(-50%);}}
}
.marquee:hover .marquee__track{animation-play-state:paused;}
.chip{background:#fff;border:1px solid var(--line);border-radius:var(--r-pill);padding:.65rem 1.4rem;font-family:var(--f-head);font-size:.9rem;font-weight:600;color:var(--slate);white-space:nowrap;}

/* ---------- FAQ ---------- */
.faq{max-width:800px;margin:0 auto;}
.faq__item{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);margin-bottom:.8rem;overflow:hidden;transition:box-shadow .2s,border-color .2s;}
.faq__item.is-open{box-shadow:var(--sh-md);border-color:transparent;}
.faq__q{width:100%;background:none;border:0;padding:1.25rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;text-align:left;font-family:var(--f-head);font-size:1rem;font-weight:700;color:var(--ink);}
.faq__ic{width:26px;height:26px;border-radius:50%;background:var(--blue-50);color:var(--blue-600);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .25s,background .25s,color .25s;}
.faq__item.is-open .faq__ic{transform:rotate(45deg);background:var(--grad);color:#fff;}
.faq__ic svg{width:13px;height:13px;}
.faq__a{max-height:0;overflow:hidden;transition:max-height .3s ease;}
.faq__a p{padding:0 1.5rem 1.35rem;color:var(--slate);font-size:.95rem;}

/* ---------- LOGO STRIP ---------- */
.logos{padding:var(--s4) 0 var(--s5);}
.logos__label{text-align:center;font-size:.78rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--slate-light);margin-bottom:1.6rem;font-family:var(--f-head);}
.logos__row{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s5);align-items:center;}
.logos__row span{font-family:var(--f-head);font-size:1.15rem;font-weight:700;color:#B3BFD1;letter-spacing:-.02em;transition:color .2s;}
.logos__row span:hover{color:var(--blue-600);}

/* ---------- FOOTER ---------- */
footer{background:var(--blue-900);color:rgba(255,255,255,.72);padding:var(--s5) 0 0;margin-top:var(--s6);}
.foot__grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:var(--s4);padding-bottom:var(--s5);border-bottom:1px solid rgba(255,255,255,.13);}
.foot__brand .brand__name{color:#fff;}
.foot__brand .brand__name b{background:linear-gradient(115deg,#7FB0FF,#3DDCEC);-webkit-background-clip:text;background-clip:text;color:transparent;}
.foot__brand p{font-size:.9rem;margin-top:1rem;max-width:31ch;color:rgba(255,255,255,.6);}
.foot__social{display:flex;gap:.6rem;margin-top:1.4rem;}
.foot__social a{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.09);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.75);transition:background .2s,color .2s,transform .2s;}
.foot__social a:hover{background:var(--grad);color:#fff;transform:translateY(-2px);}
.foot__social svg{width:16px;height:16px;}
.foot__col h4{font-family:var(--f-head);font-size:.8rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#fff;margin-bottom:1.2rem;}
.foot__col li{margin-bottom:.75rem;}
.foot__col a{font-size:.9rem;color:rgba(255,255,255,.66);transition:color .2s;}
.foot__col a:hover{color:var(--cyan-light);}
.foot__bot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;padding:1.6rem 0;font-size:.85rem;color:rgba(255,255,255,.5);}
.foot__bot-links{display:flex;gap:1.6rem;}
@media (max-width:860px){.foot__grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.foot__grid{grid-template-columns:1fr;}}

/* ---------- SCROLL PROGRESS ---------- */
.progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--grad);z-index:120;transition:width .1s linear;}

/* ---------- RESPONSIVE NAV ---------- */
@media (max-width:980px){.hero__inner{grid-template-columns:1fr;gap:var(--s5);}.hero{padding-bottom:var(--s6);}}
@media (max-width:820px){
  .nav__links{position:fixed;top:66px;left:0;right:0;background:#fff;flex-direction:column;align-items:flex-start;padding:var(--s3);gap:.4rem;border-bottom:1px solid var(--line);box-shadow:var(--sh-md);opacity:0;transform:translateY(-8px);pointer-events:none;transition:opacity .2s,transform .2s;}
  .nav__links.is-open{opacity:1;transform:none;pointer-events:auto;}
  .nav__links a{padding:.55rem 0;width:100%;}
  .nav__links .btn{width:100%;margin-top:.5rem;}
  .menu-toggle{display:block;}
  .logos__row{gap:var(--s4);}
  .phero__stats{gap:var(--s4);}
}

/* ===========================================================
   3D SCENE PLACEMENT
   =========================================================== */
.scene{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;display:block;}

/* section that hosts a background scene */
.has3d{position:relative;isolation:isolate;}
.has3d > .wrap,.has3d > .phero__inner,.has3d > .hero__inner{position:relative;z-index:3;}

/* inline 3D "stage" used inside split layouts + cards */
.stage3d{
  position:relative;border-radius:var(--r-lg);overflow:hidden;
  background:var(--grad-soft);border:1px solid var(--line);
  min-height:330px;display:flex;align-items:center;justify-content:center;
}
.stage3d canvas{position:absolute;inset:0;width:100%;height:100%;}
.stage3d--dark{background:linear-gradient(150deg,#062355,#0A3179);border-color:rgba(255,255,255,.12);}
.stage3d__badge{
  position:absolute;top:1.1rem;right:1.1rem;z-index:4;background:#fff;border-radius:var(--r-pill);
  padding:.35rem .95rem;font-family:var(--f-head);font-size:.72rem;font-weight:700;color:var(--blue-600);box-shadow:var(--sh-sm);
}
.stage3d__cap{
  position:absolute;left:1.1rem;bottom:1.1rem;right:1.1rem;z-index:4;display:flex;gap:.5rem;flex-wrap:wrap;
}
.stage3d__cap .chip{font-size:.76rem;padding:.45rem 1rem;}
.stage3d--dark .stage3d__cap .chip{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.18);color:rgba(255,255,255,.9);}
.stage3d--tall{min-height:420px;}

/* small 3D tile that sits inside a card */
.tile3d{position:relative;height:150px;border-radius:var(--r-md);overflow:hidden;background:var(--bg-soft);margin-bottom:1.3rem;}
.tile3d canvas{position:absolute;inset:0;width:100%;height:100%;}

/* full-bleed 3D divider band */
.band3d{position:relative;height:190px;overflow:hidden;background:var(--blue-900);}
.band3d canvas{position:absolute;inset:0;width:100%;height:100%;}
.band3d__label{
  position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:center;
  font-family:var(--f-head);font-size:clamp(1.1rem,2.2vw,1.5rem);font-weight:700;color:#fff;
  letter-spacing:-.02em;text-align:center;padding:0 var(--s3);
}

@media (max-width:860px){
  .stage3d{min-height:280px;}
  .stage3d--tall{min-height:320px;}
  .band3d{height:150px;}
}

/* ===========================================================
   SERVICES PAGE — detailed practice layout
   =========================================================== */

/* sticky practice rail */
.prail{position:sticky;top:78px;z-index:80;background:rgba(255,255,255,.9);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);}
.prail__inner{max-width:var(--maxw);margin:0 auto;padding:.7rem var(--s3);display:flex;gap:.4rem;overflow-x:auto;scrollbar-width:none;}
.prail__inner::-webkit-scrollbar{display:none;}
.prail a{
  flex-shrink:0;padding:.5rem 1rem;border-radius:var(--r-pill);font-family:var(--f-head);
  font-size:.83rem;font-weight:600;color:var(--slate);white-space:nowrap;transition:all .18s;border:1.5px solid transparent;
}
.prail a:hover{color:var(--blue-600);background:var(--blue-50);}
.prail a.is-on{background:var(--grad);color:#fff;box-shadow:var(--sh-blue);}

/* practice block */
.practice{padding:var(--s6) 0;border-top:1px solid var(--line);}
.practice:first-of-type{border-top:0;}
.practice__grid{display:grid;grid-template-columns:1.08fr .92fr;gap:var(--s5);align-items:start;}
.practice__num{
  display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;
  background:var(--grad);color:#fff;font-family:var(--f-head);font-weight:800;font-size:.95rem;margin-bottom:1.1rem;
}
.practice h2{font-size:clamp(1.7rem,3vw,2.3rem);font-weight:800;letter-spacing:-.03em;}
.practice__lede{color:var(--slate);font-size:1.02rem;margin-top:.9rem;}
.practice__sub{
  font-family:var(--f-head);font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--slate-light);margin:2rem 0 1rem;display:flex;align-items:center;gap:.7rem;
}
.practice__sub::after{content:"";flex:1;height:1px;background:var(--line);}
@media (max-width:900px){.practice__grid{grid-template-columns:1fr;gap:var(--s4);}}

/* "problems we hear" — quoted pain points */
.pains{display:grid;gap:.7rem;}
.pain{
  position:relative;background:var(--bg-soft);border-left:3px solid var(--blue-500);
  border-radius:0 var(--r-sm) var(--r-sm) 0;padding:.95rem 1.1rem .95rem 1.2rem;
  font-size:.94rem;color:var(--ink);font-style:italic;
}
.pain::before{content:"“";position:absolute;left:.45rem;top:.15rem;font-family:var(--f-head);font-size:1.6rem;color:var(--blue-100);font-style:normal;}

/* deliverables checklist */
.delivs{display:grid;grid-template-columns:1fr 1fr;gap:.7rem 1.2rem;}
.delivs li{display:flex;gap:.6rem;align-items:flex-start;font-size:.92rem;color:var(--slate);}
.delivs svg{width:17px;height:17px;color:var(--blue-600);flex-shrink:0;margin-top:.25rem;}
@media (max-width:620px){.delivs{grid-template-columns:1fr;}}

/* tech chips row */
.stackrow{display:flex;flex-wrap:wrap;gap:.45rem;}
.stackrow span{
  background:#fff;border:1px solid var(--line);border-radius:var(--r-pill);padding:.35rem .85rem;
  font-family:var(--f-head);font-size:.78rem;font-weight:600;color:var(--slate);
}

/* facts card beside the 3D stage */
.facts{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:1.5rem;margin-top:1.2rem;box-shadow:var(--sh-sm);}
.facts dl{display:grid;gap:.9rem;margin:0;}
.facts dl > div{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;padding-bottom:.9rem;border-bottom:1px solid var(--line);}
.facts dl > div:last-child{border-bottom:0;padding-bottom:0;}
.facts dt{font-size:.82rem;color:var(--slate-light);font-weight:500;}
.facts dd{margin:0;font-family:var(--f-head);font-size:.9rem;font-weight:700;text-align:right;}

/* engagement comparison table */
.cmp{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;}
.cmp th,.cmp td{padding:1.05rem 1.2rem;text-align:left;border-bottom:1px solid var(--line);font-size:.92rem;}
.cmp thead th{background:var(--bg-soft);font-family:var(--f-head);font-size:.82rem;font-weight:700;color:var(--ink);}
.cmp thead th:first-child{color:var(--slate-light);font-weight:600;}
.cmp tbody th{font-family:var(--f-head);font-size:.85rem;font-weight:600;color:var(--slate-light);width:24%;}
.cmp tbody tr:last-child th,.cmp tbody tr:last-child td{border-bottom:0;}
.cmp td{color:var(--slate);}
.cmp .yes{color:var(--blue-600);font-weight:600;}
@media (max-width:760px){
  .cmp,.cmp tbody,.cmp tr,.cmp td,.cmp th{display:block;}
  .cmp thead{display:none;}
  .cmp tbody tr{border-bottom:1px solid var(--line);padding:.5rem 0;}
  .cmp tbody th{background:var(--bg-soft);width:auto;}
  .cmp td{border-bottom:0;padding:.5rem 1.2rem;}
  .cmp td::before{content:attr(data-l) " — ";font-weight:600;color:var(--ink);}
}

/* practice finder */
.finder{background:var(--grad);border-radius:var(--r-lg);padding:var(--s5);color:#fff;box-shadow:var(--sh-blue);}
.finder h2{color:#fff;font-size:clamp(1.6rem,2.8vw,2.2rem);font-weight:800;letter-spacing:-.03em;text-align:center;}
.finder > p{color:rgba(255,255,255,.85);text-align:center;max-width:48ch;margin:.9rem auto 2rem;}
.finder__opts{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;}
.finder__opts button{
  background:rgba(255,255,255,.1);border:1.5px solid rgba(255,255,255,.24);border-radius:var(--r-md);
  padding:1rem 1.1rem;color:#fff;font-family:var(--f-body);font-size:.9rem;text-align:left;line-height:1.45;
  transition:background .18s,border-color .18s,transform .18s;
}
.finder__opts button:hover{background:rgba(255,255,255,.18);border-color:#fff;transform:translateY(-2px);}
.finder__opts button.is-on{background:#fff;color:var(--blue-700);border-color:#fff;font-weight:600;}
.finder__out{
  margin-top:1.6rem;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.24);
  border-radius:var(--r-md);padding:1.6rem;display:none;
}
.finder__out.is-on{display:block;}
.finder__out b{display:block;font-family:var(--f-head);font-size:.76rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.7);}
.finder__out h3{color:#fff;font-size:1.35rem;font-weight:800;margin:.5rem 0 .6rem;letter-spacing:-.02em;}
.finder__out p{color:rgba(255,255,255,.88);font-size:.95rem;margin-bottom:1.2rem;}
@media (max-width:820px){.finder__opts{grid-template-columns:1fr 1fr;}}
@media (max-width:540px){.finder__opts{grid-template-columns:1fr;}.finder{padding:var(--s4) 1.5rem;}}

/* "what we don't do" */
.dont{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.dont li{display:flex;gap:.8rem;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:1.2rem 1.3rem;}
.dont svg{width:20px;height:20px;color:#C2536B;flex-shrink:0;margin-top:.15rem;}
.dont b{display:block;font-family:var(--f-head);font-size:.98rem;font-weight:700;margin-bottom:.25rem;}
.dont span{font-size:.9rem;color:var(--slate);}
@media (max-width:760px){.dont{grid-template-columns:1fr;}}

/* ===========================================================
   SPECIALIZATIONS — 4-up variant of the card grid
   =========================================================== */
.cards--4{grid-template-columns:repeat(4,1fr);}
@media (max-width:960px){.cards--4{grid-template-columns:1fr 1fr;}}
@media (max-width:640px){.cards--4{grid-template-columns:1fr;}}
.spec-tag{
  display:inline-flex;align-items:center;gap:.4rem;background:var(--blue-50);color:var(--blue-600);
  border-radius:var(--r-pill);padding:.3rem .8rem;font-family:var(--f-head);font-size:.72rem;font-weight:700;
  letter-spacing:.04em;margin-bottom:.9rem;
}

/* ===========================================================
   FACTORY SYSTEMS PAGE
   =========================================================== */

/* before / after comparison */
/* modules — connected grid */
.mods{display:grid;grid-template-columns:repeat(2,1fr);gap:1.4rem;}
.mod{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:1.9rem;position:relative;overflow:hidden;transition:transform .25s cubic-bezier(.2,.7,.3,1),box-shadow .25s,border-color .25s;transform-style:preserve-3d;}
.mod:hover{box-shadow:var(--sh-lg);border-color:transparent;}
.mod__code{
  display:inline-block;background:var(--grad);color:#fff;border-radius:6px;padding:.25rem .7rem;
  font-family:var(--f-head);font-size:.76rem;font-weight:800;letter-spacing:.06em;margin-bottom:.9rem;
}
.mod h3{font-size:1.18rem;font-weight:700;margin-bottom:.2rem;}
.mod__full{display:block;font-size:.8rem;color:var(--slate-light);font-weight:500;margin-bottom:.8rem;}
.mod p{font-size:.93rem;color:var(--slate);}
.mod__list{display:grid;gap:.5rem;margin-top:1.1rem;padding-top:1.1rem;border-top:1px solid var(--line);}
.mod__list li{display:flex;gap:.55rem;align-items:flex-start;font-size:.87rem;color:var(--slate);}
.mod__list svg{width:15px;height:15px;color:var(--blue-600);flex-shrink:0;margin-top:.22rem;}
@media (max-width:760px){.mods{grid-template-columns:1fr;}}

/* tier ladder */
.tiers{display:grid;gap:1rem;}
.tier{
  display:grid;grid-template-columns:auto 1fr auto;gap:1.4rem;align-items:center;
  background:#fff;border:1px solid var(--line);border-left:4px solid var(--blue-500);
  border-radius:var(--r-md);padding:1.5rem 1.7rem;transition:transform .2s,box-shadow .2s;
}
.tier:hover{transform:translateX(4px);box-shadow:var(--sh-md);}
.tier:nth-child(2){border-left-color:#2B71F5;}
.tier:nth-child(3){border-left-color:var(--cyan);}
.tier__n{font-family:var(--f-head);font-size:1.6rem;font-weight:800;color:var(--blue-100);letter-spacing:-.03em;}
.tier h3{font-size:1.1rem;font-weight:700;margin-bottom:.3rem;}
.tier p{font-size:.9rem;color:var(--slate);}
.tier__cost{font-family:var(--f-head);font-size:.78rem;font-weight:700;color:var(--blue-600);background:var(--blue-50);border-radius:var(--r-pill);padding:.4rem .9rem;white-space:nowrap;}
@media (max-width:700px){.tier{grid-template-columns:auto 1fr;row-gap:.8rem;}.tier__cost{grid-column:2;justify-self:start;}}

/* rollout phases */
.phases{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;}
.phase{background:var(--bg-soft);border-radius:var(--r-lg);padding:1.8rem;border-top:3px solid var(--blue-500);}
.phase:nth-child(2){border-top-color:#2B71F5;}
.phase:nth-child(3){border-top-color:var(--cyan);}
.phase__w{font-family:var(--f-head);font-size:.74rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--blue-600);}
.phase h3{font-size:1.12rem;font-weight:700;margin:.6rem 0 .5rem;}
.phase p{font-size:.9rem;color:var(--slate);}
@media (max-width:860px){.phases{grid-template-columns:1fr;}}

/* fit / not-fit columns */
.fit{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;}
.fit__col{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:1.9rem;}
.fit__col h3{font-size:1.08rem;font-weight:700;margin-bottom:1.1rem;display:flex;align-items:center;gap:.6rem;}
.fit__col h3 svg{width:20px;height:20px;flex-shrink:0;}
.fit__col li{display:flex;gap:.6rem;align-items:flex-start;font-size:.92rem;color:var(--slate);margin-bottom:.7rem;}
.fit__col li::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--slate-light);flex-shrink:0;margin-top:.55rem;}
.fit--yes h3{color:var(--blue-600);}
.fit--no h3{color:#C2536B;}
@media (max-width:700px){.fit{grid-template-columns:1fr;}}

/* ===========================================================
   ANIMATED PROCESS FLOW — shop-floor specialization
   =========================================================== */
.flow{
  background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);
  padding:2rem;box-shadow:var(--sh-sm);position:relative;overflow:hidden;
}
.flow--dark{background:var(--blue-900);border-color:rgba(255,255,255,.12);}

/* step tabs */
.flow__tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.6rem;}
.flow__tab{
  display:flex;align-items:center;gap:.55rem;background:var(--bg-soft);border:1.5px solid transparent;
  border-radius:var(--r-pill);padding:.5rem 1rem;font-family:var(--f-head);font-size:.83rem;font-weight:600;
  color:var(--slate);transition:all .2s;
}
.flow--dark .flow__tab{background:rgba(255,255,255,.08);color:rgba(255,255,255,.7);}
.flow__tab i{
  width:20px;height:20px;border-radius:50%;background:var(--line);color:var(--slate);
  display:flex;align-items:center;justify-content:center;font-size:.66rem;font-style:normal;font-weight:800;flex-shrink:0;
}
.flow--dark .flow__tab i{background:rgba(255,255,255,.16);color:#fff;}
.flow__tab.is-on{background:var(--grad);color:#fff;border-color:transparent;box-shadow:var(--sh-blue);}
.flow__tab.is-on i{background:rgba(255,255,255,.28);color:#fff;}
.flow__tab.is-done{color:var(--blue-600);background:var(--blue-50);}
.flow--dark .flow__tab.is-done{color:var(--cyan-light);background:rgba(0,194,215,.14);}

/* progress track */
.flow__track{height:4px;background:var(--line);border-radius:4px;overflow:hidden;margin-bottom:1.8rem;}
.flow--dark .flow__track{background:rgba(255,255,255,.14);}
.flow__bar{height:100%;width:0;background:var(--grad);border-radius:4px;transition:width .5s cubic-bezier(.3,.8,.4,1);}

/* stage body */
.flow__stage{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:center;min-height:250px;}
@media (max-width:820px){.flow__stage{grid-template-columns:1fr;gap:1.4rem;}}
.flow__copy h3{font-size:1.3rem;font-weight:800;letter-spacing:-.02em;margin-bottom:.6rem;}
.flow--dark .flow__copy h3{color:#fff;}
.flow__copy p{color:var(--slate);font-size:.96rem;}
.flow--dark .flow__copy p{color:rgba(255,255,255,.78);}
.flow__meta{
  display:inline-flex;align-items:center;gap:.45rem;margin-bottom:.9rem;font-family:var(--f-head);
  font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--blue-600);
}
.flow--dark .flow__meta{color:var(--cyan-light);}
.flow__list{margin-top:1.2rem;display:grid;gap:.55rem;}
.flow__list li{display:flex;gap:.55rem;align-items:flex-start;font-size:.9rem;color:var(--slate);}
.flow--dark .flow__list li{color:rgba(255,255,255,.75);}
.flow__list svg{width:16px;height:16px;color:var(--blue-600);flex-shrink:0;margin-top:.2rem;}
.flow--dark .flow__list svg{color:var(--cyan-light);}

/* animated svg panel */
.flow__viz{background:var(--bg-soft);border-radius:var(--r-md);padding:1.2rem;}
.flow--dark .flow__viz{background:rgba(255,255,255,.05);}
.flow__viz svg{width:100%;height:auto;display:block;}

/* fade/slide when the stage changes */
.flow__pane{animation:paneIn .42s cubic-bezier(.2,.7,.3,1);}
@keyframes paneIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
@media (prefers-reduced-motion:reduce){.flow__pane{animation:none;}}

/* svg element animations */
.fl-draw{stroke-dasharray:1;stroke-dashoffset:1;animation:flDraw 1.1s ease forwards;}
@keyframes flDraw{to{stroke-dashoffset:0;}}
.fl-pop{animation:flPop .5s cubic-bezier(.3,1.3,.5,1) backwards;}
@keyframes flPop{from{opacity:0;transform:scale(.7);}to{opacity:1;transform:scale(1);}}
.fl-rise{animation:flRise .6s cubic-bezier(.2,.7,.3,1) backwards;}
@keyframes flRise{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}
.fl-pulse{animation:flPulse 2s ease-in-out infinite;}
@keyframes flPulse{0%,100%{opacity:.35;}50%{opacity:1;}}
.fl-flow{stroke-dasharray:4 6;animation:flFlow 1.4s linear infinite;}
@keyframes flFlow{to{stroke-dashoffset:-20;}}
@media (prefers-reduced-motion:reduce){
  .fl-draw,.fl-pop,.fl-rise,.fl-pulse,.fl-flow{animation:none;stroke-dashoffset:0;opacity:1;}
}

/* controls */
.flow__ctrl{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.6rem;padding-top:1.2rem;border-top:1px solid var(--line);flex-wrap:wrap;}
.flow--dark .flow__ctrl{border-top-color:rgba(255,255,255,.14);}
.flow__btns{display:flex;gap:.5rem;}
.flow__btn{
  width:38px;height:38px;border-radius:50%;border:1.5px solid var(--line);background:#fff;color:var(--slate);
  display:flex;align-items:center;justify-content:center;transition:all .18s;
}
.flow__btn:hover:not(:disabled){border-color:var(--blue-500);color:var(--blue-600);}
.flow__btn:disabled{opacity:.4;cursor:not-allowed;}
.flow--dark .flow__btn{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2);color:#fff;}
.flow__btn svg{width:15px;height:15px;}
.flow__auto{
  display:inline-flex;align-items:center;gap:.5rem;font-family:var(--f-head);font-size:.8rem;font-weight:600;
  color:var(--slate);background:none;border:0;padding:.4rem 0;
}
.flow--dark .flow__auto{color:rgba(255,255,255,.7);}
.flow__auto svg{width:14px;height:14px;}

/* ===========================================================
   PLATFORM EXPLORER
   =========================================================== */
.pf-bar{position:sticky;top:66px;z-index:70;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);padding:.9rem 0;}
.pf-bar__in{max-width:var(--maxw);margin:0 auto;padding:0 var(--s3);display:flex;gap:.7rem;align-items:center;flex-wrap:wrap;}
.pf-search{position:relative;flex:1;min-width:230px;max-width:400px;}
.pf-search svg{position:absolute;left:.85rem;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--slate-light);}
.pf-search input{width:100%;padding:.7rem .9rem .7rem 2.4rem;border:1.5px solid var(--line);border-radius:var(--r-pill);font-family:var(--f-body);font-size:.92rem;background:#fff;}
.pf-search input:focus{border-color:var(--blue-500);outline:none;}
.pf-chips{display:flex;gap:.45rem;flex-wrap:wrap;}
.pf-chip{background:#fff;border:1.5px solid var(--line);border-radius:var(--r-pill);padding:.5rem 1rem;font-family:var(--f-head);font-size:.82rem;font-weight:600;color:var(--slate);transition:all .16s;white-space:nowrap;}
.pf-chip:hover{border-color:var(--blue-500);color:var(--blue-600);}
.pf-chip.is-on{background:var(--grad);border-color:transparent;color:#fff;box-shadow:var(--sh-blue);}
.pf-count{margin-left:auto;font-family:var(--f-head);font-size:.82rem;font-weight:600;color:var(--slate-light);white-space:nowrap;}

.pf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;}
@media (max-width:960px){.pf-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:620px){.pf-grid{grid-template-columns:1fr;}}
.pf-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:1.5rem;text-align:left;width:100%;position:relative;overflow:hidden;transition:transform .22s cubic-bezier(.2,.7,.3,1),box-shadow .22s,border-color .22s;transform-style:preserve-3d;}
.pf-card::after{content:"";position:absolute;top:0;left:0;height:3px;width:100%;background:var(--grad);transform:scaleX(0);transform-origin:left;transition:transform .3s;}
.pf-card:hover{box-shadow:var(--sh-lg);border-color:transparent;}
.pf-card:hover::after{transform:scaleX(1);}
.pf-card.is-hidden{display:none;}
.pf-card__top{display:flex;align-items:flex-start;gap:.85rem;margin-bottom:.9rem;}
.pf-card__ic{width:44px;height:44px;border-radius:12px;background:var(--blue-50);color:var(--blue-600);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .22s,color .22s;}
.pf-card:hover .pf-card__ic{background:var(--grad);color:#fff;}
.pf-card__ic svg{width:21px;height:21px;}
.pf-card__n{font-family:var(--f-head);font-size:.7rem;font-weight:700;letter-spacing:.1em;color:var(--slate-light);}
.pf-card h3{font-size:1.05rem;font-weight:700;margin-top:.15rem;line-height:1.25;}
.pf-card p{font-size:.87rem;color:var(--slate);margin-bottom:1rem;}
.pf-card__foot{display:flex;align-items:center;gap:.6rem;padding-top:.9rem;border-top:1px solid var(--line);}
.pf-badge{background:var(--bg-soft);border-radius:var(--r-pill);padding:.25rem .7rem;font-family:var(--f-head);font-size:.72rem;font-weight:700;color:var(--slate);}
.pf-card__go{margin-left:auto;font-family:var(--f-head);font-size:.8rem;font-weight:600;color:var(--blue-600);display:flex;align-items:center;gap:.35rem;}
.pf-card__go svg{width:12px;height:12px;transition:transform .18s;}
.pf-card:hover .pf-card__go svg{transform:translateX(3px);}
.pf-add{position:absolute;top:1rem;right:1rem;width:28px;height:28px;border-radius:50%;border:1.5px solid var(--line);background:#fff;color:var(--slate-light);display:flex;align-items:center;justify-content:center;z-index:2;transition:all .18s;}
.pf-add svg{width:13px;height:13px;}
.pf-add:hover{border-color:var(--blue-500);color:var(--blue-600);}
.pf-add.is-on{background:var(--grad);border-color:transparent;color:#fff;}

/* search results */
.pf-hits{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:1.4rem;margin-bottom:1.4rem;}
.pf-hits h4{font-family:var(--f-head);font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--slate-light);margin-bottom:.9rem;}
.pf-hit{display:flex;gap:.7rem;align-items:baseline;padding:.5rem 0;border-bottom:1px solid var(--line);font-size:.9rem;}
.pf-hit:last-child{border-bottom:0;}
.pf-hit b{font-weight:500;}
.pf-hit mark{background:#FFF3C4;color:inherit;border-radius:3px;padding:0 2px;}
.pf-hit span{margin-left:auto;font-size:.76rem;color:var(--slate-light);white-space:nowrap;}

/* detail sheet */
.pf-sheet{max-width:820px;}
.pf-sheet__hd{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1.4rem;}
.pf-sheet__ic{width:52px;height:52px;border-radius:14px;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.pf-sheet__ic svg{width:25px;height:25px;}
.pf-sheet h3{font-size:1.5rem;font-weight:800;letter-spacing:-.03em;margin:0;}
.pf-sheet__sub{font-size:.92rem;color:var(--slate);margin-top:.3rem;}
.pf-grp{margin-bottom:1.6rem;}
.pf-grp h4{display:flex;align-items:center;gap:.7rem;font-family:var(--f-head);font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--blue-600);margin-bottom:.8rem;}
.pf-grp h4::after{content:"";flex:1;height:1px;background:var(--line);}
.pf-items{display:grid;grid-template-columns:1fr 1fr;gap:.4rem .9rem;}
@media (max-width:620px){.pf-items{grid-template-columns:1fr;}}
.pf-items li{display:flex;gap:.5rem;align-items:flex-start;font-size:.88rem;color:var(--slate);}
.pf-items svg{width:14px;height:14px;color:var(--blue-500);flex-shrink:0;margin-top:.25rem;}
.pf-eg{background:var(--grad-soft);border-radius:var(--r-md);padding:1rem 1.2rem;font-size:.88rem;margin-bottom:1.4rem;}
.pf-eg b{display:block;font-family:var(--f-head);font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--blue-600);margin-bottom:.4rem;}

/* chain */
.pf-chain{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;}
.pf-chain span{background:#fff;border:1px solid var(--line);border-radius:var(--r-pill);padding:.4rem .9rem;font-family:var(--f-head);font-size:.8rem;font-weight:600;}
.pf-chain i{color:var(--blue-500);font-style:normal;font-weight:700;}
.pf-chain span.hi{background:var(--grad);border-color:transparent;color:#fff;}

/* selection tray */
.pf-tray{position:fixed;left:50%;bottom:1.4rem;transform:translateX(-50%) translateY(140%);background:var(--blue-900);color:#fff;border-radius:var(--r-pill);padding:.8rem 1rem .8rem 1.5rem;display:flex;align-items:center;gap:1.2rem;box-shadow:var(--sh-lg);z-index:110;transition:transform .3s cubic-bezier(.2,.7,.3,1);max-width:calc(100% - 2rem);}
.pf-tray.is-on{transform:translateX(-50%) translateY(0);}
.pf-tray b{font-family:var(--f-head);font-size:.95rem;font-weight:700;white-space:nowrap;}
.pf-tray small{display:block;font-size:.74rem;color:rgba(255,255,255,.6);font-weight:400;}
.pf-tray .btn{padding:.6rem 1.2rem;}
.pf-tray__x{background:none;border:0;color:rgba(255,255,255,.6);padding:.3rem;display:flex;}
.pf-tray__x svg{width:15px;height:15px;}
@media (max-width:560px){.pf-tray{gap:.7rem;padding-left:1.1rem;}.pf-tray b{font-size:.85rem;}}
