/* ResearchGuru: deep teal and marigold, Roboto throughout */
:root {
  --bg: #F3F7F5;
  --surface: #FFFFFF;
  --tint: #E7F0EC;
  --surface-2: #EEF4F1;
  --ink: #0E2527;
  --ink-2: #3F5B5C;
  --ink-3: #62807E;
  --line: #D3E2DD;
  --line-2: #BCD2CB;
  --brand: #0F5B5F;
  --brand-2: #137C77;
  --brand-soft: #D6EEE8;
  --on-brand: #FFFFFF;
  --accent: #F2A22C;
  --accent-2: #E4910F;
  --accent-soft: #FCEBCB;
  --on-accent: #2B1A02;
  --err: #BA3A2F;
  --err-soft: #FBE4E0;
  --warn: #A5650A;
  --warn-soft: #FCEFD8;
  --ok: #1D7F53;
  --ok-soft: #DCF2E6;
  --band: #0B3A3D;
  --band-2: #0F4A4D;
  --on-band: #EAF5F2;
  --on-band-2: #A8CBC4;
  --band-line: rgba(234, 245, 242, .16);
  --frame: #102A2C;
  --shadow: 0 1px 2px rgba(14, 37, 39, .06), 0 14px 34px -14px rgba(14, 37, 39, .28);
  --shadow-lg: 0 2px 4px rgba(4, 20, 21, .12), 0 28px 60px -20px rgba(4, 20, 21, .55);
  --r: 14px;
  --f-display: "Roboto", "Helvetica Neue", Arial, system-ui, sans-serif;
  --f-body: "Roboto", "Helvetica Neue", Arial, system-ui, sans-serif;
  --f-mono: "Roboto", "Helvetica Neue", Arial, system-ui, sans-serif;
  --head-h: 68px;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font: 400 16.5px/1.65 var(--f-body);
  font-feature-settings: "tnum" 0;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img, svg { max-width: 100%; }
[hidden] { display: none !important; }
a { color: var(--brand); }
h1, h2, h3, h4 { font-family: var(--f-display); line-height: 1.15; margin: 0; text-wrap: balance; letter-spacing: -.01em; }
p { margin: 0; }
code { font: 500 .84em/1.4 var(--f-mono); letter-spacing: .01em; background: var(--surface-2); color: var(--ink-2); padding: .12em .45em; border-radius: 5px; white-space: nowrap; }
.num { font-variant-numeric: tabular-nums; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; border-radius: 6px; }
[id] { scroll-margin-top: calc(var(--head-h) + 20px); }

.wrap { width: min(1180px, 100% - 32px); margin-inline: auto; }
.skip { position: absolute; left: 16px; top: -60px; background: var(--accent); color: var(--on-accent); padding: 10px 14px; border-radius: 8px; z-index: 100; font-weight: 600; }
.skip:focus { top: 12px; }

/* ---------- header */
.site-header {
  position: sticky; top: env(safe-area-inset-top, 0px); z-index: 50;
  background: color-mix(in srgb, var(--bg) 88%, transparent);
  backdrop-filter: saturate(1.4) blur(12px); -webkit-backdrop-filter: saturate(1.4) blur(12px);
  border-bottom: 1px solid var(--line);
}
.head-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: var(--head-h); }
.brand { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; color: var(--ink); }
.logo-mark { width: 34px; height: 34px; flex: none; }
.lm-bg { fill: var(--brand); }
.lm-line { fill: var(--on-brand); opacity: .92; }
.lm-dot { fill: var(--accent); }
.lm-check { fill: none; stroke: var(--on-accent); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.brand-name { font: 700 21px/1 var(--f-display); letter-spacing: -.02em; }
.brand-name b { color: var(--brand); font-weight: 700; }
.site-nav { display: flex; align-items: center; gap: 4px; }
.nav-link { color: var(--ink-2); text-decoration: none; font-weight: 600; font-size: 15px; padding: 8px 14px; border-radius: 999px; transition: background .15s, color .15s; }
.nav-link:hover { color: var(--ink); background: var(--tint); }
.nav-link[aria-current="page"] { color: var(--brand); background: var(--brand-soft); }
.site-nav .btn { margin-left: 10px; }
.menu-btn { display: none; background: none; border: 1px solid var(--line-2); color: var(--ink); width: 44px; height: 44px; border-radius: 12px; place-items: center; cursor: pointer; }
.menu-btn svg { width: 22px; height: 22px; }
.menu-btn .i-close { display: none; }
.nav-open .menu-btn .i-close { display: block; }
.nav-open .menu-btn .i-open { display: none; }

@media (max-width: 860px) {
  .menu-btn { display: grid; }
  .site-nav {
    display: none; position: absolute; left: 0; right: 0; top: 100%;
    flex-direction: column; align-items: stretch; gap: 2px;
    padding: 12px 16px 20px; background: var(--bg); border-bottom: 1px solid var(--line); box-shadow: var(--shadow);
  }
  .nav-open .site-nav { display: flex; }
  .nav-link { padding: 12px 14px; font-size: 17px; }
  .site-nav .btn { margin: 10px 0 0; justify-content: center; }
}

/* ---------- buttons & links */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 13px 22px; border-radius: 999px; border: 1.5px solid transparent;
  font: 600 15.5px/1.1 var(--f-body); text-decoration: none; cursor: pointer;
  transition: transform .15s ease, background .15s, border-color .15s, color .15s;
}
.btn:hover { transform: translateY(-1px); }
.btn-ic { width: 18px; height: 18px; flex: none; }
.btn-primary { background: var(--accent); color: var(--on-accent); }
.btn-primary:hover { background: var(--accent-2); }
.btn-ghost { background: transparent; color: var(--brand); border-color: var(--line-2); }
.btn-ghost:hover { border-color: var(--brand); }
.btn-text { background: none; color: var(--ink-2); padding-inline: 8px; }
.btn-sm { padding: 10px 16px; font-size: 14.5px; }
.btn-row { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.band .btn-ghost { color: var(--on-band); border-color: var(--band-line); }
.band .btn-ghost:hover { border-color: var(--on-band); }
.more-link { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; color: var(--brand); text-decoration: none; }
.more-link:hover { text-decoration: underline; text-underline-offset: 4px; }
.more-link .btn-ic { width: 16px; height: 16px; transition: transform .15s; }
.more-link:hover .btn-ic { transform: translateX(3px); }
.text-link { font-weight: 600; text-underline-offset: 3px; }
.copy-btn {
  display: inline-flex; align-items: center; gap: 5px; vertical-align: middle;
  font: 500 12px/1 var(--f-mono); color: var(--brand); background: var(--brand-soft);
  border: 0; border-radius: 999px; padding: 6px 10px; cursor: pointer;
}
.copy-btn svg { width: 14px; height: 14px; }
.copy-btn.done { background: var(--ok-soft); color: var(--ok); }
.sel { user-select: all; -webkit-user-select: all; }

/* ---------- band (hero + cta) */
.band {
  position: relative; color: var(--on-band);
  background:
    radial-gradient(900px 480px at 88% -10%, rgba(76, 195, 178, .26), transparent 60%),
    radial-gradient(600px 400px at -5% 110%, rgba(242, 162, 44, .12), transparent 60%),
    radial-gradient(rgba(234, 245, 242, .07) 1px, transparent 1.5px) 0 0 / 22px 22px,
    var(--band);
}
.band .eyebrow { color: var(--accent); }
.hero { padding-block: clamp(48px, 7vw, 96px) clamp(36px, 5vw, 56px); overflow: hidden; }
.hero-grid { display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 72px); align-items: center; }
.hero-grid.no-art { grid-template-columns: minmax(0, 820px); }
.hero-copy { display: grid; gap: 20px; }
.hero h1 { font-size: clamp(38px, 5.2vw, 64px); font-weight: 900; line-height: 1.04; letter-spacing: -.025em; }
.page-hero h1 { font-size: clamp(34px, 4.2vw, 54px); }
.page-hero.has-overlap { padding-bottom: clamp(72px, 9vw, 112px); }
.hero h1 .hl { color: var(--accent); }
.hero-sub { font: 500 clamp(19px, 1.8vw, 23px)/1.35 var(--f-body); color: var(--on-band); letter-spacing: 0; max-width: 34ch; }
.hero-lead { font-size: clamp(18px, 1.6vw, 21px); line-height: 1.5; color: var(--on-band); max-width: 58ch; }
.hero-copy p:not(.eyebrow):not(.hero-lead) { color: var(--on-band-2); max-width: 60ch; }
.hero .btn-row { margin-top: 8px; }
.page-hero.compact { padding-block: clamp(44px, 6vw, 80px) clamp(40px, 5vw, 64px); }
.facts { list-style: none; margin: clamp(40px, 6vw, 64px) 0 0; padding: 22px 0 0; border-top: 1px solid var(--band-line); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.facts li { display: grid; gap: 4px; }
.facts strong { font: 650 19px/1.2 var(--f-display); color: var(--on-band); }
.facts span { color: var(--on-band-2); font-size: 14.5px; line-height: 1.4; }

/* ---------- sections */
.sec { padding-block: clamp(64px, 8vw, 112px); }
.tone-tint { background: var(--tint); }
.eyebrow { font: 700 12.5px/1.3 var(--f-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--brand); }
.sec-head { display: grid; gap: 14px; max-width: 760px; margin-bottom: clamp(32px, 4vw, 52px); }
.sec-head h2, .split-text h2 { font-size: clamp(28px, 3.2vw, 42px); font-weight: 900; letter-spacing: -.02em; }
.sec-intro { color: var(--ink-2); font-size: 18px; max-width: 64ch; }
.note { color: var(--ink-2); max-width: 64ch; }
.list-title { font: 700 12.5px/1.3 var(--f-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 14px; }
h4.list-title { margin-bottom: 14px; }
.card h3.list-title, .card h4.list-title { font: 700 12.5px/1.3 var(--f-mono); letter-spacing: .1em; margin-bottom: 4px; }

.checks { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.checks.cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; }
.checks li { display: grid; grid-template-columns: 22px 1fr; gap: 10px; align-items: start; line-height: 1.45; }
.ck { width: 22px; height: 22px; border-radius: 50%; background: var(--brand-soft); color: var(--brand); display: grid; place-items: center; margin-top: 1px; }
.ck svg { width: 13px; height: 13px; stroke-width: 2.6; }
.checks.on-band .ck { background: rgba(242, 162, 44, .18); color: var(--accent); }
.chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.chips li { font-size: 14.5px; padding: 7px 13px; border-radius: 999px; background: var(--surface); border: 1px solid var(--line); color: var(--ink); line-height: 1.3; }

.cards { display: grid; gap: 20px; }
.cards.cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cards.cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cards.cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); padding: clamp(22px, 2.4vw, 30px); display: flex; flex-direction: column; gap: 12px; }
.card h3 { font-size: 21px; font-weight: 650; }
.card p { color: var(--ink-2); }
.card .card-link { margin-top: auto; padding-top: 6px; }
.cards.compact .card { padding: 22px; gap: 10px; }
.cards.compact .card h3 { font-size: 18px; }
.cards.compact .card p { font-size: 15.5px; }
.ic { width: 46px; height: 46px; border-radius: 13px; background: var(--brand-soft); color: var(--brand); display: grid; place-items: center; flex: none; }
.ic svg { width: 24px; height: 24px; }
.ic.big { width: 56px; height: 56px; border-radius: 16px; }
.ic.big svg { width: 28px; height: 28px; }

/* split */
.split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(36px, 6vw, 88px); align-items: start; }
.split.reverse .split-art { order: -1; }
.split-text { display: grid; gap: 18px; align-content: start; }
.split-text > p:not(.eyebrow):not(.note):not(.split-link) { color: var(--ink-2); font-size: 17.5px; max-width: 62ch; }
.split-text .list-title { margin: 10px 0 2px; }
.split-art { position: sticky; top: calc(var(--head-h) + 32px); }
.split-link { margin-top: 4px; }
.split.no-art { align-items: start; }
.list-panel { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); padding: clamp(22px, 2.6vw, 32px); }
.callout { display: grid; grid-template-columns: 22px 1fr; gap: 12px; padding: 16px 18px; border-radius: 12px; background: var(--accent-soft); color: var(--ink); font-size: 15.5px; line-height: 1.5; }
.callout svg { width: 22px; height: 22px; color: var(--warn); }

/* steps */
.steps-layout, .faq-layout { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 6vw, 88px); align-items: start; }
.sticky-head { position: sticky; top: calc(var(--head-h) + 32px); margin-bottom: 0; }
.steps { list-style: none; margin: 0; padding: 0; display: grid; }
.steps li { position: relative; display: grid; grid-template-columns: 48px 1fr; gap: 20px; padding-bottom: 30px; }
.steps li:last-child { padding-bottom: 0; }
.steps li:not(:last-child)::before { content: ""; position: absolute; left: 23px; top: 52px; bottom: 6px; width: 2px; background: linear-gradient(var(--line-2), var(--line)); }
.step-n { width: 48px; height: 48px; border-radius: 50%; border: 2px solid var(--brand); color: var(--brand); background: var(--surface); display: grid; place-items: center; font: 500 15px/1 var(--f-mono); }
.steps h3 { font-size: 21px; font-weight: 650; margin: 10px 0 6px; }
.steps p { color: var(--ink-2); }
.steps.mini li { grid-template-columns: 34px 1fr; gap: 14px; padding-bottom: 18px; }
.steps.mini li:not(:last-child)::before { left: 16px; top: 38px; }
.step-n.sm { width: 34px; height: 34px; font-size: 13px; }
.steps.mini h4 { font-size: 16.5px; margin: 6px 0 2px; }
.steps.mini p { font-size: 15px; }

/* faq */
.faq { border-top: 1px solid var(--line-2); }
.faq details { border-bottom: 1px solid var(--line-2); }
.faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 20px 2px; font: 600 18px/1.35 var(--f-display); }
.faq summary::-webkit-details-marker { display: none; }
.pm { position: relative; width: 28px; height: 28px; border-radius: 50%; background: var(--brand-soft); flex: none; }
.pm::before, .pm::after { content: ""; position: absolute; left: 8px; right: 8px; top: 13px; height: 2px; background: var(--brand); border-radius: 2px; transition: transform .2s; }
.pm::after { transform: rotate(90deg); }
details[open] .pm::after { transform: rotate(0deg); }
.faq details p { padding: 0 44px 22px 2px; color: var(--ink-2); }

/* cta */
.cta-sec { padding-block: clamp(56px, 7vw, 96px); }
.cta-box {
  border-radius: 28px; padding: clamp(28px, 5vw, 64px); color: var(--on-band);
  display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 64px); align-items: center;
  background:
    radial-gradient(520px 320px at 100% 0%, rgba(76, 195, 178, .28), transparent 60%),
    radial-gradient(rgba(234, 245, 242, .07) 1px, transparent 1.5px) 0 0 / 22px 22px,
    var(--band);
}
.cta-copy { display: grid; gap: 18px; }
.cta-copy h2 { font-size: clamp(30px, 3.6vw, 46px); font-weight: 900; letter-spacing: -.02em; }
.cta-copy > p { color: var(--on-band-2); font-size: 18px; max-width: 52ch; }
.cta-box .btn-ghost { color: var(--on-band); border-color: var(--band-line); }
.cta-contact { color: var(--on-band-2); font-size: 15px; }
.cta-contact .sel { color: var(--on-band); font-weight: 600; white-space: nowrap; }
.cta-box.single { grid-template-columns: minmax(0, 760px); }
.sec:not(.tone-tint):not(.process-band) + .cta-sec { padding-top: 0; }
.cta-box .copy-btn { background: rgba(234, 245, 242, .12); color: var(--on-band); }
.cta-list { background: rgba(234, 245, 242, .06); border: 1px solid var(--band-line); border-radius: 18px; padding: clamp(20px, 3vw, 32px); }
.cta-list .checks { gap: 14px; font-size: 17px; }

/* services */
.svc-layout { display: grid; grid-template-columns: 270px minmax(0, 1fr); gap: clamp(28px, 4vw, 56px); align-items: start; }
.svc-nav { position: sticky; top: calc(var(--head-h) + 24px); }
.svc-nav ul { list-style: none; margin: 0; padding: 8px; display: grid; gap: 2px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); }
.svc-nav a { display: grid; grid-template-columns: 22px 1fr; gap: 10px; align-items: center; padding: 9px 10px; border-radius: 10px; color: var(--ink-2); text-decoration: none; font-weight: 600; font-size: 14.5px; line-height: 1.3; }
.svc-nav a:hover { background: var(--tint); color: var(--ink); }
.svc-nav svg { width: 20px; height: 20px; color: var(--brand); }
.svc { padding-block: 40px; border-top: 1px solid var(--line); display: grid; gap: 24px; }
.svc:first-child { padding-top: 0; border-top: 0; }
.svc-head { display: grid; grid-template-columns: auto 1fr; gap: 18px; align-items: start; }
.svc-head h3 { font-size: clamp(24px, 2.4vw, 30px); font-weight: 700; margin-bottom: 8px; }
.svc-lead { font-size: 18px; color: var(--ink-2); max-width: 60ch; }
.svc-body { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 28px; align-items: start; }
.svc-text { display: grid; gap: 14px; }
.svc-text p:not(.note):not(.svc-cta) { color: var(--ink); }
.svc-text .note { font-size: 15.5px; padding-left: 14px; border-left: 3px solid var(--accent); }

/* process band */
.process-band { background: var(--tint); padding-block: clamp(48px, 6vw, 72px); }
.pb-inner { display: grid; gap: 24px; }
.pb-inner h2 { font-size: clamp(24px, 2.6vw, 32px); margin-top: 10px; max-width: 30ch; }
.flow-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.flow-chips li { display: inline-flex; align-items: center; gap: 10px; padding: 10px 16px 10px 10px; border-radius: 999px; background: var(--surface); border: 1px solid var(--line); font-weight: 600; }
.flow-n { width: 26px; height: 26px; border-radius: 50%; background: var(--brand); color: var(--on-brand); display: grid; place-items: center; font: 500 12.5px/1 var(--f-mono); }

/* innovation group nav + heads */
.groupnav { padding-block: 0; margin-top: -36px; position: relative; z-index: 2; }
.gn { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.gn-card { position: relative; display: grid; gap: 6px; padding: 20px 48px 20px 20px; border-radius: var(--r); background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow); text-decoration: none; color: var(--ink); transition: transform .15s, border-color .15s; }
.gn-card:hover { transform: translateY(-2px); border-color: var(--brand); }
.gn-label { font: 700 22px/1.1 var(--f-display); color: var(--brand); }
.gn-desc { color: var(--ink-2); font-size: 14.5px; line-height: 1.4; }
.gn-ic { position: absolute; right: 18px; top: 22px; width: 20px; height: 20px; color: var(--accent-2); }
.group-head { padding-top: clamp(64px, 8vw, 104px); }
.gh-inner { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 24px; border-top: 3px solid var(--accent); padding-top: 26px; }
.gh-label { font: 500 14px/1.2 var(--f-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--accent-2); }
.gh-inner h2 { font-size: clamp(30px, 3.6vw, 46px); font-weight: 900; letter-spacing: -.02em; }
.gh-inner p { color: var(--ink-2); font-size: 18px; margin-top: 10px; max-width: 60ch; }
.group-head + .sec { padding-top: clamp(40px, 5vw, 64px); }

/* access cards + timeline */
.access-card { gap: 18px; }
.ac-head { display: flex; align-items: center; gap: 14px; }
.after-note { margin-top: 24px; color: var(--ink-2); max-width: 70ch; }
.timeline { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; counter-reset: t; }
.timeline li { display: grid; gap: 12px; align-content: start; padding: 18px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); font-weight: 600; line-height: 1.35; font-size: 15.5px; }
.tn { width: 34px; height: 34px; border-radius: 50%; background: var(--brand-soft); color: var(--brand); display: grid; place-items: center; font: 500 13px/1 var(--f-mono); }
.timeline li:nth-child(7) .tn { background: var(--accent); color: var(--on-accent); }
.tl-notes { display: grid; gap: 10px; margin-top: 28px; }

/* contact */
.contact-sec { padding-top: clamp(40px, 5vw, 64px); }
.contact-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .85fr); gap: clamp(24px, 4vw, 48px); align-items: start; }
.contact-main, .contact-aside { display: grid; gap: 20px; }
.enquiry h2, .contact-card h2 { font-size: 26px; }
.form-intro { color: var(--ink-3); font-size: 14.5px; margin-top: -4px; }
.fld-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.fld { display: grid; gap: 6px; }
.fld label { font-weight: 600; font-size: 14.5px; }
.req { color: var(--err); margin-left: 3px; }
.hint { font-size: 13px; color: var(--ink-3); }
.fld input, .fld select, .fld textarea {
  width: 100%; font: 400 16px/1.4 var(--f-body); color: var(--ink); background: var(--bg);
  border: 1.5px solid var(--line-2); border-radius: 11px; padding: 12px 14px; transition: border-color .15s, box-shadow .15s;
}
.fld textarea { resize: vertical; min-height: 140px; }
.fld input:focus, .fld select:focus, .fld textarea:focus { outline: none; border-color: var(--brand); box-shadow: 0 0 0 4px var(--brand-soft); }
.fld input:user-invalid, .fld textarea:user-invalid { border-color: var(--err); }
.consent { display: grid; grid-template-columns: 22px 1fr; gap: 10px; align-items: start; font-size: 15px; color: var(--ink-2); cursor: pointer; }
.consent input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--brand); }
.enquiry .btn-row { margin-top: 4px; }
.result { gap: 16px; }
.result .ic { background: var(--ok-soft); color: var(--ok); }
.result .sel { font-weight: 600; color: var(--ink); }
.preview { margin: 0; padding: 16px; border-radius: 12px; background: var(--surface-2); border: 1px solid var(--line); font: 400 13.5px/1.55 var(--f-mono); color: var(--ink); white-space: pre-wrap; word-break: break-word; max-height: 320px; overflow: auto; }
.contact-card { gap: 16px; }
.cd-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 14px; align-items: center; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.cd-k { display: block; font: 500 11.5px/1.3 var(--f-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-3); }
.cd-v { font-weight: 600; font-size: 17px; color: var(--ink); text-decoration: none; overflow-wrap: anywhere; }
.social { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.social a { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 10px; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--line); text-decoration: none; color: var(--ink); transition: border-color .15s, background .15s; }
.social a:hover { border-color: var(--brand); background: var(--tint); }
.soc-name { font-weight: 650; }
.soc-handle { font: 400 13px var(--f-mono); color: var(--ink-3); }
.soc-ic { width: 16px; height: 16px; color: var(--brand); }

/* footer */
.site-footer { background: var(--band); color: var(--on-band-2); padding-block: 56px 28px; }
.site-footer .brand { color: var(--on-band); }
.site-footer .brand-name b { color: var(--accent); }
.site-footer .lm-bg { fill: var(--on-band); }
.site-footer .lm-line { fill: var(--band); }
.foot-grid { display: grid; grid-template-columns: 1.25fr .7fr 1.15fr .95fr 1.3fr; gap: 28px; }
.foot-brand { display: grid; gap: 14px; align-content: start; }
.foot-domain { font: 500 13px var(--f-mono); color: var(--on-band); }
.site-footer h2 { font: 500 12px/1.3 var(--f-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--accent); margin-bottom: 14px; }
.site-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.site-footer a { color: var(--on-band); text-decoration: none; }
.site-footer a:hover { text-decoration: underline; text-underline-offset: 3px; }
.foot-contact li { color: var(--on-band); display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.site-footer .copy-btn { background: rgba(234, 245, 242, .1); color: var(--on-band); }
.foot-social { margin-top: 18px !important; display: flex !important; flex-wrap: wrap; gap: 8px !important; }
.foot-social a { display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px; border: 1px solid var(--band-line); border-radius: 999px; font-size: 14px; }
.foot-social a:hover { text-decoration: none; border-color: var(--on-band); }
.foot-social .soc-ic { color: var(--accent); width: 14px; height: 14px; }
.foot-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; margin-top: 40px; padding-top: 22px; border-top: 1px solid var(--band-line); font-size: 14px; }

/* ================================================= illustrations */
.art { position: relative; font-family: var(--f-body); }
.art-cap { margin-top: 10px; font: 500 11.5px/1.3 var(--f-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--ink-3); text-align: right; }
.band .art-cap { color: var(--on-band-2); }
.mock { background: var(--surface); color: var(--ink); border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow); overflow: hidden; }
.band .mock { box-shadow: var(--shadow-lg); border-color: transparent; }
.mock-bar { display: flex; align-items: center; gap: 12px; padding: 10px 14px; background: var(--surface-2); border-bottom: 1px solid var(--line); }
.dots { display: inline-flex; gap: 5px; flex: none; }
.dots i { width: 9px; height: 9px; border-radius: 50%; background: var(--line-2); }
.dots i:first-child { background: var(--accent); }
.mock-title { font: 500 11.5px/1.2 var(--f-mono); color: var(--ink-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mock-body { padding: 18px; }
.m-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 16px; }
.m-kicker { font: 500 10.5px/1.3 var(--f-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--brand); }
.m-title { font: 650 16.5px/1.25 var(--f-display); margin-top: 3px; }
.m-pill { font: 500 11px/1 var(--f-mono); padding: 5px 9px; border-radius: 999px; background: var(--brand-soft); color: var(--brand); white-space: nowrap; }
.m-field { margin-bottom: 13px; }
.m-label { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; margin-bottom: 6px; line-height: 1.3; }
.m-label code { font-size: 10.5px; }
.m-cond { font: 500 10.5px/1 var(--f-mono); color: var(--warn); background: var(--warn-soft); padding: 4px 7px; border-radius: 6px; }
.m-input { border: 1.5px solid var(--line-2); border-radius: 9px; padding: 8px 11px; font: 500 14px/1.3 var(--f-mono); background: var(--surface); }
.m-input.is-err { border-color: var(--err); background: var(--err-soft); }
.m-input.is-warn { border-color: var(--warn); background: var(--warn-soft); }
.m-input.is-calc { border-style: dashed; background: var(--surface-2); color: var(--ink-2); }
.m-select { position: relative; padding-right: 30px; font-family: var(--f-body); font-weight: 600; }
.m-select::after { content: ""; position: absolute; right: 12px; top: 50%; width: 7px; height: 7px; border-right: 2px solid var(--ink-3); border-bottom: 2px solid var(--ink-3); transform: translateY(-70%) rotate(45deg); }
.m-msg { display: flex; gap: 6px; align-items: flex-start; font-size: 12.5px; line-height: 1.35; margin-top: 6px; font-weight: 500; }
.m-msg svg { width: 15px; height: 15px; flex: none; margin-top: 1px; }
.m-msg.err { color: var(--err); }
.m-msg.warn { color: var(--warn); }
.m-msg.ok { color: var(--ok); }
.m-radios { display: flex; gap: 8px; }
.m-radio { padding: 6px 14px; border: 1.5px solid var(--line-2); border-radius: 8px; font-size: 13px; font-weight: 500; }
.m-radio.on { border-color: var(--brand); background: var(--brand-soft); color: var(--brand); font-weight: 650; }
.m-actions { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 16px; }
.m-btn { display: inline-block; background: var(--brand); color: var(--on-brand); font-weight: 650; font-size: 13px; padding: 9px 15px; border-radius: 9px; text-align: center; }
.m-btn.full { display: block; margin-top: 14px; }
.m-note { font: 500 11px/1 var(--f-mono); color: var(--ok); }
.m-note::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--ok); margin-right: 6px; }
.m-foot { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 14px; margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--line-2); font-size: 12.5px; color: var(--ink-2); }
.m-foot svg { width: 14px; height: 14px; vertical-align: -2px; margin-right: 4px; }
.m-foot .mbar { flex: 1 1 80px; }
.mbar { display: block; height: 8px; border-radius: 99px; background: var(--surface-2); overflow: hidden; }
.mbar i { display: block; height: 100%; border-radius: inherit; background: var(--brand); }
.mbar.full i { background: var(--accent); }
.st { display: inline-block; font: 500 10.5px/1.2 var(--f-mono); padding: 4px 8px; border-radius: 999px; white-space: nowrap; }
.st.ok { background: var(--ok-soft); color: var(--ok); }
.st.warn { background: var(--warn-soft); color: var(--warn); }
.st.err { background: var(--err-soft); color: var(--err); }
.st.info { background: var(--brand-soft); color: var(--brand); }
.tbl-wrap { overflow-x: auto; }
.m-table { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.m-table th { font: 500 10px/1.2 var(--f-mono); letter-spacing: .07em; text-transform: uppercase; color: var(--ink-3); text-align: left; padding: 0 10px 8px; border-bottom: 1px solid var(--line); white-space: nowrap; }
.m-table td { padding: 10px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.m-table tr:last-child td { border-bottom: 0; }
.m-table td:first-child, .m-table th:first-child { padding-left: 0; }
.m-table td:last-child, .m-table th:last-child { padding-right: 0; }
.m-table code { font-size: 11px; }
.m-table .sub { display: block; color: var(--ink-3); font-size: 11.5px; margin-top: 2px; }
.m-table .bar-cell { width: 34%; }
.matrix td.c, .matrix th:not(:first-child) { text-align: center; }
.yes { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--ok-soft); color: var(--ok); }
.yes svg { width: 13px; height: 13px; stroke-width: 2.6; }
.no { color: var(--ink-3); }

/* hero composition */
.art-hero { padding: 34px 0 44px 22px; }
.hero-window { position: relative; z-index: 1; }
.float { position: absolute; z-index: 2; display: flex; gap: 11px; align-items: center; padding: 12px 14px; border-radius: 14px; font-size: 12.5px; line-height: 1.3; }
.float strong { display: block; font-size: 13px; }
.f-sub { display: block; color: var(--ink-3); font-size: 12px; margin-top: 2px; }
.f-ic { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; flex: none; }
.f-ic svg { width: 19px; height: 19px; }
.f-ic.warn { background: var(--err-soft); color: var(--err); }
.f-ic.ok { background: var(--ok-soft); color: var(--ok); }
.f-ic.info { background: var(--brand-soft); color: var(--brand); }
.float-a { top: 0; right: 0; max-width: 250px; animation: bob 6s ease-in-out infinite; }
.float-b { bottom: 0; left: 0; width: 220px; display: grid; gap: 8px; animation: bob 7s ease-in-out -2s infinite; }
.f-row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font-size: 12.5px; color: var(--ink-2); }
.f-row strong { font: 700 16px/1 var(--f-display); color: var(--ink); white-space: nowrap; }
.float-b .mbar i { background: var(--accent); }
.art-notify { padding-bottom: 50px; }
.float-c { right: 14px; bottom: 0; }
.art-phone { display: grid; justify-items: center; padding-bottom: 56px; }
.float-d { left: 0; bottom: 0; max-width: 270px; }
@keyframes bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }

/* email */
.email-head { padding: 14px 18px; background: var(--surface-2); border-bottom: 1px solid var(--line); display: grid; gap: 4px; }
.e-row { display: flex; gap: 10px; font-size: 12.5px; color: var(--ink-2); }
.e-k { width: 38px; flex: none; font: 500 11px/1.6 var(--f-mono); color: var(--ink-3); }
.e-subj { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 8px; font: 650 15.5px/1.3 var(--f-display); }
.sev { font: 600 10px/1 var(--f-mono); letter-spacing: .08em; text-transform: uppercase; background: var(--err-soft); color: var(--err); padding: 5px 7px; border-radius: 6px; }
.email-body { padding: 18px; display: grid; gap: 16px; justify-items: start; }
.kv { display: grid; grid-template-columns: auto 1fr; gap: 8px 16px; margin: 0; font-size: 13px; width: 100%; }
.kv dt { font: 500 11px/1.8 var(--f-mono); color: var(--ink-3); text-transform: uppercase; letter-spacing: .06em; }
.kv dd { margin: 0; }
.e-foot { font-size: 12px; color: var(--ink-3); border-top: 1px dashed var(--line-2); padding-top: 12px; width: 100%; }

/* transform */
.art-transform { display: grid; gap: 12px; }
.paper { padding: 18px 20px; display: grid; gap: 12px; background: var(--surface); }
.paper-title { font: 500 10.5px/1.2 var(--f-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-3); }
.pq { font-size: 14px; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.pq b { font-family: var(--f-mono); font-weight: 500; font-size: 12.5px; color: var(--brand); }
.cbx { display: inline-flex; align-items: center; gap: 5px; font-size: 13px; color: var(--ink-2); }
.cbx i { width: 13px; height: 13px; border: 1.5px solid var(--ink-3); border-radius: 3px; }
.blank { display: inline-block; min-width: 60px; border-bottom: 1.5px dotted var(--ink-3); height: 1em; font: 400 11px var(--f-mono); color: var(--ink-3); }
.blank.wide { min-width: 120px; }
.t-arrow { display: flex; align-items: center; gap: 10px; justify-content: center; font: 500 11px/1.2 var(--f-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--brand); }
.t-arrow svg { width: 22px; height: 22px; }

/* dashboard */
.art-dash .mock-body { padding: 14px; }
.kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-bottom: 10px; }
.kpi { display: grid; gap: 2px; padding: 10px 12px; border-radius: 10px; background: var(--surface-2); }
.kpi-l { font: 500 9.5px/1.2 var(--f-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--ink-3); }
.kpi-v { font: 700 22px/1.1 var(--f-display); }
.kpi-s { font-size: 11px; color: var(--ink-3); }
.kpi:first-child .kpi-v { color: var(--brand); }
.dash-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 10px; }
.panel { margin: 0; padding: 12px; border: 1px solid var(--line); border-radius: 10px; }
.panel figcaption { font-size: 11.5px; font-weight: 650; margin-bottom: 8px; }
.chart { display: block; width: 100%; height: auto; overflow: visible; }
.c-grid { stroke: var(--line); stroke-width: 1; }
.c-t { fill: var(--ink-3); font-family: var(--f-mono); font-size: 9px; }
.c-lab { fill: var(--ink); font-family: var(--f-display); font-size: 12px; font-weight: 700; }
.c-plan { stroke: var(--ink-3); stroke-width: 1.4; stroke-dasharray: 4 4; fill: none; }
.c-line { stroke: var(--brand); stroke-width: 2.4; fill: none; stroke-linejoin: round; stroke-linecap: round; }
.c-area { fill: var(--brand); opacity: .14; }
.c-dot { fill: var(--accent); stroke: var(--surface); stroke-width: 2.5; }
.hbars { display: grid; gap: 10px; }
.hb { display: grid; grid-template-columns: 52px minmax(0, 1fr) 26px; gap: 8px; align-items: center; font-size: 11.5px; color: var(--ink-2); }
.hb b { font: 600 12px/1 var(--f-mono); color: var(--ink); text-align: right; }
.hb.wide { grid-template-columns: 76px minmax(0, 1fr) 34px 38px; font-size: 13px; }
.hb.wide b { font-size: 13px; }
.hb em { font: 500 11.5px/1 var(--f-mono); font-style: normal; color: var(--ink-3); text-align: right; }
.hb .mbar { height: 10px; }
.hb.wide .mbar { height: 16px; border-radius: 6px; }
.chips-row { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 16px; }
.fchip { font: 500 11px/1 var(--f-mono); padding: 6px 9px; border-radius: 7px; border: 1px solid var(--line-2); color: var(--ink-2); }

/* timeline mock */
.tl { list-style: none; margin: 0; padding: 0; display: grid; }
.tl li { display: grid; grid-template-columns: 58px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 11px 0; border-bottom: 1px solid var(--line); }
.tl li:last-child { border-bottom: 0; }
.tl-day { font: 500 11px/1.2 var(--f-mono); color: var(--brand); }
.tl-main { display: grid; gap: 1px; font-size: 12.5px; color: var(--ink-3); }
.tl-main strong { font-size: 13.5px; color: var(--ink); }

/* phone */
.phone { width: min(270px, 100%); padding: 9px; border-radius: 36px; background: var(--frame); box-shadow: var(--shadow-lg); }
.phone-screen { background: var(--surface); color: var(--ink); border-radius: 28px; padding: 26px 18px 18px; display: grid; gap: 10px; position: relative; }
.phone-screen::before { content: ""; position: absolute; top: 9px; left: 50%; width: 64px; height: 6px; border-radius: 6px; background: var(--line-2); transform: translateX(-50%); }
.ph-title { font: 700 19px/1.1 var(--f-display); }
.ph-q { font-size: 13.5px; font-weight: 600; margin-top: 6px; line-height: 1.35; }
.slider { position: relative; height: 8px; border-radius: 8px; background: var(--surface-2); margin: 8px 0 2px; }
.slider i { position: absolute; inset: 0 auto 0 0; border-radius: inherit; background: var(--brand); }
.slider b { position: absolute; top: 50%; width: 22px; height: 22px; border-radius: 50%; background: var(--surface); border: 3px solid var(--brand); transform: translate(-50%, -50%); box-shadow: var(--shadow); }
.scale { display: flex; justify-content: space-between; align-items: center; font-size: 11px; color: var(--ink-3); }
.scale strong { font: 700 18px/1 var(--f-display); color: var(--brand); }
.rank { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.rank li { display: grid; grid-template-columns: 16px 1fr auto; gap: 8px; align-items: center; padding: 8px 10px; border: 1.5px solid var(--line); border-radius: 10px; font-size: 13px; font-weight: 600; background: var(--surface); }
.rank li:first-child { border-color: var(--brand); box-shadow: var(--shadow); }
.rank svg { width: 16px; height: 16px; color: var(--ink-3); }
.rank em { font: 500 11px/1 var(--f-mono); font-style: normal; color: var(--brand); background: var(--brand-soft); padding: 4px 7px; border-radius: 6px; }
.ph-upload { display: flex; align-items: center; gap: 8px; justify-content: center; padding: 10px; border: 1.5px dashed var(--line-2); border-radius: 10px; font-size: 12.5px; color: var(--ink-2); margin-top: 4px; }
.ph-upload svg { width: 17px; height: 17px; }

/* devices */
.art-devices { padding: 0 140px 60px 0; }
.dev-laptop .mock-body { padding: 14px 16px; }
.dev-phone { position: absolute; right: 0; bottom: 0; width: 190px; }
.dev-phone .phone-screen { padding: 24px 14px 14px; gap: 7px; }
.dev-phone .ph-title { font-size: 16px; }

/* languages */
.langs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.lang-card { background: var(--surface); border: 1px solid var(--line); border-radius: 14px; padding: 14px 16px; display: grid; gap: 10px; box-shadow: var(--shadow); align-content: start; }
.lang-card:first-child { border-color: var(--brand); }
.lang-top { display: flex; justify-content: space-between; align-items: center; }
.lang-st { font: 500 10.5px var(--f-mono); color: var(--ok); }
.lang-card p { font-size: 14.5px; font-weight: 600; line-height: 1.4; }
.lang-code { display: flex; justify-content: space-between; align-items: center; padding-top: 10px; border-top: 1px dashed var(--line-2); font: 500 11px var(--f-mono); color: var(--ink-3); }
.art-langs .art-cap { text-align: left; }

/* files */
.files { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.file { display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 12px; row-gap: 2px; align-items: center; padding: 12px; border: 1px solid var(--line); border-radius: 12px; }
.ext { grid-row: span 2; width: 44px; height: 50px; border-radius: 8px 14px 8px 8px; display: grid; place-items: end center; padding-bottom: 7px; font: 600 10.5px/1 var(--f-mono); background: var(--brand-soft); color: var(--brand); }
.ext-xlsx, .ext-csv { background: var(--ok-soft); color: var(--ok); }
.ext-dta, .ext-rds { background: var(--brand-soft); color: var(--brand); }
.ext-pdf { background: var(--accent-soft); color: var(--warn); }
.fname { font: 500 11.5px/1.3 var(--f-mono); color: var(--ink); overflow-wrap: anywhere; }
.fdesc { font-size: 12px; color: var(--ink-3); }

/* routing flow */
.flow { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px 12px; align-items: center; }
.fl-main { position: relative; display: flex; justify-content: center; }
.fl-main:not(.last)::after { content: ""; position: absolute; left: 50%; top: 100%; width: 2px; height: 14px; background: var(--line-2); }
.fl-side { display: flex; align-items: center; gap: 8px; }
.node { display: inline-flex; flex-direction: column; align-items: center; gap: 5px; width: 100%; padding: 10px 12px; border-radius: 10px; border: 1.5px solid var(--line-2); background: var(--surface); font-size: 12.5px; font-weight: 650; text-align: center; line-height: 1.3; }
.node code { font-size: 10.5px; }
.node.dec { border-color: var(--brand); background: var(--brand-soft); color: var(--ink); border-style: dashed; }
.node.end.ok { border-color: var(--ok); background: var(--ok-soft); }
.node.end.err { border-color: var(--err); background: var(--err-soft); }
.node.end.warn { border-color: var(--warn); background: var(--warn-soft); }
.br { flex: none; font: 600 10.5px/1 var(--f-mono); color: var(--ink-3); padding: 4px 0; position: relative; }
.br::before { content: "←"; margin-right: 4px; }

/* ================================================= responsive */
@media (max-width: 1080px) {
  .cards.cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .timeline { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .foot-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gn { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 960px) {
  .hero-grid, .split, .steps-layout, .faq-layout, .cta-box, .contact-grid, .svc-body { grid-template-columns: minmax(0, 1fr); }
  .split.reverse .split-art { order: 0; }
  .split-art, .sticky-head { position: static; }
  .hero-art { max-width: 600px; }
  .cards.cols-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .svc-layout { grid-template-columns: minmax(0, 1fr); }
  .svc-nav { position: static; }
  .svc-nav ul { display: flex; overflow-x: auto; gap: 6px; scrollbar-width: thin; }
  .svc-nav li { flex: none; }
  .svc-nav a { grid-template-columns: 18px auto; white-space: nowrap; }
  .gh-inner { grid-template-columns: minmax(0, 1fr); gap: 10px; }
}
@media (max-width: 640px) {
  body { font-size: 16px; }
  .cards.cols-3, .cards.cols-2, .cards.cols-4 { grid-template-columns: minmax(0, 1fr); }
  .checks.cols-2, .fld-row, .langs, .files, .foot-grid { grid-template-columns: minmax(0, 1fr); }
  .timeline { grid-template-columns: minmax(0, 1fr); }
  .timeline li { grid-template-columns: 34px 1fr; align-items: center; }
  .gn { grid-template-columns: minmax(0, 1fr); }
  .groupnav { margin-top: 24px; }
  .facts { gap: 16px; }
  .facts strong { font-size: 17px; }
  .art-hero { padding: 58px 0 60px; }
  .float-a { max-width: 230px; }
  .float-b { width: 200px; }
  .art-devices { padding: 0 0 12px; display: grid; gap: 16px; }
  .dev-phone { position: static; justify-self: center; width: 220px; }
  .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dash-grid { grid-template-columns: minmax(0, 1fr); }
  .hide-sm { display: none; }
  .flow { grid-template-columns: minmax(0, 1fr); }
  .fl-main::after { display: none; }
  .fl-side { padding-left: 16px; }
  .br::before { content: "↳"; }
  .float-d { position: relative; margin-top: 14px; max-width: none; }
  .art-phone { padding-bottom: 0; }
  .faq details p { padding-right: 4px; }
  .cd-row { grid-template-columns: auto minmax(0, 1fr); }
  .cd-row .copy-btn { grid-column: 2; justify-self: start; }
  .svc-head { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
.page { animation: pagein .35s ease both; }
@keyframes pagein { from { opacity: .4; } to { opacity: 1; } }

.art-hero.people { padding: 30px 0 40px; }
.art-hero.people .float-a { top: 0; right: 0; }
.art-hero.people .float-b { bottom: 0; left: 0; }
.head-with-scene { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(24px, 4vw, 56px); align-items: center; margin-bottom: clamp(32px, 4vw, 52px); }
.head-with-scene .sec-head { margin-bottom: 0; }
.head-scene { max-width: 540px; justify-self: end; width: 100%; }
.head-scene.side { justify-self: start; max-width: 380px; margin-top: 14px; }
.svc-scene { max-width: 400px; margin-top: 4px; }
.gh-inner.has-scene { grid-template-columns: 170px minmax(0, 1fr) minmax(0, 380px); align-items: center; }
.gh-scene { width: 100%; }
.card-scene { max-width: 300px; margin: -6px auto 4px; }
@media (max-width: 960px) {
  .head-with-scene { grid-template-columns: minmax(0, 1fr); }
  .head-scene { justify-self: start; max-width: 480px; }
  .gh-inner.has-scene { grid-template-columns: minmax(0, 1fr); }
  .gh-scene { max-width: 420px; }
}
@media (max-width: 640px) {
  .art-hero.people { padding: 64px 0 64px; }
  .head-scene.side { max-width: 320px; }
}

/* ================================================= standards band */
.sec.band .sec-intro { color: var(--on-band-2); }
.sec.band .sec-head h2 { color: var(--on-band); }
.sec.band .card { color: var(--ink); border-color: transparent; }
.sec.band .card h3 { color: var(--ink); }
.sec.band .card .ic { background: var(--accent-soft); color: var(--warn); }
.cards-footnote { margin-top: 24px; font-size: 14.5px; max-width: 80ch; color: var(--ink-3); }
.sec.band .cards-footnote { color: var(--on-band-2); }

/* ================================================= photos */
.photo { margin: 0; border-radius: 20px; overflow: hidden; background: var(--surface-2); box-shadow: var(--shadow); }
.photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.photo-hero { aspect-ratio: 3 / 2; max-width: 600px; margin-left: auto; box-shadow: var(--shadow-lg); border: 6px solid rgba(234, 245, 242, .1); }
.head-photo { aspect-ratio: 3 / 2; width: 100%; max-width: 560px; justify-self: end; }
.svc-photo { aspect-ratio: 4 / 3; max-width: 440px; margin-top: 6px; }
.gh-inner.has-scene { grid-template-columns: 170px minmax(0, 1fr) minmax(0, 400px); }
.gh-photo { aspect-ratio: 16 / 10; width: 100%; }
@media (max-width: 960px) {
  .photo-hero { margin-left: 0; }
  .head-photo { justify-self: start; }
  .gh-photo { max-width: 520px; }
}

/* ================================================= brand logo */
.brand-logo { display: block; height: 46px; width: auto; max-width: none; }
.brand-logo-dark { display: none; }
.site-footer .brand-logo { height: 52px; }
.site-footer .brand-logo-light { display: none; }
.site-footer .brand-logo-dark { display: block; }
@media (max-width: 640px) { .brand-logo { height: 40px; } }

/* ================================================= client logos */
.sec.logos-sec { padding-block: clamp(52px, 6vw, 84px); border-bottom: 1px solid var(--line); }
.logos-sec .sec-head { margin-inline: auto; text-align: center; justify-items: center; margin-bottom: clamp(26px, 3vw, 38px); }
.logos-sec .sec-head h2 { font-size: clamp(24px, 2.6vw, 32px); text-wrap: balance; }
.logo-grid { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; }
.logo-grid li {
  flex: 0 0 calc((100% - 6 * 14px) / 7); min-width: 0; display: grid; place-items: center;
  background: #FFFFFF; border: 1px solid var(--line); border-radius: 14px; padding: 14px 12px;
  box-shadow: 0 1px 2px rgba(14, 37, 39, .04); transition: box-shadow .2s, transform .2s;
}
.logo-grid li:hover { box-shadow: var(--shadow); transform: translateY(-2px); }
.logo-grid img { display: block; width: 100%; max-width: 180px; height: auto; }
.logos-foot { margin: 20px auto 0; text-align: center; font-size: 13px; color: var(--ink-3); }
@media (max-width: 1080px) { .logo-grid li { flex-basis: calc((100% - 3 * 14px) / 4); } }
@media (max-width: 640px) { .logo-grid { gap: 10px; } .logo-grid li { flex-basis: calc((100% - 10px) / 2); padding: 12px 10px; } }

/* ================================================= standards plates */
.std-card { gap: 14px; }
.std-plate {
  height: 84px; display: flex; align-items: center; justify-content: center; gap: 12px; padding: 10px 14px;
  background: #FFFFFF; border: 1px solid #D3E2DD; border-radius: 12px; margin: 0;
}
.std-plate img { display: block; height: 70px; width: auto; }
.std-plate p, .std-badge p { margin: 0; display: grid; gap: 2px; text-align: left; }
.std-badge em { font: normal 500 11.5px/1.2 var(--f-mono); letter-spacing: .1em; text-transform: uppercase; color: #62807E; }
.std-badge strong { font: 900 22px/1.1 var(--f-display); letter-spacing: -.01em; color: #0F5B5F; white-space: nowrap; }
.std-ic { width: 40px; height: 40px; border-radius: 11px; background: #FCEBCB; color: #A5650A; display: grid; place-items: center; flex: none; }
.std-ic svg { width: 22px; height: 22px; }
@media (max-width: 1180px) and (min-width: 961px) { .std-badge strong { font-size: 19px; } }

/* ================================================= optional labels */
.hero h1.h1-long { font-size: clamp(34px, 4.1vw, 52px); line-height: 1.08; }
.hero-copy > h1:first-child { margin-top: 0; }
.hero-copy > .btn-row + p { margin-top: 26px; }
.gh-inner.no-label { grid-template-columns: minmax(0, 1fr); }
.gh-inner.no-label.has-scene { grid-template-columns: minmax(0, 1fr) minmax(0, 400px); }
@media (max-width: 960px) { .gh-inner.no-label.has-scene { grid-template-columns: minmax(0, 1fr); } }

/* ================================================= TFL illustration */
.tfl-head { display: grid; gap: 4px; padding: 4px 2px 10px; }
.tfl-head .tag { font: 700 10.5px/1.2 var(--f-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--brand); }
.tfl-head strong { font-size: 13.5px; }
.tfl-head .pop { font-size: 11px; color: var(--ink-3); }
.m-table.tfl th small { font-weight: 500; color: var(--ink-3); }
.m-table.tfl tr.grp td { padding-top: 8px; }
.m-table.tfl td:first-child { white-space: nowrap; }
/* five jump cards */
.gn.cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
@media (max-width: 960px) { .gn.cols-5 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ================================================= "On this page" side menu (Home, Innovation)
   Wide screens: a sticky panel in the left margin. Laptops (1100px+): the panel docks at the left edge and the
   page content moves right to make room. Narrower: a row of chips under the hero. */
.with-menu { position: relative; }
.with-menu-main { min-width: 0; }
.page-menu { display: none; }
.page-menu ul { list-style: none; margin: 0; padding: 8px; display: grid; gap: 2px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); box-shadow: var(--shadow); }
.page-menu .pm-title { font: 700 11px/1.2 var(--f-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); margin: 0 0 8px 10px; }
.page-menu a { display: block; padding: 7px 10px; border-radius: 9px; color: var(--ink-2); text-decoration: none; font-weight: 600; font-size: 13.5px; line-height: 1.3; }
.page-menu a:hover, .page-menu a.is-active { background: var(--tint); color: var(--brand); }
@media (min-width: 1100px) {
  .page-menu { display: block; position: sticky; top: calc(var(--head-h) + 24px); float: left; width: 200px; margin-left: 20px; z-index: 5; }
  .with-menu-main { clear: none; }
  .has-pm .wrap { width: min(1180px, 100vw - 268px); margin-left: max(calc((100vw - 1180px) / 2), 240px); }
}
@media (min-width: 1680px) {
  .page-menu { margin-left: calc((100vw - 1204px) / 2 - 224px); }
  .has-pm .wrap { width: min(1180px, 100% - 32px); margin-inline: auto; }
}
@media (max-width: 1099px) {
  .page-menu.show-chips { display: block; }
  .page-menu.show-chips .pm-title { display: none; }
  .page-menu.show-chips ul { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; background: none; border: 0; box-shadow: none; width: min(1204px, 100% - 48px); margin: 20px auto 0; }
  .page-menu.show-chips a { padding: 6px 12px; border-radius: 999px; background: var(--surface); border: 1px solid var(--line); font-size: 13px; }
}
}
.page-menu.pm-hidden { opacity: 0; pointer-events: none; transition: opacity .2s; }

/* ================================================= demo videos */
.video-list { display: grid; gap: 28px; margin-top: 36px; }
.video { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: clamp(20px, 3vw, 40px); align-items: start; padding: clamp(16px, 2vw, 24px); background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); box-shadow: var(--shadow); }
.video-frame { position: relative; aspect-ratio: 16 / 9; border-radius: 12px; overflow: hidden; background: var(--band); }
.video-frame img, .video-frame video, .video-frame iframe { display: block; width: 100%; height: 100%; object-fit: cover; border: 0; }
.video-frame video { background: #000; object-fit: contain; }
.video-soon { position: absolute; right: 12px; top: 12px; font: 500 11.5px/1 var(--f-mono); letter-spacing: .04em; padding: 7px 10px; border-radius: 999px; background: rgba(11, 58, 61, .82); color: #EAF5F2; }
.video-info { display: grid; gap: 10px; align-content: start; min-width: 0; }
.video-info h3 { font: 700 clamp(20px, 2vw, 24px)/1.2 var(--f-display); letter-spacing: -.01em; }
.video-meta { font: 500 12px/1.3 var(--f-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--brand); }
.video-ch-title { font: 700 11px/1.2 var(--f-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); margin-top: 6px; }
.video-chapters { list-style: none; margin: 0; padding: 4px; display: grid; gap: 1px; max-height: 232px; overflow: auto; border: 1px solid var(--line); border-radius: 12px; background: var(--bg); }
.video-chapters a { display: grid; grid-template-columns: 46px 1fr; gap: 8px; padding: 6px 8px; border-radius: 8px; color: var(--ink-2); text-decoration: none; font-size: 14px; line-height: 1.35; }
.video-chapters a:hover, .video-chapters a.is-playing { background: var(--tint); color: var(--brand); }
.video-chapters .vt { font: 500 12.5px/1.5 var(--f-mono); color: var(--brand); }
@media (max-width: 860px) { .video { grid-template-columns: minmax(0, 1fr); } .video-chapters { max-height: 200px; } }
@media (max-width: 1100px) and (min-width: 615px) { .foot-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .foot-brand { grid-column: 1 / -1; } }

/* ================================================= icons */
:root {
  --ic-arrow: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 12h14%22/%3E%3Cpath d=%22m13 6 6 6-6 6%22/%3E%3C/svg%3E");
  --ic-check: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath stroke-width=%223%22 d=%22m5 12.5 4.5 4.5L19 7.5%22/%3E%3C/svg%3E");
  --ic-alert: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 4 2.8 19.5h18.4L12 4Z%22/%3E%3Cpath d=%22M12 10v4.5%22/%3E%3Cpath d=%22M12 17.2v.1%22/%3E%3C/svg%3E");
}
.ic-build { --ic: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 3 3 7.5 12 12l9-4.5L12 3Z%22/%3E%3Cpath d=%22m3 12 9 4.5 9-4.5%22/%3E%3Cpath d=%22m3 16.5 9 4.5 9-4.5%22/%3E%3C/svg%3E"); }
.ic-shield { --ic: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 3 5 6v5c0 4.4 3 8.3 7 10 4-1.7 7-5.6 7-10V6l-7-3Z%22/%3E%3Cpath d=%22m9 12 2 2 4-4%22/%3E%3C/svg%3E"); }
.ic-people { --ic: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%229%22 cy=%228%22 r=%223.2%22/%3E%3Cpath d=%22M3.5 19c.6-3.2 2.8-5 5.5-5s4.9 1.8 5.5 5%22/%3E%3Ccircle cx=%2217%22 cy=%229%22 r=%222.5%22/%3E%3Cpath d=%22M16 14.2c2.4.2 4 1.8 4.5 4.8%22/%3E%3C/svg%3E"); }
.ic-cloud { --ic: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M7 18h10a4 4 0 0 0 .6-7.95A6 6 0 0 0 6.2 9.1 4.5 4.5 0 0 0 7 18Z%22/%3E%3C/svg%3E"); }
.ic-code { --ic: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22m8 8-4 4 4 4%22/%3E%3Cpath d=%22m16 8 4 4-4 4%22/%3E%3Cpath d=%22m13.5 5-3 14%22/%3E%3C/svg%3E"); }
.ic-compass { --ic: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%229%22/%3E%3Cpath d=%22m15.5 8.5-2 5-5 2 2-5 5-2Z%22/%3E%3C/svg%3E"); }
.ic-clock { --ic: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%229%22/%3E%3Cpath d=%22M12 7v5l3 2%22/%3E%3C/svg%3E"); }
.ic-sliders { --ic: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M4 7h10M18 7h2M4 17h4M12 17h8%22/%3E%3Ccircle cx=%2216%22 cy=%227%22 r=%222%22/%3E%3Ccircle cx=%2210%22 cy=%2217%22 r=%222%22/%3E%3C/svg%3E"); }
.ic-chat { --ic: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 5h14a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1h-8l-4 3v-3H5a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1Z%22/%3E%3Cpath d=%22M8 9.5h8M8 12.5h5%22/%3E%3C/svg%3E"); }
.ic-download { --ic: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 4v11%22/%3E%3Cpath d=%22m7.5 10.5 4.5 4.5 4.5-4.5%22/%3E%3Cpath d=%22M5 20h14%22/%3E%3C/svg%3E"); }
.ic-chart { --ic: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M4 20V4%22/%3E%3Cpath d=%22M4 20h16%22/%3E%3Cpath d=%22M8 16v-4M12 16V8M16 16v-6%22/%3E%3C/svg%3E"); }
.ic-building { --ic: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M4 21V5l8-2v18%22/%3E%3Cpath d=%22M12 9h8v12%22/%3E%3Cpath d=%22M7 8h2M7 12h2M7 16h2M15 13h2M15 17h2%22/%3E%3Cpath d=%22M2 21h20%22/%3E%3C/svg%3E"); }
.ic-flask { --ic: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M9.5 3h5%22/%3E%3Cpath d=%22M10.5 3v6.2L5 18.5A1.7 1.7 0 0 0 6.5 21h11a1.7 1.7 0 0 0 1.5-2.5l-5.5-9.3V3%22/%3E%3Cpath d=%22M7.5 15h9%22/%3E%3C/svg%3E"); }
.ic-cohort { --ic: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%226%22 cy=%226%22 r=%222%22/%3E%3Ccircle cx=%2212%22 cy=%226%22 r=%222%22/%3E%3Ccircle cx=%2218%22 cy=%226%22 r=%222%22/%3E%3Ccircle cx=%226%22 cy=%2212%22 r=%222%22/%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%222%22/%3E%3Ccircle cx=%2218%22 cy=%2212%22 r=%222%22/%3E%3Ccircle cx=%226%22 cy=%2218%22 r=%222%22/%3E%3Ccircle cx=%2212%22 cy=%2218%22 r=%222%22/%3E%3Cpath d=%22m16.3 18 1.4 1.4 2.5-2.6%22/%3E%3C/svg%3E"); }
.ic-device { --ic: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%227%22 y=%222.5%22 width=%2210%22 height=%2219%22 rx=%222.5%22/%3E%3Cpath d=%22M11 18.5h2%22/%3E%3Cpath d=%22m9.5 10 1.7 1.7L14.5 8.5%22/%3E%3C/svg%3E"); }
.ic-cap { --ic: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22m2 9 10-5 10 5-10 5L2 9Z%22/%3E%3Cpath d=%22M6 11v5c1.7 1.5 3.7 2.2 6 2.2s4.3-.7 6-2.2v-5%22/%3E%3Cpath d=%22M22 9v5%22/%3E%3C/svg%3E"); }
.ic-heart { --ic: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 20s-7.5-4.4-7.5-10A4.3 4.3 0 0 1 12 7.3 4.3 4.3 0 0 1 19.5 10c0 5.6-7.5 10-7.5 10Z%22/%3E%3Cpath d=%22M8 12h2.2l1.2-2.2 1.8 4 1.1-1.8H16%22/%3E%3C/svg%3E"); }
.ic-database { --ic: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cellipse cx=%2212%22 cy=%225.5%22 rx=%227.5%22 ry=%222.8%22/%3E%3Cpath d=%22M4.5 5.5v13c0 1.5 3.4 2.8 7.5 2.8s7.5-1.3 7.5-2.8v-13%22/%3E%3Cpath d=%22M4.5 12c0 1.5 3.4 2.8 7.5 2.8s7.5-1.3 7.5-2.8%22/%3E%3C/svg%3E"); }
.ic-activity { --ic: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M3 12h4l2.5-6 5 12 2.5-6h4%22/%3E%3C/svg%3E"); }
.ic-phone { --ic: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%226.5%22 y=%222.5%22 width=%2211%22 height=%2219%22 rx=%222.5%22/%3E%3Cpath d=%22M9.5 8h5M9.5 11h5M9.5 14h3%22/%3E%3C/svg%3E"); }
.ic-clipboard { --ic: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%225%22 y=%224.5%22 width=%2214%22 height=%2217%22 rx=%222%22/%3E%3Cpath d=%22M9 4.5V3.5h6v1%22/%3E%3Cpath d=%22M8.5 10h7M8.5 13.5h7M8.5 17h4%22/%3E%3C/svg%3E"); }
.ic-globe { --ic: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%229%22/%3E%3Cpath d=%22M3 12h18%22/%3E%3Cpath d=%22M12 3c2.5 2.6 3.8 5.6 3.8 9s-1.3 6.4-3.8 9c-2.5-2.6-3.8-5.6-3.8-9S9.5 5.6 12 3Z%22/%3E%3C/svg%3E"); }
.ic-key { --ic: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%228%22 cy=%2215%22 r=%224%22/%3E%3Cpath d=%22m11 12 8-8%22/%3E%3Cpath d=%22m16 7 2.5 2.5%22/%3E%3Cpath d=%22m14 9 1.5 1.5%22/%3E%3C/svg%3E"); }
.ic-link { --ic: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M10 14a4 4 0 0 0 5.7 0l3-3a4 4 0 0 0-5.7-5.7l-1.2 1.2%22/%3E%3Cpath d=%22M14 10a4 4 0 0 0-5.7 0l-3 3a4 4 0 0 0 5.7 5.7l1.2-1.2%22/%3E%3C/svg%3E"); }
.ic-sitemap { --ic: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%229%22 y=%223%22 width=%226%22 height=%225%22 rx=%221%22/%3E%3Crect x=%222.5%22 y=%2216%22 width=%226%22 height=%225%22 rx=%221%22/%3E%3Crect x=%229%22 y=%2216%22 width=%226%22 height=%225%22 rx=%221%22/%3E%3Crect x=%2215.5%22 y=%2216%22 width=%226%22 height=%225%22 rx=%221%22/%3E%3Cpath d=%22M12 8v4M5.5 16v-2a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v2M12 12v4%22/%3E%3C/svg%3E"); }
.ic-clipcheck { --ic: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%225%22 y=%224.5%22 width=%2214%22 height=%2217%22 rx=%222%22/%3E%3Cpath d=%22M9 4.5V3.5h6v1%22/%3E%3Cpath d=%22m8.5 13 2.5 2.5 4.5-5%22/%3E%3C/svg%3E"); }
.ic-usershield { --ic: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 3 5 6v5c0 4.4 3 8.3 7 10 4-1.7 7-5.6 7-10V6l-7-3Z%22/%3E%3Ccircle cx=%2212%22 cy=%2210%22 r=%222.5%22/%3E%3Cpath d=%22M8 16.5c.8-1.8 2.2-2.7 4-2.7s3.2.9 4 2.7%22/%3E%3C/svg%3E"); }
.ic-signature { --ic: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8l-5-5Z%22/%3E%3Cpath d=%22M14 3v5h5%22/%3E%3Cpath d=%22M8 17c1.2-1.5 2.2-2.2 3-2 .9.2.3 1.8 1.2 2 .8.2 1.5-.9 2.3-1.1.6-.1 1 .3 1.5.6%22/%3E%3C/svg%3E"); }
p.std-badge.ic-sitemap::before, .rg-std-badge.ic-sitemap .pagelayer-text-holder::before { background: #FCEBCB url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23A5650A%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%229%22 y=%223%22 width=%226%22 height=%225%22 rx=%221%22/%3E%3Crect x=%222.5%22 y=%2216%22 width=%226%22 height=%225%22 rx=%221%22/%3E%3Crect x=%229%22 y=%2216%22 width=%226%22 height=%225%22 rx=%221%22/%3E%3Crect x=%2215.5%22 y=%2216%22 width=%226%22 height=%225%22 rx=%221%22/%3E%3Cpath d=%22M12 8v4M5.5 16v-2a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v2M12 12v4%22/%3E%3C/svg%3E") center / 22px no-repeat; }
p.std-badge.ic-clipcheck::before, .rg-std-badge.ic-clipcheck .pagelayer-text-holder::before { background: #FCEBCB url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23A5650A%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%225%22 y=%224.5%22 width=%2214%22 height=%2217%22 rx=%222%22/%3E%3Cpath d=%22M9 4.5V3.5h6v1%22/%3E%3Cpath d=%22m8.5 13 2.5 2.5 4.5-5%22/%3E%3C/svg%3E") center / 22px no-repeat; }
p.std-badge.ic-usershield::before, .rg-std-badge.ic-usershield .pagelayer-text-holder::before { background: #FCEBCB url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23A5650A%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 3 5 6v5c0 4.4 3 8.3 7 10 4-1.7 7-5.6 7-10V6l-7-3Z%22/%3E%3Ccircle cx=%2212%22 cy=%2210%22 r=%222.5%22/%3E%3Cpath d=%22M8 16.5c.8-1.8 2.2-2.7 4-2.7s3.2.9 4 2.7%22/%3E%3C/svg%3E") center / 22px no-repeat; }
p.std-badge.ic-signature::before, .rg-std-badge.ic-signature .pagelayer-text-holder::before { background: #FCEBCB url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23A5650A%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8l-5-5Z%22/%3E%3Cpath d=%22M14 3v5h5%22/%3E%3Cpath d=%22M8 17c1.2-1.5 2.2-2.2 3-2 .9.2.3 1.8 1.2 2 .8.2 1.5-.9 2.3-1.1.6-.1 1 .3 1.5.6%22/%3E%3C/svg%3E") center / 22px no-repeat; }

/* ================================================= WordPress blocks and menus */
main#main { display: block; }
.rg-sections main#main > *:first-child { margin-top: 0; }
.sec .wp-block-list, .band .wp-block-list { margin: 0; }
.wp-block-group { box-sizing: border-box; }
.admin-bar .site-header { top: calc(32px + env(safe-area-inset-top, 0px)); }
@media (max-width: 782px) { .admin-bar .site-header { top: calc(46px + env(safe-area-inset-top, 0px)); } }
@media (max-width: 600px) { .admin-bar .site-header { top: env(safe-area-inset-top, 0px); } }
.admin-bar [id] { scroll-margin-top: calc(var(--head-h) + 52px); }
.custom-logo-link img { max-height: 44px; width: auto; display: block; }

/* header menu */
.site-nav .nav-list { display: flex; align-items: center; gap: 4px; list-style: none; margin: 0; padding: 0; }
.site-nav .nav-list a { display: block; color: var(--ink-2); text-decoration: none; font-weight: 600; font-size: 15px; padding: 8px 14px; border-radius: 999px; transition: background .15s, color .15s; }
.site-nav .nav-list a:hover { color: var(--ink); background: var(--tint); }
.site-nav .nav-list .current-menu-item:not(.menu-cta) > a, .site-nav .nav-list .current_page_item:not(.menu-cta) > a { color: var(--brand); background: var(--brand-soft); }
.site-nav .nav-list .menu-cta { margin-left: 10px; }
.site-nav .nav-list .menu-cta > a { background: var(--accent); color: var(--on-accent); padding: 10px 18px; }
.site-nav .nav-list .menu-cta > a:hover { background: var(--accent-2); color: var(--on-accent); }
@media (max-width: 860px) {
  .site-nav .nav-list { flex-direction: column; align-items: stretch; gap: 2px; }
  .site-nav .nav-list a { padding: 12px 14px; font-size: 17px; }
  .site-nav .nav-list .menu-cta { margin: 10px 0 0; }
  .site-nav .nav-list .menu-cta > a { text-align: center; }
}

/* buttons */
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.wp-block-buttons .wp-block-button { margin: 0; }
.wp-block-button .wp-block-button__link {
  display: inline-flex; align-items: center; gap: 8px; padding: 13px 22px; border-radius: 999px; border: 1.5px solid transparent;
  font: 600 15.5px/1.1 var(--f-body); text-decoration: none; background: var(--brand); color: var(--on-brand);
  transition: transform .15s ease, background .15s, border-color .15s, color .15s;
}
.wp-block-button .wp-block-button__link:hover { transform: translateY(-1px); }
.wp-block-button.btn-primary .wp-block-button__link { background: var(--accent); color: var(--on-accent); }
.wp-block-button.btn-primary .wp-block-button__link:hover { background: var(--accent-2); }
.wp-block-button.btn-ghost .wp-block-button__link { background: transparent; color: var(--brand); border-color: var(--line-2); }
.wp-block-button.btn-ghost .wp-block-button__link:hover { border-color: var(--brand); }
.band .wp-block-button.btn-ghost .wp-block-button__link, .cta-box .wp-block-button.btn-ghost .wp-block-button__link { color: var(--on-band); border-color: var(--band-line); }
.band .wp-block-button.btn-ghost .wp-block-button__link:hover, .cta-box .wp-block-button.btn-ghost .wp-block-button__link:hover { border-color: var(--on-band); }
.wp-block-button.btn-primary .wp-block-button__link::after, .wp-block-button.btn-ghost .wp-block-button__link::after,
p.more a::after {
  content: ""; width: 18px; height: 18px; flex: none; background: currentColor;
  -webkit-mask: var(--ic-arrow) center / contain no-repeat; mask: var(--ic-arrow) center / contain no-repeat;
}
.hero .wp-block-buttons { margin-top: 8px; }
.wp-block-button.btn-primary, .wp-block-button.btn-primary:hover, .wp-block-button.btn-ghost { background: none; border: 0; padding: 0; transform: none; }
.band .wp-block-list.facts { margin: clamp(40px, 6vw, 64px) 0 0; padding: 22px 0 0; border-top: 1px solid var(--band-line); list-style: none; }
.btn-cta { white-space: nowrap; }

/* "more" links */
p.more a { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; color: var(--brand); text-decoration: none; }
p.more a::after { width: 16px; height: 16px; transition: transform .15s; }
p.more a:hover { text-decoration: underline; text-underline-offset: 4px; }
p.more a:hover::after { transform: translateX(3px); }
.sec a:not(.wp-block-button__link):not(.btn) { text-underline-offset: 3px; }

/* hero */
.hero h1 mark { background: none !important; color: var(--accent) !important; }
.hero .hero-copy > h2.hero-sub { font: 500 clamp(19px, 1.8vw, 23px)/1.35 var(--f-body); color: var(--on-band); letter-spacing: 0; max-width: 34ch; }
.hero-copy > p:not(.eyebrow):not(.hero-lead) { color: var(--on-band-2); max-width: 60ch; }
.facts li { display: grid; gap: 4px; color: var(--on-band-2); font-size: 14.5px; line-height: 1.4; }
.facts li strong { display: block; font: 700 19px/1.2 var(--f-display); color: var(--on-band); }
.plain-hero { padding-block: clamp(44px, 6vw, 72px); }
.plain-hero h1 { font-size: clamp(32px, 4vw, 48px); }

/* section heads */
.sec-head > p.sec-intro { color: var(--ink-2); font-size: 18px; max-width: 64ch; }
.split-text > p.lead { color: var(--ink-2); font-size: 17.5px; max-width: 62ch; }
.split-text > p.list-title:not(.eyebrow):not(.note):not(.split-link) { margin: 10px 0 2px; color: var(--ink-3); font-size: 12.5px; max-width: none; }
p.list-title { font: 700 12.5px/1.3 var(--f-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); margin: 0 0 14px; }
.list-panel p.list-title { margin-bottom: 14px; }
.card > p.list-title { margin-bottom: 4px; }

/* icons: shared shapes */
.card[class*="ic-"] { position: relative; --card-pad: clamp(22px, 2.4vw, 30px); padding: var(--card-pad); }
.cards.compact .card[class*="ic-"] { --card-pad: 22px; }
.card[class*="ic-"]::before { content: ""; width: 46px; height: 46px; border-radius: 13px; background: var(--brand-soft); flex: none; }
.card[class*="ic-"]::after {
  content: ""; position: absolute; top: calc(var(--card-pad) + 11px); left: calc(var(--card-pad) + 11px); width: 24px; height: 24px;
  background: var(--brand); -webkit-mask: var(--ic) center / contain no-repeat; mask: var(--ic) center / contain no-repeat;
}
.card.access-card[class*="ic-"] { gap: 16px; }
.card > h3 { margin-top: 2px; }
.card > p.card-link { margin-top: auto; padding-top: 6px; }

/* check lists */
ul.rg-checks { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
ul.rg-checks.cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; }
ul.rg-checks > li { position: relative; padding-left: 32px; line-height: 1.45; min-height: 22px; }
ul.rg-checks > li::before { content: ""; position: absolute; left: 0; top: 1px; width: 22px; height: 22px; border-radius: 50%; background: var(--brand-soft); }
ul.rg-checks > li::after {
  content: ""; position: absolute; left: 5px; top: 6px; width: 12px; height: 12px; background: var(--brand);
  -webkit-mask: var(--ic-check) center / contain no-repeat; mask: var(--ic-check) center / contain no-repeat;
}
ul.rg-checks.on-band > li::before { background: rgba(242, 162, 44, .18); }
ul.rg-checks.on-band > li::after { background: var(--accent); }
.cta-list ul.rg-checks { gap: 14px; font-size: 17px; }

/* numbered steps */
ol.rg-steps { list-style: none; margin: 0; padding: 0; counter-reset: rgstep; }
ol.rg-steps > li { counter-increment: rgstep; position: relative; padding: 0 0 30px 68px; color: var(--ink-2); min-height: 48px; }
ol.rg-steps > li:last-child { padding-bottom: 0; }
ol.rg-steps > li::before {
  content: counter(rgstep, decimal-leading-zero); position: absolute; left: 0; top: 0; width: 48px; height: 48px; border-radius: 50%;
  border: 2px solid var(--brand); color: var(--brand); background: var(--surface); display: grid; place-items: center; font: 500 15px/1 var(--f-mono); box-sizing: border-box;
}
ol.rg-steps > li:not(:last-child)::after { content: ""; position: absolute; left: 23px; top: 54px; bottom: 6px; width: 2px; background: linear-gradient(var(--line-2), var(--line)); }
ol.rg-steps > li > strong { display: block; font: 650 21px/1.2 var(--f-display); color: var(--ink); margin: 10px 0 6px; }
ol.rg-steps.mini > li { padding: 0 0 18px 48px; font-size: 15px; min-height: 34px; }
ol.rg-steps.mini > li:last-child { padding-bottom: 0; }
ol.rg-steps.mini > li::before { width: 34px; height: 34px; font-size: 13px; content: counter(rgstep); }
ol.rg-steps.mini > li:not(:last-child)::after { left: 16px; top: 38px; }
ol.rg-steps.mini > li > strong { font-size: 16.5px; margin: 6px 0 2px; }

/* FAQ */
.faq { border-top: 1px solid var(--line-2); }
.faq .wp-block-details { border-bottom: 1px solid var(--line-2); margin: 0; }
.faq .wp-block-details > summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 20px 2px; font: 600 18px/1.35 var(--f-display); }
.faq .wp-block-details > summary::-webkit-details-marker { display: none; }
.faq .wp-block-details > summary::after {
  content: ""; width: 28px; height: 28px; border-radius: 50%; flex: none;
  background: linear-gradient(var(--brand), var(--brand)) center / 12px 2px no-repeat, linear-gradient(var(--brand), var(--brand)) center / 2px 12px no-repeat, var(--brand-soft);
}
.faq .wp-block-details[open] > summary::after { background: linear-gradient(var(--brand), var(--brand)) center / 12px 2px no-repeat, var(--brand-soft); }
.faq .wp-block-details > p { padding: 0 44px 22px 2px; color: var(--ink-2); margin: 0; }

/* callouts */
.wp-block-group.rg-callout { position: relative; padding: 16px 18px 16px 50px; border-radius: 12px; background: var(--accent-soft); color: var(--ink); font-size: 15.5px; line-height: 1.5; }
.wp-block-group.rg-callout::before {
  content: ""; position: absolute; left: 18px; top: 17px; width: 20px; height: 20px; background: var(--warn);
  -webkit-mask: var(--ic-alert) center / contain no-repeat; mask: var(--ic-alert) center / contain no-repeat;
}
.wp-block-group.rg-callout p { margin: 0; }

/* call to action */
.cta-copy > p:not(.cta-contact) { color: var(--on-band-2); font-size: 18px; max-width: 52ch; }
.cta-copy > p.cta-contact { color: var(--on-band-2); font-size: 15px; }
.cta-contact a.sel, .cta-contact .sel { color: var(--on-band); font-weight: 600; text-decoration: none; white-space: nowrap; }

/* services */
.svc-menu { position: sticky; top: calc(var(--head-h) + 24px); }
.admin-bar .svc-menu { top: calc(var(--head-h) + 56px); }
.svc-menu ul { list-style: none; margin: 0; padding: 8px; display: grid; gap: 2px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); }
.svc-menu a { display: block; padding: 9px 12px; border-radius: 10px; color: var(--ink-2); text-decoration: none; font-weight: 600; font-size: 14.5px; line-height: 1.3; }
.svc-menu a:hover { background: var(--tint); color: var(--ink); }
.svc > .svc-title { position: relative; padding-left: 74px; min-height: 56px; }
.svc[class*="ic-"] > .svc-title::before { content: ""; position: absolute; left: 0; top: 0; width: 56px; height: 56px; border-radius: 16px; background: var(--brand-soft); }
.svc[class*="ic-"] > .svc-title::after {
  content: ""; position: absolute; left: 14px; top: 14px; width: 28px; height: 28px; background: var(--brand);
  -webkit-mask: var(--ic) center / contain no-repeat; mask: var(--ic) center / contain no-repeat;
}
.svc-title h3 { font-size: clamp(24px, 2.4vw, 30px); font-weight: 700; margin-bottom: 8px; }
.svc-title .svc-lead { font-size: 18px; color: var(--ink-2); max-width: 60ch; }
.svc-text > p:not(.note):not(.more) { color: var(--ink); }

/* process chips */
ol.rg-flow { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; counter-reset: rgflow; }
ol.rg-flow > li { counter-increment: rgflow; display: inline-flex; align-items: center; gap: 10px; padding: 10px 16px 10px 10px; border-radius: 999px; background: var(--surface); border: 1px solid var(--line); font-weight: 600; }
ol.rg-flow > li::before { content: counter(rgflow); width: 26px; height: 26px; border-radius: 50%; background: var(--brand); color: var(--on-brand); display: grid; place-items: center; font: 500 12.5px/1 var(--f-mono); }

/* innovation jump cards */
.gn-card { position: relative; display: grid; gap: 6px; padding: 20px 48px 20px 20px; }
.gn-card > p.gn-label a { font: 700 22px/1.1 var(--f-display); color: var(--brand); text-decoration: none; }
.gn-card > p.gn-label a::before { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.gn-card > p.gn-label a::after { display: none; }
.gn-card::after {
  content: ""; position: absolute; right: 18px; top: 22px; width: 20px; height: 20px; background: var(--accent-2);
  -webkit-mask: var(--ic-arrow) center / contain no-repeat; mask: var(--ic-arrow) center / contain no-repeat;
}
.gn-card:focus-within { outline: 3px solid var(--accent); outline-offset: 2px; }
.gn-card > p.gn-desc { color: var(--ink-2); font-size: 14.5px; line-height: 1.4; }

/* group heads */
.gh-inner > .gh-title p { color: var(--ink-2); font-size: 18px; margin-top: 10px; max-width: 60ch; }
.gh-inner > p.gh-label { font: 700 14px/1.2 var(--f-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--accent-2); margin: 0; font-size: 14px; }

/* timeline */
ol.rg-timeline { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; counter-reset: rgtl; }
ol.rg-timeline > li { counter-increment: rgtl; display: grid; gap: 12px; align-content: start; padding: 18px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); font-weight: 600; line-height: 1.35; font-size: 15.5px; }
ol.rg-timeline > li::before { content: counter(rgtl); width: 34px; height: 34px; border-radius: 50%; background: var(--brand-soft); color: var(--brand); display: grid; place-items: center; font: 500 13px/1 var(--f-mono); }
ol.rg-timeline > li:nth-child(7)::before { background: var(--accent); color: var(--on-accent); }

/* photos as image blocks */
figure.wp-block-image.photo { margin: 0; }
figure.wp-block-image.photo img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* contact page */
.hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.form-alert { display: grid; grid-template-columns: 22px 1fr; gap: 12px; padding: 14px 16px; border-radius: 12px; background: var(--err-soft); color: var(--ink); border: 1px solid var(--err); }
.form-alert svg { width: 22px; height: 22px; color: var(--err); }
.enquiry.result p { color: var(--ink-2); }
.contact-main { display: grid; gap: 20px; }
.contact-card a.cd-v { color: var(--ink); }
.foot-contact a.sel { color: var(--on-band); text-decoration: none; }
.foot-bottom a { color: var(--on-band); }
.site-footer .menu { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }

/* ordinary pages (privacy policy etc.) */
.plain-page .entry { max-width: 760px; }
.entry > * + * { margin-top: 1em; }
.entry h2 { font-size: 28px; margin-top: 1.6em; }
.entry h3 { font-size: 21px; margin-top: 1.4em; }
.entry ul, .entry ol { padding-left: 1.3em; }
.entry a { color: var(--brand); }
.post-summary { padding-block: 20px; border-bottom: 1px solid var(--line); }
.post-summary h2 { margin: 0 0 4px; font-size: 24px; }
.post-summary a { text-decoration: none; }
.post-date { color: var(--ink-3); font-size: 14px; }

@media (max-width: 1080px) {
  ol.rg-timeline { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 960px) {
  .svc-menu { position: static; }
  .svc-menu ul { display: flex; overflow-x: auto; gap: 6px; scrollbar-width: thin; }
  .svc-menu li { flex: none; }
  .svc-menu a { white-space: nowrap; }
}
@media (max-width: 640px) {
  ul.rg-checks.cols-2 { grid-template-columns: minmax(0, 1fr); }
  ol.rg-timeline { grid-template-columns: minmax(0, 1fr); }
  ol.rg-timeline > li { grid-template-columns: 34px 1fr; align-items: center; }
  .svc > .svc-title { padding-left: 0; padding-top: 70px; }
  .faq .wp-block-details > p { padding-right: 4px; }
}

/* ================================================= client logos (gallery block) */
.wp-block-gallery.rg-logos { display: flex !important; flex-wrap: wrap; justify-content: center; gap: 14px !important; margin: 0; }
.wp-block-gallery.rg-logos > figure.wp-block-image {
  flex: 0 0 calc((100% - 6 * 14px) / 7) !important; width: auto !important; max-width: none !important; margin: 0 !important;
  display: grid !important; place-items: center; background: #FFFFFF; border: 1px solid var(--line); border-radius: 14px; padding: 14px 12px;
  box-shadow: 0 1px 2px rgba(14, 37, 39, .04); transition: box-shadow .2s, transform .2s;
}
.wp-block-gallery.rg-logos > figure.wp-block-image:hover { box-shadow: var(--shadow); transform: translateY(-2px); }
.wp-block-gallery.rg-logos > figure.wp-block-image img { width: 100% !important; max-width: 180px; height: auto !important; object-fit: contain !important; flex: none !important; }
@media (max-width: 1080px) { .wp-block-gallery.rg-logos > figure.wp-block-image { flex-basis: calc((100% - 3 * 14px) / 4) !important; } }
@media (max-width: 640px) {
  .wp-block-gallery.rg-logos { gap: 10px !important; }
  .wp-block-gallery.rg-logos > figure.wp-block-image { flex-basis: calc((100% - 10px) / 2) !important; padding: 12px 10px; }
}
.logos-sec > .wrap > p.logos-foot { margin: 20px auto 0; text-align: center; font-size: 13px; color: var(--ink-3); max-width: none; }

/* ================================================= standards plates (block editor pages) */
.card.std-card { gap: 14px; }
figure.wp-block-image.std-plate { margin: 0; height: 84px; }
figure.wp-block-image.std-plate img { height: 70px !important; width: auto !important; max-width: 100%; object-fit: contain; }
p.std-plate.std-badge {
  display: grid; grid-template-columns: 40px auto; grid-template-rows: auto auto; column-gap: 12px; row-gap: 2px;
  justify-content: center; align-content: center; max-width: none;
}
p.std-badge::before { content: ""; grid-row: 1 / 3; align-self: center; width: 40px; height: 40px; border-radius: 11px; }
p.std-badge em { grid-column: 2; align-self: end; }
p.std-badge strong { grid-column: 2; align-self: start; }
.gh-inner.no-label { grid-template-columns: minmax(0, 1fr); }
.gh-inner.no-label.has-scene { grid-template-columns: minmax(0, 1fr) minmax(0, 400px); }
@media (max-width: 960px) { .gh-inner.no-label.has-scene { grid-template-columns: minmax(0, 1fr); } }

/* "On this page" menu (block editor pages): floating panel on wide screens, chips otherwise (site.js adds show-chips) */
.wp-block-group.page-menu { margin: 0; }
.wp-block-group.page-menu > ul { list-style: none; margin: 0; padding: 8px; }
.wp-block-group.page-menu > ul li { margin: 0; }
@media (min-width: 1100px) {
  .wp-block-group.page-menu { position: sticky; top: calc(var(--head-h) + 24px); float: left; width: 200px; margin-left: 20px; z-index: 5; }
  .admin-bar .wp-block-group.page-menu { top: calc(var(--head-h) + 56px); }
}
@media (min-width: 1680px) { .wp-block-group.page-menu { margin-left: calc((100vw - 1204px) / 2 - 224px); } }

/* demo videos (block editor pages) */
.wp-block-group.video-list { display: grid; gap: 28px; margin-top: 36px; }
.wp-block-group.video { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: clamp(20px, 3vw, 40px); align-items: start; }
ol.video-chapters li { margin: 0; }
.site-footer .foot-grid.foot-grid-4 { grid-template-columns: 1.3fr 1fr 1.2fr 1.4fr; }
@media (max-width: 860px) { .wp-block-group.video { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 1080px) { .site-footer .foot-grid.foot-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .foot-grid-4 .foot-brand { grid-column: auto; } }
@media (max-width: 614px) { .site-footer .foot-grid.foot-grid-4 { grid-template-columns: minmax(0, 1fr); } }

/* ================================================= Pagelayer pages
   Layout, spacing, colours and icons set in Pagelayer's own controls win over these rules,
   so anything changed in the Pagelayer editor takes effect. */
.pagelayer-row-stretch-auto > .pagelayer-row-holder,
.pagelayer-row-stretch-full > .pagelayer-row-holder.pagelayer-width-auto { max-width: 1204px; }
.pagelayer-text-holder p + p, .pagelayer-text-holder p + ul, .pagelayer-text-holder p + ol, .pagelayer-text-holder ul + p { margin-top: .85em; }
.pagelayer-text-holder a, .pagelayer-service-text a { color: var(--brand); font-weight: 600; text-underline-offset: 3px; }
.rg-sec, .rg-band, .rg-group-head { position: relative; }

/* section backgrounds */
.pagelayer-row.rg-tint { background: var(--tint); }
.pagelayer-row.rg-band {
  color: var(--on-band);
  background:
    radial-gradient(900px 480px at 88% -10%, rgba(76, 195, 178, .22), transparent 60%),
    radial-gradient(rgba(234, 245, 242, .07) 1px, transparent 1.5px) 0 0 / 22px 22px,
    var(--band);
}
.pagelayer-row.rg-facts { background: radial-gradient(rgba(234, 245, 242, .07) 1px, transparent 1.5px) 0 0 / 22px 22px, var(--band); }
.rg-band .pagelayer-heading-holder, .rg-band .pagelayer-heading-holder * { color: var(--on-band); }
.rg-band .pagelayer-text-holder { color: var(--on-band-2); }
.rg-band .pagelayer-text-holder a { color: var(--accent); }

/* type */
.rg-eyebrow .pagelayer-text-holder p { font: 700 12.5px/1.3 var(--f-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--brand); }
.rg-band .rg-eyebrow .pagelayer-text-holder p { color: var(--accent); }
.rg-h1 .pagelayer-heading-holder h1 { font: 900 clamp(38px, 5.2vw, 64px)/1.04 var(--f-display); letter-spacing: -.025em; text-wrap: balance; }
.rg-page-hero .rg-h1 .pagelayer-heading-holder h1 { font-size: clamp(34px, 4.2vw, 54px); }
.rg-hl { color: var(--accent); }
.rg-hero-sub .pagelayer-heading-holder h2 { font: 500 clamp(19px, 1.8vw, 23px)/1.35 var(--f-body); letter-spacing: 0; max-width: 34ch; }
.rg-lead .pagelayer-text-holder p { font-size: clamp(18px, 1.6vw, 21px); line-height: 1.5; color: var(--on-band); max-width: 58ch; }
.rg-sec .rg-lead .pagelayer-text-holder p { font-size: 17.5px; color: var(--ink-2); max-width: 62ch; line-height: 1.65; }
.rg-hero-text .pagelayer-text-holder p { max-width: 60ch; }
.rg-h2 .pagelayer-heading-holder h2 { font: 900 clamp(28px, 3.2vw, 42px)/1.15 var(--f-display); letter-spacing: -.02em; color: var(--ink); text-wrap: balance; max-width: 760px; }
.rg-h2-sm .pagelayer-heading-holder h2 { font-size: clamp(24px, 2.6vw, 32px); max-width: 32ch; }
.rg-band .rg-h2 .pagelayer-heading-holder h2 { color: var(--on-band); }
.rg-intro .pagelayer-text-holder p { color: var(--ink-2); font-size: 18px; max-width: 64ch; }
.rg-band .rg-intro .pagelayer-text-holder p { color: var(--on-band-2); }
.rg-note .pagelayer-text-holder p { color: var(--ink-2); max-width: 64ch; }
.rg-note-bar .pagelayer-text-holder { padding-left: 14px; border-left: 3px solid var(--accent); }
.rg-note-bar .pagelayer-text-holder p { font-size: 15.5px; }
.rg-list-title .pagelayer-text-holder p { font: 700 12.5px/1.3 var(--f-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); }
.rg-footnote .pagelayer-text-holder p { font-size: 14.5px; max-width: 80ch; color: var(--ink-3); }
.rg-band .rg-footnote .pagelayer-text-holder p { color: var(--on-band-2); }
.rg-more .pagelayer-text-holder a { display: inline-flex; align-items: center; gap: 6px; text-decoration: none; }
.rg-more .pagelayer-text-holder a::after, .rg-card-link a::after {
  content: ""; width: 16px; height: 16px; background: currentColor; transition: transform .15s;
  -webkit-mask: var(--ic-arrow) center / contain no-repeat; mask: var(--ic-arrow) center / contain no-repeat;
}
.rg-more .pagelayer-text-holder a:hover { text-decoration: underline; }
.rg-more .pagelayer-text-holder a:hover::after { transform: translateX(3px); }

/* callout */
.rg-callout .pagelayer-text-holder { position: relative; padding: 16px 18px 16px 50px; border-radius: 12px; background: var(--accent-soft); color: var(--ink); font-size: 15.5px; line-height: 1.5; }
.rg-callout .pagelayer-text-holder::before {
  content: ""; position: absolute; left: 18px; top: 17px; width: 20px; height: 20px; background: var(--warn);
  -webkit-mask: var(--ic-alert) center / contain no-repeat; mask: var(--ic-alert) center / contain no-repeat;
}

/* buttons */
.rg-btn .pagelayer-btn-holder { border-radius: 999px; font: 600 15.5px/1.1 var(--f-body); padding: 13px 22px; display: inline-flex; align-items: center; gap: 8px; }
.rg-btn .pagelayer-btn-holder:hover { transform: translateY(-1px); filter: brightness(.96); }
.rg-btn .pagelayer-btn-holder i { font-size: 14px; }

/* hero */
.rg-hero .pagelayer-col-holder { align-content: center; }
.rg-hero-art .pagelayer-col-holder { justify-content: center; }
.rg-hero-art .art { width: 100%; max-width: 600px; margin-left: auto; }
.rg-facts > .pagelayer-row-holder { border-top: 1px solid var(--band-line); }
.rg-fact-title .pagelayer-heading-holder h3 { font: 700 19px/1.2 var(--f-display); color: var(--on-band); }
.rg-fact-text .pagelayer-text-holder p { font-size: 14.5px; line-height: 1.4; color: var(--on-band-2); }

/* photos */
.pagelayer-image.rg-photo { border-radius: 20px; overflow: hidden; box-shadow: var(--shadow); line-height: 0; }
.pagelayer-image.rg-photo img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block; }
.rg-photo-hero { box-shadow: var(--shadow-lg) !important; border: 6px solid rgba(234, 245, 242, .1); max-width: 600px; margin-left: auto; }
.rg-svc-text .pagelayer-image.rg-photo img { aspect-ratio: 4 / 3; }
.rg-gh-photo img { aspect-ratio: 16 / 10 !important; }

/* cards (a column that holds an icon box) */
.pagelayer-col.rg-card { padding: 10px; align-content: stretch; }
.rg-card > .pagelayer-col-holder { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); padding: clamp(22px, 2.4vw, 28px) !important; align-content: flex-start; }
.rg-band .rg-card > .pagelayer-col-holder { border-color: transparent; }
.rg-cards > .pagelayer-row-holder { margin-inline: -10px; width: calc(100% + 20px); }
.rg-iconbox .pagelayer-service-icon, .rg-card-head .pagelayer-service-icon, .rg-svc-title .pagelayer-service-icon { line-height: 1; }
.rg-iconbox .pagelayer-service-icon i, .rg-card-head .pagelayer-service-icon i {
  display: inline-flex !important; align-items: center; justify-content: center; width: 46px; height: 46px; padding: 0 !important;
  border-radius: 13px; font-size: 20px; box-sizing: border-box;
}
.rg-svc-title .pagelayer-service-icon i { display: inline-flex !important; align-items: center; justify-content: center; width: 56px; height: 56px; padding: 0 !important; border-radius: 16px; font-size: 24px; }
.rg-band .pagelayer-heading-holder .rg-hl { color: var(--accent); }
.rg-band .rg-iconbox .pagelayer-service-icon.pagelayer-service-stacked i { background-color: var(--accent-soft) !important; color: var(--warn) !important; }
.rg-iconbox .pagelayer-service-icon, .rg-card-head .pagelayer-service-icon { margin-bottom: 14px; }
.rg-iconbox .pagelayer-service-heading, .rg-card-head .pagelayer-service-heading { font: 700 20px/1.25 var(--f-display); letter-spacing: -.01em; margin-bottom: 10px; }
.rg-iconbox .pagelayer-service-text p { color: var(--ink-2); }
.rg-iconbox .pagelayer-service-text p + p { margin-top: 12px; }
.rg-card-link a { display: inline-flex; align-items: center; gap: 6px; text-decoration: none; }
.rg-card-head .pagelayer-service-container { display: grid; grid-template-columns: auto 1fr; column-gap: 14px; align-items: center; }
.rg-card-head .pagelayer-service-icon { margin: 0; grid-row: span 2; }
.rg-card-head .pagelayer-service-heading { margin: 0; }
.rg-card-head .pagelayer-service-text { grid-column: 1 / -1; margin-top: 14px; }
.rg-card-head .pagelayer-service-text p { color: var(--ink-2); font-size: 15px; }
.rg-head-row .pagelayer-col-holder { align-content: center; }
.rg-head-row > .pagelayer-row-holder { margin-inline: -12px; width: calc(100% + 24px); }
@media (max-width: 780px) { .rg-head-row > .pagelayer-row-holder { margin-inline: 0; width: 100%; } .rg-head-row .rg-head > .pagelayer-col-holder { padding-right: 0 !important; } }
.rg-head-row .rg-head > .pagelayer-col-holder { padding-right: 36px !important; }

/* list panels */
.pagelayer-col.rg-panel { align-content: flex-start; }
.rg-panel > .pagelayer-col-holder { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); padding: clamp(22px, 2.6vw, 32px) !important; }
.rg-svc-row .pagelayer-col.rg-panel { padding-left: 12px; }

/* check lists */
.rg-checks .pagelayer-list-ul { display: grid; gap: 10px; }
.rg-checks.rg-cols-2 .pagelayer-list-ul { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; }
.rg-checks .pagelayer-list-li { padding: 0 !important; margin: 0 !important; line-height: 1.45; }
.rg-checks .pagelayer-list-icon-holder { align-items: flex-start; }
.rg-checks .pagelayer-list-icon { flex: none; width: 22px; height: 22px; border-radius: 50%; background: var(--brand-soft); display: grid; place-items: center; margin: 1px 10px 0 0 !important; align-self: flex-start; font-size: 11px; }
.rg-checks .pagelayer-list-item { align-self: flex-start; color: var(--ink); }
.rg-on-band .pagelayer-list-icon { background: rgba(242, 162, 44, .18); }
.rg-on-band .pagelayer-list-item { color: var(--on-band); font-size: 17px; }
.rg-on-band .pagelayer-list-ul { gap: 14px; }

/* chips */
.rg-chips .pagelayer-list-ul { display: flex; flex-wrap: wrap; gap: 8px; }
.rg-chips .pagelayer-list_item { width: auto; }
.rg-chips .pagelayer-list-li { padding: 7px 13px !important; margin: 0 !important; border-radius: 999px; background: var(--surface); border: 1px solid var(--line); font-size: 14.5px; line-height: 1.3; }

/* numbered steps */
.rg-steps > .pagelayer-col-holder { counter-reset: rgstep; }
.pagelayer-text.rg-step { counter-increment: rgstep; position: relative; padding: 0 0 30px 68px; min-height: 48px; }
.pagelayer-text.rg-step:last-child { padding-bottom: 0; }
.pagelayer-text.rg-step::before {
  content: counter(rgstep, decimal-leading-zero); position: absolute; left: 0; top: 0; width: 48px; height: 48px; border-radius: 50%;
  border: 2px solid var(--brand); color: var(--brand); background: var(--surface); display: grid; place-items: center; font: 500 15px/1 var(--f-mono); box-sizing: border-box;
}
.pagelayer-text.rg-step:not(:last-child)::after { content: ""; position: absolute; left: 23px; top: 54px; bottom: 6px; width: 2px; background: linear-gradient(var(--line-2), var(--line)); }
.rg-step .pagelayer-text-holder h3 { font: 650 21px/1.2 var(--f-display); color: var(--ink); margin: 10px 0 6px !important; }
.rg-step .pagelayer-text-holder p { color: var(--ink-2); }
.rg-sticky > .pagelayer-col-holder { position: sticky; top: calc(var(--head-h) + 32px); align-self: flex-start; }
.admin-bar .rg-sticky > .pagelayer-col-holder { top: calc(var(--head-h) + 64px); }

/* FAQ accordion */
.rg-faq .pagelayer-accordion-holder { border-top: 1px solid var(--line-2); }
.rg-faq .pagelayer-accordion_item { border-bottom: 1px solid var(--line-2); }
.rg-faq .pagelayer-accordion-tabs { display: flex !important; justify-content: space-between; align-items: center; gap: 16px; padding: 20px 2px !important; font: 600 18px/1.35 var(--f-display); }
.rg-faq .pagelayer-accordion-title { cursor: pointer; }
.rg-faq .pagelayer-accordion-icon { flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--brand-soft); color: var(--brand); display: grid; place-items: center; font-size: 12px; float: none !important; }
.rg-faq .pagelayer-accordion-panel { padding: 0 44px 22px 2px; }
.rg-faq .pagelayer-accordion-panel .pagelayer-row-holder, .rg-faq .pagelayer-accordion-panel .pagelayer-col-holder { padding: 0 !important; }
.rg-faq .pagelayer-accordion-panel p { color: var(--ink-2); }

/* call to action box */
.rg-cta-box > .pagelayer-row-holder {
  border-radius: 28px; padding: clamp(18px, 4vw, 52px); color: var(--on-band);
  background:
    radial-gradient(520px 320px at 100% 0%, rgba(76, 195, 178, .28), transparent 60%),
    radial-gradient(rgba(234, 245, 242, .07) 1px, transparent 1.5px) 0 0 / 22px 22px,
    var(--band);
}
.rg-cta-box .rg-h2 .pagelayer-heading-holder h2 { color: var(--on-band); font-size: clamp(30px, 3.6vw, 46px); }
.rg-cta-text .pagelayer-text-holder p { color: var(--on-band-2); font-size: 18px; max-width: 52ch; }
.rg-cta-box .pagelayer-col-holder { align-content: center; }
.rg-cta-list > .pagelayer-col-holder { background: rgba(234, 245, 242, .06); border: 1px solid var(--band-line); border-radius: 18px; padding: clamp(20px, 3vw, 32px) !important; }
.rg-cta-box .cta-contact { color: var(--on-band-2); font-size: 15px; }
.rg-cta-box .cta-contact .sel, .rg-cta-box .cta-contact a.sel { color: var(--on-band); font-weight: 600; text-decoration: none; white-space: nowrap; }
.rg-cta-box .copy-btn { background: rgba(234, 245, 242, .12); color: var(--on-band); }

/* services */
.rg-svc-nav .pagelayer-list-ul { display: flex; flex-wrap: wrap; gap: 8px; }
.rg-svc-nav .pagelayer-list_item { width: auto; }
.rg-svc-nav .pagelayer-list-li { padding: 0 !important; margin: 0 !important; }
.rg-svc-nav a.pagelayer-list-url { display: block; padding: 8px 14px; border-radius: 999px; background: var(--surface); border: 1px solid var(--line); color: var(--ink-2); text-decoration: none; font-weight: 600; font-size: 14.5px; }
.rg-svc-nav a.pagelayer-list-url:hover { border-color: var(--brand); color: var(--brand); }
.pagelayer-row.rg-svc-sec > .pagelayer-row-holder { border-top: 1px solid var(--line); }
.pagelayer-row.rg-svc-sec.rg-first > .pagelayer-row-holder { border-top: 0; }
.rg-svc-title .pagelayer-service-icon { margin-right: 18px; }
.rg-svc-title .pagelayer-service-heading { font: 700 clamp(24px, 2.4vw, 30px)/1.2 var(--f-display); color: var(--ink); margin-bottom: 8px; }
.rg-svc-title .pagelayer-service-text p { font-size: 18px; color: var(--ink-2); max-width: 60ch; }
.rg-svc-row > .pagelayer-row-holder { align-items: flex-start; }

/* process chips */
.rg-flow .pagelayer-list-ul { display: flex; flex-wrap: wrap; gap: 10px; counter-reset: rgflow; }
.rg-flow .pagelayer-list_item { width: auto; counter-increment: rgflow; }
.rg-flow .pagelayer-list-li { display: inline-flex; align-items: center; gap: 10px; padding: 10px 16px 10px 10px !important; margin: 0 !important; border-radius: 999px; background: var(--surface); border: 1px solid var(--line); font-weight: 600; }
.rg-flow .pagelayer-list-li::before { content: counter(rgflow); width: 26px; height: 26px; border-radius: 50%; background: var(--brand); color: var(--on-brand); display: grid; place-items: center; font: 500 12.5px/1 var(--f-mono); flex: none; }

/* innovation jump cards */
.pagelayer-row.rg-groupnav { z-index: 2; margin-top: -36px; }
.rg-gn > .pagelayer-row-holder { margin-inline: -7px; width: calc(100% + 14px); }
.pagelayer-col.rg-gn-card { padding: 7px; align-content: stretch; }
.rg-gn-card > .pagelayer-col-holder { position: relative; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); box-shadow: var(--shadow); padding: 20px 48px 20px 20px !important; transition: transform .15s, border-color .15s; }
.rg-gn-card > .pagelayer-col-holder:hover { transform: translateY(-2px); border-color: var(--brand); }
.rg-gn-card > .pagelayer-col-holder::after {
  content: ""; position: absolute; right: 18px; top: 22px; width: 20px; height: 20px; background: var(--accent-2);
  -webkit-mask: var(--ic-arrow) center / contain no-repeat; mask: var(--ic-arrow) center / contain no-repeat;
}
.rg-gn-label .pagelayer-heading-holder h3 { font: 700 22px/1.1 var(--f-display); color: var(--brand); }
.rg-gn-label a { text-decoration: none; }
.rg-gn-label a::before { content: ""; position: absolute; inset: 0; }
.rg-gn-desc .pagelayer-text-holder p { color: var(--ink-2); font-size: 14.5px; line-height: 1.4; }

/* group heads */
.rg-group-head > .pagelayer-row-holder { border-top: 3px solid var(--accent); padding-top: 18px; align-items: center; }
.rg-gh-label .pagelayer-text-holder p { font: 700 14px/1.2 var(--f-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--accent-2); }
.rg-gh-title .pagelayer-heading-holder h2 { font: 900 clamp(30px, 3.6vw, 46px)/1.1 var(--f-display); letter-spacing: -.02em; color: var(--ink); }
.rg-gh-text .pagelayer-text-holder p { color: var(--ink-2); font-size: 18px; max-width: 60ch; }
.rg-group-head + .rg-sec { padding-top: 48px !important; }

/* timeline */
.rg-timeline .pagelayer-list-ul { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; counter-reset: rgtl; }
.rg-timeline .pagelayer-list_item { counter-increment: rgtl; }
.rg-timeline .pagelayer-list-li { display: grid; gap: 12px; align-content: start; height: 100%; padding: 18px !important; margin: 0 !important; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); font-weight: 600; line-height: 1.35; font-size: 15.5px; box-sizing: border-box; }
.rg-timeline .pagelayer-list-li::before { content: counter(rgtl); width: 34px; height: 34px; border-radius: 50%; background: var(--brand-soft); color: var(--brand); display: grid; place-items: center; font: 500 13px/1 var(--f-mono); }
.rg-timeline .pagelayer-list_item:nth-child(7) .pagelayer-list-li::before { background: var(--accent); color: var(--on-accent); }

/* contact */
.rg-contact .pagelayer-shortcodes-container > * { margin: 0; }
.rg-text-card .pagelayer-text-holder { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); padding: clamp(22px, 2.4vw, 30px); }
.rg-text-card .pagelayer-text-holder p.rg-card-title { font: 700 12.5px/1.3 var(--f-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 14px !important; }
.rg-text-card ul, .rg-text-card ol { list-style: none; display: grid; gap: 10px; }
.rg-text-checks li { position: relative; padding-left: 32px !important; line-height: 1.45; }
.rg-text-checks li::before { content: ""; position: absolute; left: 0; top: 1px; width: 22px; height: 22px; border-radius: 50%; background: var(--brand-soft); }
.rg-text-checks li::after { content: ""; position: absolute; left: 5px; top: 6px; width: 12px; height: 12px; background: var(--brand); -webkit-mask: var(--ic-check) center / contain no-repeat; mask: var(--ic-check) center / contain no-repeat; }
.rg-text-steps ol { counter-reset: rgmini; gap: 16px; }
.rg-text-steps li { counter-increment: rgmini; position: relative; padding-left: 48px !important; font-size: 15px; color: var(--ink-2); min-height: 34px; }
.rg-text-steps li::before { content: counter(rgmini); position: absolute; left: 0; top: 0; width: 34px; height: 34px; border-radius: 50%; border: 2px solid var(--brand); color: var(--brand); display: grid; place-items: center; font: 500 13px/1 var(--f-mono); box-sizing: border-box; }
.rg-text-steps li strong { display: block; font: 650 16.5px/1.3 var(--f-display); color: var(--ink); margin: 4px 0 2px !important; }

/* responsive */
@media (max-width: 1080px) {
  .rg-timeline .pagelayer-list-ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 780px) {
  .rg-cards-4 > .pagelayer-row-holder > .pagelayer-col, .rg-facts > .pagelayer-row-holder > .pagelayer-col,
  .rg-gn > .pagelayer-row-holder > .pagelayer-col { width: 50% !important; }
  .rg-sticky > .pagelayer-col-holder { position: static; }
  .pagelayer-row.rg-groupnav { margin-top: 24px; }
  .rg-group-head + .rg-sec { padding-top: 32px !important; }
  .rg-hero-art .art, .rg-photo-hero { margin-left: 0; }
}
@media (max-width: 560px) {
  .rg-cards-4 > .pagelayer-row-holder > .pagelayer-col, .rg-gn > .pagelayer-row-holder > .pagelayer-col { width: 100% !important; }
  .rg-checks.rg-cols-2 .pagelayer-list-ul { grid-template-columns: minmax(0, 1fr); }
  .rg-timeline .pagelayer-list-ul { grid-template-columns: minmax(0, 1fr); }
  .rg-timeline .pagelayer-list-li { grid-template-columns: 34px 1fr; align-items: center; }
  .rg-faq .pagelayer-accordion-panel { padding-right: 4px; }
  .rg-fact-title .pagelayer-heading-holder h3 { font-size: 17px; }
}

/* ================================================= client logos (Pagelayer grid gallery) */
.pagelayer-row.rg-logos-sec { border-bottom: 1px solid var(--line); }
.rg-logos-col .rg-eyebrow .pagelayer-text-holder p, .rg-logos-col .rg-h2 .pagelayer-heading-holder h2 { text-align: center; }
.rg-logos-col .rg-h2 .pagelayer-heading-holder h2 { font-size: clamp(24px, 2.6vw, 32px); text-wrap: balance; margin-inline: auto; }
.rg-logos .pagelayer-grid-gallery-ul { list-style: none; margin: 0; padding: 0; }
.rg-logos .pagelayer-gallery-item {
  display: grid; place-items: center; background: #FFFFFF; border: 1px solid var(--line); border-radius: 14px; padding: 14px 12px;
  box-shadow: 0 1px 2px rgba(14, 37, 39, .04); transition: box-shadow .2s, transform .2s; min-width: 0;
}
.rg-logos .pagelayer-gallery-item:hover { box-shadow: var(--shadow); transform: translateY(-2px); }
.rg-logos .pagelayer-gallery-item > div { width: 100%; display: grid; place-items: center; }
.rg-logos .pagelayer-gallery-item img { width: 100%; max-width: 180px; height: auto; object-fit: contain; display: block; }
@media (max-width: 480px) {
  .rg-logos .pagelayer-gallery-item:last-child:nth-child(odd) { grid-column: 1 / -1; justify-self: center; width: calc(50% - 5px); }
}
.rg-logos-foot .pagelayer-text-holder p { text-align: center; font-size: 13px; color: var(--ink-3); }

/* ================================================= standards plates (Pagelayer) */
.rg-std-plate.pagelayer-image .pagelayer-image-holder,
.rg-std-plate.rg-std-badge .pagelayer-text-holder {
  height: 84px; display: flex; align-items: center; justify-content: center; gap: 12px; padding: 10px 14px;
  background: #FFFFFF; border: 1px solid #D3E2DD; border-radius: 12px;
}
.rg-std-plate.pagelayer-image img { height: 70px !important; width: auto !important; max-width: 100%; object-fit: contain; }
.rg-std-badge .pagelayer-text-holder::before { content: ""; width: 40px; height: 40px; border-radius: 11px; flex: none; }
.rg-std-badge .pagelayer-text-holder p { margin: 0; display: grid; gap: 2px; text-align: left; }
.rg-card-title .pagelayer-heading-holder h3 { font: 700 20px/1.25 var(--f-display); letter-spacing: -.01em; color: var(--ink); }
.rg-card-text .pagelayer-text-holder p { color: var(--ink-2); }
.rg-band .rg-std-card .rg-card-title .pagelayer-heading-holder h3 { color: var(--ink); }
.rg-band .rg-std-card .rg-card-text .pagelayer-text-holder p { color: var(--ink-2); }
.rg-std-badge .pagelayer-text-holder em { font: normal 500 11.5px/1.2 var(--f-mono); letter-spacing: .1em; text-transform: uppercase; color: #62807E; }
.rg-std-badge .pagelayer-text-holder strong { font: 900 22px/1.1 var(--f-display); letter-spacing: -.01em; color: #0F5B5F; white-space: nowrap; }
@media (max-width: 1180px) and (min-width: 781px) { .rg-std-badge .pagelayer-text-holder strong { font-size: 19px; } }
.rg-h1.rg-h1-long .pagelayer-heading-holder h1 { font-size: clamp(34px, 4.1vw, 52px); line-height: 1.08; }

/* ================================================= services: sticky study-type menu beside the study blocks */
.pagelayer-row.rg-svc-layout > .pagelayer-row-holder { align-items: stretch; flex-wrap: nowrap; gap: clamp(28px, 4vw, 56px); }
.pagelayer-row.rg-svc-layout > .pagelayer-row-holder > .pagelayer-col.rg-svc-side { width: 270px; flex: 0 0 270px; }
.pagelayer-row.rg-svc-layout > .pagelayer-row-holder > .pagelayer-col.rg-svc-main { width: auto; flex: 1 1 0; min-width: 0; }
.rg-svc-side > .pagelayer-col-holder { position: sticky; top: calc(var(--head-h) + 24px); align-self: flex-start; }
.admin-bar .rg-svc-side > .pagelayer-col-holder { top: calc(var(--head-h) + 56px); }
.rg-svc-menu .pagelayer-list-ul { list-style: none; margin: 0; padding: 8px; display: grid; gap: 2px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); }
.rg-svc-menu .pagelayer-list-li { padding: 0 !important; margin: 0 !important; }
.rg-svc-menu a.pagelayer-list-url { display: block; padding: 9px 10px; border-radius: 10px; text-decoration: none; }
.rg-svc-menu a.pagelayer-list-url:hover { background: var(--tint); }
.rg-svc-menu .pagelayer-list-icon-holder { display: grid; grid-template-columns: 22px 1fr; gap: 10px; align-items: center; }
.rg-svc-menu .pagelayer-list-icon { color: var(--brand) !important; font-size: 16px !important; text-align: center; margin: 0 !important; }
.rg-svc-menu .pagelayer-list-item { color: var(--ink-2); font: 600 14.5px/1.3 var(--f-body); }
.rg-svc-menu a.pagelayer-list-url:hover .pagelayer-list-item { color: var(--ink); }
.rg-svc-main .rg-svc-title { border-top: 1px solid var(--line); padding-top: 40px; scroll-margin-top: calc(var(--head-h) + 16px); }
.rg-svc-main .rg-svc-title.rg-svc-first { border-top: 0; padding-top: 0; }
.rg-svc-main .rg-svc-row { margin-bottom: 18px; }
@media (max-width: 960px) {
  .pagelayer-row.rg-svc-layout > .pagelayer-row-holder { flex-wrap: wrap; gap: 20px; }
  .pagelayer-row.rg-svc-layout > .pagelayer-row-holder > .pagelayer-col.rg-svc-side,
  .pagelayer-row.rg-svc-layout > .pagelayer-row-holder > .pagelayer-col.rg-svc-main { width: 100%; flex: 0 0 100%; }
  .rg-svc-side > .pagelayer-col-holder { position: static; }
  .rg-svc-menu .pagelayer-list-ul { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; background: none; border: 0; }
  .rg-svc-menu .pagelayer-list_item { flex: none; width: auto; max-width: 100%; }
  .rg-svc-menu a.pagelayer-list-url { padding: 7px 12px; border-radius: 999px; background: var(--surface); border: 1px solid var(--line); }
  .rg-svc-menu .pagelayer-list-icon-holder { grid-template-columns: 16px auto; gap: 7px; }
  .rg-svc-menu .pagelayer-list-item { font-size: 13.5px; }
}

/* ================================================= "On this page" menu (Pagelayer pages) */
.pagelayer-row.rg-page-menu-row > .pagelayer-row-holder { max-width: 1204px; }
.rg-pm-title .pagelayer-text-holder p { font: 700 11px/1.2 var(--f-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); }
.rg-page-menu .pagelayer-list-ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.rg-page-menu .pagelayer-list_item { width: auto; max-width: 100%; }
.rg-page-menu .pagelayer-list-li { padding: 0 !important; margin: 0 !important; }
.rg-page-menu a.pagelayer-list-url { display: block; padding: 6px 12px; border-radius: 999px; background: var(--surface); border: 1px solid var(--line); text-decoration: none; }
.rg-page-menu .pagelayer-list-item { color: var(--ink-2); font: 600 13px/1.3 var(--f-body); }
.rg-page-menu a.pagelayer-list-url:hover .pagelayer-list-item, .rg-page-menu a.is-active .pagelayer-list-item { color: var(--brand); }
.rg-page-menu a.is-active { background: var(--tint); }
.rg-page-menu-row { padding-top: 20px !important; }
/* Laptops and wider: a sticky panel. From 1100px it docks at the left edge and the page content moves right to make
   room; from 1680px it sits in the free left margin and the content is centred again. */
@media (min-width: 1100px) {
  .pagelayer-row.rg-page-menu-row { position: sticky; top: calc(var(--head-h) + 24px); height: 0; padding: 0 !important; overflow: visible; z-index: 5; }
  .admin-bar .pagelayer-row.rg-page-menu-row { top: calc(var(--head-h) + 56px); }
  .pagelayer-row.rg-page-menu-row > .pagelayer-row-holder { max-width: none !important; width: 100% !important; margin: 0 !important; display: block; }
  .pagelayer-row.rg-page-menu-row .pagelayer-col.rg-pm-col { width: 200px !important; flex: none; margin-left: 20px; padding: 0 !important; }
  .rg-pm-col > .pagelayer-col-holder { padding: 8px !important; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); box-shadow: var(--shadow); }
  .rg-pm-title .pagelayer-text-holder p { margin: 0 0 4px 10px; }
  .rg-page-menu .pagelayer-list-ul { display: grid; gap: 2px; }
  .rg-page-menu .pagelayer-list_item { width: 100%; }
  .rg-page-menu a.pagelayer-list-url { padding: 7px 10px; border-radius: 9px; background: none; border: 0; }
  .rg-page-menu a.pagelayer-list-url:hover, .rg-page-menu a.is-active { background: var(--tint); }
  .rg-has-pm .pagelayer-row:not(.rg-page-menu-row) > .pagelayer-row-holder { max-width: min(1204px, 100vw - 260px) !important; margin-left: max(calc((100vw - 1204px) / 2), 240px) !important; margin-right: 0 !important; }
  .rg-has-pm .site-header .wrap, .rg-has-pm .site-footer .wrap { width: min(1180px, 100vw - 268px); margin-left: max(calc((100vw - 1180px) / 2), 240px); }
}
@media (min-width: 1680px) {
  .pagelayer-row.rg-page-menu-row .pagelayer-col.rg-pm-col { margin-left: calc((100vw - 1204px) / 2 - 224px); }
  .rg-has-pm .pagelayer-row:not(.rg-page-menu-row) > .pagelayer-row-holder { margin-left: auto !important; margin-right: auto !important; }
  .rg-has-pm .site-header .wrap, .rg-has-pm .site-footer .wrap { width: min(1180px, 100% - 32px); margin-inline: auto; }
}

/* ================================================= Pagelayer header and footer templates (Theme Builder)
   Created from Appearance > ResearchGuru setup. Same design as the theme header and footer; everything in them is
   edited with Pagelayer. */
header.pagelayer-header {
  position: sticky; top: env(safe-area-inset-top, 0px); z-index: 50;
  background: color-mix(in srgb, var(--bg) 88%, transparent);
  backdrop-filter: saturate(1.4) blur(12px); -webkit-backdrop-filter: saturate(1.4) blur(12px);
  border-bottom: 1px solid var(--line);
}
.admin-bar header.pagelayer-header { top: calc(32px + env(safe-area-inset-top, 0px)); }
@media (max-width: 782px) { .admin-bar header.pagelayer-header { top: calc(46px + env(safe-area-inset-top, 0px)); } }
.pagelayer-row.rg-ph-row { padding: 0 !important; }
.pagelayer-row.rg-ph-row > .pagelayer-row-holder { position: relative; align-items: center; min-height: var(--head-h); flex-wrap: nowrap; }
.rg-ph-row .pagelayer-col > .pagelayer-col-holder { padding: 0 !important; }
.rg-ph-row .pagelayer-col.rg-ph-brand { width: auto !important; flex: 0 0 auto; }
.rg-ph-row .pagelayer-col.rg-ph-menu { width: auto !important; flex: 1 1 auto; min-width: 0; }
.rg-ph-logo .pagelayer-image-holder img, .rg-ph-logo img { display: block; height: 46px; width: auto !important; max-width: none; }
.rg-ph-menu > .pagelayer-col-holder { display: flex; flex-wrap: nowrap; align-items: center; justify-content: flex-end; gap: 10px; }
.rg-ph-menu > .pagelayer-col-holder > .pagelayer-list, .rg-ph-menu > .pagelayer-col-holder > .pagelayer-btn { width: auto !important; flex: 0 0 auto; }
.rg-ph-nav .pagelayer-list-ul { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 4px; }
.rg-ph-nav .pagelayer-list_item { width: auto; }
.rg-ph-nav .pagelayer-list-li { padding: 0 !important; margin: 0 !important; }
.rg-ph-nav a.pagelayer-list-url { display: block; padding: 8px 14px; border-radius: 999px; text-decoration: none; transition: background .15s, color .15s; }
.rg-ph-nav .pagelayer-list-item { color: var(--ink-2); font: 600 15px/1.3 var(--f-body); }
.rg-ph-nav a.pagelayer-list-url:hover { background: var(--tint); }
.rg-ph-nav a.pagelayer-list-url:hover .pagelayer-list-item { color: var(--ink); }
.rg-ph-nav a[aria-current="page"] { background: var(--brand-soft); }
.rg-ph-nav a[aria-current="page"] .pagelayer-list-item { color: var(--brand); }
.rg-ph-cta { margin-left: 6px; }
.rg-ph-btn { display: none; position: absolute; right: 0; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; border-radius: 12px; border: 1px solid var(--line-2); background: none; cursor: pointer; flex-direction: column; justify-content: center; align-items: center; gap: 5px; }
.rg-ph-btn span { display: block; width: 20px; height: 2px; background: var(--ink); border-radius: 2px; transition: transform .2s, opacity .2s; }
.rg-nav-open .rg-ph-btn span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.rg-nav-open .rg-ph-btn span:nth-child(2) { opacity: 0; }
.rg-nav-open .rg-ph-btn span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
@media (max-width: 860px) {
  .rg-ph-btn { display: flex; }
  .pagelayer-row.rg-ph-row > .pagelayer-row-holder { flex-wrap: wrap; }
  .rg-ph-row .pagelayer-col.rg-ph-menu { display: none; position: absolute; left: -16px; right: -16px; top: 100%; width: auto !important; flex: none; padding: 12px 16px 20px; background: var(--bg); border-bottom: 1px solid var(--line); box-shadow: var(--shadow); z-index: 5; }
  .rg-nav-open .rg-ph-row .pagelayer-col.rg-ph-menu { display: block; }
  .rg-ph-menu > .pagelayer-col-holder { display: grid; gap: 10px; justify-content: stretch; }
  .rg-ph-nav .pagelayer-list-ul { display: grid; gap: 2px; }
  .rg-ph-nav a.pagelayer-list-url { padding: 12px 14px; }
  .rg-ph-nav .pagelayer-list-item { font-size: 17px; }
  .rg-ph-cta { margin: 6px 0 0; }
  .rg-ph-cta .pagelayer-btn-holder { width: 100%; justify-content: center; }
}
@media (max-width: 640px) { .rg-ph-logo .pagelayer-image-holder img, .rg-ph-logo img { height: 40px; } }
.rg-pl-editor .rg-ph-row .pagelayer-col.rg-ph-menu { display: block !important; position: static; }

footer.pagelayer-footer { background: var(--band); color: var(--on-band-2); }
.pagelayer-row.rg-pf-row, .pagelayer-row.rg-pf-bottom { background: transparent; }
.rg-pf-row .pagelayer-col > .pagelayer-col-holder, .rg-pf-bottom .pagelayer-col > .pagelayer-col-holder { padding-top: 0 !important; padding-bottom: 0 !important; }
.rg-pf-logo .pagelayer-image-holder img, .rg-pf-logo img { display: block; height: 52px; width: auto !important; max-width: none; }
.rg-pf-tag .pagelayer-text-holder, .rg-pf-tag .pagelayer-text-holder p { color: var(--on-band-2); }
.rg-pf-domain .pagelayer-text-holder p { font: 500 13px var(--f-mono); color: var(--on-band); }
.rg-pf-h .pagelayer-heading-holder h2 { font: 500 12px/1.3 var(--f-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--accent); margin: 0; }
.rg-pf-links .pagelayer-list-ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.rg-pf-links .pagelayer-list-li, .rg-pf-social .pagelayer-list-li { padding: 0 !important; margin: 0 !important; }
.rg-pf-links a.pagelayer-list-url { text-decoration: none; }
.rg-pf-links .pagelayer-list-item { color: var(--on-band); font: 400 16px/1.5 var(--f-body); }
.rg-pf-links a.pagelayer-list-url:hover .pagelayer-list-item { text-decoration: underline; text-underline-offset: 3px; }
.rg-pf-contact .pagelayer-text-holder p { color: var(--on-band); }
.rg-pf-contact .pagelayer-text-holder a { color: var(--on-band); font-weight: 400; text-decoration: none; overflow-wrap: anywhere; }
.rg-pf-contact .pagelayer-text-holder a:hover { text-decoration: underline; }
.rg-pf-social .pagelayer-list-ul { list-style: none; margin: 6px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.rg-pf-social .pagelayer-list_item { width: auto; }
.rg-pf-social a.pagelayer-list-url { display: inline-flex; align-items: center; padding: 8px 12px; border: 1px solid var(--band-line); border-radius: 999px; text-decoration: none; }
.rg-pf-social a.pagelayer-list-url:hover { border-color: var(--on-band); }
.rg-pf-social .pagelayer-list-item { color: var(--on-band); font-size: 14px; }
.pagelayer-row.rg-pf-bottom > .pagelayer-row-holder { border-top: 1px solid var(--band-line); padding-top: 22px; align-items: center; }
.rg-pf-copy .pagelayer-text-holder p, .rg-pf-top .pagelayer-text-holder p { color: var(--on-band-2); font-size: 14px; margin: 0; }
.rg-pf-top .pagelayer-text-holder p { text-align: right; }
.rg-pf-top .pagelayer-text-holder a { color: var(--on-band); font-weight: 400; text-decoration: none; }
.rg-pf-top .pagelayer-text-holder a:hover { text-decoration: underline; }
@media (max-width: 780px) { .rg-pf-top .pagelayer-text-holder p { text-align: left; } }
.rg-page-menu-row.pm-hidden .rg-pm-col { opacity: 0; pointer-events: none; transition: opacity .2s; }

/* ================================================= demo videos (Pagelayer) */
.rg-video { margin-top: 8px; }
.rg-video > .pagelayer-row-holder { align-items: flex-start; padding: clamp(14px, 2vw, 22px); background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); box-shadow: var(--shadow); }
.rg-video .rg-video-main > .pagelayer-col-holder, .rg-video .rg-video-info > .pagelayer-col-holder { padding-top: 0 !important; padding-bottom: 0 !important; }
.rg-video-title .pagelayer-heading-holder h3 { font: 700 clamp(20px, 2vw, 24px)/1.2 var(--f-display); letter-spacing: -.01em; }
.rg-video-meta .pagelayer-text-holder p { font: 500 12px/1.3 var(--f-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--brand); }
.rg-video-chapters .pagelayer-text-holder > p { font: 700 11px/1.2 var(--f-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); margin: 6px 0 8px; }
.rg-video-chapters .pagelayer-text-holder ol { list-style: none; margin: 0; padding: 4px; display: grid; gap: 1px; max-height: 232px; overflow: auto; border: 1px solid var(--line); border-radius: 12px; background: var(--bg); }
.rg-video-chapters .pagelayer-text-holder ol a { display: grid; grid-template-columns: 46px 1fr; gap: 8px; padding: 6px 8px; border-radius: 8px; color: var(--ink-2); text-decoration: none; font-size: 14px; font-weight: 400; line-height: 1.35; }
.rg-video-chapters .pagelayer-text-holder ol a:hover { background: var(--tint); color: var(--brand); }
.rg-video-chapters .pagelayer-text-holder ol a strong { font: 500 12.5px/1.5 var(--f-mono); color: var(--brand); }
.video-soon.video-admin { left: 12px; border-radius: 10px; line-height: 1.4; white-space: normal; background: rgba(242, 162, 44, .96); color: #2B1A02; }
.rg-page-hero .pagelayer-col-9.rg-hero-copy { max-width: 860px; }
/* footer template with five columns */
.rg-pf-row .rg-pf-links .pagelayer-list-item { font-size: 15px; }
