@font-face{font-family:Onest;src:url(vendor/fonts/onest-latin-wght-normal.woff2) format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:Onest;src:url(vendor/fonts/onest-cyrillic-wght-normal.woff2) format("woff2");font-weight:100 900;unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-display:swap}
:root{--ink:#252d45;--text:#4f5c72;--line:#dce6f3;--blue:#f1f6fd;--white:#fff;--accent:#245bd6;--link-hover:#245bd6}
*{box-sizing:border-box}html{scroll-padding-top:26px}body{margin:0;background:var(--white);font:16px/1.55 Onest,Arial,sans-serif;color:var(--ink)}
a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #2460ac;outline-offset:4px}
h1,h2,h3,p,dl{margin:0}.wrap{width:min(1180px,calc(100% - 72px));margin:auto}.site-head{border-bottom:1px solid #edf0f6}.nav{min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:inline-flex;align-items:center;gap:7px;font-size:26px;letter-spacing:-1.3px;font-weight:800;color:#142039}.brand b{color:#245bd6}.mark{width:34px;height:34px;position:relative;overflow:hidden}.mark img{position:absolute;width:84px;height:84px;left:-25px;top:-19px}
nav{display:flex;gap:28px;color:#45526a;font-weight:600;font-size:14px}nav a:hover,.text-link:hover{color:var(--link-hover)}
.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:47px;padding:10px 17px;border:1px solid transparent;border-radius:8px;background:var(--white);color:var(--ink);font-size:14px;font-weight:700;text-align:center}.button.small{min-height:38px;font-size:13px}.button.outline{border-color:#d2dce9}.button.outline:hover{background:#f1f6ff}
.text-link{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:700;color:#354f75}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:17px;margin:23px 0 13px}
.hero{background:linear-gradient(120deg,#fff 44%,#f5f9ff 100%);padding:48px 0 39px}.hero-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:16px;align-items:center}
.eyebrow{font-size:12px;font-weight:750;color:#536989;letter-spacing:.025em;margin:0 0 12px}.eyebrow span{display:inline-block;width:8px;height:8px;border-radius:3px;background:var(--accent);margin-right:6px}
h1{font-size:clamp(42px,4.65vw,65px);line-height:1.04;letter-spacing:-.057em;font-weight:730}.lead{font-size:17px;line-height:1.65;color:var(--text);max-width:565px;margin-top:16px}.hero-hint{color:#576780;font-size:12px}
.hero-art{position:relative;min-width:0;aspect-ratio:540/360}.art-paths{position:absolute;width:100%;height:100%;inset:0}
.float-card{position:absolute;display:grid;gap:6px;background:#fff;border:1px solid #dce7f8;border-radius:12px;box-shadow:0 10px 25px #243f6a15;padding:12px 14px}.float-card b{font-size:clamp(13px,1.53vw,19px);line-height:1.15;letter-spacing:-.03em}.card-tag{color:#537095;font-size:clamp(9px,.9vw,11px);font-weight:700;display:flex;align-items:center;gap:5px}.card-tag i{width:6px;height:6px;background:#6696d9;border-radius:50%;flex:none}
.card-site{width:51%;left:5%;top:9%}.card-call{width:45%;left:12%;top:49%;background:linear-gradient(135deg,#fff,#f2f7ff)}.card-request{width:50%;right:0;top:53%;border-color:#c8dcfa;background:linear-gradient(135deg,#fff,#f0f6ff)}
.site-line{display:flex;align-items:center;gap:6px;padding-top:4px;color:#405574;font-size:clamp(9px,1.01vw,12px)}.mini-icon{display:grid;place-items:center;width:23px;height:23px;background:#e8f0ff;border-radius:6px}.pill{margin-left:auto;background:#edf4ff;color:#3d6395;padding:3px 6px;border-radius:4px;font-size:10px}
.wave{display:flex;gap:4px;align-items:center;height:20px}.wave i{width:3px;background:#729cda;border-radius:3px;height:8px}.wave i:nth-child(3n){height:15px}.wave i:nth-child(4n){height:20px}.wave i:nth-child(5n){height:12px}.call-detail,.request-foot{font-size:clamp(9px,.98vw,12px);color:#506582}.request-detail{display:flex;gap:4px;flex-wrap:wrap}.request-detail span{font-size:clamp(9px,.98vw,11px);padding:3px 5px;background:#e2eeff;border-radius:4px;color:#234f98;font-weight:650}.request-foot{display:flex;justify-content:space-between;border-top:1px solid #c8dcfa;padding-top:5px}
.section{padding-block:52px}.section-head{max-width:730px;margin-bottom:23px}.section-head p:not(.eyebrow),.start-inner p:not(.eyebrow){color:var(--text);margin-top:9px;line-height:1.6}.tint{background:var(--blue)}h2{font-size:clamp(29px,3.55vw,44px);line-height:1.1;letter-spacing:-.044em;font-weight:730}h3{font-size:clamp(21px,2.2vw,28px);line-height:1.14;letter-spacing:-.032em}
.two-cards p{color:var(--text);margin-top:8px;line-height:1.55}.kicker{display:block;color:#4d6689;font-size:12px;font-weight:750;margin-bottom:7px}
.section-note{font-size:12px;color:#566681;margin-top:12px;line-height:1.5}
.case-image{display:block;width:100%;min-width:0;border:1px solid var(--line);background:#fff;padding:0;border-radius:8px;overflow:hidden;aspect-ratio:1.93;cursor:zoom-in}.case-image img{display:block;width:100%;height:100%;object-fit:contain;object-position:center}
.faq{border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line);padding:11px 0}summary{cursor:pointer;font-weight:700}details p{color:var(--text);margin:7px 0 2px;max-width:780px}
.start{padding:34px 0;background:linear-gradient(105deg,#eef5ff,#f8faff)}.start-inner{display:grid;grid-template-columns:1fr auto;gap:22px;align-items:center}.start-inner p{max-width:710px}.footer{display:flex;gap:14px;justify-content:space-between;align-items:center;padding:21px 0;color:#51607a;font-size:12px}.footer b{color:var(--ink);font-size:16px}.footer p{margin-top:3px}
dialog{width:min(1040px,calc(100% - 24px));max-height:91vh;padding:12px;border:1px solid var(--line);border-radius:12px;color:var(--ink);background:#fff;overflow:hidden}dialog::backdrop{background:#142037a1}.modal-head,.zoom{display:flex;align-items:center;gap:7px}.modal-head{justify-content:space-between}.modal-head h2{font-size:20px}.zoom{flex-wrap:wrap;margin:8px 0}.zoom button,.close{padding:5px 9px;border:1px solid #d3e2f7;background:#f5f9ff;color:var(--ink);border-radius:6px;min-width:35px;min-height:34px}#report-viewport{max-height:70vh;overflow:auto;background:#eef3fb}#modal-image{display:block;max-width:none;height:auto}
@media(max-width:950px){nav{gap:15px}.wrap{width:calc(100% - 48px)}.hero{padding:32px 0}.lead{font-size:15px}.float-card{padding:8px;gap:5px}}
@media(max-width:720px){.wrap{width:calc(100% - 34px)}.nav{min-height:59px}nav{display:none}.brand{font-size:23px}.button.small{font-size:12px;padding:7px 9px}.hero-grid{grid-template-columns:1fr;gap:14px}.hero{padding:24px 0 14px}h1{font-size:clamp(37px,8.3vw,51px)}.lead{margin-top:12px}.actions{margin:15px 0 8px;gap:10px}.actions .button,.actions .text-link{font-size:12px}.hero-art{width:min(100%,475px);margin:auto}.card-site{top:5%}.card-call,.card-request{top:49%}.float-card b{font-size:13px}.card-tag,.site-line,.call-detail,.request-detail span,.request-foot{font-size:9px}.wave{height:17px}.section{padding-block:32px}.section-head{margin-bottom:14px}.calc,.start-inner{grid-template-columns:1fr;gap:11px}.start-inner .button{justify-self:start}.footer{align-items:flex-start;flex-direction:column}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.fit-note{margin:0 0 16px;background:#f1f6fd;border-radius:9px;padding:13px 15px}.fit-note p{color:var(--text);margin-top:3px;font-size:14px}

/* Shared spacing and readable editorial blocks */
:root {
  --ink: #182946;
  --text: #455570;
  --rule: #dce6f4;
  --soft: #f4f8ff;
  --blue-strong: #2863ac;
}

.section { padding-block: clamp(38px, 6vw, 77px); }
.section-head { margin-bottom: 25px; }
.section-head p:not(.eyebrow), .body-copy { color: var(--text); line-height: 1.65; }
.body-copy { margin: 14px 0 17px; }
.eyebrow, .kicker, .section-note { font-size: 13px; }
.button { transition: background-color .18s, border-color .18s; }

.button.outline:hover { border-color: #92b1d7; }
.text-link:hover { text-decoration: underline; text-underline-offset: 4px; }

.hero { padding-block: clamp(34px, 5vw, 66px); }
.float-card {
  padding: clamp(9px, 1.2vw, 16px);
  border-radius: 14px;
  box-shadow: 0 10px 24px #23497910;
}
.card-site { width: 49%; left: 2%; top: 6%; }
.card-call { width: 46%; left: auto; right: 2%; top: 29%; }
.card-request { width: 54%; right: auto; left: 12%; top: 63%; }
.card-tag, .site-line, .call-detail, .request-foot, .request-detail span { font-size: 11px; }
.hero-hint { font-size: 13px; }

.trust-strip { background: #f6f9fe; border-block: 1px solid var(--rule); }
.client-proof {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  align-items: center;
  gap: clamp(20px, 4vw, 58px);
  padding-block: 24px;
}
.client-proof h2 { font-size: 19px; letter-spacing: -.02em; }
.client-logos {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: clamp(12px, 3vw, 32px);
  align-items: center;
}
.client-logos img { display: block; width: 100%; height: 29px; object-fit: contain; }

.insight {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, .93fr);
  gap: clamp(25px, 5vw, 78px);
  align-items: center;
  border-bottom: 1px solid var(--rule);
}
.journey, .cost-chart { margin: 0; }
.journey {
  padding: clamp(17px, 3vw, 30px);
  border-radius: 18px;
  background: var(--soft);
  border: 1px solid var(--rule);
}
.journey figcaption { font-weight: 720; font-size: 15px; }
.journey ol, .trial-grid, .cost-chart ul { margin: 0; padding: 0; list-style: none; }
.journey ol { position: relative; display: grid; gap: 3px; margin-top: 10px; }
.journey ol::before {
  content: "";
  position: absolute;
  inset: 20px auto 20px 23px;
  width: 1px;
  background: #c1d5ef;
}
.journey li {
  position: relative;
  display: grid;
  grid-template-columns: 30px 1fr;
  column-gap: 10px;
  align-items: center;
  min-height: 42px;
  padding: 5px 9px;
  font-size: 14px;
  font-weight: 600;
}
.journey li span, .source-index {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border: 1px solid #d2e0f1;
  border-radius: 50%;
  background: #fff;
  color: #41628c;
  font: 700 11px/1 Onest, sans-serif;
}
.journey .journey-entry { border-radius: 9px; background: #e8f2ff; color: #183e76; }
.journey-entry span { grid-row: span 2; border-color: #bcd6f9; color: #24529b; }
.journey-entry small { grid-column: 2; padding-bottom: 3px; font-size: 12px; }








.source-rows { border-top: 1px solid #cbd9ed; }
.source-rows article {
  display: grid;
  grid-template-columns: 34px minmax(160px, .55fr) minmax(0, 1fr);
  gap: clamp(10px, 2.4vw, 30px);
  align-items: baseline;
  padding: 17px 0;
  border-bottom: 1px solid #cbd9ed;
}
.source-rows h3, .team-grid h3, .trial-grid h3 { font-size: clamp(18px, 2vw, 23px); }
.source-rows p, .team-grid p, .trial-grid p { color: var(--text); }



.case-spec { margin-top: 13px; }
.case-spec div {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  padding: 7px 0;
  border-top: 1px solid var(--rule);
  font-size: 14px;
}
.case-spec dt { color: var(--text); }
.case-spec dd { margin: 0; font-weight: 700; text-align: right; }
.cost-chart {
  margin-top: 15px;
  border: 1px solid var(--rule);
  border-radius: 12px;
  padding: clamp(14px, 2.6vw, 28px);
  background: #fff;
}
.cost-chart figcaption {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, .85fr);
  gap: 16px;
  align-items: end;
  margin-bottom: 16px;
}
.cost-chart figcaption p { color: var(--text); font-size: 14px; }
.cost-chart li {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr) 90px;
  align-items: center;
  gap: 10px;
  min-height: 37px;
  padding: 4px 8px;
  font-variant-numeric: tabular-nums;
}
.cost-chart li b { text-align: right; }
.cost-chart li.is-selected { background: var(--series-tint); border-radius: 6px; }
.chart-track { height: 13px; background: #e8effb; border-radius: 5px; overflow: hidden; }
.chart-track i { display: block; height: 100%; transform: scaleX(var(--bar)); transform-origin: left; background: var(--series-color, #2364cb); }

#chart-status:empty { display: none; }

.team-grid, .trial-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(14px, 3vw, 35px);
}
.team-grid article, .trial-grid li { padding: 15px 0 0; border-top: 2px solid #a4bbd8; }
.team-grid h3, .trial-grid h3 { margin: 8px 0; }
.team-stage, .trial-grid li > span { color: #466184; font-size: 13px; font-weight: 750; }
#faq { border-top: 1px solid var(--rule); }
.faq summary { padding-block: 4px; }
.start { padding-block: clamp(32px, 5vw, 58px); }

@media (max-width: 950px) {
  nav { gap: 11px; font-size: 13px; }
  .card-tag, .site-line, .call-detail, .request-foot, .request-detail span { font-size: 10px; }
}
@media (max-width: 720px) {
  .hero-art { min-height: 240px; }
  .hero-grid { gap: 22px; }
  .hero { padding-block: 26px; }
  .card-site { width: 52%; top: 2%; }
  .card-call { width: 51%; top: 28%; right: 0; }
  .card-request { width: 61%; top: 60%; left: 5%; }
  .float-card b { font-size: 14px; }
  .card-tag, .site-line, .call-detail, .request-foot, .request-detail span { font-size: 11px; }
  .client-proof { grid-template-columns: 1fr; gap: 13px; padding-block: 17px; }
  .client-logos { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px 12px; }
  .client-logos img { height: 24px; }
  .insight, .cost-chart figcaption, .team-grid, .trial-grid { grid-template-columns: minmax(0, 1fr); }
  .section-head { margin-bottom: 17px; }
  .source-rows article { grid-template-columns: 30px minmax(0, 1fr); gap: 6px 10px; }
  .source-rows article p { grid-column: 2; }
  .cost-chart li { grid-template-columns: 50px minmax(0, 1fr) 73px; font-size: 14px; gap: 6px; }
}
@media (prefers-reduced-motion: reduce) {
  .button { transition: none; }
}

h1 { font-size: clamp(36px, 4.1vw, 61px); }
.card-request { top: 66%; }

@media (max-width: 820px) {
  nav { display: none; }
  .hero-grid { grid-template-columns: 1fr; gap: 20px; }
  h1 { font-size: clamp(34px, 8.4vw, 51px); }
  .hero-art { width: min(100%, 475px); margin-inline: auto; }
  .hero-art {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
    min-height: 0;
    aspect-ratio: auto;
    padding: 4px 0 2px;
  }
  .hero-art .art-paths { inset: 0; }
  .hero-art .float-card { position: relative; inset: auto; width: auto; align-content: start; }
  .hero-art .card-request { grid-column: 1 / -1; justify-self: center; width: min(100%, 252px); }
  .card-site .pill { display: none; }
  .float-card .wave { height: 14px; }
}

/* Technology is a static sequence so all steps remain visible. */
.route-section { background: #eff5ff; }
.route-section .section-head { max-width: 720px; }
.tech-steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 1px solid #ccdcef;
  border-radius: 18px;
  background: #fff;
}
.tech-steps li { padding: clamp(17px, 3vw, 30px); min-width: 0; }
.tech-steps li + li { border-inline-start: 1px solid #dce6f3; }
.tech-index {
  display: grid; place-items: center;
  width: 42px; height: 42px; margin-bottom: 13px;
  border-radius: 11px; background: #e5efff; color: #234d83;
  font-size: 15px; font-weight: 750; font-variant-numeric: tabular-nums;
}
.tech-steps h3, .tech-delivery h3 { font-size: clamp(18px, 2vw, 23px); line-height: 1.22; }
.tech-steps p, .tech-delivery div > p:last-child { font-size: 16px; line-height: 1.55; margin-top: 8px; }
.tech-delivery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 14px; }
.tech-delivery > div { padding: clamp(16px, 2.4vw, 24px); border-radius: 14px; border: 1px solid #cfddf3; background: #e6efff; }
.tech-delivery > div:last-child { background: #eaf3ff; border-color: #c5daf7; }
.tech-delivery .eyebrow { margin-bottom: 6px; }
@media (max-width: 700px) {
  .tech-steps, .tech-delivery { grid-template-columns: minmax(0, 1fr); }
  .tech-steps li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 13px; }
  .tech-steps li + li { border-inline-start: 0; border-top: 1px solid #dce6f3; }
  .tech-index { margin: 0; }
}
.case-section { background: #fff; }
.case-picker { display: flex; gap: clamp(10px, 3vw, 30px); border-bottom: 1px solid #dce6f4; margin-bottom: 22px; }
.case-picker button {
  min-height: 44px;
  padding: 6px 2px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: var(--text);
  font-size: clamp(13px, 2vw, 16px);
  font-weight: 700;
}
.case-picker button:hover, .case-picker button[aria-pressed=true] { color: #255a96; }
.case-picker button[aria-pressed=true] { border-bottom-color: #3b77bf; }
.case-story { display: grid; grid-template-columns: minmax(0, .66fr) minmax(0, 1fr); gap: clamp(18px, 4vw, 54px); align-items: start; }
.case-volume { display: grid; gap: 4px; }
.case-volume .kicker { margin: 0; }
.case-volume strong { font-size: clamp(50px, 6vw, 82px); line-height: 1; letter-spacing: -.07em; font-variant-numeric: tabular-nums; }
.case-volume > span:last-child { color: var(--text); font-size: 14px; font-weight: 650; }
.case-request { margin-top: 16px; padding: 14px 0 0; border-top: 1px solid #dce6f4; }
.case-spec div { border-color: #e3ebf6; }
.case-document { min-width: 0; margin: 0; border: 1px solid #dce6f4; border-radius: 12px; background: #fff; box-shadow: 0 12px 22px #213f6410; }
.case-document figcaption, .case-document-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 6px 12px;
  padding: 9px 12px;
  color: var(--text);
  font-size: 13px;
}
.case-document figcaption b { color: var(--ink); }
.case-document-footer { border-top: 1px solid #e3ebf6; }
.case-document-footer .button { min-height: 40px; }
.case-image { position: relative; border: 0; border-top: 1px solid #e3ebf6; border-radius: 0; aspect-ratio: 1080 / 607; }
.case-image:focus-visible { outline-offset: -4px; }
.case-highlight {
  position: absolute;
  inset: 7.6% 1px auto;
  height: 11.6%;
  border: 2px solid #3b77bf;
  background: #5796ed16;
  pointer-events: none;
}
.case-image.is-loading .case-highlight { visibility: hidden; }

@media (max-width: 720px) {
  .case-story { grid-template-columns: minmax(0, 1fr); }
  .case-request { min-height: 188px; }
}
@media (prefers-reduced-motion: reduce) {
}

.people {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 16px 14px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.person-lead {
  display: grid;
  grid-row: span 4;
  grid-template-rows: subgrid;
  row-gap: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
}
.person-photo {
  align-self: start;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #e6effd;
}
.person-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.person-photo .person-portrait-close { transform: scale(1.14); transform-origin: 50% 35%; }
.person-bio {
  display: grid;
  grid-row: span 3;
  grid-template-rows: subgrid;
  row-gap: 0;
  min-width: 0;
  padding: 12px;
}
.person-bio h3 { font-size: clamp(16px, 1.65vw, 23px); }
.person-role { display: block; margin-top: 4px; color: #2d65a2; font-size: 13px; font-weight: 720; }
.person-bio p { margin-top: 8px; color: var(--text); font-size: 14px; }
@media (max-width: 1080px) {
  .people { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .people { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .person-bio { padding: 10px; }
  .person-bio h3 { min-block-size: 2lh; }
}
@media (max-width: 430px) {
  .person-role { min-block-size: 2lh; }
}
@media (max-width: 374px) {
  .people { grid-template-columns: minmax(0, 1fr); }
  .person-lead { grid-row: auto; grid-template: auto / 105px minmax(0, 1fr); }
  .person-bio { grid-row: auto; grid-template-rows: auto; }
}

.faq-layout { display: grid; grid-template-columns: minmax(0, .57fr) minmax(0, 1fr); gap: clamp(22px, 6vw, 82px); }
.faq-layout .text-link { margin-top: 12px; }
.faq { display: grid; gap: 9px; border: 0; }
.faq details { border: 1px solid var(--line); border-radius: 13px; padding: 0; background: #fff; }
.faq details[open] { border-color: #c8dcf5; background: #f2f7ff; }
.faq summary {
  position: relative;
  padding: 14px 59px 14px 15px;
  list-style: none;
  min-height: 52px;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 15px;
  transform: translateY(-50%);
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background:
    linear-gradient(#315d93, #315d93) center / 12px 2px no-repeat,
    linear-gradient(#315d93, #315d93) center / 2px 12px no-repeat,
    #e3eefc;
}
.faq details[open] summary::after { background-size: 12px 2px, 0 0, auto; }
.faq summary:hover { color: #245990; }
.faq summary:focus-visible { outline-offset: -4px; border-radius: 12px; }
.faq details p { margin: 0; padding: 0 48px 14px 15px; }

@media (max-width: 720px) {
  .faq-layout { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .faq details p { padding-right: 15px; }
}

.button {
  min-height: 44px;
  padding-inline: 19px;
  border-radius: 10px;
}
.button.small { min-height: 42px; }
.button.outline { border-color: #b7cce6; color: #214e82; }
.button.outline:hover { border-color: #7ca2d1; background: #edf5ff; }
.button.primary {
  padding-inline: 20px;
  border-radius: 10px;
  background: #245bd6;
  color: #fff;
}
.button.primary:hover { background: #1c4bb9; }
.button.primary:active { background: #173f9e; }
.actions .text-link { min-height: 44px; }
.mini-icon svg { width: 15px; height: 15px; }

.calc {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr);
  align-items: stretch;
  gap: clamp(15px, 3vw, 42px);
  margin-top: 18px;
  padding: clamp(15px, 3vw, 32px);
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
}
.calc-mode {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  min-width: 0;
  margin: 15px 0 12px;
  padding: 0;
  border: 0;
}
.calc-mode legend, .calc-fields label { margin-bottom: 6px; color: var(--ink); font-size: 14px; font-weight: 700; }
.calc-mode label { position: relative; display: grid; cursor: pointer; }
.calc-mode input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.calc-mode span {
  display: grid;
  place-items: center;
  min-height: 45px;
  padding: 6px 8px;
  border: 1px solid #cbdaed;
  border-radius: 9px;
  background: #f8faff;
  color: #355476;
  text-align: center;
  font-size: 14px;
  font-weight: 700;
}
.calc-mode label:hover span { border-color: #7fa7d8; }
.calc-mode input:checked + span { border-color: #326fba; background: #e8f2ff; color: #173e71; }
.calc-mode input:focus-visible + span { outline: 3px solid #2460ac; outline-offset: 2px; }
.calc-fields { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); align-items: end; gap: 10px; }
.calc-fields label { display: block; }
.calc-field { position: relative; }
.calc-field input {
  width: 100%;
  min-height: 46px;
  padding: 8px 10px;
  border: 1px solid #b6cae3;
  border-radius: 8px;
  color: var(--ink);
  background: #fff;
  font-size: 17px;
  font-variant-numeric: tabular-nums;
  appearance: textfield;
}
.calc-field input::-webkit-inner-spin-button, .calc-field input::-webkit-outer-spin-button { appearance: none; }
.calc-field input[aria-invalid=true] { border-color: #b53d2d; }
.calc-field input#conversion { padding-right: 30px; }
.calc-field span { position: absolute; inset: 50% 11px auto auto; transform: translateY(-50%); color: #48617d; pointer-events: none; }
.calc-presets { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 9px; }
.calc-presets button, .cost-chart li button {
  min-height: 40px;
  padding: 5px 10px;
  border: 1px solid #c6d8f0;
  border-radius: 8px;
  background: #fff;
  color: #23538e;
  font-size: 13px;
  font-weight: 700;
}
.calc-presets button:hover, .cost-chart li button:hover { border-color: #7fa7d8; }
.calc-presets button[aria-pressed=true] { border-color: #326fba; background: #e8f2ff; color: #173e71; }
.cost-chart li button { padding-inline: 4px; }
.cost-chart li button[aria-pressed=true] { border-color: var(--series-color); background: var(--series-tint); color: var(--series-ink); }

.calc-result { padding: clamp(13px, 2.5vw, 23px); border: 1px solid #dce9fa; border-radius: 12px; background: #eff5ff; }
.calc-result dl > div { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; padding: 9px 0; border-top: 1px solid #d1e0f4; }
.calc-result dt { color: #3c5678; font-size: 14px; }
.calc-result dd { margin: 0; text-align: right; font-weight: 750; font-variant-numeric: tabular-nums; white-space: nowrap; }
.calc-result .calc-budget { display: grid; gap: 3px; padding: 0 0 12px; border-top: 0; }
.calc-budget dd { text-align: left; color: #173f74; font-size: clamp(27px, 4vw, 46px); line-height: 1.12; letter-spacing: -.04em; }
.calc-cpl dd { color: #173f74; font-size: 20px; }
#calc-help { margin-top: 5px; color: var(--text); font-size: 13px; }

@media (max-width: 720px) {
  .calc { grid-template-columns: minmax(0, 1fr); }
  .calc-fields label { font-size: 13px; }
}

.realtime-card {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, .8fr);
  gap: clamp(20px, 4vw, 48px);
  align-items: center;
  padding: clamp(18px, 4vw, 48px);
  border: 1px solid #d0e1f6;
  border-radius: 18px;
  background: linear-gradient(120deg, #f8fbff, #eaf3ff);
}
.realtime-card p:not(.eyebrow) { margin-top: 10px; color: var(--text); }
.realtime-card .button { margin-top: 17px; }
.realtime-window {
  padding: clamp(15px, 2.7vw, 28px);
  border: 1px solid #d2e1f5;
  border-radius: 14px;
  background: #fff;
  color: #335a85;
  font-size: 14px;
  font-weight: 650;
}
.realtime-range {
  display: grid;
  grid-template-columns: auto minmax(18px, 1fr) auto;
  align-items: center;
  gap: 12px;
  margin-top: 8px;
}
.realtime-range strong { color: #1d4b84; font-size: clamp(24px, 3.5vw, 42px); letter-spacing: -.045em; }
.realtime-range span { height: 5px; border-radius: 5px; background: #3176cf; }
.realtime-window p:not(.eyebrow) { margin-top: 3px; font-weight: 450; }

.cost-chart [data-rate="2"] { --series-color: #183f91; --series-tint: #edf3ff; --series-ink: #19479e; }
.cost-chart [data-rate="5"] { --series-color: #245bd6; --series-tint: #eaf2ff; --series-ink: #214b99; }
.cost-chart [data-rate="10"] { --series-color: #3985b4; --series-tint: #eaf6ff; --series-ink: #245574; }

.review-track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 100%;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #f5f9ff;
}
.review-slide {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(14px, 4vw, 48px);
  padding: clamp(14px, 3vw, 30px);
  scroll-snap-align: start;
}
.review-slide p:not(.kicker) { max-width: 42ch; margin-top: 9px; color: var(--text); }
.review-preview {
  display: block;
  width: 100%;
  padding: 0;
  border: 1px solid #d0dff3;
  border-radius: 9px;
  overflow: hidden;
  background: #eaf2fc;
  cursor: zoom-in;
}
.review-preview img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: contain; }
.review-controls:not([hidden]) { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 9px 14px; margin-top: 12px; }
#review-count { color: var(--text); font-size: 14px; font-weight: 700; font-variant-numeric: tabular-nums; }
@media (max-width: 720px) {
  .realtime-card, .review-slide { grid-template-columns: minmax(0, 1fr); }
  .review-controls .button { padding-inline: 11px; }
}

.skip-link {
  position: absolute;
  z-index: 5;
  inset: 8px auto auto 8px;
  padding: 10px 14px;
  background: #fff;
  border-radius: 8px;
  transform: translateY(-150%);
}
.skip-link:focus { transform: none; }

.start { padding: clamp(26px, 5vw, 56px) 0; background: linear-gradient(118deg, #eaf2ff, #f6f9ff 66%); }
.lead-layout {
  grid-template-columns: minmax(0, .9fr) minmax(0, 1fr);
  gap: clamp(18px, 5vw, 60px);
}
.lead-intro > p:not(.eyebrow) { max-width: 42ch; }
.lead-next { display: grid; gap: 11px; padding: 0; margin: 19px 0 0; list-style: none; counter-reset: next; }
.lead-next li { display: flex; gap: 10px; align-items: center; color: var(--ink); line-height: 1.35; }
.lead-next li::before {
  counter-increment: next; content: "0" counter(next); display: grid; place-items: center;
  flex: 0 0 31px; height: 31px; border-radius: 8px; background: #dceaff; color: #254b7a;
  font-size: 13px; font-weight: 750;
}
.lead-form {
  display: grid;
  gap: 13px;
  min-width: 0;
  padding: clamp(16px, 3vw, 27px);
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 12px 34px #254d8510;
}
.lead-form-head { padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.lead-form-head h3 { font-size: clamp(21px, 3vw, 26px); }
.lead-form-head p { margin-top: 3px; font-size: 15px; }
.lead-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.lead-form label { display: grid; gap: 4px; color: var(--ink); font-size: 14px; font-weight: 700; }
.lead-form .lead-consent > span { color: var(--text); font-weight: 450; }
.lead-label { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; }
.lead-label small { color: var(--text); font-size: 13px; font-weight: 500; }
.lead-form :is(input:not([type=checkbox]), select, textarea) {
  min-width: 0;
  width: 100%;
  min-height: 48px;
  padding: 9px 12px;
  border: 1px solid #aebfd6;
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  font: 400 16px/1.45 Onest, Arial, sans-serif;
}
.lead-form textarea { resize: vertical; }
.lead-form :is(input, select, textarea):focus-visible { outline: 2px solid #356bb6; outline-offset: 2px; }
.lead-form .lead-trap { display: none; }
.lead-form .lead-consent { grid-template-columns: auto 1fr; align-items: start; gap: 8px; }
.lead-consent input { margin: 3px 0 0; width: 17px; height: 17px; }
.lead-consent a { color: #28558a; text-decoration: underline; text-underline-offset: 2px; }
.lead-form .button { width: 100%; min-height: 49px; font-size: 16px; }
.lead-form #lead-status { margin: 0; color: #1e6145; font-size: 14px; }
.lead-form #lead-status[data-error] { color: #a13528; }
.lead-form #lead-status:empty { display: none; }
@media (max-width: 720px) {
  .lead-layout { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 440px) {
  .lead-fields { grid-template-columns: minmax(0, 1fr); }
}

.footer-links {
  display: grid;
  gap: 6px;
}
.footer-links a, .consent-page p a {
  text-decoration: underline;
  text-underline-offset: 3px;
}
.consent-page { max-width: 770px; }
.consent-page h1 {
  margin: 18px 0 22px;
  font-size: clamp(26px, 4.5vw, 46px);
  overflow-wrap: anywhere;
}
.consent-page p, .consent-page ul { margin: 0 0 14px; }
.consent-page li + li { margin-top: 5px; }

.privacy-page h2 {
  margin: 25px 0 10px;
  font-size: clamp(19px, 3vw, 27px);
  line-height: 1.25;
}
.privacy-page p { overflow-wrap: anywhere; }

.tech-proof {
  margin-top: 14px;
  padding: 16px clamp(15px, 2.4vw, 24px);
  background: #fff;
  border: 1px solid #ccdcef;
  border-radius: 14px;
}
.tech-proof p { margin-bottom: 6px; }
.lead-form .lead-advertising { display: grid; }
.lead-form .lead-advertising label {
  display: block;
  font-weight: 550;
  cursor: pointer;
}
.lead-advertising :is(a, span) { font-size: 13px; }

@media (max-width: 480px) {
  .lead-form .lead-consent { gap: 10px; }
  .lead-consent input { width: 19px; height: 19px; }
}

/* Shared section rhythm and card edges. */
main > .section {
  padding-block: clamp(42px, 5.8vw, 76px);
}
.section-head {
  margin-bottom: clamp(18px, 2.5vw, 30px);
}
.section-head h2 { text-wrap: balance; }
.section-head p:not(.eyebrow) { max-width: 66ch; }
:is(.case-document, .journey, .realtime-card, .tech-steps, .lead-form) {
  border-radius: 18px;
  box-shadow: none;
}
#sources .source-rows, #team .people { margin-top: 0; }
#trial .trial-grid { gap: clamp(12px, 2vw, 20px); }
#trial .trial-grid li {
  padding: clamp(15px, 2.3vw, 24px);
  border: 1px solid #dce6f4;
  border-radius: 14px;
  background: #f7faff;
}

.price-section { background: #f4f8fe; }
.pricing-plans {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(12px, 2.5vw, 26px);
}
.pricing-plan {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 4;
  align-items: start;
  gap: 0;
  padding: clamp(17px, 3vw, 32px);
  border: 1px solid #d6e3f4;
  border-radius: 20px;
  background: #fff;
}
.pricing-plan-featured { border-color: #a2bff3; background: #edf4ff; }
.pricing-plan h3 { font-size: clamp(20px, 2.4vw, 27px); }
.pricing-plan > p { margin-top: 8px; color: var(--text); }
.pricing-rates { margin: 18px 0 16px; font-variant-numeric: tabular-nums; }
.pricing-rates > div {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px;
  padding: 10px 12px;
  border-top: 1px solid #d6e3f4;
  font-size: 15px;
}
.pricing-rates .pricing-base {
  display: flex;
  flex-direction: column-reverse;
  align-items: flex-start;
  gap: 2px;
  padding: 10px 12px;
  border: 0;
  border-radius: 10px;
}
.pricing-rates .is-current { background: #dceaff; }
.pricing-rates dd { margin: 0; font-weight: 700; }
.pricing-rates dt, .pricing-base small { color: var(--text); }
.pricing-base data { color: #173f74; font-size: clamp(32px, 4vw, 48px); line-height: 1.05; letter-spacing: -.045em; }
.pricing-base small { font-size: 14px; font-weight: 500; }
.pricing-plan .button { justify-self: start; }
.pricing-custom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 16px;
  padding: 14px 0;
}
.calculator-section { background: #fff; }
.calculator-section .calc {
  margin-top: 0;
  border-radius: 18px;
}
.calculator-section .cost-chart {
  margin-top: clamp(14px, 2.3vw, 24px);
  border-radius: 18px;
}
@media (max-width: 620px) {
  .pricing-plans { grid-template-columns: minmax(0, 1fr); }
  .pricing-plan .button { width: 100%; }
}
@media (max-width: 480px) {
  main > .section { padding-block: 38px; }
}

.tech-proof {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  padding: 0;
  overflow: hidden;
  background: #d9e6f8;
}
.tech-proof > article {
  display: grid;
  align-content: start;
  gap: 10px;
  padding: clamp(16px, 3vw, 28px);
  background: #fff;
}
.tech-proof .tech-budget { background: #f6f9ff; }
.tech-proof .eyebrow { margin: 0; }
.tech-proof h3 { font-size: clamp(21px, 2.5vw, 28px); }
.tech-proof dl > div {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 6px 0;
  border-bottom: 1px solid var(--line);
}
.tech-proof dt { color: var(--text); }
.tech-proof dd { text-align: right; font-weight: 700; }
.tech-proof .text-link { justify-self: start; }
@media (max-width: 620px) {
  .tech-proof { grid-template-columns: minmax(0, 1fr); }
}
