/* ── Bootstrap 5.3.3 reboot neutraliser ─────────────────────────────────
   Bootstrap loads first; these rules hand typography back to the Crelio kit
   below (which sets its own sizes/margins per class). */
body{line-height:revert;font-size:revert}
h1,h2,h3,h4,h5,h6,p,ul,ol,dl,blockquote,figure,pre{margin:revert;font-size:revert;font-weight:revert;line-height:revert}
ol,ul{padding-left:revert}
a{color:inherit;text-decoration:revert}
label{display:revert}
button,input,select,textarea{font-family:revert;font-size:revert;line-height:revert;margin:revert}
button{border-radius:revert}
img,svg{vertical-align:revert}
pre{font-family:revert;font-size:revert;overflow:revert}
blockquote,figure{margin:revert}



:root{
  --g:#1C9323;        /* action green — buttons, links, green text on LIGHT */
  --gi:#00A82D;       /* icon green — strokes, gradient stops, glows        */
  --g2:#3FD15F;       /* glow green — green on DARK only                    */
  --glogo:#3BA341;    /* logo mark only                                     */
  --gsoft:#E8F7EC;    /* the only tinted fill                               */
  --gline:#C2E2C4;    /* the only pill border                               */

  --ink:#0E0E0E; --muted:#4E4E4E; --faint:#7A827A;
  --line:#EBEBEB; --line2:#ECECEC;
  --black:#000; --black2:#0A0A0A; --panel:#F7F9F8;
  /* The live site keeps two dark grounds: a neutral black for the home page
     and a dark green-black for product pages. Both are in use — do not
     collapse them into one. */
  --darkg:#0B1A12; --darkg2:#10241A;
  /* Two soft tints, also both in use: the home page's is far lighter. */
  --tint-home:rgba(59,163,65,.05); --tint-page:#E8F7EC;
  --lined:rgba(255,255,255,.10);

  --serif:"Libertinus Serif Display",Georgia,serif;
  --sans:'Inter',system-ui,-apple-system,sans-serif;

  --r-pill:999px; --r-xl:24px; --r-lg:20px; --r-md:16px; --r-sm:14px; --r-xs:10px;

  --sh-flat:0 1px 2px rgba(15,23,42,.04);
  --sh-lift:0 20px 40px -20px rgba(0,168,45,.18);
  --sh-cta:0 12px 30px -8px rgba(0,168,45,.4);
  --sh-ui:0 10px 30px rgba(15,23,42,.08);
  --muted2:#6B6B6B;   /* --pp-muted. Card paragraphs, NOT --muted.        */
  --ink2:#334155;     /* --cr-ink-2. Check lists and dense body.           */
  --link:#35B23E;     /* the "Know more" green                            */
  --cardgrey:#F8F8F8; /* pp-feature-card ground                           */
  /* measured off the live site, 23 Sep 2026 */
  --sh-card:0 26px 50px -30px rgba(15,23,42,.32);
  --sh-soft:0 24px 46px -30px rgba(15,23,42,.30);
  --sh-photo:0 30px 60px -20px rgba(0,0,0,.35);
  --sh-btn:0 4px 10px rgba(0,168,45,.25);
  --ease:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{box-sizing:border-box}
body{margin:0;font-family:var(--sans);color:#0f172a;background:#fff;
  -webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}

/* ── LAYOUT ─────────────────────────────────────────────────────────────── */
.cr-sec{padding:100px 0;background:#fff;position:relative}
.cr-sec--dark{background:var(--black);color:#fff}
.cr-sec--ink{background:var(--black2);color:#fff}
.cr-sec--tint{background:var(--gsoft)}
.cr-sec--panel{background:var(--panel)}
/* --container-max on the live site is 1320px. Measured 23 Sep 2026. */
.cr-wrap{max-width:1320px;margin:0 auto;padding:0 24px}
.cr-wrap--wide{max-width:1320px}
.cr-wrap--narrow{max-width:1100px}
.cr-head{margin-bottom:64px}  /* .hc-sec-head{padding-bottom:64px} */
.cr-head--center{text-align:center;max-width:820px;margin-left:auto;margin-right:auto}
.cr-head .cr-pill{margin-bottom:22px}

.cr-g2{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.cr-g3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.cr-g4{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.cr-split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.cr-split--rev>*:first-child{order:2}
.cr-bento-a{display:grid;grid-template-columns:1fr 1.6fr;gap:20px;margin-bottom:20px}
.cr-bento-b{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.cr-headrow{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:end;
  margin-bottom:56px}

/* ── TYPE ───────────────────────────────────────────────────────────────── */
.cr-t{font-family:var(--serif);font-weight:400;line-height:1.1;letter-spacing:-.02em;
  margin:0;color:var(--ink);text-wrap:balance}
.cr-t--hero{font-size:64px;color:#fff}
.cr-t--feat{font-size:56px}
.cr-t--sec{font-size:48px}
.cr-t em{font-style:normal;color:var(--g)}
.cr-sec--dark .cr-t,.cr-sec--ink .cr-t{color:#fff}
.cr-sec--dark .cr-t em,.cr-sec--ink .cr-t em{color:var(--g2)}

.cr-lead{font-size:16px;line-height:24px;letter-spacing:-.011em;font-weight:400;
  color:var(--muted);max-width:520px;margin:0}
.cr-sec--dark .cr-lead,.cr-sec--ink .cr-lead{color:rgba(255,255,255,.72)}
.cr-lead--fade{color:var(--ink)}
.cr-lead--fade span{color:rgba(78,78,78,.55)}
.cr-sec--dark .cr-lead--fade{color:#fff}
.cr-sec--dark .cr-lead--fade span{color:rgba(255,255,255,.45)}

.cr-ct{font-size:16px;line-height:24px;letter-spacing:-.02em;font-weight:500;
  color:var(--ink);margin:0 0 8px}
.cr-cb{font-size:14px;line-height:20px;letter-spacing:-.01em;font-weight:400;
  color:var(--muted);margin:0}
.cr-sec--dark .cr-ct,.cr-sec--ink .cr-ct{color:#fff}
.cr-sec--dark .cr-cb,.cr-sec--ink .cr-cb{color:rgba(255,255,255,.6)}
.cr-micro{font-size:13px;line-height:18px;color:var(--faint);margin:0}

/* ── PILLS / TAGS ───────────────────────────────────────────────────────── */
.cr-pill{display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--gline);background:#fff;color:var(--g);border-radius:99px;
  padding:6px 12px;font-size:16px;font-weight:500;line-height:24px;letter-spacing:-.02em}
.cr-sec--dark .cr-pill,.cr-sec--ink .cr-pill{background:transparent;
  border-color:rgba(63,209,95,.35);color:var(--g2)}
.cr-tag{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 12px;
  font-size:12px;font-weight:500;color:var(--g);background:var(--gsoft)}
.cr-eyebrow{display:inline-block;padding:8px 10px;border-radius:200px;
  background:rgba(235,235,235,.4);color:#0a0a0a;font-size:12px;font-weight:600;
  line-height:16px;letter-spacing:.04em;text-transform:uppercase}

/* ── BUTTONS ────────────────────────────────────────────────────────────── */
.cr-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:12px 32px;border-radius:99px;border:0;font-family:var(--sans);
  font-size:16px;font-weight:500;line-height:23.52px;letter-spacing:-.02em;
  text-decoration:none;cursor:pointer;transition:transform .2s ease}
.cr-btn:hover{transform:scale(1.02)}
.cr-btn--p{background:var(--g);color:#fff;box-shadow:var(--sh-cta)}
.cr-btn--w{background:#fff;color:rgba(7,11,18,1)}
.cr-btn--ghost{background:rgba(255,255,255,.06);color:#fff;border:1px solid rgba(255,255,255,.45)}
.cr-btn--soft{background:rgba(235,246,236,1);color:var(--g)}
.cr-btn--lg{padding:16px 32px;font-size:15px}
.cr-btns{display:flex;flex-wrap:wrap;gap:14px}
.cr-link{display:inline-flex;align-items:center;gap:6px;color:var(--g);font-size:14px;
  font-weight:500;text-decoration:none;transition:gap .2s ease}
.cr-link:hover{gap:11px}
.cr-sec--dark .cr-link,.cr-sec--ink .cr-link{color:var(--g2)}

/* ── CARDS ──────────────────────────────────────────────────────────────── */
.cr-card{background:#fff;border:1px solid var(--line2);border-radius:var(--r-lg);
  padding:26px;height:100%;box-shadow:var(--sh-flat);
  display:flex;flex-direction:column;
  transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}

/* THE VISUAL SLOT INSIDE A CARD.
   Fixed height is deliberate: it is what keeps three cards in a row aligned.
   Never replace this with an inline style — unequal visual heights are the
   single most common cause of a page looking "misaligned". */
.cr-vis{height:216px;flex:none;border-radius:var(--r-md);background:var(--panel);
  display:flex;align-items:center;justify-content:center;padding:20px;overflow:hidden;
  margin:-4px -4px 22px;position:relative}
.cr-vis--tall{height:270px}
.cr-vis--short{height:158px}
.cr-vis>*{max-width:100%}
/* The text block under a card visual. Because .cr-vis has a fixed height,
   every card in a row starts its text at the same y automatically. Do not add
   margin-top:auto here — that pushes shorter cards down and breaks the row. */
.cr-card__txt{margin-top:0}
.cr-card:hover{transform:translateY(-4px);border-color:rgba(0,168,45,.3);box-shadow:var(--sh-lift)}
.cr-card--green{background:radial-gradient(100.15% 100.15% at 0% -0.15%,#28BE56 0%,#00A62F 100%);
  border:0;color:#fff}
.cr-card--green .cr-ct,.cr-card--green .cr-cb{color:#fff}
.cr-card--green .cr-cb{color:rgba(255,255,255,.85)}
.cr-card--green .cr-link{color:#fff}
.cr-card--flat{box-shadow:none}
.cr-card--flat:hover{transform:none;box-shadow:var(--sh-lift)}
.cr-card--dark{background:var(--black2);border:1px solid rgba(63,209,95,.25);
  border-radius:var(--r-md);box-shadow:0 0 40px rgba(63,209,95,.08) inset;color:#fff;padding:0;
  overflow:hidden;height:100%;display:flex;flex-direction:column}
.cr-card--dark .cr-vis{background:transparent;margin:0;height:200px}
.cr-card--dark .cr-card__txt{padding:0 22px 26px}
.cr-card--pad{padding:26px}

/* .hc-feat-ic on the live site: 48 square, radius 10, 5% green, icon 22. */
.cr-chip{width:48px;height:48px;border-radius:10px;flex:none;background:var(--gsoft);
  color:var(--gi);display:inline-flex;align-items:center;justify-content:center}
/* on a dark section the chip is SOLID green, not a gradient — .hc-plat-feat-ic */
.cr-chip--solid{background:var(--g);color:#fff}
.cr-chip--lg{width:48px;height:48px;border-radius:14px}
.cr-chip svg{width:22px;height:22px;stroke-width:1.75;fill:none;stroke:currentColor;
  stroke-linecap:round;stroke-linejoin:round}
.cr-sec--dark .cr-chip{background:rgba(63,209,95,.14);color:var(--g2)}

/* row: chip + text, the most-used sub-layout on the site */
.cr-row{display:flex;gap:16px;align-items:flex-start}
.cr-rows{display:flex;flex-direction:column}
.cr-rows>.cr-row{padding:20px 0;border-top:1px solid var(--line)}
.cr-rows>.cr-row:first-child{border-top:0;padding-top:0}
.cr-sec--dark .cr-rows>.cr-row{border-color:var(--lined)}

/* ── SIGNATURE DEVICES ──────────────────────────────────────────────────── */
.cr-mesh{background-image:radial-gradient(rgba(63,209,95,.07) 1px,transparent 1px);
  background-size:22px 22px}
.cr-mesh--dark{background-image:radial-gradient(rgba(63,209,95,.10) 1px,transparent 1px);
  background-size:22px 22px}
.cr-panel{background:var(--panel);border-radius:var(--r-lg);padding:34px;position:relative;
  overflow:hidden;min-height:340px;display:flex;align-items:center;justify-content:center}

/* the green dome — ONCE per page, between the closing CTA and the footer */
/* ── THE DOME ───────────────────────────────────────────────────────────────
   Copied verbatim from the live site (.gradient-section + .dome). Do not
   rewrite the gradient — this is the developer's own CSS.

   How it reads: the element's base is WHITE and the gradient radiates out
   from the bottom centre, so you get a white bloom along the bottom, a green
   ribbon above it, and black at the top and corners. It is a glow rising out
   of the light section below, not a hole in a black one.

   ⚠ The base colour is the part that goes wrong. Painted on black instead of
   white, the same gradient puts a dark ellipse at the bottom and blows the
   green out into a slab — that is the "ugly green band" defect. (F-29)

   WHERE IT GOES: exactly once per solutions page, between the closing CTA and
   the footer. Never against the hero — on a solutions page the hero ends in
   solid black and cuts straight to the next section, with no transition
   device at all. Only the home page runs a second, mid-page dome. (F-32/F-34) */
.cr-dome{position:relative;width:100%;height:340px;overflow:hidden;isolation:isolate;
  background-color:#fff;
  background-image:radial-gradient(140.64% 100% at 50% 100%,
    rgba(255,255,255,0) 0%,rgba(255,255,255,.6) 38.07%,#00A62F 73.08%,#000 100%)}
.cr-dome--up{transform:scaleY(-1)}

/* the full-width gradient CTA band that closes a bento section */
.cr-band{margin-top:56px;padding:24px 32px;border-radius:var(--r-md);
  background:linear-gradient(90deg,#35BA55,#0F8A2A);color:#fff;display:flex;flex-wrap:wrap;
  align-items:center;justify-content:space-between;gap:16px}
.cr-band p{font-size:18px;font-weight:500;line-height:24px;letter-spacing:-.02em;margin:0}
.cr-band a{color:#fff;font-weight:600;text-decoration:none;white-space:nowrap}

/* ── PHOTO SLOT ─────────────────────────────────────────────────────────────
   Artifacts cannot load external images. This renders a deliberate, designed
   dark banner so the page reads as complete, and carries the production <img>
   markup in a comment for the developer. Never leave a bare broken <img>.     */
.cr-photo{position:relative;width:100%;height:100%;overflow:hidden;
  background:
    radial-gradient(65% 55% at 74% 26%,rgba(150,175,160,.42) 0%,transparent 62%),
    radial-gradient(48% 42% at 86% 58%,rgba(63,209,95,.20) 0%,transparent 64%),
    radial-gradient(80% 62% at 16% 34%,rgba(52,86,70,.42) 0%,transparent 66%),
    radial-gradient(120% 90% at 50% 120%,rgba(0,166,47,.30) 0%,transparent 58%),
    linear-gradient(180deg,#182020 0%,#0d1210 52%,#000 100%)}
.cr-photo::before{content:"";position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px),
    radial-gradient(rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:64px 64px,64px 64px,15px 15px;
  -webkit-mask-image:radial-gradient(90% 70% at 60% 40%,#000 0%,transparent 78%);
          mask-image:radial-gradient(90% 70% at 60% 40%,#000 0%,transparent 78%)}
.cr-photo::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.35) 0%,rgba(0,0,0,.55) 58%,#000 100%)}
/* Bottom-left, not top-right: the fixed header lives top-right and the two
   collided on every hero. (F-17) */
.cr-photo__note{position:absolute;left:16px;bottom:16px;z-index:3;font-size:10.5px;
  letter-spacing:.09em;text-transform:uppercase;color:rgba(255,255,255,.40);
  border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:5px 11px;
  backdrop-filter:blur(4px)}

/* ══════════════════════════════════════════════════════════════════════════
   THE DRAWN-UI KIT
   This is what makes a Crelio page look expensive. Never draw a plain box
   with a label in it — build the real thing out of these parts.
   ══════════════════════════════════════════════════════════════════════════ */

/* app frame — the browser/dashboard shell */
.ui{background:#fff;border:1px solid var(--line2);border-radius:var(--r-sm);
  box-shadow:var(--sh-ui);overflow:hidden;font-size:12px;color:#0f172a;width:100%}
.ui__bar{display:flex;align-items:center;gap:6px;padding:10px 12px;
  border-bottom:1px solid var(--line2);background:#fbfcfb}
.ui__dot{width:8px;height:8px;border-radius:50%;background:#E2E6E2}
.ui__dot--g{background:#4ED06A}.ui__dot--a{background:#F0C674}.ui__dot--r{background:#EE8878}
.ui__title{margin-left:8px;font-size:11.5px;font-weight:600;color:var(--ink)}
.ui__body{padding:14px}
.ui__hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.ui__hd h5{margin:0;font-size:13px;font-weight:600;color:var(--ink)}

/* data rows — patient lists, order lists, sample lists */
.ui-row{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--r-xs);
  border:1px solid var(--line2);background:#fff;margin-bottom:7px}
.ui-row:last-child{margin-bottom:0}
.ui-row--hi{border-color:rgba(0,168,45,.35);background:rgba(232,247,236,.5)}
.ui-av{width:26px;height:26px;border-radius:50%;flex:none;background:var(--gsoft);
  color:var(--g);display:flex;align-items:center;justify-content:center;
  font-size:9.5px;font-weight:600}
.ui-row__m{flex:1;min-width:0}
.ui-row__m b{display:block;font-size:11.5px;font-weight:600;color:var(--ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ui-row__m span{display:block;font-size:10px;color:var(--faint);margin-top:1px}

/* status pills — colour AND word, never colour alone */
.ui-pill{font-size:9.5px;font-weight:600;padding:3px 9px;border-radius:999px;white-space:nowrap;
  flex:none}
.ui-pill--g{background:var(--gsoft);color:#137019}
.ui-pill--a{background:#FEF6E7;color:#8C6410}
.ui-pill--r{background:#FCEBE9;color:#A63325}
.ui-pill--b{background:#E9F0FD;color:#1856B8}
.ui-pill--n{background:#F1F3F1;color:#5C655C}

/* KPI tiles */
.ui-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(94px,1fr));gap:8px}
.ui-kpi{border:1px solid var(--line2);border-radius:var(--r-xs);padding:10px 11px;background:#fff}
.ui-kpi span{display:block;font-size:9.5px;color:var(--faint);letter-spacing:.03em;
  text-transform:uppercase;margin-bottom:4px}
.ui-kpi b{display:block;font-size:17px;font-weight:600;color:var(--ink);letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;line-height:1.1}
.ui-kpi i{display:block;font-style:normal;font-size:9.5px;margin-top:3px;color:var(--g)}
.ui-kpi i.dn{color:#C0392B}

/* key/value grid */
.ui-kv{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px}
.ui-kv div span{display:block;font-size:9.5px;color:var(--faint);margin-bottom:2px}
.ui-kv div b{display:block;font-size:12px;font-weight:600;color:var(--ink);
  font-variant-numeric:tabular-nums}

/* table */
.ui-tb{width:100%;border-collapse:collapse;font-size:11px}
.ui-tb th{text-align:left;font-size:9px;font-weight:600;letter-spacing:.07em;
  text-transform:uppercase;color:var(--faint);padding:7px 8px;border-bottom:1px solid var(--line2)}
.ui-tb td{padding:8px;border-bottom:1px solid #F4F6F4;color:#293029;
  font-variant-numeric:tabular-nums}
.ui-tb tr:last-child td{border-bottom:0}

/* bar chart */
.ui-bars{display:flex;align-items:flex-end;gap:6px;height:88px;padding-top:8px}
.ui-bars i{flex:1;background:#EDF0ED;border-radius:3px 3px 0 0;display:block;position:relative}
.ui-bars i.on{background:linear-gradient(180deg,#3FD15F,#00A82D)}
.ui-bars i.on::after{content:attr(data-v);position:absolute;top:-15px;left:50%;
  transform:translateX(-50%);font-size:9px;font-weight:600;color:var(--g)}
.ui-axis{display:flex;gap:6px;margin-top:6px}
.ui-axis span{flex:1;text-align:center;font-size:8.5px;color:var(--faint)}

/* area chart — inline SVG, scales to its box */
.ui-area{width:100%;height:96px;display:block}

/* donut — pure CSS conic */
.ui-donut{width:104px;height:104px;border-radius:50%;flex:none;position:relative;
  background:conic-gradient(var(--g) 0 62%,#7DE083 62% 79%,#CFE9D4 79% 100%)}
.ui-donut::after{content:"";position:absolute;inset:15px;border-radius:50%;background:#fff}
.ui-donut__c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;
  justify-content:center;z-index:2}
.ui-donut__c b{font-size:17px;font-weight:600;color:var(--ink);line-height:1;
  font-variant-numeric:tabular-nums}
.ui-donut__c span{font-size:8.5px;color:var(--faint);margin-top:2px}
.ui-legend{display:flex;flex-direction:column;gap:7px;font-size:10.5px}
.ui-legend div{display:flex;align-items:center;gap:7px;color:#3A423A}
.ui-legend i{width:8px;height:8px;border-radius:2px;flex:none}
.ui-legend b{margin-left:auto;font-variant-numeric:tabular-nums;color:var(--ink)}

/* progress meter */
.ui-meter{height:6px;border-radius:99px;background:#EDF0ED;overflow:hidden;flex:1}
.ui-meter i{display:block;height:100%;border-radius:99px;
  background:linear-gradient(90deg,#3FD15F,#00A82D)}

/* alert card — dark, for exception/critical UI */
.ui-alert{border-radius:var(--r-sm);overflow:hidden;background:#0f1310;
  border:1px solid rgba(255,255,255,.09)}
.ui-alert__h{background:linear-gradient(90deg,#00A82D,#067A24);color:#fff;padding:9px 13px;
  font-size:11.5px;font-weight:600;display:flex;align-items:center;gap:7px}
.ui-alert__h.warn{background:linear-gradient(90deg,#C9971C,#96690A)}
.ui-alert__b{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px;padding:14px}
.ui-alert__b span{display:block;font-size:9.5px;color:#8A948C;margin-bottom:3px}
.ui-alert__b b{display:block;font-size:12.5px;color:#fff;font-weight:500;
  font-variant-numeric:tabular-nums}
.ui-alert__b b.warn{color:#F2C14E}

/* flow diagram — node → node → node */
.ui-flow{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;justify-content:center;
  width:100%}
.ui-node{border:1px solid var(--line2);border-radius:var(--r-xs);background:#fff;padding:10px 6px;
  text-align:center;flex:1 1 0;min-width:0;position:relative}
.ui-node b{display:block;width:30px;height:30px;margin:0 auto 7px;border-radius:9px;
  background:var(--gsoft);color:var(--gi);display:flex;align-items:center;justify-content:center}
.ui-node b svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.75;
  stroke-linecap:round;stroke-linejoin:round}
.ui-node.on b{background:linear-gradient(180deg,#3FD15F,#00A82D);color:#fff}
.ui-node span{font-size:9.5px;color:#3A423A;display:block;line-height:1.3}
.ui-node__i{position:absolute;top:6px;right:7px;font-size:8.5px;color:var(--faint);
  font-weight:600}
.ui-arrow{color:#C8D0C9;flex:none}
.ui-arrow svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round}

/* hub-and-spoke — the "everything connects to Crelio" diagram */
.ui-hub{position:relative;width:100%;max-width:330px;aspect-ratio:1/.72;margin:0 auto}
.ui-hub__c{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:78px;
  height:78px;border-radius:50%;background:radial-gradient(circle at 32% 30%,#4EE07A 0%,
  #17B93E 60%,#009E29 100%);box-shadow:0 12px 34px -10px rgba(0,168,45,.55);display:flex;
  align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:600;z-index:2}
.ui-hub__n{position:absolute;width:38px;height:38px;border-radius:11px;background:#fff;
  border:1px solid var(--line2);box-shadow:var(--sh-flat);display:flex;align-items:center;
  justify-content:center;color:var(--gi);z-index:2}
.ui-hub__n svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round}
.ui-hub__l{position:absolute;left:0;top:0;width:100%;height:100%;z-index:1}

/* phone frame */
.ui-phone{width:216px;border-radius:26px;border:8px solid #141815;background:#fff;
  overflow:hidden;box-shadow:0 26px 60px -22px rgba(0,0,0,.45);margin:0 auto}
.ui-phone__n{height:20px;background:#141815;position:relative}
.ui-phone__n::after{content:"";position:absolute;left:50%;top:4px;transform:translateX(-50%);
  width:56px;height:5px;border-radius:99px;background:#2A302C}
.ui-phone__b{padding:12px}

/* barcode */
.ui-code{display:flex;align-items:flex-end;gap:1.5px;height:38px}
.ui-code i{width:2px;background:var(--ink);border-radius:1px;height:100%}
.ui-code i:nth-child(3n){width:3.5px}
.ui-code i:nth-child(4n){height:76%}
.ui-code i:nth-child(5n){width:1.5px;height:88%}

/* floating stat card — for the panel compositions */
.ui-stat{background:#fff;border-radius:var(--r-sm);box-shadow:var(--sh-ui);padding:18px 20px;
  display:flex;align-items:center;justify-content:space-between;gap:18px;min-width:212px}
.ui-stat b{display:block;font-size:26px;font-weight:600;color:var(--ink);letter-spacing:-.02em;
  line-height:1.05;font-variant-numeric:tabular-nums}
.ui-stat span{display:block;font-size:11.5px;color:var(--faint);margin-top:3px}

/* ── PROCESS RAIL ───────────────────────────────────────────────────────── */
.cr-rail{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:0;position:relative}
.cr-rail__s{text-align:center;padding:0 10px;position:relative}
.cr-rail__s::before{content:"";position:absolute;top:17px;left:0;width:100%;height:2px;
  background:var(--line)}
.cr-rail__s.done::before{background:var(--g)}
.cr-rail__s:first-child::before{left:50%;width:50%}
.cr-rail__s:last-child::before{width:50%}
.cr-rail__d{position:relative;z-index:2;width:36px;height:36px;border-radius:50%;margin:0 auto 14px;
  background:#fff;border:2px solid var(--line);display:flex;align-items:center;
  justify-content:center;font-size:13px;font-weight:600;color:var(--faint)}
.cr-rail__s.done .cr-rail__d{background:var(--g);border-color:var(--g);color:#fff}
.cr-rail__s.now .cr-rail__d{border-color:var(--g);color:var(--g)}
.cr-rail__s h4{margin:0 0 6px;font-size:16px;font-weight:500;color:var(--ink);
  letter-spacing:-.02em}
.cr-rail__s p{margin:0 auto;font-size:14px;line-height:20px;color:var(--muted);max-width:180px}
.cr-rail__f{position:absolute;top:-26px;left:50%;transform:translateX(-50%);background:var(--g);
  color:#fff;font-size:11px;font-weight:500;padding:5px 11px;border-radius:99px;
  white-space:nowrap;box-shadow:var(--sh-cta)}

/* ── TRUST / SECURITY GRID ──────────────────────────────────────────────── */
.cr-tdark{background:var(--black2);border-radius:var(--r-lg);padding:36px 32px;height:100%;
  color:#fff;display:flex;flex-direction:column}
.cr-tdark__e{color:var(--g2);font-size:14px;font-weight:500;margin:0 0 8px}
.cr-tdark h3{font-size:24px;line-height:32px;font-weight:500;letter-spacing:-.02em;margin:0 0 22px}
.cr-tlist{list-style:none;padding:0;margin:0 0 auto;display:flex;flex-direction:column;gap:14px}
.cr-tlist li{display:flex;align-items:center;gap:12px;font-size:14px;line-height:20px;
  letter-spacing:-.01em;color:rgba(255,255,255,.92)}
.cr-tlist .ck{width:26px;height:26px;border-radius:50%;background:rgba(63,209,95,.16);
  color:var(--g2);display:inline-flex;align-items:center;justify-content:center;flex:none}
.cr-tlist .ck svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.2;
  stroke-linecap:round;stroke-linejoin:round}
.cr-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px;padding-top:22px;
  border-top:1px solid rgba(255,255,255,.08)}
.cr-chips span{font-size:10.5px;letter-spacing:.06em;color:rgba(255,255,255,.7);
  border:1px solid rgba(255,255,255,.14);border-radius:6px;padding:5px 9px}

.cr-cells{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line2);
  border-radius:var(--r-lg);overflow:hidden;height:100%;
  transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.cr-cells:hover{transform:translateY(-4px);border-color:rgba(0,168,45,.3);box-shadow:var(--sh-lift)}
.cr-cell{padding:26px 22px;border-right:1px solid var(--line2);border-bottom:1px solid var(--line2);
  background:#fff}
.cr-cell:nth-child(3n){border-right:0}
.cr-cell:nth-child(n+4){border-bottom:0}
.cr-cell__i{color:var(--gi);margin-bottom:14px}
.cr-cell__i svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.75;
  stroke-linecap:round;stroke-linejoin:round}

/* ── PROOF BAND ─────────────────────────────────────────────────────────── */
.cr-stats{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:44px}
.cr-stat{text-align:center;padding:0 16px;border-left:1px solid rgba(0,0,0,.08)}
.cr-stat:first-child{border-left:0}
.cr-stat b{display:block;font-family:var(--serif);font-weight:400;font-size:48px;line-height:1;
  letter-spacing:-.02em;color:var(--g)}
.cr-stat span{display:block;font-size:14px;color:var(--muted);margin-top:10px}
.cr-quote{background:#fff;border-radius:var(--r-lg);padding:26px;height:100%;display:flex;
  flex-direction:column}
.cr-quote__m{font-size:26px;line-height:1;color:var(--g);opacity:.55;margin-bottom:12px;
  font-family:var(--serif)}
.cr-quote p{font-size:16px;line-height:24px;color:var(--ink);margin:0 0 auto;letter-spacing:-.01em}
.cr-quote__w{display:flex;align-items:center;gap:12px;margin-top:22px;padding-top:18px;
  border-top:1px solid var(--line)}
.cr-quote__w i{width:34px;height:34px;border-radius:50%;background:var(--gsoft);color:var(--g);
  display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;
  font-style:normal;flex:none}
.cr-quote__w b{display:block;font-size:16px;font-weight:500;color:var(--ink);letter-spacing:-.02em}
.cr-quote__w span{display:block;font-size:14px;color:var(--muted)}

/* ── MOTION ─────────────────────────────────────────────────────────────── */
.cr-words .w{display:inline-block;opacity:0;filter:blur(12px);
  transform:translate3d(0,.35em,0);
  transition:opacity 700ms var(--ease),filter 700ms var(--ease),transform 700ms var(--ease);
  transition-delay:calc(var(--i,0) * 60ms)}
.cr-words.in .w{opacity:1;filter:blur(0);transform:none}
.cr-up{opacity:0;transform:translateY(16px);
  transition:opacity .6s var(--ease),transform .6s var(--ease)}
.cr-up.in{opacity:1;transform:none}
@keyframes cr-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes cr-pulse{0%,100%{opacity:.5}50%{opacity:1}}
.cr-anim-float{animation:cr-float 6s ease-in-out infinite}
.cr-anim-pulse{animation:cr-pulse 3.2s ease-in-out infinite}

@media (prefers-reduced-motion:reduce){
  .cr-words .w{opacity:1!important;filter:none!important;transform:none!important;
    transition:none!important}
  .cr-up{opacity:1!important;transform:none!important}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important}
}

/* ── RESPONSIVE ─────────────────────────────────────────────────────────── */
@media (max-width:991px){
  .cr-sec{padding:64px 0}
  .cr-head,.cr-headrow{margin-bottom:36px}
  .cr-t--hero{font-size:40px}.cr-t--feat{font-size:36px}.cr-t--sec{font-size:32px}
  .cr-g2,.cr-g3,.cr-g4,.cr-bento-a,.cr-bento-b{grid-template-columns:1fr}
  .cr-split,.cr-headrow{grid-template-columns:1fr;gap:32px;align-items:start}
  .cr-split--rev>*:first-child{order:0}
  .cr-rail{grid-auto-flow:row;gap:26px}
  .cr-rail__s::before{display:none}
  .cr-cells{grid-template-columns:1fr}
  .cr-cell{border-right:0}
  .cr-cell:last-child{border-bottom:0}
  .cr-stats{grid-template-columns:repeat(2,1fr);gap:28px 0}
  .cr-stat:nth-child(3){border-left:0}
  .cr-band{flex-direction:column;align-items:flex-start}
  .cr-dome{height:220px}
}
@media (max-width:575px){
  .cr-sec{padding:48px 0}
  .cr-t--hero{font-size:32px}.cr-t--sec{font-size:27px}
  .cr-card{padding:20px}
  .cr-stats{grid-template-columns:1fr}
  .cr-stat{border-left:0}
}

:where(a,button,[tabindex]):focus-visible{outline:2px solid var(--g);outline-offset:3px;
  border-radius:6px}
.cr-sec--dark :where(a,button,[tabindex]):focus-visible{outline-color:var(--g2)}

/* ── GENERATED BANNER ─────────────────────────────────────────────────────
   Output of make-banner.py. Unique per page slug, no external file, cannot
   break. The inline <svg> fills the slot; the scrim is already baked in.    */
.cr-photo--gen{background:#000}
.cr-photo--gen::before,.cr-photo--gen::after{display:none}
.cr-photo--gen>svg{position:absolute;inset:0;width:100%;height:100%;display:block}


/* ══════════════════════════════════════════════════════════════════════════
   REPEATED SECTIONS
   --------------------------------------------------------------------------
   Eight sections appear on every solutions page. Their DESIGN IS FROZEN —
   only the words, links and images inside them change. Copy the block from
   blocks.html and swap the content. Never restyle them, never rebuild them
   from scratch, never "improve" them for one page. The developer builds each
   of these once and reuses it; a page that renders them differently is a
   page he has to unpick by hand.

   The eight:  BADGES · BROCHURE · COMPLIANCE · TESTIMONIAL
               EXPLORE · BLOGS · FAQ · CTA
   ══════════════════════════════════════════════════════════════════════════ */

/* ── BADGES ────────────────────────────────────────────────────────────────
   Sits directly under the hero, on the same black, so the hero photo fades
   into it and the two read as one opening. Never on a light ground — the G2
   shields are white and vanish.                                            */
.cr-badges{background:var(--black);padding:52px 0 60px}
.cr-badges__in{display:flex;align-items:center;gap:28px 48px;flex-wrap:wrap}
.cr-badges__lb{flex:0 0 auto;font-size:15px;letter-spacing:-.01em;
  color:rgba(255,255,255,.72)}
.cr-badges__row{display:flex;align-items:center;gap:16px 34px;flex-wrap:wrap;
  margin-left:auto}
.cr-badges__row img{display:block;height:80px;width:auto}
.cr-badges__row img.cr-badge--wide{height:52px}
@media (max-width:991px){
  .cr-badges{padding:38px 0 42px}
  .cr-badges__in{gap:20px}
  .cr-badges__row{margin-left:0;gap:14px 24px}
  .cr-badges__row img{height:58px}
  .cr-badges__row img.cr-badge--wide{height:38px}
}

/* The same claim at section scale, as outlined pills — used inside PROOF,
   never as a substitute for the badge band.                                */
.cr-rate{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:26px}
.cr-rate span{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line2);
  background:#fff;border-radius:var(--r-pill);padding:7px 15px;font-size:12.5px;
  font-weight:500;letter-spacing:-.01em;color:var(--ink)}
.cr-rate svg{width:12px;height:12px;flex:none;color:var(--g)}
.cr-sec--dark .cr-rate span,.cr-sec--ink .cr-rate span{background:rgba(255,255,255,.04);
  border-color:rgba(255,255,255,.14);color:#E7EFE8}
.cr-sec--dark .cr-rate svg,.cr-sec--ink .cr-rate svg{color:var(--g2)}

/* ── COMPLIANCE ────────────────────────────────────────────────────────────
   A black card carrying the promise, a hairline grid carrying the proof.
   The headline here is SANS, not serif — it is a statement of fact, not a
   section title, and the home page sets it that way.                       */
.cr-comply{display:grid;grid-template-columns:.86fr 1.5fr;gap:26px;align-items:stretch}
.cr-comply__card{background:var(--black2);border-radius:var(--r-md);padding:34px 32px;
  display:flex;flex-direction:column}
.cr-comply__card .cr-eyebrow{background:transparent;padding:0;color:var(--g2);
  margin-bottom:12px;letter-spacing:.01em;text-transform:none;font-size:14px;font-weight:500}
.cr-comply__card h3{margin:0 0 24px;font-family:var(--sans);font-size:24px;font-weight:500;
  line-height:1.24;letter-spacing:-.02em;color:#fff}
.cr-comply__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:15px}
.cr-comply__list li{display:flex;align-items:flex-start;gap:11px;font-size:15px;
  line-height:1.45;color:rgba(255,255,255,.86)}
.cr-comply__list svg{width:19px;height:19px;flex:none;margin-top:1px;color:var(--g2)}
.cr-comply__seal{margin-top:auto;padding-top:28px;display:flex;flex-wrap:wrap;gap:8px}
.cr-comply__seal span{border:1px solid rgba(255,255,255,.20);border-radius:var(--r-xs);
  padding:6px 12px;font-size:12px;font-weight:500;color:rgba(255,255,255,.82)}
.cr-comply__grid{display:grid;grid-template-columns:repeat(3,1fr);background:#fff;
  border:1px solid var(--line2);border-radius:var(--r-md);overflow:hidden}
.cr-comply__grid>div{padding:26px 24px 28px;border-right:1px solid var(--line2);
  border-bottom:1px solid var(--line2)}
.cr-comply__grid>div:nth-child(3n){border-right:0}
.cr-comply__grid>div:nth-last-child(-n+3){border-bottom:0}
.cr-comply__grid svg{width:22px;height:22px;display:block;margin-bottom:16px;color:var(--gi)}
.cr-comply__grid b{display:block;font-size:16px;font-weight:500;letter-spacing:-.01em;
  color:var(--ink);margin-bottom:6px}
.cr-comply__grid p{margin:0;font-size:14px;line-height:1.5;color:var(--muted)}
@media (max-width:991px){
  .cr-comply{grid-template-columns:1fr}
  .cr-comply__grid{grid-template-columns:repeat(2,1fr)}
  .cr-comply__grid>div{border-right:1px solid var(--line2);border-bottom:1px solid var(--line2)}
  .cr-comply__grid>div:nth-child(2n){border-right:0}
  .cr-comply__grid>div:nth-last-child(-n+2){border-bottom:0}
}
@media (max-width:575px){
  .cr-comply__grid{grid-template-columns:1fr}
  .cr-comply__grid>div{border-right:0;border-bottom:1px solid var(--line2)}
  .cr-comply__grid>div:last-child{border-bottom:0}
}

/* ── BROCHURE ──────────────────────────────────────────────────────────────
   Page-specific PDF. If the page has no brochure, DELETE THE WHOLE BLOCK —
   never ship it pointing at a file that does not exist.                    */
.cr-broch{display:grid;grid-template-columns:1.25fr .75fr;gap:40px;align-items:center;
  background:#fff;border:1px solid var(--line2);border-radius:var(--r-xl);
  padding:38px 40px;box-shadow:var(--sh-flat)}
.cr-broch h3{margin:14px 0 10px;font-family:var(--serif);font-size:32px;font-weight:400;
  line-height:110%;letter-spacing:-.02em;color:var(--ink)}
.cr-broch h3 em{font-style:normal;color:var(--g)}
.cr-broch p{margin:0 0 22px;font-size:16px;line-height:1.55;color:var(--muted);max-width:52ch}
.cr-broch__meta{display:flex;align-items:center;gap:8px;margin-top:14px;font-size:13px;
  color:var(--faint)}
.cr-broch__doc{position:relative;justify-self:end;width:100%;max-width:230px;aspect-ratio:210/297;
  background:linear-gradient(160deg,#fff,#F2F7F3);border:1px solid var(--line2);
  border-radius:var(--r-sm);box-shadow:var(--sh-ui);overflow:hidden;padding:22px 20px;
  display:flex;flex-direction:column;gap:9px}
.cr-broch__doc::after{content:"";position:absolute;right:-38px;bottom:-52px;width:150px;
  height:150px;border-radius:50%;background:radial-gradient(circle,rgba(0,168,45,.20),transparent 68%)}
.cr-broch__doc i{display:block;height:7px;border-radius:var(--r-pill);background:var(--line2)}
.cr-broch__doc i:nth-child(1){width:56%;height:11px;background:var(--gsoft)}
.cr-broch__doc i:nth-child(2){width:100%}
.cr-broch__doc i:nth-child(3){width:88%}
.cr-broch__doc i:nth-child(4){width:94%}
.cr-broch__doc i:nth-child(5){width:62%;margin-bottom:6px}
.cr-broch__doc b{display:block;height:52px;border-radius:var(--r-xs);
  background:linear-gradient(135deg,rgba(0,168,45,.14),rgba(0,168,45,.04));
  border:1px solid rgba(0,168,45,.18)}
@media (max-width:991px){
  .cr-broch{grid-template-columns:1fr;gap:30px;padding:30px 26px}
  .cr-broch__doc{justify-self:start;max-width:180px}
}

/* ── EXPLORE MORE WAYS ─────────────────────────────────────────────────────
   Exactly three links to sibling solution pages. Never two, never four.    */
.cr-explore{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.cr-explore a{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line2);
  border-radius:var(--r-lg);padding:26px;text-decoration:none;box-shadow:var(--sh-flat);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease)}
.cr-explore a:hover{transform:translateY(-3px);box-shadow:var(--sh-lift);
  border-color:var(--gline)}
.cr-explore svg.cr-explore__i{width:26px;height:26px;color:var(--gi);margin-bottom:18px}
.cr-explore b{font-size:18px;font-weight:500;letter-spacing:-.02em;color:var(--ink);
  margin-bottom:8px}
.cr-explore p{margin:0 0 20px;font-size:14.5px;line-height:1.5;color:var(--muted)}
.cr-explore__go{margin-top:auto;display:inline-flex;align-items:center;gap:7px;font-size:14px;
  font-weight:500;color:var(--g)}
.cr-explore__go svg{width:15px;height:15px;transition:transform .3s var(--ease)}
.cr-explore a:hover .cr-explore__go svg{transform:translateX(4px)}
@media (max-width:991px){.cr-explore{grid-template-columns:1fr}}

/* ── BLOG GRID ─────────────────────────────────────────────────────────────
   Three real posts from the page's own blog category, then one CTA to that
   category. The thumbnail is a drawn .cr-vis until real images exist.      */
.cr-blogs{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.cr-blogs a{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line2);
  border-radius:var(--r-lg);overflow:hidden;text-decoration:none;box-shadow:var(--sh-flat);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease)}
.cr-blogs a:hover{transform:translateY(-3px);box-shadow:var(--sh-lift);border-color:var(--gline)}
.cr-blogs__th{position:relative;height:172px;flex:none;overflow:hidden;
  border-bottom:1px solid var(--line2);
  background:
    radial-gradient(120% 92% at 78% 6%,rgba(0,168,45,.17),transparent 62%),
    linear-gradient(152deg,#EFF6F1 0%,#F7F9F8 54%,#E7F3EA 100%)}
/* A blog card with a flat grey thumbnail is an empty box (F-06). Until real
   thumbnails exist this carries the dot mesh so the card reads as finished.
   PRODUCTION: put <img> inside .cr-blogs__th; it covers this entirely. */
.cr-blogs__th::after{content:"";position:absolute;inset:0;
  background-image:radial-gradient(rgba(14,14,14,.11) 1px,transparent 1px);
  background-size:14px 14px;
  -webkit-mask-image:radial-gradient(86% 86% at 26% 104%,#000 10%,transparent 74%);
          mask-image:radial-gradient(86% 86% at 26% 104%,#000 10%,transparent 74%)}
.cr-blogs__th img{width:100%;height:100%;object-fit:cover;display:block}
.cr-blogs__b{padding:20px 22px 24px;display:flex;flex-direction:column;flex:1}
.cr-blogs__b .cr-tag{align-self:flex-start;margin-bottom:12px}
.cr-blogs__b b{font-size:17px;font-weight:500;line-height:1.35;letter-spacing:-.02em;
  color:var(--ink)}
.cr-blogs__m{margin-top:auto;padding-top:18px;font-size:13px;color:var(--faint)}
@media (max-width:991px){.cr-blogs{grid-template-columns:1fr}}

/* ── FAQ ───────────────────────────────────────────────────────────────────
   Native <details>. No script, so it cannot break, and it stays open for
   Ctrl-F and for search engines.                                          */
.cr-faq{border-top:1px solid var(--line2)}
.cr-faq details{border-bottom:1px solid var(--line2)}
.cr-faq summary{list-style:none;cursor:pointer;display:flex;align-items:flex-start;gap:20px;
  padding:22px 0;font-size:18px;font-weight:500;line-height:1.4;letter-spacing:-.02em;
  color:var(--ink);transition:color .2s ease}
.cr-faq summary::-webkit-details-marker{display:none}
.cr-faq summary:hover{color:var(--g)}
.cr-faq summary::after{content:"";flex:none;margin-left:auto;width:11px;height:11px;
  margin-top:7px;border-right:2px solid var(--g);border-bottom:2px solid var(--g);
  transform:rotate(45deg);transition:transform .25s var(--ease)}
.cr-faq details[open] summary::after{transform:rotate(-135deg)}
.cr-faq details>div{padding:0 44px 24px 0;font-size:16px;line-height:1.6;color:var(--muted);
  max-width:78ch}
.cr-faq details>div p{margin:0 0 12px}
.cr-faq details>div p:last-child{margin-bottom:0}
.cr-sec--dark .cr-faq,.cr-sec--dark .cr-faq details{border-color:var(--lined)}
.cr-sec--dark .cr-faq summary{color:#F2F6F2}
.cr-sec--dark .cr-faq summary:hover{color:var(--g2)}
.cr-sec--dark .cr-faq summary::after{border-color:var(--g2)}
.cr-sec--dark .cr-faq details>div{color:rgba(255,255,255,.70)}
@media (max-width:575px){
  .cr-faq summary{font-size:16.5px;gap:14px}
  .cr-faq details>div{padding-right:0;font-size:15px}
}

/* ══════════════════════════════════════════════════════════════════════════
   FIXES FOLDED UP FROM PAGE RUNS
   Each of these was patched by hand inside a built page. A fix that lives in
   one page is a fix the next page does not get, so they belong here.
   ══════════════════════════════════════════════════════════════════════════ */

/* The glow green is scoped to .cr-sec--dark / .cr-sec--ink. The hero and the
   closing CTA are dark grounds carrying NEITHER class, so their emphasis fell
   back to --g on black — 3.0:1, and visibly duller than every dark section
   between them. Those two are the first places a stranger compares. */
.cr-hero .cr-t em,.cr-cta .cr-t em{color:var(--g2)}
.cr-hero .cr-lead,.cr-cta .cr-lead{color:rgba(255,255,255,.72)}

/* A dark card pinned .cr-vis to its own height and out-ranked .cr-vis--tall,
   clipping the taller compositions. */
.cr-card--dark .cr-vis--tall{height:270px}

/* .cr-panel is --panel, the same value as a panel-ground section, so on that
   ground it vanished. Lift it to white and give it the card hairline. */
.cr-sec--panel .cr-panel{background:#fff;border:1px solid var(--line2)}

/* 520px is the measure for a lead sitting BESIDE a headline, not under one.
   Centred leads were reading as narrow ragged columns. */
.cr-head--center .cr-lead{max-width:660px;margin-left:auto;margin-right:auto;
  text-align:center}

/* Five stacked feature rows read as one undifferentiated column without this. */
.cr-sec .cr-split+.cr-headrow{margin-top:104px}
@media (max-width:991px){.cr-sec .cr-split+.cr-headrow{margin-top:64px}}

/* Any block that sets .cr-split columns with an INLINE style out-ranks the
   kit's mobile rule and stays two-up on a phone. !important is the only thing
   that beats an inline declaration, so it is used deliberately and only here. */
@media (max-width:991px){.cr-sec .cr-split{grid-template-columns:1fr!important}}

/* A grid or flex item is min-width:auto by default, so a table, a flow
   diagram or any other wide drawn composition inside a card sets a floor on
   its track and pushes the whole column past the viewport — the page then
   scrolls sideways on a phone. Cards have to be allowed to shrink.
   Found on molecular, where six cards pushed the body 15px wide. (F-37) */
.cr-card,.cr-card--dark,.cr-cells,.cr-quote,.cr-vis>*{min-width:0}

/* The quote mark at 26px / .55 opacity disappeared. */
.cr-quote__m{font-size:40px;opacity:.75;margin-bottom:14px}


/* ══════════════════════════════════════════════════════════════════════════
   THE HERO
   --------------------------------------------------------------------------
   Four layers, in this order, exactly as the live site builds it:
     1  .cr-hero__img     the photograph, object-position top
     2  .cr-hero__scrim   a vertical scrim that ends in SOLID black
     3  .cr-hero__glow    an off-centre oval, soft-light, half opacity
     4  .cr-hero__in      the content

   The scrim reaching pure black at 100% is what lets the hero cut straight
   into the next section with no transition device. That hard cut is the
   design — do not soften it, and do not put a dome under it.
   ══════════════════════════════════════════════════════════════════════════ */
.cr-hero{position:relative;min-height:100vh;display:flex;align-items:flex-end;
  overflow:hidden;
  background:linear-gradient(rgba(0,0,0,.4) 0%,rgba(0,0,0,.6) 60%,#000 100%),var(--black2)}
.cr-hero>.cr-photo,.cr-hero__img{position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center top;animation:cr-hero-fade .3s ease-out both}
@keyframes cr-hero-fade{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.cr-hero__img{animation:none}}

/* Solutions pages start the scrim at 10%; the home page starts it at 40%.
   Ours are solutions pages, so 10% is the default — the headline sits low
   and needs the depth. */
.cr-hero__scrim{position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(rgba(0,0,0,0) 10%,#000 100%)}
.cr-hero__scrim--home{background:linear-gradient(rgba(0,0,0,0) 40%,#000 100%)}

/* The signature oval. The live site loads a PNG; this is the same figure as a
   gradient so the page still needs no external file. Keep the blend mode and
   the opacity — at soft-light .5 it lifts the photo without lighting it. */
.cr-hero__glow{position:absolute;left:-339px;top:150px;width:1115px;height:610px;
  z-index:1;pointer-events:none;mix-blend-mode:soft-light;opacity:.5;
  background:radial-gradient(58% 66% at 42% 78%,
    rgba(255,255,255,.95) 0%,rgba(198,241,210,.55) 34%,
    rgba(0,166,47,.28) 58%,rgba(0,166,47,0) 78%)}

.cr-hero__in{position:relative;z-index:3;width:100%;padding-bottom:88px;padding-top:160px}
.cr-hero__grid{display:grid;grid-template-columns:1.25fr .95fr;gap:56px;align-items:end}
.cr-hero__badge{display:inline-flex;align-items:center;gap:8px;color:#fff;font-size:13px;
  font-weight:500;margin-bottom:22px;border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.06);border-radius:var(--r-pill);padding:7px 14px}
.cr-hero__badge svg{width:14px;height:14px;fill:none;stroke:var(--g2);stroke-width:1.7;
  stroke-linejoin:round}
.cr-hero__side{display:flex;flex-direction:column;align-items:flex-start;gap:26px}
.cr-hero__desc{font-size:16px;line-height:24px;letter-spacing:-.011em;color:#fff;margin:0;
  max-width:460px}
@media (max-width:991px){
  .cr-hero{min-height:auto}
  .cr-hero__grid{grid-template-columns:1fr;gap:28px;align-items:start}
  .cr-hero__in{padding:130px 24px 56px}  /* 24px, never 0 — a `padding` shorthand
    here wipes the gutter .cr-wrap gives it and the headline, lead and buttons
    all run off the screen edge on a phone. (F-36) */
  .cr-hero__glow{left:-40%;width:140%;top:120px;height:440px}
}



/* ── PAGE-LEVEL ADDITIONS — AiReq ─────────────────────────────────────────
   Library fixes re-applied by hand (they still are not in Build/), plus the
   handful of rules this page's own BLOCK: sections need. Nothing here
   restyles a REPEAT: block's layout. */

/* FIX (library): the eight REPEAT blocks tag headlines .cr-anim-words, a class
   neither kit.css nor the motion script ever defined, so all eight frozen
   headlines never animated. Mirror the .cr-words rules onto it; the motion
   script at the foot of the page splits and observes both classes. */
.cr-anim-words .w{display:inline-block;opacity:0;filter:blur(12px);
  transform:translate3d(0,.35em,0);
  transition:opacity 700ms var(--ease),filter 700ms var(--ease),transform 700ms var(--ease);
  transition-delay:calc(var(--i,0) * 60ms)}
.cr-anim-words.in .w{opacity:1;filter:blur(0);transform:none}
@media (prefers-reduced-motion:reduce){
  .cr-anim-words .w{opacity:1!important;filter:none!important;transform:none!important;
    transition:none!important}}

/* FIX (library): "View all blogs" uses .cr-btn--ghost, a dark-ground button, on
   REPEAT: BLOGS' panel ground — white on near-white. And as a direct grid child
   of .cr-headrow it stretches the full column and drops 56px below its
   headline. It sits at the right edge, as the live .hc-blog-head does
   (space-between). Fixed in CSS only: F-28 compares class attribute strings. */
.cr-sec:not(.cr-sec--dark):not(.cr-sec--ink) .cr-btn--ghost{
  background:rgba(15,23,42,.03);color:var(--ink);border-color:var(--line2)}
.cr-headrow>.cr-btn{justify-self:end}
@media (max-width:991px){.cr-headrow>.cr-btn{justify-self:start}}
.cr-headrow>.cr-head{margin-bottom:0}

/* FIX (library): .cr-photo::after is tuned for the generated banner, which
   bakes in its own scrim. A real photograph does not, and below 991px the hero
   collapses to min-height:auto so the copy sits high, where .35 is all there
   is. Deepen it there, and make both photo slots fill with a real <img>. */
.cr-hero .cr-photo img,.cr-cta .cr-photo img{position:absolute;inset:0;width:100%;
  height:100%;object-fit:cover;display:block}
.cr-cta .cr-photo img{object-position:center 38%}
/* The CTA photograph is bright where the headline sits. On the kit's .35/.55
   scrim the green word measured 2.5:1 at 1440 (below 3:1 for large text); on
   this one it measures 4.2:1, the white headline 8.4:1. Same rule at every width. */
.cr-cta>.cr-photo::after{background:linear-gradient(180deg,rgba(0,0,0,.55) 0%,
    rgba(0,0,0,.68) 58%,#000 100%)}
@media (max-width:991px){
  /* Below 991px the hero drops to min-height:auto, so the copy sits high where
     the scrim is still transparent — measured 2.9:1 on the H1 at 390px. Deepen
     it here only; the foot still reaches solid black, so the hard cut into the
     badge band is untouched. (F-27) */
  .cr-hero__scrim{background:linear-gradient(rgba(0,0,0,.46) 0%,rgba(0,0,0,.64) 45%,
    #000 100%)}}

/* ── this page ───────────────────────────────────────────────────────────── */

/* The hero photograph's subject — the hands, the form, the scanner line — sits
   in its lower two thirds. object-position:center top would crop it away. */
.cr-hero__img{object-position:center 62%}
.cr-hero__desc--sub{color:rgba(255,255,255,.72);font-size:15px}

/* Two scenes stacked in one section need the same separation the kit gives a
   split followed by a headrow. */
.cr-sec .cr-split + .cr-split{margin-top:104px}
@media (max-width:991px){.cr-sec .cr-split + .cr-split{margin-top:56px}}

/* A scene's text column: pill, headline, lead, in a column. */
.cr-scene__txt .cr-pill{margin-bottom:22px}
.cr-scene__txt .cr-t{margin-bottom:24px}
.cr-scene__txt .cr-lead{max-width:520px}
.cr-scene__txt .cr-btn{margin-top:28px}

/* .cr-panel is --panel, a light grey, so on a dark section it reads as a hole.
   Give it the dark card's treatment instead. */
.cr-sec--dark .cr-panel,.cr-sec--ink .cr-panel{background:#0f1310;
  border:1px solid rgba(63,209,95,.22);box-shadow:0 0 40px rgba(63,209,95,.06) inset}
.cr-panel--wide{min-height:0;padding:30px}
.cr-scan__pad{padding-top:22px}
.cr-how__more{text-align:center;margin:44px 0 0}

/* The four how-it-works cards carry their step number as a tag above the
   title, so the tag needs to sit on its own line. */
.cr-card__txt .cr-tag{margin-bottom:10px}

/* A grid track is minmax(auto,1fr), so one card whose drawn UI has a wide
   min-content stretches its column past the container — card 4 spilled off the
   right edge at 1440. Let every grid child shrink. */
.cr-g2>*,.cr-g3>*,.cr-g4>*,.cr-split>*{min-width:0}

/* The Revenue Guard pair line — the page's own two-line device. */
.cr-pairline{margin:26px 0 22px;padding-left:16px;border-left:2px solid rgba(63,209,95,.45);
  font-size:18px;line-height:1.5;letter-spacing:-.02em}
.cr-pairline span{display:block;color:rgba(255,255,255,.55)}
.cr-pairline b{display:block;font-weight:500;color:#fff}

/* The hero's closing note. It used to be a third line inside REPEAT: CTA, which
   is frozen; the hero is a BLOCK, so the line lives here now. */
.cr-hero .cr-micro,.cr-cta .cr-micro{color:rgba(255,255,255,.55)}
.cr-hero .cr-micro a,.cr-cta .cr-micro a{color:rgba(255,255,255,.85);white-space:nowrap}
.cr-cta .cr-micro{margin-top:22px}
.cr-cta .cr-pill{background:transparent;border-color:rgba(63,209,95,.35);color:var(--g2);margin-bottom:22px}

/* A lead under a centred section head sat flush against its headline (0px).
   The live .hc-sub clears it by 18px. */
.cr-head .cr-t + .cr-lead{margin-top:18px}

/* The demo reads as a video poster: a play control centred on the drawn frame.
   A real child element, not ::before, so it survives html.to.design. */
.aq-play{position:absolute;left:50%;top:50%;z-index:4;width:64px;height:64px;
  margin:-32px 0 0 -32px;border-radius:50%;background:#fff;display:flex;
  align-items:center;justify-content:center;
  box-shadow:0 18px 40px -12px rgba(0,0,0,.55),0 0 0 8px rgba(0,168,45,.16)}
.aq-play svg{width:24px;height:24px;margin-left:3px;color:var(--g)}
.aq-video{position:relative;display:block;border-radius:var(--r-md);overflow:hidden;cursor:pointer}
.aq-video .aq-play{transition:transform .25s ease}
.aq-video:hover .aq-play,.aq-video:focus-visible .aq-play{transform:scale(1.08)}
.aq-video:focus-visible{outline:3px solid var(--g2);outline-offset:4px}
.aq-frame{display:block;width:100%;height:auto;aspect-ratio:16/9;border:0;border-radius:var(--r-md);background:#000}
.aq-poster{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:var(--r-md)}

/* Book-a-walkthrough form — same pattern as the Revenue Guard page. */
.aq-formcard{max-width:720px;margin:0 auto;padding:40px;height:auto}
.aq-formcard:hover{transform:none}
.aq-form{display:grid;grid-template-columns:1fr 1fr;gap:18px 20px;margin-top:30px}
.aq-form label{display:flex;flex-direction:column;gap:7px;font-size:14px;font-weight:500;color:var(--ink);
  letter-spacing:-.01em;min-width:0}
.aq-form label.full{grid-column:1/-1}
.aq-form label em{font-style:normal;font-weight:400;color:var(--faint);font-size:12.5px;margin-left:4px}
.aq-form input,.aq-form select{font:400 15px/22px var(--sans);color:var(--ink);background:#fff;
  border:1px solid #DADFDA;border-radius:var(--r-xs);padding:11px 14px;width:100%;min-width:0;
  transition:border-color .2s ease,box-shadow .2s ease}
.aq-form input:focus,.aq-form select:focus{outline:none;border-color:var(--gi);
  box-shadow:0 0 0 4px rgba(0,168,45,.12)}
.aq-pot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.aq-form .cr-btn{grid-column:1/-1;justify-self:start;margin-top:6px}
.aq-form__note{grid-column:1/-1;margin:0;font-size:13px;line-height:19px;color:var(--faint)}

/* ── TESTIMONIAL · video quote card + pull quote ── */
.aq-tm__box{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:72px;align-items:center;
  background:#fff;border:1px solid var(--line2);border-radius:var(--r-xl);padding:48px;
  box-shadow:0 30px 60px -40px rgba(15,23,42,.18)}
.aq-tm__card{position:relative;margin:0;background:#0f1310;border-radius:var(--r-lg);overflow:hidden;
  display:flex;flex-direction:column;box-shadow:0 30px 50px -28px rgba(0,0,0,.45)}
.aq-tm__img{display:block;width:100%;height:auto;aspect-ratio:1080/1350}
.aq-tm__video{border-radius:0}
.aq-tm__video .aq-tm__img{transition:transform .5s ease,filter .3s ease}
.aq-tm__video:hover .aq-tm__img{transform:scale(1.02);filter:brightness(1.04)}
.aq-tm__frame{display:block;width:100%;height:auto;aspect-ratio:1080/1350;border:0;background:#000}
.aq-tm__cap{position:relative;display:flex;flex-direction:column;padding:0 36px 32px;margin-top:-64px}
.aq-tm__cap::before{content:"";position:absolute;left:0;right:0;top:-110px;height:200px;z-index:0;
  background:linear-gradient(180deg,rgba(15,19,16,0) 0%,rgba(15,19,16,.85) 50%,#0f1310 80%)}
.aq-tm__cap>*{position:relative;z-index:1}
.aq-tm__eyebrow{font-size:12px;line-height:16px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--g2);margin-bottom:14px}
.aq-tm__lead{font-size:16px;line-height:22px;color:rgba(255,255,255,.8);letter-spacing:-.01em}
.aq-tm__big{font-family:var(--serif);font-size:34px;line-height:1.12;letter-spacing:-.02em;color:#fff;margin-top:6px}
.aq-tm__big em{font-style:normal;color:var(--g2)}
.aq-tm__who{display:flex;align-items:center;gap:16px;margin-top:30px}
.aq-tm__play{flex:none;width:56px;height:56px;border-radius:50%;background:var(--gi);color:#fff;
  display:flex;align-items:center;justify-content:center;box-shadow:0 12px 28px -8px rgba(0,168,45,.6)}
.aq-tm__play svg{width:20px;height:20px;margin-left:3px}
.aq-tm__id{flex:1;min-width:0}
.aq-tm__id b{display:block;font-family:var(--serif);font-weight:400;font-size:21px;line-height:26px;color:#fff}
.aq-tm__id span{display:block;font-size:14px;line-height:20px;color:rgba(255,255,255,.65)}
.aq-tm__dur{flex:none;font-size:13px;line-height:18px;font-variant-numeric:tabular-nums;letter-spacing:.06em;
  color:rgba(255,255,255,.85);border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:5px 12px}
.aq-tm__quote{margin:0;padding-left:36px;border-left:3px solid var(--gi)}
.aq-tm__quote p{font-family:var(--serif);font-size:40px;line-height:1.28;letter-spacing:-.02em;color:var(--ink);margin:0}
.aq-tm__quote footer{margin-top:28px;font-size:16px;line-height:24px;color:var(--muted)}
@media (max-width:1100px){
  .aq-tm__box{gap:48px;padding:36px}
  .aq-tm__quote p{font-size:32px}
}
@media (max-width:900px){
  .aq-tm__box{grid-template-columns:1fr;gap:40px;padding:20px 20px 32px}
  .aq-tm__card{max-width:520px;margin:0 auto;width:100%}
  .aq-tm__quote{padding-left:22px;margin:0 8px}
  .aq-tm__quote p{font-size:26px}
}
@media (max-width:575px){
  .aq-tm__cap{padding:0 22px 24px;margin-top:-48px}
  .aq-tm__big{font-size:26px}
  .aq-tm__who{gap:12px}
  .aq-tm__play{width:48px;height:48px}
  .aq-tm__id b{font-size:18px}
  .aq-tm__id span{font-size:13px}
}

.aq-labs{margin-top:56px;text-align:center}
.aq-labs__t{margin:0 0 30px;font-size:16px;line-height:24px;letter-spacing:.02em;color:var(--muted)}
.aq-labs__row{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;
  justify-content:center;gap:28px 88px}
.aq-labs__logo{display:block;height:56px;width:auto;max-width:190px;object-fit:contain;opacity:.55;
  filter:grayscale(1);transition:opacity .25s ease}
.aq-labs__logo--tall{height:72px}
.aq-labs__logo--round{height:84px}
.aq-labs__row li:hover .aq-labs__logo{opacity:.85}
@media (max-width:900px){.aq-labs{margin-top:44px}.aq-labs__row{gap:28px 48px}}
@media (max-width:575px){
  .aq-labs__row{display:grid;grid-template-columns:1fr 1fr;gap:28px 20px;justify-items:center}
  .aq-labs__logo{height:40px;max-width:140px}.aq-labs__logo--tall{height:54px}.aq-labs__logo--round{height:64px}
}

/* ── HOW IT WORKS · stepper (after the homepage "Workflow Overview") ── */
.aq-wf-track{position:relative;padding-top:56px}
.aq-wf-line{position:absolute;top:78px;left:12.5%;right:12.5%;height:2px;border-radius:2px;
  background:rgba(15,23,42,.10);overflow:hidden}
.aq-wf-fill{display:block;height:100%;width:100%;background:var(--g);
  transition:width .7s cubic-bezier(.4,0,.2,1),height .7s cubic-bezier(.4,0,.2,1)}
.aq-wf.is-running .aq-wf-fill{width:0}
.aq-wf-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.aq-wf-step{position:relative;text-align:center;min-width:0}
.aq-wf-step .cr-cb{max-width:240px;margin:6px auto 0}
.aq-wf-node{position:relative;width:44px;height:44px;border-radius:50%;background:#fff;
  border:2px solid rgba(15,23,42,.12);display:inline-flex;align-items:center;justify-content:center;
  margin-bottom:22px;transition:background .4s ease,border-color .4s ease,transform .4s ease,box-shadow .4s ease}
.aq-wf-num{font-size:15px;font-weight:600;color:var(--muted);line-height:1;transition:opacity .25s ease}
.aq-wf-icon,.aq-wf-check{position:absolute;width:20px;height:20px;color:#fff;opacity:0;transition:opacity .3s ease}
/* default (no JS / finished): every step done */
.aq-wf-step .aq-wf-node,.aq-wf-step.is-done .aq-wf-node,.aq-wf-step.is-active .aq-wf-node{
  background:var(--g);border-color:var(--g)}
.aq-wf-step .aq-wf-num{opacity:0}
.aq-wf-step .aq-wf-check{opacity:1}
/* while running: upcoming steps are neutral */
.aq-wf.is-running .aq-wf-step:not(.is-done):not(.is-active) .aq-wf-node{background:#fff;border-color:rgba(15,23,42,.12)}
.aq-wf.is-running .aq-wf-step:not(.is-done):not(.is-active) .aq-wf-num{opacity:1}
.aq-wf.is-running .aq-wf-step:not(.is-done) .aq-wf-check{opacity:0}
.aq-wf-step.is-active .aq-wf-icon{opacity:1}
.aq-wf-step.is-active .aq-wf-num{opacity:0}
.aq-wf-step.is-active .aq-wf-node{transform:scale(1.08);box-shadow:0 8px 22px -6px rgba(0,168,45,.45)}
.aq-wf-step.is-active .aq-wf-node::before{content:"";position:absolute;inset:-6px;border-radius:50%;
  border:2px solid var(--g);opacity:.35;animation:aq-wf-pulse 1.6s ease-out infinite}
@keyframes aq-wf-pulse{0%{transform:scale(.85);opacity:.55}70%,100%{transform:scale(1.25);opacity:0}}
/* each step's screen */
.aq-wf-vis{margin-top:26px;text-align:left;border:1px solid var(--line2);border-radius:var(--r-md);
  background:#fff;padding:4px;transition:opacity .5s ease,filter .5s ease,transform .5s ease,border-color .5s ease,box-shadow .5s ease}
.aq-wf-vis .cr-vis{margin:0}
.aq-wf.is-running .aq-wf-step:not(.is-done):not(.is-active) .aq-wf-vis{opacity:.4;filter:grayscale(.7);transform:translateY(6px)}
.aq-wf-step.is-active .aq-wf-vis{border-color:rgba(0,168,45,.35);box-shadow:var(--sh-lift)}
/* travelling badge */
.aq-wf-badge{position:absolute;top:0;left:0;transform:translateX(-50%);background:var(--g);color:#fff;
  padding:7px 14px;border-radius:999px;font-size:13px;font-weight:600;line-height:18px;
  display:inline-flex;align-items:center;gap:6px;white-space:nowrap;pointer-events:none;
  box-shadow:0 10px 24px -8px rgba(0,168,45,.55);opacity:0;
  transition:opacity .4s ease,left .7s cubic-bezier(.4,0,.2,1)}
.aq-wf-badge.is-visible{opacity:1}
.aq-wf-badge::after{content:"";position:absolute;left:50%;bottom:-5px;width:10px;height:10px;
  background:var(--g);transform:translateX(-50%) rotate(45deg)}
.aq-wf-badge__ic{display:inline-flex}
.aq-wf-badge__ic svg{width:14px;height:14px}
@media (max-width:1100px) and (min-width:901px){.aq-wf-steps{gap:16px}}
@media (max-width:900px){
  .aq-wf-track{padding-top:0}
  .aq-wf-badge{display:none}
  .aq-wf-steps{grid-template-columns:1fr;gap:36px}
  /* one connector per step, so the line stops at the last node */
  .aq-wf-line{display:none}
  .aq-wf-step:not(:last-child)::after{content:"";position:absolute;left:21px;top:44px;bottom:-36px;
    width:2px;background:var(--g);transition:background .5s ease}
  .aq-wf.is-running .aq-wf-step:not(.is-done)::after{background:rgba(15,23,42,.10)}
  .aq-wf-step{text-align:left;padding-left:68px;min-height:44px}
  .aq-wf-node{position:absolute;left:0;top:0;margin:0}
  .aq-wf-step .cr-cb{max-width:none;margin-left:0}
  .aq-wf-vis{margin-top:18px}
}

/* Phones. The 7:45 paper stack is a fixed 432px drawing in a 274px panel, and
   the demo's source and drafted order squeeze to slivers side by side. */
@media (max-width:575px){
  .aq-stack{zoom:.63}
  .aq-read{flex-direction:column}
  .aq-read .ui-arrow{transform:rotate(90deg)}
  .aq-formcard{padding:24px 20px}
  .aq-form{grid-template-columns:1fr}
}

@media (max-width:991px){
  .cr-pairline{font-size:16px}
}


/* ── MORNING TIMELINE ─────────────────────────────────────────────────── */
.aq-tl__track{position:relative;max-width:1080px;margin:0 auto}
.aq-tl__line{position:absolute;left:50%;top:0;bottom:0;width:2px;margin-left:-1px;background:var(--line);border-radius:2px;overflow:hidden}
.aq-tl__fill{position:absolute;left:0;top:0;width:100%;height:0;background:var(--g);border-radius:2px}
.aq-tl__row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 120px minmax(0,1fr);align-items:start}
.aq-tl__row+.aq-tl__row{margin-top:96px}
.aq-tl__txt{grid-column:1;grid-row:1;padding-top:6px}
.aq-tl__time{grid-column:2;grid-row:1;justify-self:center}
.aq-tl__media{grid-column:3;grid-row:1}
.aq-tl__row--rev .aq-tl__txt{grid-column:3}
.aq-tl__row--rev .aq-tl__media{grid-column:1}
.aq-tl__h{font-size:36px;margin:0 0 16px}
.aq-tl__time{position:relative;z-index:1;display:inline-flex;align-items:baseline;gap:3px;padding:6px 12px;
  background:#fff;border:1px solid var(--line);border-radius:99px;color:var(--muted);
  font-size:16px;font-weight:500;line-height:24px;letter-spacing:-.02em;
  transition:color .4s var(--ease),border-color .4s var(--ease)}
.aq-tl__time small{font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.aq-tl__media .cr-panel{min-height:0}
.aq-tl__row .aq-tl__txt,.aq-tl__row .aq-tl__media{transition:opacity .7s var(--ease),transform .7s var(--ease)}
.aq-tl.is-js .aq-tl__row:not(.is-in) .aq-tl__txt,.aq-tl.is-js .aq-tl__row:not(.is-in) .aq-tl__media{opacity:0;transform:translateY(28px)}
.aq-tl.is-js .aq-tl__row.is-in .aq-tl__media{transition-delay:.12s}
.aq-tl__row.is-on .aq-tl__time{color:var(--g);border-color:var(--gline)}
@media (max-width:991px){
  .aq-tl__line{left:20px}
  .aq-tl__row{grid-template-columns:40px minmax(0,1fr);row-gap:16px}
  .aq-tl__row+.aq-tl__row{margin-top:64px}
  .aq-tl__time,.aq-tl__row--rev .aq-tl__time{grid-column:1/-1;grid-row:1;justify-self:start;margin-left:0}
  .aq-tl__txt,.aq-tl__row--rev .aq-tl__txt{grid-column:2;grid-row:2;padding-top:0}
  .aq-tl__media,.aq-tl__row--rev .aq-tl__media{grid-column:2;grid-row:3}
  .aq-tl__h{font-size:28px}
}
@media (max-width:575px){.aq-tl__h{font-size:24px}}
@media (prefers-reduced-motion:reduce){
  .aq-tl.is-js .aq-tl__row .aq-tl__txt,.aq-tl.is-js .aq-tl__row .aq-tl__media{opacity:1!important;transform:none!important;transition:none!important}
}
