/* Shared text roles for the main marketing pages, loaded after page styles. */
:root {
  --font-body: 'Instrument Sans', 'Noto Sans Devanagari', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --text-caption: .875rem;
  --text-body: 1rem;
  --text-lead: 1.125rem;
}
body {
  font-family: var(--font-body);
  font-size: var(--text-body);
  line-height: 1.65;
  text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}
.brand-picture { display: inline-flex; flex-shrink: 0; }
.brand-picture img { display: block; }
.seo-context { padding-block: 2rem; }
.context-links { padding-inline-start: 1.25rem; max-inline-size: 70ch; }
.context-links li + li { margin-block-start: .75rem; }
.seo-context a { color: var(--color-primary); text-decoration: underline; text-underline-offset: .2em; }
.comparison-scroll { overflow-x: auto; }
.product-comparison { border-collapse: collapse; inline-size: 100%; font-size: var(--text-body); }
.product-comparison caption { text-align: start; color: var(--color-text2); margin-block-end: .75rem; }
.product-comparison :is(th,td) { text-align: start; vertical-align: top; padding: 1rem; border-bottom: 1px solid var(--color-border); min-inline-size: 10rem; }
.product-comparison th { font-weight: 700; }
.hero { overflow-x: clip; }
button, input, select, textarea { font-family: var(--font-body); }
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  font-weight: 700;
  text-wrap: balance;
  overflow-wrap: break-word;
}
h1, .hero h1, .phead h1, .shero-title { line-height: 1.15; letter-spacing: -.025em; }
h2, .sec-head h2, .case-hook { line-height: 1.2; }
h3, h4, h5, h6 { line-height: 1.35; }
h1 em, h2 em, h3 em, .shero-title em {
  font-family: inherit;
  font-style: normal;
  font-weight: inherit;
}
p, li, figcaption, .faq-a { overflow-wrap: break-word; }
main p { max-inline-size: 70ch; text-wrap: pretty; }
p + p { margin-block-start: .75em; }
.hero-sub, .phead .lede, .lede, .sec-head p, .shero-sub {
  font-family: var(--font-body);
  font-size: var(--text-lead);
  line-height: 1.65;
  max-inline-size: 62ch;
}
/* Human-readable captions use the body family; code and traces keep monospace. */
figcaption, .caption, .card-meta, .case-client, .case-visual .sub,
.fact-big-label, .proof-label, .stat-label, .metric-label, .foot-powered,
.breadcrumb, .ncase-tag, .sol-tag, .price-chip, .mini-tag, .card-link, .cap-go, .ncase-go,
.out .from, .chip, .step-n, .smetrics span, .schain-eyebrow, .schain-node,
.shero-nudge, .shero-nudge span, .shero-pill, .shero-chip, .stab {
  font-family: var(--font-body);
  font-size: var(--text-caption);
  line-height: 1.5;
  letter-spacing: normal;
  text-transform: none;
  white-space: normal;
  overflow-wrap: anywhere;
}
.eyebrow, .badge, .badge-voice, .badge-saas, .badge-live {
  font-family: var(--font-body);
  font-size: .8125rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: .045em;
}
.card p, .sol p, .feat p, .out p, .step p, .cap p, .ncase p, .faq-a {
  font-size: var(--text-body);
  line-height: 1.65;
}
.faq-q { font-family: var(--font-display); font-size: var(--text-lead); line-height: 1.4; }
.result-desc {
  font-family: var(--font-body);
  font-size: var(--text-caption);
  line-height: 1.5;
  display: block;
  -webkit-line-clamp: unset;
  overflow: visible;
}
.foot-col h4 { font-size: var(--text-caption); line-height: 1.5; letter-spacing: .045em; }
strong, b { font-weight: 700; }
body .aira-panel, body .aira-bubble { font-family: var(--font-body); }
body .aira-st, body .aira-empty { font-size: var(--text-caption); color: #59647A; line-height: 1.5; }
body .aira-msg, body .aira-in, body .aira-bubble { font-size: var(--text-body); line-height: 1.6; }
@media (max-width: 600px) {
  .hero h1, .phead h1, .shero-title { font-size: clamp(2rem, 7.8vw, 2.75rem); }
  .sec-head h2, .case-hook { font-size: clamp(1.625rem, 6.5vw, 2.125rem); }
  .hero-sub, .phead .lede, .lede, .sec-head p, .shero-sub { font-size: var(--text-body); }
  .hero-cta, .phead-cta, .card-foot { flex-wrap: wrap; row-gap: .75rem; }
}
