/* Inner pages: services, work, about, contact, legal */

/* in-page jump links under a hero */
.jump{display:flex;flex-wrap:wrap;margin-top:34px}
.jump .chip{color:var(--ink)}

/* services overview: one large panel per group */
.groups{display:grid;gap:22px}
.grp{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(30px,5vw,80px);padding:clamp(32px,4.4vw,64px);border-radius:36px;background:var(--bg-2);overflow:hidden;transition:transform .5s var(--ease)}
.grp:hover{transform:translateY(-4px)}
.grp:after{content:"";position:absolute;right:-130px;top:-130px;width:340px;height:340px;border-radius:50%;border:2px solid color-mix(in srgb,var(--blue-hi) 40%,transparent);box-shadow:0 0 0 40px color-mix(in srgb,var(--blue-hi) 5%,transparent);transition:transform .8s var(--ease)}
.grp:hover:after{transform:scale(1.08)}
.grp .kick{color:color-mix(in srgb,var(--red) 78%,#fff);font-weight:600}
.grp h2{font-size:clamp(30px,3.2vw,46px);margin:10px 0 16px}
.grp :is(.btns,.wp-block-buttons){margin-top:30px}
.grp ul{list-style:none;margin:0;padding:0;position:relative;z-index:1;align-self:center}
.grp li a{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 0;border-bottom:1px solid var(--line);font-size:18px;font-weight:500;transition:color .2s,padding .3s var(--ease)}
.grp li:first-child a{border-top:1px solid var(--line)}
.grp li a:after{content:"";flex:none;width:9px;height:9px;border-top:2px solid var(--dim);border-right:2px solid var(--dim);transform:rotate(45deg);transition:border-color .2s}
.grp li a:hover{color:var(--red);padding-left:8px}.grp li a:hover:after{border-color:var(--red)}
.grp li small{display:block;font-size:14px;font-weight:400;color:var(--dim);margin-top:2px}

/* service detail sections */
.svc{padding:clamp(70px,8vw,120px) 0;border-top:1px solid var(--line)}
.svc-in{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(36px,6vw,100px);align-items:start}
.svc-side{position:sticky;top:calc(var(--hd) + 40px)}
.svc-side h2{font-size:clamp(30px,3.2vw,46px)}
.svc-side p{color:var(--muted);margin:18px 0 28px;font-size:18px}
.feats{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.feat{padding:30px;border-radius:24px;background:var(--bg-2);transition:background .3s}
.feat:hover{background:var(--bg-hi)}
/* the ring icon is drawn by CSS, so a card is just a heading and a paragraph in the editor */
.feat:before{content:"";display:block;width:34px;height:34px;border-radius:50%;border:3px solid var(--red);margin-bottom:22px;background:radial-gradient(circle,var(--red) 0 4px,transparent 4.5px) center/100% 100% no-repeat;transition:background-size .4s var(--ease)}
.feat:hover:before{background-size:170% 170%}
.feat h3{font-size:20px;margin-bottom:8px}
.feat p{color:var(--muted);font-size:15px}

/* process: five steps on a line of rings */
.steps{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:28px}
.steps:before{content:"";position:absolute;left:0;right:0;top:54px;height:2px;background:linear-gradient(90deg,var(--red),rgba(255,255,255,.18))}
.step .ring{position:relative;width:108px;height:108px;border-radius:50%;display:grid;place-items:center;background:var(--bg);font-size:32px;font-weight:700;border:3px solid var(--red)}
.step:nth-child(even) .ring{border-color:var(--ink)}
.step h3{margin:24px 0 8px}
.step p{color:var(--muted);font-size:15px}
.steps.rv .step{opacity:0;transform:translateY(20px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.steps.in .step{opacity:1;transform:none}
.steps.in .step:nth-child(2){transition-delay:.1s}.steps.in .step:nth-child(3){transition-delay:.2s}.steps.in .step:nth-child(4){transition-delay:.3s}.steps.in .step:nth-child(5){transition-delay:.4s}
.steps.rv{opacity:1;transform:none}

/* related links row */
.more-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.more-grid a{display:block;padding:34px;border-radius:28px;border:1px solid var(--line);transition:border-color .3s,background .3s}
.more-grid a:hover{border-color:color-mix(in srgb,var(--red) 60%,transparent);background:color-mix(in srgb,var(--red) 5%,transparent)}
.more-grid b{display:block;font-size:22px;font-weight:600;letter-spacing:-.02em;margin-bottom:6px}
.more-grid span{color:var(--muted)}

/* work page */
.filters{display:flex;flex-wrap:wrap;margin-bottom:34px}
.wgrid{columns:3 320px;column-gap:22px}
.wcard{break-inside:avoid;margin:0 0 22px;display:block;width:100%;text-align:left;padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer}
.wcard img,.wcard canvas{width:100%;height:auto;border-radius:20px;transition:transform .5s var(--ease),box-shadow .5s;box-shadow:0 24px 50px -24px rgba(0,0,0,.6)}
.wcard:hover img,.wcard:hover canvas{transform:translateY(-6px);box-shadow:0 40px 70px -26px rgba(0,0,0,.7)}
.wcard b{display:block;margin-top:14px;font-weight:600;font-size:17px}
.wcard span{color:var(--muted);font-size:14px}
.wcard[hidden]{display:none}
.wd{display:grid;grid-template-columns:1.3fr 1fr}
.wd-img{background:var(--bg-3);display:grid;place-items:center;padding:28px}
.wd-img img,.wd-img canvas{max-height:70vh;width:auto;max-width:100%;border-radius:12px}
.wd-txt{padding:clamp(28px,3vw,44px)}
.wd-txt .kick{color:color-mix(in srgb,var(--red) 78%,#fff);font-weight:600}
.wd-txt h3{font-size:30px;font-weight:700;letter-spacing:-.03em;margin:8px 0 14px}
.wd-txt p{color:var(--muted)}
.wd-txt ul{margin:18px 0 26px;padding-left:20px;color:var(--muted);line-height:2}

/* about */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,6vw,100px);align-items:center}
.stat-row{display:flex;gap:clamp(30px,5vw,70px);flex-wrap:wrap;margin-top:40px}
.stat-row .n{font-size:clamp(46px,5vw,72px);font-weight:700;letter-spacing:-.04em;line-height:1}
.stat-row p{color:var(--muted);margin-top:8px}
.orb{position:relative;aspect-ratio:1;width:min(100%,520px);margin:auto}
.orb i{position:absolute;border-radius:50%;border:2px solid color-mix(in srgb,var(--blue-hi) 70%,transparent)}
.orb i:nth-child(1){inset:0;border-color:rgba(255,255,255,.18);border-width:1px}
.orb i:nth-child(2){inset:12%;border-width:5px;animation:orb 14s linear infinite;border-top-color:transparent}
.orb i:nth-child(3){inset:26%;animation:orb 9s linear infinite reverse;border-bottom-color:transparent}
.orb svg{position:absolute;inset:36%}
.orb:after{content:"";position:absolute;inset:20%;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--blue) 60%,transparent),transparent 65%)}
@keyframes orb{to{transform:rotate(1turn)}}
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.value{padding:36px;border-radius:28px;background:var(--bg-2)}
.value h3{margin-bottom:10px}.value p{color:var(--muted)}
.value:before{content:"";display:block;width:44px;height:44px;margin-bottom:26px;border-radius:50%;border:3px solid var(--red);border-right-color:transparent;transform:rotate(-45deg)}
.plat{display:flex;flex-wrap:wrap;gap:14px}
.plat span{padding:16px 26px;border-radius:999px;border:1px solid var(--line);font-weight:600;font-size:18px;color:var(--muted)}
.careers{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:40px;align-items:center;padding:clamp(36px,5vw,70px);border-radius:36px;background:var(--bg-2)}

/* contact */
.ct-page{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:clamp(40px,6vw,90px);align-items:start}
.cinfo{display:grid;gap:14px}
.cinfo>div,.cinfo>a{display:block;padding:26px 28px;border-radius:24px;background:var(--bg-2);transition:background .3s}
.cinfo>a:hover{background:var(--bg-hi)}
.cinfo small{display:block;color:var(--dim);font-size:14px;margin-bottom:4px}
.cinfo b{font-size:20px;font-weight:600;letter-spacing:-.01em}

/* legal */
.prose{max-width:760px}
.prose h2{font-size:clamp(24px,2.2vw,30px);margin:48px 0 14px}
.prose p,.prose li{color:var(--muted)}
.prose p+p{margin-top:14px}
.prose ul{padding-left:20px;line-height:1.9}
.prose a{color:var(--ink);border-bottom:1px solid var(--red)}

/* 404 */
.nf{min-height:100vh;display:grid;place-items:center;text-align:center;padding:calc(var(--hd) + 40px) var(--g) 80px}
.nf .big{font-size:clamp(110px,22vw,260px);font-weight:800;letter-spacing:-.06em;line-height:.9;background:linear-gradient(180deg,var(--ink),color-mix(in srgb,var(--ink) 15%,transparent));-webkit-background-clip:text;background-clip:text;color:transparent}
.nf p{color:var(--muted);margin:18px auto 30px;max-width:44ch}
.nf :is(.btns,.wp-block-buttons){justify-content:center}

@media (max-width:1000px){
  .grp,.svc-in,.split,.careers,.ct-page,.wd{grid-template-columns:1fr}
  .svc-side{position:static}
  .steps{grid-template-columns:1fr;gap:0}
  .steps:before{left:53px;right:auto;top:0;bottom:0;width:2px;height:auto;background:linear-gradient(180deg,var(--red),rgba(255,255,255,.18))}
  .step{display:grid;grid-template-columns:108px 1fr;column-gap:24px;padding-bottom:30px}
  .step .ring{grid-row:span 2}.step h3{margin:22px 0 6px}
  .values,.more-grid{grid-template-columns:1fr}
}
@media (max-width:640px){
  .feats{grid-template-columns:1fr}
  .grp{border-radius:28px}
  .step{grid-template-columns:76px 1fr}.step .ring{width:76px;height:76px;font-size:24px}.steps:before{left:37px}
}
@media (prefers-reduced-motion:reduce){.orb i{animation:none}}
/* pieces built from blocks */
.plat{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:14px}
.plat li{padding:16px 26px;border-radius:999px;border:1px solid var(--line);font-weight:600;font-size:18px;color:var(--muted)}
.split-top{align-items:start}
.more-h{font-size:clamp(26px,2.6vw,36px);margin-bottom:26px}
.feats-4{grid-template-columns:repeat(4,1fr)}
.svc-side .wp-block-buttons,.svc-side .btns{margin-top:0}
@media (max-width:1100px){.feats-4{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.feats-4{grid-template-columns:1fr}}
.split .lead{margin-top:20px}.careers .lead{margin-top:16px}
