/* ==========================================================================
   LEAMSOFT — site theme
   Base tokens + home-page components come straight from the design file;
   the "inner pages" block at the bottom extends the same language to every
   other frontend view.
   ========================================================================== */

/* Inter, self-hosted (SIL OFL) — no third-party request before first paint */
@font-face{font-family:"Inter";font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/inter-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter";font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/inter-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
  --bg:#ffffff;
  --soft:#f6f8fb;
  --soft-2:#eef1f6;
  --ink:#0a0d14;
  --text:#3c4257;
  --muted:#6b7385;
  --faint:#9aa1b1;
  --line:#e6e8ee;
  --line-2:#d9dde6;
  --brand:#2447f5;
  --brand-ink:#1a33c7;
  --brand-soft:#eef1fe;
  --green:#0f9f6e;
  --green-soft:#e7f6ef;
  --amber:#b7791f;
  --amber-soft:#fdf4e3;
  --red:#d92d20;
  --red-soft:#fdeceb;
  --r:12px;
  --r-lg:16px;
  --shadow:0 1px 1px rgba(10,13,20,.04),0 2px 6px rgba(10,13,20,.04);
  --shadow-lg:0 0 0 1px rgba(10,13,20,.06),0 12px 24px -6px rgba(10,13,20,.08),0 32px 64px -24px rgba(10,13,20,.18);
  --container:1200px;
  --font:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;font-feature-settings:"cv11","ss01"}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4{margin:0;color:var(--ink);font-weight:600;letter-spacing:-.025em;line-height:1.12}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
:focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:6px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.skip{position:absolute;left:16px;top:-60px;background:var(--ink);color:#fff;padding:10px 14px;border-radius:8px;z-index:100}
.skip:focus{top:12px}
.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 24px}
.icon{width:18px;height:18px;flex:none}

/* ---------- type ---------- */
.label{font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.02em;text-transform:uppercase;color:var(--brand)}
.h2{font-size:clamp(30px,3.4vw,44px);letter-spacing:-.032em;margin-top:14px;max-width:760px}
.h2 .dim{color:var(--faint)}
.lead{font-size:18px;color:var(--muted);max-width:600px;margin-top:16px;line-height:1.6}
.section{padding:120px 0}
.section--soft{background:var(--soft)}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;flex-wrap:wrap;margin-bottom:56px}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 18px;border-radius:10px;font-weight:550;font-size:15px;border:1px solid transparent;cursor:pointer;transition:background .15s,border-color .15s,color .15s;white-space:nowrap}
.btn--primary{background:var(--ink);color:#fff}
.btn--primary:hover{background:#262b38}
.btn--ghost{background:#fff;border-color:var(--line-2);color:var(--ink)}
.btn--ghost:hover{background:var(--soft)}
.btn--sm{height:36px;padding:0 14px;font-size:14px;border-radius:8px}
.btn .icon{width:16px;height:16px;transition:transform .15s}
.btn:hover .arr{transform:translateX(2px)}
.tlink{display:inline-flex;align-items:center;gap:6px;font-weight:550;color:var(--brand);font-size:15px}
.tlink .icon{width:15px;height:15px;transition:transform .15s}
.tlink:hover .icon{transform:translateX(3px)}

/* ---------- header ---------- */
.header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:saturate(180%) blur(12px);-webkit-backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid transparent;transition:border-color .2s}
.header.scrolled{border-bottom-color:var(--line)}
.nav{height:64px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.logo{display:flex;align-items:center;gap:9px;font-weight:650;font-size:18px;color:var(--ink);letter-spacing:-.02em}
.logo__mark{width:28px;height:28px;border-radius:7px;background:var(--ink);color:#fff;display:grid;place-items:center}
.logo__mark svg{width:15px;height:15px}
/* Uploaded logo (trimmed server-side). The badge has rounded ends, so the
   radius hides the leftover canvas in the corners. */
.logo__img{display:block;height:36px;width:auto;max-width:160px;object-fit:contain;border-radius:9px}
.footer .logo__img{height:40px}
@media (max-width:720px){.logo__img{height:32px;border-radius:8px}}
.menu{display:flex;gap:2px;align-items:center}
.menu>li>a,.menu>li>button{display:inline-flex;align-items:center;gap:4px;height:36px;padding:0 12px;border-radius:8px;font-size:14.5px;font-weight:500;color:var(--text);background:none;border:0;cursor:pointer;transition:color .15s,background .15s}
.menu>li>a:hover,.menu>li>button:hover{color:var(--ink);background:var(--soft)}
.menu>li>a.on,.menu>li>button.on{color:var(--ink)}
.chev{width:14px;height:14px;opacity:.6;transition:transform .2s}
.has-mega{position:relative}
.mega{position:absolute;top:calc(100% + 8px);left:-120px;width:640px;background:#fff;border-radius:14px;box-shadow:var(--shadow-lg);padding:8px;display:grid;grid-template-columns:1fr 1fr;opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .15s,transform .15s,visibility .15s}
.mega::before{content:"";position:absolute;left:0;right:0;top:-10px;height:10px}
.has-mega:hover .mega,.has-mega:focus-within .mega,.has-mega.open .mega{opacity:1;visibility:visible;transform:none}
.has-mega:hover .chev,.has-mega.open .chev{transform:rotate(180deg)}
.mega a{display:flex;gap:12px;padding:12px;border-radius:10px}
.mega a:hover{background:var(--soft)}
.mega .mi{width:32px;height:32px;border-radius:8px;border:1px solid var(--line);display:grid;place-items:center;color:var(--ink);flex:none;background:#fff}
.mega .mi .icon{width:16px;height:16px}
.mega strong{display:block;font-size:14px;font-weight:600;color:var(--ink)}
.mega span span{display:block;font-size:13px;color:var(--muted);line-height:1.45;margin-top:2px}
.mega__foot{grid-column:1/-1;margin-top:6px;padding:12px 14px;border-radius:10px;background:var(--soft);display:flex;justify-content:space-between;align-items:center;font-size:13.5px;color:var(--muted)}
.nav__right{display:flex;align-items:center;gap:8px}
.nav__login{font-size:14.5px;font-weight:500;color:var(--text);padding:0 12px;height:36px;display:inline-flex;align-items:center;border-radius:8px}
.nav__login:hover{color:var(--ink);background:var(--soft)}
.burger{display:none;width:40px;height:40px;border-radius:10px;border:1px solid var(--line);background:#fff;align-items:center;justify-content:center;cursor:pointer}
.drawer{display:none}

/* ---------- hero ---------- */
.hero{position:relative;padding:88px 0 0;overflow:hidden}
.hero__guides{position:absolute;inset:0;pointer-events:none;display:flex;justify-content:center}
.hero__guides div{width:100%;max-width:var(--container);margin:0 24px;border-left:1px dashed var(--line);border-right:1px dashed var(--line);background:linear-gradient(90deg,transparent calc(33.333% - .5px),var(--line) calc(33.333% - .5px),var(--line) calc(33.333% + .5px),transparent calc(33.333% + .5px),transparent calc(66.666% - .5px),var(--line) calc(66.666% - .5px),var(--line) calc(66.666% + .5px),transparent calc(66.666% + .5px));opacity:.55;-webkit-mask-image:linear-gradient(#000 40%,transparent 85%);mask-image:linear-gradient(#000 40%,transparent 85%)}
.hero .container{position:relative}
.announce{display:inline-flex;align-items:center;gap:10px;font-size:13.5px;color:var(--text);padding:5px 12px 5px 5px;border:1px solid var(--line);border-radius:999px;background:#fff;transition:border-color .15s}
.announce:hover{border-color:var(--line-2)}
.announce b{font-weight:600;font-size:12px;color:var(--brand);background:var(--brand-soft);padding:2px 8px;border-radius:999px}
.announce .icon{width:14px;height:14px;color:var(--muted)}
.hero__grid{display:grid;grid-template-columns:1.25fr .75fr;gap:48px;align-items:end;margin-top:28px}
.hero h1{font-size:clamp(40px,5.6vw,72px);letter-spacing:-.045em;line-height:1.02;font-weight:600}
.hero h1 .dim{color:var(--faint)}
.hero__side p{font-size:18px;color:var(--muted);line-height:1.6}
.hero__cta{display:flex;gap:10px;margin-top:28px;flex-wrap:wrap}
.hero__meta{display:flex;gap:28px;margin-top:40px;padding-top:24px;border-top:1px solid var(--line);flex-wrap:wrap}
.hero__meta div{font-size:13.5px;color:var(--muted)}
.hero__meta strong{display:block;font-size:22px;color:var(--ink);font-weight:600;letter-spacing:-.02em}

/* product frame */
.shot{margin-top:72px;position:relative}
.shot::after{content:"";position:absolute;left:0;right:0;bottom:0;height:160px;background:linear-gradient(rgba(255,255,255,0),#fff);pointer-events:none}
.frame{border-radius:14px 14px 0 0;background:#fff;box-shadow:var(--shadow-lg);overflow:hidden}
.frame__bar{height:40px;display:flex;align-items:center;gap:14px;padding:0 14px;border-bottom:1px solid var(--line);background:#fbfcfd}
.frame__dots{display:flex;gap:6px}.frame__dots i{width:10px;height:10px;border-radius:50%;background:#dfe2e8}
.frame__url{flex:1;max-width:360px;margin:0 auto;height:24px;border-radius:6px;background:var(--soft);font-family:var(--mono);font-size:11.5px;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;overflow:hidden}
.frame__url .icon{width:11px;height:11px}
.app{display:grid;grid-template-columns:212px 1fr;min-height:520px;font-size:13px}
.app__side{border-right:1px solid var(--line);padding:14px 10px;background:#fbfcfd;display:flex;flex-direction:column;gap:2px}
.app__org{display:flex;align-items:center;gap:8px;padding:6px 8px 14px;font-weight:600;color:var(--ink);font-size:13px}
.app__org i{width:22px;height:22px;border-radius:6px;background:linear-gradient(135deg,#f59e0b,#ef4444);display:block}
.app__nav{display:flex;align-items:center;gap:9px;padding:7px 8px;border-radius:7px;color:var(--text)}
.app__nav .icon{width:15px;height:15px;color:var(--muted)}
.app__nav.on{background:#fff;box-shadow:0 0 0 1px var(--line),0 1px 2px rgba(10,13,20,.04);color:var(--ink);font-weight:550}
.app__nav.on .icon{color:var(--ink)}
.app__nav em{margin-left:auto;font-style:normal;font-size:11px;background:var(--soft-2);padding:1px 6px;border-radius:5px;color:var(--muted)}
.app__sep{height:1px;background:var(--line);margin:10px 6px}
.app__main{padding:20px 24px;display:flex;flex-direction:column;gap:18px;min-width:0}
.app__top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.crumb{font-size:12px;color:var(--muted)}
.app__title{display:flex;align-items:center;gap:10px;margin-top:2px}
.app__title h4,.app__title strong{font-size:18px;letter-spacing:-.02em;color:var(--ink);font-weight:600}
.st{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:550;padding:2px 8px;border-radius:999px;white-space:nowrap}
.st i{width:6px;height:6px;border-radius:50%;background:currentColor}
.st--g{background:var(--green-soft);color:var(--green)}
.st--a{background:var(--amber-soft);color:var(--amber)}
.app__btns{display:flex;gap:8px}
.mbtn{height:30px;padding:0 12px;border-radius:7px;border:1px solid var(--line);background:#fff;font-size:12.5px;font-weight:550;color:var(--ink);display:inline-flex;align-items:center;white-space:nowrap}
.mbtn--d{background:var(--ink);color:#fff;border-color:var(--ink)}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:10px}
.kpis>div{padding:14px 16px;border-left:1px solid var(--line)}
.kpis>div:first-child{border-left:0}
.kpis small{display:block;font-size:11.5px;color:var(--muted)}
.kpis strong{display:block;font-size:20px;color:var(--ink);font-weight:600;letter-spacing:-.02em;margin-top:2px}
.bar{height:4px;border-radius:4px;background:var(--soft-2);margin-top:8px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--brand);border-radius:4px}
.app__cols{display:grid;grid-template-columns:1.35fr 1fr;gap:16px}
.panel{border:1px solid var(--line);border-radius:10px;padding:14px 16px;min-width:0}
.panel__h{display:flex;justify-content:space-between;align-items:center;font-weight:600;color:var(--ink);font-size:13px;margin-bottom:12px}
.panel__h span{font-weight:400;color:var(--muted);font-size:12px}
.bars{display:flex;align-items:flex-end;gap:8px;height:120px;padding-top:6px;border-bottom:1px solid var(--line)}
.bars i{flex:1;background:var(--soft-2);border-radius:4px 4px 0 0}
.bars i.b{background:var(--brand)}
.bars-x{display:flex;gap:8px;margin-top:6px}.bars-x span{flex:1;text-align:center;font-size:10.5px;color:var(--faint);font-family:var(--mono)}
.ms li{display:flex;align-items:center;gap:10px;padding:7px 0;border-top:1px solid var(--line);color:var(--text)}
.ms li:first-child{border-top:0;padding-top:0}
.ms .ck{width:16px;height:16px;border-radius:50%;display:grid;place-items:center;flex:none}
.ms .ck.done{background:var(--green);color:#fff}
.ms .ck.now{border:2px solid var(--brand);background:#fff}
.ms .ck.todo{border:1.5px dashed var(--line-2)}
.ms .ck svg{width:10px;height:10px}
.ms li>span:last-child{margin-left:auto;font-size:11.5px;color:var(--faint);font-family:var(--mono)}
.tbl{width:100%;border-collapse:collapse;font-size:12.5px}
.tbl th{font-weight:500;color:var(--muted);text-align:left;padding:0 0 8px;font-size:11.5px}
.tbl td{padding:8px 0;border-top:1px solid var(--line);color:var(--text)}
.tbl td code{font-family:var(--mono);font-size:11.5px;color:var(--ink);background:var(--soft);padding:1px 6px;border-radius:4px}

/* ---------- stack strip ---------- */
.strip{padding:40px 0 16px}
.strip p{text-align:center;font-size:13.5px;color:var(--muted)}
.strip ul{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:12px 48px;margin-top:22px}
.strip li{font-size:19px;font-weight:600;letter-spacing:-.02em;color:#8a91a1}

/* ---------- bento services ---------- */
.bento{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
.cell{background:#fff;padding:32px;display:flex;flex-direction:column;min-width:0}
.cell--2{grid-column:span 2}
.cell--3{grid-column:span 3;flex-direction:row;align-items:center;justify-content:space-between;gap:32px}
.cell__ico{flex:none;width:36px;height:36px;border-radius:9px;border:1px solid var(--line);display:grid;place-items:center;color:var(--ink);margin-bottom:20px;background:#fff;box-shadow:var(--shadow)}
.cell h3{font-size:19px;letter-spacing:-.02em}
.cell p{color:var(--muted);margin-top:8px;font-size:15px}
.cell ul{margin-top:18px;display:grid;gap:8px}
.cell li{display:flex;align-items:center;gap:10px;font-size:14.5px;color:var(--text)}
.cell li::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--brand);flex:none}
.cell li a:hover{color:var(--ink)}
.cell .tlink{margin-top:auto;padding-top:24px;font-size:14px}
.cell__split{display:grid;grid-template-columns:1fr 1fr;gap:32px;flex:1}
.cell__split>div:first-child{display:flex;flex-direction:column}
.cell--3 ul{display:flex;gap:8px 24px;margin-top:0;flex-wrap:wrap}
.cell--3 li{white-space:nowrap}
.cell--3>div:first-child{max-width:440px}
.cell--3 .tlink{margin-top:16px;padding-top:0}
.run{border:1px solid var(--line);border-radius:12px;background:var(--soft);padding:14px;font-size:13px;align-self:start}
.run__q{background:#fff;border:1px solid var(--line);border-radius:9px;padding:10px 12px;color:var(--ink)}
.run__q small{display:block;font-family:var(--mono);font-size:11px;color:var(--faint);margin-bottom:4px}
.run__steps{margin-top:12px;display:grid;gap:8px;padding-left:4px}
.run__steps div{display:flex;align-items:center;gap:9px;color:var(--text);font-size:12.5px}
.run__steps svg{width:14px;height:14px;color:var(--green);flex:none}
.run__steps code{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--faint)}
.upt{margin-top:22px}
.upt__row{display:flex;gap:3px}
.upt__row i{flex:1;height:28px;border-radius:2px;background:var(--green);opacity:.85}
.upt__row i.w{background:#f0b429}
.upt__meta{display:flex;justify-content:space-between;margin-top:8px;font-family:var(--mono);font-size:11px;color:var(--faint)}

/* ---------- work ---------- */
.work{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.case{border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:#fff;display:flex;flex-direction:column;transition:box-shadow .2s,border-color .2s}
.case:hover{box-shadow:var(--shadow-lg);border-color:transparent}
.case--wide{grid-column:span 2;display:grid;grid-template-columns:1fr 1.15fr}
.case__vis{background:var(--soft);padding:32px;display:flex;align-items:center;justify-content:center;min-height:280px;border-bottom:1px solid var(--line);overflow:hidden}
.case__vis>img{width:100%;height:100%;max-height:340px;object-fit:cover;border-radius:10px;box-shadow:var(--shadow-lg)}
.case--wide .case__vis{border-bottom:0;border-left:1px solid var(--line);order:2;padding:40px}
.case__body{padding:32px;display:flex;flex-direction:column;flex:1}
.case--wide .case__body{padding:48px}
.case__client{font-family:var(--mono);font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.02em}
.case h3{font-size:22px;margin-top:10px;letter-spacing:-.025em}
.case--wide h3{font-size:clamp(24px,2.4vw,30px)}
.case p{color:var(--muted);margin-top:10px;font-size:15px}
.case__facts{display:flex;gap:32px;margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}
.case__facts strong{display:block;font-size:28px;color:var(--ink);font-weight:600;letter-spacing:-.03em;line-height:1}
.case__facts span{display:block;font-size:13px;color:var(--muted);margin-top:6px}
.tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:20px}
.tags span,.tags a{font-size:12.5px;padding:3px 9px;border-radius:6px;border:1px solid var(--line);color:var(--text);background:#fff}
.tags a:hover{border-color:var(--line-2);color:var(--ink)}
.case .tlink{margin-top:auto;padding-top:24px}
.mock{width:100%;background:#fff;border-radius:10px;box-shadow:var(--shadow-lg);overflow:hidden;font-size:12px}
.mock__h{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line);font-weight:600;color:var(--ink)}
.mock__h span{font-weight:400;font-family:var(--mono);font-size:11px;color:var(--faint);white-space:nowrap}
.boq{width:100%;border-collapse:collapse}
.boq th{font-weight:500;color:var(--muted);font-size:11px;text-align:left;padding:8px 14px;background:#fbfcfd;border-bottom:1px solid var(--line)}
.boq td{padding:8px 14px;border-bottom:1px solid var(--line);color:var(--text);white-space:nowrap}
.boq td:last-child,.boq th:last-child{text-align:right;font-family:var(--mono);font-size:11.5px}
.boq tr.tot td{font-weight:600;color:var(--ink);border-bottom:0;background:var(--brand-soft)}
.boq td:first-child{font-family:var(--mono);color:var(--faint);font-size:11px;width:1%}
.site{max-width:420px}
.site__nav{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--line)}
.site__nav b{font-size:11px;color:var(--ink);letter-spacing:.04em}
.site__nav i{height:6px;width:28px;border-radius:3px;background:var(--soft-2);display:block}
.site__nav i:first-of-type{margin-left:auto}
.site__hero{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px 14px}
.site__hero .t1{height:10px;width:90%;background:var(--ink);border-radius:3px}
.site__hero .t2{height:10px;width:65%;background:var(--ink);border-radius:3px;margin-top:6px}
.site__hero .t3{height:6px;width:85%;background:var(--soft-2);border-radius:3px;margin-top:12px}
.site__hero .t4{height:6px;width:70%;background:var(--soft-2);border-radius:3px;margin-top:5px}
.site__hero .b{height:18px;width:60px;background:#c2410c;border-radius:4px;margin-top:12px}
.site__img{border-radius:6px;background:linear-gradient(180deg,#dbe4f0,#f1f4f9);position:relative;overflow:hidden;min-height:92px}
.site__img svg{position:absolute;bottom:0;left:0;width:100%;height:auto}
.site__row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:0 14px 14px}
.site__row div{height:40px;border-radius:6px;background:var(--soft);border:1px solid var(--line)}
.i2v{display:flex;align-items:center;gap:14px;width:100%;max-width:400px}
.i2v__tile{flex:1;aspect-ratio:4/5;border-radius:10px;box-shadow:var(--shadow-lg);position:relative;overflow:hidden;background:#fff}
.i2v__tile .img{position:absolute;inset:0;background:linear-gradient(160deg,#fde68a 0%,#fca5a5 45%,#818cf8 100%)}
.i2v__tile .img::after{content:"";position:absolute;left:50%;top:40%;width:44%;aspect-ratio:1;border-radius:50%;background:rgba(255,255,255,.55);transform:translate(-50%,-50%)}
.i2v__tile small{position:absolute;left:8px;top:8px;font-family:var(--mono);font-size:10px;background:rgba(255,255,255,.9);padding:2px 6px;border-radius:4px;color:var(--ink)}
.i2v__tile .tl{position:absolute;left:8px;right:8px;bottom:8px;height:22px;border-radius:5px;background:rgba(10,13,20,.72);display:flex;align-items:center;gap:6px;padding:0 6px}
.i2v__tile .tl svg{width:10px;height:10px;color:#fff}
.i2v__tile .tl i{flex:1;height:3px;border-radius:2px;background:linear-gradient(90deg,#fff 40%,rgba(255,255,255,.3) 40%)}
.i2v__arrow{width:36px;height:36px;border-radius:50%;background:#fff;border:1px solid var(--line);display:grid;place-items:center;color:var(--ink);flex:none;box-shadow:var(--shadow)}

/* ---------- why ---------- */
.why{display:grid;grid-template-columns:.85fr 1.15fr;gap:72px;align-items:start}
.why__grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.why__grid>div{padding:28px 28px 32px 0;border-bottom:1px solid var(--line)}
.why__grid>div:nth-child(2n){padding-left:28px;padding-right:0;border-left:1px solid var(--line)}
.why__grid .n{font-family:var(--mono);font-size:12px;color:var(--faint)}
.why__grid h3{font-size:17px;margin-top:14px;letter-spacing:-.015em}
.why__grid p{font-size:15px;color:var(--muted);margin-top:8px}
.why__grid .big strong{display:block;font-size:52px;letter-spacing:-.05em;color:var(--ink);font-weight:600;line-height:1;margin-top:14px}
.why__grid .big p{margin-top:10px}

/* ---------- process ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.steps--3{grid-template-columns:repeat(3,1fr);gap:48px 24px}
.step{border-top:1px solid var(--line-2);padding-top:22px;position:relative}
.step::before{content:"";position:absolute;top:-1px;left:0;width:40px;height:2px;background:var(--brand)}
.step .n{font-family:var(--mono);font-size:12px;color:var(--brand)}
.step h3{font-size:18px;margin-top:10px;letter-spacing:-.015em}
.step p{font-size:15px;color:var(--muted);margin-top:8px}
.step small{display:inline-block;margin-top:14px;font-family:var(--mono);font-size:11.5px;color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:2px 8px;background:#fff}

/* ---------- industries ---------- */
.inds{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.inds li{display:flex;align-items:center;gap:12px;padding:20px 22px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-weight:500;color:var(--ink);font-size:15px;background:#fff;transition:background .15s}
.inds li:hover{background:var(--soft)}
.inds .icon{color:var(--muted);width:18px;height:18px}

/* ---------- insights ---------- */
.posts{border-top:1px solid var(--line)}
.post{display:grid;grid-template-columns:130px 100px 1fr auto;gap:24px;align-items:center;padding:24px 0;border-bottom:1px solid var(--line);transition:padding .2s}
.post:hover{padding-left:8px}
.post time{font-family:var(--mono);font-size:12.5px;color:var(--muted)}
.post .cat{font-size:12.5px;font-weight:550;color:var(--brand)}
.post h3{font-size:18px;letter-spacing:-.015em}
.post p{font-size:14.5px;color:var(--muted);margin-top:4px}
.post .go{width:36px;height:36px;border-radius:50%;border:1px solid var(--line-2);display:grid;place-items:center;color:var(--ink);background:#fff;transition:background .15s,border-color .15s,color .15s}
.post:hover .go{background:var(--ink);border-color:var(--ink);color:#fff}

/* ---------- faq ---------- */
.faq{display:grid;grid-template-columns:.8fr 1.2fr;gap:72px}
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-child{border-top:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px 0;font-weight:550;font-size:16.5px;color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary .icon{width:18px;height:18px;color:var(--muted);transition:transform .2s}
.faq details[open] summary .icon{transform:rotate(45deg)}
.faq details p{padding:0 40px 24px 0;color:var(--muted)}

/* ---------- contact ---------- */
.contact{display:grid;grid-template-columns:1fr 1.05fr;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#fff;box-shadow:var(--shadow)}
.contact__l{padding:56px;background:var(--soft);border-right:1px solid var(--line);display:flex;flex-direction:column}
.contact__l h2{font-size:clamp(28px,3vw,38px);letter-spacing:-.03em}
.contact__l .lead{font-size:16.5px}
.clist{margin-top:36px}
.clist a{display:flex;align-items:center;gap:14px;padding:14px 0;border-top:1px solid var(--line)}
.clist a:last-child{border-bottom:1px solid var(--line)}
.clist .ci{width:36px;height:36px;border-radius:9px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;color:var(--ink);flex:none}
.clist small{display:block;font-size:12.5px;color:var(--muted)}
.clist strong{font-weight:550;color:var(--ink);font-size:15px}
.clist .arr{margin-left:auto;color:var(--faint);width:16px;height:16px;transition:transform .15s,color .15s}
.clist a:hover .arr{transform:translateX(3px);color:var(--ink)}
.addr{margin-top:auto;padding-top:32px;font-size:13.5px;color:var(--muted);display:flex;gap:10px}
.addr .icon{width:16px;height:16px;margin-top:3px}
.form{padding:56px;display:grid;grid-template-columns:1fr 1fr;gap:18px 16px;align-content:start}
.form h3{grid-column:1/-1;font-size:20px;letter-spacing:-.02em}
.form .sub{grid-column:1/-1;font-size:14.5px;color:var(--muted);margin-top:-10px}
.full{grid-column:1/-1}
.field>label,.field .flabel{display:block;font-size:13.5px;font-weight:550;color:var(--ink);margin-bottom:6px}
.field input,.field textarea{width:100%;height:42px;padding:0 12px;border-radius:8px;border:1px solid var(--line-2);background:#fff;font-size:15px;transition:border-color .15s,box-shadow .15s;box-shadow:0 1px 1px rgba(10,13,20,.03)}
.field textarea{height:112px;padding:10px 12px;resize:vertical}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(36,71,245,.14)}
.field .opt{font-weight:400;color:var(--faint)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.chips label{font-size:13.5px;color:var(--text);padding:7px 12px;border:1px solid var(--line-2);border-radius:999px;cursor:pointer;transition:background .15s,color .15s,border-color .15s;user-select:none}
.chips label:hover{border-color:var(--faint)}
.chips input:checked+label{background:var(--ink);border-color:var(--ink);color:#fff}
.chips input:focus-visible+label{outline:2px solid var(--brand);outline-offset:2px}
.form .btn{height:46px}
.form__note{grid-column:1/-1;font-size:12.5px;color:var(--muted);display:flex;align-items:center;gap:6px}
.form__note .icon{width:14px;height:14px;color:var(--green)}
.ferr{font-size:12.5px;color:var(--red);margin-top:6px}
.field.bad input,.field.bad textarea{border-color:var(--red)}
.notice{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:10px;font-size:14.5px;font-weight:500}
.notice .icon{width:18px;height:18px;margin-top:2px}
.notice--ok{background:var(--green-soft);color:var(--green)}
.notice--err{background:var(--red-soft);color:var(--red)}

/* ---------- footer ---------- */
.footer{border-top:1px solid var(--line);padding:72px 0 32px;margin-top:120px}
.fgrid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px}
.footer p.desc{color:var(--muted);font-size:14.5px;margin-top:14px;max-width:300px}
.footer h2,.footer h4{font-size:13.5px;font-weight:600;letter-spacing:-.01em;margin-bottom:14px}
.footer ul{display:grid;gap:10px}
.footer ul a{color:var(--muted);font-size:14.5px}
.footer ul a:hover{color:var(--ink)}
.social{display:flex;gap:6px;margin-top:22px}
.social a{width:34px;height:34px;border-radius:8px;border:1px solid var(--line);display:grid;place-items:center;color:var(--muted);transition:color .15s,border-color .15s}
.social a:hover{color:var(--ink);border-color:var(--line-2)}
.social .icon{width:15px;height:15px}
.news{display:flex;gap:8px;margin-top:22px;max-width:320px}
.news input{flex:1;min-width:0;height:36px;padding:0 12px;border-radius:8px;border:1px solid var(--line-2);font-size:14px}
.news input:focus{outline:none;border-color:var(--brand)}
.fbottom{margin-top:56px;padding-top:24px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13.5px;color:var(--muted)}
.fbottom nav{display:flex;gap:20px;flex-wrap:wrap}
.fbottom a:hover{color:var(--ink)}

.wa{position:fixed;right:20px;bottom:20px;z-index:40;height:46px;padding:0 16px 0 12px;border-radius:999px;background:#fff;color:var(--ink);display:flex;align-items:center;gap:8px;font-size:14px;font-weight:550;box-shadow:var(--shadow-lg);transition:transform .15s}
.wa:hover{transform:translateY(-2px)}
.wa svg{width:22px;height:22px;color:#25d366}

.rv{opacity:0;transform:translateY(12px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}
.no-js .rv{opacity:1;transform:none}

/* ==========================================================================
   INNER PAGES
   ========================================================================== */

/* page hero */
.phero{position:relative;padding:72px 0 64px;overflow:hidden;border-bottom:1px solid var(--line)}
.phero .container{position:relative}
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-family:var(--mono);font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.02em}
.crumbs a:hover{color:var(--ink)}
.crumbs .icon{width:12px;height:12px;color:var(--faint)}
.crumbs span[aria-current]{color:var(--brand)}
.phero h1{font-size:clamp(36px,4.6vw,58px);letter-spacing:-.04em;line-height:1.05;margin-top:20px;max-width:860px}
.phero h1 .dim{color:var(--faint)}
.phero .lead{max-width:680px}
.phero__cta{display:flex;gap:10px;margin-top:28px;flex-wrap:wrap}
.phero__split{display:grid;grid-template-columns:1.2fr .8fr;gap:56px;align-items:center}
.phero__media{border-radius:var(--r-lg);overflow:hidden;background:var(--soft);border:1px solid var(--line);aspect-ratio:4/3;display:grid;place-items:center;box-shadow:var(--shadow-lg)}
.phero__media img{width:100%;height:100%;object-fit:cover}
.phero__media .ph{width:72px;height:72px;border-radius:18px;border:1px solid var(--line);background:#fff;display:grid;place-items:center;color:var(--ink);box-shadow:var(--shadow)}
.phero__media .ph .icon{width:32px;height:32px}
.phero .hero__meta{max-width:640px}
.meta-line{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:20px;font-size:14px;color:var(--muted);align-items:center}
.meta-line .dot{width:4px;height:4px;border-radius:50%;background:var(--line-2)}
.section--tight{padding:88px 0}

/* card grid */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.cards--2{grid-template-columns:repeat(2,1fr)}
.card{border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:#fff;display:flex;flex-direction:column;transition:box-shadow .2s,border-color .2s}
.card:hover{box-shadow:var(--shadow-lg);border-color:transparent}
.card__media{aspect-ratio:16/10;background:var(--soft);border-bottom:1px solid var(--line);display:grid;place-items:center;overflow:hidden}
.card__media img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.card:hover .card__media img{transform:scale(1.03)}
.card__media .ph{width:48px;height:48px;border-radius:12px;border:1px solid var(--line);background:#fff;display:grid;place-items:center;color:var(--ink);box-shadow:var(--shadow)}
.card__body{padding:24px;display:flex;flex-direction:column;flex:1}
.card__kicker{font-family:var(--mono);font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.02em}
.card h3{font-size:18.5px;letter-spacing:-.02em;margin-top:8px;line-height:1.3}
.card p{font-size:14.5px;color:var(--muted);margin-top:8px}
.card .tlink{margin-top:auto;padding-top:20px;font-size:14px}

/* feature tiles (values, stacks, help topics) */
/* hairline grid: each tile draws its right/bottom edge and the outer border
   clips the last ones, so an incomplete last row stays clean */
.tiles{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:#fff}
.tiles--4{grid-template-columns:repeat(4,1fr)}
.tile{background:#fff;padding:28px;display:flex;flex-direction:column;transition:background .15s;border-right:1px solid var(--line);border-bottom:1px solid var(--line);margin:0 -1px -1px 0}
a.tile:hover{background:var(--soft)}
.tile h3{font-size:17px;letter-spacing:-.015em}
.tile p{font-size:14.5px;color:var(--muted);margin-top:8px}
.tile .cell__ico{margin-bottom:18px}
.tile .tlink{margin-top:auto;padding-top:18px;font-size:14px}

/* split text + panel */
.split{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:start}
.split .copy p{color:var(--muted);font-size:16.5px;margin-top:16px}
.split .copy p:first-of-type{margin-top:20px}

/* stat band */
.stats{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:#fff}
.stats>div{padding:28px;border-left:1px solid var(--line)}
.stats>div:first-child{border-left:0}
.stats strong{display:block;font-size:40px;letter-spacing:-.045em;color:var(--ink);font-weight:600;line-height:1}
.stats span{display:block;font-size:14px;color:var(--muted);margin-top:10px}

/* mission / vision */
.mv{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.mv>div{border:1px solid var(--line);border-radius:var(--r-lg);padding:36px;background:#fff}
.mv h3{font-size:22px;margin-top:4px}
.mv p{color:var(--muted);margin-top:12px;font-size:16px}

/* rich text */
.prose{color:var(--text);font-size:17px;line-height:1.75;max-width:760px}
.prose>*+*{margin-top:1.1em}
.prose h1,.prose h2,.prose h3,.prose h4{margin-top:1.9em;letter-spacing:-.02em;line-height:1.25}
.prose h1{font-size:30px}.prose h2{font-size:26px}.prose h3{font-size:21px}.prose h4{font-size:18px}
.prose a{color:var(--brand);text-decoration:underline;text-underline-offset:3px}
.prose strong,.prose b{color:var(--ink);font-weight:600}
.prose ul,.prose ol{padding-left:1.3em}
.prose ul{list-style:disc}.prose ol{list-style:decimal}
.prose li+li{margin-top:.4em}
.prose li::marker{color:var(--brand)}
.prose img{border-radius:12px;height:auto;margin:1.6em 0}
.prose blockquote{margin:1.6em 0;padding:4px 0 4px 20px;border-left:2px solid var(--brand);color:var(--ink);font-size:18px}
.prose code{font-family:var(--mono);font-size:.88em;background:var(--soft);padding:2px 6px;border-radius:5px;color:var(--ink)}
.prose pre{background:var(--ink);color:#e6e8ee;padding:18px;border-radius:12px;overflow:auto;font-size:14px}
.prose pre code{background:none;color:inherit;padding:0}
.prose table{width:100%;border-collapse:collapse;font-size:15px}
.prose th,.prose td{border-bottom:1px solid var(--line);padding:10px 8px;text-align:left}
.prose th{color:var(--ink);font-weight:600}
.prose hr{border:0;border-top:1px solid var(--line);margin:2.4em 0}
.prose>:first-child{margin-top:0}

/* two-column content + sticky aside */
.layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:64px;align-items:start}
.aside{position:sticky;top:88px;display:grid;gap:16px}
.box{border:1px solid var(--line);border-radius:var(--r-lg);padding:24px;background:#fff}
.box--soft{background:var(--soft)}
.box h2,.box h3{font-size:17px;letter-spacing:-.015em}
.box>p{font-size:14.5px;color:var(--muted);margin-top:6px}
.box .form{padding:0;grid-template-columns:1fr;gap:12px;margin-top:18px}
.box .form .btn{width:100%}
.box .clist{margin-top:14px}
.box .clist a,.box .clist div{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line)}
.box .clist>:last-child{border-bottom:0}
.box .clist .ci{width:32px;height:32px}
.box .clist .icon{width:16px;height:16px}

/* facts row */
.facts{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:#fff}
.facts>div{padding:20px 22px;border-left:1px solid var(--line);display:flex;gap:12px;align-items:center}
.facts>div:first-child{border-left:0}
.facts .cell__ico{margin:0;width:34px;height:34px}
.facts small{display:block;font-size:12px;color:var(--muted);font-family:var(--mono);text-transform:uppercase;letter-spacing:.02em}
.facts strong{display:block;font-size:15px;color:var(--ink);font-weight:600}

/* image gallery */
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px}
.gal img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;border:1px solid var(--line)}

/* filters */
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:40px}
.filters a{font-size:14px;padding:7px 14px;border:1px solid var(--line-2);border-radius:999px;color:var(--text);transition:background .15s,color .15s,border-color .15s}
.filters a:hover{border-color:var(--faint)}
.filters a.on{background:var(--ink);border-color:var(--ink);color:#fff}

/* jump nav (services page) */
.jump{position:sticky;top:64px;z-index:20;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.jump .container{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;padding-top:10px;padding-bottom:10px}
.jump .container::-webkit-scrollbar{display:none}
.jump a{flex:none;font-size:14px;font-weight:500;padding:6px 12px;border-radius:8px;color:var(--text);white-space:nowrap}
.jump a:hover{background:var(--soft);color:var(--ink)}

/* category block (services page) */
.catb{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;padding:64px 0;border-top:1px solid var(--line);scroll-margin-top:120px}
.catb:first-child{border-top:0;padding-top:0}
.catb h2{font-size:clamp(24px,2.4vw,30px);letter-spacing:-.03em}
.catb__head p{color:var(--muted);margin-top:12px}
.catb__head .btn{margin-top:24px}
.catb__head .cell__ico{margin-bottom:18px}
.sublist{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.sublist a{display:flex;gap:14px;padding:18px 16px 18px 0;border-bottom:1px solid var(--line);transition:background .15s}
.sublist a:nth-child(2n){padding-left:16px;border-left:1px solid var(--line)}
.sublist a:hover strong{color:var(--brand)}
.sublist strong{display:block;color:var(--ink);font-weight:600;font-size:15.5px;transition:color .15s}
.sublist span span{display:block;color:var(--muted);font-size:14px;margin-top:3px;line-height:1.5}
.sublist .icon{color:var(--faint);margin-top:3px;width:16px;height:16px}

/* testimonials */
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.quote{border:1px solid var(--line);border-radius:var(--r-lg);padding:28px;background:#fff;display:flex;flex-direction:column}
.quote blockquote{margin:0;color:var(--ink);font-size:16px;line-height:1.65}
.quote figcaption{display:flex;align-items:center;gap:12px;margin-top:auto;padding-top:24px}
.quote figcaption img{width:40px;height:40px;border-radius:10px;object-fit:contain;border:1px solid var(--line);background:#fff;padding:4px}
.quote figcaption .av{width:40px;height:40px;border-radius:10px;background:var(--soft-2);display:grid;place-items:center;font-weight:600;color:var(--ink);font-size:14px}
.quote strong{display:block;color:var(--ink);font-size:14.5px;font-weight:600}
.quote small{display:block;color:var(--muted);font-size:13px}
.logos{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:20px 48px;margin-top:22px}
.logos img{height:32px;width:auto;filter:grayscale(1);opacity:.65;transition:filter .2s,opacity .2s}
.logos img:hover{filter:none;opacity:1}

/* CTA band */
.cta{border:1px solid var(--line);border-radius:20px;background:var(--soft);padding:64px;display:flex;align-items:center;justify-content:space-between;gap:40px;flex-wrap:wrap;position:relative;overflow:hidden}
.cta h2{font-size:clamp(28px,3vw,38px);letter-spacing:-.03em;max-width:620px}
.cta p{color:var(--muted);margin-top:12px;max-width:560px}
.cta__btns{display:flex;gap:10px;flex-wrap:wrap}

/* article: header, cover and body share one centred column */
.article{max-width:800px;margin:0 auto}
.article .crumbs{justify-content:flex-start}
.article h1{font-size:clamp(32px,4vw,48px);letter-spacing:-.035em;line-height:1.1;margin-top:20px}
.article .lead{max-width:none}
.article-cover{margin:40px 0 0;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-lg);background:var(--soft)}
.article-cover img{width:100%;height:auto;display:block}
.article .prose{max-width:none;margin-top:48px}
.share{display:flex;align-items:center;gap:8px;margin-top:56px;padding-top:24px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}
.share .social{margin:0 0 0 auto}

/* blog cards: covers are 3:2, keep them whole */
.card--blog .card__media{aspect-ratio:3/2}
.card--blog .card__media img{object-position:center}

/* legal */
.legal{max-width:760px}
.legal .prose h2{font-size:20px}

/* pagination */
.pager{display:flex;justify-content:center;gap:6px;margin-top:56px;flex-wrap:wrap}
.pager a,.pager span{min-width:38px;height:38px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;border:1px solid var(--line-2);font-size:14px;font-weight:500;color:var(--text);background:#fff}
.pager a:hover{background:var(--soft)}
.pager .on{background:var(--ink);border-color:var(--ink);color:#fff}
.pager .off{color:var(--faint);border-color:var(--line)}
.pager .icon{width:14px;height:14px}

/* empty state */
.empty{border:1px dashed var(--line-2);border-radius:var(--r-lg);padding:64px 24px;text-align:center}
.empty h2,.empty h3{font-size:20px}
.empty p{color:var(--muted);margin:8px auto 24px;max-width:420px}

/* help search */
.hsearch{position:relative;max-width:520px;margin-top:28px}
.hsearch input{width:100%;height:48px;padding:0 16px 0 44px;border-radius:10px;border:1px solid var(--line-2);background:#fff;font-size:15.5px;box-shadow:var(--shadow)}
.hsearch input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(36,71,245,.14)}
.hsearch svg{position:absolute;left:15px;top:15px;width:18px;height:18px;color:var(--faint)}

/* faq page groups */
.faqg+.faqg{margin-top:56px}
.faqg .label{display:block;margin-bottom:12px}

/* enquiry modal form (loaded over ajax) */
.qform{display:grid;gap:12px}
.qform .btn{width:100%}

/* ==========================================================================
   BACKGROUND ENHANCEMENTS
   Soft light, depth and texture on top of the base design. Everything here
   is decorative (pointer-events:none) and stays behind the content.
   ========================================================================== */
:root{
  --glow-blue:rgba(36,71,245,.11);
  --glow-violet:rgba(124,58,237,.08);
  --glow-teal:rgba(13,148,136,.06);
  --dots:radial-gradient(rgba(10,13,20,.07) 1px,transparent 1.2px);
}

/* Hero: two soft light sources + a dotted texture that fades out */
.hero::before,.phero::before,.auth__side::before{content:"";position:absolute;pointer-events:none;inset:0;
  background:
    radial-gradient(42% 55% at 78% 8%,var(--glow-blue),transparent 70%),
    radial-gradient(36% 48% at 8% 0%,var(--glow-violet),transparent 72%),
    radial-gradient(30% 40% at 50% 60%,var(--glow-teal),transparent 75%)}
.hero::after,.phero::after{content:"";position:absolute;inset:0;pointer-events:none;background-image:var(--dots);background-size:22px 22px;
  -webkit-mask-image:radial-gradient(70% 60% at 50% 0%,#000 30%,transparent 80%);mask-image:radial-gradient(70% 60% at 50% 0%,#000 30%,transparent 80%);opacity:.75}
.phero::before{opacity:.8}
.phero{background:linear-gradient(180deg,#fbfcff 0%,#fff 100%)}

/* Product shot: coloured glow underneath so the frame floats */
.shot::before{content:"";position:absolute;left:2%;right:2%;top:-30px;height:75%;border-radius:40px;pointer-events:none;
  background:linear-gradient(90deg,rgba(36,71,245,.30),rgba(124,58,237,.24),rgba(13,148,136,.20));filter:blur(70px);opacity:.75;z-index:-1}
.shot{isolation:isolate}
.frame{position:relative}

/* Soft sections: gentle vertical gradient + one corner light */
.section--soft{position:relative;background:
  radial-gradient(40% 60% at 100% 0%,rgba(36,71,245,.06),transparent 70%),
  radial-gradient(35% 55% at 0% 100%,rgba(124,58,237,.05),transparent 70%),
  linear-gradient(180deg,#f7f9fc 0%,#f3f6fb 100%)}
.section--soft::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:var(--dots);background-size:24px 24px;
  -webkit-mask-image:linear-gradient(180deg,#000,transparent 35%,transparent 65%,#000);mask-image:linear-gradient(180deg,#000,transparent 35%,transparent 65%,#000);opacity:.35}
.section--soft>.container{position:relative}

/* CTA band and contact panel: subtle mesh */
.cta{background:
  radial-gradient(50% 80% at 100% 0%,rgba(36,71,245,.12),transparent 70%),
  radial-gradient(45% 70% at 0% 100%,rgba(124,58,237,.10),transparent 70%),
  linear-gradient(135deg,#f8faff,#f4f6fb)}
.cta::after{content:"";position:absolute;inset:0;pointer-events:none;background-image:var(--dots);background-size:20px 20px;
  -webkit-mask-image:linear-gradient(90deg,transparent 40%,#000);mask-image:linear-gradient(90deg,transparent 40%,#000);opacity:.5}
.cta>*{position:relative;z-index:1}
.contact__l{background:
  radial-gradient(60% 50% at 0% 0%,rgba(36,71,245,.08),transparent 70%),
  radial-gradient(50% 40% at 100% 100%,rgba(124,58,237,.06),transparent 70%),
  var(--soft)}
.booking__form{background:
  radial-gradient(60% 40% at 100% 0%,rgba(36,71,245,.07),transparent 70%),
  var(--soft)}

/* Bento / tiles: faint inner light on hover */
.cell,.tile{transition:background .25s}
.cell:hover{background:linear-gradient(180deg,#fff,#fbfcff)}

/* Cards and case studies lift a touch */
.card,.case,.quote{transition:box-shadow .2s,border-color .2s,transform .2s}
.card:hover,.case:hover,.quote:hover{transform:translateY(-3px)}
.quote:hover{box-shadow:var(--shadow-lg);border-color:transparent}

/* Footer: light fade in from the page */
.footer{background:linear-gradient(180deg,#fff 0%,#f8fafd 100%)}

/* Primary buttons: a hint of depth */
.btn--primary{box-shadow:0 1px 0 rgba(255,255,255,.08) inset,0 6px 16px -6px rgba(10,13,20,.45)}
.btn--primary:hover{box-shadow:0 1px 0 rgba(255,255,255,.08) inset,0 10px 22px -8px rgba(36,71,245,.45)}

@media (prefers-reduced-motion:reduce){
  .card:hover,.case:hover,.quote:hover{transform:none}
}

/* ==========================================================================
   CHAT WIDGET
   ========================================================================== */
.chat{position:fixed;right:20px;bottom:20px;z-index:60;font-size:15px}
.chat__launch{display:flex;align-items:center;gap:10px;height:52px;padding:0 20px 0 8px;border:0;border-radius:999px;cursor:pointer;
  background:var(--ink);color:#fff;font-weight:550;box-shadow:0 12px 30px -10px rgba(10,13,20,.55),0 0 0 1px rgba(255,255,255,.06) inset;transition:transform .15s,box-shadow .2s}
.chat__launch:hover{transform:translateY(-2px);box-shadow:0 16px 34px -10px rgba(36,71,245,.55)}
.chat__launch-ico{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--brand),#7c3aed)}
.chat__launch-ico .icon{width:18px;height:18px}
.chat.is-open .chat__launch{display:none}
.chat__panel{position:absolute;right:0;bottom:0;width:380px;height:min(620px,calc(100vh - 40px));display:flex;flex-direction:column;
  background:#fff;border-radius:18px;box-shadow:var(--shadow-lg);overflow:hidden;transform-origin:bottom right;animation:chatIn .2s cubic-bezier(.2,.7,.2,1)}
.chat__panel[hidden]{display:none}
@keyframes chatIn{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
.chat__head{display:flex;align-items:center;gap:12px;padding:14px 14px 14px 16px;color:#fff;
  background:radial-gradient(80% 140% at 100% 0%,rgba(124,58,237,.55),transparent 60%),linear-gradient(135deg,#0a0d14,#1b2347)}
.chat__avatar{width:36px;height:36px;border-radius:10px;background:#fff;color:var(--ink);display:grid;place-items:center;flex:none}
.chat__avatar svg{width:18px;height:18px}
.chat__head h2{font-size:15px;color:#fff;letter-spacing:-.01em}
.chat__head p{font-size:12px;color:rgba(255,255,255,.7);display:flex;align-items:center;gap:6px;margin-top:1px}
.chat__dot{width:7px;height:7px;border-radius:50%;background:#34d399;box-shadow:0 0 0 3px rgba(52,211,153,.25)}
.chat__head-btns{margin-left:auto;display:flex;gap:4px}
.chat__icon-btn{width:32px;height:32px;border-radius:8px;border:0;background:rgba(255,255,255,.08);color:#fff;display:grid;place-items:center;cursor:pointer}
.chat__icon-btn:hover{background:rgba(255,255,255,.18)}
.chat__icon-btn .icon{width:16px;height:16px}
.chat__log{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;background:
  radial-gradient(60% 30% at 100% 0%,rgba(36,71,245,.05),transparent 70%),var(--soft)}
.chat__msg{display:flex;flex-direction:column;max-width:88%}
.chat__msg--user{align-self:flex-end;align-items:flex-end}
.chat__msg--bot{align-self:flex-start}
.chat__bubble{padding:10px 13px;border-radius:14px;line-height:1.5;font-size:14.5px;white-space:pre-line;word-wrap:break-word;overflow-wrap:anywhere}
.chat__msg--bot .chat__bubble{background:#fff;color:var(--ink);border:1px solid var(--line);border-top-left-radius:4px}
.chat__msg--user .chat__bubble{background:var(--brand);color:#fff;border-top-right-radius:4px}
.chat__bubble a{color:var(--brand);text-decoration:underline;text-underline-offset:2px}
.chat__msg--user .chat__bubble a{color:#fff}
.chat__acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.chat__acts a{font-size:13px;font-weight:550;padding:6px 11px;border-radius:999px;border:1px solid var(--line-2);background:#fff;color:var(--ink)}
.chat__acts a:hover{border-color:var(--brand);color:var(--brand)}
.chat__typing{display:flex;gap:4px;align-items:center;min-height:21px}
.chat__typing i{width:6px;height:6px;border-radius:50%;background:var(--faint);animation:chatDot 1s infinite ease-in-out}
.chat__typing i:nth-child(2){animation-delay:.15s}.chat__typing i:nth-child(3){animation-delay:.3s}
@keyframes chatDot{0%,80%,100%{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
.chat__chips{display:flex;gap:6px;overflow-x:auto;padding:10px 12px 0;scrollbar-width:none;background:#fff}
.chat__chips::-webkit-scrollbar{display:none}
.chat__chips[hidden]{display:none}
.chat__chips button,.chat__chips a{flex:none;font:inherit;font-size:13px;padding:6px 11px;border-radius:999px;border:1px solid var(--line-2);background:#fff;color:var(--text);cursor:pointer}
.chat__chips button:hover,.chat__chips a:hover{border-color:var(--ink);color:var(--ink)}
.chat__form{display:flex;align-items:flex-end;gap:8px;padding:10px 12px;background:#fff}
.chat__form[hidden]{display:none}
.chat__form textarea{flex:1;resize:none;border:1px solid var(--line-2);border-radius:12px;padding:10px 12px;font-size:14.5px;line-height:1.4;max-height:120px;background:#fff}
.chat__form textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(36,71,245,.14)}
.chat__send{width:42px;height:42px;border-radius:12px;border:0;background:var(--ink);color:#fff;display:grid;place-items:center;cursor:pointer;flex:none}
.chat__send:hover{background:var(--brand)}
.chat__send .icon{width:18px;height:18px}
.chat__lead{display:grid;gap:8px;padding:12px;background:#fff;border-top:1px solid var(--line)}
.chat__lead[hidden]{display:none}
.chat__lead-title{font-size:13.5px;font-weight:550;color:var(--ink)}
.chat__lead input{height:40px;padding:0 12px;border-radius:9px;border:1px solid var(--line-2);font-size:14.5px}
.chat__lead input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(36,71,245,.14)}
.chat__lead-btns{display:flex;justify-content:flex-end;gap:8px}
.chat__err{font-size:12.5px;color:var(--red);min-height:0}
.chat__err:empty{display:none}
.chat__foot{font-size:11.5px;color:var(--faint);text-align:center;padding:0 12px 10px;background:#fff}
.chat__foot a{color:var(--muted);text-decoration:underline}

/* WhatsApp button sits above the chat launcher */
.wa--stacked{bottom:84px;right:24px;height:44px;width:44px;padding:0;justify-content:center}
.wa--stacked span{display:none}

@media (max-width:720px){
  .chat{right:14px;bottom:14px}
  .chat__launch{padding:0 8px;width:52px;justify-content:center}
  .chat__launch-txt{display:none}
  .chat.is-open{left:0;right:0;bottom:0;top:0}
  .chat__panel{position:fixed;inset:0;width:auto;height:100%;border-radius:0}
  .wa--stacked{right:18px;bottom:76px}
}

/* ==========================================================================
   MEETING SCHEDULER
   ========================================================================== */
.booking{display:grid;grid-template-columns:1.15fr 1fr;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#fff;box-shadow:var(--shadow)}
.booking__pick{padding:40px;border-right:1px solid var(--line)}
.booking__form{padding:40px;background:var(--soft);display:grid;gap:18px;align-content:start}
.booking h2{font-size:20px;letter-spacing:-.02em;display:flex;align-items:center;gap:10px}
.booking h2 .n{width:24px;height:24px;border-radius:50%;background:var(--ink);color:#fff;font-size:12.5px;display:grid;place-items:center;font-weight:600;letter-spacing:0}
.booking .hint{font-size:13.5px;color:var(--muted);margin-top:6px}
.days{display:grid;grid-template-columns:repeat(auto-fill,minmax(74px,1fr));gap:8px;margin-top:20px}
.day{border:1px solid var(--line-2);border-radius:10px;background:#fff;padding:10px 6px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s,color .15s;font:inherit;color:var(--text)}
.day:hover{border-color:var(--faint)}
.day small{display:block;font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-family:var(--mono)}
.day strong{display:block;font-size:20px;color:var(--ink);font-weight:600;letter-spacing:-.02em;line-height:1.3}
.day.on{background:var(--ink);border-color:var(--ink)}
.day.on small,.day.on strong,.day.on span{color:#fff}
.day span{display:block;font-size:12px;color:var(--muted)}
.slots-wrap{margin-top:28px}
.slots-wrap .flabel{font-size:13.5px;font-weight:550;color:var(--ink);margin-bottom:10px;display:flex;justify-content:space-between;gap:12px}
.slots-wrap .flabel span{font-weight:400;color:var(--muted);font-family:var(--mono);font-size:12px}
.slotg+.slotg{margin-top:20px}
.slotg h3{font-size:14px;color:var(--muted);font-weight:500;margin-bottom:10px;letter-spacing:0}
body:not(.no-js) .slotg h3{display:none}
.slotg[hidden]{display:none}
.no-js .days{display:none}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}
.slots input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.slots label{display:block;text-align:center;font-size:14px;font-weight:500;padding:9px 6px;border:1px solid var(--line-2);border-radius:8px;cursor:pointer;background:#fff;color:var(--ink);transition:background .15s,border-color .15s,color .15s}
.slots label:hover{border-color:var(--brand);color:var(--brand)}
.slots input:checked+label{background:var(--brand);border-color:var(--brand);color:#fff}
.slots input:focus-visible+label{outline:2px solid var(--brand);outline-offset:2px}
.summary{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:12px;background:#fff;border:1px solid var(--line)}
.summary .ci{width:36px;height:36px;border-radius:9px;background:var(--brand-soft);color:var(--brand);display:grid;place-items:center;flex:none}
.summary>span:last-child{flex:1;text-align:left}
.summary small{display:block;font-size:12px;color:var(--muted)}
.summary strong{display:block;color:var(--ink);font-weight:600;font-size:15px}
.summary.empty strong{color:var(--faint);font-weight:500}
.booking__form .grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.booking__form .btn{width:100%;height:48px}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.confirm{max-width:640px;margin:0 auto;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:var(--shadow);overflow:hidden}
.confirm__head{padding:40px;text-align:center;border-bottom:1px solid var(--line)}
.confirm__head .ok{width:56px;height:56px;border-radius:50%;background:var(--green-soft);color:var(--green);display:grid;place-items:center;margin:0 auto}
.confirm__head .ok .icon{width:28px;height:28px}
.confirm__head h1{font-size:clamp(28px,3vw,36px);letter-spacing:-.03em;margin-top:18px}
.confirm__head p{color:var(--muted);margin-top:10px}
.confirm dl{margin:0;padding:12px 40px 28px;display:grid;grid-template-columns:140px 1fr;gap:0}
.confirm dt,.confirm dd{padding:12px 0;border-bottom:1px solid var(--line);margin:0;font-size:15px}
.confirm dt{color:var(--muted)}
.confirm dd{color:var(--ink);font-weight:500}
.confirm__foot{padding:0 40px 40px;display:flex;gap:10px;flex-wrap:wrap}
@media (max-width:1080px){
  .booking{grid-template-columns:1fr}
  .booking__pick{border-right:0;border-bottom:1px solid var(--line)}
}
@media (max-width:720px){
  .booking__pick,.booking__form{padding:24px 20px}
  .booking__form .grid2{grid-template-columns:1fr}
  .days{grid-template-columns:repeat(4,1fr)}
  .confirm__head{padding:28px 20px}
  .confirm dl{padding:8px 20px 20px;grid-template-columns:110px 1fr}
  .confirm__foot{padding:0 20px 24px}
  .confirm__foot .btn{flex:1}
}

/* ==========================================================================
   AUTH (admin / client login, password reset)
   ========================================================================== */
.auth{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;background:#fff}
.auth__side{position:relative;overflow:hidden;background:var(--soft);border-right:1px solid var(--line);padding:40px 56px;display:flex;flex-direction:column}
.auth__side .hero__guides div{margin:0 56px}
.auth__side>*{position:relative}
.auth__top{display:flex;align-items:center;justify-content:space-between;gap:16px}
.auth__copy{margin-top:auto;padding-top:64px;max-width:520px}
.auth__copy h1{font-size:clamp(34px,3.6vw,52px);letter-spacing:-.04em;line-height:1.05;margin-top:16px}
.auth__copy h1 .dim{color:var(--faint)}
.auth__copy .lead{font-size:17px}
.auth__preview{margin-top:40px;max-width:520px;background:#fff;border-radius:14px;box-shadow:var(--shadow-lg);overflow:hidden;font-size:13px}
.auth__preview .frame__bar{height:34px}
.auth__preview .body{padding:16px 18px;display:grid;gap:14px}
.auth__preview .kpis strong{font-size:18px}
.auth__foot{margin-top:40px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--muted)}
.auth__foot a:hover{color:var(--ink)}
.auth__main{display:flex;flex-direction:column;padding:40px 56px}
.auth__main .auth__top{justify-content:flex-end}
.auth__card{width:100%;max-width:400px;margin:auto}
.auth__card .label{display:block}
.auth__card h2{font-size:30px;letter-spacing:-.03em;margin-top:12px}
.auth__card .sub{color:var(--muted);margin-top:8px;font-size:15px}
.auth__form{display:grid;gap:18px;margin-top:32px}
.auth__form .btn{width:100%;height:46px}
.auth__row{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:14px}
.auth__row a{color:var(--brand);font-weight:550}
.auth__row a:hover{color:var(--brand-ink)}
.check{display:inline-flex;align-items:center;gap:8px;color:var(--text);cursor:pointer;user-select:none}
.check input{width:16px;height:16px;accent-color:var(--ink);margin:0;cursor:pointer}
.pw{position:relative}
.pw input{padding-right:44px}
.pw button{position:absolute;right:4px;top:4px;width:34px;height:34px;border:0;background:none;border-radius:6px;color:var(--muted);display:grid;place-items:center;cursor:pointer}
.pw button:hover{color:var(--ink);background:var(--soft)}
.pw button .icon{width:17px;height:17px}
.caps{display:none;font-size:12.5px;color:var(--amber);margin-top:6px}
.caps.on{display:block}
.auth__secure{display:flex;align-items:center;gap:8px;justify-content:center;margin-top:24px;font-size:12.5px;color:var(--muted)}
.auth__secure .icon{width:14px;height:14px;color:var(--green)}
.auth__alt{margin-top:28px;padding-top:20px;border-top:1px solid var(--line);font-size:14px;color:var(--muted);text-align:center}
.auth__alt a{color:var(--ink);font-weight:550}
.auth__alt a:hover{color:var(--brand)}
.btn.is-loading{pointer-events:none;opacity:.75}
.btn.is-loading .arr{animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media (max-width:960px){
  .auth{grid-template-columns:1fr}
  .auth__side{border-right:0;border-bottom:1px solid var(--line);padding:24px}
  .auth__copy{padding-top:28px}
  .auth__copy h1{font-size:30px}
  .auth__preview,.auth__side .auth__foot,.auth__side .hero__guides{display:none}
  .auth__main{padding:32px 20px 48px}
  .auth__card{margin:0 auto}
  .auth__main .auth__top{display:none}
}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .menu,.nav__login{display:none}
  .burger{display:inline-flex}
  .drawer{display:block;position:fixed;inset:64px 0 0;background:#fff;padding:8px 24px 32px;overflow-y:auto;transform:translateX(100%);transition:transform .25s ease;z-index:49;border-top:1px solid var(--line)}
  .drawer.open{transform:none}
  .drawer a,.drawer summary{display:flex;justify-content:space-between;align-items:center;padding:14px 0;font-weight:550;font-size:17px;color:var(--ink);border-bottom:1px solid var(--line);cursor:pointer;list-style:none}
  .drawer summary::-webkit-details-marker{display:none}
  .drawer details a{font-weight:450;font-size:15.5px;color:var(--text);padding-left:14px}
  .drawer .btn{margin-top:20px;width:100%;border-bottom:0;color:#fff;justify-content:center}
  .hero__grid{grid-template-columns:1fr;gap:24px}
  .app{grid-template-columns:1fr}
  .app__side{display:none}
  .bento{grid-template-columns:1fr 1fr}
  .cell--3{grid-column:span 2;flex-direction:column;align-items:flex-start}
  .work{grid-template-columns:1fr}
  .case--wide{grid-column:auto;grid-template-columns:1fr}
  .case--wide .case__vis{order:-1;border-left:0;border-bottom:1px solid var(--line)}
  .why,.faq{grid-template-columns:1fr;gap:40px}
  .steps{grid-template-columns:1fr 1fr;gap:40px 24px}
  .inds{grid-template-columns:repeat(3,1fr)}
  .contact{grid-template-columns:1fr}
  .contact__l{border-right:0;border-bottom:1px solid var(--line)}
  .fgrid{grid-template-columns:1fr 1fr}
  .post{grid-template-columns:110px 1fr auto}
  .post .cat{display:none}
  .cards,.quotes{grid-template-columns:1fr 1fr}
  .tiles,.tiles--4{grid-template-columns:1fr 1fr}
  .split,.phero__split,.catb{grid-template-columns:1fr;gap:40px}
  .layout{grid-template-columns:1fr;gap:48px}
  .aside{position:static}
  .stats,.facts{grid-template-columns:1fr 1fr}
  .stats>div:nth-child(3),.facts>div:nth-child(3){border-left:0}
  .stats>div:nth-child(n+3),.facts>div:nth-child(n+3){border-top:1px solid var(--line)}
  .cta{padding:40px}
}
@media (max-width:720px){
  .container{padding:0 16px}
  .section{padding:80px 0}
  .section--tight{padding:64px 0}
  .hero{padding-top:44px}
  .phero{padding:44px 0 48px}
  .hero__guides{display:none}
  .nav__right .btn{display:none}
  .hero__meta{display:grid;grid-template-columns:1fr 1fr;gap:20px}
  .hero__cta .btn,.phero__cta .btn{flex:1}
  .shot{margin-top:48px}
  .app__main{padding:16px}
  .app__cols{grid-template-columns:1fr}
  .app__cols .panel:first-child{display:none}
  .kpis{grid-template-columns:1fr 1fr}
  .kpis>div:nth-child(3){border-left:0}
  .kpis>div:nth-child(n+3){border-top:1px solid var(--line)}
  .app__btns{display:none}
  .tbl th:nth-child(2),.tbl td:nth-child(2){display:none}
  .strip ul{gap:10px 24px}
  .strip li{font-size:15px}
  .bento{grid-template-columns:1fr}
  .cell--2,.cell--3{grid-column:auto}
  .cell{padding:24px}
  .cell__split{grid-template-columns:1fr;gap:24px}
  .case__body,.case--wide .case__body{padding:24px}
  .case__vis,.case--wide .case__vis{padding:20px;min-height:200px}
  .case__facts{gap:24px}
  .boq td,.boq th{padding:7px 8px}
  .boq th:nth-child(3),.boq td:nth-child(3){display:none}
  .why__grid{grid-template-columns:1fr}
  .why__grid>div,.why__grid>div:nth-child(2n){padding:24px 0;border-left:0}
  .steps,.steps--3{grid-template-columns:1fr}
  .inds{grid-template-columns:1fr 1fr}
  .inds li{padding:16px 14px;font-size:14.5px}
  .post{grid-template-columns:1fr auto;gap:6px 16px}
  .post time{grid-column:1/-1}
  .contact__l,.form{padding:28px 20px}
  .form{grid-template-columns:1fr}
  .fgrid{grid-template-columns:1fr;gap:32px}
  .wa span{display:none}
  .wa{padding:0;width:46px;justify-content:center}
  .cards,.cards--2,.quotes,.tiles,.tiles--4,.mv{grid-template-columns:1fr}
  .sublist{grid-template-columns:1fr}
  .sublist a:nth-child(2n){padding-left:0;border-left:0}
  .gal{grid-template-columns:1fr 1fr}
  .cta{padding:28px 20px}
  .cta__btns .btn{flex:1}
  .mv>div{padding:28px 20px}
  .stats strong{font-size:32px}
  .stats>div,.facts>div{padding:20px 16px}
  .prose{font-size:16.5px}
  .share{flex-wrap:wrap}
  .share .social{margin-left:0}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .rv{opacity:1;transform:none}
}
