/* evisions site stylesheet, built by site_css.py from kit + home-v3.css + protos/*.css.
   Edit the sources, never this file or the copy in uploads/evisions-css/. */
/* === KIT — generated by components.Kit.kit_css(); token-bound, no inline styles === */
.k-ic{ display:inline-flex; align-items:center; justify-content:center; flex:none; line-height:1; vertical-align:middle; }
.k-ic > i{ color:inherit; font-size:inherit; line-height:1; }
.k-chip .et_pb_text_inner{ height:100%; }
.k-chip .et_pb_text_inner > p{ display:flex; align-items:center; justify-content:center; height:100%; margin:0; line-height:1; }
.k-ic-round{ border-radius:50%; }
.k-tick{ display:inline-flex; align-items:center; gap:7px; }
.k-alink{ font-weight:600; text-decoration:none; }
.k-alink i{ font-size:.9em; }
.k-tag{ display:inline-block; font:700 11px/1 'TT Norms Pro',sans-serif; letter-spacing:.08em; text-transform:uppercase; padding:6px 9px; border-radius:7px; }
.k-badge-in{ display:inline-flex; align-items:center; gap:11px; }
.k-em{ font-style:normal; color:var(--gcid-primary-color,#00a1df); }
.k-grad{ font-style:normal; background:linear-gradient(120deg,var(--gcid-primary-color,#00a1df),var(--gcid-44cxsfm79a,#5b21b6)); -webkit-background-clip:text; background-clip:text; color:transparent; -webkit-text-fill-color:transparent; }
.k-dot{ display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:8px; vertical-align:middle; }
.k-nowrap{ white-space:nowrap; }

.k-bg-action-primary{ background:var(--gcid-18fj0t4s9u,#00a1df); }
.k-bg-action-primary-hover{ background:var(--gcid-j3ki7aqlva,#0081b2); }
.k-bg-aotr-cyan{ background:var(--gcid-99ibqhj6ld,#3ec5f2); }
.k-bg-aotr-ink{ background:var(--gcid-p97fahgia7,#0e1730); }
.k-bg-aotr-ink-2{ background:var(--gcid-avetx6tme8,#17224a); }
.k-bg-aotr-line{ background:var(--gcid-kr4d9vvfz2,#e3e9f4); }
.k-bg-aotr-mist{ background:var(--gcid-jru2m4lnv4,#f4f7fc); }
.k-bg-aotr-violet{ background:var(--gcid-yz4gyuf4po,#7a5cff); }
.k-bg-body-text-color{ background:var(--gcid-body-color,#2b3857); }
.k-bg-border-default{ background:var(--gcid-21s6qw6he2,#dde2ea); }
.k-bg-border-strong{ background:var(--gcid-ncslvciqjo,#c1c9d8); }
.k-bg-c1c9d8{ background:var(--gcid-1073567f-78d9-4845-ad61-65129b5d8918,#c1c9d8); }
.k-bg-focus-ring{ background:var(--gcid-q5rxc84nfq,#00a1df); }
.k-bg-heading-text-color{ background:var(--gcid-heading-color,#181f38); }
.k-bg-link-color{ background:var(--gcid-link-color,#2ea3f2); }
.k-bg-neutral-000{ background:var(--gcid-y1gcqkdc0w,#ffffff); }
.k-bg-neutral-050{ background:var(--gcid-msl5ncc2w3,#f7f8fa); }
.k-bg-neutral-100{ background:var(--gcid-qrz128uq7x,#eef0f5); }
.k-bg-neutral-200{ background:var(--gcid-on0cv0d2u9,#dde2ea); }
.k-bg-neutral-400{ background:var(--gcid-2mtow0rh2g,#9aa5bc); }
.k-bg-neutral-500{ background:var(--gcid-neh0wztvub,#74819e); }
.k-bg-neutral-600{ background:var(--gcid-aac3w82ex5,#4f5d7d); }
.k-bg-neutral-800{ background:var(--gcid-ruuympbb5a,#212a48); }
.k-bg-primary-050{ background:var(--gcid-qn9g9agfus,#e6f6fc); }
.k-bg-primary-100{ background:var(--gcid-k4ea5s50tv,#ccecf9); }
.k-bg-primary-200{ background:var(--gcid-r8mwk7mfl4,#99d9f2); }
.k-bg-primary-300{ background:var(--gcid-pv82wnw5p9,#66c7ec); }
.k-bg-primary-400{ background:var(--gcid-4gtv6d7zpf,#33b4e5); }
.k-bg-primary-600{ background:var(--gcid-uy3uq0hms5,#0081b2); }
.k-bg-primary-700{ background:var(--gcid-kab8b92l3p,#006186); }
.k-bg-primary-800{ background:var(--gcid-e3nimwww0y,#004059); }
.k-bg-primary-900{ background:var(--gcid-qt842el5mi,#00202d); }
.k-bg-primary-color{ background:var(--gcid-primary-color,#00a1df); }
.k-bg-product-accelerators{ background:var(--gcid-ysrgadmpxx,#cf3d96); }
.k-bg-product-accelerators-deep{ background:var(--gcid-j851ovs8ck,#cb3c93); }
.k-bg-product-accelerators-tint{ background:var(--gcid-59qd67zwyn,#faecf4); }
.k-bg-product-argos{ background:var(--gcid-nbbsyygk7n,#e23e21); }
.k-bg-product-argos-deep{ background:var(--gcid-e9rapnxlep,#d93c20); }
.k-bg-product-argos-tint{ background:var(--gcid-k1cbm3bv9k,#fcece9); }
.k-bg-product-argos-x-deep{ background:var(--gcid-3qapv984bf,#5b21b6); }
.k-bg-product-argos-x-tint{ background:var(--gcid-1ivmbavtk2,#efe9f8); }
.k-bg-product-data-agent{ background:var(--gcid-44cxsfm79a,#5b21b6); }
.k-bg-product-data-agent-deep{ background:var(--gcid-v3pwvrjuje,#5b21b6); }
.k-bg-product-data-agent-tint{ background:var(--gcid-41brwfgpe1,#efe9f8); }
.k-bg-product-formfusion{ background:var(--gcid-ptme9asktf,#f58220); }
.k-bg-product-formfusion-deep{ background:var(--gcid-wa19oxn853,#b56018); }
.k-bg-product-formfusion-tint{ background:var(--gcid-io96w7vv0a,#fef2e9); }
.k-bg-product-intellecheck{ background:var(--gcid-qbj05voeup,#fdb913); }
.k-bg-product-intellecheck-deep{ background:var(--gcid-rrdk7h2w0u,#986f0b); }
.k-bg-product-intellecheck-tint{ background:var(--gcid-qtivz6pvj6,#fff8e7); }
.k-bg-product-maps{ background:var(--gcid-ynmpynk8fq,#505050); }
.k-bg-product-maps-deep{ background:var(--gcid-kp6imz4osn,#505050); }
.k-bg-product-maps-tint{ background:var(--gcid-yxwa6zy583,#eeeeee); }
.k-bg-secondary-color{ background:var(--gcid-secondary-color,#2ea3f2); }
.k-bg-status-danger{ background:var(--gcid-j6rycdz1sa,#c4384e); }
.k-bg-status-info{ background:var(--gcid-ip9jbbejlo,#00a1df); }
.k-bg-status-success{ background:var(--gcid-hdo5kli6le,#1e9e6a); }
.k-bg-status-warning{ background:var(--gcid-8zi3bm4wkl,#c77700); }
.k-bg-surface-inverse{ background:var(--gcid-pcol20h3ja,#181f38); }
.k-bg-surface-page{ background:var(--gcid-coe043lz3e,#ffffff); }
.k-bg-surface-subtle{ background:var(--gcid-t64a7fyhrj,#f7f8fa); }
.k-bg-text-default{ background:var(--gcid-jsnru5jtk4,#181f38); }
.k-bg-text-inverse{ background:var(--gcid-yy5u468w8t,#ffffff); }
.k-bg-text-link{ background:var(--gcid-oszp2ogk5s,#0081b2); }
.k-bg-text-muted{ background:var(--gcid-xikl310sb5,#4f5d7d); }
.k-fg-action-primary, a.k-fg-action-primary{ color:var(--gcid-18fj0t4s9u,#00a1df) !important; }
.k-fg-action-primary-hover, a.k-fg-action-primary-hover{ color:var(--gcid-j3ki7aqlva,#0081b2) !important; }
.k-fg-aotr-cyan, a.k-fg-aotr-cyan{ color:var(--gcid-99ibqhj6ld,#3ec5f2) !important; }
.k-fg-aotr-ink, a.k-fg-aotr-ink{ color:var(--gcid-p97fahgia7,#0e1730) !important; }
.k-fg-aotr-ink-2, a.k-fg-aotr-ink-2{ color:var(--gcid-avetx6tme8,#17224a) !important; }
.k-fg-aotr-line, a.k-fg-aotr-line{ color:var(--gcid-kr4d9vvfz2,#e3e9f4) !important; }
.k-fg-aotr-mist, a.k-fg-aotr-mist{ color:var(--gcid-jru2m4lnv4,#f4f7fc) !important; }
.k-fg-aotr-violet, a.k-fg-aotr-violet{ color:var(--gcid-yz4gyuf4po,#7a5cff) !important; }
.k-fg-body-text-color, a.k-fg-body-text-color{ color:var(--gcid-body-color,#2b3857) !important; }
.k-fg-border-default, a.k-fg-border-default{ color:var(--gcid-21s6qw6he2,#dde2ea) !important; }
.k-fg-border-strong, a.k-fg-border-strong{ color:var(--gcid-ncslvciqjo,#c1c9d8) !important; }
.k-fg-c1c9d8, a.k-fg-c1c9d8{ color:var(--gcid-1073567f-78d9-4845-ad61-65129b5d8918,#c1c9d8) !important; }
.k-fg-focus-ring, a.k-fg-focus-ring{ color:var(--gcid-q5rxc84nfq,#00a1df) !important; }
.k-fg-heading-text-color, a.k-fg-heading-text-color{ color:var(--gcid-heading-color,#181f38) !important; }
.k-fg-link-color, a.k-fg-link-color{ color:var(--gcid-link-color,#2ea3f2) !important; }
.k-fg-neutral-000, a.k-fg-neutral-000{ color:var(--gcid-y1gcqkdc0w,#ffffff) !important; }
.k-fg-neutral-050, a.k-fg-neutral-050{ color:var(--gcid-msl5ncc2w3,#f7f8fa) !important; }
.k-fg-neutral-100, a.k-fg-neutral-100{ color:var(--gcid-qrz128uq7x,#eef0f5) !important; }
.k-fg-neutral-200, a.k-fg-neutral-200{ color:var(--gcid-on0cv0d2u9,#dde2ea) !important; }
.k-fg-neutral-400, a.k-fg-neutral-400{ color:var(--gcid-2mtow0rh2g,#9aa5bc) !important; }
.k-fg-neutral-500, a.k-fg-neutral-500{ color:var(--gcid-neh0wztvub,#74819e) !important; }
.k-fg-neutral-600, a.k-fg-neutral-600{ color:var(--gcid-aac3w82ex5,#4f5d7d) !important; }
.k-fg-neutral-800, a.k-fg-neutral-800{ color:var(--gcid-ruuympbb5a,#212a48) !important; }
.k-fg-primary-050, a.k-fg-primary-050{ color:var(--gcid-qn9g9agfus,#e6f6fc) !important; }
.k-fg-primary-100, a.k-fg-primary-100{ color:var(--gcid-k4ea5s50tv,#ccecf9) !important; }
.k-fg-primary-200, a.k-fg-primary-200{ color:var(--gcid-r8mwk7mfl4,#99d9f2) !important; }
.k-fg-primary-300, a.k-fg-primary-300{ color:var(--gcid-pv82wnw5p9,#66c7ec) !important; }
.k-fg-primary-400, a.k-fg-primary-400{ color:var(--gcid-4gtv6d7zpf,#33b4e5) !important; }
.k-fg-primary-600, a.k-fg-primary-600{ color:var(--gcid-uy3uq0hms5,#0081b2) !important; }
.k-fg-primary-700, a.k-fg-primary-700{ color:var(--gcid-kab8b92l3p,#006186) !important; }
.k-fg-primary-800, a.k-fg-primary-800{ color:var(--gcid-e3nimwww0y,#004059) !important; }
.k-fg-primary-900, a.k-fg-primary-900{ color:var(--gcid-qt842el5mi,#00202d) !important; }
.k-fg-primary-color, a.k-fg-primary-color{ color:var(--gcid-primary-color,#00a1df) !important; }
.k-fg-product-accelerators, a.k-fg-product-accelerators{ color:var(--gcid-ysrgadmpxx,#cf3d96) !important; }
.k-fg-product-accelerators-deep, a.k-fg-product-accelerators-deep{ color:var(--gcid-j851ovs8ck,#cb3c93) !important; }
.k-fg-product-accelerators-tint, a.k-fg-product-accelerators-tint{ color:var(--gcid-59qd67zwyn,#faecf4) !important; }
.k-fg-product-argos, a.k-fg-product-argos{ color:var(--gcid-nbbsyygk7n,#e23e21) !important; }
.k-fg-product-argos-deep, a.k-fg-product-argos-deep{ color:var(--gcid-e9rapnxlep,#d93c20) !important; }
.k-fg-product-argos-tint, a.k-fg-product-argos-tint{ color:var(--gcid-k1cbm3bv9k,#fcece9) !important; }
.k-fg-product-argos-x-deep, a.k-fg-product-argos-x-deep{ color:var(--gcid-3qapv984bf,#5b21b6) !important; }
.k-fg-product-argos-x-tint, a.k-fg-product-argos-x-tint{ color:var(--gcid-1ivmbavtk2,#efe9f8) !important; }
.k-fg-product-data-agent, a.k-fg-product-data-agent{ color:var(--gcid-44cxsfm79a,#5b21b6) !important; }
.k-fg-product-data-agent-deep, a.k-fg-product-data-agent-deep{ color:var(--gcid-v3pwvrjuje,#5b21b6) !important; }
.k-fg-product-data-agent-tint, a.k-fg-product-data-agent-tint{ color:var(--gcid-41brwfgpe1,#efe9f8) !important; }
.k-fg-product-formfusion, a.k-fg-product-formfusion{ color:var(--gcid-ptme9asktf,#f58220) !important; }
.k-fg-product-formfusion-deep, a.k-fg-product-formfusion-deep{ color:var(--gcid-wa19oxn853,#b56018) !important; }
.k-fg-product-formfusion-tint, a.k-fg-product-formfusion-tint{ color:var(--gcid-io96w7vv0a,#fef2e9) !important; }
.k-fg-product-intellecheck, a.k-fg-product-intellecheck{ color:var(--gcid-qbj05voeup,#fdb913) !important; }
.k-fg-product-intellecheck-deep, a.k-fg-product-intellecheck-deep{ color:var(--gcid-rrdk7h2w0u,#986f0b) !important; }
.k-fg-product-intellecheck-tint, a.k-fg-product-intellecheck-tint{ color:var(--gcid-qtivz6pvj6,#fff8e7) !important; }
.k-fg-product-maps, a.k-fg-product-maps{ color:var(--gcid-ynmpynk8fq,#505050) !important; }
.k-fg-product-maps-deep, a.k-fg-product-maps-deep{ color:var(--gcid-kp6imz4osn,#505050) !important; }
.k-fg-product-maps-tint, a.k-fg-product-maps-tint{ color:var(--gcid-yxwa6zy583,#eeeeee) !important; }
.k-fg-secondary-color, a.k-fg-secondary-color{ color:var(--gcid-secondary-color,#2ea3f2) !important; }
.k-fg-status-danger, a.k-fg-status-danger{ color:var(--gcid-j6rycdz1sa,#c4384e) !important; }
.k-fg-status-info, a.k-fg-status-info{ color:var(--gcid-ip9jbbejlo,#00a1df) !important; }
.k-fg-status-success, a.k-fg-status-success{ color:var(--gcid-hdo5kli6le,#1e9e6a) !important; }
.k-fg-status-warning, a.k-fg-status-warning{ color:var(--gcid-8zi3bm4wkl,#c77700) !important; }
.k-fg-surface-inverse, a.k-fg-surface-inverse{ color:var(--gcid-pcol20h3ja,#181f38) !important; }
.k-fg-surface-page, a.k-fg-surface-page{ color:var(--gcid-coe043lz3e,#ffffff) !important; }
.k-fg-surface-subtle, a.k-fg-surface-subtle{ color:var(--gcid-t64a7fyhrj,#f7f8fa) !important; }
.k-fg-text-default, a.k-fg-text-default{ color:var(--gcid-jsnru5jtk4,#181f38) !important; }
.k-fg-text-inverse, a.k-fg-text-inverse{ color:var(--gcid-yy5u468w8t,#ffffff) !important; }
.k-fg-text-link, a.k-fg-text-link{ color:var(--gcid-oszp2ogk5s,#0081b2) !important; }
.k-fg-text-muted, a.k-fg-text-muted{ color:var(--gcid-xikl310sb5,#4f5d7d) !important; }
.k-ic-16{ width:16px; height:16px; font-size:9px; }
.k-ic-19{ width:19px; height:19px; font-size:10px; }
.k-ic-26{ width:26px; height:26px; font-size:12px; }
.k-ic-34{ width:34px; height:34px; font-size:14px; }
.k-ic-40{ width:40px; height:40px; font-size:18px; }
.k-ic-44{ width:44px; height:44px; font-size:18px; }
.k-ic-52{ width:52px; height:52px; font-size:22px; }
.k-ic-64{ width:64px; height:64px; font-size:28px; }
.k-ic-round{ border-radius:50%; }
/* ===========================================================================
   HOME v2 (prototype F 'Object II') — the irreducible CSS.
   Child-theme custom.css. Everything else is native Divi settings or inline
   content styling. Single quotes only.
   =========================================================================== */

/* 1 · (retired) Page rails — the Stripe-style fixed hairlines at the content
      edges read as a stray border on the live page. Removed 4 Sep. */

/* 2 · Hero mesh: three radial washes. The background control has one gradient slot. */
.home-hero{ position:relative; overflow:hidden; }
.home-hero::before{
  content:''; position:absolute; inset:0; pointer-events:none; z-index:0;
  background:
    radial-gradient(55% 60% at 88% 8%, var(--gcid-1ivmbavtk2, #efe9f8), transparent 70%),
    radial-gradient(45% 50% at 8% 18%, var(--gcid-qn9g9agfus, #e6f6fc), transparent 70%),
    radial-gradient(40% 40% at 72% 92%, var(--gcid-io96w7vv0a, #fef2e9), transparent 72%);
}
.home-hero > .et_pb_row{ position:relative; z-index:1; }

/* 3 · Close mesh: same device, two washes. */
.home-close{ position:relative; overflow:hidden; }
.home-close::before{
  content:''; position:absolute; inset:0; pointer-events:none; z-index:0;
  background:
    radial-gradient(50% 60% at 10% 100%, var(--gcid-qn9g9agfus, #e6f6fc), transparent 70%),
    radial-gradient(45% 55% at 92% 0%, var(--gcid-1ivmbavtk2, #efe9f8), transparent 70%);
}
.home-close > .et_pb_row{ position:relative; z-index:1; }

/* 4 · Logo marquee: motion is CSS keyframes (a Code module carries the markup).
      Without this block the marks still render as a wrapping row. */
.home-marquee{
  overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
          mask-image:linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
}
.home-marquee-track{
  display:flex; align-items:center; gap:64px; width:max-content; padding-right:64px;
  animation:home-slide 46s linear infinite;
}
.home-marquee:hover .home-marquee-track{ animation-play-state:paused; }
@keyframes home-slide{ to{ transform:translateX(-50%); } }
.home-mark{ display:flex; flex-direction:column; align-items:center; white-space:nowrap; }
.home-mark b{ font-size:1.0625rem; letter-spacing:-.015em; line-height:1.2; font-weight:700; }
.home-mark em{ font-style:normal; font-size:.62rem; letter-spacing:.08em; text-transform:uppercase; margin-top:2px; }
@media (max-width:640px){ .home-marquee-track{ gap:40px; } }

/* 5 · Product stage mini objects (Code module per card; --pc / --pd set inline). */
.home-stage .mini{
  position:absolute; left:18px; right:-14px; bottom:-20px; padding:14px 14px 24px; font-size:11px;
  background:#fff; border:1px solid color-mix(in srgb, var(--pc) 22%, var(--gcid-on0cv0d2u9, #dde2ea));
  border-radius:10px 0 0 0; box-shadow:0 20px 40px -24px rgba(24,31,56,.35);
  color:var(--gcid-jsnru5jtk4, #181f38); line-height:1.35;
}
.home-stage .mini span{ display:block; height:7px; border-radius:4px; background:var(--gcid-qrz128uq7x, #eef0f5); }
.home-stage .mini span.acc{ background:color-mix(in srgb, var(--pc) 45%, #fff); }
.home-stage .m-table .mt-head{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:10px; }
.home-stage .m-table .mt-head b{ font-size:12px; }
.home-stage .m-table .mt-head i{ font-style:normal; font-size:9.5px; color:var(--gcid-xikl310sb5, #4f5d7d); letter-spacing:.06em; text-transform:uppercase; }
.home-stage .m-table .mt-row{ display:flex; gap:8px; padding:6px 0; border-top:1px solid var(--gcid-msl5ncc2w3, #f7f8fa); }
.home-stage .m-chat .mc-q{ font-weight:700; font-size:12px; letter-spacing:-.01em; line-height:1.3; padding:8px 10px; border-radius:10px 10px 10px 2px; background:var(--gcid-msl5ncc2w3, #f7f8fa); margin-bottom:10px; max-width:92%; }
.home-stage .m-chat .mc-a{ display:grid; gap:6px; padding-left:4px; }
.home-stage .m-chat .mc-tags{ display:flex; gap:6px; margin-top:6px; }
.home-stage .m-chat .mc-tags b{ font-size:9px; letter-spacing:.08em; text-transform:uppercase; padding:3px 7px; border-radius:4px; background:color-mix(in srgb, var(--pc) 12%, #fff); color:var(--pd); }
.home-stage .m-doc{ padding-top:16px; }
.home-stage .m-doc .md-title{ font-weight:700; font-size:12px; margin-bottom:10px; }
.home-stage .m-doc span{ margin-bottom:7px; }
.home-stage .m-doc .md-stamp{ display:inline-block; margin-top:6px; font-size:9px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--pd); border:1px solid color-mix(in srgb, var(--pc) 40%, #fff); border-radius:4px; padding:3px 7px; transform:rotate(-3deg); }
.home-stage .m-check{ background:linear-gradient(180deg, #fff, color-mix(in srgb, var(--pc) 8%, #fff)); }
.home-stage .m-check .mk-top{ display:flex; justify-content:space-between; font-size:10px; color:var(--gcid-xikl310sb5, #4f5d7d); margin-bottom:10px; }
.home-stage .m-check .mk-top b{ color:var(--pd); font-size:9px; letter-spacing:.08em; text-transform:uppercase; }
.home-stage .m-check .mk-line{ height:1px; background:var(--gcid-on0cv0d2u9, #dde2ea); margin-bottom:10px; }
.home-stage .m-check .mk-amt{ display:flex; justify-content:space-between; align-items:center; margin-bottom:10px; }
.home-stage .m-check .mk-amt span{ width:40%; height:18px; border:1px solid var(--gcid-on0cv0d2u9, #dde2ea); border-radius:3px; background:#fff; }
.home-stage .m-check .mk-amt b{ font-size:9px; letter-spacing:.08em; text-transform:uppercase; color:var(--pd); }
.home-stage .m-check .mk-micr{ font-family:ui-monospace, 'Courier New', monospace; font-size:10px; letter-spacing:.16em; color:var(--gcid-neh0wztvub, #74819e); }

@media (prefers-reduced-motion:reduce){
  .home-marquee-track{ animation:none; }
}

/* ===========================================================================
   HOME v3 (prototype G 'Spark') — the G layer on top of the v2 rules above.
   Every rule targets a .home-* class set natively on the module.
   Single quotes only. Colours via the Variable Manager custom properties.
   =========================================================================== */

/* 6 · Hero: richer mesh (replaces the v2 washes), bezel lifts on hover */
.home-hero::before{
  background:
    radial-gradient(60% 65% at 88% 6%, color-mix(in srgb, var(--gcid-44cxsfm79a, #5b21b6) 22%, transparent), transparent 68%),
    radial-gradient(48% 55% at 6% 20%, color-mix(in srgb, var(--gcid-primary-color, #00a1df) 22%, transparent), transparent 68%),
    radial-gradient(42% 42% at 70% 96%, color-mix(in srgb, var(--gcid-ptme9asktf, #f58220) 24%, transparent), transparent 70%);
}
.home-hero .hero-bezel{ transition:transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s; }
.home-hero .hero-bezel:hover{ transform:translateY(-4px); }

/* 7 · Text links: gradient underline draws in on hover */
.home-tlink{ position:relative; display:inline-block; transition:color .2s; }
.home-tlink::after{
  content:''; position:absolute; left:0; right:0; bottom:-3px; height:2px;
  background:linear-gradient(120deg, var(--gcid-primary-color, #00a1df), var(--gcid-44cxsfm79a, #5b21b6));
  transform:scaleX(0); transform-origin:left; transition:transform .25s;
}
.home-tlink:hover{ color:var(--gcid-kab8b92l3p, #006186) !important; }
.home-tlink:hover::after{ transform:scaleX(1); }

/* 8 · Logo marquee: production's treatment — 150×30 max, desaturated at rest, colour on hover.
      No translate on hover (the masked track clips it). Grayscale source files stay grey until
      colour sources replace them; the filter is already in place for that. */
.home-marquee-track{ padding:6px 64px 6px 0; }
.home-mark{ display:block; flex:none; }
.home-mark img{ max-width:150px; max-height:30px; width:auto; height:auto; display:block; filter:saturate(0); opacity:.6; transition:filter .3s, opacity .3s; }
.home-mark-stack img{ max-height:40px; }
.home-mark:hover img{ filter:saturate(1); opacity:1; }

/* 9 · Offers: colour rotation per cell, chip fills + tilts, a rule that draws across the top */
.home-offers > .home-offer{ --c:var(--gcid-18fj0t4s9u, #00a1df); --cd:var(--gcid-kab8b92l3p, #006186); position:relative; }
.home-offers > .home-offer:nth-child(5n+2){ --c:var(--gcid-44cxsfm79a, #5b21b6); --cd:var(--gcid-v3pwvrjuje, #5b21b6); }
.home-offers > .home-offer:nth-child(5n+3){ --c:var(--gcid-ptme9asktf, #f58220); --cd:var(--gcid-wa19oxn853, #b56018); }
.home-offers > .home-offer:nth-child(5n+4){ --c:var(--gcid-qbj05voeup, #fdb913); --cd:var(--gcid-rrdk7h2w0u, #986f0b); }
.home-offers > .home-offer:nth-child(5n+5){ --c:var(--gcid-ysrgadmpxx, #cf3d96); --cd:var(--gcid-j851ovs8ck, #cb3c93); }
.home-oicon{ transition:background .35s ease-in-out, color .35s ease-in-out, transform .6s cubic-bezier(.68,-.55,.27,1.55); }
.home-offer:hover .home-oicon{ background:var(--c) !important; transform:rotate(-10deg) scale(1.12); }
.home-offer:hover .home-oicon i{ color:#fff !important; }
.home-offer::after{
  content:''; position:absolute; left:0; top:-1px; height:2px; width:100%;
  background:linear-gradient(90deg, var(--c), transparent);
  transform:scaleX(0); transform-origin:left; transition:transform .35s cubic-bezier(.2,.7,.2,1);
}
.home-offer:hover::after{ transform:scaleX(1); }
.home-offer .et_pb_heading *{ transition:color .2s; }
.home-offer:hover .et_pb_heading *{ color:var(--cd); }

/* 10 · Products: the object floats on hover, the title takes the product colour */
/* the object rises smoothly (no elastic overshoot, no tilt — a tilt lifted its bottom corner into view) */
.home-pcard .mini{ transition:transform .3s cubic-bezier(.2,.7,.2,1); }
.home-pcard:hover .mini{ transform:translateY(-8px); }
.home-pcard .et_pb_heading *{ transition:color .2s; }
.home-products .home-pcard:nth-child(1):hover .et_pb_heading *{ color:var(--gcid-e9rapnxlep, #d93c20) !important; }
.home-products .home-pcard:nth-child(2):hover .et_pb_heading *{ color:var(--gcid-v3pwvrjuje, #5b21b6) !important; }
.home-products .home-pcard:nth-child(3):hover .et_pb_heading *{ color:var(--gcid-wa19oxn853, #b56018) !important; }
.home-products .home-pcard:nth-child(4):hover .et_pb_heading *{ color:var(--gcid-rrdk7h2w0u, #986f0b) !important; }

/* 11 · Proof: gradient numerals */
.home-stats .et_pb_heading h1, .home-stats .et_pb_heading h2, .home-stats .et_pb_heading h3, .home-stats .et_pb_heading h4{
  background:linear-gradient(120deg, var(--gcid-primary-color, #00a1df), var(--gcid-44cxsfm79a, #5b21b6));
  -webkit-background-clip:text; background-clip:text;
  color:transparent !important; -webkit-text-fill-color:transparent;
}

/* 11b · Arrows move: text links, next-step links, the router button, and Divi's button icon */
.home-tlink i, .home-nlink i{ display:inline-block; transition:transform .45s cubic-bezier(.34,1.56,.64,1); }
.home-tlink:hover i, .home-nlink:hover i{ transform:translateX(4px); }
/* Divi buttons: one arrow for the whole page — the same Font Awesome regular arrow-right the
   text links use — instead of Divi's ETmodules glyph. The native icon stays enabled (it owns the
   pseudo-element and its spacing); only the glyph is swapped. */
body #page-container #et-main-area .et_pb_section .et_pb_button.et_pb_button.et_pb_module:after{ font-family:'Font Awesome 7 Pro' !important; font-weight:400 !important; content:'' !important; font-size:.9em !important; line-height:1; translate:6px 0; transition:translate .3s cubic-bezier(.2,.7,.2,1) !important; }
body #page-container #et-main-area .et_pb_section .et_pb_button.et_pb_button.et_pb_module:hover:after{ translate:9px 0; }
/* the shaft: Divi reserves :before for a left-placed icon and hides it; this page redraws it as a
   1.5px bar whose right end sits on the hovered chevron's centre and scales out from there */
body #page-container #et-main-area .et_pb_section .et_pb_button.et_pb_button.et_pb_module:before{ display:block !important; content:'' !important; position:absolute !important; left:auto !important; right:15px !important; top:50% !important; width:8px !important; height:1.5px !important; margin:0 !important; font-size:0 !important; line-height:0 !important; opacity:1 !important; border-radius:1px; background:currentColor; transform:translateY(-50%) scaleX(0) !important; transform-origin:right center; transition:transform .3s cubic-bezier(.2,.7,.2,1); }
body #page-container #et-main-area .et_pb_section .et_pb_button.et_pb_button.et_pb_module:hover:before{ transform:translateY(-50%) scaleX(1) !important; }
/* router button (plain HTML): same motif on its i element — FA draws the glyph in ::before, ::after is the shaft */
.home-router .ba-btn i{ position:relative; display:inline-block; font-size:.9em; translate:-3px 0; transition:translate .3s cubic-bezier(.2,.7,.2,1); }
.home-router .ba-btn:hover i{ translate:0 0; }
.home-router .ba-btn i::after{ content:''; position:absolute; right:50%; top:50%; width:8px; height:1.5px; border-radius:1px; background:currentColor; transform:translateY(-50%) scaleX(0); transform-origin:right center; transition:transform .3s cubic-bezier(.2,.7,.2,1); }
.home-router .ba-btn:hover i::after{ transform:translateY(-50%) scaleX(1); }
/* ^ Divi's theme sheet pins the icon's `transform` (translateY(-50%)) and `right` even against
     !important; the independent `translate` property is untouched, so the slide uses that. */
/* ^ the arrow is the literal U+F061 character: freeForm strips backslash escapes (like it strips
     double quotes), and Divi's own icon rule carries an ID + !important, hence the specificity. */

/* Product stage: the mini table's header label must not wrap */
.home-stage .m-table .mt-head{ gap:10px; }
.home-stage .m-table .mt-head i{ white-space:nowrap; font-size:8.5px; }
/* the check's payee label is real text, not a placeholder bar (the generic .mini span rule) */
.home-stage .m-check .mk-top span{ height:auto; background:none; border-radius:0; font-size:11px; font-weight:600; color:var(--gcid-jsnru5jtk4, #181f38); }

/* 12 · Next: chips fill on hover, links slide */
.home-next{ --c:var(--gcid-18fj0t4s9u, #00a1df); }
.home-next:nth-child(2){ --c:var(--gcid-44cxsfm79a, #5b21b6); }
.home-next:nth-child(3){ --c:var(--gcid-ptme9asktf, #f58220); }
.home-nicon{ transition:background .35s ease-in-out, color .35s ease-in-out, transform .6s cubic-bezier(.68,-.55,.27,1.55); }
.home-next:hover .home-nicon{ background:var(--c) !important; transform:rotate(-10deg) scale(1.12); }
.home-next:hover .home-nicon i{ color:#fff !important; }
.home-nlink{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 0; font-weight:700; text-decoration:none; border-top:1px solid var(--gcid-qrz128uq7x, #eef0f5); transition:color .18s, padding-left .18s; }
.home-nlink i{ font-size:.9em; }
.home-nlink:hover{ padding-left:6px !important; color:var(--gcid-kab8b92l3p, #006186) !important; }

/* 13 · Close: glows over the native Primary 700 → 900 gradient (replaces the v2 mesh) */
.home-close::before{
  background:
    radial-gradient(60% 70% at 90% 0%, color-mix(in srgb, var(--gcid-44cxsfm79a, #5b21b6) 55%, transparent), transparent 65%),
    radial-gradient(50% 60% at 0% 100%, color-mix(in srgb, var(--gcid-primary-color, #00a1df) 45%, transparent), transparent 65%);
}

/* 14 · Reveal on scroll: CSS scroll-driven, no JS; unsupported browsers show the page at rest.
      Animates the separate `translate` property, NOT `transform` — a filled animation on
      `transform` would outrank every hover lift (that is what killed them in the first cut). */
/* no opacity: Lighthouse never scrolls, so a faded start reads as failed contrast (2026-10-23) */
@keyframes home-rise{ from{ translate:0 18px; } to{ translate:0 0; } }
@supports (animation-timeline: view()){
  .home-offer, .home-pcard, .home-quote, .home-next, .home-stats > *{
    animation:home-rise .6s cubic-bezier(.2,.7,.2,1) both; animation-timeline:view(); animation-range:entry 0% entry 35%;
  }
}
@media (prefers-reduced-motion:reduce){
  .home-offer, .home-pcard, .home-quote, .home-next, .home-stats > *{ animation:none; }
  .home-hero .hero-bezel, .home-oicon, .home-nicon, .home-pcard .mini{ transition:none; }
}

/* 15 · Close: the gradient and glows drift slowly; the section clips the scaled glow layer */
.home-close{ overflow:hidden; background-size:200% 200% !important; animation:home-drift 22s ease-in-out infinite alternate; }
.home-close::before{ animation:home-glow 16s ease-in-out infinite alternate; will-change:transform; }
@keyframes home-drift{ from{ background-position:0% 0%; } to{ background-position:100% 100%; } }
@keyframes home-glow{ from{ transform:translate(0, 0) scale(1); } to{ transform:translate(-4%, 6%) scale(1.12); } }

/* 15b · Steps: the number gutter must not flex-shrink when the copy wraps (Divi's sizing has no min-width) */
.home-step .et_pb_text:first-of-type{ flex:0 0 40px; }

/* 16 · Accolade tiles: frosted glass, each bobbing on its own cycle (animates `translate`, so the
      native hover lift on `transform` still wins), with a ground shadow that shrinks as the tile
      rises. Hover pauses the bob, tilts the chip, and lights the border in the tile's colour. */
.home-tiles{ position:relative; z-index:1; }
.home-tile{ position:relative; backdrop-filter:blur(14px) saturate(140%); -webkit-backdrop-filter:blur(14px) saturate(140%); animation:home-float 5.5s ease-in-out infinite alternate; }
.home-tile::after{ content:''; position:absolute; left:16%; right:16%; bottom:-34px; height:24px; border-radius:50%; background:rgba(0,16,26,.5); filter:blur(12px); z-index:-1; pointer-events:none; animation:home-ground 5.5s ease-in-out infinite alternate; }
.home-tiles > .home-tile:nth-child(2), .home-tiles > .home-tile:nth-child(2)::after{ animation-duration:6.8s; animation-delay:-2.4s; }
.home-tiles > .home-tile:nth-child(3), .home-tiles > .home-tile:nth-child(3)::after{ animation-duration:6.2s; animation-delay:-4.1s; }
@keyframes home-float{ from{ translate:0 0; } to{ translate:0 -14px; } }
@keyframes home-ground{ from{ transform:scaleX(1); opacity:.9; } to{ transform:scaleX(.8); opacity:.45; } }
.home-tile:hover, .home-tile:hover::after{ animation-play-state:paused; }
.home-ticon{ transition:transform .6s cubic-bezier(.68,-.55,.27,1.55); }
/* 17 · Product stage box (the Code module's art only carries --pc/--pd/--pt inline) */
.home-stage{ position:relative; height:170px; border-radius:12px; overflow:hidden; border:1px solid color-mix(in srgb, var(--pc) 14%, var(--gcid-qrz128uq7x, #eef0f5)); background:radial-gradient(80% 90% at 50% 0%, color-mix(in srgb, var(--pc) 34%, transparent), transparent 70%), var(--pt); }
.home-tile:hover .home-ticon{ transform:rotate(-8deg) scale(1.1); }
.home-tile{ --tc:var(--gcid-primary-color, #00a1df); }
.home-tiles > .home-tile:nth-child(1){ --tc:#7100EB; }
.home-tiles > .home-tile:nth-child(3){ --tc:var(--gcid-pv82wnw5p9, #66c7ec); }
.home-tile:hover{ border-color:color-mix(in srgb, var(--tc) 75%, transparent) !important; box-shadow:0 40px 70px -28px color-mix(in srgb, var(--tc) 55%, transparent) !important; }
@media (prefers-reduced-motion:reduce){ .home-close, .home-close::before, .home-tile, .home-tile::after{ animation:none; } }


/* ===========================================================================
   PAGES — the inner-page archetypes (site_kit.py), on top of the home v3 layer.
   Every rule targets a pg-* class set natively on the module. Single quotes only,
   no backslashes (freeForm strips both). Colours via Variable Manager properties.
   =========================================================================== */

/* P1 · Product families as custom properties (set by class, never inline) */
.pg-p-argos{ --pc:var(--gcid-nbbsyygk7n, #e23e21); --pd:var(--gcid-e9rapnxlep, #d93c20); --pt:var(--gcid-k1cbm3bv9k, #fcece9); }
.pg-p-agent{ --pc:var(--gcid-44cxsfm79a, #5b21b6); --pd:var(--gcid-v3pwvrjuje, #5b21b6); --pt:var(--gcid-41brwfgpe1, #efe9f8); }
.pg-p-ff{ --pc:var(--gcid-ptme9asktf, #f58220); --pd:var(--gcid-wa19oxn853, #b56018); --pt:var(--gcid-io96w7vv0a, #fef2e9); }
.pg-p-ic{ --pc:var(--gcid-qbj05voeup, #fdb913); --pd:var(--gcid-rrdk7h2w0u, #986f0b); --pt:var(--gcid-qtivz6pvj6, #fff8e7); }
.pg-p-acc{ --pc:var(--gcid-ysrgadmpxx, #cf3d96); --pd:var(--gcid-j851ovs8ck, #cb3c93); --pt:var(--gcid-59qd67zwyn, #faecf4); }
.pg-p-maps{ --pc:var(--gcid-primary-color, #00a1df); --pd:var(--gcid-kab8b92l3p, #006186); --pt:var(--gcid-qn9g9agfus, #e6f6fc); }

/* P2 · Hero visual: four product objects on one platform layer */
.pg-stack{ display:grid; gap:10px; }
.pg-stack-row{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.pg-tile{ position:relative; padding:12px 12px 0; border-radius:14px; background:var(--gcid-msl5ncc2w3, #f7f8fa); overflow:hidden; transition:translate .35s cubic-bezier(.2,.7,.2,1); }
.pg-tile:hover{ translate:0 -3px; }
.pg-tname{ display:flex; align-items:center; gap:0; padding:0 0 10px 2px; font:700 11px/1 'TT Norms Pro',sans-serif; letter-spacing:.12em; text-transform:uppercase; color:var(--pd); }
.pg-tname .k-dot{ background:var(--pc); width:7px; height:7px; }
.pg-tile .home-stage{ height:132px; border-radius:10px 10px 0 0; border-bottom:0; }
.pg-tile .home-stage .mini{ transition:transform .3s cubic-bezier(.2,.7,.2,1); }
.pg-tile:hover .home-stage .mini{ transform:translateY(-6px); }
.pg-plat{ position:relative; display:flex; align-items:center; gap:18px; flex-wrap:wrap; padding:14px 18px; border-radius:14px; color:#fff;
  background:linear-gradient(120deg, var(--gcid-kab8b92l3p, #006186), var(--gcid-v3pwvrjuje, #5b21b6)); overflow:hidden; }
.pg-plat::before{ content:''; position:absolute; inset:0; background:linear-gradient(90deg, transparent, rgba(255,255,255,.22), transparent); translate:-100% 0; animation:pg-sweep 5s cubic-bezier(.4,0,.2,1) infinite; }
@keyframes pg-sweep{ 0%, 55%{ translate:-100% 0; } 100%{ translate:100% 0; } }
.pg-plat b{ position:relative; font:700 13px/1 'TT Norms Pro',sans-serif; letter-spacing:.14em; }
.pg-plat-facts{ position:relative; display:flex; flex-wrap:wrap; gap:6px 16px; font-size:12.5px; font-weight:600; line-height:1.3; }
.pg-plat-facts span{ display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
.pg-plat-facts i{ font-size:10px; color:var(--gcid-pv82wnw5p9, #66c7ec); }
@media (max-width:640px){ .pg-tile .home-stage{ height:112px; } .pg-plat{ gap:10px; } }

/* P3 · Jobs: product-coloured rule draws across on hover, the title takes the colour */
.pg-job{ position:relative; }
.pg-job::after{ content:''; position:absolute; left:0; top:-2px; height:2px; width:100%; background:var(--pd); transform:scaleX(0); transform-origin:left; transition:transform .35s cubic-bezier(.2,.7,.2,1); }
.pg-job:hover::after{ transform:scaleX(1); }
.pg-job .et_pb_heading *{ transition:color .2s; }
.pg-job:hover .et_pb_heading *{ color:var(--pd) !important; }

/* P4 · Feature split: the big stage (art slot) and the feature points (FA 7 icon in a product-tint chip) */
.home-stage.pg-bigstage{ height:auto; aspect-ratio:5 / 4; border-radius:20px; }
.pg-bigstage .mini{ zoom:2; left:9%; right:-12px; bottom:-20px; }
.pg-feature .home-stage .mini{ transition:transform .45s cubic-bezier(.2,.7,.2,1); }
.pg-feature:hover .home-stage .mini{ transform:translateY(-6px); }
.pg-checks.pg-checks{ list-style:none !important; margin:0 !important; padding:0 !important; display:grid; gap:12px; line-height:inherit; }
/* Divi's theme pins `.et-l--body ul` (and .entry-content ul) at line-height:26px, so the list ignored the Text
   module's lead: a 14px item that wraps read as two rows (IntelleCheck licence card, 2026-10-16). The list now
   inherits the module lead; the chip and the first line centre on each other via 1lh (the text is padded down
   to a taller chip, never the chip pulled up into the row gap). Fallback = the old 26px margin tuning. */
.pg-checks{ --chip:34px; }
.pg-checks li > span{ padding-top:max(0px, (var(--chip) - 1lh) / 2); }
.pg-checks li{ display:flex; gap:12px; align-items:flex-start; padding:0 !important; margin:0 !important; list-style:none !important; }
.pg-checks li::before, .pg-checks li::marker{ content:none; display:none; }
.pg-checks li i{ flex:none; display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; margin-top:-5px; margin-top:max(0px, (1lh - var(--chip)) / 2); border-radius:10px; font-size:15px !important; line-height:1 !important; color:var(--pd, var(--gcid-kab8b92l3p, #006186)) !important; background:var(--pt, var(--gcid-qn9g9agfus, #e6f6fc)); transition:background .3s, color .3s, transform .5s cubic-bezier(.68,-.55,.27,1.55); }
.pg-checks li:hover i{ background:var(--pc); color:#fff !important; transform:rotate(-8deg) scale(1.08); }
.pg-checks li{ gap:14px; }
/* a site rule sizes icons inside text-module lists at 40px; the chip glyph is pinned to 15px */
.pg-checks li strong{ font-weight:700; }
.pg-links{ display:flex; flex-wrap:wrap; gap:10px 28px; }
@media (max-width:980px){ .pg-bigstage .mini{ zoom:1.5; } }
@media (max-width:640px){ .pg-bigstage .mini{ zoom:1.15; } }

/* P5 · MAPS mini (the platform object; the product minis live in home-v3.css) */
.home-stage .m-maps{ display:grid; gap:9px; padding:14px 14px 26px; }
.home-stage .m-maps .mm-row{ display:grid; grid-template-columns:repeat(4, 1fr); gap:5px; }
.home-stage .m-maps .mm-row b{ font-size:8.5px; letter-spacing:.04em; text-align:center; padding:6px 2px; border-radius:5px; background:var(--gcid-msl5ncc2w3, #f7f8fa); border:1px solid var(--gcid-qrz128uq7x, #eef0f5); white-space:nowrap; }
.home-stage .m-maps .mm-layer{ display:flex; align-items:center; gap:8px; padding:8px 10px; border-radius:6px; color:#fff; background:linear-gradient(120deg, var(--gcid-kab8b92l3p, #006186), var(--gcid-v3pwvrjuje, #5b21b6)); }
.home-stage .m-maps .mm-layer i{ font-style:normal; font-weight:700; font-size:10px; letter-spacing:.14em; margin-right:auto; }
.home-stage .m-maps .mm-layer span{ height:auto; background:none; font-size:9px; font-weight:600; white-space:nowrap; }
.home-stage .m-maps .mm-tiers{ display:flex; gap:5px; }
.home-stage .m-maps .mm-tiers span{ height:auto; flex:1; text-align:center; font-size:9px; font-weight:600; padding:5px 0; border-radius:5px; color:var(--pd); background:color-mix(in srgb, var(--pc) 12%, #fff); }

/* P6 · Doors and stories: icon chips fill on hover with their own rotation colour. The card carries
   pg-r0..pg-r4 (index mod 5), the same slot site_kit.door() used for the chip's tint/deep — never :nth-child, which
   only covered four cards and stopped matching past the fourth (every later chip filled blue). */
.pg-door{ --c:var(--gcid-18fj0t4s9u, #00a1df); --cg:#fff; }
.pg-door.pg-r1{ --c:var(--gcid-44cxsfm79a, #5b21b6); }
.pg-door.pg-r2{ --c:var(--gcid-ptme9asktf, #f58220); }
.pg-door.pg-r3{ --c:var(--gcid-qbj05voeup, #fdb913); --cg:var(--gcid-rrdk7h2w0u, #986f0b); }
.pg-door.pg-r4{ --c:var(--gcid-ysrgadmpxx, #cf3d96); }
.pg-dicon{ transition:background .35s ease-in-out, color .35s ease-in-out, transform .6s cubic-bezier(.68,-.55,.27,1.55); }
.pg-door:hover .pg-dicon{ background:var(--c) !important; transform:rotate(-10deg) scale(1.12); }
/* white on IntelleCheck yellow is ~1.6:1 (see P16), so that slot keeps its Deep glyph */
.pg-door:hover .pg-dicon i{ color:var(--cg) !important; }

/* P7 · FAQ: the head stays in view beside a long list; Divi's toggle icon becomes a plus that turns */
.pg-faq-head{ position:sticky; top:110px; }
.pg-faq .et_pb_toggle{ border-left:0 !important; border-right:0 !important; border-top:0 !important; }
.pg-faq .et_pb_toggle:first-child{ border-top:1px solid var(--gcid-21s6qw6he2, #dde2ea) !important; }
/* the site's default accordion preset pads the title 20px and gives the open item a 4px Action
   Primary underline; this list is a hairline rule grid, so both are reset here */
.pg-faq .et_pb_toggle .et_pb_toggle_title{ padding:0 !important; }
.pg-faq .et_pb_toggle.et_pb_toggle_open{ border-bottom:1px solid var(--gcid-21s6qw6he2, #dde2ea) !important; }
.pg-faq .et_pb_toggle_title:before{ display:block !important; font-family:'Font Awesome 7 Pro' !important; font-weight:400 !important; content:'+' !important; font-size:20px !important; line-height:1 !important; right:-36px !important; top:50% !important; margin-top:0 !important; transform:translateY(-50%); transition:transform .3s cubic-bezier(.2,.7,.2,1), color .2s; }
.pg-faq .et_pb_toggle_open .et_pb_toggle_title:before{ transform:translateY(-50%) rotate(45deg); color:var(--gcid-kab8b92l3p, #006186) !important; }
/* Smooth open/close (FAQ_JS in site_kit switches the classes on click). Divi's own 700ms jQuery
   slide is bypassed; the answer animates grid rows 0fr→1fr + opacity. The rules only apply once the
   script has run (html.pg-faq-js), so without JS the answers stay visible. */
.pg-faq .et_pb_toggle_content{ padding:0 !important; max-width:640px; }
html.pg-faq-js .pg-faq .et_pb_toggle_content{ display:grid !important; grid-template-rows:0fr; opacity:0;
  transition:grid-template-rows .36s cubic-bezier(.2,.7,.2,1), opacity .24s ease; }
html.pg-faq-js .pg-faq .et_pb_toggle_open .et_pb_toggle_content{ grid-template-rows:1fr; opacity:1;
  transition:grid-template-rows .36s cubic-bezier(.2,.7,.2,1), opacity .3s ease .06s; }
.pg-faq .pg-ans{ min-height:0; overflow:hidden; }
.pg-faq .pg-ans p{ padding-top:12px; margin:0; }
.pg-faq .et_pb_toggle_title{ cursor:pointer; transition:color .2s; }
.pg-faq .et_pb_toggle_title:focus-visible{ outline:2px solid var(--gcid-18fj0t4s9u, #00a1df); outline-offset:4px; border-radius:4px; }
@media (prefers-reduced-motion:reduce){ html.pg-faq-js .pg-faq .et_pb_toggle_content, .pg-faq .et_pb_toggle_title:before{ transition:none !important; } }
@media (max-width:980px){ .pg-faq-head{ position:static; } }

/* P8 · Reveal on scroll for the page archetypes (same curve and rule as home §14) */
@supports (animation-timeline: view()){
  .pg-job, .pg-story, .pg-door, .pg-feature .home-stage{
    animation:home-rise .6s cubic-bezier(.2,.7,.2,1) both; animation-timeline:view(); animation-range:entry 0% entry 35%;
  }
}
@media (prefers-reduced-motion:reduce){
  .pg-job, .pg-story, .pg-door, .pg-feature .home-stage{ animation:none; }
  .pg-plat::before{ animation:none; }
  .pg-tile, .pg-tile .home-stage .mini, .pg-feature .home-stage .mini, .pg-dicon, .pg-checks li i{ transition:none; }
}

/* P9 · Two-across point lists (define capabilities, licence card) and the aside note */
.pg-checks.pg-checks-2{ grid-template-columns:1fr 1fr; gap:18px 28px; }
@media (max-width:640px){ .pg-checks.pg-checks-2{ grid-template-columns:1fr; } }
.pg-note{ display:flex; gap:10px; align-items:flex-start; }
.pg-note i{ flex:none; margin-top:4px; font-size:14px; color:var(--gcid-uy3uq0hms5, #0081b2); }
.pg-sticky{ position:sticky; top:110px; }
@media (max-width:980px){ .pg-sticky{ position:static; } }

/* P10 · Numbered grid: the numeral takes the cell's deep colour (home-offers rotation; the bright yellow fails contrast) */
.pg-num .et_pb_text:first-child p{ color:var(--cd) !important; }


/* P12 · Art-slot minis for the product pages (placeholders; Josh owns the art) */
.home-stage .m-browser{ padding:0 0 26px; overflow:hidden; }
.home-stage .m-browser .mb-bar{ display:flex; gap:5px; padding:9px 12px; border-bottom:1px solid var(--gcid-qrz128uq7x, #eef0f5); }
.home-stage .m-browser .mb-bar i{ width:7px; height:7px; border-radius:50%; background:var(--gcid-on0cv0d2u9, #dde2ea); }
.home-stage .m-browser .mb-tabs{ display:flex; gap:6px; padding:10px 12px 8px; }
.home-stage .m-browser .mb-tabs b{ font-size:9px; letter-spacing:.06em; text-transform:uppercase; padding:4px 8px; border-radius:5px; color:var(--gcid-neh0wztvub, #74819e); background:var(--gcid-msl5ncc2w3, #f7f8fa); }
.home-stage .m-browser .mb-tabs b.on{ color:#fff; background:var(--pc); }
.home-stage .m-browser .mb-chart{ display:flex; align-items:flex-end; gap:6px; height:58px; padding:0 12px; }
.home-stage .m-browser .mb-chart span{ flex:1; height:auto; border-radius:3px 3px 0 0; background:color-mix(in srgb, var(--pc) 30%, #fff); }
.home-stage .m-browser .mb-chart span.acc{ background:var(--pc); }
.home-stage .m-uses{ display:grid; grid-template-columns:1fr 1fr; gap:7px; padding:14px 14px 26px; }
.home-stage .m-uses div{ display:flex; align-items:center; justify-content:space-between; gap:6px; padding:8px 9px; border-radius:6px; border:1px solid var(--gcid-qrz128uq7x, #eef0f5); font-size:10px; font-weight:700; }
.home-stage .m-uses div b{ font-size:8px; letter-spacing:.06em; text-transform:uppercase; padding:3px 6px; border-radius:4px; color:var(--pd); background:color-mix(in srgb, var(--pc) 12%, #fff); }
.home-stage .m-dict .md-head{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:10px; }
.home-stage .m-dict .md-head b{ font-size:12px; }
.home-stage .m-dict .md-head i{ font-style:normal; font-size:8.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--pd); border:1px solid color-mix(in srgb, var(--pc) 40%, #fff); border-radius:4px; padding:2px 6px; }
.home-stage .m-dict .md-row{ display:grid; grid-template-columns:34% 1fr; gap:8px; padding:6px 0; border-top:1px solid var(--gcid-msl5ncc2w3, #f7f8fa); }

/* P13 · Comparison table (semantic table in a Text module; the highlighted column carries the product tint) */
.pg-cmpwrap{ overflow-x:auto; border:1px solid var(--gcid-21s6qw6he2, #dde2ea); border-radius:20px; background:#fff; }
.pg-cmp{ width:100%; border-collapse:separate; border-spacing:0; margin:0 !important; font-size:.9375rem; line-height:1.5; }
/* Divi's text-module table rule pads cells ~6px; the table's rhythm is pinned here */
.pg-cmp th, .pg-cmp td{ padding:16px 22px !important; text-align:left; vertical-align:middle; border:0 !important; border-top:1px solid var(--gcid-qrz128uq7x, #eef0f5) !important; }
.pg-cmp thead th, .pg-cmp thead td{ border-top:0 !important; padding-top:22px !important; padding-bottom:18px !important; font:700 12px/1.2 'TT Norms Pro',sans-serif; letter-spacing:.12em; text-transform:uppercase; color:var(--gcid-neh0wztvub, #74819e); }
.pg-cmp thead th.on{ color:var(--pd); }
.pg-cmp tbody th{ width:30%; font-weight:700; color:var(--gcid-jsnru5jtk4, #181f38); }
.pg-cmp td{ color:var(--gcid-xikl310sb5, #4f5d7d); }
.pg-cmp .on{ background:color-mix(in srgb, var(--pt) 70%, #fff); color:var(--gcid-jsnru5jtk4, #181f38); }
.pg-cmp thead .on{ border-radius:0; }
.pg-cmp td i{ display:inline-grid; place-items:center; width:22px; height:22px; border-radius:50%; font-size:11px; }
.pg-cmp td i.fa-check{ background:var(--pc); color:#fff; }
.pg-cmp td i.fa-minus{ background:var(--gcid-on0cv0d2u9, #dde2ea); color:var(--gcid-aac3w82ex5, #4f5d7d); }
.pg-cmp .sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
@media (max-width:640px){ .pg-cmp th, .pg-cmp td{ padding:12px 14px !important; } .pg-cmp tbody th{ width:auto; } }

/* P14 · Mini-art vocabulary (site_kit.mlist / msql): titled rows, a SQL block, tags, before/after bars */
.home-stage .m-list{ padding:14px 14px 26px; }
.home-stage .m-list .ml-head{ display:flex; justify-content:space-between; align-items:baseline; gap:10px; margin-bottom:10px; }
.home-stage .m-list .ml-head b{ font-size:12px; }
.home-stage .m-list .ml-head i{ font-style:normal; font-size:8.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; white-space:nowrap; color:var(--pd); border:1px solid color-mix(in srgb, var(--pc) 40%, #fff); border-radius:4px; padding:2px 6px; }
.home-stage .m-list .ml-row{ display:flex; align-items:center; gap:8px; padding:6px 0; border-top:1px solid var(--gcid-msl5ncc2w3, #f7f8fa); font-size:10.5px; }
.home-stage .m-list .ml-row > i{ flex:none; width:18px; height:18px; display:inline-grid; place-items:center; border-radius:5px; font-size:9px; color:var(--pd); background:color-mix(in srgb, var(--pc) 12%, #fff); }
.home-stage .m-list .ml-row b{ font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.home-stage .m-list .ml-row em{ margin-left:auto; font-style:normal; font-size:8px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; white-space:nowrap; padding:3px 6px; border-radius:4px; color:var(--pd); background:color-mix(in srgb, var(--pc) 12%, #fff); }
.home-stage .m-list .ml-row.off b{ color:var(--gcid-2mtow0rh2g, #9aa5bc); text-decoration:line-through; }
.home-stage .m-list .ml-row.off > i, .home-stage .m-list .ml-row.off em{ color:var(--gcid-2mtow0rh2g, #9aa5bc); background:var(--gcid-msl5ncc2w3, #f7f8fa); }
.home-stage .m-list .ml-row.on > i{ color:#fff; background:var(--pc); }
.home-stage .m-list .ml-q{ font-weight:700; font-size:11.5px; line-height:1.3; padding:8px 10px; margin-bottom:8px; border-radius:10px 10px 10px 2px; background:var(--gcid-msl5ncc2w3, #f7f8fa); max-width:92%; }
.home-stage .m-list .ml-q.fu{ margin-left:10%; border-radius:10px 10px 2px 10px; background:color-mix(in srgb, var(--pc) 10%, #fff); font-weight:600; }
.home-stage .m-list .ml-sql{ margin-top:8px; padding:9px 10px; border-radius:6px; background:var(--gcid-jsnru5jtk4, #181f38); display:grid; gap:3px; }
.home-stage .m-list .ml-sql code{ font:500 9px/1.35 ui-monospace, 'Courier New', monospace; color:#dde2ea; background:none; padding:0; white-space:nowrap; overflow:hidden; }
.home-stage .m-list .ml-sql code b{ color:var(--gcid-pv82wnw5p9, #66c7ec); font-weight:600; }
.home-stage .m-list .ml-tags{ display:flex; gap:5px; margin-top:8px; flex-wrap:wrap; }
.home-stage .m-list .ml-tags b{ font-size:8px; letter-spacing:.08em; text-transform:uppercase; padding:3px 7px; border-radius:4px; background:color-mix(in srgb, var(--pc) 12%, #fff); color:var(--pd); }
.home-stage .m-list .ml-bars{ display:grid; gap:7px; margin-top:4px; }
.home-stage .m-list .ml-bars div{ display:grid; grid-template-columns:44px 1fr; align-items:center; gap:8px; font-size:9px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--gcid-neh0wztvub, #74819e); }
.home-stage .m-list .ml-bars span{ height:12px; border-radius:3px; background:var(--gcid-on0cv0d2u9, #dde2ea); }
.home-stage .m-list .ml-bars span.acc{ background:var(--pc); }
.home-stage .m-list .ml-mask{ letter-spacing:.2em; color:var(--gcid-2mtow0rh2g, #9aa5bc); }

/* P15 · A stage used as the hero visual: smaller zoom so a taller mini fits the bezel */
.hero-bezel .pg-bigstage .mini{ zoom:1.5; left:7%; }
@media (max-width:980px){ .hero-bezel .pg-bigstage .mini{ zoom:1.25; } }
@media (max-width:640px){ .hero-bezel .pg-bigstage .mini{ zoom:1; } }
.home-stage .m-list .ml-sql code{ display:block; margin:0; }

/* P16 · IntelleCheck yellow fails as a backdrop for white glyphs (~1.6:1): filled chips take the Deep glyph */
.pg-p-ic .home-stage .m-list .ml-row.on > i, .home-stage.pg-p-ic .m-list .ml-row.on > i, .pg-p-ic .pg-checks li:hover i, .pg-p-ic .pg-cmp td i.fa-check{ color:var(--gcid-rrdk7h2w0u, #986f0b) !important; }

/* P17 · Customer stories (page_customers): featured story in the hero bezel, filter rail, story cards */
.pg-feat .home-stage.pg-bigstage{ aspect-ratio:16 / 9; }
.pg-feat-inst{ margin-left:8px; font-weight:700; color:var(--gcid-jsnru5jtk4, #181f38); }
.pg-rail{ position:sticky; top:120px; align-self:flex-start; }
.pg-filter{ display:grid; gap:26px; }
.pg-fgroup{ display:grid; gap:10px; }
.pg-flabel{ font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--gcid-neh0wztvub, #74819e); }
.pg-fchips{ display:flex; flex-wrap:wrap; gap:8px; }
.pg-fchip{ font:inherit; font-size:14px; font-weight:600; line-height:1; display:inline-flex; align-items:center; gap:8px; padding:9px 12px; border-radius:999px; border:1px solid var(--gcid-on0cv0d2u9, #dde2ea); background:#fff; color:var(--gcid-jsnru5jtk4, #181f38); cursor:pointer; transition:background .2s, border-color .2s, color .2s, opacity .2s; }
.pg-fchip i{ font-style:normal; font-size:12px; font-variant-numeric:tabular-nums; color:var(--gcid-neh0wztvub, #74819e); transition:color .2s; }
.pg-fchip:hover{ border-color:var(--gcid-2mtow0rh2g, #9aa5bc); }
.pg-fchip.on{ background:var(--gcid-jsnru5jtk4, #181f38); border-color:var(--gcid-jsnru5jtk4, #181f38); color:#fff; }
.pg-fchip.on i{ color:rgba(255,255,255,.72); }
.pg-fchip.off{ opacity:.4; pointer-events:none; }
.pg-fchip:focus-visible, .pg-fclear:focus-visible{ outline:2px solid var(--gcid-primary-color, #00a1df); outline-offset:2px; }
.pg-fclear{ justify-self:start; font:inherit; font-size:14px; font-weight:600; background:none; border:0; padding:0; cursor:pointer; color:var(--gcid-kab8b92l3p, #006186); text-decoration:underline; text-underline-offset:3px; }
.pg-fq-wrap{ position:relative; }
.pg-fq-wrap i{ position:absolute; left:14px; top:50%; translate:0 -50%; font-size:15px; color:var(--gcid-neh0wztvub, #74819e); pointer-events:none; transition:color .18s ease; }
/* 16px: iOS Safari zooms the page on focus for any smaller input */
.pg-filter .pg-fq{ box-sizing:border-box; width:100%; height:44px; margin:0; padding:0 12px 0 40px; border-radius:10px; border:1.5px solid var(--gcid-on0cv0d2u9, #dde2ea); background-color:var(--gcid-y1gcqkdc0w, #ffffff); font-family:inherit; font-size:16px; line-height:1.2; color:var(--gcid-jsnru5jtk4, #181f38); -webkit-appearance:none; appearance:none; transition:border-color .18s ease, box-shadow .18s ease; }
.pg-filter .pg-fq::placeholder{ color:var(--gcid-neh0wztvub, #74819e); opacity:1; }
.pg-filter .pg-fq:hover{ border-color:var(--gcid-2mtow0rh2g, #9aa5bc); }
.pg-filter .pg-fq:focus{ outline:none; border-color:var(--gcid-q5rxc84nfq, #00a1df); box-shadow:0 0 0 4px color-mix(in srgb, var(--gcid-q5rxc84nfq, #00a1df) 16%, transparent); }
.pg-fq-wrap:focus-within i{ color:var(--gcid-kab8b92l3p, #006186); }
.pg-fstatus{ margin:0; font-size:15px; color:var(--gcid-neh0wztvub, #74819e); }
.pg-fstatus b{ color:var(--gcid-jsnru5jtk4, #181f38); }
.pg-cs{ position:relative; }
.pg-cs-off{ display:none !important; }
.pg-cs-link::before{ content:''; position:absolute; inset:0; z-index:1; border-radius:20px; }
.pg-cs-link i{ display:inline-block; transition:transform .45s cubic-bezier(.34,1.56,.64,1); }
.pg-cs:hover .pg-cs-link i{ transform:translateX(4px); }
.pg-cs h3{ transition:color .2s; }
.pg-cs:hover h3{ color:var(--gcid-kab8b92l3p, #006186) !important; }
.pg-cs:focus-within{ outline:2px solid var(--gcid-primary-color, #00a1df); outline-offset:3px; }
.pg-cs-link:focus-visible{ outline:none; }
.pg-cschips{ display:flex; flex-wrap:wrap; gap:6px; }
.pg-cschip{ font-size:12px; font-weight:600; line-height:1; padding:6px 9px; border-radius:6px; background:var(--pt); color:var(--pd); }
.pg-cschip.pg-dept{ background:var(--gcid-msl5ncc2w3, #f7f8fa); color:color-mix(in srgb, var(--gcid-jsnru5jtk4, #181f38) 78%, #fff); }
.pg-more{ display:block; line-height:1.7; }
.pg-more b{ display:block; margin-bottom:4px; color:var(--gcid-jsnru5jtk4, #181f38); }
.pg-more a{ color:inherit; text-decoration:underline; text-decoration-color:var(--gcid-on0cv0d2u9, #dde2ea); text-underline-offset:3px; transition:color .2s, text-decoration-color .2s; }
.pg-more a:hover{ color:var(--gcid-kab8b92l3p, #006186); text-decoration-color:currentColor; }
@media (max-width:980px){ .pg-rail{ position:static; } }
@media (max-width:640px){
  .pg-fchips{ flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; padding-bottom:2px; }
  .pg-fchip{ flex:none; }
}

/* P18 · Professional Services (page_svc_ps): proof names strip, situation rows, package cards */
.pg-names{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px 28px; font-weight:700; }
.pg-names a{ color:var(--gcid-jsnru5jtk4, #181f38); text-decoration:none; transition:color .2s; }
.pg-names a:hover{ color:var(--gcid-kab8b92l3p, #006186); }
/* logo marquee on inner pages (site_kit.logos with case-study logos): a white mark made for a dark
   header goes dark grey at the same .6 rest opacity; no colour exists to restore on hover */
.home-mark.pg-mark-dark img{ filter:brightness(0); opacity:.5; }
.home-mark.pg-mark-dark:hover img{ filter:brightness(0); opacity:.85; }
/* an SVG logo with only a viewBox has no intrinsic size: width/height auto collapse it to 0x0
   (case-study SVGs, 2026-10-07). An explicit height lets the viewBox ratio set the width. */
.home-mark img[src$='.svg']{ height:30px; }
.home-mark-stack img[src$='.svg']{ height:40px; }
.pg-qa h3{ transition:color .2s; }
.pg-qa:hover h3{ color:var(--gcid-kab8b92l3p, #006186) !important; }
.pg-offer .pg-checks{ gap:10px; --chip:24px; }
.pg-offer .pg-checks li{ gap:10px; }
.pg-offer .pg-checks li i{ width:24px; height:24px; margin-top:-1px; margin-top:max(0px, (1lh - var(--chip)) / 2); border-radius:7px; font-size:11px !important; }

/* P19 · Course pages (page_course): curriculum topics run two-up; compact check chips; the spec panel */
.pg-cg .pg-checks{ gap:10px 28px; --chip:22px; }
.pg-cg .pg-checks li{ gap:10px; }
.pg-cg .pg-checks li i{ width:22px; height:22px; margin-top:0; margin-top:max(0px, (1lh - var(--chip)) / 2); border-radius:6px; font-size:10px !important; }
@media (min-width:981px){ .pg-cg .pg-checks{ grid-template-columns:1fr 1fr; } }
.pg-cg h3{ transition:color .2s; }
.pg-cg:hover h3{ color:var(--gcid-kab8b92l3p, #006186) !important; }


/* P20 · Learn pages (page_learn). On-demand: native Post Filter radios as chips, loop cards with a
   play badge. Webinars: EventON's list restyled into month / day / title / time / Register rows. */
.pg-wfilter .et_pb_post_filter__controls{ display:flex; flex-wrap:wrap; align-items:flex-end; gap:18px 24px; }
.pg-wfilter .et_pb_post_filter__item-label{ display:block; margin-bottom:10px; font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--gcid-neh0wztvub, #74819e); }
.pg-wf-cat{ flex:1 1 100%; }
.pg-wf-cat .et_pb_post_filter__item-options-list{ display:flex; flex-wrap:wrap; gap:8px; }
.pg-wf-cat .et_pb_post_filter__item-option{ position:relative; margin:0 !important; width:auto !important; flex:0 0 auto !important; }
.pg-wf-cat .et_pb_post_filter__item-option input{ position:absolute; opacity:0; width:1px; height:1px; margin:0; }
.pg-wf-cat .et_pb_post_filter__item-option label{ display:inline-flex !important; align-items:center; margin:0 !important; padding:9px 14px !important; border-radius:999px !important; border:1px solid var(--gcid-on0cv0d2u9, #dde2ea) !important; background:#fff !important; color:var(--gcid-jsnru5jtk4, #181f38) !important; font-size:14px !important; font-weight:600 !important; line-height:1 !important; cursor:pointer; transition:background .2s, border-color .2s, color .2s; }
.pg-wf-cat .et_pb_post_filter__item-option label i{ display:none; }
.pg-wf-cat .et_pb_post_filter__item-option label:hover{ border-color:var(--gcid-2mtow0rh2g, #9aa5bc) !important; }
.pg-wf-cat .et_pb_post_filter__item-option input:checked + label{ background:var(--gcid-jsnru5jtk4, #181f38) !important; border-color:var(--gcid-jsnru5jtk4, #181f38) !important; color:#fff !important; }
.pg-wf-cat .et_pb_post_filter__item-option input:focus-visible + label{ outline:2px solid var(--gcid-primary-color, #00a1df); outline-offset:2px; }
.pg-wf-search{ flex:1 1 320px; max-width:420px; }
.pg-wf-search input[type=text]{ width:100%; height:44px; padding:0 16px !important; border-radius:999px !important; border:1px solid var(--gcid-on0cv0d2u9, #dde2ea) !important; background:#fff !important; font:inherit; font-size:15px; }
.pg-wf-search input[type=text]:focus{ outline:2px solid var(--gcid-primary-color, #00a1df); outline-offset:1px; }
.pg-wf-reset button, .pg-wf-reset .et_pb_button{ background:none !important; border:0 !important; padding:10px 0 !important; font-size:14px !important; font-weight:600; color:var(--gcid-kab8b92l3p, #006186) !important; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.pg-wf-reset button::after, .pg-wf-reset .et_pb_button::after{ display:none !important; }
.pg-wthumb{ position:relative; overflow:hidden; margin:0 !important; }
.pg-wthumb img{ display:block; width:100%; transition:transform .5s cubic-bezier(.2,.7,.2,1); }
.pg-wcard:hover .pg-wthumb img{ transform:scale(1.04); }
.pg-wthumb::before{ content:''; position:absolute; left:16px; bottom:16px; width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,.92); box-shadow:0 8px 20px -8px rgba(24,31,56,.5); z-index:1; transition:transform .3s cubic-bezier(.34,1.56,.64,1); }
.pg-wthumb::after{ content:''; position:absolute; left:33px; bottom:30px; width:13px; height:16px; background:var(--gcid-jsnru5jtk4, #181f38); clip-path:polygon(0 0, 100% 50%, 0 100%); z-index:2; }
.pg-wcard:hover .pg-wthumb::before{ transform:scale(1.1); }
.pg-wcard h3{ transition:color .2s; }
.pg-wcard:hover h3{ color:var(--gcid-kab8b92l3p, #006186) !important; }
.pg-wgo i{ display:inline-block; margin-left:4px; transition:transform .45s cubic-bezier(.34,1.56,.64,1); }
.pg-wcard:hover .pg-wgo i{ transform:translateX(4px); }
.pg-wcard{ cursor:pointer; }
.pg-wnav{ display:flex; justify-content:center; gap:12px; }
.pg-wnav a{ display:inline-flex; align-items:center; gap:6px; padding:12px 20px; border-radius:999px; border:1px solid var(--gcid-on0cv0d2u9, #dde2ea); background:#fff; color:var(--gcid-jsnru5jtk4, #181f38) !important; font-weight:600; font-size:15px; transition:border-color .2s; }
.pg-wnav a:hover{ border-color:var(--gcid-2mtow0rh2g, #9aa5bc); }
.pg-events .ajde_evcal_calendar, .pg-events #evcal_list, .pg-events .eventon_events_list{ border:0 !important; background:none !important; margin:0 !important; }
.pg-events .calendar_header, .pg-events .evo_cal_above, .pg-events .evo_footer_nav{ display:none !important; }
.pg-events .evcal_month_line{ margin:32px 0 0 !important; padding:0 0 12px !important; border:0 !important; background:none !important; }
.pg-events .evcal_month_line:first-child{ margin-top:0 !important; }
.pg-events .evcal_month_line p{ margin:0 !important; padding:0 !important; font-size:12px !important; font-weight:700 !important; letter-spacing:.1em; text-transform:uppercase; color:var(--gcid-kab8b92l3p, #006186) !important; text-align:left !important; }
.pg-events .eventon_list_event{ border:0 !important; background:none !important; margin:0 !important; overflow:visible !important; }
/* EventON clips rows (overflow:hidden); the hover arrow moves 4px past the right edge */
.pg-events .eventon_events_list, .pg-events .sep_month_events, .pg-events .eventon_list_event .desc_trig{ overflow:visible !important; }
.pg-events .eventon_list_event p.desc_trig_outter{ margin:0 !important; padding:0 !important; border:0 !important; }
/* rows: one class above the Theme Options legacy rules (.ajde_evcal_calendar.esty_5 … .evcal_list_a: 3px #F6FAFF border, hover fill + 5px slide) */
.pg-events.et_pb_code .eventon_events_list .eventon_list_event .desc_trig{ display:block !important; padding:22px 0 !important; border:0 !important; transform:none !important; border-top:1px solid var(--gcid-on0cv0d2u9, #dde2ea) !important; background:none !important; text-decoration:none !important; }
.pg-events.et_pb_code .eventon_events_list .eventon_list_event .desc_trig:hover{ background:none !important; border-width:1px 0 0 !important; transform:none !important; }
.pg-events .evoet_in{ display:grid !important; grid-template-columns:84px minmax(0, 1fr) auto auto; align-items:center; gap:0 24px; }
.pg-events .evoet_c1{ grid-column:1; grid-row:1; }
.pg-events .evoet_c2{ grid-column:2; grid-row:1; }
.pg-events .evcal_list_a .evoet_in::after{ content:'Register'; grid-column:3; grid-row:1; font-size:15px; font-weight:600; white-space:nowrap; color:var(--gcid-jsnru5jtk4, #181f38); transition:color .2s; }
/* FA7 regular arrow-right (U+F061, literal: freeForm strips backslash escapes) — its own grid item so only the arrow slides */
.pg-events .evcal_list_a .evoet_in::before{ content:''; grid-column:4; grid-row:1; margin-left:-16px; font-family:'Font Awesome 7 Pro'; font-weight:400; font-style:normal; font-size:15px; line-height:1; color:var(--gcid-jsnru5jtk4, #181f38); transition:color .2s, translate .45s cubic-bezier(.34,1.56,.64,1); }
.pg-events .evcal_list_a:hover .evoet_in::after, .pg-events .evcal_list_a:hover .evoet_in::before{ color:var(--gcid-kab8b92l3p, #006186); }
.pg-events .evcal_list_a:hover .evoet_in::before{ translate:4px 0; }
.pg-events .evoet_c1, .pg-events .evoet_c2{ display:block !important; width:auto !important; min-width:0; padding:0 !important; margin:0 !important; border:0 !important; background:none !important; }
.pg-events .evoet_dayblock{ display:flex !important; flex-direction:column; align-items:flex-start; background:none !important; padding:0 !important; min-width:0 !important; color:var(--gcid-jsnru5jtk4, #181f38) !important; }
.pg-events .evoet_dayblock .evo_start{ display:flex !important; flex-direction:column-reverse; align-items:flex-start; }
.pg-events .evoet_dayblock em.date{ font-size:40px !important; font-weight:700 !important; line-height:1 !important; letter-spacing:-.02em; color:var(--gcid-jsnru5jtk4, #181f38) !important; }
.pg-events .evoet_dayblock em.month{ font-size:12px !important; font-weight:700 !important; letter-spacing:.1em; text-transform:uppercase; color:var(--gcid-neh0wztvub, #74819e) !important; margin-bottom:4px; }
.pg-events .evoet_dayblock em.time, .pg-events .evoet_dayblock .evo_end, .pg-events .evo_eventcolor_circle, .pg-events .evo_ett_break, .pg-events .evcal_time i{ display:none !important; }
.pg-events .evcal_event_title, .pg-events .eventon_events_list .eventon_list_event .evoet_cx span.evcal_event_title{ display:block; font-size:20px !important; font-weight:700 !important; line-height:1.3 !important; color:var(--gcid-jsnru5jtk4, #181f38) !important; text-transform:none !important; transition:color .2s; }
.pg-events .evcal_list_a:hover .evcal_event_title, .pg-events .eventon_events_list .eventon_list_event .evcal_list_a:hover .evoet_cx span.evcal_event_title{ color:var(--gcid-kab8b92l3p, #006186) !important; }
.pg-events .evcal_event_subtitle, .pg-events .eventon_events_list .eventon_list_event .evoet_cx span.evcal_event_subtitle{ display:block; margin-top:4px; font-size:15px !important; font-weight:400 !important; color:var(--gcid-neh0wztvub, #74819e) !important; text-transform:none !important; }
.pg-events .evcal_time{ display:block; margin-top:6px; font-style:normal; font-size:14px !important; color:var(--gcid-neh0wztvub, #74819e) !important; }
.pg-events .evoet_cy{ display:block !important; }
.pg-events.et_pb_code .eventon_events_list .eventon_list_event:last-child .desc_trig, .pg-events.et_pb_code .eventon_events_list .eventon_list_event:last-child .desc_trig:hover{ border-bottom:1px solid var(--gcid-on0cv0d2u9, #dde2ea) !important; }
@media (max-width:640px){
  .pg-events .evoet_in{ grid-template-columns:56px auto auto minmax(0, 1fr); }
  .pg-events .evoet_c2{ grid-column:2 / -1; }
  .pg-events .evcal_list_a .evoet_in::after{ grid-column:2; grid-row:2; margin-top:8px; }
  .pg-events .evcal_list_a .evoet_in::before{ grid-column:3; grid-row:2; margin:8px 0 0 -16px; }
  .pg-events .evoet_dayblock em.date{ font-size:30px !important; }
  .pg-events .evcal_event_title, .pg-events .eventon_events_list .eventon_list_event .evoet_cx span.evcal_event_title{ font-size:17px !important; }
}
/* /events/ (page_events, .pg-events-span): multi-day conferences — end day beside the start day, smaller;
   EventON's time line dropped (its times are placeholders for all-day conference entries) */
.pg-events-span .evoet_in{ grid-template-columns:104px minmax(0, 1fr); }
/* no Register label or arrow here (Josh 2026-10-23): the whole row is the link, the title turns blue on hover */
.pg-events.pg-events-span .evcal_list_a .evoet_in::after, .pg-events.pg-events-span .evcal_list_a .evoet_in::before{ content:none !important; display:none !important; }
.pg-events.pg-events-span .evoet_dayblock{ flex-direction:row !important; flex-wrap:nowrap !important; align-items:flex-end !important; }
.pg-events.pg-events-span .evoet_dayblock .evo_end{ display:block !important; margin:0 !important; padding:0 0 3px !important; }
/* EventON draws its own dash before the end day */
.pg-events.pg-events-span .evoet_dayblock .evo_end::before, .pg-events.pg-events-span .evoet_dayblock .evo_end::after{ display:none !important; content:none !important; }
.pg-events-span .evoet_dayblock .evo_end em.month, .pg-events-span .evoet_dayblock .evo_end em.time, .pg-events-span .evcal_time, .pg-events-span .evoet_time_expand{ display:none !important; }
.pg-events-span .evoet_dayblock .evo_end em.date{ display:block; font-size:22px !important; line-height:1.1 !important; color:var(--gcid-neh0wztvub, #74819e) !important; white-space:nowrap; }
.pg-events-span .evoet_dayblock .evo_end em.date:not(:empty)::before{ content:'–'; margin:0 2px 0 3px; }
@media (max-width:640px){
  .pg-events-span .evoet_in{ grid-template-columns:76px minmax(0, 1fr); }
  .pg-events-span .evoet_dayblock .evo_end em.date{ font-size:17px !important; }
}
.pg-wcat .et_pb_text_inner{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }


/* P21 · Company pages (page_company): contact lines, the carried-over Pardot subscribe forms,
   the BambooHR job list, the dark big-quote band */
.pg-ctline{ display:grid; grid-template-columns:52px minmax(0, 1fr); gap:10px; padding:3px 0; }
.pg-ctline b{ padding-top:3px; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--gcid-neh0wztvub, #74819e); }
.pg-ctline a{ color:var(--gcid-jsnru5jtk4, #181f38); text-decoration:underline; text-decoration-color:var(--gcid-on0cv0d2u9, #dde2ea); text-underline-offset:3px; transition:color .2s, text-decoration-color .2s; overflow-wrap:anywhere; }
.pg-ctline a:hover{ color:var(--gcid-kab8b92l3p, #006186); text-decoration-color:currentColor; }
.pg-sub .blurb-icon{ display:grid; grid-template-columns:44px minmax(0, 1fr); gap:18px; align-items:start; }
.pg-sub .blurb-icon > i{ width:44px; height:44px; display:grid; place-items:center; border-radius:12px; font-size:18px; background:var(--gcid-qn9g9agfus, #e6f6fc); color:var(--gcid-kab8b92l3p, #006186); }
.pg-sub h5{ margin:0 0 14px !important; padding:0 !important; font-size:20px !important; font-weight:700 !important; line-height:1.3 !important; color:var(--gcid-jsnru5jtk4, #181f38); }
.pg-sub .et_pb_contact{ margin:0 !important; }
.pg-sub .et_pb_contact_form{ display:flex !important; flex-wrap:wrap; gap:8px; margin:0 !important; }
.pg-sub .et_pb_contact_field{ flex:1 1 220px; width:auto !important; margin:0 !important; padding:0 !important; }
.pg-sub .et_pb_contact_form_label{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.pg-sub input.input{ width:100%; height:46px; padding:0 18px !important; border:1px solid var(--gcid-on0cv0d2u9, #dde2ea) !important; border-radius:999px !important; background:#fff !important; font:inherit; font-size:15px !important; color:var(--gcid-jsnru5jtk4, #181f38) !important; }
.pg-sub input.input:focus{ outline:2px solid var(--gcid-primary-color, #00a1df); outline-offset:1px; }
.pg-sub .et_contact_bottom_container{ margin:0 !important; float:none !important; }
.pg-sub .et_pb_contact_submit{ height:46px; margin:0 !important; padding:0 22px !important; border:0 !important; border-radius:999px !important; background:var(--gcid-jsnru5jtk4, #181f38) !important; color:#fff !important; font-size:15px !important; font-weight:700 !important; cursor:pointer; transition:background .2s; }
.pg-sub .et_pb_contact_submit:hover{ background:var(--gcid-kab8b92l3p, #006186) !important; }
.pg-sub .et_pb_contact_submit::after{ display:none !important; }
.pg-sub .success-message h5{ font-size:16px !important; color:var(--gcid-kab8b92l3p, #006186); }
.pg-jobs #BambooHR ul{ list-style:none !important; margin:0 !important; padding:0 !important; }
.pg-jobs #BambooHR li{ list-style:none !important; margin:0 !important; padding:0 !important; border:0; }
.pg-jobs #BambooHR li li{ padding:10px 0 !important; border-top:1px solid var(--gcid-on0cv0d2u9, #dde2ea); }
.pg-jobs .BambooHR-ATS-board, .pg-jobs .BambooHR-ATS-board *{ font-family:inherit !important; font-size:15px !important; }
.pg-jobs #BambooHR a{ color:var(--gcid-jsnru5jtk4, #181f38); font-weight:600; text-decoration:none; }
.pg-jobs #BambooHR a:hover{ color:var(--gcid-kab8b92l3p, #006186); }
.pg-jobs #BambooHR h2, .pg-jobs .BambooHR-ATS-board > h2{ display:none; }
.pg-jobs #BambooHR .BambooHR-ATS-Department-Header{ margin:16px 0 4px; font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--gcid-neh0wztvub, #74819e); }
.pg-jobs #BambooHR .BambooHR-ATS-Location{ float:none !important; display:block; font-size:14px; color:var(--gcid-neh0wztvub, #74819e); }
.pg-jobs #BambooHR-Footer{ display:none; }
.hero-bezel wistia-player{ display:block; border-radius:14px; overflow:hidden; }


/* P22 · Get Started (page_get_started): the concept's pseudo-element layer — hero dot grid, the
   step connector, the form card's brand edge, the sticky form column, glass quote cards */
.pg-gs-hero{ position:relative; }
.pg-gs-hero::after{ content:''; position:absolute; inset:0; pointer-events:none; opacity:.7; background-image:radial-gradient(rgba(14,19,48,.13) 1.2px, transparent 1.2px); background-size:24px 24px; -webkit-mask-image:radial-gradient(700px 400px at 16% 24%, #000, transparent 70%); mask-image:radial-gradient(700px 400px at 16% 24%, #000, transparent 70%); z-index:0; }
.pg-gs-hero > .et_pb_row{ position:relative; z-index:1; }
.pg-step{ position:relative; }
.pg-step:not(:last-child)::before{ content:''; position:absolute; left:18.5px; top:38px; bottom:6px; width:1px; background:linear-gradient(180deg, var(--gcid-on0cv0d2u9, #dde2ea), rgba(221,226,234,0)); }
.pg-stepn b{ font-size:13.5px; font-weight:700; color:var(--gcid-v3pwvrjuje, #5b21b6); }
.pg-stepn{ box-shadow:0 3px 10px -4px rgba(14,19,48,.18); }
.pg-stat{ flex:1 1 0; padding-right:22px; }
.pg-stat + .pg-stat{ padding-left:22px; border-left:1px solid var(--gcid-on0cv0d2u9, #dde2ea); }
.pg-statu{ margin-left:2px; font-size:.5em; font-weight:600; letter-spacing:0; color:var(--gcid-neh0wztvub, #74819e); }
.pg-formcard{ position:relative; overflow:hidden; }
.pg-formcard::before{ content:''; position:absolute; top:0; left:0; right:0; height:4px; z-index:2; background:linear-gradient(90deg, var(--gcid-primary-color, #00a1df), var(--gcid-44cxsfm79a, #5b21b6) 62%, var(--gcid-ysrgadmpxx, #cf3d96)); }
/* the native demo form (posts to the Pardot form handler; page_get_started.form_markup) */
.pg-fhwrap{ margin:0 !important; padding:22px 36px 4px !important; }
.pg-fh{ display:flex; flex-wrap:wrap; gap:0 16px; margin:0; }
.pg-fh[hidden], .pg-fh-msg[hidden]{ display:none !important; }
.pg-fh-field{ flex:1 1 100%; min-width:0; margin-bottom:16px; }
.pg-fh-half{ flex:1 1 calc(50% - 8px); }
.pg-fh label{ display:block; margin-bottom:7px; font-family:inherit; font-size:12.5px; font-weight:600; line-height:1.2; letter-spacing:.01em; color:var(--gcid-jsnru5jtk4, #181f38); }
.pg-fh input, .pg-fh select{ box-sizing:border-box; width:100%; height:48px; margin:0; padding:0 14px; border-radius:10px; border:1.5px solid var(--gcid-on0cv0d2u9, #dde2ea); background-color:var(--gcid-msl5ncc2w3, #f7f8fa); font-family:inherit; font-size:15px; line-height:1.2; color:var(--gcid-jsnru5jtk4, #181f38); -webkit-appearance:none; appearance:none; transition:border-color .18s ease, box-shadow .18s ease, background-color .18s ease; }
.pg-fh select{ padding-right:40px; cursor:pointer; background-image:linear-gradient(45deg, transparent 50%, var(--gcid-neh0wztvub, #74819e) 50%), linear-gradient(135deg, var(--gcid-neh0wztvub, #74819e) 50%, transparent 50%); background-position:calc(100% - 20px) 21px, calc(100% - 15px) 21px; background-size:5px 5px, 5px 5px; background-repeat:no-repeat; }
.pg-fh select:invalid{ color:var(--gcid-neh0wztvub, #74819e); }
.pg-fh select option{ color:var(--gcid-jsnru5jtk4, #181f38); }
.pg-fh input:hover, .pg-fh select:hover{ border-color:var(--gcid-2mtow0rh2g, #9aa5bc); }
.pg-fh input:focus, .pg-fh select:focus{ outline:none; background-color:var(--gcid-y1gcqkdc0w, #ffffff); border-color:var(--gcid-q5rxc84nfq, #00a1df); box-shadow:0 0 0 4px color-mix(in srgb, var(--gcid-q5rxc84nfq, #00a1df) 16%, transparent); }
.pg-fh input:user-invalid, .pg-fh select:user-invalid{ border-color:var(--gcid-j6rycdz1sa, #c4384e); }
.pg-fh-hp{ position:absolute !important; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden; }
.pg-fh-submit{ display:flex; align-items:center; justify-content:center; gap:10px; width:100%; margin:6px 0 0; padding:16px 26px; border:0; border-radius:12px; cursor:pointer; background:linear-gradient(120deg, var(--gcid-kab8b92l3p, #006186), var(--gcid-v3pwvrjuje, #5b21b6)); color:var(--gcid-y1gcqkdc0w, #ffffff); font-family:inherit; font-size:15px; font-weight:600; letter-spacing:.02em; line-height:1.2; transition:translate .22s ease, box-shadow .22s ease, opacity .22s ease; }
.pg-fh-submit i{ font-size:14px; transition:translate .22s ease; }
.pg-fh-submit:hover{ translate:0 -2px; box-shadow:0 14px 28px -14px color-mix(in srgb, var(--gcid-v3pwvrjuje, #5b21b6) 70%, transparent); }
.pg-fh-submit:hover i{ translate:3px 0; }
.pg-fh-submit:focus-visible{ outline:2px solid var(--gcid-q5rxc84nfq, #00a1df); outline-offset:3px; }
.pg-fh-submit[disabled]{ opacity:.7; cursor:progress; translate:none; box-shadow:none; }
.pg-fh-req{ flex:1 1 100%; margin:12px 0 0; padding:0; font-size:12.5px; line-height:1.5; color:var(--gcid-neh0wztvub, #74819e); }
.pg-fh-msg{ margin:0 0 18px; padding:18px 20px; border-radius:12px; font-size:14.5px; line-height:1.58; color:var(--gcid-xikl310sb5, #4f5d7d); }
.pg-fh-msg:focus{ outline:none; }
.pg-fh-msg p{ margin:0; padding:0; }
.pg-fh-msg a{ color:var(--gcid-kab8b92l3p, #006186); text-decoration:underline; text-underline-offset:2px; }
.pg-fh-msgt{ margin-bottom:6px !important; font-size:16px; font-weight:700; color:var(--gcid-jsnru5jtk4, #181f38); }
.pg-fh-err{ background:color-mix(in srgb, var(--gcid-j6rycdz1sa, #c4384e) 8%, transparent); border-left:3px solid var(--gcid-j6rycdz1sa, #c4384e); }
.pg-fnote{ display:flex; gap:9px; align-items:flex-start; padding:0 36px 30px; }
.pg-fnote i{ margin-top:3px; color:var(--gcid-2mtow0rh2g, #9aa5bc); }
.pg-fnote a{ color:inherit; text-decoration:underline; text-underline-offset:2px; }
@media (min-width:981px){ .pg-formcol{ position:sticky; top:110px; align-self:flex-start; } }
.pg-qdark{ transition:border-color .24s ease, transform .24s ease !important; background:linear-gradient(150deg, rgba(255,255,255,.10), rgba(255,255,255,.035)) !important; }
.pg-qdark:hover{ transform:translateY(-3px); border-color:rgba(255,255,255,.26) !important; }
.pg-qlogo{ display:inline-grid; place-items:center; width:52px; height:52px; border-radius:50%; background:#fff; padding:9px; box-shadow:0 8px 20px -8px rgba(0,0,0,.5); }
.pg-qlogo img{ width:34px; height:34px; max-width:none; object-fit:contain; } /* fixed box: a portrait logo (Hilbert 68x124) overflowed max-height:100% in the grid chip */
.pg-qdark .et_pb_text:last-child{ padding-top:16px; border-top:1px solid rgba(255,255,255,.12); }
@media (max-width:640px){
  .pg-stat{ padding:0 !important; border-left:0 !important; }
  .pg-fnote{ padding:0 22px 26px; }
  .pg-fhwrap{ padding:20px 22px 4px !important; }
}
@media (max-width:480px){
  .pg-fh-half{ flex-basis:100%; }
}

/* P23 · Multi-link related cards (revisions 2026-10-15): a heading over stacked links */
.pg-dlinks{ flex-direction:column; align-items:flex-start; gap:10px; }

/* P24 · loop-driven story cards (Customers) + in-browser webinar filter — 2026-10-15 */
.pg-cs{ cursor:pointer; }
.pg-csterms{ font-size:12px; color:var(--gcid-neh0wztvub, #74819e); }
.pg-cs-go{ display:inline-flex; align-items:center; gap:8px; }
.pg-cs-go i{ display:inline-block; transition:transform .45s cubic-bezier(.34,1.56,.64,1); }
.pg-cs:hover .pg-cs-go i{ transform:translateX(4px); }
.pg-wf2{ display:flex; flex-wrap:wrap; align-items:flex-end; gap:18px 24px; }
.pg-wf2 .pg-fgroup{ flex:1 1 100%; }
.pg-wsearch{ flex:1 1 320px; max-width:420px; display:grid; gap:10px; }
.pg-wsearch input{ width:100%; height:44px; padding:0 16px; border-radius:999px; border:1px solid var(--gcid-on0cv0d2u9, #dde2ea); background:#fff; font:inherit; font-size:15px; color:var(--gcid-jsnru5jtk4, #181f38); }
.pg-wsearch input:focus{ outline:2px solid var(--gcid-primary-color, #00a1df); outline-offset:1px; }
.pg-wf2 .pg-fclear{ align-self:center; }
.pg-woff{ display:none !important; }
.pg-wmore{ display:flex; justify-content:center; }
/* the script hides the button with [hidden]; display:flex above would otherwise beat the UA rule */
.pg-wmore[hidden]{ display:none !important; }
.pg-wmore button{ display:inline-flex; align-items:center; gap:8px; padding:12px 22px; border-radius:999px; border:1px solid var(--gcid-on0cv0d2u9, #dde2ea); background:#fff; color:var(--gcid-jsnru5jtk4, #181f38); font:inherit; font-weight:600; font-size:15px; cursor:pointer; transition:border-color .2s; }
.pg-wmore button:hover{ border-color:var(--gcid-2mtow0rh2g, #9aa5bc); }
.pg-wmore button:focus-visible{ outline:2px solid var(--gcid-primary-color, #00a1df); outline-offset:2px; }

/* P25 · Accelerators (page_accelerators, 2026-10-16): the demo dialog, neutral Before chips, the
   form's thank-you panel, the screenshot as a link */
.pg-acc-dlg{ width:min(1200px, 94vw); height:min(820px, 90vh); max-width:none; max-height:none; margin:auto; padding:0; border:0; border-radius:20px; overflow:hidden; background:#fff; box-shadow:0 40px 90px -30px rgba(14,19,48,.6); }
.pg-acc-dlg::backdrop{ background:rgba(14,19,48,.72); backdrop-filter:blur(4px); }
.pg-acc-dlg iframe{ display:block; width:100%; height:100%; border:0; }
.pg-acc-x{ position:absolute; top:12px; right:12px; z-index:2; width:40px; height:40px; display:grid; place-items:center; padding:0; border:0; border-radius:50%; cursor:pointer; font-size:16px; color:#fff; background:var(--gcid-jsnru5jtk4, #181f38); transition:background .2s; }
.pg-acc-x:hover{ background:var(--gcid-ysrgadmpxx, #cf3d96); }
.pg-acc-x:focus-visible{ outline:2px solid var(--gcid-q5rxc84nfq, #00a1df); outline-offset:2px; }
.pg-acc-before .pg-checks li i{ color:var(--gcid-neh0wztvub, #74819e) !important; background:var(--gcid-qrz128uq7x, #eef0f5); }
.pg-acc-before .pg-checks li:hover i{ color:#fff !important; background:var(--gcid-2mtow0rh2g, #9aa5bc); }
.pg-acc-fhwrap{ padding:34px 36px 30px !important; }
.pg-acc-ok{ margin:0; background:var(--gcid-59qd67zwyn, #faecf4); border-left:3px solid var(--gcid-ysrgadmpxx, #cf3d96); }
.pg-acc-shot a{ display:block; cursor:zoom-in; }
/* viewBox-only SVG: no intrinsic box under the home width/height:auto rule */
.pg-acc-logo img{ width:240px !important; height:auto !important; aspect-ratio:383 / 90; }
@media (max-width:767px){ .pg-acc-fhwrap{ padding:24px 22px 22px !important; } .pg-acc-dlg{ width:100vw; height:100dvh; border-radius:0; } }

/* P26 · Long-form documents (site_kit.doc_*, 2026-10-16): legal, policy and utility pages.
   A quiet head with the page's own date line, a sticky contents rail that folds below 981px, and
   one Text module in a 720px reading measure. The documents are the live pages' verbatim HTML,
   so the rules style plain h2/h3/p/ul/strong plus the privacy policy's own ev-* blocks. */
.pg-doc-hero{ position:relative; overflow:hidden; background:linear-gradient(180deg, var(--gcid-t64a7fyhrj,#f7f8fa) 0%, var(--gcid-coe043lz3e,#ffffff) 100%) !important; }
.pg-doc-hero::before{ content:''; position:absolute; inset:0; pointer-events:none; opacity:.55;
  background:radial-gradient(60% 90% at 88% 0%, color-mix(in srgb, var(--gcid-primary-color,#00a1df) 14%, transparent), transparent 70%),
             radial-gradient(40% 70% at 70% 10%, color-mix(in srgb, var(--gcid-44cxsfm79a,#5b21b6) 10%, transparent), transparent 70%); }
.pg-doc-hero .et_pb_row{ position:relative; }
.pg-doc-hero h1{ max-width:820px; text-wrap:balance; }
.pg-doc-date p{ display:inline-flex; align-items:center; gap:8px; padding:6px 12px 5px; border:1px solid var(--gcid-21s6qw6he2,#dde2ea); border-radius:999px; background:#fff; font-weight:600; }
.pg-doc-date i{ font-size:12px; color:var(--gcid-kab8b92l3p,#006186); }
.pg-doc-lede p{ padding-bottom:0 !important; }

/* the rail */
.pg-doc-rail{ position:sticky; top:calc(var(--pg-top, 0px) + 40px); align-self:flex-start; }  /* the header scrolls away; --pg-top = the promo bar (site_kit.STICKY_JS) */
.pg-toc .pg-toc-t{ margin:0 0 12px !important; padding:0 !important; font-size:12px; font-weight:700; line-height:1.2; letter-spacing:.12em; text-transform:uppercase; color:var(--gcid-neh0wztvub,#74819e); }
.pg-toc ol{ list-style:none; margin:0 !important; padding:0 !important; border-left:2px solid var(--gcid-qrz128uq7x,#eef0f5); }
.pg-toc li{ margin:0 !important; padding:0 !important; }
.pg-toc a{ display:block; margin-left:-2px; padding:6px 0 6px 16px; border-left:2px solid transparent; font-size:14.5px; line-height:1.4; color:var(--gcid-xikl310sb5,#4f5d7d); text-decoration:none; transition:color .2s, border-color .2s; }
.pg-toc .pg-toc-sub a{ padding-left:30px; font-size:13.5px; }
.pg-toc a:hover{ color:var(--gcid-jsnru5jtk4,#181f38); }
.pg-toc a.on{ color:var(--gcid-jsnru5jtk4,#181f38); border-left-color:var(--gcid-primary-color,#00a1df); }
@media (min-width:981px){ .pg-doc-rail .pg-toc{ max-height:calc(100vh - 80px - var(--pg-top, 0px)); overflow-y:auto; scrollbar-width:thin; } }
@media (max-width:980px){
  .pg-doc-rail{ position:static; }
  .pg-toc{ border:1px solid var(--gcid-21s6qw6he2,#dde2ea); border-radius:14px; background:#fff; padding:14px 18px; }
  .pg-toc .pg-toc-t{ margin:0 !important; }
  .pg-doc-js .pg-toc .pg-toc-t{ cursor:pointer; display:flex; justify-content:space-between; align-items:center; }
  .pg-doc-js .pg-toc .pg-toc-t::after{ content:'+'; font-size:18px; line-height:.8; color:var(--gcid-kab8b92l3p,#006186); }
  .pg-doc-js .pg-toc.open .pg-toc-t::after{ content:'–'; }
  .pg-doc-js .pg-toc ol{ display:none; margin-top:12px !important; }
  .pg-doc-js .pg-toc.open ol{ display:block; }
}

/* the document */
.pg-doc{ max-width:720px; }
.pg-doc, .pg-doc p, .pg-doc li{ font-size:17px; line-height:1.72; color:var(--gcid-body-color,#2b3857); }
.pg-doc p{ padding-bottom:1.1em !important; }
.pg-doc :is(h2, h3, h4, h5, h6){ font-family:'TT Norms Pro', Helvetica, Arial, sans-serif !important; font-weight:700 !important; color:var(--gcid-heading-color,#181f38) !important; scroll-margin-top:calc(var(--pg-top, 0px) + 32px); text-wrap:balance; }
.pg-doc h2{ position:relative; margin-top:1.5em; padding:.95em 0 .5em !important; border-top:1px solid var(--gcid-qrz128uq7x,#eef0f5); font-size:clamp(23px, 1.25rem + .7vw, 30px) !important; line-height:1.2 !important; letter-spacing:-.01em; }
.pg-doc h2::before{ content:''; position:absolute; left:0; top:-1px; width:48px; height:3px; border-radius:2px; background:linear-gradient(90deg, var(--gcid-primary-color,#00a1df), var(--gcid-44cxsfm79a,#5b21b6)); }
.pg-doc .et_pb_text_inner > h2:first-child, .pg-doc .et_pb_text_inner > :first-child h2:first-child{ margin-top:0; }
.pg-doc h3{ margin-top:1.3em; padding-bottom:.4em !important; font-size:clamp(19px, 1.05rem + .35vw, 22px) !important; line-height:1.3 !important; }
.pg-doc h4, .pg-doc h5, .pg-doc h6{ margin-top:1.1em; padding-bottom:.35em !important; font-size:18px !important; line-height:1.35 !important; }
.pg-doc [id]{ scroll-margin-top:calc(var(--pg-top, 0px) + 32px); }
.pg-doc strong{ color:var(--gcid-jsnru5jtk4,#181f38); }
.pg-doc a{ color:var(--gcid-kab8b92l3p,#006186); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; text-decoration-color:color-mix(in srgb, currentColor 40%, transparent); transition:text-decoration-color .2s; overflow-wrap:anywhere; }
.pg-doc a:hover{ text-decoration-color:currentColor; }
.pg-doc ul, .pg-doc ol{ margin:0 !important; padding:0 0 1.1em 1.3em !important; }
.pg-doc li{ padding:0 0 .5em .25em !important; }
.pg-doc ul li::marker{ color:var(--gcid-primary-color,#00a1df); }
.pg-doc ol li::marker{ color:var(--gcid-kab8b92l3p,#006186); font-weight:700; }
.pg-doc em{ color:var(--gcid-xikl310sb5,#4f5d7d); }
.pg-doc section + section{ margin-top:0; }
/* the privacy policy's own blocks */
.pg-doc .ev-callout, .pg-doc .ev-contact{ margin:0 0 1.2em; padding:20px 22px 6px; border-radius:16px; background:var(--gcid-qn9g9agfus,#e6f6fc); border-left:3px solid var(--gcid-primary-color,#00a1df); }
.pg-doc .ev-contact{ background:var(--gcid-t64a7fyhrj,#f7f8fa); border-left-color:var(--gcid-44cxsfm79a,#5b21b6); }
.pg-doc ul.ev-def{ list-style:none; padding-left:0 !important; border-top:1px solid var(--gcid-qrz128uq7x,#eef0f5); }
.pg-doc ul.ev-def li{ padding:12px 0 12px 0 !important; border-bottom:1px solid var(--gcid-qrz128uq7x,#eef0f5); }
.pg-doc .ev-ca{ margin:1.6em 0; border:1px solid var(--gcid-21s6qw6he2,#dde2ea); border-radius:20px; overflow:hidden; background:#fff; }
.pg-doc .ev-ca-head{ padding:26px 28px 4px; background:linear-gradient(120deg, var(--gcid-qn9g9agfus,#e6f6fc), var(--gcid-t64a7fyhrj,#f7f8fa)); }
.pg-doc .ev-ca-head h2{ margin-top:0; border-top:0; padding-top:.2em !important; }
.pg-doc .ev-ca-head h2::before{ display:none; }
.pg-doc .ev-eyebrow{ display:block; font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--gcid-kab8b92l3p,#006186); }
.pg-doc .ev-ca-body{ padding:8px 28px 10px; }
.pg-doc .ev-ca-body h3{ margin-top:1.2em; }
@media (max-width:767px){
  .pg-doc, .pg-doc p, .pg-doc li{ font-size:16.5px; }
  .pg-doc .ev-ca-head{ padding:20px 18px 2px; } .pg-doc .ev-ca-body{ padding:6px 18px 8px; }
}
/* P26b · Security (page_security): the ISO badge strip beside the head, the form card */
.pg-sec-marks .et_pb_image{ flex:1 1 0; min-width:0; margin:0 !important; }
.pg-sec-marks .et_pb_image_wrap{ display:block; }
.pg-sec-mark img{ width:100% !important; height:150px !important; object-fit:contain; }
.pg-sec-iframe iframe{ display:block; width:100%; border-radius:10px; }
@media (max-width:767px){ .pg-sec-mark img{ height:96px !important; } }
/* P26c · Thank you (page_thank_you): the native Blog module as the site's cards */
.pg-ty-blog .et_pb_post{ display:flex; flex-direction:column; margin:0 !important; padding:0 0 22px !important; border:1px solid var(--gcid-21s6qw6he2,#dde2ea) !important; border-radius:18px !important; overflow:hidden; background:#fff; transition:translate .25s cubic-bezier(.2,.7,.2,1), box-shadow .25s, border-color .25s; }
.pg-ty-blog .et_pb_post:hover{ translate:0 -3px; border-color:var(--gcid-ncslvciqjo,#c1c9d8) !important; box-shadow:0 24px 48px -30px color-mix(in srgb, var(--gcid-jsnru5jtk4,#181f38) 30%, transparent); }
.pg-ty-blog .et_pb_image_container{ margin:0 0 18px !important; }
.pg-ty-blog .entry-featured-image-url{ display:block; margin:0 !important; overflow:hidden; aspect-ratio:16 / 9; }
.pg-ty-blog .entry-featured-image-url img{ width:100% !important; height:100% !important; object-fit:cover; transition:scale .4s cubic-bezier(.2,.7,.2,1); }
.pg-ty-blog .et_pb_post:hover .entry-featured-image-url img{ scale:1.04; }
.pg-ty-blog .entry-title, .pg-ty-blog .post-meta, .pg-ty-blog .post-content{ padding:0 22px !important; }
.pg-ty-blog .entry-title{ font-family:'TT Norms Pro', Helvetica, Arial, sans-serif !important; font-size:19px !important; line-height:1.3 !important; font-weight:700 !important; padding-bottom:8px !important; }
.pg-ty-blog .entry-title a{ color:var(--gcid-heading-color,#181f38) !important; }
.pg-ty-blog .et_pb_post:hover .entry-title a{ color:var(--gcid-kab8b92l3p,#006186) !important; }
.pg-ty-blog .post-meta{ font-size:13px !important; color:var(--gcid-xikl310sb5,#4f5d7d) !important; }
.pg-ty-blog .post-meta a{ color:var(--gcid-kab8b92l3p,#006186) !important; }
.pg-ty-blog .pagination{ padding-top:22px; } .pg-ty-blog .pagination a{ font-weight:700; color:var(--gcid-jsnru5jtk4,#181f38) !important; }
.pg-ty-blog .more-link{ display:inline-block; margin-top:6px; font-weight:700; color:var(--gcid-jsnru5jtk4,#181f38) !important; }

/* P26d · Brand Assets (page_brand_assets): jump bar, colour cards, logo tiles on their grounds */
.pg-jump{ position:sticky; top:var(--pg-top, 0px); z-index:20; border-top:1px solid var(--gcid-qrz128uq7x,#eef0f5); border-bottom:1px solid var(--gcid-qrz128uq7x,#eef0f5); background:color-mix(in srgb, var(--gcid-coe043lz3e,#ffffff) 88%, transparent) !important; backdrop-filter:blur(10px); }
.pg-jump-nav{ display:flex; flex-wrap:wrap; justify-content:center; gap:6px 8px; }
.pg-jump p{ padding:0 !important; }
.pg-jump .et_pb_module{ margin-bottom:0 !important; }  /* Divi's default ~25px module margin doubled the bar's bottom padding */
.pg-jump .et_pb_code{ position:absolute; }  /* the offset script: no box */
.pg-jump-nav a{ display:inline-block; padding:7px 12px; border-radius:999px; font-weight:600; font-size:14px; line-height:1.2; color:var(--gcid-jsnru5jtk4,#181f38); text-decoration:none; transition:background .2s, color .2s; }
.pg-jump-nav a:hover, .pg-jump-nav a:focus-visible{ background:var(--gcid-qn9g9agfus,#e6f6fc); color:var(--gcid-kab8b92l3p,#006186); }
.pg-jump-nav{ gap:4px 4px; }
@media (max-width:1100px){ .pg-jump-nav{ flex-wrap:nowrap; justify-content:flex-start; overflow-x:auto; scrollbar-width:none; margin:0 -5vw; padding:0 5vw; } .pg-jump-nav a{ white-space:nowrap; } }
.pg-ba-band + .pg-ba-band{ border-top:1px solid var(--gcid-qrz128uq7x,#eef0f5); }
.pg-jump ~ .et_pb_section[id]{ scroll-margin-top:calc(var(--pg-top, 0px) + 60px); }
.pg-ba-stats p{ display:flex; flex-wrap:wrap; align-items:center; gap:6px 16px; padding:12px 16px 12px 46px !important; position:relative; border:1px solid var(--gcid-21s6qw6he2,#dde2ea); border-radius:14px; background:#fff; }
.pg-ba-stats p::before{ content:''; position:absolute; left:14px; top:50%; translate:0 -50%; width:20px; height:20px; border-radius:6px; background:var(--sw); box-shadow:inset 0 0 0 1px rgba(0,0,0,.08); }
.pg-ba-stats strong{ color:var(--gcid-jsnru5jtk4,#181f38); }
.pg-ba-stats p > strong:first-child{ font-size:15px; margin-right:4px; }
.pg-ba-stats span{ white-space:nowrap; color:var(--gcid-xikl310sb5,#4f5d7d); }
@media (min-width:981px){ .pg-ba-band .pg-ba-stats{ width:max-content; max-width:100%; margin-left:auto; } }
/* the swatch = the brand spec the line documents (MAPS Gray has no Variable Manager token) */
.pg-ba-sw-evisions{ --sw:var(--gcid-primary-color,#00a1df); } .pg-ba-sw-argos{ --sw:var(--gcid-nbbsyygk7n,#e23e21); } .pg-ba-sw-agent{ --sw:var(--gcid-44cxsfm79a,#5b21b6); }
.pg-ba-sw-acc{ --sw:var(--gcid-ysrgadmpxx,#cf3d96); } .pg-ba-sw-ff{ --sw:var(--gcid-ptme9asktf,#f58220); } .pg-ba-sw-ic{ --sw:var(--gcid-qbj05voeup,#fdb913); } .pg-ba-sw-mapsgray{ --sw:#505050; }
.pg-ba-tile{ overflow:hidden; transition:translate .25s cubic-bezier(.2,.7,.2,1), box-shadow .25s; }
.pg-ba-tile:hover{ translate:0 -3px; box-shadow:0 24px 48px -30px color-mix(in srgb, var(--gcid-jsnru5jtk4,#181f38) 32%, transparent); }
.pg-ba-tile .et_pb_image{ margin:0 !important; padding:34px 28px; background:var(--gcid-t64a7fyhrj,#f7f8fa); }
.pg-ba-dark .et_pb_image{ background:var(--gcid-jsnru5jtk4,#181f38); }
.pg-ba-blue .et_pb_image{ background:var(--gcid-primary-color,#00a1df); }
.pg-ba-tile .et_pb_image_wrap{ display:block; width:100%; }
.pg-ba-logo img{ display:block; width:100% !important; height:96px !important; object-fit:contain; }
.pg-ba-dl{ display:flex; flex-wrap:wrap; gap:8px; padding:14px 16px; border-top:1px solid var(--gcid-qrz128uq7x,#eef0f5); }
.pg-ba-dl a{ display:inline-flex; align-items:center; gap:7px; padding:6px 12px 5px; border-radius:999px; background:var(--gcid-msl5ncc2w3,#f7f8fa); border:1px solid var(--gcid-21s6qw6he2,#dde2ea); font-size:13px; font-weight:700; letter-spacing:.04em; line-height:1.2; color:var(--gcid-jsnru5jtk4,#181f38); text-decoration:none; transition:background .2s, color .2s, border-color .2s; }
.pg-ba-dl a i{ font-size:11px; color:var(--gcid-kab8b92l3p,#006186); transition:translate .2s; }
.pg-ba-dl a:hover, .pg-ba-dl a:focus-visible{ background:var(--gcid-qn9g9agfus,#e6f6fc); border-color:var(--gcid-r8mwk7mfl4,#99d9f2); color:var(--gcid-kab8b92l3p,#006186); }
.pg-ba-dl a:hover i{ translate:0 2px; }
.pg-ba-diagram img{ width:100%; height:auto; border-radius:14px; border:1px solid var(--gcid-21s6qw6he2,#dde2ea); }
@media (max-width:767px){ .pg-ba-logo img{ height:72px !important; } .pg-ba-tile .et_pb_image{ padding:26px 20px; } }

/* P26e · Welcome to Evisions (page_welcome, redesigned 2026-10-16): dark hero with the glass
   What's Inside index, editorial lead, numbered eyebrows, framed screenshots, team rows, offer
   cards, resource tiles, glass cards in the dark close. Motion: scroll-driven rise (home-rise). */
.pg-wl-hero{ position:relative; overflow:hidden; }
.pg-wl-hero::after{ content:''; position:absolute; inset:0; pointer-events:none; opacity:.5; background-image:radial-gradient(rgba(255,255,255,.16) 1.2px, transparent 1.2px); background-size:26px 26px; -webkit-mask-image:radial-gradient(600px 380px at 82% 40%, #000, transparent 70%); mask-image:radial-gradient(600px 380px at 82% 40%, #000, transparent 70%); }
.pg-wl-hero > .et_pb_row{ position:relative; z-index:1; }
.pg-wl-hero h1{ text-wrap:balance; }
.pg-wl-index p{ padding:0 !important; }
.pg-wl-index .et_pb_text_inner{ padding:26px 26px 18px; border-radius:24px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18); backdrop-filter:blur(14px); box-shadow:0 40px 80px -40px rgba(0,0,0,.55); }
.pg-wl-ix-t{ margin:0 0 10px !important; font-size:12px !important; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--gcid-pv82wnw5p9,#66c7ec) !important; }
.pg-wl-ix{ display:flex; flex-direction:column; }
.pg-wl-ix a{ display:flex; align-items:center; gap:14px; padding:13px 6px; border-top:1px solid rgba(255,255,255,.12); border-radius:10px; color:#fff !important; text-decoration:none; font-weight:600; font-size:16.5px; line-height:1.3; transition:padding .25s cubic-bezier(.2,.7,.2,1), background .25s; }
.pg-wl-ix a:first-child{ border-top:0; }
.pg-wl-ix a b{ flex:0 0 24px; font-size:12px; letter-spacing:.06em; color:var(--gcid-pv82wnw5p9,#66c7ec); }
.pg-wl-ix a > i:not(.pg-wl-ix-go){ flex:0 0 36px; height:36px; display:grid; place-items:center; border-radius:10px; background:rgba(255,255,255,.1); font-size:15px; color:#fff; transition:background .25s; }
.pg-wl-ix a span{ flex:1 1 auto; }
.pg-wl-ix-go{ font-size:13px; opacity:.45; transition:translate .25s, opacity .25s; }
.pg-wl-ix a:hover, .pg-wl-ix a:focus-visible{ padding-left:12px; background:rgba(255,255,255,.07); }
.pg-wl-ix a:hover > i:not(.pg-wl-ix-go){ background:var(--gcid-primary-color,#00a1df); }
.pg-wl-ix a:hover .pg-wl-ix-go{ opacity:1; translate:0 2px; }
.pg-wl-lead p{ text-wrap:balance; font-weight:500; letter-spacing:-.01em; }
.pg-wl-eye p{ display:flex; align-items:center; gap:12px; }
.pg-wl-num{ display:inline-grid; place-items:center; min-width:34px; height:24px; padding:0 8px; border-radius:999px; background:var(--gcid-qn9g9agfus,#e6f6fc); color:var(--gcid-kab8b92l3p,#006186); letter-spacing:.04em; }
.pg-wl-eye-dark .pg-wl-num{ background:rgba(255,255,255,.12); color:#fff; }
.pg-wl-eye-dark p{ color:var(--gcid-pv82wnw5p9,#66c7ec) !important; }
/* link cards and resource tiles */
.pg-wl-linkmod .et_pb_text_inner{ height:100%; }  /* not the module: in a phone column-wrap grid a 100% module wraps sideways */
.pg-wl-linkmod p{ height:100%; padding:0 !important; }
.pg-wl-link{ display:flex; align-items:center; gap:16px; height:100%; box-sizing:border-box; padding:18px; border:1px solid var(--gcid-21s6qw6he2,#dde2ea); border-radius:18px; background:#fff; color:var(--gcid-jsnru5jtk4,#181f38) !important; text-decoration:none; transition:translate .25s cubic-bezier(.2,.7,.2,1), box-shadow .25s, border-color .25s; }
.pg-wl-link > span{ flex:1 1 auto; min-width:0; }
.pg-wl-link strong{ color:var(--gcid-jsnru5jtk4,#181f38); }
.pg-wl-ic{ flex:0 0 44px; height:44px; display:grid; place-items:center; border-radius:12px; font-size:18px; color:var(--gcid-kab8b92l3p,#006186); background:var(--gcid-qn9g9agfus,#e6f6fc); transition:background .25s, color .25s; }
.pg-wl-chev{ flex:0 0 auto; font-size:13px; color:var(--gcid-2mtow0rh2g,#9aa5bc); transition:translate .25s, color .25s; }
.pg-wl-link:hover{ translate:0 -3px; border-color:var(--gcid-ncslvciqjo,#c1c9d8); box-shadow:0 24px 48px -30px color-mix(in srgb, var(--gcid-jsnru5jtk4,#181f38) 30%, transparent); }
.pg-wl-link:hover .pg-wl-ic{ background:var(--gcid-primary-color,#00a1df); color:#fff; }
.pg-wl-link:hover .pg-wl-chev{ translate:3px 0; color:var(--gcid-kab8b92l3p,#006186); }
.pg-wl-link:focus-visible{ outline:2px solid var(--gcid-primary-color,#00a1df); outline-offset:2px; }
.pg-wl-tile{ flex-direction:column; align-items:flex-start; gap:30px; padding:22px; min-height:190px; }
.pg-wl-tile > span{ display:flex; align-items:flex-end; font-size:19px; line-height:1.25; }
.pg-wl-tile .pg-wl-ic{ flex-basis:auto; width:52px; height:52px; font-size:21px; border-radius:14px; }
.pg-wl-tile .pg-wl-chev{ align-self:flex-end; margin-top:-34px; font-size:15px; }
.pg-wl-tile:hover .pg-wl-chev{ translate:4px 0; }
/* tips: tinted callouts; the banner and glass variants */
.pg-wl-tip .et_pb_text_inner, .pg-wl-tip p{ height:100%; }
.pg-wl-tip p{ display:flex; align-items:flex-start; gap:14px; box-sizing:border-box; padding:18px 20px !important; border-radius:16px; background:var(--gcid-qn9g9agfus,#e6f6fc); border-left:3px solid var(--gcid-primary-color,#00a1df); }
.pg-wl-tip p > span{ flex:1 1 auto; min-width:0; padding-top:5px; }
.pg-wl-tip-ic{ flex:0 0 36px; height:36px; display:grid; place-items:center; border-radius:10px; background:#fff; color:var(--gcid-kab8b92l3p,#006186); font-size:16px; }
.pg-wl-tip a{ color:var(--gcid-kab8b92l3p,#006186); overflow-wrap:anywhere; }
.pg-wl-banner p{ align-items:center; padding:22px 26px !important; border-left:0; border-radius:20px; background:linear-gradient(120deg, var(--gcid-qn9g9agfus,#e6f6fc), color-mix(in srgb, var(--gcid-44cxsfm79a,#5b21b6) 9%, #fff)); font-size:clamp(17px, 1rem + .3vw, 20px); }
.pg-wl-banner p > span{ padding-top:0; }
.pg-wl-banner .pg-wl-tip-ic{ flex-basis:48px; height:48px; font-size:20px; border-radius:14px; box-shadow:0 10px 24px -14px rgba(14,19,48,.35); }
.pg-wl-glass p{ background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18); border-left:3px solid var(--gcid-pv82wnw5p9,#66c7ec); color:rgba(255,255,255,.9); backdrop-filter:blur(12px); }
.pg-wl-glass .pg-wl-tip-ic{ background:rgba(255,255,255,.12); color:#fff; }
.pg-wl-glass a, .pg-wl-glass strong{ color:#fff !important; }
/* numbered steps */
.pg-wl-steps-lead{ padding-bottom:14px !important; font-weight:700; color:var(--gcid-jsnru5jtk4,#181f38); }
.pg-wl-steps{ list-style:none !important; margin:0 !important; padding:0 !important; counter-reset:wl; }
.pg-wl-steps li{ list-style:none !important; counter-increment:wl; position:relative; margin:0 !important; padding:12px 0 12px 52px !important; line-height:1.45; }
.pg-wl-steps li::marker{ content:''; }
.pg-wl-steps li::before{ content:counter(wl); position:absolute; left:0; top:50%; translate:0 -50%; z-index:1; width:34px; height:34px; display:grid; place-items:center; border-radius:50%; font-weight:700; font-size:14px; color:#fff; background:linear-gradient(135deg, var(--gcid-primary-color,#00a1df), var(--gcid-44cxsfm79a,#5b21b6)); box-shadow:0 0 0 5px var(--gcid-qn9g9agfus,#e6f6fc); }
.pg-wl-steps li:not(:last-child)::after{ content:''; position:absolute; left:16.5px; top:50%; height:100%; width:1px; background:var(--gcid-r8mwk7mfl4,#99d9f2); }
.pg-wl-note{ margin-top:18px !important; }
.pg-wl-note p{ padding-bottom:0 !important; }
/* browser-framed screenshots */
.pg-wl-frame{ position:relative; margin:0 !important; padding-top:30px; border-radius:16px; background:var(--gcid-qrz128uq7x,#eef0f5); border:1px solid var(--gcid-21s6qw6he2,#dde2ea); overflow:hidden; box-shadow:0 40px 80px -44px color-mix(in srgb, var(--gcid-jsnru5jtk4,#181f38) 55%, transparent); }
.pg-wl-frame::before{ content:''; position:absolute; left:14px; top:11px; width:9px; height:9px; border-radius:50%; background:var(--gcid-2mtow0rh2g,#9aa5bc); box-shadow:15px 0 0 var(--gcid-on0cv0d2u9,#dde2ea), 30px 0 0 var(--gcid-on0cv0d2u9,#dde2ea); }
.pg-wl-frame .et_pb_image_wrap{ display:block; }
.pg-wl-frame img{ display:block; width:100%; height:auto; }
/* User Groups card, team rows, offer cards */
.et_pb_section .et_pb_row.pg-wl-groups{ padding:clamp(24px, 4vw, 52px) !important; border-radius:28px; background:var(--gcid-t64a7fyhrj,#f7f8fa); border:1px solid var(--gcid-qrz128uq7x,#eef0f5); }
.et_pb_section .et_pb_row.pg-wl-team{ padding-top:clamp(28px, 3vw, 40px) !important; border-top:1px solid var(--gcid-21s6qw6he2,#dde2ea); }
@media (min-width:981px){ .pg-wl-team-side{ position:sticky; top:calc(var(--pg-top, 0px) + 84px); } }
.pg-wl-inner{ width:100% !important; max-width:none !important; padding:22px !important; border-radius:20px; background:#fff; border:1px solid var(--gcid-21s6qw6he2,#dde2ea); }
.pg-wl-offer{ transition:translate .25s cubic-bezier(.2,.7,.2,1), box-shadow .25s; }
.pg-wl-offer:hover{ translate:0 -3px; box-shadow:0 30px 60px -36px color-mix(in srgb, var(--gcid-jsnru5jtk4,#181f38) 32%, transparent); }
.pg-wl-offer .pg-wl-tip{ margin-top:auto !important; height:auto; }
.pg-wl-rows .pg-wl-item{ flex-direction:row !important; align-items:center; gap:14px; }
.pg-wl-rows .pg-wl-item .home-nicon{ margin-bottom:0 !important; flex:0 0 auto; }
/* motion */
@supports (animation-timeline: view()){
  .pg-wl-link, .pg-wl-team, .pg-wl-offer, .pg-wl-groups, .pg-wl-frame, .pg-wl-banner{ animation:home-rise .6s cubic-bezier(.2,.7,.2,1) both; animation-timeline:view(); animation-range:entry 0% entry 30%; }
}
@keyframes pg-wl-in{ from{ opacity:0; translate:0 10px; } to{ opacity:1; translate:0 0; } }
.pg-wl-ix a{ animation:pg-wl-in .5s cubic-bezier(.2,.7,.2,1) both; }
.pg-wl-ix a:nth-child(2){ animation-delay:.06s; } .pg-wl-ix a:nth-child(3){ animation-delay:.12s; } .pg-wl-ix a:nth-child(4){ animation-delay:.18s; } .pg-wl-ix a:nth-child(5){ animation-delay:.24s; } .pg-wl-ix a:nth-child(6){ animation-delay:.3s; }
@media (prefers-reduced-motion:reduce){ .pg-wl-link, .pg-wl-team, .pg-wl-offer, .pg-wl-groups, .pg-wl-frame, .pg-wl-banner, .pg-wl-ix a{ animation:none; } }
@media (max-width:767px){
  .pg-wl-index .et_pb_text_inner{ padding:18px 16px 10px; }
  .pg-wl-tile{ min-height:0; flex-direction:row; align-items:center; gap:16px; padding:16px; }
  .pg-wl-tile .pg-wl-chev{ align-self:center; margin-top:0; }
  .pg-wl-tile .pg-wl-ic{ width:44px; height:44px; font-size:18px; }
  .pg-wl-tile > span{ font-size:17px; }
}

/* P27 · Partners (page_partners, 2026-10-16): loop-driven partner cards + the hero logo wall.
   Logos are the client_partner featured images: any format, any proportion, some viewBox-only
   SVGs (no intrinsic box) → every img gets a fixed box and object-fit. Grey at rest, colour on
   hover (the marquee's treatment). Each card prints two links; CSS shows one: the partner's site
   (ACF external_url) or, when that field is empty, the partner's own page. No script. */
.pg-sr{ position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.pg-pt-logo, .pg-pt-logo .et_pb_image_wrap{ width:100%; display:flex !important; justify-content:center; margin:0 !important; }
.pg-pt-logo img{ display:block; width:100% !important; height:56px !important; max-width:220px !important; object-fit:contain; filter:grayscale(1); opacity:.78; transition:filter .35s, opacity .35s; }
.pg-pt-tile .pg-pt-logo img{ height:40px !important; max-width:140px !important; }
.pg-pt:hover .pg-pt-logo img, .pg-pt-tile:hover .pg-pt-logo img{ filter:none; opacity:1; }
.pg-pt{ position:relative; cursor:pointer; }
.pg-pt-go .et_pb_module, .pg-pt-go .et_pb_text_inner, .pg-pt-go p{ position:static !important; }
.pg-pt-go a{ display:inline-flex; align-items:center; gap:8px; color:var(--gcid-jsnru5jtk4,#181f38) !important; text-decoration:none; }
.pg-pt-go a::after{ content:''; position:absolute; inset:0; z-index:1; border-radius:18px; }
.pg-pt-go a:focus-visible{ outline:none; }
.pg-pt-go a:focus-visible::after{ outline:2px solid var(--gcid-q5rxc84nfq,#00a1df); outline-offset:2px; }
.pg-pt-go a i{ display:inline-block; font-size:13px; transition:transform .45s cubic-bezier(.34,1.56,.64,1); }
.pg-pt:hover .pg-pt-ext i{ transform:translate(2px,-2px); }
.pg-pt:hover .pg-pt-own i{ transform:translateX(4px); }
/* the empty-href external link hides; a filled one hides the own-page link after it */
.pg-pt-go a.pg-pt-ext[href=''], .pg-pt-go a.pg-pt-ext:not([href='']) ~ a.pg-pt-own{ display:none; }
.pg-pt-walleye{ display:block; font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--gcid-xikl310sb5,#4f5d7d); }
.pg-pt-wall{ padding:10px; }
.pg-pt-wall .pg-pt-tile{ transition:border-color .25s, transform .25s; }
.pg-pt-wall .pg-pt-tile:hover{ border-color:var(--gcid-ncslvciqjo,#c1c9d8) !important; transform:translateY(-2px); }
@media (max-width:767px){ .pg-pt-logo img{ height:44px !important; } .pg-pt-tile .pg-pt-logo img{ height:30px !important; } .pg-pt-wall{ padding:4px; } }
/* the form's confirmation sits in the white card (the old freeForm made it white for a dark ground) */
.pg-ptform .et-pb-contact-message{ color:var(--gcid-jsnru5jtk4,#181f38); font-weight:600; font-size:18px; line-height:1.5; }

/* P28 · About timeline slider (page_company.history_slider, 2026-10-21): production's timeline as a dark
   band. No-JS = a native scroll-snap track of year cards (swipe / trackpad / keyboard). With the script
   (.pg-tl-on): a year rail placed by year (dots for the cards in view light up, the fill spans them, the
   first in view is .on), arrows, mouse drag, cards out of view dimmed, and the track bleeds to the viewport
   edges (--pg-bleed = the column offset, so snapping still lines a card up with the content edge). Cards
   are equal height: the track never resizes while scrolling (Josh, 2026-10-21). */
.pg-tl-sec{ position:relative; overflow-x:clip; }
.pg-tl-sec::before{ content:''; position:absolute; inset:0; pointer-events:none; background:radial-gradient(900px 460px at 8% 0%, color-mix(in srgb, var(--gcid-primary-color,#00a1df) 24%, transparent), transparent 70%), radial-gradient(760px 460px at 96% 100%, color-mix(in srgb, var(--gcid-44cxsfm79a,#5b21b6) 34%, transparent), transparent 70%); }
.pg-tl-sec > .et_pb_row{ position:relative; z-index:1; }
.pg-tl-track{ --pg-bleed:0px; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; scroll-padding-inline:var(--pg-bleed); overscroll-behavior-x:contain; margin-left:calc(-1 * var(--pg-bleed)) !important; margin-right:calc(-1 * var(--pg-bleed)) !important; padding:6px var(--pg-bleed) 10px !important; }
.pg-tl-track:focus-visible{ outline:2px solid var(--gcid-pv82wnw5p9,#66c7ec); outline-offset:-2px; border-radius:22px; }
.pg-tl-on .pg-tl-track{ scrollbar-width:none; cursor:grab; }
.pg-tl-on .pg-tl-track::-webkit-scrollbar{ display:none; }
.pg-tl-track.drag{ scroll-snap-type:none; cursor:grabbing; user-select:none; }
.pg-tl-track > .pg-yr{ flex:0 0 clamp(272px, 26vw, 352px) !important; width:auto !important; max-width:none !important; margin:0 !important; scroll-snap-align:start; position:relative; overflow:hidden; transition:opacity .45s, border-color .3s, translate .45s cubic-bezier(.2,.7,.2,1); }
.pg-tl-track > .pg-yr-wide{ flex-basis:clamp(300px, 44vw, 620px) !important; }
.pg-yr-wide .pg-tl-list.pg-tl-list{ grid-template-columns:1fr 1fr; column-gap:22px; }
@media (max-width:767px){ .pg-tl-track > .pg-yr-wide{ flex-basis:clamp(272px, 84vw, 352px) !important; } .pg-yr-wide .pg-tl-list.pg-tl-list{ grid-template-columns:1fr; } }
.pg-yr::before{ content:''; position:absolute; left:0; right:0; top:0; height:2px; background:linear-gradient(90deg, var(--gcid-primary-color,#00a1df), var(--gcid-r8mwk7mfl4,#99d9f2)); opacity:0; transition:opacity .3s; }
.pg-yr:hover{ border-color:color-mix(in srgb, var(--gcid-pv82wnw5p9,#66c7ec) 50%, transparent) !important; translate:0 -3px; }
.pg-yr:hover::before{ opacity:1; }
.pg-tl-on .pg-yr:not(.vis){ opacity:.4; }
.pg-yr-head h3{ background:linear-gradient(120deg, var(--gcid-y1gcqkdc0w,#ffffff) 30%, var(--gcid-pv82wnw5p9,#66c7ec)); -webkit-background-clip:text; background-clip:text; color:transparent; -webkit-text-fill-color:transparent; font-variant-numeric:tabular-nums; letter-spacing:-.02em; padding-bottom:0 !important; }
.pg-tl-list.pg-tl-list{ list-style:none !important; margin:0 !important; padding:0 !important; display:grid; gap:14px; line-height:inherit; }
.pg-tl-list li{ --chip:30px; display:flex; gap:12px; align-items:flex-start; margin:0 !important; padding:0 !important; list-style:none !important; }
.pg-tl-list li::before, .pg-tl-list li::marker{ content:none; display:none; }
.pg-tl-list li > span{ padding-top:max(0px, (var(--chip) - 1lh) / 2); }
.pg-tl-list li i{ flex:none; display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; margin:0 !important; border-radius:9px; font-size:13px !important; line-height:1 !important; color:var(--gcid-r8mwk7mfl4,#99d9f2) !important; background:color-mix(in srgb, var(--gcid-primary-color,#00a1df) 18%, transparent); transition:background .3s, color .3s, transform .5s cubic-bezier(.68,-.55,.27,1.55); }
.pg-tl-list li:hover i{ background:var(--gcid-primary-color,#00a1df); color:var(--gcid-y1gcqkdc0w,#ffffff) !important; transform:rotate(-8deg) scale(1.08); }
.pg-tl-ctl{ display:flex; align-items:center; gap:32px; margin:0 0 28px; }
.pg-tl-ctl[hidden]{ display:none !important; }
.pg-tl-rail{ position:relative; flex:1 1 auto; height:46px; margin:0 14px; }
.pg-tl-line{ position:absolute; left:0; right:0; top:12px; height:2px; border-radius:2px; background:color-mix(in srgb, var(--gcid-y1gcqkdc0w,#ffffff) 16%, transparent); }
.pg-tl-fill{ position:absolute; top:0; height:100%; min-width:2px; border-radius:2px; background:linear-gradient(90deg, var(--gcid-primary-color,#00a1df), var(--gcid-r8mwk7mfl4,#99d9f2)); box-shadow:0 0 14px color-mix(in srgb, var(--gcid-primary-color,#00a1df) 70%, transparent); transition:left .45s cubic-bezier(.2,.7,.2,1), width .45s cubic-bezier(.2,.7,.2,1); }
.pg-tl-dots{ position:absolute; inset:0; }
.pg-tl-dot{ position:absolute; top:0; width:28px; height:46px; margin:0 0 0 -14px; padding:0; border:0; background:none; cursor:pointer; display:flex; flex-direction:column; align-items:center; gap:9px; color:color-mix(in srgb, var(--gcid-y1gcqkdc0w,#ffffff) 48%, transparent); }
.pg-tl-dot::before{ content:''; flex:none; width:10px; height:10px; margin-top:8px; border-radius:50%; background:var(--gcid-pcol20h3ja,#181f38); box-shadow:0 0 0 2px color-mix(in srgb, var(--gcid-y1gcqkdc0w,#ffffff) 34%, transparent); transition:transform .3s, background .3s, box-shadow .3s; }
.pg-tl-dot b{ font:600 11px/1 'TT Norms Pro',sans-serif; letter-spacing:.04em; font-variant-numeric:tabular-nums; white-space:nowrap; transition:color .3s, opacity .3s; }
.pg-tl-dot.vis{ color:var(--gcid-y1gcqkdc0w,#ffffff); }
.pg-tl-dot.vis::before{ background:var(--gcid-pv82wnw5p9,#66c7ec); box-shadow:0 0 0 2px var(--gcid-pv82wnw5p9,#66c7ec); }
.pg-tl-dot.on::before{ background:var(--gcid-y1gcqkdc0w,#ffffff); box-shadow:0 0 0 4px color-mix(in srgb, var(--gcid-primary-color,#00a1df) 60%, transparent); transform:scale(1.3); }
.pg-tl-dot:hover::before{ transform:scale(1.4); }
.pg-tl-dot:focus-visible{ outline:2px solid var(--gcid-pv82wnw5p9,#66c7ec); outline-offset:2px; border-radius:6px; }
.pg-tl-nav{ flex:none; display:flex; gap:10px; }
.pg-tl-nav button{ width:48px; height:48px; margin:0; padding:0; border-radius:50%; border:1px solid color-mix(in srgb, var(--gcid-y1gcqkdc0w,#ffffff) 26%, transparent); background:transparent; color:var(--gcid-y1gcqkdc0w,#ffffff); display:inline-flex; align-items:center; justify-content:center; font-size:16px; cursor:pointer; transition:background .25s, border-color .25s, color .25s, opacity .25s; }
.pg-tl-nav button:hover:not(:disabled){ background:var(--gcid-y1gcqkdc0w,#ffffff); border-color:var(--gcid-y1gcqkdc0w,#ffffff); color:var(--gcid-pcol20h3ja,#181f38); }
.pg-tl-nav button:disabled{ opacity:.3; cursor:default; }
.pg-tl-nav button:focus-visible{ outline:2px solid var(--gcid-pv82wnw5p9,#66c7ec); outline-offset:3px; }
.pg-tl-nav i{ transition:translate .25s; }
.pg-tl-next:hover:not(:disabled) i{ translate:3px 0; }
.pg-tl-prev:hover:not(:disabled) i{ translate:-3px 0; }
@media (max-width:1180px){ .pg-tl-dot b{ opacity:0; } .pg-tl-dot.on b{ opacity:1; } }
@media (max-width:767px){ .pg-tl-ctl{ gap:16px; margin-bottom:20px; } .pg-tl-rail{ margin:0 8px; } .pg-tl-nav{ gap:8px; } .pg-tl-nav button{ width:42px; height:42px; font-size:14px; }
  .pg-tl-dot{ width:14px; margin-left:-7px; gap:8px; } .pg-tl-dot::before{ width:7px; height:7px; margin-top:9.5px; box-shadow:0 0 0 1.5px color-mix(in srgb, var(--gcid-y1gcqkdc0w,#ffffff) 34%, transparent); }
  .pg-tl-dot.vis::before{ box-shadow:0 0 0 1.5px var(--gcid-pv82wnw5p9,#66c7ec); } .pg-tl-dot.on::before{ box-shadow:0 0 0 3px color-mix(in srgb, var(--gcid-primary-color,#00a1df) 60%, transparent); } }
/* phones: swiping is the gesture, so the arrows go and the rail takes the full width (22 dots in ~214px overlapped) */
@media (max-width:560px){ .pg-tl-nav{ display:none; } .pg-tl-rail{ margin:0 4px; } }
@media (prefers-reduced-motion:reduce){ .pg-yr, .pg-tl-fill, .pg-tl-dot::before{ transition:none !important; } }

/* P29 · Support quote marquee (page_company.quote_marquee, 2026-10-21): the 14-quote wall as one moving
   row instead of a 3-column grid (Josh: the old page scrolled them so they took less room). No-JS or
   reduced motion = a native scroll-snap row. With the script (.pg-qm-on): cards cloned once, the track
   drifts left (transform), bleeds to the viewport edges (--pg-bleed) under soft edge fades; hover / focus
   eases it to a stop, lifts the quote under the pointer and quiets the rest; drag scrubs and flings; the
   pause button holds it (.pg-qm-held). Card widths follow quote length (.pg-qw-m / .pg-qw-l). */
.pg-qm-sec{ overflow-x:clip; }
.pg-qm{ --pg-bleed:0px; position:relative; }
.pg-qm-track{ overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; overscroll-behavior-x:contain; padding:8px 2px 16px !important; }
.pg-qm-track > .pg-qtile{ flex:0 0 clamp(272px, 28vw, 340px) !important; width:auto !important; max-width:none !important; margin:0 !important; scroll-snap-align:start; position:relative; overflow:hidden; transition:translate .45s cubic-bezier(.2,.7,.2,1), opacity .45s, border-color .3s, box-shadow .45s !important; }
.pg-qm-track > .pg-qw-m{ flex-basis:clamp(284px, 34vw, 420px) !important; }
.pg-qm-track > .pg-qw-l{ flex-basis:clamp(296px, 42vw, 520px) !important; }
.pg-qm-track > .pg-qtile::before{ content:''; position:absolute; left:0; right:0; top:0; height:3px; background:linear-gradient(90deg, var(--gcid-primary-color,#00a1df), var(--gcid-44cxsfm79a,#5b21b6)); opacity:0; transition:opacity .3s; }
.pg-qm-on{ margin-left:calc(-1 * var(--pg-bleed)) !important; margin-right:calc(-1 * var(--pg-bleed)) !important; -webkit-mask-image:linear-gradient(90deg, transparent, #000 max(24px, 6%), #000 calc(100% - max(24px, 6%)), transparent); mask-image:linear-gradient(90deg, transparent, #000 max(24px, 6%), #000 calc(100% - max(24px, 6%)), transparent); }
.pg-qm-on .pg-qm-track{ overflow:visible; scroll-snap-type:none; padding:8px 0 16px !important; cursor:grab; touch-action:pan-y; will-change:transform; }
.pg-qm-on .pg-qm-track:focus-visible{ outline:none; }
.pg-qm-on .pg-qm-track:focus-visible > .pg-qtile{ border-color:var(--gcid-pv82wnw5p9,#66c7ec) !important; }
.pg-qm-track.drag{ cursor:grabbing; user-select:none; }
.pg-qm-track.drag > .pg-qtile{ transition:none !important; }
.pg-qm-on .pg-qm-track:hover > .pg-qtile:not(:hover){ opacity:.5; }
.pg-qm-track > .pg-qtile:hover{ translate:0 -6px; border-color:color-mix(in srgb, var(--gcid-primary-color,#00a1df) 45%, transparent) !important; box-shadow:0 22px 44px -22px color-mix(in srgb, var(--gcid-kab8b92l3p,#006186) 45%, transparent); }
.pg-qm-track > .pg-qtile:hover::before{ opacity:1; }
.pg-qm-track.drag > .pg-qtile:hover{ translate:none; }
.pg-qm-ctl{ display:flex; align-items:center; justify-content:flex-end; gap:14px; margin:14px 0 0; padding:0 var(--pg-bleed); }
.pg-qm-ctl[hidden]{ display:none !important; }
.pg-qm-hint{ font-size:13px; color:var(--gcid-xikl310sb5,#4f5d7d); }
.pg-qm-ctl button{ width:44px; height:44px; margin:0; padding:0; border-radius:50%; border:1px solid var(--gcid-21s6qw6he2,#dde2ea); background:var(--gcid-y1gcqkdc0w,#ffffff); color:var(--gcid-jsnru5jtk4,#181f38); display:inline-flex; align-items:center; justify-content:center; font-size:14px; cursor:pointer; transition:background .25s, border-color .25s, color .25s; }
.pg-qm-ctl button:hover{ background:var(--gcid-jsnru5jtk4,#181f38); border-color:var(--gcid-jsnru5jtk4,#181f38); color:var(--gcid-y1gcqkdc0w,#ffffff); }
.pg-qm-ctl button:focus-visible{ outline:2px solid var(--gcid-q5rxc84nfq,#00a1df); outline-offset:3px; }
.pg-qm-ctl .fa-play, .pg-qm-held .pg-qm-ctl .fa-pause{ display:none; }
.pg-qm-held .pg-qm-ctl .fa-play{ display:inline-block; }
@media (hover:none){ .pg-qm-hint{ display:none; } }
/* phones: long quotes run ~400px tall at card width, so cards keep their own height instead of stretching */
@media (max-width:767px){ .pg-qm-track{ align-items:flex-start !important; } .pg-qm-track > .pg-qw-m, .pg-qm-track > .pg-qw-l{ flex-basis:min(82vw, 340px) !important; } }

/* finished illustrations (site_kit.art_image): feather all four edges so the art's own ground
   dissolves into the section instead of ending in a visible rectangle */
.pg-art-fade img{ -webkit-mask-image:linear-gradient(90deg, transparent, #000 14%, #000 86%, transparent), linear-gradient(180deg, transparent, #000 14%, #000 86%, transparent); -webkit-mask-composite:source-in; mask-image:linear-gradient(90deg, transparent, #000 14%, #000 86%, transparent), linear-gradient(180deg, transparent, #000 14%, #000 86%, transparent); mask-composite:intersect; }

/* P30 · Academic Success (page_academic_success, 2026-10-23): the quote band's institution logo is a
   colour file, shown in grayscale (hard rule 6: colour logos only in the marquee) */
.pg-asa-qlogo img{ filter:grayscale(1); opacity:.72; }

/* ===== layer: blog ===== */
/* ===========================================================================
   BLOG — the overview page (post 58679) and the single-post Theme Builder body layout
   (page_blog.py), on top of kit + home v3 + pages.css. Double-brace token-name placeholders are resolved
   to var(--gcid-…, fallback) by the generator. Single quotes only, no backslashes (freeForm strips both).
   =========================================================================== */

/* BP1 · Post cards (looped columns): thumb that zooms, category eyebrow, title, date, arrow */
.bp-card{ cursor:pointer; }
.bp-thumb{ position:relative; overflow:hidden; margin:0 !important; aspect-ratio:16 / 9; background:linear-gradient(135deg, var(--gcid-qn9g9agfus,#e6f6fc), var(--gcid-41brwfgpe1,#efe9f8)); }
.bp-thumb img{ display:block; width:100%; height:100%; object-fit:cover; transition:scale .6s cubic-bezier(.2,.7,.2,1); }
.bp-card:hover .bp-thumb img{ scale:1.045; }
.bp-card h3{ transition:color .2s; }
.bp-card:hover h3{ color:var(--gcid-kab8b92l3p,#006186) !important; }
.bp-cat p{ display:-webkit-box; -webkit-line-clamp:1; -webkit-box-orient:vertical; overflow:hidden; }
.bp-go i{ display:inline-block; margin-left:4px; transition:translate .45s cubic-bezier(.34,1.56,.64,1); }
.bp-card:hover .bp-go i{ translate:4px 0; }
.bp-date p{ font-variant-numeric:tabular-nums; }

/* BP2 · Library: on page 1 with no filter the newest post is featured (FLAG_JS adds .bp-paged otherwise), two tracks wide, image beside copy */
@media (min-width:981px){
  #articles:not(.bp-paged) .bp-lib > .et_pb_column:first-child{ grid-column:span 2; flex-direction:row !important; }
  #articles:not(.bp-paged) .bp-lib > .et_pb_column:first-child .bp-thumb{ flex:0 0 54%; aspect-ratio:auto; min-height:100%; }
  /* same rhythm as the other cards: copy from the top, date + Read pinned to the bottom, so they line up
     with the neighbouring card's foot; a little more inset because the card is wider */
  #articles:not(.bp-paged) .bp-lib > .et_pb_column:first-child .bp-copy{ flex:1 1 0 !important; min-width:0; justify-content:space-between !important; padding:28px 32px 22px !important; }
  #articles:not(.bp-paged) .bp-lib > .et_pb_column:first-child h3{ font-size:clamp(22px, 1.9vw, 27px) !important; line-height:1.2 !important; }
  #articles:not(.bp-paged) .bp-lib > .et_pb_column:first-child .bp-cat p{ display:flex; align-items:center; gap:10px; }
  #articles:not(.bp-paged) .bp-lib > .et_pb_column:first-child .bp-cat p::before{ content:'Latest'; flex:0 0 auto; padding:5px 9px 4px; border-radius:6px; font-size:10.5px; line-height:1; letter-spacing:.12em; color:#fff; background:linear-gradient(120deg, var(--gcid-primary-color,#00a1df), var(--gcid-44cxsfm79a,#5b21b6)); }
  /* the image fills the whole left half, cropped (cover), whatever the copy's height */
  #articles:not(.bp-paged) .bp-lib > .et_pb_column:first-child .bp-thumb, #articles:not(.bp-paged) .bp-lib > .et_pb_column:first-child .bp-thumb .et_pb_image_wrap{ height:auto !important; align-self:stretch; display:block; position:relative; }
  #articles:not(.bp-paged) .bp-lib > .et_pb_column:first-child .bp-thumb .et_pb_image_wrap{ position:absolute !important; inset:0; aspect-ratio:auto !important; }
  #articles:not(.bp-paged) .bp-lib > .et_pb_column:first-child .bp-thumb img{ position:absolute; inset:0; width:100% !important; height:100% !important; max-width:none; aspect-ratio:auto !important; object-fit:cover; }
}
.bp-libfilter .pg-wf-cat .et_pb_post_filter__item-option label{ font-size:13.5px !important; padding:8px 13px !important; }
.bp-libfilter .et_pb_post_filter__item-option label i{ display:none !important; }
.bp-libfilter .et_pb_post_filter__item-option label::before, .bp-libfilter .et_pb_post_filter__item-option label::after{ display:none !important; }
/* search and clear share a line under the chips (Divi gives every filter item a full-width flex class) */
.bp-libfilter .pg-wf-search{ flex:1 1 320px !important; width:auto !important; max-width:420px !important; }
.bp-libfilter .pg-wf-reset{ flex:0 0 auto !important; width:auto !important; }
/* categories with no posts (Announcements, Uncategorized; Campus Signals until its first post) */
.bp-libfilter .et_pb_post_filter__item-option:has(input[value=announcements]), .bp-libfilter .et_pb_post_filter__item-option:has(input[value=uncategorized]), .bp-libfilter .et_pb_post_filter__item-option:has(input[value=campus-signals]){ display:none !important; }

/* BP3 · HEat Index band: warm and light (the close below is the dark brand gradient). Text-only issue cards
   (every issue shares one photo); JS sets the issue number apart from the topic, without JS the full title shows */
.bp-heat{ overflow:hidden; position:relative; }
.bp-heat-h{ color:transparent; -webkit-text-fill-color:transparent; background:linear-gradient(110deg, var(--gcid-ptme9asktf,#f58220), var(--gcid-nbbsyygk7n,#e23e21)); -webkit-background-clip:text; background-clip:text; }
.bp-heat-grid > .et_pb_column{ position:relative; }
.bp-heat-grid > .et_pb_column::before{ content:''; position:absolute; left:0; right:0; top:0; height:3px; background:linear-gradient(90deg, var(--gcid-ptme9asktf,#f58220), var(--gcid-nbbsyygk7n,#e23e21)); transform:scaleX(0); transform-origin:left center; transition:transform .45s cubic-bezier(.2,.7,.2,1); }
.bp-heat-grid > .et_pb_column:hover::before{ transform:scaleX(1); }
.bp-heat-grid .bp-card:hover h3{ color:var(--gcid-e9rapnxlep,#d93c20) !important; }
.bp-heat-grid .bp-copy{ padding-right:96px !important; }
.bp-issue-n{ position:absolute; z-index:1; top:20px; right:22px; display:flex; flex-direction:column; align-items:flex-end; font-size:clamp(34px, 3vw, 44px); line-height:.9; pointer-events:none; font-weight:700; letter-spacing:-.03em; color:transparent; -webkit-text-fill-color:transparent; background:linear-gradient(120deg, var(--gcid-ptme9asktf,#f58220), var(--gcid-nbbsyygk7n,#e23e21)); -webkit-background-clip:text; background-clip:text; }
.bp-issue-n small{ font-size:11px; letter-spacing:.14em; text-transform:uppercase; line-height:1; margin-bottom:6px; -webkit-text-fill-color:var(--gcid-wa19oxn853,#b56018); }
/* soft pagination (PAGER_JS): the old page dims while the next one is swapped in */
.bp-pager.bp-loading .bp-lib, .bp-pager.bp-loading .bp-heat-grid{ opacity:.45; transition:opacity .2s; }
.bp-heat-by img{ width:44px; height:44px; border-radius:50%; display:block; box-shadow:0 0 0 3px #fff, 0 6px 16px -6px color-mix(in srgb, var(--gcid-nbbsyygk7n,#e23e21) 45%, transparent); }
.bp-heat-by .et_pb_text_inner{ display:flex; align-items:center; gap:12px; }
.bp-heat-by b{ color:var(--gcid-jsnru5jtk4,#181f38); }

/* BP3b · Overview HEat band: the byline column carries the CTA to the HEat Index page; left-aligned once stacked */
@media (max-width:980px){ .bp-heat-byc{ align-items:flex-start !important; } }

/* BP12 · HEat Index issues: the hero catches fire (Josh, 2026-10-16). POST_JS adds html.bp-heatpost and a
   .bp-fire layer (11 flame tongues, 18 embers) when the post's category is HEat Index; no JS = the ordinary
   hero. Dark ember ground so the fire reads; the title burns (a rolling flame gradient clipped to the
   letters); only translate / scale / opacity / background-position animate. contain:paint clips the layer
   (no overflow declaration: a builder save strips those from this layout's Custom CSS). */
html.bp-heatpost .bp-hero{ background:radial-gradient(90% 75% at 50% 118%, color-mix(in srgb, var(--gcid-e9rapnxlep,#d93c20) 55%, var(--gcid-jsnru5jtk4,#181f38)) 0%, color-mix(in srgb, var(--gcid-jsnru5jtk4,#181f38) 82%, #000) 64%) !important; padding-bottom:132px !important; }
html.bp-heatpost .bp-hero::before{ background:radial-gradient(55% 50% at 50% 104%, color-mix(in srgb, var(--gcid-ptme9asktf,#f58220) 34%, transparent), transparent 70%), radial-gradient(38% 42% at 88% 0%, color-mix(in srgb, var(--gcid-nbbsyygk7n,#e23e21) 14%, transparent), transparent 70%) !important; animation:bp-glow 2.6s ease-in-out infinite alternate; }
@keyframes bp-glow{ from{ opacity:.7; } to{ opacity:1; } }
.bp-fire{ position:absolute; inset:0; z-index:0; pointer-events:none; contain:paint; }
.bp-fire b{ position:absolute; bottom:-84px; left:var(--x); width:var(--w); height:var(--h); margin-left:calc(var(--w) / -2); border-radius:50% 50% 42% 42% / 64% 64% 36% 36%; background:radial-gradient(ellipse 46% 58% at 50% 82%, var(--gcid-qbj05voeup,#fdb913) 0%, var(--gcid-ptme9asktf,#f58220) 34%, color-mix(in srgb, var(--gcid-nbbsyygk7n,#e23e21) 72%, transparent) 58%, transparent 72%); filter:blur(14px); mix-blend-mode:screen; opacity:.85; transform-origin:50% 100%; animation:bp-flame var(--t) ease-in-out var(--dl) infinite; }
@keyframes bp-flame{ 0%, 100%{ scale:1 .8; translate:0 0; opacity:.7; } 28%{ scale:.9 1.1; translate:-7px -8px; opacity:.95; } 52%{ scale:1.06 .94; translate:6px -2px; opacity:.78; } 78%{ scale:.88 1.2; translate:-3px -16px; opacity:1; } }
.bp-fire i{ position:absolute; bottom:56px; left:var(--x); width:var(--s); height:var(--s); border-radius:50%; background:var(--gcid-qbj05voeup,#fdb913); box-shadow:0 0 6px 2px color-mix(in srgb, var(--gcid-ptme9asktf,#f58220) 80%, transparent); opacity:0; animation:bp-ember var(--t) linear var(--dl) infinite; }
@keyframes bp-ember{ 0%{ translate:0 0; opacity:0; } 12%{ opacity:1; } 65%{ opacity:.85; } 100%{ translate:var(--dx) var(--rise); opacity:0; } }
.bp-fire b:nth-of-type(1){ --x:5.6%; --w:165px; --h:190px; --t:1.96s; --dl:-1.84s; }
.bp-fire b:nth-of-type(2){ --x:12.6%; --w:187px; --h:196px; --t:1.61s; --dl:-1.77s; }
.bp-fire b:nth-of-type(3){ --x:21.0%; --w:196px; --h:219px; --t:2.36s; --dl:-1.88s; }
.bp-fire b:nth-of-type(4){ --x:30.8%; --w:210px; --h:212px; --t:2.19s; --dl:-0.36s; }
.bp-fire b:nth-of-type(5){ --x:42.5%; --w:222px; --h:250px; --t:2.24s; --dl:-1.07s; }
.bp-fire b:nth-of-type(6){ --x:51.6%; --w:241px; --h:267px; --t:1.81s; --dl:-0.4s; }
.bp-fire b:nth-of-type(7){ --x:57.4%; --w:237px; --h:250px; --t:1.7s; --dl:-1.16s; }
.bp-fire b:nth-of-type(8){ --x:68.5%; --w:211px; --h:231px; --t:2.77s; --dl:-0.93s; }
.bp-fire b:nth-of-type(9){ --x:78.2%; --w:205px; --h:221px; --t:2.11s; --dl:-1.35s; }
.bp-fire b:nth-of-type(10){ --x:87.7%; --w:188px; --h:201px; --t:2.28s; --dl:-0.59s; }
.bp-fire b:nth-of-type(11){ --x:96.4%; --w:170px; --h:182px; --t:2.15s; --dl:-1.43s; }
.bp-fire i:nth-of-type(1){ --x:73.1%; --s:3px; --t:5.66s; --dl:-0.5s; --dx:-54px; --rise:-328px; }
.bp-fire i:nth-of-type(2){ --x:27.6%; --s:4px; --t:6.0s; --dl:-1.25s; --dx:-16px; --rise:-383px; }
.bp-fire i:nth-of-type(3){ --x:42.6%; --s:3px; --t:4.04s; --dl:-1.73s; --dx:-14px; --rise:-394px; }
.bp-fire i:nth-of-type(4){ --x:32.9%; --s:5px; --t:5.1s; --dl:-0.86s; --dx:11px; --rise:-264px; }
.bp-fire i:nth-of-type(5){ --x:20.9%; --s:2px; --t:5.42s; --dl:-3.99s; --dx:-26px; --rise:-313px; }
.bp-fire i:nth-of-type(6){ --x:67.6%; --s:3px; --t:6.85s; --dl:-3.75s; --dx:39px; --rise:-374px; }
.bp-fire i:nth-of-type(7){ --x:45.7%; --s:4px; --t:7.26s; --dl:-5.21s; --dx:-33px; --rise:-364px; }
.bp-fire i:nth-of-type(8){ --x:57.1%; --s:4px; --t:5.41s; --dl:-3.72s; --dx:-26px; --rise:-307px; }
.bp-fire i:nth-of-type(9){ --x:25.7%; --s:5px; --t:3.78s; --dl:-3.53s; --dx:-8px; --rise:-337px; }
.bp-fire i:nth-of-type(10){ --x:76.3%; --s:5px; --t:3.88s; --dl:-4.22s; --dx:-31px; --rise:-239px; }
.bp-fire i:nth-of-type(11){ --x:74.5%; --s:3px; --t:5.4s; --dl:-1.11s; --dx:54px; --rise:-368px; }
.bp-fire i:nth-of-type(12){ --x:48.9%; --s:5px; --t:5.2s; --dl:-3.77s; --dx:58px; --rise:-353px; }
.bp-fire i:nth-of-type(13){ --x:9.4%; --s:2px; --t:5.2s; --dl:-3.92s; --dx:53px; --rise:-225px; }
.bp-fire i:nth-of-type(14){ --x:58.3%; --s:3px; --t:5.44s; --dl:-0.13s; --dx:10px; --rise:-389px; }
.bp-fire i:nth-of-type(15){ --x:7.7%; --s:3px; --t:5.35s; --dl:-1.46s; --dx:14px; --rise:-385px; }
.bp-fire i:nth-of-type(16){ --x:74.1%; --s:5px; --t:3.92s; --dl:-1.43s; --dx:38px; --rise:-338px; }
.bp-fire i:nth-of-type(17){ --x:25.5%; --s:3px; --t:6.0s; --dl:-3.3s; --dx:-38px; --rise:-280px; }
.bp-fire i:nth-of-type(18){ --x:40.3%; --s:4px; --t:6.95s; --dl:-3.77s; --dx:52px; --rise:-275px; }
@media (max-width:767px){ .bp-fire b:nth-of-type(odd){ display:none; } .bp-fire i:nth-of-type(n+11){ display:none; } }
html.bp-heatpost .bp-hero h1{ color:transparent !important; -webkit-text-fill-color:transparent; background:linear-gradient(0deg, var(--gcid-nbbsyygk7n,#e23e21) 0%, var(--gcid-ptme9asktf,#f58220) 30%, var(--gcid-qbj05voeup,#fdb913) 50%, var(--gcid-ptme9asktf,#f58220) 70%, var(--gcid-nbbsyygk7n,#e23e21) 100%) 0 0 / 100% 2.4em repeat-y; -webkit-background-clip:text; background-clip:text; filter:drop-shadow(0 0 26px color-mix(in srgb, var(--gcid-ptme9asktf,#f58220) 42%, transparent)); animation:bp-burn 5s linear infinite; }
@keyframes bp-burn{ from{ background-position:0 0; } to{ background-position:0 -2.4em; } }
html.bp-heatpost .bp-hero .et_pb_text_inner, html.bp-heatpost .bp-hero .et_pb_text_inner p, html.bp-heatpost .bp-hero .et_pb_text_inner a{ color:color-mix(in srgb, #fff 80%, transparent) !important; }
html.bp-heatpost .bp-hero .et_pb_text_inner b, html.bp-heatpost .bp-hero .et_pb_text_inner strong{ color:#fff !important; }
html.bp-heatpost .bp-hero .bp-pill .bp-cats{ color:var(--gcid-qbj05voeup,#fdb913) !important; background:color-mix(in srgb, var(--gcid-ptme9asktf,#f58220) 16%, transparent); box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--gcid-ptme9asktf,#f58220) 42%, transparent); }
html.bp-heatpost .bp-hero .bp-rt::before{ background:color-mix(in srgb, var(--gcid-ptme9asktf,#f58220) 70%, transparent); }
html.bp-heatpost .bp-av img{ box-shadow:0 0 0 3px color-mix(in srgb, var(--gcid-ptme9asktf,#f58220) 60%, transparent), 0 0 22px -4px var(--gcid-ptme9asktf,#f58220); }
/* every issue shares one photo: no bezel, the burning title takes the row (Josh, 2026-10-16) */
html.bp-heatpost .bp-hero .hero-bezel{ display:none !important; }
html.bp-heatpost .bp-hero .et_pb_row > .et_pb_column:first-child{ flex-basis:100% !important; max-width:none !important; width:100% !important; }
html.bp-heatpost .bp-hero .et_pb_heading, html.bp-heatpost .bp-hero h1{ max-width:none !important; width:100%; }
@media (prefers-reduced-motion:reduce){
  html.bp-heatpost .bp-hero h1, html.bp-heatpost .bp-hero::before, .bp-fire b{ animation:none !important; }
  .bp-fire i{ display:none; }
}
@media print{ .bp-fire{ display:none !important; } }

/* BP13 · The HEat Index page (59045, page_heat.py): warm hero mesh; the newest issue is the bezel, its
   number set huge above the topic (ISSUE_JS); the archive below is the overview band at full size */
.bp-heathero::before{ background:radial-gradient(60% 65% at 88% 6%, color-mix(in srgb, var(--gcid-nbbsyygk7n,#e23e21) 18%, transparent), transparent 68%), radial-gradient(48% 55% at 6% 20%, color-mix(in srgb, var(--gcid-qbj05voeup,#fdb913) 22%, transparent), transparent 68%), radial-gradient(42% 42% at 70% 96%, color-mix(in srgb, var(--gcid-ptme9asktf,#f58220) 24%, transparent), transparent 70%) !important; }
.bp-heatlead{ position:relative; cursor:pointer; background:radial-gradient(90% 80% at 100% 0%, var(--gcid-io96w7vv0a,#fef2e9), #fff 72%) !important; }
.bp-heatlead::before{ content:''; position:absolute; z-index:1; left:0; right:0; top:0; height:4px; background:linear-gradient(90deg, var(--gcid-qbj05voeup,#fdb913), var(--gcid-ptme9asktf,#f58220), var(--gcid-nbbsyygk7n,#e23e21)); }
.bp-heatlead .bp-issue-n{ position:static; order:-1; align-items:flex-start; margin:14px 0 0 22px; font-size:clamp(76px, 8vw, 128px); line-height:.86; }
.bp-heatlead .bp-issue-n small{ font-size:12px; margin-bottom:12px; }
.bp-heatlead h2{ transition:color .2s; }
.bp-heatlead:hover h2{ color:var(--gcid-e9rapnxlep,#d93c20) !important; }
.bp-heatlead .bp-go i{ display:inline-block; margin-left:4px; transition:translate .45s cubic-bezier(.34,1.56,.64,1); }
.bp-heatlead:hover .bp-go i{ translate:4px 0; }
.bp-heatlead .bp-tag{ display:inline-block; margin-right:10px; padding:5px 9px 4px; border-radius:6px; font-size:10.5px; line-height:1; letter-spacing:.12em; color:#fff; background:linear-gradient(120deg, var(--gcid-ptme9asktf,#f58220), var(--gcid-nbbsyygk7n,#e23e21)); }

/* BP4 · Subscribe card (overview hero bezel, post band): native form to the Pardot form handler */
.bp-sub{ padding:clamp(18px, 2.4vw, 30px); border-radius:14px; background:linear-gradient(160deg, var(--gcid-t64a7fyhrj,#f7f8fa), #fff 70%); }
.bp-sub-head{ display:flex; align-items:center; gap:14px; margin-bottom:12px; }
.bp-sub-head i{ width:44px; height:44px; flex:0 0 44px; display:grid; place-items:center; border-radius:12px; font-size:18px !important; color:var(--gcid-kab8b92l3p,#006186); background:var(--gcid-qn9g9agfus,#e6f6fc); }
.bp-sub-head b{ font-size:20px; line-height:1.25; color:var(--gcid-jsnru5jtk4,#181f38); }
.bp-sub > p{ margin:0 0 16px !important; padding:0 !important; font-size:15px; line-height:1.55; color:var(--gcid-xikl310sb5,#4f5d7d); }
.bp-sub ul{ list-style:none; margin:0 0 18px !important; padding:0 !important; }
.bp-sub li{ display:flex; gap:10px; align-items:baseline; padding:7px 0 !important; border-top:1px solid var(--gcid-qrz128uq7x,#eef0f5); font-size:14.5px; line-height:1.45; color:var(--gcid-jsnru5jtk4,#181f38); }
.bp-sub li:first-child{ border-top:0; }
.bp-sub li i{ font-size:13px !important; line-height:1 !important; color:var(--gcid-primary-color,#00a1df); }
.bp-sub form{ display:flex; gap:8px; flex-wrap:wrap; margin:0; }
.bp-sub label{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.bp-sub input[type=email]{ flex:1 1 220px; min-width:0; height:48px; padding:0 18px !important; border-radius:999px !important; border:1px solid var(--gcid-21s6qw6he2,#dde2ea) !important; background:#fff !important; color:var(--gcid-jsnru5jtk4,#181f38) !important; font:inherit; font-size:15px; }
.bp-sub input[type=email]:focus{ outline:2px solid var(--gcid-primary-color,#00a1df); outline-offset:1px; }
.bp-sub button{ height:48px; padding:0 22px; border:0; border-radius:999px; cursor:pointer; font:700 15px/1 'TT Norms Pro',sans-serif; color:#fff; background:var(--gcid-jsnru5jtk4,#181f38); transition:background .2s, translate .2s; }
.bp-sub button:hover{ background:var(--gcid-kab8b92l3p,#006186); translate:0 -2px; }
.bp-sub .bp-sub-ok{ display:none; align-items:center; gap:10px; font-weight:600; color:var(--gcid-jsnru5jtk4,#181f38); }
.bp-sub .bp-sub-ok i{ color:var(--gcid-primary-color,#00a1df); }
.bp-sub.done form{ display:none; }
.bp-sub.done .bp-sub-ok{ display:flex; }
.bp-sub small{ display:block; margin-top:10px; font-size:12.5px; color:var(--gcid-xikl310sb5,#4f5d7d); }
.bp-sub small a{ color:inherit; text-decoration:underline; text-underline-offset:2px; }
.bp-subband .bp-sub{ background:#fff; }

/* BP5 · Post hero: category pill + reading time, the title, the byline; the featured image in the bezel */
.bp-hero .bp-pill p{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.bp-hero .bp-pill .bp-cats{ padding:6px 12px; border-radius:999px; color:var(--gcid-kab8b92l3p,#006186); background:var(--gcid-qn9g9agfus,#e6f6fc); }
.bp-hero .bp-rt:empty{ display:none; }
.bp-hero .bp-rt::before{ content:''; display:inline-block; width:4px; height:4px; margin:0 10px 3px 0; border-radius:50%; background:var(--gcid-2mtow0rh2g,#9aa5bc); }
.bp-av img{ width:44px !important; height:44px !important; border-radius:50%; display:block; margin:0 !important; box-shadow:0 0 0 3px #fff, 0 6px 16px -6px color-mix(in srgb, var(--gcid-jsnru5jtk4,#181f38) 45%, transparent); }
.bp-av .et_pb_text_inner, .bp-av p{ line-height:0 !important; }
.bp-hero .hero-bezel .et_pb_image, .bp-hero .hero-bezel .et_pb_image_wrap{ width:100%; }
.bp-hero .hero-bezel img{ display:block; width:100%; aspect-ratio:16 / 10; object-fit:cover; border-radius:12px; }
/* no featured image: no empty bezel, the copy takes the row */
.bp-hero .hero-bezel:not(:has(img)){ display:none !important; }
.bp-hero .et_pb_row:has(.hero-bezel:not(:has(img))) > .et_pb_column:first-child{ flex-basis:100% !important; max-width:820px; }

/* BP6 · The article: sticky rail (contents + share) beside an editorial measure */
.bp-rail{ position:sticky; top:132px; align-self:flex-start; }
@media (max-width:980px){ .bp-rail{ position:static; } }
.bp-toc ol{ list-style:none; margin:0 !important; padding:0 !important; border-left:2px solid var(--gcid-qrz128uq7x,#eef0f5); }
.bp-toc li{ padding:0 !important; margin:0 !important; }
.bp-toc a{ display:block; margin-left:-2px; padding:7px 0 7px 16px; border-left:2px solid transparent; font-size:14.5px; line-height:1.4; color:var(--gcid-xikl310sb5,#4f5d7d); text-decoration:none; transition:color .2s, border-color .2s; }
.bp-toc a:hover{ color:var(--gcid-jsnru5jtk4,#181f38); }
/* no weight change on the current entry: bold re-wraps the line as you scroll */
.bp-toc a.on{ color:var(--gcid-jsnru5jtk4,#181f38); border-left-color:var(--gcid-primary-color,#00a1df); }
.bp-toc-wrap:not(.has){ display:none; }
.bp-share-wrap:not(.has){ display:none; }
.bp-share{ display:flex; gap:8px; flex-wrap:wrap; }
.bp-share a, .bp-share button{ width:40px; height:40px; display:grid; place-items:center; border-radius:50%; border:1px solid var(--gcid-qrz128uq7x,#eef0f5); background:#fff; color:var(--gcid-jsnru5jtk4,#181f38); font-size:15px; cursor:pointer; text-decoration:none; transition:border-color .2s, color .2s, translate .2s; }
.bp-share a:hover, .bp-share button:hover{ border-color:var(--gcid-primary-color,#00a1df); color:var(--gcid-kab8b92l3p,#006186); translate:0 -2px; }
.bp-share button.ok{ border-color:var(--gcid-primary-color,#00a1df); color:#fff; background:var(--gcid-primary-color,#00a1df); }
/* phones and tablets: the contents collapse behind their label (JS makes it a button) */
@media (max-width:980px){
  .bp-js .bp-toc-wrap .bp-toc{ display:none; }
  .bp-js .bp-toc-wrap.open .bp-toc{ display:block; }
  .bp-js .bp-toc-toggle{ cursor:pointer; }
  .bp-js .bp-toc-toggle p::after{ content:'+'; float:right; font-size:18px; line-height:.8; color:var(--gcid-kab8b92l3p,#006186); }
  .bp-js .bp-toc-wrap.open .bp-toc-toggle p::after{ content:'–'; }
}
@media (max-width:980px){
  .bp-rail{ border:1px solid var(--gcid-qrz128uq7x,#eef0f5); border-radius:16px; padding:18px 20px !important; background:var(--gcid-t64a7fyhrj,#f7f8fa); }
}

/* BP7 · The body copy. Font, size, colour, and heading scale are the Post Content module's own settings;
   these rules are what Divi cannot express: the measure, list markers, quotes, figures, callouts */
.bp-body{ max-width:740px; }
/* the post is itself Divi sections/rows: inside the article column they lose their own width and padding */
.bp-body .et_pb_section{ padding:0 !important; margin:0 !important; background:none !important; }
.bp-body .et_pb_row{ width:100% !important; max-width:none !important; padding:0 !important; margin:0 !important; }
.bp-body .et_pb_column{ margin:0 !important; }
.bp-body .et_pb_module{ margin-bottom:0 !important; }
/* the posts' text preset names 'TT Norms Pro Bold' / 'TT Norms Pro Regular' as families; only 'TT Norms Pro'
   is a registered face (weights inside it), so headings fell back to Helvetica. Pin the real family. */
.bp-body h1, .bp-body h2, .bp-body h3, .bp-body h4, .bp-body h5, .bp-body h6{ font-family:'TT Norms Pro', Helvetica, Arial, sans-serif !important; font-weight:700 !important; }
.bp-body p, .bp-body li, .bp-body blockquote, .bp-body td, .bp-body th{ font-family:'TT Norms Pro', Helvetica, Arial, sans-serif !important; }
.bp-body .et_pb_post_content > *{ max-width:100%; }
.bp-body p{ padding-bottom:1.15em !important; }
/* the lead: first paragraph of a Text module — never a .bp-credit footnote (its own small Text module) */
.bp-body .et_pb_text:not(.bp-credit) .et_pb_text_inner > p:first-child, .bp-body .et_pb_post_content > p:first-of-type{ font-size:clamp(19px, 1.5vw, 21px); line-height:1.6; color:var(--gcid-jsnru5jtk4,#181f38); }
.bp-body h2, .bp-body h3, .bp-body h4, .bp-body h5{ scroll-margin-top:140px; padding-bottom:.45em !important; margin-top:1.4em; text-wrap:balance; }
.bp-body h2{ position:relative; padding-top:.9em !important; border-top:1px solid var(--gcid-qrz128uq7x,#eef0f5); }
.bp-body h2::before{ content:''; position:absolute; left:0; top:-1px; width:48px; height:3px; border-radius:2px; background:linear-gradient(90deg, var(--gcid-primary-color,#00a1df), var(--gcid-44cxsfm79a,#5b21b6)); }
.bp-body h5{ font-size:clamp(20px, 1.8vw, 24px) !important; }
.bp-body a{ text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; text-decoration-color:color-mix(in srgb, currentColor 40%, transparent); transition:text-decoration-color .2s, color .2s; }
.bp-body a:hover{ text-decoration-color:currentColor; }
.bp-body ul, .bp-body ol{ padding:0 0 1.15em 1.3em !important; }
.bp-body li{ padding:0 0 .45em .2em !important; line-height:1.65; }
.bp-body ul li::marker{ color:var(--gcid-primary-color,#00a1df); }
.bp-body ol li::marker{ color:var(--gcid-kab8b92l3p,#006186); font-weight:700; }
.bp-body li i{ font-size:inherit !important; }
.bp-body strong, .bp-body b{ color:var(--gcid-jsnru5jtk4,#181f38); }
.bp-body img{ height:auto; border-radius:14px; }
.bp-body figure, .bp-body .wp-caption{ max-width:100% !important; margin:1.6em 0 !important; }
.bp-body figcaption, .bp-body .wp-caption-text{ margin-top:10px; font-size:14px; color:var(--gcid-xikl310sb5,#4f5d7d); text-align:left; }
.bp-body blockquote{ position:relative; margin:1.8em 0 !important; padding:4px 0 4px 28px !important; border:0 !important; border-left:3px solid var(--gcid-primary-color,#00a1df) !important; font-size:clamp(20px, 1.7vw, 24px); line-height:1.45; font-weight:600; color:var(--gcid-jsnru5jtk4,#181f38); }
.bp-body blockquote p:last-child{ padding-bottom:0 !important; }
.bp-body hr{ border:0; height:1px; margin:2em 0; background:var(--gcid-qrz128uq7x,#eef0f5); }
.bp-body table{ width:100%; border-collapse:collapse; margin:0 0 1.4em !important; font-size:15px; border:1px solid var(--gcid-21s6qw6he2,#dde2ea) !important; }
.bp-body th, .bp-body td{ padding:10px 14px !important; border:1px solid var(--gcid-qrz128uq7x,#eef0f5) !important; text-align:left; }
.bp-body th{ background:var(--gcid-t64a7fyhrj,#f7f8fa); }
.bp-body iframe{ max-width:100%; border-radius:14px; }
/* the house callout the editors already use (.ddx-tip-box) */
.bp-body .ddx-tip-box{ display:flex; gap:16px; align-items:flex-start; margin:1.6em 0 2em; padding:20px 22px; border-radius:16px; border:1px solid color-mix(in srgb, var(--gcid-44cxsfm79a,#5b21b6) 22%, #fff); background:color-mix(in srgb, var(--gcid-41brwfgpe1,#efe9f8) 70%, #fff); }
.bp-body .ddx-tip-box > i{ flex:0 0 40px; width:40px; height:40px; display:grid; place-items:center; border-radius:12px; font-size:16px !important; color:#fff; background:var(--gcid-44cxsfm79a,#5b21b6); }
.bp-body .ddx-tip-box p{ padding:0 !important; margin:0; font-size:16px; line-height:1.6; }
/* author box (Molongui) as a quiet card under the article. Molongui styles it as a dark box (white text,
   grey drop shadow); every text node is recoloured here, the '+ posts' toggle (opens the author's other
   posts) reads as a link */
.bp-author .m-a-box{ margin:0 !important; }
.bp-author .m-a-box .m-a-box-container{ border:1px solid var(--gcid-qrz128uq7x,#eef0f5) !important; border-radius:20px !important; background:var(--gcid-t64a7fyhrj,#f7f8fa) !important; padding:22px !important; box-shadow:none !important; }
.bp-author .m-a-box .m-a-box-container, .bp-author .m-a-box .m-a-box-container *{ color:var(--gcid-xikl310sb5,#4f5d7d) !important; }
.bp-author .m-a-box .m-a-box-avatar img{ border-radius:50% !important; }
.bp-author .m-a-box .m-a-box-name h5, .bp-author .m-a-box .m-a-box-name h5 *, .bp-author .m-a-box .m-a-box-name a{ font-size:19px !important; padding-bottom:2px !important; color:var(--gcid-jsnru5jtk4,#181f38) !important; text-decoration:none; }
.bp-author .m-a-box .m-a-box-meta, .bp-author .m-a-box .m-a-box-meta *{ font-size:14.5px !important; line-height:1.5 !important; font-weight:500 !important; }
.bp-author .m-a-box .m-a-box-meta-divider{ color:var(--gcid-2mtow0rh2g,#9aa5bc) !important; }
.bp-author .m-a-box a.m-a-box-data-toggle, .bp-author .m-a-box a.m-a-box-data-toggle *{ color:var(--gcid-oszp2ogk5s,#0081b2) !important; text-decoration:underline; text-underline-offset:3px; }
.bp-author .m-a-box .m-a-box-bio, .bp-author .m-a-box .m-a-box-bio *{ font-size:15px !important; line-height:1.6 !important; color:var(--gcid-xikl310sb5,#4f5d7d) !important; }
.bp-author .m-a-box .m-a-box-related a, .bp-author .m-a-box .m-a-box-related a *{ color:var(--gcid-oszp2ogk5s,#0081b2) !important; }

/* BP8 · Comments: Divi's comments module in the article measure */
.bp-comments{ max-width:740px; }
.bp-comments h1.page_title, .bp-comments #comments{ font-size:24px !important; }
.bp-comments .comment-body{ padding:20px 0 !important; border-top:1px solid var(--gcid-qrz128uq7x,#eef0f5); }
.bp-comments input, .bp-comments textarea{ border-radius:12px !important; }

/* BP9 · Reading progress: a hairline under the header, filled as you read (JS moves it to body) */
.bp-progress{ position:fixed; z-index:9990; left:0; right:0; top:0; height:3px; pointer-events:none; opacity:0; transition:opacity .3s; }
.bp-js .bp-progress.on{ opacity:1; }
.bp-progress i{ display:block; height:100%; transform-origin:left center; transform:scaleX(0); background:linear-gradient(90deg, var(--gcid-primary-color,#00a1df), var(--gcid-44cxsfm79a,#5b21b6)); }
@media print{ .bp-progress, .bp-rail, .bp-subband, .bp-more{ display:none !important; } }

/* BP10 · Reveal on scroll, the home curve */
@supports (animation-timeline: view()){
  .bp-lib > .et_pb_column, .bp-heat-grid > .et_pb_column, .bp-more-grid > .et_pb_column, .bp-body blockquote, .bp-body .ddx-tip-box{ animation:home-rise .6s cubic-bezier(.2,.7,.2,1) both; animation-timeline:view(); animation-range:entry 0% entry 30%; }
}
@media (prefers-reduced-motion:reduce){
  .bp-lib > .et_pb_column, .bp-heat-grid > .et_pb_column, .bp-more-grid > .et_pb_column, .bp-body blockquote, .bp-body .ddx-tip-box{ animation:none; }
  .bp-thumb img, .bp-go i, .bp-share a, .bp-share button, .bp-sub button, .bp-heat-grid > .et_pb_column, .bp-heat-grid > .et_pb_column::before{ transition:none !important; }
}

/* BP11 · Theme Builder bodies: Divi's per-module button rule (body.et-db #page-container #et-boc .et-l
   .et_pb_button_N_tb_body:after, ETmodules !important) ties the kit arrow rule on two IDs and can come later
   in the same sheet, leaving the FA chevron code point in ETmodules (a box). A third ID wins every time;
   the TB header sits outside #et-main-area. */
/* scoped to the blog family (posts, webinars, blog, HEat, news) since the site stylesheet loads everywhere */
body:is(.single-post, .single-webinar, .page-id-58679, .page-id-59045, .page-id-59253) #page-container #et-boc #et-main-area .et_pb_section .et_pb_button.et_pb_button.et_pb_module:after{ font-family:'Font Awesome 7 Pro' !important; font-weight:400 !important; }

/* ===== layer: news ===== */
/* ===========================================================================
   NEWS — the newsroom page (post 59253, page_news.py), on top of kit + home v3 + pages.css + blog.css.
   Double-brace token-name placeholders are resolved to var(--gcid-…, fallback) by the generator.
   Single quotes only, no backslashes (freeForm strips both).
   Every item (.nr-item) gets a product class (.pg-p-KEY: --pc solid, --pd deep, --pt tint) and a type
   class (.nr-k-TYPE) from NEWS_JS; without JS it keeps the brand defaults below.
   =========================================================================== */

/* NR1 · defaults before the script has sorted an item */
.nr-item:not([class*=pg-p-]){ --pc:var(--gcid-primary-color,#00a1df); --pd:var(--gcid-kab8b92l3p,#006186); --pt:var(--gcid-qn9g9agfus,#e6f6fc); }
.nr-item{ cursor:pointer; }
.nr-item h2, .nr-item h3{ transition:color .2s; }
.nr-card:hover h3, .nr-row:hover h3, .nr-lead:hover h2{ color:var(--pd) !important; }

/* NR2 · the art panel: tinted dot grid, product chip, year, the big number (or word), two rings */
.nr-art{ margin:0 !important; position:relative; overflow:hidden; aspect-ratio:16 / 10;
  background:radial-gradient(circle at 1px 1px, color-mix(in srgb, var(--pd) 22%, transparent) 1px, transparent 1.6px) 0 0 / 16px 16px,
             linear-gradient(150deg, var(--pt) 0%, #fff 80%); }
.nr-art .et_pb_text_inner{ position:absolute; inset:0; }
.nr-art-fb{ position:absolute; inset:0; display:grid; place-items:center; font-size:44px; color:color-mix(in srgb, var(--pd) 35%, transparent); }
.nr-art-in{ position:absolute; inset:0; display:block; }
.nr-art-top{ position:absolute; z-index:2; top:18px; left:18px; display:inline-flex; align-items:center; gap:9px; padding:5px 13px 5px 5px; border-radius:999px; background:#fff; font-size:12.5px; font-weight:700; line-height:1; color:var(--gcid-jsnru5jtk4,#181f38); box-shadow:0 8px 20px -12px color-mix(in srgb, var(--pd) 70%, transparent); }
.nr-art-top i{ width:24px; height:24px; display:grid; place-items:center; border-radius:50%; font-size:11px !important; color:#fff; background:var(--pc); }
.pg-p-ic .nr-art-top i{ color:var(--gcid-jsnru5jtk4,#181f38); }
.nr-art-y{ position:absolute; z-index:2; top:24px; right:22px; font-size:12px; font-weight:700; letter-spacing:.14em; line-height:1; color:color-mix(in srgb, var(--pd) 70%, transparent); font-variant-numeric:tabular-nums; }
.nr-art-in b{ position:absolute; z-index:1; left:18px; right:18px; bottom:12px; font-weight:700; line-height:.88; letter-spacing:-.045em; white-space:nowrap; font-variant-numeric:tabular-nums;
  color:transparent; -webkit-text-fill-color:transparent; background:linear-gradient(115deg, var(--pc), var(--pd) 70%); -webkit-background-clip:text; background-clip:text;
  transition:translate .55s cubic-bezier(.2,.7,.2,1); }
.nr-big-n{ font-size:clamp(60px, 6.4vw, 98px); }
.nr-art-in b.nr-big-w{ font-size:clamp(28px, 2.7vw, 40px); line-height:1.02; letter-spacing:-.03em; white-space:normal; bottom:20px; right:34%; }
.nr-ring{ position:absolute; right:-80px; bottom:-100px; width:270px; height:270px; border-radius:50%; border:1px solid color-mix(in srgb, var(--pc) 38%, transparent); transition:scale .8s cubic-bezier(.2,.7,.2,1); }
.nr-ring2{ right:-24px; bottom:-44px; width:170px; height:170px; border:0; background:radial-gradient(circle, color-mix(in srgb, var(--pc) 26%, transparent), transparent 70%); }
.nr-item:hover .nr-ring{ scale:1.12; }
.nr-item:hover .nr-art-in b{ translate:5px 0; }

/* NR3 · the hero bezel: the newest post on a dark panel, glowing in its product colour */
.nr-lead .nr-art{ aspect-ratio:16 / 9; border-radius:12px;
  background:radial-gradient(circle at 1px 1px, rgba(255,255,255,.10) 1px, transparent 1.6px) 0 0 / 18px 18px,
             radial-gradient(110% 90% at 100% 0%, color-mix(in srgb, var(--pc) 78%, transparent), transparent 62%),
             radial-gradient(80% 80% at 0% 100%, color-mix(in srgb, var(--pd) 60%, transparent), transparent 62%),
             var(--gcid-qt842el5mi,#00202d); }
.nr-lead .nr-art-fb{ color:rgba(255,255,255,.4); }
.nr-lead .nr-art-y{ color:rgba(255,255,255,.62); }
.nr-lead .nr-art-in b{ background:linear-gradient(115deg, #fff 35%, color-mix(in srgb, #fff 50%, var(--pc))); -webkit-background-clip:text; background-clip:text; }
.nr-lead .nr-big-n{ font-size:clamp(76px, 8.4vw, 136px); }
.nr-lead .nr-art-in b.nr-big-w{ font-size:clamp(34px, 3.4vw, 54px); }
.nr-lead .nr-ring{ border-color:rgba(255,255,255,.2); animation:nr-breathe 7s ease-in-out infinite alternate; }
.nr-lead .nr-ring2{ background:radial-gradient(circle, rgba(255,255,255,.16), transparent 70%); animation-delay:-3.5s; }
@keyframes nr-breathe{ from{ scale:1; } to{ scale:1.14; } }
.nr-lead .bp-go{ color:var(--gcid-jsnru5jtk4,#181f38); }

/* NR4 · meta line: Latest tag, type (product deep colour), date */
.nr-meta p, .nr-meta .et_pb_text_inner{ display:flex; flex-wrap:wrap; align-items:center; gap:4px 10px; }
.nr-kind{ color:var(--pd); font-weight:700; }
.nr-meta .nr-date::before{ content:'·'; margin-right:10px; color:var(--gcid-xikl310sb5,#4f5d7d); }
.nr-tag{ padding:5px 9px 4px; border-radius:6px; font-size:10.5px; line-height:1; letter-spacing:.12em; text-transform:uppercase; color:#fff; background:linear-gradient(120deg, var(--gcid-primary-color,#00a1df), var(--gcid-44cxsfm79a,#5b21b6)); }

/* NR5 · recent: the loop's first post is already the hero's, so the grid shows the next three */
.nr-recent > .et_pb_column:first-child{ display:none !important; }
@media (min-width:768px) and (max-width:980px){
  .nr-recent > .et_pb_column:nth-child(4){ grid-column:span 2; }
  .nr-recent > .et_pb_column:nth-child(4) .nr-art{ aspect-ratio:21 / 8; }
}

/* NR6 · archive: timeline rows (date · type · title · arrow) with year headers from the script */
.nr-list > .nr-row{ display:grid !important; grid-template-columns:150px 230px minmax(0, 1fr) 24px; align-items:center; column-gap:24px; position:relative; transition:background .2s; }
/* the filter hides rows with .pg-woff (pages.css, one class); the grid rule above outranks it, so restate it here */
.nr-list > .nr-row.pg-woff{ display:none !important; }
.nr-list > .nr-row > .et_pb_module{ margin:0 !important; width:auto !important; }
.nr-list > .nr-row::before{ content:''; position:absolute; left:0; top:14px; bottom:14px; width:3px; border-radius:3px; background:var(--pc); transform:scaleY(0); transition:transform .3s cubic-bezier(.2,.7,.2,1); }
.nr-list > .nr-row:hover{ background:#fff; }
.nr-list > .nr-row:hover::before{ transform:scaleY(1); }
.nr-rdate p{ font-variant-numeric:tabular-nums; }
.nr-rkind .nr-kind{ display:inline-flex; align-items:center; gap:9px; }
.nr-rkind .nr-kind::before{ content:''; width:9px; height:9px; flex:0 0 9px; border-radius:50%; background:var(--pc); box-shadow:0 0 0 4px color-mix(in srgb, var(--pc) 18%, transparent); }
.nr-rgo i{ display:inline-block; transition:translate .45s cubic-bezier(.34,1.56,.64,1); }
.nr-row:hover .nr-rgo i{ translate:4px 0; }
.nr-yh{ display:flex; align-items:baseline; gap:16px; padding:48px 12px 14px; }
.nr-list > .nr-yh:first-child{ padding-top:4px; }
.nr-yh b{ font-size:clamp(34px, 3.4vw, 50px); font-weight:700; line-height:1; letter-spacing:-.035em; font-variant-numeric:tabular-nums; color:transparent; -webkit-text-fill-color:transparent; background:linear-gradient(120deg, var(--gcid-primary-color,#00a1df), var(--gcid-44cxsfm79a,#5b21b6)); -webkit-background-clip:text; background-clip:text; }
.nr-yh span{ font-size:14px; font-weight:600; color:var(--gcid-xikl310sb5,#4f5d7d); }
@media (max-width:767px){
  .nr-list > .nr-row{ grid-template-columns:auto minmax(0, 1fr); row-gap:6px; column-gap:14px; }
  .nr-list > .nr-row > .et_pb_heading{ grid-column:1 / -1; }
  .nr-list > .nr-row > .nr-rgo{ display:none; }
  .nr-yh{ padding-top:36px; }
}

/* NR7 · a type with no posts in the twelve-month window is not offered at all */
.nr-filter .pg-fchip.off{ display:none; }

@media (prefers-reduced-motion:reduce){
  .nr-lead .nr-ring{ animation:none; }
  .nr-ring, .nr-art-in b, .nr-list > .nr-row::before{ transition:none; }
}

/* ===== layer: case-study ===== */
/* ===========================================================================
   CASE STUDY — the story layer (page_case_study.py), on top of kit + home v3 + pages.css.
   Double-brace token-name placeholders are resolved to var(--gcid-…, fallback) by the generator, so every
   colour tracks the Variable Manager. Single quotes only, no backslashes (freeForm strips both).
   =========================================================================== */

/* CS0 · The child theme's single-project.php prints the raw ACF profile fields after the content;
   the story shows them in its own profile band */
.single-project .acf-field{ display:none; }

/* CS1 · Hero bezel: the short version (three outcomes), readable, not art */
.cs-tldr{ padding:clamp(18px, 2.4vw, 30px); border-radius:14px; background:linear-gradient(160deg, var(--gcid-t64a7fyhrj,#f7f8fa), #fff 70%); }
.cs-tldr-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; font:700 12px/1.2 'TT Norms Pro',sans-serif; letter-spacing:.12em; text-transform:uppercase; color:var(--gcid-xikl310sb5,#4f5d7d); }
.cs-tldr-head em{ font-style:normal; letter-spacing:.06em; padding:4px 9px; border-radius:999px; color:var(--gcid-e9rapnxlep,#d93c20); background:var(--gcid-k1cbm3bv9k,#fcece9); }
.cs-tldr ol{ list-style:none; margin:0 !important; padding:0 !important; counter-reset:cs; }
.cs-tldr li{ display:grid; grid-template-columns:44px 1fr; gap:16px; align-items:start; padding:16px 0 !important; border-top:1px solid var(--gcid-qrz128uq7x,#eef0f5); counter-increment:cs; font-size:15px; line-height:1.5; color:var(--gcid-jsnru5jtk4,#181f38); }
.cs-tldr li:first-child{ border-top:0; }
.cs-tldr li i{ width:44px; height:44px; display:grid; place-items:center; border-radius:12px; font-size:18px !important; line-height:1 !important; color:var(--gcid-kab8b92l3p,#006186); background:var(--gcid-qn9g9agfus,#e6f6fc); transition:background .25s, color .25s, scale .25s; }
.cs-tldr li:nth-child(2) i{ color:var(--gcid-e9rapnxlep,#d93c20); background:var(--gcid-k1cbm3bv9k,#fcece9); }
.cs-tldr li:nth-child(3) i{ color:var(--gcid-v3pwvrjuje,#5b21b6); background:var(--gcid-41brwfgpe1,#efe9f8); }
.cs-tldr li b{ display:block; font-size:17px; line-height:1.3; margin-bottom:2px; }
.cs-tldr li span{ color:var(--gcid-xikl310sb5,#4f5d7d); }
.hero-bezel:hover .cs-tldr li i{ scale:1.06; }
.cs-tldr-foot{ display:flex; gap:10px; flex-wrap:wrap; margin-top:6px; padding-top:16px; border-top:1px solid var(--gcid-qrz128uq7x,#eef0f5); }
.cs-tldr-foot a{ display:inline-flex; align-items:center; gap:8px; font:700 13px/1 'TT Norms Pro',sans-serif; padding:10px 14px; border-radius:999px; color:var(--gcid-jsnru5jtk4,#181f38); background:#fff; border:1px solid var(--gcid-qrz128uq7x,#eef0f5); text-decoration:none; transition:border-color .2s, color .2s, translate .2s; }
.cs-tldr-foot a:hover{ border-color:var(--gcid-primary-color,#00a1df); color:var(--gcid-kab8b92l3p,#006186); translate:0 -2px; }
.cs-tldr-foot a i{ color:var(--gcid-primary-color,#00a1df); }

/* CS2 · Profile band: the institution in five cards — chip, number (counts up once), label, and the
   card's icon as a big faint watermark that drifts on hover; the chip fills with its family colour */
.cs-stat{ position:relative; overflow:hidden; isolation:isolate; }
.cs-stat:hover{ border-color:color-mix(in srgb, var(--pc) 45%, #fff) !important; }
.cs-stat h3{ font-variant-numeric:tabular-nums; }
/* Divi makes every module position:relative; release the label's so the watermark anchors to the card */
.cs-stat .et_pb_text:has(.cs-wm), .cs-stat .et_pb_text:has(.cs-wm) .et_pb_text_inner, .cs-stat .et_pb_text:has(.cs-wm) p{ position:static !important; }
.cs-stat .cs-wm{ position:absolute; z-index:-1; right:-14px; bottom:-18px; font-size:104px; line-height:1; width:auto; color:var(--pd); opacity:.07; rotate:-12deg; transition:rotate .5s cubic-bezier(.2,.7,.2,1), translate .5s cubic-bezier(.2,.7,.2,1), opacity .3s; pointer-events:none; }
.cs-stat:hover .cs-wm{ rotate:0deg; translate:-6px -6px; opacity:.13; }
.cs-stat .cs-sicon{ transition:background-color .25s, color .25s, scale .25s; }
.cs-stat:hover .cs-sicon{ background-color:var(--pc) !important; scale:1.06; }
.cs-stat:hover .cs-sicon i{ color:#fff; }
.cs-stat.pg-p-ic:hover .cs-sicon i{ color:var(--pd); }

/* CS3 · Chapters: a giant outlined numeral and a head that stays beside the long copy */
.cs-chap-head{ position:sticky; top:132px; align-self:flex-start; }
@media (max-width:980px){ .cs-chap-head{ position:static; } }
.cs-chapnum p{ font-size:clamp(84px, 11vw, 168px) !important; line-height:.82 !important; letter-spacing:-.04em; color:transparent !important; -webkit-text-fill-color:transparent; -webkit-text-stroke:2px var(--gcid-k4ea5s50tv,#ccecf9); background:linear-gradient(120deg, var(--gcid-primary-color,#00a1df), var(--gcid-44cxsfm79a,#5b21b6)); -webkit-background-clip:text; background-clip:text; background-size:100% 0%; background-repeat:no-repeat; background-position:0 100%; }
@supports (animation-timeline: view()){
  .cs-chapnum p{ animation:cs-fillup linear both; animation-timeline:view(); animation-range:entry 40% cover 45%; }
}
@keyframes cs-fillup{ to{ background-size:100% 100%; -webkit-text-stroke-color:transparent; } }
.cs-lead p{ font-size:clamp(19px, 1.6vw, 22px) !important; line-height:1.55 !important; color:var(--gcid-jsnru5jtk4,#181f38) !important; }

/* CS4 · Inline pull quote inside a chapter: a big quotation mark that sits in the margin */
.cs-pq{ position:relative; }
.cs-pq::before{ content:'“'; position:absolute; left:-4px; top:-2px; font:700 120px/1 'TT Norms Pro',sans-serif; color:var(--gcid-k4ea5s50tv,#ccecf9); pointer-events:none; }
.cs-pq .cs-pq-text p{ position:relative; }

/* CS5 · Stakes cards: the problem in three tiles that tip on hover */
.cs-stakes .pg-door{ transition:rotate .3s cubic-bezier(.2,.7,.2,1), translate .25s, box-shadow .25s, border-color .25s !important; }
.cs-stakes .pg-door:nth-child(odd):hover{ rotate:-1deg; }
.cs-stakes .pg-door:nth-child(even):hover{ rotate:1deg; }

/* CS6 · Before / after: what changed, row by row; the new column lights up as it scrolls in */
.cs-ba{ width:100%; border-collapse:separate; border-spacing:0; margin:0 !important; border:1px solid var(--gcid-21s6qw6he2,#dde2ea); border-radius:20px; overflow:hidden; background:#fff; font-size:15px; line-height:1.5; }
.cs-ba th, .cs-ba td{ padding:18px 22px !important; text-align:left; vertical-align:top; border:0 !important; border-top:1px solid var(--gcid-qrz128uq7x,#eef0f5) !important; width:50%; }
.cs-ba thead th{ border-top:0 !important; font:700 12px/1.2 'TT Norms Pro',sans-serif; letter-spacing:.12em; text-transform:uppercase; color:var(--gcid-xikl310sb5,#4f5d7d); padding-top:20px !important; padding-bottom:16px !important; }
.cs-ba thead th.chg{ color:var(--gcid-e9rapnxlep,#d93c20); }
.cs-ba td{ color:var(--gcid-xikl310sb5,#4f5d7d); }
.cs-ba td.chg{ color:var(--gcid-jsnru5jtk4,#181f38); font-weight:600; background:color-mix(in srgb, var(--gcid-k1cbm3bv9k,#fcece9) 70%, #fff); }
.cs-ba td span{ display:grid; grid-template-columns:24px 1fr; gap:12px; align-items:start; }
.cs-ba td i{ width:24px; height:24px; display:grid; place-items:center; border-radius:50%; font-size:11px; margin-top:1px; }
.cs-ba td.now i{ color:var(--gcid-xikl310sb5,#4f5d7d); background:var(--gcid-qrz128uq7x,#eef0f5); }
.cs-ba td.chg i{ color:#fff; background:var(--gcid-nbbsyygk7n,#e23e21); }
.cs-ba td.now span b{ font-weight:400; }   /* no strike since 2026-10-15 (Josh: hard to read); the x chip marks the before column */
@supports (animation-timeline: view()){
  .cs-ba tbody tr{ animation:cs-row linear both; animation-timeline:view(); animation-range:entry 10% cover 30%; }
  .cs-ba tbody tr td.chg{ animation:cs-light linear both; animation-timeline:view(); animation-range:entry 30% cover 40%; }
}
@keyframes cs-row{ from{ opacity:.25; translate:0 14px; } to{ opacity:1; translate:0 0; } }
@keyframes cs-light{ from{ background:#fff; } }
@media (max-width:640px){
  .cs-ba thead{ display:none; }
  .cs-ba tr{ display:block; border-top:1px solid var(--gcid-qrz128uq7x,#eef0f5); }
  .cs-ba tbody tr:first-child{ border-top:0; }
  .cs-ba td{ display:block; width:auto; border-top:0 !important; padding:14px 16px !important; }
}

/* CS7 · The big quote: a dark band; the words fill in as you read down the page */
.cs-bigquote{ overflow:hidden; }
.cs-bigquote .cs-fill{ color:#fff; }
@supports (animation-timeline: view()){
  .cs-bigquote .cs-fill{ color:transparent; -webkit-text-fill-color:transparent; background:linear-gradient(90deg, #fff 50%, color-mix(in srgb, #fff 26%, transparent) 50%); background-size:200% 100%; background-position:100% 0; -webkit-background-clip:text; background-clip:text; animation:cs-read linear both; animation-timeline:view(); animation-range:cover 18% cover 58%; }
}
@keyframes cs-read{ to{ background-position:0 0; } }
.cs-bigquote .cs-bq-mark p{ font-size:clamp(120px, 14vw, 220px) !important; line-height:.6 !important; background:linear-gradient(120deg, var(--gcid-primary-color,#00a1df), var(--gcid-44cxsfm79a,#5b21b6)); -webkit-background-clip:text; background-clip:text; color:transparent !important; -webkit-text-fill-color:transparent; }

/* CS8 · Video: the film sits in the hero's bezel grammar */
.cs-video .et_pb_video{ border-radius:16px; overflow:hidden; }

/* CS9 · Quote pair: the long CIO quote and the short one balance as two cards */
.cs-quotes .home-quote{ background:#fff; border:1px solid var(--gcid-qrz128uq7x,#eef0f5); }

/* CS10 · Chapter tracker: a floating pill with the four chapters and a reading-progress fill.
   Hidden until the first chapter; gone at the close. JS adds .cs-js (no JS = never shown). */
.cs-nav{ position:fixed; z-index:9990; left:50%; bottom:22px; translate:-50% 140%; opacity:0; pointer-events:none; transition:translate .45s cubic-bezier(.2,.7,.2,1), opacity .3s; }
.cs-js .cs-nav.on{ translate:-50% 0; opacity:1; pointer-events:auto; }
.cs-nav-in{ position:relative; display:flex; gap:2px; padding:6px; border-radius:999px; background:color-mix(in srgb, var(--gcid-qt842el5mi,#00202d) 88%, transparent); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); box-shadow:0 18px 40px -18px color-mix(in srgb, var(--gcid-qt842el5mi,#00202d) 70%, transparent); overflow:hidden; }
.cs-nav a{ position:relative; z-index:1; display:inline-flex; align-items:center; gap:8px; padding:9px 16px; border-radius:999px; font:700 13px/1 'TT Norms Pro',sans-serif; color:color-mix(in srgb, #fff 62%, transparent); text-decoration:none; white-space:nowrap; transition:background .25s, color .25s; }
.cs-nav a b{ font-size:11px; letter-spacing:.06em; color:var(--gcid-pv82wnw5p9,#66c7ec); }
.cs-nav a:hover{ color:#fff; }
.cs-nav a.on{ color:var(--gcid-qt842el5mi,#00202d); background:#fff; }
.cs-nav a.on b{ color:var(--gcid-kab8b92l3p,#006186); }
.cs-nav-bar{ position:absolute; left:0; right:0; bottom:0; height:3px; background:color-mix(in srgb, #fff 12%, transparent); }
.cs-nav-bar i{ display:block; height:100%; width:100%; transform-origin:left center; transform:scaleX(0); background:linear-gradient(90deg, var(--gcid-primary-color,#00a1df), var(--gcid-44cxsfm79a,#5b21b6)); }
@media (max-width:640px){
  .cs-nav{ bottom:14px; }
  .cs-nav a{ padding:9px 12px; }
  .cs-nav a span{ display:none; }
  .cs-nav a.on span{ display:inline; }
}
@media print{ .cs-nav{ display:none; } }

/* CS11 · Reveal on scroll (the home curve) for the story's own cards */
@supports (animation-timeline: view()){
  .cs-pq, .cs-stat, .cs-video .et_pb_video{ animation:home-rise .6s cubic-bezier(.2,.7,.2,1) both; animation-timeline:view(); animation-range:entry 0% entry 35%; }
}
@media (prefers-reduced-motion:reduce){
  .cs-pq, .cs-stat, .cs-video .et_pb_video, .cs-ba tbody tr, .cs-ba tbody tr td.chg, .cs-chapnum p{ animation:none; }
  .cs-chapnum p{ background-size:100% 100%; -webkit-text-stroke-color:transparent; }
  .cs-bigquote .cs-fill{ animation:none; background-position:0 0; }
  .cs-nav, .cs-tldr li i, .cs-stakes .pg-door, .cs-stat .cs-wm, .cs-stat .cs-sicon{ transition:none; }
}
.cs-video .cs-wistia{ border-radius:14px; overflow:hidden; }

/* ===== layer: webinar ===== */

/* webinar.css — the single on-demand webinar (page_webinar.py), on top of kit + home v3 + pages + blog.css.
   Double-brace token names = Variable Manager colours (resolved by page_webinar.css()). No double quotes, no
   backslashes, no less-than sign: this ships as the layout's _et_pb_custom_css. */

/* WB1 · Hero pill: the dark On-demand mark, then the topic (hidden when the post has no webinar_category) */
.wb-hero .bp-pill p{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.wb-kind{ display:inline-flex; align-items:center; gap:8px; padding:6px 13px 6px 9px; border-radius:999px; color:#fff; background:var(--gcid-jsnru5jtk4,#181f38); }
.wb-kind i{ font-size:15px !important; color:var(--gcid-primary-color,#00a1df); }
.wb-hero .bp-cats{ display:inline-block; padding:6px 12px; border-radius:999px; color:var(--gcid-kab8b92l3p,#006186); background:var(--gcid-qn9g9agfus,#e6f6fc); }
.wb-hero .bp-catp:not(:has(.bp-cats:not(:empty))){ display:none !important; }

/* WB2 · The bezel holds the recording (Wistia popover thumbnail); the featured image only when there is no video */
.wb-bezel .wb-video, .wb-bezel .wb-poster{ width:100%; margin:0 !important; }
.wb-bezel .wistia_responsive_padding, .wb-bezel .wistia_responsive_wrapper, .wb-bezel .wistia_embed, .wb-bezel .wistia_embed img{ border-radius:12px; }
.wb-bezel .wistia_responsive_padding{ background:var(--gcid-t64a7fyhrj,#f7f8fa); }
.wb-bezel:has(.wistia_embed) .wb-poster{ display:none !important; }
.wb-bezel .wb-poster img{ display:block; width:100%; aspect-ratio:16 / 9; object-fit:cover; border-radius:12px; }
.wb-bezel:not(:has(.wistia_embed)):not(:has(.wb-poster img)){ display:none !important; }
.wb-hero .et_pb_row:has(.wb-bezel:not(:has(.wistia_embed)):not(:has(.wb-poster img))) > .et_pb_column:first-child{ flex-basis:100% !important; max-width:820px; }

/* WB3 · Session facts: one card, hairline between the rows (Divi prints the before/after spans even with no terms, hence :empty) */
.wb-facts{ padding:6px 20px !important; border:1px solid var(--gcid-qrz128uq7x,#eef0f5); border-radius:16px; background:#fff; }
.wb-fact{ padding:14px 0 !important; }
.wb-fact + .wb-fact{ border-top:1px solid var(--gcid-qrz128uq7x,#eef0f5); }
.wb-f-topic:not(:has(.wb-t:not(:empty))){ display:none !important; }
@media (max-width:980px){
  .wb-rail{ border:0 !important; padding:0 !important; background:none !important; }
  .wb-facts{ display:grid !important; grid-template-columns:repeat(2, minmax(0, 1fr)); column-gap:20px; }
  .wb-fact + .wb-fact{ border-top:0; }
  .wb-facts .wb-fact:nth-child(n+3){ border-top:1px solid var(--gcid-qrz128uq7x,#eef0f5); }
}

/* WB4 · The post content: the takeaways list reads as checks */
.wb-session .bp-body ul{ list-style:none; padding-left:0 !important; }
.wb-session .bp-body ul li{ position:relative; padding-left:32px !important; }
.wb-session .bp-body ul li::before{ content:''; position:absolute; left:0; top:.28em; width:20px; height:20px; border-radius:50%; background:var(--gcid-qn9g9agfus,#e6f6fc); }
.wb-session .bp-body ul li::after{ content:''; position:absolute; left:7px; top:calc(.28em + 5px); width:5px; height:9px; border:solid var(--gcid-kab8b92l3p,#006186); border-width:0 2px 2px 0; rotate:45deg; }
/* copy pasted from GoToWebinar brings li class=clearfix, and Divi's .clearfix:after sets visibility:hidden + font-size:0 */
.wb-session .bp-body ul li::after{ visibility:visible; font-size:inherit; clear:none; }

/* WB5 · Watch prompt under the content */
.wb-again{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; max-width:740px; padding:18px 20px; border-radius:16px; border:1px solid var(--gcid-qrz128uq7x,#eef0f5); background:linear-gradient(135deg, var(--gcid-qn9g9agfus,#e6f6fc), #fff 70%); }
.wb-again > i{ flex:0 0 44px; width:44px; height:44px; display:grid; place-items:center; border-radius:50%; font-size:18px !important; color:#fff; background:var(--gcid-jsnru5jtk4,#181f38); }
.wb-again > span{ flex:1 1 260px; color:var(--gcid-xikl310sb5,#4f5d7d); }
.wb-again b{ color:var(--gcid-jsnru5jtk4,#181f38); }
.wb-again a{ font-weight:700; color:var(--gcid-jsnru5jtk4,#181f38); text-decoration:none; white-space:nowrap; }
.wb-again a i{ margin-left:6px; transition:translate .2s; }
.wb-again a:hover{ color:var(--gcid-kab8b92l3p,#006186); }
.wb-again a:hover i{ translate:4px 0; }
.wb-novideo .et_pb_button[href='#watch'], .wb-novideo .wb-againp{ display:none !important; }

/* WB6 · Keep watching: the library cards; the foot links */
.wb-more-foot .pg-links{ justify-content:center; }

/* WB7 · webinar is a custom post type, so Divi prints its whole theme sheet behind .et-db #et-boc .et-l (the
   et-core-unified-cpt-* sheet; posts and pages get it unprefixed). With the extra ID its defaults outrank kit
   classes. Header: the 2.75% block-column module margin (body .et_pb_gutters3) ties the flex-children-zero
   rule and wins, adding about 38px under each header group (header 223px, not 112). Restate the zero. */
body.single-webinar.et-db #page-container #et-boc .et-l--header .et_flex_group > .et_pb_module, body.single-webinar.et-db #page-container #et-boc .et-l--header .et_flex_column > .et_pb_module, body.single-webinar.et-db #page-container #et-boc .et-l--header .et_flex_module > .et_pb_module{ margin-bottom:0; }

/* WB8 · Close tiles: the prefixed .et_pb_module{animation-duration:.2s; animation-timing-function:linear}
   beats .home-tile{animation:home-float 5.5s ease-in-out}, so the bob ran 27 times too fast. Restate it. */
body.single-webinar.et-db #page-container #et-boc .home-close .home-tile{ animation-duration:5.5s; animation-timing-function:ease-in-out; }
body.single-webinar.et-db #page-container #et-boc .home-close .home-tiles > .home-tile:nth-child(2){ animation-duration:6.8s; }
body.single-webinar.et-db #page-container #et-boc .home-close .home-tiles > .home-tile:nth-child(3){ animation-duration:6.2s; }

