
:root{
  --g:#1C9323;        
  --gi:#00A82D;      
  --g2:#3FD15F;       
  --glogo:#3BA341;    
  --gsoft:#E8F7EC;    
  --gline:#C2E2C4;    

  --ink:#0E0E0E; --muted:#4E4E4E; --faint:#7A827A;
  --line:#EBEBEB; --line2:#ECECEC;
  --black:#000; --black2:#0A0A0A; --panel:#F7F9F8;

  --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 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}


/* ── 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:18px;color: #fff;font-weight: 400;line-height: 24px;letter-spacing: -1.1%;}
.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)}



.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)}


.cr-card--dark .cr-vis--tall{height:270px}

.cr-sec--panel .cr-panel{background:#fff;border:1px solid var(--line2)}


.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}}


@media (max-width:991px){.cr-sec .cr-split{grid-template-columns:1fr!important}}

.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}

.ai-brand{position:absolute;top:0;left:0;right:0;z-index:4;padding-top:32px}
.ai-brand__a{display:inline-flex}
.ai-brand__logo{display:block;width:187px;height:auto;filter:brightness(0) invert(1)}
@media (max-width:991px){.ai-brand{padding-top:24px}.ai-brand__logo{width:150px}}

.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}
}

/* ══════════════════════════════════════════════════════════════════════════
   ALL INTEGRATIONS — THIS PAGE'S OWN CSS
   --------------------------------------------------------------------------
   Scoped to this page's own parts (.ai-*), plus the kit fixes this page needs
   that are not yet folded into Build/kit.css. Nothing here restyles a REPEAT:
   block — the fixes only make the library's own intent work.

   Motion is progressive. With no script, with prefers-reduced-motion, or with
   ?static on the URL, every drawing shows its finished frame.
     html.ai-js     script is running (set in <head>, before first paint)
     html.ai-still  ?static — final frames, default directory state
   ══════════════════════════════════════════════════════════════════════════ */

:root{
  --tint5:rgba(59,163,65,.05);          /* AGENCY §1 — THE tint, 5%            */
  --ai-pale:#CFE9D4;                     /* pale green = context (AGENCY §6E)  */
  --ai-dark:#0F1310;                     /* dark card / drawn UI on black      */
  --ai-dark2:#141A16;
  --ai-hair-d:rgba(255,255,255,.09);
}

/* ── kit fixes carried on this page ───────────────────────────────────── */

/* REPEAT headlines are tagged .cr-anim-words, which kit.css never styled and
   the motion script never observed. Mirrors .cr-words; the script observes both. */
.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}

/* ?static — the kit's own reveals start at their final frame too. */
.ai-still .cr-words .w,.ai-still .cr-anim-words .w{opacity:1!important;filter:none!important;
  transform:none!important;transition:none!important}
.ai-still .cr-up{opacity:1!important;transform:none!important;transition:none!important}
.ai-still *,.ai-still *::before,.ai-still *::after{animation:none!important;transition:none!important}

/* A grid track is minmax(auto,1fr): one wide drawing stretches its column. */
.cr-g2>*,.cr-g3>*,.cr-g4>*,.cr-split>*{min-width:0}

/* Below 991px the hero drops to min-height:auto and the copy sits where the
   kit scrim is still transparent. Deeper, and still solid black at its foot. */
@media (max-width:991px){
  .cr-hero__scrim{background:linear-gradient(rgba(0,0,0,.34) 0%,rgba(0,0,0,.74) 34%,
    rgba(0,0,0,.88) 62%,#000 100%)}
}

/* 10px floor on drawn type (the kit's .ui-* parts go down to 8.5px). */
.ui-pill,.ui-kpi span,.ui-kpi i,.ui-kv div span,.ui-node span,.ui-node__i,
.ui-alert__b span,.ui-axis span,.ui-tb th,.ui-av{font-size:10px}

/* ── shared parts ─────────────────────────────────────────────────────── */
.ai-i{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;
  stroke-linecap:round;stroke-linejoin:round;display:block}
.ai-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* rise-in, gated so nothing is ever hidden without the script */
.ai-js:not(.ai-still) .ai-rise{opacity:0;transform:translateY(16px);
  transition:opacity .8s var(--ease),transform .8s var(--ease)}
.ai-js:not(.ai-still) .is-in .ai-rise,.ai-js:not(.ai-still) .ai-rise.is-in{opacity:1;transform:none}
.ai-d1{transition-delay:.08s!important}.ai-d2{transition-delay:.18s!important}
.ai-d3{transition-delay:.3s!important}.ai-d4{transition-delay:.42s!important}
.ai-d5{transition-delay:.54s!important}

/* a timeline fading back to dim before it restarts — the agency's loop reset */
.tl-reset [data-at].on{opacity:.3;transition:opacity .4s var(--ease)!important}
.tl-snap,.tl-snap *{transition:none!important}

/* partner logos — one definition each (generated block below), reused by the
   card, the orbit and the detail window. role="img" + aria-label on each use. */
.ai-logo{display:block;background:center/contain no-repeat}

/* initials tile — for entries the feed has no logo for (and the few whose
   logo file shows another company's mark; listed in build-notes.md) */
.ai-mono{position:relative;width:58px;height:58px;flex:none;border-radius:16px;
  background:linear-gradient(150deg,#F2FAF4 0%,#E3F4E7 100%);border:1px solid var(--gline);
  display:flex;align-items:center;justify-content:center}
.ai-mono b{font:600 19px/1 var(--sans);letter-spacing:.02em;color:#137019}
.ai-mono .ai-i{position:absolute;right:-7px;bottom:-7px;width:22px;height:22px;padding:4px;
  border-radius:50%;background:#fff;border:1px solid var(--gline);color:var(--gi);stroke-width:2}

/* the CrelioHealth mark, cut from Build/logo.svg unmodified */
.ai-mark{display:block;width:100%;height:auto}

/* ══ 1 · HERO ════════════════════════════════════════════════════════════ */
.ai-hero>.cr-photo>svg{animation:ai-settle 2.8s var(--ease) both;transform-origin:62% 40%}
@keyframes ai-settle{from{transform:scale(1.07)}to{transform:none}}
.ai-hero .cr-hero__glow{animation:ai-breathe 9s ease-in-out infinite}
@keyframes ai-breathe{0%,100%{opacity:.42}50%{opacity:.62}}

.ai-hero__copy{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.ai-hero .cr-t--hero{margin:0 0 22px}
.ai-hero .cr-hero__desc{max-width:520px;margin:0 0 40px;color:rgba(255,255,255,.86)}
a.cr-hero__badge{text-decoration:none;transition:border-color .3s var(--ease),background .3s var(--ease)}
a.cr-hero__badge:hover{border-color:rgba(63,209,95,.55);background:rgba(255,255,255,.1)}
a.cr-hero__badge .ai-i{width:15px;height:15px;color:var(--g2);transition:transform .3s var(--ease)}
a.cr-hero__badge:hover .ai-i{transform:translateX(-3px)}
.ai-hero .cr-btns{margin-top:0}
.ai-hero .cr-btn .ai-i{width:18px;height:18px}

/* the search — the page's job, so it lives in the hero */
.ai-find{position:relative;display:flex;align-items:center;width:100%;max-width:580px;height:62px;
  border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.24);
  transition:border-color .3s var(--ease),background .3s var(--ease),box-shadow .3s var(--ease)}
.ai-find:focus-within{border-color:rgba(63,209,95,.7);background:rgba(255,255,255,.12);
  box-shadow:0 0 0 4px rgba(63,209,95,.14)}
.ai-find__box{position:relative;flex:1;min-width:0;display:flex;align-items:center;height:100%;cursor:text}
.ai-find__box>.ai-i{position:absolute;left:22px;width:20px;height:20px;color:rgba(255,255,255,.75);
  pointer-events:none}
.ai-find input{-webkit-appearance:none;appearance:none;width:100%;height:100%;border:0;background:transparent;
  padding:0 14px 0 54px;font:400 16px/24px var(--sans);letter-spacing:-.011em;color:#fff;outline:none;
  border-radius:999px}
.ai-find input::-webkit-search-cancel-button,.ai-find input::-webkit-search-decoration{-webkit-appearance:none;display:none}
.ai-find__hint{position:absolute;left:54px;right:14px;top:50%;transform:translateY(-50%);
  font:400 16px/24px var(--sans);letter-spacing:-.011em;color:rgba(255,255,255,.66);pointer-events:none;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:opacity .2s ease}
.ai-find input:valid~.ai-find__hint{opacity:0}
.ai-find__go{flex:none;width:50px;height:50px;margin-right:5px;border-radius:50%;border:0;cursor:pointer;
  background:var(--g);color:#fff;display:flex;align-items:center;justify-content:center;
  box-shadow:var(--sh-btn);transition:transform .25s var(--ease),background .25s ease}
.ai-find__go:hover{transform:scale(1.05);background:#178A1E}
.ai-find__go .ai-i{width:20px;height:20px}
.ai-find__x{flex:none;display:none;width:34px;height:34px;margin-right:8px;border-radius:50%;border:0;
  background:#F1F3F1;color:var(--muted);cursor:pointer;align-items:center;justify-content:center}
.ai-find__x .ai-i{width:15px;height:15px}
.ai-find.has-q .ai-find__x{display:flex}

/* light variant, inside the directory */
.ai-find--light{max-width:none;height:58px;background:#fff;border-color:var(--line2);
  box-shadow:0 1px 2px rgba(15,23,42,.04),0 10px 26px -18px rgba(15,23,42,.18)}
.ai-find--light:focus-within{border-color:var(--g);background:#fff;box-shadow:0 0 0 4px rgba(28,147,35,.10)}
.ai-find--light .ai-find__box>.ai-i{color:var(--muted2)}
.ai-find--light input{color:var(--ink)}
.ai-find--light .ai-find__hint{color:var(--muted2)}

/* the orbit — CrelioHealth at the centre, real partner logos around it.
   .ai-orbit__sq is the square; tiles are sized in cqw so they shrink with it
   (70/60px at 500px wide) and the two rings never touch at any width. */
.ai-orbit{position:relative;width:100%;max-width:500px;margin-left:auto;justify-self:end}
.ai-orbit__sq{position:relative;aspect-ratio:1/1;container-type:inline-size}
.ai-orbit__glow{position:absolute;inset:14%;border-radius:50%;
  background:radial-gradient(closest-side,rgba(0,166,47,.34),rgba(0,166,47,.08) 62%,rgba(0,166,47,0))}
.ai-ring{position:absolute;border-radius:50%}
.ai-ring--a{inset:19%}
.ai-ring--b{inset:2.5%}
.ai-ring__line{position:absolute;inset:0;border-radius:50%;border:1px dashed rgba(255,255,255,.18)}
.ai-ring--b .ai-ring__line{border-color:rgba(255,255,255,.12)}
.ai-ring svg.ai-spokes{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.ai-spokes line{stroke:rgba(63,209,95,.22);stroke-width:.35;stroke-dasharray:.9 1.1}
.ai-spokes circle{fill:var(--g2)}
.ai-node{position:absolute;transform:translate(-50%,-50%);z-index:2}
.ai-node__t{display:flex;align-items:center;justify-content:center;background:#fff;border-radius:16px;
  box-shadow:0 14px 30px -12px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.06)}
.ai-ring--a .ai-node__t{width:70px;height:70px;width:14cqw;height:14cqw;border-radius:3.2cqw}
.ai-ring--b .ai-node__t{width:60px;height:60px;border-radius:14px;width:12cqw;height:12cqw;border-radius:2.8cqw}
/* two spoke sets for the outer ring: even (below 1200px), gapped (from 1200px) */
.ai-spokes--gap{display:none}
.ai-node__t .ai-logo{width:76%;height:62%}
.ai-core{position:absolute;left:50%;top:50%;width:25%;aspect-ratio:1/1;transform:translate(-50%,-50%);z-index:3;
  border-radius:50%;background:rgba(255,255,255,.06);border:1px solid rgba(63,209,95,.4);
  display:flex;align-items:center;justify-content:center;box-shadow:0 0 60px rgba(0,166,47,.35)}
.ai-core__in{width:74%;aspect-ratio:1/1;border-radius:50%;background:#fff;display:flex;align-items:center;
  justify-content:center;box-shadow:0 10px 30px -10px rgba(0,0,0,.5)}
.ai-core__in .ai-mark{width:62%}
.ai-core__ring{position:absolute;inset:-1px;border-radius:50%;border:1px solid rgba(63,209,95,.5);opacity:0}
.ai-orbit .ui-stat{position:absolute;left:-4%;bottom:5%;z-index:4;min-width:0;padding:14px 18px;gap:12px;
  justify-content:flex-start}
.ai-orbit .ui-stat b{font-size:28px}
.ai-orbit .ui-stat span{font-size:12px;max-width:140px;line-height:1.35;color:var(--muted2)}  /* --faint is 3.96:1 */
.ai-stat__dot{display:block;width:10px;height:10px;border-radius:50%;flex:none;background:var(--g);
  box-shadow:0 0 0 4px rgba(28,147,35,.16)}
.ai-js:not(.ai-still) .ai-orbit.is-live .ai-stat__dot{animation:ai-dot 2.4s ease-out infinite}
@keyframes ai-dot{0%{box-shadow:0 0 0 0 rgba(28,147,35,.45)}100%{box-shadow:0 0 0 9px rgba(28,147,35,0)}}

/* motion: the inner ring turns, the outer ring sways ±3° (so its gap stays
   under the stat card), tiles stay upright, packets travel each spoke into
   CrelioHealth, the core ripples on arrival */
.ai-js:not(.ai-still) .ai-ring--a{animation:ai-turn 110s linear infinite}
.ai-js:not(.ai-still) .ai-ring--a .ai-node__t{animation:ai-turn 110s linear infinite reverse}
.ai-js:not(.ai-still) .ai-ring--b{animation:ai-sway 16s ease-in-out infinite alternate}
.ai-js:not(.ai-still) .ai-ring--b .ai-node__t{animation:ai-sway-r 16s ease-in-out infinite alternate}
@keyframes ai-turn{to{transform:rotate(360deg)}}
@keyframes ai-sway{from{transform:rotate(-3deg)}to{transform:rotate(3deg)}}
@keyframes ai-sway-r{from{transform:rotate(3deg)}to{transform:rotate(-3deg)}}
.ai-js:not(.ai-still) .ai-core__ring{animation:ai-ripple 2.4s var(--ease) infinite}
.ai-js:not(.ai-still) .ai-core__ring+.ai-core__ring{animation-delay:1.2s}
@keyframes ai-ripple{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.9);opacity:0}}
.ai-js .ai-orbit:not(.is-live) .ai-ring,.ai-js .ai-orbit:not(.is-live) .ai-node__t,
.ai-js .ai-orbit:not(.is-live) .ai-core__ring{animation-play-state:paused}
.ai-still .ai-spokes circle,html:not(.ai-js) .ai-spokes circle{display:none}

/* ══ 3 · DIRECTORY ═══════════════════════════════════════════════════════ */
.ai-dir{scroll-margin-top:24px}

/* the sidebar: sort, categories (each with its share of the 140), the ask */
.ai-side{align-self:stretch}
/* sticky inside a column as tall as the results; the script lowers `top`
   when the sidebar is taller than the window, so its foot stays reachable */
.ai-side__stick{position:sticky;top:92px;top:var(--ai-stick,92px);display:flex;flex-direction:column;gap:16px}
.ai-filter{background:#fff;border:1px solid var(--line2);border-radius:20px;padding:22px 16px 14px;
  box-shadow:var(--sh-flat)}
.ai-filter__k{margin:0 8px 10px;font:600 12px/16px var(--sans);letter-spacing:.04em;text-transform:uppercase;
  color:#0a0a0a}
.ai-filter__k+.ai-cats{margin-top:2px}
.ai-sort{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;margin:0 0 22px;border-radius:999px;
  background:#F4F6F7;border:1px solid var(--line)}
.ai-sort__b{height:36px;border:0;border-radius:999px;background:transparent;cursor:pointer;
  font:500 14px/1 var(--sans);letter-spacing:-.01em;color:var(--muted);
  transition:background .25s var(--ease),color .25s var(--ease),box-shadow .25s var(--ease)}
.ai-sort__b:hover{color:var(--ink)}
.ai-sort__b[aria-pressed="true"]{background:#fff;color:#137019;box-shadow:0 1px 2px rgba(15,23,42,.08),
  0 4px 10px -4px rgba(15,23,42,.14)}
.ai-cats{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px}
.ai-cat{position:relative;display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;
  column-gap:10px;row-gap:5px;width:100%;padding:6px 10px 7px;border:0;border-radius:10px;background:transparent;
  cursor:pointer;text-align:left;font:400 14px/18px var(--sans);letter-spacing:-.01em;color:var(--ink2);
  transition:background .25s var(--ease),color .25s var(--ease)}
.ai-cat .ai-i{width:16px;height:16px;align-self:start;margin-top:1px;color:var(--faint);transition:color .25s var(--ease)}
.ai-cat__n{min-width:0;overflow-wrap:anywhere}
.ai-cat__c{align-self:start}
.ai-cat__c{font:500 12px/18px var(--sans);font-variant-numeric:tabular-nums;color:var(--muted2)}
.ai-cat__bar{grid-column:2 / 4;height:3px;border-radius:3px;background:#EEF2EF;overflow:hidden;display:block}
.ai-cat[data-cat="all"] .ai-cat__bar{visibility:hidden}   /* the total, not a category: no bar */
.ai-cat__bar i{display:block;height:100%;width:100%;border-radius:3px;background:var(--ai-pale);
  transform-origin:left center;transition:transform .9s var(--ease),background .3s var(--ease)}
.ai-cat:hover{background:#F6F8F7;color:var(--ink)}
.ai-cat:hover .ai-i{color:var(--gi)}
.ai-cat[aria-pressed="true"]{background:var(--tint5);color:#137019;font-weight:500}  /* AA on the tint; --g is 3.8:1 */
.ai-cat[aria-pressed="true"] .ai-i{color:var(--g)}
.ai-cat[aria-pressed="true"] .ai-cat__c{color:#137019}
.ai-cat[aria-pressed="true"] .ai-cat__bar i{background:var(--g)}
/* bars grow when the section arrives, one after another */
.ai-js:not(.ai-still) .ai-dir:not(.is-in) .ai-cat__bar i{transform:scaleX(0)!important}
.ai-cats li:nth-child(n) .ai-cat__bar i{transition-delay:calc(var(--n,0) * 35ms + 120ms)}

.ai-ask{position:relative;overflow:hidden;border-radius:20px;padding:22px 20px 20px;background:var(--black2);
  color:#fff}
.ai-ask__glow{position:absolute;right:-60px;top:-70px;width:200px;height:200px;border-radius:50%;
  background:radial-gradient(closest-side,rgba(0,166,47,.45),rgba(0,166,47,0));pointer-events:none}
.ai-ask__t{position:relative;margin:0 0 14px;font:500 17px/24px var(--sans);letter-spacing:-.02em;color:#fff}
.ai-ask .cr-btn{position:relative;width:100%;padding:11px 18px;font-size:14px}
.ai-ask .cr-btn .ai-i{width:16px;height:16px}

/* the toolbar */
.ai-bar{display:flex;flex-direction:column;gap:14px;margin-bottom:22px}
.ai-bar__row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.ai-count{margin:0;font:400 14px/20px var(--sans);letter-spacing:-.01em;color:var(--muted)}
.ai-count b{font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums}
.ai-sort--m{display:none}

/* the cards */
.ai-card{position:relative;display:flex;flex-direction:column;min-width:0;height:100%;background:#fff;
  border:1px solid var(--line2);border-radius:20px;overflow:hidden;box-shadow:var(--sh-flat);
  transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.ai-card:hover{transform:translateY(-4px);border-color:rgba(0,168,45,.3);box-shadow:var(--sh-lift)}
.ai-card[hidden]{display:none}
.ai-card__stage{position:relative;height:96px;flex:none;display:flex;align-items:center;justify-content:center;
  background:#fff;border-bottom:1px solid #F1F1F1}
.ai-card__stage .ai-logo{width:64%;height:50px}
.ai-card__stage--inv{background:#0E0E0E;border-bottom-color:#0E0E0E}
.ai-card__go{position:absolute;right:12px;top:12px;width:28px;height:28px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;background:#F4F6F7;color:var(--muted);
  opacity:.75;transition:opacity .3s var(--ease),background .3s var(--ease),color .3s var(--ease)}
.ai-card__go .ai-i{width:14px;height:14px;transition:transform .3s var(--ease)}
.ai-card:hover .ai-card__go{opacity:1;background:var(--g);color:#fff}
.ai-card:hover .ai-card__go .ai-i{transform:translate(1px,-1px)}
.ai-card__stage--inv .ai-card__go{background:rgba(255,255,255,.12);color:#fff}
.ai-card__body{display:flex;flex-direction:column;gap:6px;padding:16px 18px 18px;min-width:0;flex:1}
.ai-card__n{margin:0;font:500 16px/22px var(--sans);letter-spacing:-.02em;color:var(--ink)}
.ai-card__open{all:unset;cursor:pointer;display:-webkit-box;-webkit-box-orient:vertical;
  overflow:hidden}
.ai-card__open::after{content:"";position:absolute;inset:0;border-radius:20px;z-index:1}
.ai-card__open:focus-visible::after{outline:2px solid var(--g);outline-offset:-2px}
.ai-card__t{margin:0;display:inline-flex;align-items:center;gap:6px;font:500 12px/16px var(--sans);
  color:#137019;letter-spacing:.005em}
.ai-card__t .ai-i{width:14px;height:14px;color:var(--gi)}
.ai-card__s{margin:4px 0 0;font:400 14px/20px var(--sans);letter-spacing:-.01em;color:var(--muted2)}
.ai-card mark{background:rgba(63,209,95,.22);color:inherit;border-radius:3px;padding:0 1px}

/* cards wait for the directory to arrive, then rise in a few at a time
   (the order index is set by the script, never in markup) */
.ai-js:not(.ai-still) .ai-dir:not(.is-in) .ai-card{opacity:0}
.ai-js:not(.ai-still) .ai-col.is-new{animation:ai-up .55s var(--ease) both;
  animation-delay:calc(var(--k,0) * 38ms)}
@keyframes ai-up{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

.ai-more{display:flex;justify-content:center;margin-top:32px}
.ai-more[hidden]{display:none}
.ai-more .cr-btn{min-width:180px}

/* nothing matched — the miss becomes a request */
.ai-empty{display:grid;grid-template-columns:200px minmax(0,1fr);gap:36px;align-items:center;
  padding:40px 40px 36px;border:1px solid var(--line2);border-radius:24px;
  background:linear-gradient(180deg,#fff 0%,#F7FBF8 100%)}
.ai-empty[hidden]{display:none}
.ai-empty__art{position:relative;height:150px}
.ai-ghost.ui-row{position:absolute;left:0;right:22px;margin:0;border-style:dashed;border-color:#D6DDD8}
.ai-ghost .ui-av{background:#EEF2EF}
.ai-ghost .ui-row__m b{width:62%;height:7px;border-radius:999px;background:#E3E9E5}
.ai-ghost .ui-row__m span{width:38%;height:6px;margin-top:5px;border-radius:999px;background:#EEF2EF}
.ai-ghost:nth-child(1){top:4px}.ai-ghost:nth-child(2){top:54px;left:14px;right:8px}
.ai-ghost:nth-child(3){top:104px;opacity:.7}
.ai-lens{position:absolute;right:0;top:34px;width:76px;height:76px;color:var(--g)}
.ai-lens svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}
.ai-lens circle{fill:rgba(255,255,255,.75)}
.ai-js:not(.ai-still) .ai-empty:not([hidden]) .ai-lens{animation:ai-scan 3.2s ease-in-out infinite}
@keyframes ai-scan{0%,100%{transform:translate(0,0)}35%{transform:translate(-62px,-22px)}
  70%{transform:translate(-30px,30px)}}
.ai-empty__t{margin:0 0 8px;font:400 32px/110% var(--serif);letter-spacing:-.02em;color:var(--ink)}
.ai-empty p{margin:0 0 20px;font:400 16px/24px var(--sans);letter-spacing:-.011em;color:var(--muted);max-width:520px}
.ai-empty .cr-btn .ai-i{width:16px;height:16px}
.ai-dev{display:flex;align-items:flex-start;gap:14px;margin-top:22px;padding:16px 18px;border-radius:16px;
  border:1px solid var(--line2);background:#fff;text-decoration:none;max-width:560px;
  transition:border-color .3s var(--ease),box-shadow .3s var(--ease)}
.ai-dev:hover{border-color:rgba(0,168,45,.3);box-shadow:var(--sh-lift)}
.ai-dev>span:last-child{flex:1;min-width:0}
.ai-dev b{display:block;font:500 15px/20px var(--sans);color:var(--ink);margin-bottom:3px}
.ai-dev b+span{display:block;font:400 13px/19px var(--sans);color:var(--muted2)}
.ai-dev .cr-chip{width:40px;height:40px}
.ai-dev .cr-chip svg{width:20px;height:20px}

/* ══ 4 · CAN'T FIND IT — the dark band ═══════════════════════════════════ */
.ai-band__side{display:flex;flex-direction:column;gap:24px;align-items:flex-start}
.ai-band .cr-lead{max-width:470px}
/* the kit's faded half on black is rgba(255,255,255,.45) = 4.41:1, under AA;
   .5 = 5.3:1 — the same fix Smart Reports carries */
.ai-band .cr-lead--fade span{color:rgba(255,255,255,.5)}
.ai-band .cr-btn .ai-i{width:16px;height:16px}
.ai-band .cr-card--dark{border-color:rgba(63,209,95,.22)}
.ai-band .cr-card--dark .cr-vis{padding:18px 18px 0;align-items:stretch}
.ai-band .cr-card__txt{padding:22px 24px 26px;display:flex;flex-direction:column;flex:1}
.ai-band .cr-card__txt .cr-cb{margin-bottom:16px}
.ai-more-link{margin-top:auto;align-self:flex-start;display:inline-flex;align-items:center;gap:6px;
  padding:0;border:0;background:none;cursor:pointer;font:500 14px/20px var(--sans);color:var(--g2)}
.ai-more-link .ai-i{width:15px;height:15px;transition:transform .3s var(--ease)}
.ai-more-link:hover .ai-i{transform:translateX(4px)}

/* drawn UI on black */
.ui.ai-ui-d{background:var(--ai-dark);border-color:var(--ai-hair-d);box-shadow:0 20px 40px -24px rgba(0,0,0,.9);
  color:#E8EFEA;display:flex;flex-direction:column;width:100%}
.ai-ui-d .ui__bar{background:#121814;border-bottom-color:rgba(255,255,255,.07)}
.ai-ui-d .ui__dot{background:#2A322D}
.ai-ui-d .ui__title{color:#fff}
.ai-ui-d .ui__bar .ai-tag{margin-left:auto}
.ai-tag{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;font:600 10px/12px var(--sans);
  letter-spacing:.02em;background:rgba(63,209,95,.14);color:var(--g2)}

.ai-tag .ai-i{width:12px;height:12px}

/* APIs — the catalogue the entry lists, lighting call by call (kit rows,
   set as chips that wrap, so no name is ever cut at any width) */
.ai-ui-d .ui__body{padding:10px 12px}
.ai-ui-d .ui-row{background:rgba(255,255,255,.03);border-color:rgba(255,255,255,.07);
  transition:background .4s var(--ease),border-color .4s var(--ease),opacity .45s var(--ease),transform .45s var(--ease)}
.ai-ui-d .ui-row__m b{color:#93A097;transition:color .4s var(--ease)}
.ai-ui-d .ui-row__m span{color:#7D8A81}
.ai-ui-d .ui-row.on{background:rgba(63,209,95,.08);border-color:rgba(63,209,95,.28)}
.ai-ui-d .ui-row.on .ui-row__m b{color:#fff}
.ai-api{flex:1;display:flex;flex-wrap:wrap;gap:6px;align-content:center}
.ai-api .ui-row{flex:none;max-width:100%;margin:0;padding:4px 11px 4px 5px;gap:7px;border-radius:999px}
.ai-api .ui-row__m{flex:none;min-width:0;max-width:100%}
.ai-api .ui-row__m b{font-size:11px;font-weight:500;line-height:14px}
.ai-api .ui-av{width:16px;height:16px;background:transparent;border:1.5px solid #3A443D;color:#fff;
  transition:background .4s var(--ease),border-color .4s var(--ease)}
.ai-api .ui-av .ai-i{width:9px;height:9px;stroke-width:2.6;stroke-dasharray:24;stroke-dashoffset:24;
  transition:stroke-dashoffset .45s var(--ease) .1s}
.ai-api .ui-row.on .ui-av{background:var(--g);border-color:var(--g)}
.ai-api .ui-row.on .ui-av .ai-i{stroke-dashoffset:0}
.ai-api .ai-api__more{justify-content:center;padding:4px 12px;min-height:26px;background:transparent;border-style:dashed;
  border-color:rgba(63,209,95,.3)}
.ai-api .ai-api__more .ui-row__m{flex:none}
.ai-api .ai-api__more .ui-row__m b,.ai-api .ai-api__more.on .ui-row__m b{color:var(--g2)}

/* Webhooks — the five processes, arriving as events (kit rows + status pill) */
.ai-hooks{flex:1;display:flex;flex-direction:column;gap:5px}
.ai-hooks .ui-row{margin:0;padding:4px 10px 4px 5px}
.ai-hooks .ui-av{width:22px;height:22px;border-radius:9px;background:var(--g);color:#fff}
.ai-hooks .ui-av .ai-i{width:12px;height:12px}
.ai-hooks .ui-row__m b{font-size:11.5px}
.ai-hooks .ui-pill--g{background:rgba(63,209,95,.14);color:var(--g2)}
/* not yet arrived = dim, from first paint (no flash of the end frame before
   the timeline starts); ?static, no script and reduced motion show all five */
.ai-js:not(.ai-still) .ai-hook:not(.on){opacity:.16;transform:translateY(-6px)}
.ai-hook.on .ui-pill{animation:ai-ping 1.6s var(--ease) 1}
@keyframes ai-ping{0%{box-shadow:0 0 0 0 rgba(63,209,95,.55)}100%{box-shadow:0 0 0 9px rgba(63,209,95,0)}}

/* Zapier — the kit's flow diagram: CrelioHealth → Zapier → the other apps */
.ai-zap{flex:1;display:flex;flex-direction:column;justify-content:center;gap:16px}
.ai-ui-d .ui-node{background:#141A16;border-color:rgba(255,255,255,.08);padding:12px 6px 10px}
.ai-ui-d .ui-node span{color:#AAB5AD}
.ai-ui-d .ui-node b{background:rgba(255,255,255,.06);color:#93A097;transition:background .4s var(--ease),color .4s var(--ease)}
.ai-ui-d .ui-node.on b{background:var(--g);color:#fff}
.ai-ui-d .ui-node.on span{color:#fff}
.ai-ui-d .ui-node b.ai-zap__mk{background:#fff;padding:6px}
.ai-zap__mk .ai-mark{width:100%}
.ai-zap__z{font:600 14px/1 var(--sans)}
.ai-ui-d .ui-arrow{color:#4A564E}
.ai-apps{display:flex;justify-content:center;gap:8px}
.ai-apps span{width:32px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);color:#6F7C73;
  transition:color .4s var(--ease),background .4s var(--ease),border-color .4s var(--ease)}
.ai-apps span .ai-i{width:15px;height:15px}
.ai-apps span.on{color:#fff;background:rgba(63,209,95,.16);border-color:rgba(63,209,95,.45)}

/* the two ways onward */
.ai-links{margin-top:20px}
.ai-link{display:flex;align-items:center;gap:16px;padding:20px 22px;border-radius:16px;text-decoration:none;
  background:var(--ai-dark);border:1px solid var(--ai-hair-d);
  transition:border-color .3s var(--ease),transform .3s var(--ease),background .3s var(--ease)}
.ai-link:hover{border-color:rgba(63,209,95,.4);transform:translateY(-3px);background:#121814}
.ai-link .cr-chip{background:var(--g);color:#fff}
.ai-link__b{flex:1;min-width:0}
.ai-link__b b{display:block;font:500 16px/22px var(--sans);letter-spacing:-.02em;color:#fff;margin-bottom:3px}
.ai-link__b span{display:block;font:400 14px/20px var(--sans);color:rgba(255,255,255,.62)}
.ai-link>.ai-i{color:var(--g2);transition:transform .3s var(--ease)}
.ai-link:hover>.ai-i{transform:translateX(4px)}

/* ══ COMPLIANCE — the HIPAA seal is a link; same two rules as /integrations/ */

/* ══ WINDOWS — the detail view and the two request forms ═════════════════ */
.ai-modal{--bs-modal-width:720px;--bs-modal-margin:16px}
.ai-modal--form{--bs-modal-width:620px}
.modal-backdrop{--bs-backdrop-bg:#080c09;--bs-backdrop-opacity:.62}
.ai-dlg__panel{position:relative;border:0;border-radius:24px;background:#fff;color:var(--ink);
  padding:32px 34px 30px;box-shadow:0 40px 80px -30px rgba(0,0,0,.55)}
.ai-dlg__panel .modal-body{padding:0}
.ai-dlg__x{position:absolute;right:16px;top:16px;width:38px;height:38px;border-radius:50%;border:1px solid var(--line2);
  background:#fff;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:2;
  transition:background .25s ease,color .25s ease}
.ai-dlg__x:hover{background:#F4F6F7;color:var(--ink)}
.ai-dlg__x .ai-i{width:16px;height:16px}

.ai-det__head{display:flex;gap:18px;align-items:center;padding-right:44px}
.ai-det__logo{width:118px;height:84px;flex:none;border-radius:16px;border:1px solid var(--line2);background:#fff;
  display:flex;align-items:center;justify-content:center}
.ai-det__logo .ai-logo{width:78%;height:60%}
.ai-det__logo.is-inv{background:#0E0E0E;border-color:#0E0E0E}
.ai-det__t{margin:0 0 4px;font:400 30px/110% var(--serif);letter-spacing:-.02em;color:var(--ink)}
.ai-det__meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px}
.ai-det__crumb{font:500 13px/18px var(--sans);color:#137019;text-decoration:none}
.ai-det__crumb:hover{text-decoration:underline}
.ai-det__meta .cr-tag .ai-i{width:13px;height:13px}
.ai-det__sum{margin:18px 0 0;font:400 15px/23px var(--sans);color:var(--muted)}
.ai-det__h{margin:22px 0 8px;font:500 18px/24px var(--sans);letter-spacing:-.02em;color:var(--ink)}
.ai-det__d{margin:0;font:400 15px/24px var(--sans);letter-spacing:-.01em;color:var(--muted);white-space:pre-line}
.ai-det__foot{display:flex;align-items:center;gap:14px;margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}
.ai-det__foot .cr-btn{padding:12px 28px}

/* the connection, drawn — partner ⇄ CrelioHealth */
.ai-flow{position:relative;margin-top:22px;padding:22px 24px;border-radius:16px;background:#F7F9F8;
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:0}
.ai-flow__t{width:64px;height:64px;border-radius:16px;background:#fff;border:1px solid var(--line2);
  display:flex;align-items:center;justify-content:center;overflow:hidden}
.ai-flow__t .ai-logo{width:80%;height:62%}
.ai-flow__t.is-inv{background:#0E0E0E}
.ai-flow__t .ai-mark{width:60%}
.ai-flow__t .ai-mono{width:100%;height:100%;border:0;border-radius:16px}
.ai-flow__t .ai-mono .ai-i{display:none}
.ai-det__logo .ai-mono{width:62px;height:62px}
.ai-flow__w{position:relative;height:40px;margin:0 14px}
.ai-flow__line{position:absolute;left:0;right:0;top:50%;height:2px;margin-top:-1px;border-radius:2px;
  background:repeating-linear-gradient(90deg,#BFE3C6 0 6px,transparent 6px 11px)}
.ai-flow__w .cr-tag{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#fff;
  border:1px solid var(--gline);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.ai-flow__w .cr-tag .ai-i{width:12px;height:12px}
.ai-flow__p{position:absolute;top:50%;width:9px;height:9px;margin-top:-4.5px;border-radius:50%;background:var(--g);
  box-shadow:0 0 0 3px rgba(28,147,35,.16);opacity:0}
.ai-js:not(.ai-still) .ai-modal.show .ai-flow__p--r{animation:ai-pr 2.4s var(--ease) infinite}
.ai-js:not(.ai-still) .ai-modal.show .ai-flow__p--l{animation:ai-pl 2.4s var(--ease) 1.2s infinite}
@keyframes ai-pr{0%{left:0;opacity:0}12%,80%{opacity:1}100%{left:calc(100% - 9px);opacity:0}}
@keyframes ai-pl{0%{left:calc(100% - 9px);opacity:0}12%,80%{opacity:1}100%{left:0;opacity:0}}
.ai-flow[data-dir="out"] .ai-flow__p--l,.ai-flow[data-dir="in"] .ai-flow__p--r{display:none}

/* the request forms — the live page embeds Pipedrive here (see build notes) */
.ai-form__t{margin:0 44px 10px 0;font:400 32px/110% var(--serif);letter-spacing:-.02em;color:var(--ink)}
.ai-form__i{margin:0 0 22px;font:400 15px/23px var(--sans);color:var(--muted)}
.ai-form .form-label{margin:0 0 6px;font:500 13px/18px var(--sans);color:var(--ink2)}
.ai-form .form-control{border:1px solid #DDE3DF;border-radius:12px;background:#fff;padding:11px 13px;
  font:400 15px/21px var(--sans);color:var(--ink);transition:border-color .25s ease,box-shadow .25s ease}
.ai-form .form-control:focus{border-color:var(--g);box-shadow:0 0 0 4px rgba(28,147,35,.1)}
.ai-form textarea.form-control{resize:vertical}
.ai-form .cr-btn{margin-top:4px}
.ai-form__s{margin:0 0 6px;font:400 12.5px/18px var(--sans);color:var(--muted2)}
.ai-form__s:last-child{margin-bottom:0}
.ai-form__s a{color:#137019;text-decoration:underline}

/* ══ RESPONSIVE ══════════════════════════════════════════════════════════ */
@media (min-width:1200px){
  .ai-spokes--even{display:none}
  .ai-spokes--gap{display:block}
}
@media (max-width:1199px){
  .ai-orbit .ui-stat{position:relative;left:auto;bottom:auto;width:max-content;max-width:100%;margin:16px auto 0}
}
@media (max-width:991px){
  .ai-orbit{max-width:380px;margin:0 auto;justify-self:center}
  .ai-side__stick{position:static}
  .ai-side .ai-ask{display:none}      /* the dark band straight after asks the same */
  .ai-filter{padding:0;border:0;background:transparent;box-shadow:none;margin-bottom:18px}
  .ai-filter__k{margin:0 0 10px}
  .ai-filter__k:first-child,.ai-filter .ai-sort{display:none}
  .ai-sort--m{display:grid;margin:0;width:200px}
  .ai-cats{flex-direction:row;gap:8px;max-height:none;min-height:0;overflow-x:auto;overflow-y:hidden;
    margin:0 -24px;padding:2px 24px 8px;scroll-padding-inline:24px;scroll-snap-type:x proximity;scrollbar-width:none}
  .ai-cats::-webkit-scrollbar{display:none}
  .ai-cats li{flex:none;scroll-snap-align:start}
  .ai-cat{display:inline-flex;width:auto;gap:8px;padding:9px 14px;border:1px solid var(--line2);border-radius:999px;
    background:#fff;white-space:nowrap;align-items:center}
  .ai-cat .ai-i,.ai-cat__c{align-self:auto;margin-top:0}
  .ai-cat__bar{display:none}
  .ai-cat[aria-pressed="true"]{background:var(--gsoft);color:#137019;border-color:var(--g);
    box-shadow:inset 0 0 0 1px var(--g)}
  .ai-cat[aria-pressed="true"] .ai-i{color:var(--g)}
  .ai-empty{grid-template-columns:1fr;gap:20px;padding:28px 22px}
  .ai-empty__art{max-width:240px}
}
@media (max-width:640px){
  .ai-card{flex-direction:row;align-items:stretch}
  .ai-card__stage{width:104px;height:auto;min-height:104px;border-bottom:0;border-right:1px solid #F1F1F1}
  .ai-card__stage--inv{border-right-color:#0E0E0E}
  .ai-card__stage .ai-logo{width:74%;height:44px}
  .ai-card__stage .ai-mono{width:50px;height:50px;border-radius:14px}
  .ai-card__go{display:none}
  .ai-card__body{padding:14px 16px}
  .ai-find{height:56px}
  .ai-find__go{width:44px;height:44px}
  .ai-sort--m{width:100%}
  .ai-bar__row{flex-direction:column;align-items:stretch}
  .ai-dlg__panel{padding:26px 20px 22px;border-radius:20px}
  .ai-det__head{flex-direction:column;align-items:flex-start;gap:14px}
  .ai-det__logo{width:104px;height:72px}
  .ai-det__t{font-size:26px}
  .ai-flow{padding:16px 14px}
  .ai-flow__w{margin:0 8px}
  .ai-form__t{font-size:27px}
  .ai-zap{padding:14px 8px}
  .ai-link{padding:18px}
}

/* ══ REDUCED MOTION — every drawing at its finished frame ════════════════ */
@media (prefers-reduced-motion:reduce){
  .ai-spokes circle{display:none}
  .ai-ring,.ai-node__t,.ai-core__ring,.ai-stat__dot,.ai-flow__p,.ai-lens,.ai-hook .ui-pill,
  .ai-hero>.cr-photo>svg,.ai-hero .cr-hero__glow{animation:none!important}
  .ai-col.is-new{animation:none!important}
  .ai-rise,.cr-anim-words .w{opacity:1!important;filter:none!important;transform:none!important}
}

/* ── generated by build.py: logos, category bars, orbit positions ── */
.ai-cats li:nth-child(1){--n:0}
.ai-cats li:nth-child(2){--n:1}
.ai-cats li:nth-child(3){--n:2}
.ai-cats li:nth-child(4){--n:3}
.ai-cats li:nth-child(5){--n:4}
.ai-cats li:nth-child(6){--n:5}
.ai-cats li:nth-child(7){--n:6}
.ai-cats li:nth-child(8){--n:7}
.ai-cats li:nth-child(9){--n:8}
.ai-cats li:nth-child(10){--n:9}
.ai-cats li:nth-child(11){--n:10}
.ai-cats li:nth-child(12){--n:11}
.ai-cats li:nth-child(13){--n:12}
.ai-cats li:nth-child(14){--n:13}
.ai-cats li:nth-child(15){--n:14}
.ai-cats li:nth-child(16){--n:15}
.ai-cats li:nth-child(17){--n:16}
.ai-cats li:nth-child(18){--n:17}
.ai-cats li:nth-child(19){--n:18}
.ai-cats li:nth-child(20){--n:19}
.ai-cats li:nth-child(21){--n:20}
.ai-node--a0{left:50.00%;top:0.00%}
.ai-node--a1{left:93.30%;top:25.00%}
.ai-node--a2{left:93.30%;top:75.00%}
.ai-node--a3{left:50.00%;top:100.00%}
.ai-node--a4{left:6.70%;top:75.00%}
.ai-node--a5{left:6.70%;top:25.00%}
.ai-node--b0{left:69.13%;top:3.81%}
.ai-node--b1{left:96.19%;top:30.87%}
.ai-node--b2{left:96.19%;top:69.13%}
.ai-node--b3{left:69.13%;top:96.19%}
.ai-node--b4{left:30.87%;top:96.19%}
.ai-node--b5{left:3.81%;top:69.13%}
.ai-node--b6{left:3.81%;top:30.87%}
.ai-node--b7{left:30.87%;top:3.81%}
@media (min-width:1200px){.ai-node--b0{left:96.19%;top:69.13%}.ai-node--b1{left:76.31%;top:92.52%}.ai-node--b2{left:46.51%;top:99.88%}.ai-node--b3{left:2.45%;top:65.45%}.ai-node--b4{left:5.01%;top:28.18%}.ai-node--b5{left:32.69%;top:3.09%}.ai-node--b6{left:70.04%;top:4.19%}.ai-node--b7{left:96.19%;top:30.87%}}

/* ── Bootstrap 5.3.3 bridge — Crelio tokens on top of Bootstrap's reboot ── */
:root{--bs-body-font-family:var(--sans);--bs-body-color:#0f172a;--bs-heading-color:inherit;
  --bs-link-color-rgb:28,147,35;--bs-link-hover-color-rgb:19,112,25}
a{text-decoration:none}
/* .cr-wrap had 24px gutters; Bootstrap's .container gets the same */
.container{--bs-gutter-x:3rem}
.ai-headrow{margin-bottom:56px}
.ai-links{margin-top:20px}
.ai-col{min-width:0}
@media (max-width:991px){.ai-headrow{margin-bottom:36px}}
@media (max-width:575px){.container{--bs-gutter-x:2.5rem}}
/* API-fed logos are <img>; keep them inside their box */
img.ai-logo{object-fit:contain;max-width:none}
span.ai-logo[data-orbit]:not([style]){background:#EEF2EF;border-radius:8px}
/* loading skeletons */
.ai-skel .ai-card__stage i,.ai-skel .ai-card__body i{display:block;border-radius:999px;
  background:linear-gradient(90deg,#EEF2EF 0%,#F6F8F7 50%,#EEF2EF 100%);background-size:200% 100%;
  animation:ai-shim 1.4s linear infinite}
.ai-skel .ai-card__stage i{width:46%;height:28px;border-radius:10px}
.ai-skel .ai-card__body i{height:12px;width:70%}
.ai-skel .ai-card__body i:nth-child(2){width:36%;height:10px}
.ai-skel .ai-card__body i:nth-child(3){width:92%;height:10px;margin-top:6px}
.ai-skel .ai-card:hover{transform:none;box-shadow:var(--sh-flat);border-color:var(--line2)}
@keyframes ai-shim{to{background-position:-200% 0}}
.ai-error{display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:28px;border:1px solid var(--line2);
  border-radius:20px;background:#fff}
.ai-error[hidden]{display:none}
.ai-error p{margin:0;font:400 16px/24px var(--sans);color:var(--muted)}
/* ── Devices page additions ── */
.ai-filter__k--b{margin-top:18px}
.ai-cat[data-brand="all"] .ai-cat__bar{visibility:hidden}
.ai-bfind{margin:0 8px 8px}
.ai-bfind input{width:100%;border:1px solid #DDE3DF;border-radius:10px;padding:8px 11px;font:400 14px/20px var(--sans);color:var(--ink);background:#fff;outline:0}
.ai-bfind input:focus{border-color:var(--g);box-shadow:0 0 0 3px rgba(28,147,35,.1)}
.ai-cats--brands{max-height:300px;overflow-y:auto;overscroll-behavior:contain;padding-right:2px}
.ai-cats li[hidden]{display:none}
.ai-card__s b{font-weight:600;color:var(--ink2)}
.ai-spec{margin:18px 0 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ai-spec>div{border:1px solid var(--line2);border-radius:14px;padding:12px 14px;background:#FAFBFA;min-width:0}
.ai-spec>div[hidden]{display:none}
.ai-spec dt{font:500 12px/16px var(--sans);letter-spacing:.03em;text-transform:uppercase;color:var(--muted2);margin:0 0 4px}
.ai-spec dd{margin:0;font:500 15px/21px var(--sans);color:var(--ink);overflow-wrap:anywhere}
.ai-det__foot{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
/* Pipedrive web form embed */
.ai-pd{margin-top:8px;min-height:420px}
.ai-pd .pipedriveWebForms{width:100%}
.ai-pd iframe{width:100%!important;border:0}
/* original form, restyled */
.ai-form .error{font:400 12.5px/18px var(--sans);color:#C0392B;margin-top:4px}
.ai-form .error:empty{display:none}
.ai-captcha{overflow-x:auto}
.ai-captcha .g-recaptcha{transform-origin:0 0}
@media (max-width:360px){.ai-captcha .g-recaptcha{transform:scale(.88)}}
#submitButton{justify-content:center}
#submitButton:disabled{opacity:.6;cursor:default}
.ai-err{min-height:0;font:400 12.5px/18px var(--sans);color:#C0392B;margin-top:4px}
.ai-err:empty{display:none}
.ai-form .form-control.is-bad{border-color:#C0392B}
@media (max-width:991px){
  .ai-bfind{display:none}
  .ai-cats--brands{max-height:none;overflow-y:hidden;padding-right:0}
  .ai-filter__k--b{margin-top:14px}
}
@media (max-width:575px){.ai-spec{grid-template-columns:1fr}}
.ai-hero{background:#000}
.ai-node--wait{visibility:hidden}