
: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:rgba(59, 163, 65, 0.05);    /* 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}


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

/* anatomies.css — rules this page uses */
[class^="an-"],[class*=" an-"]{display:block}
.an-slab__glow{position:absolute;top:0;height:70%;pointer-events:none}
.an-slab__glow--l{left:0;width:52.2%;
  background:radial-gradient(60% 70% at 30% 0%,rgba(0,168,45,.22),rgba(0,0,0,0) 70%)}
.an-slab__glow--r{left:27%;width:73%;
  background:radial-gradient(55% 70% at 70% 0%,rgba(63,209,95,.16),rgba(0,0,0,0) 70%)}

/* ######################## shared fixes + bootstrap bridge ######################## */
/* ══ LIBRARY FIXES — known kit bugs, CSS only (the frozen markup is untouched) ══ */
/* 1 · the BLOGS "View all" ghost button is white-on-white on the light panel */
.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)}
/* 2 · a headrow button stretched to the column and dropped 56px below its headline */
.cr-headrow>.cr-btn{justify-self:start}
@media (min-width:992px){.cr-headrow>.cr-btn{justify-self:end}}
.cr-headrow>.cr-head{margin-bottom:0}
/* 3 · .cr-anim-words (five REPEAT headlines) was never defined, so they never animated */
.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}
/* 4 · grid tracks are min-width:auto — one wide drawn UI pushed a column off-screen */
.cr-g2>*,.cr-g3>*,.cr-g4>*,.cr-split>*{min-width:0}
/* 5 · blog thumbnails: the real image sits above the decorative mesh */
.cr-blogs__th img{position:relative;z-index:1}

/* ══ Brand tokens + heading scale (site-wide values) ═════════════════════ */
:root{
  --cr-green:rgba(28,147,35,1);
  --cr-green-2:#3FD15F;
  --cr-green-soft:rgba(59,163,65,.05);
  --cr-ink:rgba(14,14,14,1);
  --cr-ink-2:#334155;
  --cr-muted:rgba(78,78,78,1);
  --cr-line:rgba(235,235,235,1);
  --cr-line-dark:rgba(255,255,255,.10);
  --cr-serif:"Libertinus Serif Display";
  --cr-serif-paragraph:'Inter',system-ui,-apple-system,sans-serif;
}
/* h1 */
.cr-t--hero{font-family:var(--cr-serif);font-weight:400;font-size:64px;line-height:110%;letter-spacing:-.02em;margin:0;color:#fff}
/* h2 */
.cr-t--sec{font-family:var(--cr-serif);font-weight:400;font-size:48px;line-height:110%;letter-spacing:-.02em;color:var(--cr-ink)}
.cr-sec--dark .cr-t--sec,.cr-sec--ink .cr-t--sec{color:#fff}
.cr-t em{color:var(--cr-green)}
.cr-sec--dark .cr-t em,.cr-sec--ink .cr-t em,.cr-hero .cr-t em{color:var(--cr-green-2)}
@media (max-width:991px){.cr-t--hero{font-size:40px}.cr-t--sec{font-size:32px}}
@media (max-width:575px){.cr-t--hero{font-size:32px}.cr-t--sec{font-size:27px}}

/* ══ Bootstrap 5.3.3 bridge ═══════════════════════════════════════════════
   Loaded after bootstrap.min.css. Zero-specificity (:where) so every kit /
   rs- rule still wins; only neutralises reboot defaults the design never set. */
.tm-main{font-family:var(--sans);line-height:normal;color:var(--ink)}
:where(.tm-main) :where(a){color:inherit;text-decoration:none}
:where(.tm-main) :where(h1,h2,h3,h4,h5,h6){font-weight:inherit;line-height:inherit;color:inherit}
:where(.tm-main) :where(img,svg){vertical-align:baseline}
:where(.tm-main) :where(ul,ol){padding-left:0;margin-bottom:0;list-style:none}
:where(.tm-main) :where(p){margin-bottom:0}
:where(.tm-main) :where(button){border-radius:0}
:where(.tm-main) :where(label){display:block}

/* ######################## testimonials.css ######################## */
/* ══════════════════════════════════════════════════════════════════════════
   TESTIMONIALS — page layer (prefix tm-)
   Sits on top of kit.css. Never restyles a REPEAT block. Tokens only from :root.
   ══════════════════════════════════════════════════════════════════════════ */
@property --tm-p{syntax:'<percentage>';inherits:false;initial-value:0%}
html{scroll-behavior:smooth}
.tm-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;padding:0;margin:-1px}
.tm-ext{display:inline-block;transition:transform .25s var(--ease)}
a:hover>.tm-ext{transform:translate(2px,-2px)}

/* The heading reveal for REPEAT headlines (.cr-anim-words) — the library script only
   ever split .cr-words, so these never animated. Same figure, same timing. */
.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}
.tm-static .cr-words .w,.tm-static .cr-anim-words .w,.tm-static .cr-up{opacity:1!important;filter:none!important;
  transform:none!important;transition:none!important}

/* shared: stars (one sprite, partial fill by width) ------------------------- */
.tm-stars{position:relative;display:inline-block;flex:none;width:var(--w,78px);height:calc(var(--w,78px) / 5.364);
  vertical-align:middle}
.tm-stars svg{position:absolute;left:0;top:0;width:var(--w,78px);height:calc(var(--w,78px) / 5.364);display:block}
.tm-stars__bg{color:#E2E8E3}
.tm-stars__fg{position:absolute;left:0;top:0;bottom:0;overflow:hidden;color:var(--gi)}
.cr-sec--dark .tm-stars__bg,.cr-sec--ink .tm-stars__bg,.tm-dark .tm-stars__bg{color:rgba(255,255,255,.16)}
.cr-sec--dark .tm-stars__fg,.cr-sec--ink .tm-stars__fg,.tm-dark .tm-stars__fg{color:var(--g2)}

/* shared: chips (filters) ---------------------------------------------------- */
.tm-chips{display:flex;flex-wrap:wrap;gap:8px}
.tm-chip{border:1px solid var(--line2);background:#fff;color:var(--ink);font:500 14px/20px var(--sans);
  letter-spacing:-.01em;padding:8px 15px;border-radius:999px;cursor:pointer;display:inline-flex;gap:7px;
  align-items:center;white-space:nowrap;transition:border-color .25s ease,background .25s ease,color .25s ease}
.tm-chip i{font-style:normal;font-size:12.5px;color:var(--faint);font-variant-numeric:tabular-nums}
.tm-chip:hover{border-color:rgba(0,168,45,.45)}
.tm-chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.tm-chip[aria-pressed="true"] i{color:var(--g2)}
.cr-sec--ink .tm-chip,.cr-sec--dark .tm-chip{background:rgba(255,255,255,.03);border-color:rgba(255,255,255,.16);
  color:rgba(255,255,255,.82)}
.cr-sec--ink .tm-chip i,.cr-sec--dark .tm-chip i{color:rgba(255,255,255,.45)}
.cr-sec--ink .tm-chip:hover,.cr-sec--dark .tm-chip:hover{border-color:rgba(63,209,95,.6);color:#fff}
.cr-sec--ink .tm-chip[aria-pressed="true"],.cr-sec--dark .tm-chip[aria-pressed="true"]{background:#fff;border-color:#fff;color:var(--ink)}
.cr-sec--ink .tm-chip[aria-pressed="true"] i,.cr-sec--dark .tm-chip[aria-pressed="true"] i{color:var(--g)}

/* shared: masonry (JS builds columns; without JS, CSS columns) --------------- */
.tm-mas{columns:var(--cols,3) 260px;column-gap:20px}
.tm-mas>*{break-inside:avoid;margin-bottom:20px}
.js .tm-mas{columns:auto;display:flex;gap:20px;align-items:flex-start}
.js .tm-mas>*{margin-bottom:0}
.tm-mas__col{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:20px}
.tm-pool{display:none!important}
.tm-wall{transition:opacity .22s ease}
.tm-wall.is-out{opacity:0}
.tm-more{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:36px}
.tm-more[hidden]{display:none}
.tm-status{font-size:13.5px;color:var(--faint);margin:0;font-variant-numeric:tabular-nums}
.cr-sec--ink .tm-status{color:rgba(255,255,255,.5)}
.tm-split{display:flex;align-items:center;gap:16px;margin:44px 0 24px;font-size:14px;font-weight:500;color:var(--muted)}
.tm-split::before,.tm-split::after{content:"";flex:1;height:1px;background:var(--line)}
.cr-sec--ink .tm-split{color:rgba(255,255,255,.6)}
.cr-sec--ink .tm-split::before,.cr-sec--ink .tm-split::after{background:rgba(255,255,255,.1)}
.tm-split[hidden],.tm-wall[hidden]{display:none}
.tm-btn-more{display:inline-flex;align-items:center;gap:9px}
.tm-btn-more svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;
  stroke-linejoin:round;transition:transform .3s var(--ease)}
.tm-btn-more:hover svg{transform:translateY(2px)}
.cr-btn--dark{background:var(--ink);color:#fff}

/* ══ 1 · HERO — the proof map ═════════════════════════════════════════════ */
.cr-hero.tm-hero{min-height:0;display:block;align-items:initial;background:#000}
.tm-hero .cr-hero__scrim{background:linear-gradient(rgba(0,0,0,0) 80%,#000 100%)}
.tm-hero .cr-hero__glow{top:30px;left:-300px;opacity:.38}
.tm-hero .cr-hero__in{padding-top:112px;padding-bottom:0;padding-left:0;padding-right:0}
.tm-hero__head{text-align:center}
.tm-hero__head .cr-hero__badge{margin-bottom:24px}
.tm-hero h1.cr-t--hero{font-size:60px;max-width:1200px;margin:0 auto}
.tm-hero__lead{font-size:17px;line-height:26px;letter-spacing:-.011em;color:rgba(255,255,255,.74);
  max-width:620px;margin:22px auto 0}
.tm-hero__ctas{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:14px 28px;margin-top:30px}
.tm-g2link{display:inline-flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-size:15px;
  font-weight:500;letter-spacing:-.01em}
.tm-g2link__s{display:inline-flex;align-items:center;gap:6px;padding:5px 10px 5px 8px;border-radius:999px;
  background:rgba(63,209,95,.12);border:1px solid rgba(63,209,95,.3);color:var(--g2);font-weight:600;font-size:13px;
  font-variant-numeric:tabular-nums}
.tm-g2link__s svg{width:13px;height:13px;fill:currentColor}
.tm-g2link u{text-decoration:none;border-bottom:1px solid rgba(255,255,255,.35);padding-bottom:1px;
  transition:border-color .25s ease}
.tm-g2link:hover u{border-color:#fff}

/* the map block */
.tm-map{position:relative;max-width:1440px;margin:34px auto 0}
.tm-map__bar{position:absolute;z-index:6;left:0;right:0;top:0;display:flex;justify-content:center;
  padding:0 16px;pointer-events:none}
.tm-seg{position:relative;display:inline-flex;gap:2px;padding:5px;border-radius:999px;pointer-events:auto;
  background:rgba(18,20,19,.72);border:1px solid rgba(255,255,255,.12);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 18px 40px -18px rgba(0,0,0,.8)}
.tm-seg__ind{position:absolute;z-index:0;top:5px;bottom:5px;left:0;width:0;border-radius:999px;background:#fff;
  box-shadow:0 8px 24px -8px rgba(63,209,95,.55);transition:transform .45s var(--ease),width .45s var(--ease)}
.tm-seg__b{position:relative;z-index:1;border:0;background:none;color:rgba(255,255,255,.74);
  font:500 14px/20px var(--sans);letter-spacing:-.01em;padding:9px 16px;border-radius:999px;cursor:pointer;
  display:inline-flex;align-items:center;gap:8px;white-space:nowrap;transition:color .3s ease}
.tm-seg__b i{font-style:normal;font-size:12px;font-weight:500;color:rgba(255,255,255,.42);
  font-variant-numeric:tabular-nums;transition:color .3s ease}
.tm-seg__b:hover{color:#fff}
.tm-seg__b[aria-selected="true"]{color:var(--ink)}
.tm-seg__b[aria-selected="true"] i{color:var(--g)}
.no-ind .tm-seg__b[aria-selected="true"]{background:#fff}

.tm-map__stage{position:relative;width:100%;aspect-ratio:1000/416;overflow:hidden;touch-action:pan-y}
.tm-map__svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.tm-map__svg path{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.tm-world path{stroke-width:var(--dw,3.2px)}
.tm-world path.tm-halo{stroke-width:calc(var(--dw,3.2px) * 3.4)}
.tm-reg path{stroke-width:var(--rw,2.6px)}
.tm-reg path.tm-halo{stroke-width:calc(var(--rw,2.6px) * 3.4)}
.tm-d0{stroke:rgba(255,255,255,.15)}
.tm-d1{stroke:rgba(63,209,95,.30)}
.tm-d2{stroke:rgba(63,209,95,.50)}
.tm-d3{stroke:rgba(63,209,95,.76)}
.tm-d4{stroke:#3FD15F}
.tm-halo{stroke:#3FD15F;opacity:.13}
.tm-world path,.tm-world{transition:opacity .6s ease}
.tm-regs{opacity:0}
.tm-reg{display:none}
.tm-reg.on{display:inline}
/* region focus: the chosen region's light stays, the rest dims */
.tm-map[data-region="india"] .tm-world path[data-r]:not([data-r="india"]),
.tm-map[data-region="us"] .tm-world path[data-r]:not([data-r="us"]),
.tm-map[data-region="me"] .tm-world path[data-r]:not([data-r="me"]),
.tm-map[data-region="row"] .tm-world path[data-r]:not([data-r="row"]){opacity:.16}
/* radial reveal (JS only, motion allowed) */
.tm-anim .tm-map:not(.is-in) .tm-world path{opacity:0}
.tm-anim .tm-map:not(.is-in) .tm-pin{opacity:0;transform:scale(.4)}
.tm-anim .tm-map:not(.is-in) .tm-hud,.tm-anim .tm-map:not(.is-in) .tm-toasts{opacity:0;transform:translateY(14px)}
.tm-map.revealed .tm-world path,.tm-map.revealed .tm-pin{transition-delay:0s!important}
.tm-anim .tm-map:not(.revealed) .tm-hud{transition-delay:1s}
.tm-anim .tm-map:not(.revealed) .tm-toasts{transition-delay:1.25s}

/* pins — HTML over the SVG so they stay crisp and constant-size while the map zooms */
.tm-pins{position:absolute;inset:0;pointer-events:none}
.tm-pin{position:absolute;width:0;height:0;pointer-events:auto;cursor:pointer;--s:8px;
  transition:opacity .45s var(--ease),transform .45s var(--ease)}
.tm-pin::before{content:"";position:absolute;left:-15px;top:-15px;width:30px;height:30px;border-radius:50%}
.tm-pin__d,.tm-pin__r{position:absolute;left:calc(var(--s) / -2);top:calc(var(--s) / -2);width:var(--s);height:var(--s);
  border-radius:50%}
.tm-pin__d{background:#3FD15F;box-shadow:0 0 0 2px rgba(0,0,0,.85),0 0 16px 3px rgba(63,209,95,.55);
  transition:transform .35s var(--ease),opacity .35s ease,background .35s ease}
.tm-pin__r{border:1.5px solid rgba(63,209,95,.85);opacity:0}
.tm-anim .tm-map.revealed .tm-pin.ping .tm-pin__r{animation:tm-ping 2.8s var(--ease) infinite;animation-delay:var(--dl,0s)}
@keyframes tm-ping{0%{transform:scale(1);opacity:.8}100%{transform:scale(3.6);opacity:0}}
.tm-pin:hover .tm-pin__d,.tm-pin.is-tip .tm-pin__d{transform:scale(1.35);background:#fff}
.tm-map[data-region="india"] .tm-pin:not([data-r="india"]) .tm-pin__d,
.tm-map[data-region="us"] .tm-pin:not([data-r="us"]) .tm-pin__d,
.tm-map[data-region="me"] .tm-pin:not([data-r="me"]) .tm-pin__d,
.tm-map[data-region="row"] .tm-pin:not([data-r="row"]) .tm-pin__d{opacity:.35;transform:scale(.75);box-shadow:0 0 0 2px rgba(0,0,0,.85)}
.tm-pin.is-hot .tm-pin__r{animation:tm-hot 1.6s var(--ease) 1!important}
.tm-pin.is-hot .tm-pin__d{background:#fff}
@keyframes tm-hot{0%{transform:scale(1);opacity:1;border-width:2px}100%{transform:scale(6);opacity:0;border-width:1px}}
.tm-pin.is-zoomed-out{opacity:0!important;pointer-events:none}

/* cities (zoomed) */
.tm-city{position:absolute;width:0;height:0;pointer-events:none;opacity:0;transition:opacity .45s ease;--s:6px}
.tm-city.on{opacity:1}
.tm-city i{position:absolute;left:calc(var(--s) / -2);top:calc(var(--s) / -2);width:var(--s);height:var(--s);border-radius:50%;
  background:#fff;box-shadow:0 0 0 2px rgba(0,0,0,.7),0 0 12px 2px rgba(255,255,255,.45)}
.tm-city b{position:absolute;left:calc(var(--s) / 2 + 7px);top:-9px;white-space:nowrap;font-size:12px;font-weight:600;
  letter-spacing:-.01em;color:#fff;text-shadow:0 1px 2px #000,0 0 10px #000,0 0 3px #000}
.tm-city b span{font-weight:500;color:rgba(255,255,255,.62);margin-left:5px}
.tm-city.is-hot i{animation:tm-cityhot 1.6s var(--ease) 1}
@keyframes tm-cityhot{0%{box-shadow:0 0 0 2px rgba(0,0,0,.7),0 0 0 0 rgba(63,209,95,.9)}100%{box-shadow:0 0 0 2px rgba(0,0,0,.7),0 0 0 22px rgba(63,209,95,0)}}

.tm-back{position:absolute;z-index:6;left:20px;top:70px;display:inline-flex;align-items:center;gap:7px;
  border:1px solid rgba(255,255,255,.16);background:rgba(18,20,19,.72);color:#fff;border-radius:999px;
  padding:7px 13px 7px 10px;font:500 13px/18px var(--sans);cursor:pointer;opacity:0;pointer-events:none;
  transform:translateY(-6px);transition:opacity .35s ease,transform .35s var(--ease),border-color .25s;
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.tm-back svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.tm-map.is-zoomed .tm-back{opacity:1;pointer-events:auto;transform:none}
.tm-back:hover{border-color:rgba(63,209,95,.6)}

.tm-tip{position:absolute;z-index:7;left:0;top:0;min-width:178px;pointer-events:none;opacity:0;
  transform:translate(-50%,calc(-100% - 16px));transition:opacity .2s ease;
  background:rgba(14,16,15,.94);border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:11px 13px 12px;
  color:#fff;box-shadow:0 18px 40px -16px rgba(0,0,0,.9)}
.tm-tip.on{opacity:1}
.tm-tip b{display:block;font-size:14px;font-weight:600;letter-spacing:-.01em;margin-bottom:3px}
.tm-tip span{display:block;font-size:12.5px;line-height:18px;color:rgba(255,255,255,.7)}
.tm-tip em{display:block;font-style:normal;font-size:12px;font-weight:500;color:var(--g2);margin-top:7px}

/* stats panel + toasts, overlaid on the map's empty oceans (desktop) */
.tm-hud{position:absolute;z-index:5;left:max(24px,calc((100% - 1320px) / 2 + 24px));bottom:34px;width:318px;
  background:rgba(12,14,13,.74);border:1px solid rgba(255,255,255,.11);border-radius:16px;padding:18px 20px 16px;
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:#fff;
  transition:opacity .7s var(--ease),transform .7s var(--ease)}
.tm-hud__h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
.tm-hud__h b{font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--g2)}
.tm-hud__h span{font-size:11.5px;color:rgba(255,255,255,.45)}
.tm-hud__g{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}
.tm-hud__s b{display:block;font-family:var(--serif);font-weight:400;font-size:34px;line-height:1;letter-spacing:-.02em;
  color:#fff;font-variant-numeric:tabular-nums}
.tm-hud__s span{display:block;font-size:12.5px;line-height:17px;color:rgba(255,255,255,.62);margin-top:6px}
.tm-hud__f{margin:14px 0 0;padding-top:12px;border-top:1px solid rgba(255,255,255,.08);font-size:11.5px;line-height:16px;
  color:rgba(255,255,255,.45)}

.tm-toasts{position:absolute;z-index:5;right:max(24px,calc((100% - 1320px) / 2 + 24px));bottom:34px;width:352px;height:156px;
  transition:opacity .7s var(--ease),transform .7s var(--ease)}
.tm-toast{position:absolute;left:0;right:0;bottom:0;display:flex;gap:13px;align-items:flex-start;text-align:left;
  width:100%;font:inherit;color:#fff;background:rgba(12,14,13,.8);border:1px solid rgba(255,255,255,.12);
  border-radius:16px;padding:15px 16px 14px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  opacity:0;transform:translateY(14px);pointer-events:none;
  transition:opacity .55s var(--ease),transform .55s var(--ease),border-color .25s ease}
.tm-toast.on{opacity:1;transform:none;pointer-events:auto}
.tm-toast.out{opacity:0;transform:translateY(-12px)}
button.tm-toast{cursor:pointer}
button.tm-toast:hover{border-color:rgba(63,209,95,.5)}
.tm-toast__av{position:relative;flex:none;width:42px;height:42px}
.tm-toast__av img,.tm-toast__av i{width:42px;height:42px;border-radius:50%;object-fit:cover;display:flex;
  align-items:center;justify-content:center;font-style:normal;font-size:13px;font-weight:600;
  background:rgba(63,209,95,.14);color:var(--g2);box-shadow:0 0 0 1.5px rgba(255,255,255,.18)}
.tm-toast__av s{position:absolute;right:-3px;bottom:-3px;width:20px;height:20px;border-radius:50%;background:var(--g);
  display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 2px #0c0e0d;text-decoration:none}
.tm-toast__av s svg{width:9px;height:9px;fill:#fff;margin-left:1px}
.tm-toast__b{min-width:0;flex:1}
.tm-toast__q{margin:0 0 9px;font-size:13.5px;line-height:19px;letter-spacing:-.005em;color:#fff;
  display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}
.tm-toast__w{display:flex;align-items:center;gap:8px;font-size:12px;line-height:16px;color:rgba(255,255,255,.58);min-width:0}
.tm-toast__w b{color:#fff;font-weight:600;white-space:nowrap}
.tm-toast__w span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.tm-toast__m{display:flex;align-items:center;gap:8px;margin-top:7px;font-size:11.5px;color:rgba(255,255,255,.5)}
.tm-toast__m .tm-stars{--w:62px}
.tm-toast__m u{text-decoration:none;color:var(--g2);font-weight:600}
.tm-toast__new{font-size:10.5px;font-weight:600;color:#fff;background:var(--g);border-radius:999px;padding:2px 7px}
.tm-pause{position:absolute;z-index:2;right:10px;top:-14px;width:28px;height:28px;border-radius:50%;
  border:1px solid rgba(255,255,255,.16);background:rgba(18,20,19,.9);color:#fff;display:flex;align-items:center;
  justify-content:center;cursor:pointer;opacity:0;transition:opacity .25s ease}
.tm-toasts:hover .tm-pause,.tm-pause:focus-visible,.tm-pause[aria-pressed="true"]{opacity:1}
.tm-pause svg{width:12px;height:12px;fill:currentColor}
.tm-pause .i-play{display:none}
.tm-pause[aria-pressed="true"] .i-play{display:block}
.tm-pause[aria-pressed="true"] .i-pause{display:none}
.tm-static .tm-pause,.tm-reduce .tm-pause{display:none}

/* ══ 2 · VERDICT ══════════════════════════════════════════════════════════ */
.tm-verdict .cr-headrow{align-items:start}
.tm-verdict .cr-headrow .cr-lead{max-width:none}
.tm-verdict .cr-g4 .cr-vis{padding:18px}
.tm-g2card{max-width:236px}
.tm-g2card .ui__body{padding:14px 14px 12px}
.tm-score{display:flex;align-items:baseline;gap:7px;margin:2px 0 10px}
.tm-score b{font-family:var(--serif);font-weight:400;font-size:46px;line-height:.9;letter-spacing:-.02em;color:var(--ink);
  font-variant-numeric:tabular-nums}
.tm-score span{font-size:13px;color:var(--faint)}
.tm-g2card .tm-stars{--w:122px;margin-bottom:12px}
.tm-g2card .ui-kpis{grid-template-columns:1fr 1fr}
.tm-dist{display:flex;flex-direction:column;gap:9px}
.tm-dist__r{display:grid;grid-template-columns:24px 1fr 28px;align-items:center;gap:8px;font-size:10.5px;color:var(--muted);
  font-variant-numeric:tabular-nums}
.tm-dist__r b{font-weight:600;color:var(--ink);text-align:right}
.tm-dist__r .ui-meter i{transition:width 1.2s var(--ease)}
.tm-rings{display:flex;gap:18px;align-items:flex-start;justify-content:center}
.tm-ring{display:flex;flex-direction:column;align-items:center;gap:9px}
.tm-ring .ui-donut{width:96px;height:96px;
  background:conic-gradient(var(--g) 0 var(--tm-p),#E4ECE5 var(--tm-p) 100%);transition:--tm-p 1.4s var(--ease)}
.tm-ring .ui-donut::after{inset:12px}
.tm-ring .ui-donut__c b{font-size:20px}
.tm-ring__l{font-size:11.5px;font-weight:600;color:var(--ink);letter-spacing:-.01em}
.tm-faces{display:grid;grid-template-columns:repeat(4,46px);gap:9px;justify-content:center;position:relative}
.tm-face{width:46px;height:46px;border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center;
  box-shadow:0 0 0 2px #fff,0 6px 14px -4px rgba(15,23,42,.25);transition:transform .5s var(--ease),opacity .5s var(--ease)}
.tm-face img{width:100%;height:100%;object-fit:cover;display:block}
.tm-face--n{background:var(--g);color:#fff;font-size:12.5px;font-weight:600;font-variant-numeric:tabular-nums}
.tm-asof{text-align:center;margin-top:30px;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 18px}
/* the motion is the data: stars fill to 4.7, bars grow, rings close to 4.5 */
.tm-anim .tm-vc:not(.in) .tm-stars__fg{width:0!important}
.tm-vc .tm-stars__fg{transition:width 1.4s var(--ease) .2s}
.tm-anim .tm-vc:not(.in) .ui-meter i{width:0!important}
.tm-vc .ui-meter i{transition:width 1.1s var(--ease)}
.tm-vc .tm-dist__r:nth-child(2) .ui-meter i{transition-delay:.1s}
.tm-vc .tm-dist__r:nth-child(3) .ui-meter i{transition-delay:.2s}
.tm-ring .ui-donut{--tm-p:90%}
.tm-anim .tm-vc:not(.in) .tm-ring .ui-donut{--tm-p:0%}
.tm-anim .tm-vc:not(.in) .tm-faces>*{opacity:0;transform:scale(.6)}
.tm-faces>*:nth-child(2n){transition-delay:.06s}.tm-faces>*:nth-child(3n){transition-delay:.12s}
.tm-faces>*:nth-child(5n){transition-delay:.18s}

/* the old S2 — customers band, inside the verdict */
.tm-cust{margin-top:72px;padding-top:72px;border-top:1px solid var(--line)}
.tm-cust .cr-head{margin-bottom:44px}
.tm-logos{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:14px}
.tm-logo{height:88px;border:1px solid var(--line2);border-radius:14px;background:#fff;display:flex;align-items:center;
  justify-content:center;padding:14px;transition:border-color .3s ease,transform .3s ease,box-shadow .3s ease}
.tm-logo:hover{border-color:rgba(0,168,45,.3);transform:translateY(-3px);box-shadow:var(--sh-lift)}
.tm-logo img{max-width:100%;max-height:42px;width:auto;height:auto;object-fit:contain}

/* ══ 3 · STORIES ══════════════════════════════════════════════════════════ */
.tm-stories{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.tm-story{display:grid;grid-template-columns:minmax(0,.84fr) minmax(0,1.16fr);background:#0B0D0C;
  border:1px solid rgba(63,209,95,.18);border-radius:20px;overflow:hidden;box-shadow:0 0 40px rgba(63,209,95,.05) inset;
  transition:border-color .3s ease,transform .3s ease,box-shadow .3s ease}
.tm-story:hover{border-color:rgba(63,209,95,.42);transform:translateY(-4px);box-shadow:0 0 40px rgba(63,209,95,.08) inset,var(--sh-photo)}
.tm-story__m{position:relative;display:block;min-height:360px;border:0;padding:0;margin:0;background:#141614;cursor:pointer;
  overflow:hidden;color:#fff;text-align:left;font:inherit}
.tm-story__m img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.tm-story:hover .tm-story__m img{transform:scale(1.04)}
.tm-story__m .tm-vt__veil{height:46%}
.tm-story__m .tm-vt__play{width:54px;height:54px;margin:-27px 0 0 -27px}
.tm-story__cap{position:absolute;left:16px;right:16px;bottom:14px;z-index:2}
.tm-story__cap b{display:block;font-size:14px;font-weight:600;letter-spacing:-.01em}
.tm-story__cap span{display:block;font-size:12px;color:rgba(255,255,255,.72);margin-top:1px}
.tm-story__b{padding:28px 28px 24px;display:flex;flex-direction:column;min-width:0}
.tm-story__rg{display:block;font-size:12.5px;line-height:18px;color:rgba(255,255,255,.5);margin-bottom:16px}
.tm-story__rg b{font-size:12px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--g2);white-space:nowrap}
.tm-story__q{margin:0 0 20px;font-family:var(--serif);font-weight:400;font-size:21px;line-height:1.36;letter-spacing:-.01em;
  color:#fff}
.tm-story__q::before{content:"\201C";color:var(--g2);margin-right:2px}
.tm-story__q::after{content:"\201D";color:var(--g2);margin-left:1px}
.tm-story__w{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px;color:rgba(255,255,255,.6)}
.tm-story__w b{color:#fff;font-weight:600}
.tm-story__a{margin-top:auto;padding-top:20px;display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center}
.tm-story__a .tm-watch{margin-top:20px}
.tm-watch{display:inline-flex;align-items:center;gap:9px;border:0;background:none;padding:0;cursor:pointer;
  font:500 14px/20px var(--sans);letter-spacing:-.01em;color:#fff;text-decoration:none}
.tm-watch i{width:30px;height:30px;border-radius:50%;flex:none;background:var(--g);display:flex;align-items:center;
  justify-content:center;transition:transform .3s var(--ease)}
.tm-watch i svg{width:10px;height:10px;fill:#fff;margin-left:2px}
.tm-watch:hover i{transform:scale(1.1)}
.tm-watch small{font-size:12.5px;color:rgba(255,255,255,.5);font-variant-numeric:tabular-nums}
.tm-g2a{display:inline-flex;align-items:center;gap:5px;font-size:13.5px;font-weight:500;color:var(--g2);text-decoration:none}
.tm-g2a:hover{text-decoration:underline;text-underline-offset:3px}
.tm-story__a .tm-sep{flex-basis:100%;height:1px;background:rgba(255,255,255,.08);margin:2px 0}

/* ══ 4 · VIDEO WALL ═══════════════════════════════════════════════════════ */
.tm-videos .cr-headrow{margin-bottom:36px}
.tm-bar{display:flex;flex-wrap:wrap;gap:14px 24px;align-items:center;justify-content:space-between;margin-bottom:28px}
.tm-videos .tm-mas{--cols:4}
.tm-vt{position:relative;display:block;width:100%;border:0;padding:0;margin:0;background:none;cursor:pointer;
  text-align:left;color:var(--ink);font:inherit}
.tm-vt__img{position:relative;display:block;border-radius:16px;overflow:hidden;background:#121412;isolation:isolate;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.tm-vt--v .tm-vt__img{aspect-ratio:9/16}
.tm-vt--h .tm-vt__img{aspect-ratio:16/9}
.tm-vt--s .tm-vt__img{aspect-ratio:1/1}
.tm-vt__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.tm-vt:hover .tm-vt__img{transform:translateY(-4px);box-shadow:var(--sh-photo)}
.tm-vt:hover .tm-vt__img img{transform:scale(1.04)}
.tm-vt__img .tm-vt__veil{height:34%;background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.55))}
.tm-vt__tags{position:absolute;z-index:2;left:10px;right:10px;bottom:10px;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.tm-vt__tags .tm-dur{margin-left:auto}
.tm-vt__veil{position:absolute;left:0;right:0;bottom:0;height:64%;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.5) 50%,rgba(0,0,0,.86) 100%)}
.tm-vt__top{position:absolute;z-index:2;left:12px;right:12px;top:12px;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.tm-vt__top .tm-dur{margin-left:auto}
.tm-tagd{font-size:11px;font-weight:600;line-height:15px;letter-spacing:.01em;padding:4px 9px;border-radius:999px;
  background:rgba(0,0,0,.58);border:1px solid rgba(255,255,255,.18);color:#fff;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);white-space:nowrap}
.tm-tagd--new{background:var(--g);border-color:var(--g)}
.tm-dur{font-variant-numeric:tabular-nums}
.tm-vt__play{position:absolute;z-index:2;left:50%;top:50%;width:58px;height:58px;margin:-29px 0 0 -29px;border-radius:50%;
  background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.5);display:flex;align-items:center;justify-content:center;
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:transform .35s var(--ease),background .35s ease,border-color .35s ease}
.tm-vt__play svg{width:16px;height:16px;fill:#fff;margin-left:3px}
.tm-vt:hover .tm-vt__play,.tm-story:hover .tm-vt__play{transform:scale(1.08);background:var(--g);border-color:var(--g)}
.tm-vt__meta{display:block;padding:12px 2px 0}
.tm-vt__meta b{display:block;font-size:15px;font-weight:600;line-height:20px;letter-spacing:-.012em;color:var(--ink)}
.tm-vt__meta span{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;font-size:13px;
  line-height:18px;color:var(--muted);margin-top:2px}
.tm-vt:hover .tm-vt__meta b{color:var(--g)}
.js .tm-videos .tm-mas,.js .tm-videos .tm-mas__col{gap:26px 20px}
.js .tm-videos .tm-mas__col{gap:26px}

/* lightbox */
.tm-lb{position:fixed;inset:0;z-index:3000;display:flex;align-items:center;justify-content:center;padding:28px}
.tm-lb[hidden]{display:none}
.tm-lb__bg{position:absolute;inset:0;background:rgba(0,0,0,.84);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  opacity:0;transition:opacity .3s ease}
.tm-lb__p{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 340px;width:100%;max-width:1120px;max-height:calc(100vh - 56px);
  background:#0B0D0C;border:1px solid rgba(255,255,255,.1);border-radius:20px;overflow:hidden;color:#fff;
  opacity:0;transform:translateY(16px);transition:opacity .35s var(--ease),transform .35s var(--ease)}
.tm-lb.is-v .tm-lb__p{grid-template-columns:auto 360px;width:auto}
.tm-lb.on .tm-lb__bg{opacity:1}
.tm-lb.on .tm-lb__p{opacity:1;transform:none}
.tm-lb__m{position:relative;background:#000;aspect-ratio:16/9;align-self:center;width:100%}
.tm-lb.is-v .tm-lb__m{aspect-ratio:9/16;height:min(calc(100vh - 56px),720px);width:auto}
.tm-lb__m img,.tm-lb__m iframe{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;border:0;display:block}
.tm-lb__go{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-decoration:none;color:#fff}
.tm-lb__go .tm-vt__play{position:static;margin:0;width:76px;height:76px}
.tm-lb__go .tm-vt__play svg{width:22px;height:22px}
.tm-lb__go:hover .tm-vt__play{transform:scale(1.08);background:var(--g);border-color:var(--g)}
.tm-lb__b{padding:30px 28px 26px;display:flex;flex-direction:column;min-width:0;overflow:auto}
.tm-lb__k{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
.tm-lb__t{margin:0 0 14px;font-size:19px;line-height:1.35;font-weight:500;letter-spacing:-.015em}
.tm-lb__w{margin:0;font-size:14px;line-height:1.5;color:rgba(255,255,255,.66)}
.tm-lb__w b{display:block;color:#fff;font-weight:600;font-size:15px}
.tm-lb__n{margin:14px 0 0;font-size:12.5px;line-height:1.5;color:rgba(255,255,255,.45)}
.tm-lb__cta{margin-top:auto;padding-top:24px;display:flex;flex-direction:column;gap:12px}
.tm-lb__cta p{margin:0;font-size:14px;color:rgba(255,255,255,.72)}
.tm-lb__cta .cr-btns{gap:10px}
.tm-lb__cta .cr-btn{padding:11px 22px;font-size:15px}
.tm-lb__x{position:absolute;z-index:3;right:12px;top:12px;width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.18);
  background:rgba(0,0,0,.6);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;
  transition:border-color .25s ease,transform .25s ease}
.tm-lb__x:hover{border-color:#fff;transform:rotate(90deg)}
.tm-lb__x svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
html.tm-lock{overflow:hidden}

/* ══ 5 · REVIEW WALL ══════════════════════════════════════════════════════ */
.tm-reviews .cr-head{margin-bottom:40px}
.tm-filters{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:48px}
.tm-filters .tm-chips{justify-content:center}
.tm-flabel{font-size:12px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:rgba(255,255,255,.42);margin-right:6px;
  align-self:center}
.tm-cap{display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:space-between;align-items:baseline;margin:0 0 24px;
  padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.1)}
.tm-cap h3{margin:0;font-size:18px;line-height:26px;font-weight:500;letter-spacing:-.02em;color:#fff}
.tm-reviews .tm-mas{--cols:3}
.tm-rev{background:#121413;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:22px 22px 18px;
  transition:border-color .3s ease,transform .3s ease}
.tm-rev:hover{border-color:rgba(63,209,95,.34)}
.tm-rev__h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
.tm-rev__h .tm-stars{--w:80px}
.tm-rev__src{font-size:12px;font-weight:500;color:rgba(255,255,255,.48);white-space:nowrap}
.tm-rev__src b{color:rgba(255,255,255,.8);font-weight:600}
.tm-rev__t{margin:0 0 8px;font-size:15.5px;line-height:1.38;font-weight:600;letter-spacing:-.012em;color:#fff}
.tm-rev__q{margin:0;font-size:14.5px;line-height:1.62;color:rgba(255,255,255,.76);white-space:pre-line;overflow-wrap:anywhere}
.tm-rev__q.is-clamp{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}
.tm-rev__more{border:0;background:none;padding:0;margin-top:8px;font:600 13px/18px var(--sans);color:var(--g2);cursor:pointer}
.tm-rev__more:hover{text-decoration:underline;text-underline-offset:3px}
.tm-rev__w{display:flex;align-items:center;gap:11px;margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.08);min-width:0}
.tm-av{width:38px;height:38px;border-radius:50%;flex:none;background:rgba(63,209,95,.14);color:var(--g2);font-style:normal;
  font-size:12.5px;font-weight:600;display:flex;align-items:center;justify-content:center;object-fit:cover;letter-spacing:.02em}
.tm-rev__w div{min-width:0}
.tm-rev__w b{display:block;font-size:14px;line-height:19px;font-weight:600;color:#fff;letter-spacing:-.01em}
.tm-rev__w span{display:block;font-size:12.5px;line-height:17px;color:rgba(255,255,255,.54)}
.tm-rev__a{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:14px}
.tm-rev__a .tm-watch{font-size:13px;color:#fff}
.tm-rev__a .tm-watch i{width:24px;height:24px}
.tm-rev__a .tm-watch i svg{width:8px;height:8px}
.tm-rev__a .tm-g2a{font-size:13px}
.tm-prods{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:80px}
.tm-prod{border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:28px 26px 26px;background:#0E100F}
.tm-prod h3{margin:0 0 6px;font-size:18px;line-height:26px;font-weight:500;letter-spacing:-.02em;color:#fff}
.tm-prod>p{margin:0 0 22px;font-size:13.5px;color:rgba(255,255,255,.5)}
.tm-prod__g{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:stretch}
.tm-prod .tm-rev{background:#151816;padding:20px 20px 18px;display:flex;flex-direction:column}
.tm-prod .tm-rev__q{flex:1 0 auto}
.tm-prod .tm-rev__q{font-size:14px}
.tm-band .cr-btn{background:#fff;color:var(--ink);padding:11px 26px;font-size:15px}
.tm-ask{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 10px;margin:22px 0 0;font-size:14.5px;
  color:rgba(255,255,255,.62);text-align:center}
.tm-ask a{color:var(--g2);font-weight:600;text-decoration:none}
.tm-ask a:hover{text-decoration:underline;text-underline-offset:3px}

/* ══ RESPONSIVE ═══════════════════════════════════════════════════════════ */
@media (max-width:1199px){
  .tm-logos{grid-template-columns:repeat(5,minmax(0,1fr))}
  .tm-story{grid-template-columns:1fr}
  .tm-story__m{min-height:0;aspect-ratio:16/10}
  .tm-story__m img{object-position:50% 25%}
}
@media (max-width:991px){
  .tm-hero h1.cr-t--hero{font-size:44px}
  .tm-hero .cr-hero__in{padding-top:112px;padding-bottom:0;padding-left:0;padding-right:0}
  .tm-map{margin-top:32px}
  .tm-map__bar{position:static;padding:0 16px;margin:0 0 14px;overflow-x:auto;justify-content:flex-start;scrollbar-width:none}
  .tm-map__bar::-webkit-scrollbar{display:none}
  .tm-seg{margin:0 auto}
  .tm-map__stage{aspect-ratio:1.9/1}
  .tm-hud,.tm-toasts{position:relative;left:auto;right:auto;bottom:auto}
  .tm-under{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:0 24px;margin-top:8px}
  .tm-hud{width:auto}
  .tm-toasts{width:auto;height:auto;min-height:150px}
  .tm-back{top:14px;left:14px}
  .tm-stories{grid-template-columns:1fr}
  .tm-story{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
  .tm-story__m{aspect-ratio:auto;min-height:340px}
  .tm-videos .tm-mas{--cols:3}
  .tm-reviews .tm-mas{--cols:2}
  .tm-prods{grid-template-columns:1fr}
  .tm-verdict .cr-g4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tm-cust{margin-top:72px;padding-top:64px}
  .tm-lb{padding:0}
  .tm-lb__p,.tm-lb.is-v .tm-lb__p{grid-template-columns:1fr;max-height:100vh;height:100%;border-radius:0;border:0;overflow:auto;width:100%}
  .tm-lb.is-v .tm-lb__m{height:auto;width:100%;max-height:68vh;aspect-ratio:9/16}
  .tm-lb__b{overflow:visible}
}
@media (min-width:992px){.tm-under{display:contents}}
@media (max-width:767px){
  .tm-under{grid-template-columns:1fr}
  .tm-story{grid-template-columns:1fr}
  .tm-story__m{aspect-ratio:16/11;min-height:0}
  .tm-logos{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
  .tm-logo{height:72px;padding:12px}
  .tm-prod__g{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;margin:0 -16px;padding:0 16px 8px;scrollbar-width:none}
  .tm-prod__g::-webkit-scrollbar{display:none}
  .tm-prod__g>.tm-rev{flex:0 0 84%;scroll-snap-align:start}
}
@media (max-width:575px){
  .tm-hero h1.cr-t--hero{font-size:34px}
  .tm-hero__lead{font-size:15.5px;line-height:24px}
  .tm-hero__ctas .cr-btn{width:100%}
  .tm-map__stage{aspect-ratio:1.75/1}
  .tm-seg__b{padding:8px 13px;font-size:13.5px}
  .tm-under{padding:0 16px}
  .tm-hud__s b{font-size:30px}
  .tm-verdict .cr-g4{grid-template-columns:1fr}
  .tm-videos .tm-mas{--cols:2}
  .tm-reviews .tm-mas{--cols:1}
  .js .tm-videos .tm-mas{gap:12px}
  .js .tm-videos .tm-mas__col{gap:20px}
  .tm-vt__meta{padding-top:9px}
  .tm-vt__meta b{font-size:13.5px;line-height:18px}
  .tm-vt__meta span{font-size:12px;line-height:16px}
  .tm-vt__play{width:44px;height:44px;margin:-22px 0 0 -22px}
  .tm-vt__tags{left:7px;right:7px;bottom:7px;gap:4px}
  .tm-tagd{font-size:10px;padding:3px 7px}
  .tm-story__b{padding:22px 20px 20px}
  .tm-story__q{font-size:19px}
  .tm-prod{padding:22px 16px 18px}
  .tm-bar{flex-direction:column;flex-wrap:nowrap;align-items:stretch}
  .tm-bar .tm-chips,.tm-filters .tm-chips{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;scrollbar-width:none;
    margin:0 -24px;padding:0 24px 4px}
  .tm-bar .tm-chips::-webkit-scrollbar,.tm-filters .tm-chips::-webkit-scrollbar{display:none}
  .tm-filters{align-items:stretch}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .tm-pin__r{animation:none!important}
}

/* ── LIBRARY BUG, patched here and reported in build-notes ─────────────────
   REPEAT: BLOGS puts .cr-btn--ghost (white text, white hairline — a dark-ground
   button) on the light panel ground, so "View all" renders invisible on every
   page built from the library. The fix belongs in kit.css; until then: */
.cr-sec--panel .cr-headrow>.cr-btn--ghost{color:var(--ink);background:#fff;border-color:var(--line2)}
.cr-sec--panel .cr-headrow>.cr-btn--ghost:hover{border-color:rgba(0,168,45,.45)}

/* ######################## site-chrome.css ######################## */
/* ═════════════════════════════════════════════════════════════════════════════
   SITE CHROME — header, closing CTA and footer only (taken from the site CSS).
   Load AFTER megamenu.css. Global resets from the site file are scoped to these
   three blocks so they can't disturb the resources sections.
   ═════════════════════════════════════════════════════════════════════════════ */
:root{
  --cr-green:rgba(28,147,35,1);
  --cr-green-2:#3FD15F;
  --cr-green-soft:rgba(59,163,65,.05);
  --cr-ink:rgba(14,14,14,1);
  --cr-ink-2:#334155;
  --cr-muted:rgba(78,78,78,1);
  --cr-line:rgba(235,235,235,1);
  --cr-line-dark:rgba(255,255,255,.10);
  --cr-serif:"Libertinus Serif Display";
  --cr-serif-paragraph:'Inter',system-ui,-apple-system,sans-serif;
}
html{scroll-behavior:smooth}
body{overflow-x:hidden}

/* scoped resets (site file had these globally) */
.site-header,.crelio-cta,.crelio-footer{font-family:var(--cr-serif-paragraph);-webkit-font-smoothing:antialiased}
.site-header img,.crelio-cta img,.crelio-footer img{max-width:100%;display:block}
.site-header ul,.crelio-footer ul{padding-left:0!important;list-style:none;margin-bottom:0}
.site-header a,.crelio-cta a,.crelio-footer a{text-decoration:none;cursor:pointer}
.site-header em,.crelio-cta em,.crelio-footer em{font-style:normal}

/* ============== HEADER ============== */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  transition:transform 350ms cubic-bezier(.4,0,.2,1),background-color 400ms ease,box-shadow 400ms ease,backdrop-filter 400ms ease;
  background:linear-gradient(180deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,0) 100%);
  will-change:transform;
}
.site-header.is-hidden{transform:translateY(-100%)}
.site-header.is-scrolled,
.site-header.menu-open,
.site-header:has(.mega-item.is-open){
  background:rgba(255,255,255,1);
  backdrop-filter:saturate(180%) blur(12px);
  -webkit-backdrop-filter:saturate(180%) blur(12px);
  box-shadow:0 1px 0 rgba(15,23,42,.06);
}
.header-inner{padding:16px}
.logo-link{display:inline-flex}
.logo-img{height:44px;width:auto;filter:brightness(0) invert(1);transition:filter 400ms ease}
.site-header.is-scrolled .logo-img,
.site-header.menu-open .logo-img,
.site-header:has(.mega-item.is-open) .logo-img{filter:none}

.primary-nav{gap:32px}
.btn-demo{
  display:inline-flex;align-items:center;justify-content:center;
  padding:8px 12px;border-radius:100px;
  background:#fff;color:rgba(14,14,14,1);
  font-size:12px;font-weight:500;text-decoration:none;
  transition:background 400ms ease,color 400ms ease;
  cursor:pointer;line-height:16px;letter-spacing:-.01em;
}
.site-header.is-scrolled .btn-demo,
.site-header.menu-open .btn-demo,
.site-header:has(.mega-item.is-open) .btn-demo{background:rgba(14,14,14,1);color:#fff}

.nav-toggle{
  width:40px;height:40px;border:0;background:transparent;
  display:inline-flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;
  cursor:pointer;padding:0;
}
.nav-toggle span{display:block;width:22px;height:2px;background:#fff;border-radius:2px;transition:background 400ms ease}
.site-header.is-scrolled .nav-toggle span,
.site-header.menu-open .nav-toggle span,
.site-header:has(.mega-item.is-open) .nav-toggle span{background:#0f172a}
.mobile-nav{
  display:none;flex-direction:column;gap:12px;
  background:rgba(255,255,255,.98);padding:16px 24px 24px;
  border-top:1px solid rgba(15,23,42,.06);
}
.mobile-nav.open{display:flex}
.mobile-nav a{color:#0f172a;text-decoration:none;font-weight:500;font-size:16px;padding:10px 20px}
.mobile-nav .btn-demo{background:rgba(14,14,14,1);color:#fff;align-self:flex-start}

@media (max-width:767px){
  .header-inner{padding:12px 16px}
  .nav-toggle{order:0;margin:0}
  .logo-link{order:1;margin-left:6px;margin-right:auto}
  .header-cta{order:2}
  .logo-img{height:30px}
  .btn-demo{padding:8px 12px;font-size:13px;box-shadow:0 3px 12px rgba(0,0,0,.2)}
}
@media (max-width:400px){
  .btn-demo{padding:7px 13px;font-size:12px}
  .logo-img{height:27px}
}

/* ============== CTA buttons ============== */
.btn-pill-cta{
  display:inline-flex;align-items:center;justify-content:center;
  padding:12px 16px;border-radius:99px;
  font-size:16px;font-weight:500;text-decoration:none;
  cursor:pointer;letter-spacing:-.02em;line-height:24px;transition:all .2s;
}
.btn-pill-cta:hover{transform:translateY(-3px)}
.btn-pill--white{background:#fff;color:rgba(7,11,18,1);transition:transform .25s ease,box-shadow .25s ease,background .25s ease}
.btn-pill--white:hover{background:#fff;color:rgba(7,11,18,1);transform:translateY(-3px)}
.btn-pill--ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.5);transition:transform .25s ease,box-shadow .25s ease,background .25s ease}
.btn-pill--ghost:hover{color:#fff;background:var(--cr-green);border:1px solid rgba(28,147,35,1);transform:translateY(-3px)}

/* ============== CTA ============== */
.crelio-cta{
  --dome-h:max(300px,19vw);
  position:relative;overflow:hidden;isolation:isolate;
  padding:130px 16px calc(var(--dome-h) + 120px);
  background:#000;color:#fff;text-align:center;
}
.cta-bg{
  position:absolute;top:0;left:0;right:0;
  width:100%;height:calc(100% - var(--dome-h));
  object-fit:cover;opacity:.6;
  -webkit-mask-image:linear-gradient(to bottom,#000 60%,transparent 100%);
          mask-image:linear-gradient(to bottom,#000 60%,transparent 100%);
}
.cta-overlay{
  position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(0,0,0,.25) 0%,rgba(0,0,0,.6) 45%,#000 62%,#000 100%);
}
.crelio-cta .dome{
  position:absolute;left:0;right:0;bottom:0;
  height:var(--dome-h);z-index:1;pointer-events:none;
  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%);
}
@supports (background:radial-gradient(circle,color(display-p3 1 1 1),#000)){
  .crelio-cta .dome{
    background-color:color(display-p3 1 1 1);
    background-image:radial-gradient(140.64% 100% at 50% 100%,
      color(display-p3 1 1 1 / 0) 0%,color(display-p3 1 1 1 / .6) 38.07%,
      color(display-p3 .231 .639 .255) 73.08%,color(display-p3 0 0 0) 100%);
  }
}
.crelio-cta::after{
  content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background-image:url('/assets/img/noise.png');
  background-repeat:repeat;background-size:180px 180px;
  mix-blend-mode:overlay;opacity:.55;
  -webkit-mask-image:linear-gradient(to bottom,transparent 55%,#000 65%,#000 85%,transparent 98%);
          mask-image:linear-gradient(to bottom,transparent 55%,#000 65%,#000 85%,transparent 98%);
}
.cta-inner{position:relative;z-index:3}
.cta-title{
  font-family:var(--cr-serif);font-weight:400;
  font-size:clamp(36px,5vw,52px);line-height:1.1;letter-spacing:-.02em;
  margin:0 auto;padding-bottom:16px;text-wrap:balance;color:#fff;
}
.cta-sub{
  color:rgba(255,255,255,.8);font-size:16px;line-height:22px;
  letter-spacing:-.011em;padding-bottom:30px;
  max-width:800px;margin:0 auto;
}
.cta-actions{display:inline-flex;gap:12px;flex-wrap:wrap;justify-content:center}
.cta-actions .btn-pill i{width:16px;height:16px}

/* ============== FOOTER ============== */
.footer-links li{display:inline-flex}
.crelio-footer{background:#fff;padding:0 16px 32px}
.footer-logo{gap:20px;display:flex;flex-wrap:wrap}
.crelio-footer .footer-top{position:relative;border:none}
.crelio-footer .footer-top .h5{
  font-size:14px;margin-bottom:6px;color:rgba(14,14,14,1);
  font-weight:500;letter-spacing:-.02em;line-height:20px;
  font-family:var(--cr-serif-paragraph);
}
.crelio-footer .footer-top ul li{padding:10px 0 0 0;display:flex;align-items:center}
.crelio-footer .footer-top .footer-links ul li:first-child{padding-top:0}
.crelio-footer .footer-top ul li a{
  font-size:14px;line-height:20px;letter-spacing:-.01em;
  color:rgba(78,78,78,1);font-weight:400;text-decoration:none;cursor:pointer;
}
.crelio-footer .footer-top ul li a:hover{color:var(--cr-green)}
.footer__widget__social a{
  display:inline-block;height:35px;width:35px;line-height:42px;
  text-align:center;background:#fff0;margin-right:10px;
}
.footer-bottom{
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:16px;margin-top:56px;padding-top:24px;
  border-top:.75px solid rgba(235,235,235,1);
}
.footer-copy{margin:0;font-size:14px;color:rgba(78,78,78,1)}
.footer-legal{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:0;margin:0;padding:0}
.footer-legal li a{position:relative;font-size:13px;line-height:20px;letter-spacing:-.006em;padding:0 10px}
.footer-legal li + li a::before{
  content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:.6px;height:14px;background:rgba(186,186,186,1);
}
.footer-legal li:first-child{padding-left:0}
.footer-legal li:last-child{padding-right:0}
.footer-legal a{font-size:14px;color:rgba(78,78,78,1);text-decoration:none}
.footer-legal a:hover{color:var(--cr-green)}
@media (max-width:991px){.footer-logo{display:block}}


.cr-aiop-foot {
  margin-top: clamp(32px, 3.6vw, 56px);
  padding: clamp(20px, 2.2vw, 24px) clamp(20px, 2.6vw, 32px);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  text-align: left;
  color: #fff;
  background:
    linear-gradient(90deg, rgba(15, 138, 42, .95), rgba(53, 186, 85, .9)),
    url('/assets/img/cr-home/cta-gb.png') center / cover;
  border-radius: 18px;
  box-shadow: 0 20px 50px rgba(0, 168, 45, .20);
}
.cr-aiop-foot p {
  margin: 0;
  max-width: 64ch;
  font-size: clamp(16px, 1.2vw, 18px);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: -0.02em;
}
.cr-aiop-foot-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #fff;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}
.cr-aiop-foot-link:hover { text-decoration: none;color: #fff; }
.cr-aiop-foot-link:focus { text-decoration: none;color: #fff; }