/* AMPL service pages. Light only, like the rest of the site. All classes and tokens are prefixed sv- so nothing collides with existing styles.
   Apply .sv-scope on the wrapper of every service page and on the Services index cards. */
.sv-scope{
  --sv-bg:var(--paper,#FBF8EF);--sv-surface:var(--paper-card,#FFFDF7);--sv-ink:#232F47;--sv-ink-2:#414B61;--sv-muted:#5A6070;--sv-rule:#D8DED8;--sv-rule-2:#B7C1BD;
  --sv-gold:#E8B53F;--sv-gold-ink:#232F47;--sv-navy:#232F47;--sv-on-navy:#FBF8EF;
  --sv-ok:#3F7A4F;--sv-amb:#B7861C;--sv-alert:#B4472F;
  --sv-map:#BDCDD7;--sv-choose:#E6CC74;--sv-build:#B9B6D8;--sv-prove:#D2D6B5;
  --sv-map-w:#E6EDF1;--sv-choose-w:#F3EFDF;--sv-build-w:#EEEDF4;--sv-prove-w:#F0F1E7;
  --sv-grid-on-navy:rgba(251,248,239,.06);--sv-line-on-navy:rgba(251,248,239,.22);--sv-build-on-navy:#CFCBEF;--sv-bp-grid:rgba(108,104,148,.08);
  --sv-display:"Source Serif 4",Georgia,"Times New Roman",serif;
  --sv-body:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --sv-mono:ui-monospace,"SFMono-Regular",Consolas,"Liberation Mono",monospace;
  color:var(--sv-ink);font-family:var(--sv-body)}
.sv-st-map{--sv-st:var(--sv-map);--sv-stw:var(--sv-map-w)}
.sv-st-choose{--sv-st:var(--sv-choose);--sv-stw:var(--sv-choose-w)}
.sv-st-build{--sv-st:var(--sv-build);--sv-stw:var(--sv-build-w)}
.sv-st-prove{--sv-st:var(--sv-prove);--sv-stw:var(--sv-prove-w)}

/* ---------- diagrams ---------- */
/* AMPL service diagrams. Needs these tokens on an ancestor:
   --sv-ink --sv-ink-2 --sv-muted --sv-surface --sv-rule --sv-rule-2 --sv-gold --sv-ok --sv-amb --sv-alert --sv-st --sv-stw --sv-body --sv-display --sv-mono */
.sv-dg{display:block;width:100%;max-width:820px;margin:0 auto;height:auto;min-width:560px;font-family:var(--sv-body);overflow:visible}
.sv-dg text{fill:var(--sv-ink);font-size:12px}
.sv-dg .s{font-size:10.5px;fill:var(--sv-muted)}
.sv-dg .b{font-weight:600;fill:var(--sv-ink)}
.sv-dg .m{font-family:var(--sv-mono);font-size:9.5px;letter-spacing:.08em;fill:var(--sv-muted)}
.sv-dg .bt{font-size:10.5px;font-weight:500;fill:var(--sv-ink)}
.sv-dg .rk{font-size:10px;font-weight:700;fill:var(--sv-surface)}
.sv-dg .rk2{font-size:10px;font-weight:700;fill:var(--sv-ink)}
.sv-dg .kpi{font-family:var(--sv-display);font-size:44px;fill:var(--sv-ink)}
.sv-dg .th{fill:var(--sv-alert)}
.sv-dg .tok{fill:var(--sv-ok)}
.sv-dg .n{fill:var(--sv-surface);stroke:var(--sv-rule-2);stroke-width:1}
.sv-dg .nk{fill:var(--sv-surface);stroke:var(--sv-ink);stroke-width:1.4}
.sv-dg .nh{fill:var(--sv-surface);stroke:var(--sv-alert);stroke-width:1.3;stroke-dasharray:4 3}
.sv-dg .na{fill:var(--sv-st);stroke:var(--sv-ink-2);stroke-width:1}
.sv-dg .na2{fill:var(--sv-stw);stroke:var(--sv-rule-2);stroke-width:1}
.sv-dg .frame{fill:var(--sv-surface);stroke:var(--sv-rule-2)}
.sv-dg .frame0{fill:none;stroke:var(--sv-rule-2)}
.sv-dg .hd{fill:var(--sv-stw)}
.sv-dg .tag{fill:var(--sv-st);stroke:var(--sv-ink-2);stroke-width:.8}
.sv-dg .lane{fill:var(--sv-surface);stroke:var(--sv-rule-2)}
.sv-dg .lanehd{fill:var(--sv-stw);stroke:var(--sv-rule-2)}
.sv-dg .ev{fill:var(--sv-surface);stroke:var(--sv-ink);stroke-width:1.4}
.sv-dg .ev.end{stroke-width:3}
.sv-dg .gw{fill:var(--sv-gold);fill-opacity:.45;stroke:var(--sv-ink-2);stroke-width:1}
.sv-dg .gl{fill:none;stroke:var(--sv-rule);stroke-width:1}
.sv-dg .ln{fill:none;stroke:var(--sv-ink-2);stroke-width:1.3}
.sv-dg .la{stroke:var(--sv-muted);stroke-width:2}
.sv-dg .lb{stroke:var(--sv-ink);stroke-width:2.4}
.sv-dg .lp{stroke:var(--sv-muted)}
.sv-dg .lh{fill:none;stroke:var(--sv-alert);stroke-width:1.4}
.sv-dg .thick{stroke-width:3.2}
.sv-dg .ds{stroke-dasharray:4 3}
.sv-dg .lg{fill:none;stroke:var(--sv-gold);stroke-width:2.2}
.sv-dg .ldone,.sv-dg .newway{fill:none;stroke:var(--sv-ink);stroke-width:2.8;stroke-linejoin:round;stroke-linecap:round}
.sv-dg .oldway{fill:none;stroke:var(--sv-muted);stroke-width:2;stroke-dasharray:5 4}
.sv-dg .spark{fill:none;stroke:var(--sv-ink);stroke-width:2;stroke-linejoin:round}
.sv-dg .ahf{fill:var(--sv-ink-2)}
.sv-dg .ahh{fill:var(--sv-alert)}
.sv-dg .q-good{fill:var(--sv-ok);fill-opacity:.08;stroke:none}
.sv-dg .v1{fill:var(--sv-ink)}
.sv-dg .v2{fill:var(--sv-st);stroke:var(--sv-ink);stroke-width:1.2}
.sv-dg .v3{fill:var(--sv-gold);stroke:var(--sv-ink-2);stroke-width:1}
.sv-dg .v4{fill:var(--sv-surface);stroke:var(--sv-muted);stroke-width:1.2;stroke-dasharray:3 2}
.sv-dg .colhi{fill:var(--sv-st);fill-opacity:.22}
.sv-dg .colhi2{fill:var(--sv-st)}
.sv-dg .pill{fill:none;stroke:var(--sv-rule-2)}
.sv-dg .pill.strong{stroke:var(--sv-ink)}
.sv-dg .f-ok{fill:var(--sv-ok)}
.sv-dg .f-amb{fill:var(--sv-amb)}
.sv-dg .f-hot{fill:var(--sv-alert)}
.sv-dg .f-ink{fill:var(--sv-ink)}
.sv-dg .f-gold{fill:var(--sv-gold);stroke:var(--sv-ink);stroke-width:1}
.sv-dg .o-amb{fill:none;stroke:var(--sv-amb);stroke-width:1.5}
.sv-dg .o-hot{fill:none;stroke:var(--sv-alert);stroke-width:1.5}
.sv-dg .o-ink{fill:none;stroke:var(--sv-muted);stroke-width:1}
.sv-dg .dot-a{fill:var(--sv-surface);stroke:var(--sv-muted);stroke-width:1.5}
.sv-dg .dot-b{fill:var(--sv-ink)}
.sv-dg .band{fill:var(--sv-gold);fill-opacity:.15}
.sv-dg .rt{fill:var(--sv-surface);stroke:var(--sv-alert);stroke-dasharray:4 3}
.sv-dg .kp{fill:var(--sv-surface);stroke:var(--sv-muted);stroke-dasharray:2 2}
.sv-dg .c-ok{fill:var(--sv-ok);fill-opacity:.16;stroke:var(--sv-ok)}
.sv-dg .c-amb{fill:var(--sv-amb);fill-opacity:.18;stroke:var(--sv-amb)}
.sv-dg .c-hot{fill:var(--sv-alert);fill-opacity:.14;stroke:var(--sv-alert)}
.sv-dg .p-ok{fill:var(--sv-ok);fill-opacity:.16;stroke:var(--sv-ok)}
.sv-dg .p-hot{fill:var(--sv-alert);fill-opacity:.14;stroke:var(--sv-alert)}
.sv-dg .bound{fill:var(--sv-stw);stroke:var(--sv-ink-2);stroke-dasharray:5 4}
.sv-dg .guard{fill:var(--sv-gold);fill-opacity:.06;stroke:var(--sv-gold);stroke-width:1.5;stroke-dasharray:6 4}
.sv-dg .cone{fill:var(--sv-alert);fill-opacity:.12}
.sv-dg .up{fill:var(--sv-ok);fill-opacity:.7}
.sv-dg .bnd-a{fill:var(--sv-stw);fill-opacity:.6}
.sv-dg .bnd-b{fill:var(--sv-st);fill-opacity:.28}

/* ---------- pages ---------- */
/* Service page template: shared skeleton + four stage variants (.sv-v-map .sv-v-choose .sv-v-build .sv-v-prove).
   Uses the same tokens as diagrams.sv-css. */
.sv-pg{--sv-pad:clamp(18px,3vw,32px);border:1px solid var(--sv-rule-2);border-radius:14px;overflow:hidden;background:var(--sv-surface);scroll-margin-top:16px}
.sv-pg h1,.sv-pg h3{font-family:var(--sv-display);font-weight:500;font-size:clamp(30px,4.4vw,46px);line-height:1.02;letter-spacing:-.015em;margin:0;text-wrap:balance}
.sv-pg h2,.sv-pg h4{font-family:var(--sv-display);font-weight:500;font-size:clamp(22px,2.6vw,28px);line-height:1.12;margin:6px 0 8px;text-wrap:balance}
.sv-pg .sv-hook{font:italic 400 clamp(19px,2.3vw,23px)/1.3 var(--sv-display);color:var(--sv-ink-2);margin:0}
.sv-pg .sv-intro{max-width:60ch;font-size:15.5px;margin:0}
.sv-pg .sv-lede{color:var(--sv-ink-2);font-size:15px;max-width:58ch;margin:0}
.sv-pg .sv-lbl{font:600 11px/1.3 var(--sv-body);letter-spacing:.1em;text-transform:uppercase;color:var(--sv-muted)}
.sv-pg q{quotes:"\201C" "\201D"}
.sv-pg section,.sv-pg footer.sv-s3{padding:var(--sv-pad);border-top:1px solid var(--sv-rule)}
.sv-pg .sv-kicker{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font:600 11.5px var(--sv-body);letter-spacing:.1em;text-transform:uppercase;margin:0}
.sv-pg .sv-kicker .sv-dot{width:12px;height:12px;border-radius:50%;background:var(--sv-st);border:1.5px solid currentColor}
.sv-pg .sv-kicker .sv-dlv{font-weight:500;letter-spacing:0;text-transform:none;display:inline-flex;align-items:center;gap:6px}
.sv-pg .sv-kicker .sv-dlv i{width:9px;height:9px;background:currentColor;display:inline-block}
.sv-pg .sv-kicker .sv-dlv.sv-sp i{background:transparent;border:1.5px solid currentColor}
.sv-dgwrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.sv-txt{margin-top:10px;font-size:13.5px;color:var(--sv-ink-2)}
.sv-txt summary{cursor:pointer;font-weight:500;color:var(--sv-ink)}
.sv-txt summary:focus-visible{outline:3px solid var(--sv-gold);outline-offset:2px}
.sv-txt p{margin:6px 0 0;max-width:70ch}
.sv-split{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:28px;align-items:start}
@media (max-width:760px){.sv-split{grid-template-columns:1fr}}
.sv-illus{margin:0;border:1.5px dashed var(--sv-rule-2);border-radius:12px;background:var(--sv-stw);aspect-ratio:4/3;max-width:100%;display:grid;align-content:center;gap:6px;padding:18px}
.sv-illus p{margin:0;font-size:13.5px;color:var(--sv-ink-2)}
.sv-s3{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:start;background:var(--sv-bg)}
@media (max-width:760px){.sv-s3{grid-template-columns:1fr}}
.sv-s3 .sv-not{font:italic 400 20px/1.35 var(--sv-display);margin:8px 0 0}
.sv-s3 .sv-scoped{font-size:13px;color:var(--sv-muted);margin:10px 0 0;max-width:52ch}
.sv-s3 .sv-next{display:grid;gap:10px}
.sv-s3 .sv-next p{margin:0;font-size:14.5px;color:var(--sv-ink-2)}
.sv-s3 .sv-links{display:flex;flex-wrap:wrap;gap:8px}
.sv-s3 .sv-links a{font:500 13.5px var(--sv-body);color:var(--sv-ink);text-decoration:none;border:1px solid var(--sv-rule-2);border-radius:999px;padding:6px 12px;display:inline-flex;gap:8px;align-items:center;background:var(--sv-surface)}
.sv-s3 .sv-links a:hover{border-color:var(--sv-ink)}
.sv-s3 .sv-links a:focus-visible{outline:3px solid var(--sv-gold);outline-offset:2px}
.sv-s3 .sv-links a i{width:9px;height:9px;border-radius:50%;background:var(--sv-lt);border:1px solid var(--sv-ink-2)}
.sv-s3 .sv-cta{justify-self:start;font:600 14px var(--sv-body);background:var(--sv-gold);color:var(--sv-gold-ink);border-radius:999px;padding:10px 18px;text-decoration:none}

/* ---------- MAP · survey sheet ---------- */
.sv-v-map .sv-mh{background-color:var(--sv-stw);background-image:radial-gradient(var(--sv-rule-2) 1px,transparent 1.2px);background-size:18px 18px;padding:var(--sv-pad);display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.9fr);gap:28px;align-items:end}
@media (max-width:760px){.sv-v-map .sv-mh{grid-template-columns:1fr}}
.sv-v-map .sv-mh-main{display:grid;gap:12px}
.sv-v-map .sv-qcard{background:var(--sv-surface);border:1px solid var(--sv-rule-2);border-radius:12px;padding:18px;display:grid;gap:8px;box-shadow:0 1px 0 var(--sv-rule-2),0 12px 28px -18px rgba(35,47,71,.35);transform:rotate(-.6deg)}
.sv-v-map .sv-qcard q{font:italic 400 20px/1.35 var(--sv-display)}
.sv-v-map .sv-sheet{margin:18px 0 0;border:1px solid var(--sv-ink-2);border-radius:4px;background:var(--sv-surface);position:relative}
.sv-v-map .sv-sheet::before,.sv-v-map .sv-sheet::after{content:"";position:absolute;width:14px;height:14px;border-color:var(--sv-ink);border-style:solid;pointer-events:none}
.sv-v-map .sv-sheet::before{top:-5px;left:-5px;border-width:2px 0 0 2px}
.sv-v-map .sv-sheet::after{bottom:-5px;right:-5px;border-width:0 2px 2px 0}
.sv-v-map .sv-sheet-bar{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:8px 12px;border-bottom:1px solid var(--sv-rule-2);font:500 10.5px var(--sv-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--sv-muted)}
.sv-v-map .sv-sheet .sv-dgwrap{padding:14px 12px 10px}
.sv-v-map .sv-sheet .sv-txt{padding:0 12px 12px}
.sv-v-map .sv-legend{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:18px 0 0}
@media (max-width:560px){.sv-v-map .sv-legend{grid-template-columns:1fr}}
.sv-v-map .sv-legend div{display:grid;grid-template-columns:22px minmax(0,1fr);gap:4px 8px}
.sv-v-map .sv-legend dt{grid-column:1/-1;display:flex;align-items:center;gap:8px;font-weight:600;font-size:14px}
.sv-v-map .sv-legend dd{grid-column:2;margin:0;font-size:13.5px;color:var(--sv-ink-2)}
.sv-sym{width:14px;height:14px;display:inline-block;flex:none;border:1.5px solid var(--sv-ink)}
.sv-sym-0{border-radius:50%;background:var(--sv-ink)}
.sv-sym-1{transform:rotate(45deg) scale(.85);background:var(--sv-st)}
.sv-sym-2{border:0;background:var(--sv-gold);clip-path:polygon(50% 0,100% 100%,0 100%)}
.sv-v-map .sv-keylist{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:8px}
.sv-v-map .sv-keylist li{display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:10px;font-weight:500}
.sv-v-map .sv-keylist b{width:28px;height:28px;border-radius:50%;border:1.5px solid var(--sv-ink);display:grid;place-items:center;font:600 12px var(--sv-mono);background:var(--sv-stw)}

/* ---------- CHOOSE · evaluation ---------- */
.sv-v-choose .sv-ch{background:var(--sv-stw);border-top:8px solid var(--sv-st);padding:var(--sv-pad);display:grid;gap:12px;position:relative}
.sv-v-choose .sv-ch .sv-big{position:absolute;right:var(--sv-pad);top:10px;font:400 clamp(70px,10vw,120px)/1 var(--sv-display);color:transparent;-webkit-text-stroke:1.2px var(--sv-st);pointer-events:none;font-variant-numeric:tabular-nums}
.sv-v-choose .sv-ch > *:not(.sv-big){position:relative;max-width:46rem}
.sv-v-choose .sv-ch-body{display:grid;grid-template-columns:230px minmax(0,1fr)}
@media (max-width:820px){.sv-v-choose .sv-ch-body{grid-template-columns:1fr}}
.sv-v-choose .sv-rail{border-right:1px solid var(--sv-rule);background:var(--sv-bg);padding:var(--sv-pad)}
@media (max-width:820px){.sv-v-choose .sv-rail{border-right:0;border-top:1px solid var(--sv-rule)}}
.sv-v-choose .sv-rail-in{position:sticky;top:calc(16px + env(safe-area-inset-top,0px));display:grid;gap:12px}
.sv-v-choose .sv-rail q{font:italic 400 18px/1.4 var(--sv-display);border-left:3px solid var(--sv-st);padding-left:12px}
.sv-v-choose .sv-toc{display:grid;gap:2px;margin-top:8px}
.sv-v-choose .sv-toc a{font-size:13.5px;color:var(--sv-ink-2);text-decoration:none;padding:6px 8px;border-radius:6px;display:flex;gap:8px}
.sv-v-choose .sv-toc a span{font:500 11px var(--sv-mono);color:var(--sv-muted);padding-top:2px}
.sv-v-choose .sv-toc a:hover{background:var(--sv-stw);color:var(--sv-ink)}
.sv-v-choose .sv-toc a:focus-visible{outline:3px solid var(--sv-gold)}
.sv-v-choose .sv-ch-main{min-width:0}
.sv-v-choose .sv-ch-main section:first-child{border-top:0}
.sv-v-choose .sv-crit{width:100%;border-collapse:collapse;margin:16px 0 0;font-size:14px}
.sv-v-choose .sv-crit th{text-align:left;font:600 10.5px var(--sv-body);letter-spacing:.1em;text-transform:uppercase;color:var(--sv-muted);padding:8px 10px;border-bottom:1.5px solid var(--sv-ink)}
.sv-v-choose .sv-crit td{padding:10px;border-bottom:1px solid var(--sv-rule);vertical-align:top}
.sv-v-choose .sv-crit td:first-child{font-weight:600;white-space:nowrap;width:1%}
.sv-v-choose .sv-crit td:first-child::before{content:"";display:inline-block;width:8px;height:8px;background:var(--sv-st);border:1px solid var(--sv-ink-2);margin-right:8px;vertical-align:1px}
.sv-v-choose .sv-exhibit{margin:22px 0 0}
.sv-v-choose .sv-ex-cap{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;font-size:13px;color:var(--sv-ink-2);padding-bottom:10px;border-bottom:1px solid var(--sv-rule);margin-bottom:14px}
.sv-v-choose .sv-ex-cap b{font:600 11px var(--sv-body);letter-spacing:.1em;text-transform:uppercase;color:var(--sv-ink);background:var(--sv-st);padding:3px 8px;border-radius:4px}
.sv-v-choose .sv-ex-cap span{margin-left:auto;color:var(--sv-muted);font-size:12px}
.sv-v-choose .sv-memo{border:1px solid var(--sv-rule-2);border-radius:10px;background:var(--sv-bg);overflow:hidden;margin-top:12px}
.sv-v-choose .sv-memo-hd{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:10px 16px;background:var(--sv-stw);border-bottom:1px solid var(--sv-rule-2);font:500 10.5px var(--sv-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--sv-ink-2)}
.sv-v-choose .sv-memo-bd{padding:16px}
.sv-v-choose .sv-memo-rows{margin:14px 0 0;display:grid;gap:0}
.sv-v-choose .sv-memo-rows div{display:grid;grid-template-columns:44px minmax(0,1fr);gap:8px;padding:9px 0;border-top:1px dashed var(--sv-rule-2);font-weight:500}
.sv-v-choose .sv-memo-rows dt{font:500 12px var(--sv-mono);color:var(--sv-muted)}
.sv-v-choose .sv-memo-rows dd{margin:0}

/* ---------- BUILD · engineering spec ---------- */
.sv-v-build .sv-bh{background-color:var(--sv-navy);color:var(--sv-on-navy);background-image:linear-gradient(var(--sv-grid-on-navy) 1px,transparent 1px),linear-gradient(90deg,var(--sv-grid-on-navy) 1px,transparent 1px);background-size:24px 24px;padding:var(--sv-pad);display:grid;gap:12px}
.sv-v-build .sv-bh .sv-kicker{font-family:var(--sv-mono);font-weight:500;letter-spacing:.08em;color:var(--sv-build-on-navy)}
.sv-v-build .sv-bh .sv-kicker .sv-dot{border-color:var(--sv-on-navy)}
.sv-v-build .sv-bh .sv-hook{color:var(--sv-on-navy);opacity:.85}
.sv-v-build .sv-bh .sv-intro{color:var(--sv-on-navy);opacity:.9}
.sv-v-build .sv-ticket{margin-top:6px;border:1px solid var(--sv-line-on-navy);border-left:4px solid var(--sv-st);border-radius:8px;padding:12px 14px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:baseline;background:rgba(255,255,255,.03);max-width:46rem}
@media (max-width:560px){.sv-v-build .sv-ticket{grid-template-columns:1fr}}
.sv-v-build .sv-ticket .sv-mono{font:500 10.5px var(--sv-mono);letter-spacing:.08em;color:var(--sv-build-on-navy)}
.sv-v-build .sv-ticket q{font:italic 400 18px/1.35 var(--sv-display);color:var(--sv-on-navy)}
.sv-v-build .sv-blueprint{margin:18px 0 0;border:1px solid var(--sv-rule-2);border-radius:10px;overflow:hidden;background-color:var(--sv-surface);background-image:linear-gradient(var(--sv-bp-grid) 1px,transparent 1px),linear-gradient(90deg,var(--sv-bp-grid) 1px,transparent 1px);background-size:16px 16px}
.sv-v-build .sv-blueprint figcaption{font:500 10.5px var(--sv-mono);letter-spacing:.08em;color:var(--sv-ink-2);padding:9px 14px;border-bottom:1px solid var(--sv-rule-2);background:var(--sv-stw);display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.sv-v-build .sv-blueprint .sv-dgwrap{padding:16px 14px 8px}
.sv-v-build .sv-blueprint .sv-txt{padding:0 14px 14px;background:transparent}
.sv-v-build .sv-spec{margin:18px 0 0;border:1px solid var(--sv-rule-2);border-radius:10px;overflow:hidden}
.sv-v-build .sv-spec div{display:grid;grid-template-columns:150px minmax(0,1fr);border-top:1px solid var(--sv-rule)}
.sv-v-build .sv-spec div:first-child{border-top:0}
.sv-v-build .sv-spec dt{font:500 11.5px var(--sv-mono);letter-spacing:.06em;text-transform:uppercase;padding:11px 14px;background:var(--sv-stw);border-right:1px solid var(--sv-rule)}
.sv-v-build .sv-spec dd{margin:0;padding:11px 14px;font-size:14px}
@media (max-width:480px){.sv-v-build .sv-spec div{grid-template-columns:1fr}.sv-v-build .sv-spec dt{border-right:0}}
.sv-v-build .sv-manifest{list-style:none;margin:14px 0 0;padding:0;border:1px solid var(--sv-rule-2);border-radius:10px;overflow:hidden;font-size:14px}
.sv-v-build .sv-manifest li{display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 14px;border-top:1px solid var(--sv-rule)}
.sv-v-build .sv-manifest li:first-child{border-top:0}
.sv-v-build .sv-manifest i{width:16px;height:16px;border:1.5px solid var(--sv-ink);border-radius:3px;background:var(--sv-st);position:relative}
.sv-v-build .sv-manifest i::after{content:"";position:absolute;left:4px;top:1px;width:4px;height:8px;border:solid var(--sv-ink);border-width:0 2px 2px 0;transform:rotate(45deg)}
.sv-v-build .sv-manifest span{font:500 10.5px var(--sv-mono);color:var(--sv-muted);letter-spacing:.06em}

/* ---------- PROVE · instrument panel ---------- */
.sv-v-prove .sv-ph{background-color:var(--sv-stw);background-image:repeating-linear-gradient(0deg,transparent 0 23px,var(--sv-rule) 23px 24px);padding:var(--sv-pad);display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.9fr);gap:28px;align-items:end}
@media (max-width:760px){.sv-v-prove .sv-ph{grid-template-columns:1fr}}
.sv-v-prove .sv-ph-main{display:grid;gap:12px}
.sv-v-prove .sv-readout{background:var(--sv-surface);border:1px solid var(--sv-rule-2);border-radius:12px;overflow:hidden}
.sv-v-prove .sv-readout-hd{display:flex;justify-content:space-between;align-items:center;padding:8px 14px;border-bottom:1px solid var(--sv-rule-2);font:500 10.5px var(--sv-mono);letter-spacing:.08em;color:var(--sv-muted)}
.sv-v-prove .sv-readout-hd b{font:600 10px var(--sv-mono);letter-spacing:.08em;color:var(--sv-alert);border:1px solid var(--sv-alert);border-radius:999px;padding:2px 8px}
.sv-v-prove .sv-readout q{display:block;padding:14px;font:italic 400 19px/1.35 var(--sv-display)}
.sv-v-prove .sv-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0 0}
@media (max-width:620px){.sv-v-prove .sv-tiles{grid-template-columns:1fr}}
.sv-v-prove .sv-tile{border:1px solid var(--sv-rule-2);border-radius:10px;padding:14px;display:grid;gap:4px;background:var(--sv-surface);position:relative}
.sv-v-prove .sv-tile::before{content:"";position:absolute;left:14px;right:14px;top:0;height:3px;background:var(--sv-st);border-radius:0 0 3px 3px}
.sv-v-prove .sv-tile b{font:500 22px/1.15 var(--sv-display);margin-top:6px}
.sv-v-prove .sv-tile p{margin:0;font-size:13.5px;color:var(--sv-ink-2)}
.sv-v-prove .sv-panel{margin:18px 0 0;border:1px solid var(--sv-ink-2);border-radius:12px;overflow:hidden;background:var(--sv-surface)}
.sv-v-prove .sv-panel-bar{display:flex;align-items:center;gap:10px;padding:9px 14px;background:var(--sv-bg);border-bottom:1px solid var(--sv-rule-2);font-size:13px}
.sv-v-prove .sv-panel-bar i{width:8px;height:8px;border-radius:50%;background:var(--sv-ok)}
.sv-v-prove .sv-panel-bar span{margin-left:auto;font:500 10.5px var(--sv-mono);letter-spacing:.08em;color:var(--sv-muted);text-transform:uppercase}
.sv-v-prove .sv-panel .sv-dgwrap{padding:16px 14px 8px}
.sv-v-prove .sv-panel .sv-txt{padding:0 14px 14px}
.sv-v-prove .sv-checks{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:10px}
.sv-v-prove .sv-checks li{display:grid;grid-template-columns:24px minmax(0,1fr);gap:10px;align-items:center;font-weight:500}
.sv-v-prove .sv-checks i{width:24px;height:24px;border-radius:50%;background:var(--sv-ok);position:relative}
.sv-v-prove .sv-checks i::after{content:"";position:absolute;left:9px;top:5px;width:5px;height:10px;border:solid var(--sv-surface);border-width:0 2px 2px 0;transform:rotate(45deg)}
.sv-swipe{display:none;font-size:12px;color:var(--sv-muted);margin:0 0 6px}
@media (max-width:600px){.sv-v-choose .sv-ch .sv-big{display:none}.sv-swipe{display:block}}

/* ---------- Services index cards ---------- */
.sv-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.sv-card{background:var(--sv-surface);border:1px solid var(--sv-rule);border-radius:10px;padding:16px;display:grid;gap:8px;align-content:start;border-top:4px solid var(--sv-st);transition:border-color .15s,transform .15s}
.sv-card:hover{border-color:var(--sv-ink-2);border-top-color:var(--sv-st)}
@media (prefers-reduced-motion:no-preference){.sv-card:hover{transform:translateY(-2px)}}
.sv-card q{font:italic 400 15.5px/1.4 var(--sv-display);color:var(--sv-ink-2);quotes:"\201C" "\201D"}
.sv-card h4{font:600 15px/1.3 var(--sv-body)}
.sv-card h4 a{color:inherit;text-decoration:none}
.sv-card h4 a::after{content:" →";color:var(--sv-muted)}
.sv-card h4 a:focus-visible{outline:3px solid var(--sv-gold);outline-offset:2px}
.sv-card .sv-hook{font-size:13.5px;color:var(--sv-ink-2)}
.sv-num{font:500 12.5px var(--sv-body);color:var(--sv-muted);font-variant-numeric:tabular-nums}
.sv-dl{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--sv-muted)}
.sv-dl i{width:9px;height:9px;background:var(--sv-ink);display:inline-block}
.sv-dl.sv-sp i{background:transparent;border:1.5px solid var(--sv-ink)}
