/* ── Service pages — the home page's layout, as a shared design system ─────
   Used by every /services/ page generated by automation/service_pages/build.py.
   Each section deliberately mirrors a home page section so a visitor moving
   between the two reads one product:

     .sp-hero     = #top .sh-hero   (art background under a transparent header,
                                     pulse badge, marked headline, proof strip,
                                     hf-card enquiry form)
     .sp-glance   = #glance         (dark band of four figures)
     .sp-mq       = technologies marquee
     .sp-sec      = .sv             (split head: title left, lead right)
     .sp-process  = #process        (dark, blue bloom)
     .sp-stories  = .sh-cs          (dark featured card + white cards)
     .sp-fq       = .sh-fq          (dark sticky panel + numbered accordion)
     .sp-contact  = #contact

   Everything is scoped under the .sp root on <main>: style-light.css owns the
   .svc-* vocabulary with ~400 !important declarations and also colours
   `body.light h1..h4` and `body.light strong` at specificity 0,1,2, which a
   single class loses to. `.sp .x` is 0,2,0. Table cells are the one place
   !important is needed (`body.light table td` uses it). */

@font-face{font-family:"Cabinet Grotesk";font-style:normal;font-weight:800;font-display:swap;src:url("/assets/fonts/cabinet-grotesk-800.woff2") format("woff2")}
@font-face{font-family:"Cabinet Grotesk";font-style:normal;font-weight:900;font-display:swap;src:url("/assets/fonts/cabinet-grotesk-900.woff2") format("woff2")}

.sp{
  --ink:#0B0E12; --ink2:#3A424D; --muted:#5A6270; --ground:#FBFBF8; --tint:#F7F6F3; --tint2:#F4F4F0;
  --accent:#0A6E9E; --sky:#7DD3FC; --ok:#12805A; --bad:#B4432B;
  --line:rgba(11,14,18,.08); --line-2:rgba(11,14,18,.16);
  --dark:linear-gradient(160deg,#171C22 0%,#0E1216 100%);
  --pad-y:clamp(72px,9vw,128px); --gut:clamp(18px,4vw,48px);
  --font:'IBM Plex Sans','Segoe UI',Helvetica,Arial,sans-serif;
  --disp:'Cabinet Grotesk','IBM Plex Sans','Segoe UI',Arial,sans-serif;
  --mono:'IBM Plex Mono',Menlo,Consolas,monospace;
  display:block; position:relative; background:var(--ground); color:var(--ink); font-family:var(--font);
  line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:clip;
}
.sp *{box-sizing:border-box;}
.sp [id]{scroll-margin-top:90px;}
.sp .sp-in{position:relative; max-width:1240px; margin:0 auto;}

/* Section shell (.sv) */
.sp .sp-sec{position:relative; overflow:hidden; padding:var(--pad-y) var(--gut); background:var(--ground);}
.sp .sp-sec--tint{background:var(--tint); border-top:1px solid rgba(11,14,18,.07); border-bottom:1px solid rgba(11,14,18,.07);}
.sp .sp-sec--tint::before{content:""; position:absolute; width:760px; height:760px; right:-260px; top:-300px; border-radius:50%; pointer-events:none; background:radial-gradient(circle,rgba(10,110,158,.10),transparent 65%);}
.sp .sp-sec--white{background:#fff; border-top:1px solid rgba(11,14,18,.06);}
.sp .sp-head{display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:clamp(20px,4vw,64px); align-items:end; margin-bottom:clamp(32px,4vw,52px);}
.sp .sp-head--solo{grid-template-columns:minmax(0,1fr); max-width:760px;}
.sp .sp-eyebrow{display:inline-flex; align-items:center; gap:10px; margin:0; font-size:11.5px; font-weight:600; text-transform:uppercase; letter-spacing:.18em; color:var(--accent);}
.sp .sp-eyebrow::before{content:""; width:22px; height:1px; background:currentColor;}
.sp .sp-h2{margin:18px 0 0; font-family:var(--disp); font-weight:800; font-size:clamp(30px,3.6vw,48px); line-height:1.04; letter-spacing:-.02em; color:var(--ink); text-wrap:balance;}
.sp .sp-h2 em{font-style:normal; color:var(--accent);}
.sp .sp-lead{margin:0; font-size:15.8px; line-height:1.7; color:var(--muted); text-wrap:pretty;}
.sp .sp-lead a, .sp .sp-prose a{color:var(--accent); text-decoration:underline; text-underline-offset:3px;}
.sp .sp-dark .sp-h2{color:#F5F8FB;}
.sp .sp-dark .sp-lead{color:#A9B6C4;}
.sp .sp-dark .sp-eyebrow{color:var(--sky);}
.sp .sp-dark strong{color:#F5F8FB;}

/* Buttons (.sh-btn) */
.sp .sp-btn{display:inline-flex; align-items:center; justify-content:center; gap:12px; padding:16px 26px; border-radius:999px; border:0; font:700 16px/1 var(--font); text-decoration:none; cursor:pointer; transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease,color .18s ease;}
.sp .sp-btn:focus-visible{outline:3px solid var(--accent); outline-offset:3px;}
.sp .sp-btn svg{width:18px; height:18px; flex:none;}
.sp .sp-btn--primary{padding-right:8px; background:#0B0E12; color:#fff; box-shadow:0 18px 40px -18px rgba(11,14,18,.85);}
.sp .sp-btn--primary:hover{color:#fff; transform:translateY(-2px); box-shadow:0 24px 48px -18px rgba(10,110,158,.75);}
.sp .sp-btn__arrow{display:grid; place-items:center; width:34px; height:34px; margin:-9px 0; border-radius:50%; background:var(--accent); color:#fff; font-size:17px; transition:transform .18s ease;}
.sp .sp-btn--primary:hover .sp-btn__arrow{transform:translateX(3px);}
.sp .sp-btn--ghost{border:1.5px solid rgba(11,14,18,.18); background:rgba(255,255,255,.85); color:var(--ink);}
.sp .sp-btn--ghost:hover{color:var(--ink); border-color:var(--accent); box-shadow:0 10px 26px -18px rgba(11,14,18,.5);}
.sp .sp-btn--sky{background:var(--sky); color:#0E1216;}
.sp .sp-btn--sky:hover{background:#A5E2FD; color:#0E1216; transform:translateY(-2px);}
.sp .sp-btn--line{border:1px solid rgba(255,255,255,.2); background:transparent; color:#F2F6FA;}
.sp .sp-btn--line:hover{border-color:rgba(125,211,252,.6); color:#fff; background:rgba(255,255,255,.04);}

/* ── Hero (.sh-hero) ─────────────────────────────────────────────────────
   Pulled up under the sticky header by --sp-hdr (measured by
   service-page.js) so the art runs behind the logo; the header is
   transparent while it sits over the hero. */
.sp .sp-hero{position:relative; margin-top:calc(-1 * var(--sp-hdr,72px)); padding:calc(var(--sp-hdr,72px) + clamp(22px,3.6vh,48px)) var(--gut) clamp(52px,6vw,96px); overflow:hidden; background:var(--ground);}
.sp .sp-hero__bg{position:absolute; inset:0; background:url("/assets/images/home-hero-bg.webp") right top / cover no-repeat; pointer-events:none;}
.sp .sp-hero__bloom{position:absolute; inset:0; pointer-events:none; background:radial-gradient(820px 560px at 96% 0%,rgba(14,127,191,.10),transparent 62%),radial-gradient(520px 340px at 80% 46%,rgba(125,211,252,.08),transparent 68%); animation:sp-drift 22s ease-in-out infinite;}
@keyframes sp-drift{0%,100%{transform:translate3d(0,0,0);}50%{transform:translate3d(-2%,1.5%,0);}}
.sp .sp-hero__wrap{position:relative; max-width:1240px; margin:0 auto; display:grid; grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr); grid-template-areas:"intro side" "extra side"; column-gap:clamp(36px,5vw,72px); align-items:start;}
.sp .sp-hero__intro{grid-area:intro; min-width:0;}
.sp .sp-hero__extra{grid-area:extra; min-width:0;}
.sp .sp-hero__side{grid-area:side; position:relative; min-width:0; display:flex; flex-direction:column;}
.sp .sp-crumbs{display:flex; flex-wrap:wrap; gap:6px; margin:0 0 18px; padding:0; list-style:none; font-size:12.8px; font-weight:500; color:var(--muted);}
.sp .sp-crumbs li+li::before{content:"/"; margin-right:6px; color:#A3ABB5;}
.sp .sp-crumbs a{color:var(--muted); text-decoration:none;}
.sp .sp-crumbs a:hover{color:var(--accent);}
.sp .sp-badge{display:inline-flex; align-items:center; gap:10px; padding:8px 16px 8px 12px; border-radius:999px; border:1px solid rgba(10,110,158,.28); background:rgba(255,255,255,.8); box-shadow:0 1px 2px rgba(11,14,18,.05),0 12px 30px -22px rgba(10,110,158,.7); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);}
.sp .sp-badge__dot{position:relative; display:block; flex:none; width:7px; height:7px; border-radius:50%; background:var(--accent);}
.sp .sp-badge__dot::after{content:""; position:absolute; inset:0; border-radius:50%; background:var(--accent); animation:sp-pulse 2.4s ease-out infinite;}
@keyframes sp-pulse{0%{transform:scale(1); opacity:.7;}100%{transform:scale(3.2); opacity:0;}}
.sp .sp-badge__txt{font-size:11.8px; font-weight:700; text-transform:uppercase; letter-spacing:.14em; color:var(--accent);}
.sp .sp-hero__title{margin:24px 0 0; font-family:var(--disp); font-weight:800; font-size:clamp(38px,min(5.1vw,9vh),72px); line-height:.98; letter-spacing:-.028em; color:var(--ink); text-wrap:balance;}
.sp .sp-hero__title em{position:relative; display:inline-block; font-style:normal; color:var(--accent); z-index:0;}
.sp .sp-hero__title em::after{content:""; position:absolute; left:-.04em; right:-.04em; bottom:.06em; height:.26em; z-index:-1; background:linear-gradient(96deg,rgba(125,211,252,.55),rgba(94,124,226,.32)); border-radius:.08em; transform:skewX(-8deg);}
.sp .sp-hero__lead{margin:24px 0 0; max-width:580px; font-size:clamp(16.5px,1.35vw,19px); line-height:1.6; font-weight:500; color:#3E4652; text-wrap:pretty;}
.sp .sp-ticks{display:grid; gap:11px; margin:26px 0 0; padding:0; list-style:none;}
.sp .sp-ticks li{display:flex; gap:11px; align-items:flex-start; font-size:15.6px; font-weight:500; line-height:1.5; color:var(--ink2);}
.sp .sp-ticks li::before{content:""; flex:none; width:22px; height:22px; border-radius:50%; background:rgba(18,128,90,.12) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%2312805A' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8.5l3.2 3.2L13 4.5'/%3E%3C/svg%3E") center/12px no-repeat;}
.sp .sp-ticks strong{color:var(--ink);}
.sp .sp-hero__ctas{margin-top:32px; display:flex; flex-wrap:wrap; gap:12px;}
.sp .sp-proof{margin-top:40px; display:grid; grid-template-columns:repeat(3,auto); justify-content:start; border-top:1px solid rgba(11,14,18,.1); padding-top:26px;}
.sp .sp-proof__item{display:block; padding:0 clamp(18px,3vw,40px); border-left:1px solid rgba(11,14,18,.1); text-decoration:none;}
.sp .sp-proof__item:first-child{padding-left:0; border-left:0;}
.sp .sp-proof__row{display:flex; align-items:baseline; gap:8px;}
.sp .sp-proof__num{font-family:var(--disp); font-weight:900; font-size:clamp(30px,3vw,44px); line-height:1; letter-spacing:-.02em; color:var(--ink); font-variant-numeric:tabular-nums;}
.sp .sp-proof__num span{color:var(--accent);}
.sp .sp-proof__stars{font-size:14px; letter-spacing:-1px; color:#E8A33D;}
.sp .sp-proof__lbl{margin-top:8px; font-size:11.4px; font-weight:700; text-transform:uppercase; letter-spacing:.13em; color:var(--muted);}

/* Enquiry card (.hf-card) */
.sp .sp-form__glow{position:absolute; inset:-10% -8% -12% -8%; border-radius:50%; background:radial-gradient(circle,rgba(14,127,191,.18),transparent 68%); filter:blur(30px); pointer-events:none;}
.sp .sp-formwrap{position:relative; display:flex; flex-direction:column; flex:1 1 auto;}
.sp .sp-form{position:relative; flex:1 1 auto; display:flex; flex-direction:column; padding:clamp(20px,2.4vw,32px) clamp(18px,2.4vw,32px) clamp(18px,2vw,24px); border:1px solid rgba(11,14,18,.1); border-top:4px solid var(--accent); border-radius:22px; background:#fff; box-shadow:0 1px 2px rgba(11,14,18,.04),0 48px 100px -56px rgba(11,14,18,.6); color:var(--ink);}
.sp .sp-form__head{display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px 12px;}
.sp .sp-form__kicker{display:inline-flex; align-items:center; gap:10px; font-family:var(--mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--accent);}
.sp .sp-form__kicker::before{content:""; width:7px; height:7px; border-radius:50%; background:var(--accent);}
.sp .sp-form__fast{display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:600; color:var(--ok);}
.sp .sp-form__fast::before{content:""; width:6px; height:6px; border-radius:50%; background:var(--ok); box-shadow:0 0 0 3px rgba(18,128,90,.16);}
.sp .sp-form__title{margin:10px 0 2px; font-family:var(--disp); font-size:clamp(23px,2.2vw,31px); line-height:1.08; letter-spacing:-.02em; font-weight:800; color:var(--ink);}
.sp .sp-form__sub{margin:4px 0 18px; font-size:14.2px; line-height:1.5; color:var(--muted);}
.sp .sp-form__grid{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:14px 14px; align-items:end;}
.sp .sp-form__full{grid-column:1 / -1;}
.sp .sp-form__desc{display:flex; flex-direction:column; flex:1 1 auto;}
.sp .sp-l{display:block; font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:#656D79;}
.sp .sp-l b{color:var(--bad); font-weight:500;}
.sp .sp-i{display:block; width:100%; min-width:0; margin-top:6px; padding:11px 13px; border:1px solid var(--line-2); border-radius:11px; background:#FCFCFA; font-family:inherit; font-weight:500; font-size:16px; line-height:1.35; color:var(--ink); -webkit-appearance:none; appearance:none; box-shadow:none;}
.sp select.sp-i{padding-right:34px; background:#FCFCFA url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%235A6270' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M2.5 4.5L6 8l3.5-3.5'/%3E%3C/svg%3E") right 12px center/11px no-repeat;}
.sp textarea.sp-i{resize:vertical; min-height:92px;}
.sp .sp-i::placeholder{color:#8B94A0;}
.sp .sp-i:focus{outline:2px solid var(--accent); outline-offset:1px; border-color:transparent; background:#fff;}
.sp .sp-i[aria-invalid="true"]{border-color:var(--bad); background:#FFF8F6;}
.sp .sp-cap{display:flex; gap:6px;}
.sp .sp-cap__new{flex:none; width:46px; margin-top:6px; border:1px solid var(--line-2); border-radius:11px; background:#fff; font-family:inherit; font-size:18px; line-height:1; color:var(--ink2); cursor:pointer;}
.sp .sp-cap__new:hover{border-color:var(--accent); color:var(--accent);}
.sp .sp-cap__q{text-transform:none; letter-spacing:0; color:var(--accent);}
.sp .sp-form__submit{display:flex; align-items:center; justify-content:center; gap:10px; width:100%; margin-top:18px; padding:17px 20px; border:0; border-radius:999px; background:#0B0E12; color:#fff; font:700 16px/1 var(--font); cursor:pointer; transition:background .18s ease;}
.sp .sp-form__submit svg{width:18px; height:18px;}
.sp .sp-form__submit:hover{background:var(--accent);}
.sp .sp-form__submit:disabled{opacity:.7; cursor:progress;}
/* Why a submit was refused, directly above the button. It used to be a small
   note under the button, and the script also scrolled up to the first empty
   field, so on phones the only feedback ended up off-screen and the button
   looked dead. */
.sp .sp-form__err{margin:16px 0 -4px; padding:11px 14px; border:1px solid rgba(180,67,43,.35); border-left:4px solid var(--bad); border-radius:10px; background:#FFF4F1; color:#8A2E1B; font-size:14px; font-weight:600; line-height:1.45; text-align:left;}
.sp .sp-form__err[hidden]{display:none;}
.sp .sp-form__err a{color:inherit; text-decoration:underline;}
.sp .sp-form__submit.is-shake{animation:sp-shake .4s ease;}
@keyframes sp-shake{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
@media (prefers-reduced-motion:reduce){.sp .sp-form__submit.is-shake{animation:none;}}
.sp .sp-form__note{min-height:18px; margin:9px 0 0; font-size:12.4px; line-height:1.45; color:var(--muted); text-align:center;}
.sp .sp-form__note.is-bad{color:var(--bad);}
.sp .sp-form__bottom{margin-top:auto; padding-top:12px;}
.sp .sp-form__trust{display:flex; flex-wrap:wrap; justify-content:center; gap:6px 18px; margin:0; padding:14px 0 0; list-style:none; border-top:1px solid rgba(11,14,18,.08); font-size:12.8px; font-weight:600; color:var(--ink2);}
.sp .sp-form__trust li::before{content:"\2713"; margin-right:6px; color:var(--ok); font-weight:800;}
.sp .sp-form__alt{margin:10px 0 0; text-align:center; font-size:13.4px; color:var(--muted);}
.sp .sp-form__alt a{font-weight:700; color:var(--accent); text-decoration:none;}
.sp .sp-form__alt a:hover{color:var(--ink); text-decoration:underline;}
.sp .sp-hp{position:absolute !important; left:-9999px; width:1px; height:1px; opacity:0;}
.sp .sp-done{position:relative; padding:clamp(28px,3vw,38px) clamp(22px,2.6vw,32px); text-align:center; background:#fff; border:1px solid rgba(11,14,18,.1); border-radius:24px; box-shadow:0 1px 2px rgba(11,14,18,.04),0 40px 90px -60px rgba(11,14,18,.5); color:var(--ink);}
.sp .sp-done__ic{display:grid; place-items:center; width:56px; height:56px; margin:0 auto 16px; border-radius:50%; background:#E7F7EE; color:var(--ok);}
.sp .sp-done__h{margin:0; font-size:20px; font-weight:700; letter-spacing:-.01em; color:var(--ink);}
.sp .sp-done p{margin:8px 0 0; font-size:14.5px; line-height:1.6; color:var(--muted);}
.sp .sp-done__box{margin:22px 0 0; padding:18px 16px; border-radius:16px; background:#F4F7FA; border:1px solid rgba(11,14,18,.07);}
.sp .sp-done__box strong{display:block; font-size:15px; color:var(--ink);}
.sp .sp-done__box .sp-btn{margin-top:14px; padding:13px 22px; font-size:14.5px;}
.sp .sp-done__again{margin:16px 0 0; padding:8px 4px; border:0; background:transparent; font:13px var(--font); color:var(--muted); text-decoration:underline; cursor:pointer;}

/* ── Glance band (#glance) ──────────────────────────────────────────────── */
.sp .sp-glance{position:relative; padding:clamp(44px,5.5vw,72px) var(--gut); background:var(--dark); overflow:hidden;}
.sp .sp-glance::before{content:""; position:absolute; top:-60%; left:50%; width:560px; height:560px; margin-left:-280px; border-radius:50%; background:radial-gradient(circle,rgba(14,127,191,.22),transparent 66%); pointer-events:none;}
.sp .sp-glance__row{position:relative; max-width:1100px; margin:0 auto; display:flex; flex-wrap:wrap; gap:28px clamp(20px,4vw,56px); justify-content:center;}
.sp .sp-glance__i{flex:1 1 190px; text-align:center;}
.sp .sp-glance__n{margin:0; font-family:var(--disp); font-weight:800; font-size:clamp(28px,2.8vw,38px); line-height:1.1; letter-spacing:-.02em; color:#F2F6FA; font-variant-numeric:tabular-nums;}
.sp .sp-glance__l{margin:8px 0 0; font-size:13.5px; line-height:1.5; color:#A9B6C4;}

/* ── Technologies marquee ───────────────────────────────────────────────── */
.sp .sp-mq{padding:26px 0; border-top:1px solid rgba(11,14,18,.07); border-bottom:1px solid rgba(11,14,18,.07); background:var(--tint2); overflow:hidden;}
.sp .sp-mq__label{margin:0 var(--gut) 16px; font-family:var(--mono); font-size:11px; color:#656D79; letter-spacing:.08em; text-transform:uppercase;}
.sp .sp-mq__track{display:flex; width:max-content; gap:12px; animation:sp-marquee 46s linear infinite;}
.sp .sp-mq:hover .sp-mq__track{animation-play-state:paused;}
.sp .sp-mq__set{display:flex; gap:12px; margin:0; padding:0 0 0 12px; list-style:none;}
.sp .sp-mq__set li{padding:8px 14px; border:1px solid rgba(11,14,18,.1); border-radius:8px; background:#fff; font-family:var(--mono); font-size:12.5px; color:var(--muted); white-space:nowrap;}
@keyframes sp-marquee{from{transform:translate3d(0,0,0);}to{transform:translate3d(-50%,0,0);}}

/* ── Direct answer ──────────────────────────────────────────────────────── */
.sp .sp-answer{display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:clamp(28px,4.5vw,72px); align-items:start;}
.sp .sp-prose{margin-top:22px;}
.sp .sp-prose p{margin:0 0 16px; font-size:16.2px; line-height:1.75; color:#4A525E;}
.sp .sp-prose p:first-child{font-size:clamp(17.5px,1.4vw,20px); line-height:1.6; font-weight:500; color:var(--ink);}
.sp .sp-prose strong{color:var(--ink);}
.sp .sp-byline{display:flex; align-items:center; gap:12px; margin-top:24px; padding-top:18px; border-top:1px solid var(--line); font-size:13px; line-height:1.45; color:var(--muted);}
.sp .sp-byline__av{display:grid; place-items:center; flex:none; width:42px; height:42px; border-radius:50%; background:#0B0E12; color:#fff; font:700 14px var(--font);}
.sp .sp-byline strong{display:block; font-size:14px; color:var(--ink);}
.sp .sp-facts{position:sticky; top:110px; margin:0; padding:clamp(24px,2.6vw,32px); border-radius:24px; background:var(--dark); color:#F2F5F8; box-shadow:0 40px 80px -50px rgba(11,14,18,.8); overflow:hidden;}
.sp .sp-facts::before{content:""; position:absolute; top:-40%; right:-30%; width:380px; height:380px; border-radius:50%; background:radial-gradient(circle,rgba(14,127,191,.28),transparent 66%); pointer-events:none;}
.sp .sp-facts__h{position:relative; display:inline-flex; align-items:center; gap:14px; margin:0 0 16px; font-family:var(--mono); font-size:11.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--sky);}
.sp .sp-facts__h::after{content:""; width:40px; height:1px; background:rgba(125,211,252,.5);}
.sp .sp-facts dl{position:relative; margin:0;}
.sp .sp-facts dl > div{display:grid; grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr); gap:14px; padding:13px 0; border-top:1px solid rgba(255,255,255,.09);}
.sp .sp-facts dt{font-size:13px; font-weight:600; color:#93A3B4;}
.sp .sp-facts dd{margin:0; font-size:14.4px; font-weight:600; line-height:1.5; color:#F2F6FA;}
.sp .sp-toc{position:relative; display:flex; flex-wrap:wrap; gap:7px; margin:18px 0 0; padding:18px 0 0; list-style:none; border-top:1px solid rgba(255,255,255,.09);}
.sp .sp-toc a{display:inline-flex; padding:7px 12px; border-radius:999px; border:1px solid rgba(255,255,255,.14); font-size:12.8px; font-weight:600; color:#DDE3E9; text-decoration:none; transition:background .18s ease,color .18s ease;}
.sp .sp-toc a:hover{background:rgba(255,255,255,.08); color:#fff;}
.sp .sp-toc a.is-quote{background:var(--sky); border-color:var(--sky); color:#0B0E12;}

/* ── Before / after, fit ────────────────────────────────────────────────── */
.sp .sp-ba{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px;}
.sp .sp-panel{padding:clamp(24px,2.8vw,36px); border-radius:24px; border:1px solid rgba(11,14,18,.08); background:#fff;}
.sp .sp-panel__h{display:flex; align-items:center; gap:12px; margin:0 0 20px; font-family:var(--disp); font-weight:800; font-size:clamp(21px,1.9vw,25px); letter-spacing:-.015em; color:var(--ink);}
.sp .sp-panel__h::before{content:""; flex:none; width:12px; height:12px; border-radius:50%;}
.sp .sp-panel--bad .sp-panel__h::before{background:#D96A4E; box-shadow:0 0 0 5px rgba(217,106,78,.16);}
.sp .sp-panel--good{background:#0B0E12; border-color:#0B0E12; box-shadow:0 40px 80px -50px rgba(11,14,18,.75);}
.sp .sp-panel--good .sp-panel__h{color:#F5F8FB;}
.sp .sp-panel--good .sp-panel__h::before{background:#34D399; box-shadow:0 0 0 5px rgba(52,211,153,.18);}
.sp .sp-panel ul{display:grid; gap:14px; margin:0; padding:0; list-style:none;}
.sp .sp-panel li{display:flex; gap:12px; font-size:15.4px; line-height:1.58; color:#4A525E;}
.sp .sp-panel--good li{color:#C9D3DD;}
.sp .sp-panel li::before{content:""; flex:none; width:22px; height:22px; margin-top:0; border-radius:50%; background-position:center; background-repeat:no-repeat; background-size:11px;}
.sp .sp-panel--good li::before{background-color:rgba(52,211,153,.16); background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%2334D399' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 8.5l3.5 3.5 7.5-8'/%3E%3C/svg%3E");}
.sp .sp-panel--bad li::before{background-color:rgba(180,67,43,.1); background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23B4432B' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M4 4l8 8M12 4l-8 8'/%3E%3C/svg%3E");}

/* ── Cards (.sv-card) ───────────────────────────────────────────────────── */
.sp .sp-cards{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px;}
.sp .sp-card{position:relative; display:flex; flex-direction:column; min-width:0; padding:26px 24px 24px; border-radius:22px; background:#fff; border:1px solid rgba(11,14,18,.08); transition:transform .25s cubic-bezier(.22,.61,.36,1),box-shadow .25s ease,border-color .25s ease;}
.sp .sp-card:hover{transform:translateY(-4px); border-color:rgba(10,110,158,.3); box-shadow:0 30px 60px -40px rgba(11,14,18,.5);}
.sp .sp-card__top{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:18px;}
.sp .sp-card__ic{display:grid; place-items:center; width:48px; height:48px; border-radius:14px; background:#F2F5F8; font-size:23px; line-height:1;}
.sp .sp-card__num{font-family:var(--mono); font-size:11.5px; letter-spacing:.08em; color:#8A929C;}
.sp .sp-card__t{margin:0 0 10px; font-family:var(--disp); font-weight:800; font-size:21px; line-height:1.18; letter-spacing:-.012em; color:var(--ink);}
.sp .sp-card__p{margin:0; font-size:15px; line-height:1.66; color:var(--muted);}
/* Linked cards (the industries hub): the title link is stretched over the
   whole card so the card is one click target, and "Explore" says so. */
.sp .sp-card__a{color:inherit; text-decoration:none;}
.sp .sp-card__a::after{content:""; position:absolute; inset:0; border-radius:inherit;}
.sp .sp-card__a:focus-visible{outline:none;}
.sp .sp-card:has(.sp-card__a:focus-visible){outline:3px solid var(--accent); outline-offset:3px;}
.sp .sp-card__more{margin-top:auto; padding-top:18px; font-size:14px; font-weight:700; color:var(--accent);}
.sp .sp-card:hover .sp-card__more{text-decoration:underline; text-underline-offset:3px;}
.sp .sp-card__tag{display:inline-block; align-self:flex-start; margin:0 0 14px; padding:6px 12px; border-radius:999px; background:#F2F3F5; font-family:var(--mono); font-size:10.8px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink2);}
.sp .sp-card__r{display:flex; gap:10px; align-items:flex-start; margin:18px 0 0; padding-top:16px; border-top:1px solid rgba(11,14,18,.08); font-size:14px; font-weight:700; line-height:1.45; color:var(--ok);}
.sp .sp-card__r::before{content:"\2197"; flex:none; display:grid; place-items:center; width:22px; height:22px; border-radius:50%; background:rgba(18,128,90,.12); font-size:12px;}

/* ── CTA band ───────────────────────────────────────────────────────────── */
.sp .sp-band{position:relative; padding:0 var(--gut); background:var(--ground);}
.sp .sp-sec--tint + .sp-band{background:var(--tint);}
.sp .sp-band__box{position:relative; max-width:1240px; margin:0 auto; padding:clamp(30px,4vw,52px) clamp(24px,4vw,56px); border-radius:28px; background:#0B0E12; overflow:hidden; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:24px 40px; box-shadow:0 0 0 2px rgba(42,165,245,.35),0 50px 90px -50px rgba(11,14,18,.8);}
.sp .sp-band__box::before{content:""; position:absolute; top:-80%; right:-8%; width:600px; height:600px; border-radius:50%; background:radial-gradient(circle,rgba(14,127,191,.3),transparent 64%); pointer-events:none;}
.sp .sp-band__t{position:relative; margin:0; max-width:26ch; font-family:var(--disp); font-weight:800; font-size:clamp(24px,2.7vw,36px); line-height:1.08; letter-spacing:-.02em; color:#F5F8FB;}
.sp .sp-band__p{position:relative; margin:10px 0 0; max-width:56ch; font-size:15.5px; line-height:1.6; color:#A9B6C4;}
.sp .sp-band__ctas{position:relative; display:flex; flex-wrap:wrap; gap:10px;}

/* ── Process (#process) ─────────────────────────────────────────────────── */
.sp .sp-process{position:relative; padding:var(--pad-y) var(--gut); background:#0B0E12; overflow:hidden;}
.sp .sp-process::before{content:""; position:absolute; top:6%; left:50%; width:760px; height:760px; margin-left:-380px; border-radius:50%; background:radial-gradient(circle,rgba(14,127,191,.18),transparent 68%); pointer-events:none;}
.sp .sp-steps{position:relative; display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr)); gap:14px; margin:0; padding:0; list-style:none; counter-reset:sp;}
.sp .sp-step{position:relative; display:flex; flex-direction:column; padding:clamp(22px,2.4vw,30px); border:1px solid rgba(255,255,255,.1); border-radius:20px; background:rgba(255,255,255,.035); box-shadow:0 40px 80px -50px rgba(0,0,0,.85); counter-increment:sp; transition:border-color .25s ease,background .25s ease;}
.sp .sp-step:hover{border-color:rgba(125,211,252,.4); background:rgba(125,211,252,.05);}
.sp .sp-step__top{display:flex; align-items:center; gap:12px;}
.sp .sp-step__top::before{content:"STEP " counter(sp,decimal-leading-zero); font-family:var(--mono); font-size:12px; letter-spacing:.16em; color:var(--sky); white-space:nowrap;}
.sp .sp-step__top::after{content:""; flex:1; height:3px; border-radius:3px; background:linear-gradient(90deg,#7DD3FC,rgba(125,211,252,.08));}
.sp .sp-step__t{margin:16px 0 0; font-family:var(--disp); font-weight:800; font-size:clamp(20px,1.8vw,24px); line-height:1.15; letter-spacing:-.015em; color:#F5F8FB;}
.sp .sp-step__p{margin:10px 0 0; font-size:15px; line-height:1.64; color:#A9B6C4;}
.sp .sp-step__d{align-self:flex-start; margin-top:18px; padding:7px 13px; border:1px solid rgba(255,255,255,.12); border-radius:999px; font-size:12.5px; color:#D6DEE7;}
.sp .sp-process__foot{position:relative; margin:22px 0 0; font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:#7E8B99;}

/* ── Comparison table ───────────────────────────────────────────────────── */
.sp .sp-table-wrap{overflow-x:auto; -webkit-overflow-scrolling:touch; border:1px solid rgba(11,14,18,.1); border-radius:22px; background:#fff; box-shadow:0 30px 60px -48px rgba(11,14,18,.45);}
.sp .sp-table-wrap:focus-visible{outline:3px solid var(--accent); outline-offset:3px;}
.sp .sp-table{width:100%; min-width:680px; border-collapse:collapse; font-size:14.6px;}
.sp .sp-table th{padding:16px 18px; text-align:left; vertical-align:bottom; background:#F4F4F0; font-family:var(--mono); font-size:11px; font-weight:500; letter-spacing:.1em; text-transform:uppercase; color:var(--ink2); border-bottom:1px solid rgba(11,14,18,.1);}
.sp .sp-table th.is-us{background:#0B0E12; color:var(--sky);}
.sp .sp-table td{padding:15px 18px; vertical-align:top; line-height:1.5; color:#4A525E !important; border-bottom:1px solid rgba(11,14,18,.07) !important;}
.sp .sp-table tr:last-child td{border-bottom:0 !important;}
.sp .sp-table td:first-child{font-weight:700; color:var(--ink) !important; white-space:nowrap;}
.sp .sp-table td.is-us{background:rgba(10,110,158,.06); font-weight:600; color:var(--ink) !important;}

/* ── Pricing ────────────────────────────────────────────────────────────── */
.sp .sp-prices{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr)); gap:14px; align-items:stretch;}
.sp .sp-price{position:relative; display:flex; flex-direction:column; padding:28px 24px 24px; background:#fff; border:1px solid rgba(11,14,18,.08); border-radius:22px; transition:transform .25s ease,box-shadow .25s ease;}
.sp .sp-price:hover{transform:translateY(-4px); box-shadow:0 30px 60px -40px rgba(11,14,18,.5);}
.sp .sp-price--hot{background:#0B0E12; border-color:#0B0E12; box-shadow:0 0 0 2px rgba(42,165,245,.55),0 50px 90px -50px rgba(11,14,18,.8);}
.sp .sp-price__tag{align-self:flex-start; margin:0 0 16px; padding:6px 12px; border-radius:999px; background:#F2F3F5; font-family:var(--mono); font-size:10.8px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink2);}
.sp .sp-price--hot .sp-price__tag{background:var(--sky); color:#0B0E12;}
.sp .sp-price__name{margin:0; font-family:var(--disp); font-weight:800; font-size:21px; letter-spacing:-.012em; color:var(--ink);}
.sp .sp-price__fig{margin:14px 0 0; font-family:var(--disp); font-weight:900; font-size:clamp(28px,2.4vw,34px); line-height:1.05; letter-spacing:-.02em; color:var(--ink);}
.sp .sp-price__time{margin:6px 0 0; font-family:var(--mono); font-size:12px; color:var(--muted);}
.sp .sp-price__p{margin:16px 0 22px; padding-top:16px; border-top:1px solid rgba(11,14,18,.08); font-size:14.6px; line-height:1.64; color:var(--muted);}
.sp .sp-price--hot .sp-price__name, .sp .sp-price--hot .sp-price__fig{color:#F5F8FB;}
.sp .sp-price--hot .sp-price__time{color:#93A3B4;}
.sp .sp-price--hot .sp-price__p{color:#A9B6C4; border-top-color:rgba(255,255,255,.1);}
.sp .sp-price__cta{margin-top:auto; align-self:flex-start; display:inline-flex; align-items:center; gap:8px; font-size:14.5px; font-weight:700; color:var(--accent); text-decoration:none;}
.sp .sp-price--hot .sp-price__cta{color:var(--sky);}
.sp .sp-price__cta:hover{text-decoration:underline;}
.sp .sp-note{margin:22px 0 0; font-size:13.6px; line-height:1.6; color:var(--muted);}

/* ── Client stories (.sh-cs) ────────────────────────────────────────────── */
.sp .sp-stories{position:relative; padding:clamp(80px,9vw,130px) var(--gut); background:#F8F8F5; overflow:hidden; border-top:1px solid rgba(11,14,18,.06); border-bottom:1px solid rgba(11,14,18,.06);}
.sp .sp-stories__wrap{position:relative; max-width:1280px; margin:0 auto; display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr); column-gap:clamp(32px,5vw,80px); align-items:center;}
.sp .sp-stories__eyebrow{display:inline-flex; align-items:center; gap:16px; margin:0; font-family:var(--mono); font-size:12.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--ink2);}
.sp .sp-stories__eyebrow::after{content:""; width:68px; height:1px; background:rgba(11,14,18,.35);}
.sp .sp-stories__title{margin:22px 0 0; font-family:var(--disp); font-weight:800; font-size:clamp(36px,4.4vw,64px); line-height:.98; letter-spacing:-.034em; color:var(--ink); text-wrap:balance;}
.sp .sp-stories__lead{margin:22px 0 0; max-width:470px; font-size:clamp(16px,1.3vw,18px); line-height:1.6; color:var(--muted);}
.sp .sp-stats{margin-top:32px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid rgba(11,14,18,.12); padding-top:26px;}
.sp .sp-stat{padding:0 clamp(12px,1.8vw,24px); border-left:1px solid rgba(11,14,18,.12);}
.sp .sp-stat:first-child{padding-left:0; border-left:0;}
.sp .sp-stat__n{margin:0; white-space:nowrap; font-family:var(--disp); font-weight:900; font-size:clamp(22px,2vw,30px); line-height:1; letter-spacing:-.02em; color:var(--ink);}
.sp .sp-stat__l{margin:10px 0 0; font-size:13px; line-height:1.45; color:var(--muted);}
.sp .sp-ratings{margin-top:28px; padding-top:24px; border-top:1px solid rgba(11,14,18,.12); display:grid; grid-template-columns:repeat(3,minmax(0,1fr));}
.sp .sp-rating{display:flex; flex-direction:column; gap:8px; padding:0 clamp(12px,1.8vw,24px); border-left:1px solid rgba(11,14,18,.12); color:var(--ink); text-decoration:none;}
.sp .sp-rating:first-child{padding-left:0; border-left:0;}
.sp .sp-rating b{font-size:18px; font-weight:700; transition:color .18s ease;}
.sp .sp-rating b span{color:#F5A524; letter-spacing:.04em; font-size:15px; margin-left:6px;}
.sp .sp-rating:hover b{color:var(--accent);}
.sp .sp-rating small{font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted);}
.sp .sp-reviews{display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); grid-template-rows:auto 30px auto;}
.sp .sp-review{position:relative; margin:0; display:flex; flex-direction:column; border-radius:28px;}
.sp .sp-review--dark{grid-column:1 / 10; grid-row:1 / 3; padding:clamp(26px,2.6vw,38px) clamp(26px,2.6vw,38px) clamp(40px,3.6vw,56px); background:#121518; color:#F2F5F8; box-shadow:0 0 0 2px rgba(42,165,245,.55),0 50px 90px -50px rgba(11,14,18,.8); z-index:1;}
.sp .sp-review--w1, .sp .sp-review--w2{padding:clamp(20px,2vw,26px) clamp(22px,2.2vw,30px); background:#fff; color:var(--ink); box-shadow:0 1px 2px rgba(11,14,18,.04),0 30px 70px -40px rgba(11,14,18,.35); z-index:2;}
.sp .sp-review--w1{grid-column:7 / 13; grid-row:2 / 4; margin-top:-6px;}
.sp .sp-review--w2{grid-column:1 / 7; grid-row:3 / 4; margin:22px 16px 0 0;}
.sp .sp-review__head{display:flex; align-items:center; justify-content:space-between; gap:10px;}
.sp .sp-review__pill{display:inline-flex; align-items:center; gap:9px; padding:7px 13px; border-radius:999px; font-family:var(--mono); font-size:11.5px; font-weight:500; letter-spacing:.14em; text-transform:uppercase; background:#F2F3F5; color:var(--ink);}
.sp .sp-review--dark .sp-review__pill{background:transparent; border:1px solid rgba(255,255,255,.2); color:#F2F5F8;}
.sp .sp-review__pill i{width:9px; height:9px; border-radius:50%;}
.sp .sp-review__ver{font-family:var(--mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:#6B7380; white-space:nowrap;}
.sp .sp-review--dark .sp-review__ver{color:#C5CCD4;}
.sp .sp-review__q{display:block; width:34px; height:28px; margin-top:18px; fill:#C3C8CE;}
.sp .sp-review--dark .sp-review__q{width:clamp(50px,4.4vw,70px); height:auto; fill:#5BC0F8;}
.sp .sp-review blockquote{margin:14px 0 0; font-size:15.4px; line-height:1.6; color:#3A424D;}
.sp .sp-review--dark blockquote{font-family:var(--disp); font-weight:800; font-size:clamp(20px,1.9vw,27px); line-height:1.3; letter-spacing:-.01em; color:#F5F8FB;}
.sp .sp-review figcaption{margin-top:18px; padding-top:14px; border-top:1px solid rgba(11,14,18,.1); font-size:13px; color:var(--muted);}
.sp .sp-review--dark figcaption{border-top-color:rgba(255,255,255,.14); color:#A9B6C4;}
.sp .sp-review figcaption strong{display:block; font-size:14.6px; color:var(--ink);}
.sp .sp-review--dark figcaption strong{color:#fff;}

/* ── Stack ──────────────────────────────────────────────────────────────── */
.sp .sp-stack{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr)); gap:14px;}
.sp .sp-stack__g{padding:24px; background:#fff; border:1px solid rgba(11,14,18,.08); border-radius:22px;}
.sp .sp-stack__h{display:flex; align-items:center; gap:12px; margin:0 0 14px; font-family:var(--mono); font-size:11.5px; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--accent);}
.sp .sp-stack__h::after{content:""; flex:1; height:1px; background:rgba(11,14,18,.1);}
.sp .sp-chips{display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0; list-style:none;}
.sp .sp-chips li{padding:8px 13px; border:1px solid rgba(11,14,18,.1); border-radius:8px; background:#FBFBF8; font-family:var(--mono); font-size:12.5px; color:var(--muted);}

/* ── Industries / regions ───────────────────────────────────────────────── */
.sp .sp-minis{display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr)); gap:12px;}
.sp .sp-mini{display:flex; gap:14px; align-items:flex-start; padding:20px; background:#fff; border:1px solid rgba(11,14,18,.08); border-radius:18px; text-decoration:none; transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease;}
.sp a.sp-mini:hover{border-color:rgba(10,110,158,.35); transform:translateY(-3px); box-shadow:0 24px 50px -36px rgba(11,14,18,.45);}
.sp .sp-mini__ic{display:grid; place-items:center; flex:none; width:44px; height:44px; border-radius:12px; background:#F2F5F8; font-size:21px; line-height:1;}
.sp .sp-mini__t{display:flex; align-items:center; gap:8px; margin:2px 0 4px; font-size:15.6px; font-weight:700; color:var(--ink);}
.sp a.sp-mini .sp-mini__t::after{content:"\2192"; color:var(--accent); transition:transform .2s ease;}
.sp a.sp-mini:hover .sp-mini__t::after{transform:translateX(3px);}
.sp .sp-mini__p{display:block; margin:0; font-size:13.8px; line-height:1.55; color:var(--muted);}
.sp .sp-regions{margin-top:clamp(36px,4vw,52px);}
.sp .sp-regions__h{display:flex; align-items:center; gap:14px; margin:0 0 16px; font-family:var(--mono); font-size:12px; font-weight:500; letter-spacing:.18em; text-transform:uppercase; color:var(--ink2);}
.sp .sp-regions__h::after{content:""; flex:1; height:1px; background:rgba(11,14,18,.12);}

/* ── FAQ (.sh-fq) ───────────────────────────────────────────────────────── */
.sp .sp-fq{position:relative; padding:clamp(80px,9vw,128px) var(--gut); background:#fff; border-top:1px solid rgba(11,14,18,.06);}
.sp .sp-fq__wrap{max-width:1240px; margin:0 auto; display:grid; grid-template-columns:minmax(0,.86fr) minmax(0,1.3fr); gap:clamp(28px,4.5vw,72px); align-items:start;}
.sp .sp-fq__panel{position:sticky; top:110px; overflow:hidden; padding:clamp(28px,3vw,42px); border-radius:28px; background:var(--dark); color:#F2F5F8; box-shadow:0 50px 90px -50px rgba(11,14,18,.8);}
.sp .sp-fq__panel::before{content:""; position:absolute; top:-30%; right:-30%; width:420px; height:420px; border-radius:50%; background:radial-gradient(circle,rgba(14,127,191,.3),transparent 66%); pointer-events:none;}
.sp .sp-fq__eyebrow{position:relative; display:inline-flex; align-items:center; gap:14px; margin:0; font-family:var(--mono); font-size:12px; letter-spacing:.22em; text-transform:uppercase; color:var(--sky);}
.sp .sp-fq__eyebrow::after{content:""; width:48px; height:1px; background:rgba(125,211,252,.5);}
.sp .sp-fq__title{position:relative; margin:18px 0 0; font-family:var(--disp); font-weight:800; font-size:clamp(32px,3.4vw,50px); line-height:1; letter-spacing:-.03em; color:#fff; text-wrap:balance;}
.sp .sp-fq__title em{display:block; font-style:normal; color:var(--sky);}
.sp .sp-fq__lead{position:relative; margin:18px 0 0; font-size:15.5px; line-height:1.6; color:#A9B6C4;}
.sp .sp-fq__ask{position:relative; margin-top:28px; padding-top:24px; border-top:1px solid rgba(255,255,255,.1);}
.sp .sp-fq__askt{margin:0; font-size:17px; font-weight:700; color:#fff;}
.sp .sp-fq__askp{margin:6px 0 18px; font-size:14.5px; line-height:1.55; color:#A9B6C4;}
.sp .sp-fq__ask .sp-btn{padding:15px 24px; border-radius:14px; font-size:15.5px;}
.sp .sp-fq__list{display:flex; flex-direction:column; gap:10px;}
.sp .sp-fq__item{border:1px solid rgba(11,14,18,.1); border-radius:18px; background:#fff; transition:border-color .2s ease,box-shadow .25s ease;}
.sp .sp-fq__item:hover{border-color:rgba(11,14,18,.2);}
.sp .sp-fq__item[open]{border-color:#0B0E12; box-shadow:0 26px 50px -38px rgba(11,14,18,.55);}
.sp .sp-fq__q{display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; column-gap:18px; padding:20px 20px 20px 22px; cursor:pointer; list-style:none;}
.sp .sp-fq__q::-webkit-details-marker{display:none;}
.sp .sp-fq__q:focus-visible{outline:2px solid var(--accent); outline-offset:-2px; border-radius:18px;}
.sp .sp-fq__num{align-self:start; margin-top:4px; font-family:var(--mono); font-size:12.5px; letter-spacing:.06em; color:#8A929C;}
.sp .sp-fq__item[open] .sp-fq__num{color:var(--accent);}
.sp .sp-fq__qtext{margin:0; font-family:var(--disp); font-weight:800; font-size:clamp(17.5px,1.45vw,20px); line-height:1.3; letter-spacing:-.01em; color:var(--ink);}
.sp .sp-fq__icon{position:relative; flex:none; width:38px; height:38px; border-radius:50%; background:#F2F3F5; transition:background .25s ease,transform .35s cubic-bezier(.22,.61,.36,1);}
.sp .sp-fq__icon::before, .sp .sp-fq__icon::after{content:""; position:absolute; left:50%; top:50%; width:14px; height:2px; margin:-1px 0 0 -7px; border-radius:2px; background:#0B0E12; transition:transform .35s cubic-bezier(.22,.61,.36,1),background .25s ease;}
.sp .sp-fq__icon::after{transform:rotate(90deg);}
.sp .sp-fq__item:hover .sp-fq__icon{background:#E6E8EB;}
.sp .sp-fq__item[open] .sp-fq__icon{background:#0B0E12; transform:rotate(180deg);}
.sp .sp-fq__item[open] .sp-fq__icon::before, .sp .sp-fq__item[open] .sp-fq__icon::after{background:#fff;}
.sp .sp-fq__item[open] .sp-fq__icon::after{transform:rotate(0deg);}
.sp .sp-fq__a{padding:0 76px 24px 56px;}
.sp .sp-fq__a p{margin:0; font-size:15.5px; line-height:1.72; color:#4A525E;}

/* ── Contact ────────────────────────────────────────────────────────────── */
.sp .sp-contact{position:relative; padding:var(--pad-y) var(--gut); background:linear-gradient(170deg,#12161B 0%,#0B0E12 100%); overflow:hidden;}
.sp .sp-contact::before{content:""; position:absolute; bottom:-40%; left:-10%; width:760px; height:760px; border-radius:50%; background:radial-gradient(circle,rgba(14,127,191,.2),transparent 64%); pointer-events:none;}
.sp .sp-contact__grid{position:relative; max-width:1240px; margin:0 auto; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(32px,5vw,80px); align-items:center;}
.sp .sp-contact .sp-h2{max-width:16ch;}
.sp .sp-contact .sp-lead{margin-top:18px; max-width:52ch;}
.sp .sp-next{display:grid; gap:18px; margin:32px 0; padding:0; list-style:none; counter-reset:nx;}
.sp .sp-next li{display:grid; grid-template-columns:40px 1fr; gap:16px; counter-increment:nx; font-size:15px; line-height:1.55; color:#A9B6C4;}
.sp .sp-next li::before{content:"0" counter(nx); display:grid; place-items:center; width:40px; height:40px; border-radius:12px; border:1px solid rgba(125,211,252,.35); background:rgba(125,211,252,.08); color:var(--sky); font:500 13px var(--mono);}
.sp .sp-next strong{display:block; margin-bottom:3px; font-size:16px; color:#F5F8FB;}
.sp .sp-direct{display:flex; flex-wrap:wrap; gap:10px;}
.sp .sp-direct .sp-btn{padding:14px 22px; font-size:15px;}

/* ── Related ────────────────────────────────────────────────────────────── */
.sp .sp-res{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(28px,4vw,64px);}
.sp .sp-res__h{display:flex; align-items:center; gap:14px; margin:0 0 18px; font-family:var(--mono); font-size:12px; font-weight:500; letter-spacing:.18em; text-transform:uppercase; color:var(--ink2);}
.sp .sp-res__h::after{content:""; flex:1; height:1px; background:rgba(11,14,18,.12);}
.sp .sp-links{display:grid; gap:10px; margin:0; padding:0; list-style:none;}
.sp .sp-links a{display:flex; align-items:center; justify-content:space-between; gap:14px; padding:16px 20px; background:#fff; border:1px solid rgba(11,14,18,.08); border-radius:16px; text-decoration:none; transition:border-color .2s ease,transform .2s ease;}
.sp .sp-links a:hover{border-color:rgba(10,110,158,.35); transform:translateX(4px);}
.sp .sp-links strong{display:flex; align-items:center; gap:10px; font-size:15.4px; color:var(--ink);}
.sp .sp-links small{display:block; margin-top:3px; font-size:13.2px; line-height:1.45; color:var(--muted);}
.sp .sp-links a::after{content:"\2192"; flex:none; display:grid; place-items:center; width:32px; height:32px; border-radius:50%; background:#F2F3F5; color:var(--ink); font-weight:700; transition:background .2s ease,color .2s ease;}
.sp .sp-links a:hover::after{background:#0B0E12; color:#fff;}
.sp .sp-links em{font-style:normal;}

/* ── Header over the hero (the home page's sh-hdr--over) ────────────────── */
.shn-hdr.shn-hdr--over{background:transparent; border-bottom-color:transparent; -webkit-backdrop-filter:none; backdrop-filter:none;}
.shn-hdr{transition:background .25s ease,border-color .25s ease;}

/* ── Sticky mobile action bar ───────────────────────────────────────────── */
.sp-dock{position:fixed; left:0; right:0; bottom:0; z-index:900; display:none; gap:8px; padding:10px max(12px,env(safe-area-inset-left)) calc(10px + env(safe-area-inset-bottom)); background:rgba(251,251,248,.96); border-top:1px solid rgba(11,14,18,.1); box-shadow:0 -12px 30px -18px rgba(11,14,18,.35); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); transform:translateY(110%); transition:transform .28s cubic-bezier(.22,.61,.36,1); font-family:'IBM Plex Sans','Segoe UI',Arial,sans-serif;}
.sp-dock.is-on{transform:none;}
.sp-dock a{display:flex; align-items:center; justify-content:center; gap:8px; min-height:48px; border-radius:999px; font-weight:700; font-size:15px; line-height:1; text-decoration:none;}
.sp-dock .sp-dock__main{flex:1 1 auto; background:#0B0E12; color:#fff;}
.sp-dock .sp-dock__wa{flex:0 0 auto; width:48px; background:#25D366; color:#fff;}
.sp-dock .sp-dock__call{flex:0 0 auto; width:48px; background:#fff; color:#0B0E12; border:1px solid rgba(11,14,18,.16);}
.sp-dock svg{width:21px; height:21px;}

/* Reveal on scroll (the home page's 16px rise), armed only by JS */
.sp.sp-js .sp-r{opacity:0; transform:translateY(16px); transition:opacity .7s cubic-bezier(.22,.61,.36,1),transform .7s cubic-bezier(.22,.61,.36,1);}
.sp.sp-js .sp-r.is-in{opacity:1; transform:none;}

/* ── Responsive ─────────────────────────────────────────────────────────── */
@media (min-width:1021px){
  .sp .sp-hero__wrap{align-items:stretch;}
  /* The card stretches to the headline column's height; the brief field takes the spare room, as on the home page. */
  .sp .sp-hero__side .sp-form__desc textarea{flex:1 1 auto; min-height:110px;}
}
@media (max-width:1100px){
  .sp .sp-cards{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:1020px){
  .sp .sp-hero__bg{background-image:url("/assets/images/home-hero-bg-960.webp"); background-position:72% top;}
  .sp .sp-hero__bg::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(251,251,248,.35) 0%,rgba(251,251,248,.72) 40%,rgba(251,251,248,.55) 100%);}
  .sp .sp-hero__wrap{grid-template-columns:minmax(0,1fr); grid-template-areas:"intro" "side" "extra";}
  .sp .sp-hero__side{margin-top:30px;}
  .sp .sp-answer, .sp .sp-fq__wrap, .sp .sp-contact__grid, .sp .sp-res, .sp .sp-stories__wrap{grid-template-columns:minmax(0,1fr);}
  .sp .sp-facts, .sp .sp-fq__panel{position:relative; top:0;}
  .sp .sp-stories__wrap{row-gap:44px;}
}
@media (max-width:900px){
  .sp .sp-head{grid-template-columns:minmax(0,1fr); align-items:start;}
  .sp .sp-ba{grid-template-columns:minmax(0,1fr);}
}
@media (max-width:768px){
  .sp-dock{display:flex;}
  body.sp-has-dock{padding-bottom:70px;}
  .sp .sp-reviews{display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:none; gap:14px;}
  .sp .sp-review--dark, .sp .sp-review--w1, .sp .sp-review--w2{grid-column:auto; grid-row:auto; margin:0; padding:24px 22px;}
}
@media (max-width:640px){
  .sp .sp-cards{grid-template-columns:minmax(0,1fr);}
  .sp .sp-fq__q{column-gap:12px; padding:18px 16px;}
  .sp .sp-fq__num{display:none;}
  .sp .sp-fq__q{grid-template-columns:minmax(0,1fr) auto;}
  .sp .sp-fq__a{padding:0 16px 20px;}
  .sp .sp-fq__icon{width:32px; height:32px;}
  .sp .sp-mq__label{margin-bottom:12px;}
}
@media (max-width:560px){
  .sp .sp-hero__title{font-size:clamp(34px,9.6vw,44px);}
  .sp .sp-badge__txt{font-size:9.8px; letter-spacing:.09em;}
  .sp .sp-btn{width:100%;}
  .sp .sp-btn--primary{padding-right:26px;}
  .sp .sp-form{padding:20px 16px 16px; border-radius:18px;}
  .sp .sp-form__grid{grid-template-columns:minmax(0,1fr); gap:12px;}
  .sp .sp-proof, .sp .sp-stats, .sp .sp-ratings{grid-template-columns:repeat(3,minmax(0,1fr));}
  .sp .sp-proof__item, .sp .sp-stat, .sp .sp-rating{padding:0 10px;}
  .sp .sp-proof__lbl{font-size:9.6px; letter-spacing:.08em;}
  .sp .sp-proof__stars{display:none;}
  .sp .sp-stat__l{font-size:12px;}
  .sp .sp-rating small{font-size:9px; letter-spacing:.08em;}
  .sp .sp-rating b span{display:none;}
  .sp .sp-facts dl > div{grid-template-columns:minmax(0,1fr); gap:3px;}
  .sp .sp-band__box{border-radius:22px;}
  .sp .sp-band__ctas{width:100%;}
  .sp .sp-table td:first-child{white-space:normal;}
}
@media (prefers-reduced-motion:reduce){
  .sp.sp-js .sp-r{opacity:1 !important; transform:none !important; transition:none !important;}
  .sp .sp-hero__bloom, .sp .sp-badge__dot::after, .sp .sp-mq__track{animation:none !important;}
  .sp *, .sp-dock{transition-duration:.01ms !important;}
}
