/* VA20Four7 v11.5 — typography normalization
   Goal: one readable type family, one scale, one rhythm across the entire site. */

:root{
  --type-font:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --type-ink:#14263d;
  --type-copy:#53677e;
  --type-muted:#74869a;
  --type-display:clamp(48px,5.35vw,72px);
  --type-h1:clamp(44px,4.65vw,64px);
  --type-h2:clamp(34px,3.45vw,48px);
  --type-h3:clamp(22px,2vw,28px);
  --type-h4:18px;
  --type-body-lg:17px;
  --type-body:16px;
  --type-body-sm:14px;
  --type-ui:13px;
  --type-label:11px;
}

/* One family across the product/marketing experience. This intentionally
   overrides historical Plus Jakarta Sans / Inter Tight declarations. */
html body,
html body button,
html body input,
html body textarea,
html body select,
html body option,
html body :where(h1,h2,h3,h4,h5,h6,p,a,span,strong,b,small,label,summary,blockquote,cite,li,td,th){
  font-family:var(--type-font)!important;
}

html body{
  font-size:var(--type-body)!important;
  line-height:1.65!important;
  letter-spacing:-.006em!important;
  color:var(--type-ink)!important;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

/* Core editorial scale */
html body h1{
  font-size:var(--type-h1)!important;
  line-height:1.04!important;
  letter-spacing:-.042em!important;
  font-weight:600!important;
}
html body h2{
  font-size:var(--type-h2)!important;
  line-height:1.08!important;
  letter-spacing:-.034em!important;
  font-weight:600!important;
}
html body h3{
  font-size:var(--type-h3)!important;
  line-height:1.18!important;
  letter-spacing:-.022em!important;
  font-weight:600!important;
}
html body h4{
  font-size:var(--type-h4)!important;
  line-height:1.3!important;
  letter-spacing:-.014em!important;
  font-weight:600!important;
}
html body :where(h5,h6){
  font-size:15px!important;
  line-height:1.4!important;
  letter-spacing:-.008em!important;
  font-weight:600!important;
}

html body p,
html body li{
  line-height:1.68!important;
  letter-spacing:-.004em!important;
}
html body p{color:var(--type-copy)!important}
html body strong,
html body b{font-weight:600!important}

/* Main hero display scale — same family, slightly larger size only. */
html body :is(.home890-copy h1,.va102-service-hero h1,.va102-audience-hero h1,.va103-audit-hero h1,.va104-hero h1,.va110-pricing-hero h1,.va107-platform-hero h1){
  font-size:var(--type-display)!important;
  line-height:1.02!important;
  letter-spacing:-.046em!important;
  font-weight:600!important;
  max-width:13ch!important;
}

/* Major section headings should feel related rather than individually designed. */
html body :is(
  .home940-problem-copy h2,
  .home970-owner-title h2,
  .home1010-stack-copy h2,
  .home840-chapter-head h2,
  .home840-proof-head h2,
  .home840-start-copy h2,
  .home840-tools-head h2,
  .va102-section-head h2,
  .va103-section-head h2,
  .va104-section-head h2,
  .va107-layer-intro h2
){
  font-size:var(--type-h2)!important;
  line-height:1.08!important;
  letter-spacing:-.034em!important;
  font-weight:600!important;
}

/* Body reading rhythm */
html body :is(
  .home890-copy>p,
  .home940-problem-copy>p,
  .home970-owner-head>p,
  .home970-owner-intro>p,
  .home1010-stack-copy>p,
  .home840-chapter-head>p,
  .home840-start-copy>p,
  .home840-tools-head>p,
  .va102-service-hero-copy>p,
  .va102-audience-hero-copy>p,
  .va103-audit-hero-copy>p,
  .va104-hero-copy>p
){
  font-size:var(--type-body-lg)!important;
  line-height:1.7!important;
  letter-spacing:-.006em!important;
  color:var(--type-copy)!important;
}

html body :is(
  .va102-section-head>p,
  .va103-section-head>p,
  .va104-section-head>p,
  .home970-panel-copy>p,
  .home970-step>p,
  .home840-diff-grid p,
  .home840-start-steps p,
  .home840-testimonial blockquote
){
  line-height:1.68!important;
  color:var(--type-copy)!important;
}

/* UI labels: no unreadable 8–9px typography. */
html body :is(
  .eyebrow,
  .home840-chapter-no,
  .home940-label small,
  .home970-panel-kicker,
  .home970-step-top em,
  .home970-step-top span,
  .home970-flow-meta span,
  .va107-layer-rail small,
  .va107-layer>small,
  .va107-proof-note small,
  .va107-signature-head>small,
  .va107-signal-column small,
  .service-group,
  .audit-map-head small,
  .audit-value-grid article>span,
  .audit-process-steps span,
  .nav107-platform-link small
){
  font-size:var(--type-label)!important;
  line-height:1.25!important;
  font-weight:600!important;
  letter-spacing:.075em!important;
}

html body :is(
  .nav930-trigger,.nav930-link,.nav930-cta,
  .btn,.contact-submit,.footer-contact-cta,
  .text-link,.home970-panel-copy>a,
  .home970-flow-status
){
  font-size:var(--type-ui)!important;
  line-height:1.2!important;
  font-weight:600!important;
  letter-spacing:-.006em!important;
}

/* Product UI / microcopy: readable but still compact. */
html body :is(
  .home970-step>p,
  .home970-ownership-pills strong,
  .va107-layer-rail p,
  .va107-proof-note p,
  .va107-conversation-stream span,
  .va107-ledger b,.va107-inbox b,.va107-code-flow b,
  .service-showcase-copy p,
  .audit-value-grid p,
  .audit-process-steps p,
  .benefit-card p
){
  font-size:var(--type-body-sm)!important;
  line-height:1.58!important;
}

html body :is(
  .home970-step>strong,
  .home970-ownership-pills strong,
  .va107-layer-rail strong,
  .va107-signal-column b,
  .service-showcase-copy strong,
  .fit-list b
){
  font-size:14px!important;
  line-height:1.42!important;
  font-weight:600!important;
}

/* Blockquotes should read editorially, not like another heading. */
html body blockquote{
  font-family:var(--type-font)!important;
  font-weight:500!important;
  letter-spacing:-.022em!important;
  line-height:1.42!important;
}

/* Inputs inherit the same readable UI scale. */
html body :where(input,textarea,select){
  font-size:15px!important;
  line-height:1.4!important;
  font-weight:400!important;
  letter-spacing:-.004em!important;
}
html body label{
  font-size:12px!important;
  line-height:1.35!important;
  font-weight:600!important;
  letter-spacing:.01em!important;
}

/* Footer remains compact but must be easy to read. */
html body #va247-theme-footer .footer-premium-brand h2{
  font-size:clamp(28px,2.8vw,38px)!important;
  line-height:1.1!important;
  letter-spacing:-.032em!important;
  font-weight:600!important;
}
html body #va247-theme-footer :is(p,a,li){
  font-size:13px!important;
  line-height:1.55!important;
}
html body #va247-theme-footer :is(small,.footer-label){
  font-size:11px!important;
  letter-spacing:.05em!important;
}

/* Mobile: prioritize reading comfort over dramatic display sizing. */
@media(max-width:760px){
  :root{
    --type-display:clamp(40px,11.5vw,52px);
    --type-h1:clamp(38px,10.5vw,50px);
    --type-h2:clamp(30px,8vw,40px);
    --type-h3:clamp(21px,5.4vw,25px);
    --type-body-lg:16px;
    --type-body:16px;
    --type-body-sm:14px;
    --type-ui:13px;
    --type-label:11px;
  }
  html body h1,
  html body :is(.home890-copy h1,.va102-service-hero h1,.va102-audience-hero h1,.va103-audit-hero h1,.va104-hero h1,.va110-pricing-hero h1,.va107-platform-hero h1){
    max-width:14ch!important;
    line-height:1.04!important;
    letter-spacing:-.038em!important;
  }
  html body h2{letter-spacing:-.029em!important}
}

@media(max-width:480px){
  :root{
    --type-display:clamp(36px,10.8vw,46px);
    --type-h1:clamp(35px,10vw,44px);
    --type-h2:clamp(28px,7.7vw,36px);
  }
}
