/* Generated from design-system/typography.json by npm run typography:build.
 * Typography is the intentional design delta over the preserved source CSS.
 * Important declarations defeat old page utilities/inline sizes only on assigned roles. */
:root {
  --z-type-display-size: clamp(2.5rem, 1.75rem + 3vw, 4rem);
  --z-type-display-line: 1.12;
  --z-type-section-size: clamp(2rem, 1.5rem + 2vw, 3rem);
  --z-type-section-line: 1.18;
  --z-type-subsection-size: clamp(1.625rem, 1.4375rem + .75vw, 2rem);
  --z-type-subsection-line: 1.25;
  --z-type-card-size: clamp(1.375rem, 1.3125rem + .25vw, 1.5rem);
  --z-type-card-line: 1.3;
  --z-type-compact-size: 1.25rem;
  --z-type-compact-line: 1.4;
  --z-type-lead-size: 1.125rem;
  --z-type-lead-line: 1.6;
  --z-type-body-size: 1rem;
  --z-type-body-line: 1.6;
  --z-type-reading-size: 1.125rem;
  --z-type-reading-line: 1.7;
  --z-type-ui-size: 1rem;
  --z-type-ui-line: 1.5;
  --z-type-small-size: .875rem;
  --z-type-small-line: 1.5;
  --z-type-eyebrow-size: .75rem;
  --z-type-eyebrow-line: 1.5;
  --z-type-quote-size: clamp(1.5rem, 1.25rem + 1vw, 2rem);
  --z-type-quote-line: 1.35;
  --z-type-stat-size: clamp(2.25rem, 1.875rem + 1.5vw, 3rem);
  --z-type-stat-line: 1.12;
  --z-type-navigation-size: .875rem;
  --z-type-navigation-line: 1.5;
}
@media (max-width: 991px) { :root { --z-type-navigation-size: 1rem; } }
[data-zamp-type="display"],
.z-type-display,
.z-ui-heading--display {
  font-family: var(--z-font-heading) !important;
  font-size: var(--z-type-display-size) !important;
  line-height: var(--z-type-display-line) !important;
  font-weight: 400 !important;
  letter-spacing: -0.02em !important;
  text-wrap: balance;
  overflow-wrap: break-word;
}
[data-zamp-type="section"],
.z-type-section,
.z-ui-heading--section {
  font-family: var(--z-font-heading) !important;
  font-size: var(--z-type-section-size) !important;
  line-height: var(--z-type-section-line) !important;
  font-weight: 400 !important;
  letter-spacing: -0.015em !important;
  text-wrap: balance;
  overflow-wrap: break-word;
}
[data-zamp-type="subsection"],
.z-type-subsection,
.z-ui-heading--subsection {
  font-family: var(--z-font-heading) !important;
  font-size: var(--z-type-subsection-size) !important;
  line-height: var(--z-type-subsection-line) !important;
  font-weight: 400 !important;
  letter-spacing: -0.01em !important;
  text-wrap: balance;
  overflow-wrap: break-word;
}
[data-zamp-type="card"],
.z-type-card,
.z-ui-heading--card {
  font-family: var(--z-font-heading) !important;
  font-size: var(--z-type-card-size) !important;
  line-height: var(--z-type-card-line) !important;
  font-weight: 400 !important;
  letter-spacing: -0.005em !important;
  text-wrap: balance;
  overflow-wrap: break-word;
}
[data-zamp-type="compact"],
.z-type-compact,
.z-ui-accordion summary,
.zsc-howto h3,
.city-letter-heading {
  font-family: var(--z-font-body) !important;
  font-size: var(--z-type-compact-size) !important;
  line-height: var(--z-type-compact-line) !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
}
[data-zamp-type="lead"],
.z-type-lead {
  font-family: var(--z-font-body) !important;
  font-size: var(--z-type-lead-size) !important;
  line-height: var(--z-type-lead-line) !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
}
[data-zamp-type="body"],
.z-type-body,
.z-ui-card-body,
.z-ui-accordion-content,
.z-ui-tabs [role=tabpanel],
.z-ui-table,
.zsc-prompt,
.zsc-howto li,
.zsc-loc-v,
.zsc-lrow {
  font-family: var(--z-font-body) !important;
  font-size: var(--z-type-body-size) !important;
  line-height: var(--z-type-body-line) !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
}
[data-zamp-type="reading"],
.z-type-reading {
  font-family: var(--z-font-body) !important;
  font-size: var(--z-type-reading-size) !important;
  line-height: var(--z-type-reading-line) !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
}
[data-zamp-type="ui"],
.z-type-ui,
.z-ui-button,
.z-ui-field label,
.z-ui-field input,
.z-ui-tabs [role=tab],
.zsc-input,
.zsc-select,
.zsc-label,
.zsc-btn {
  font-family: var(--z-font-body) !important;
  font-size: var(--z-type-ui-size) !important;
  line-height: var(--z-type-ui-line) !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
}
[data-zamp-type="small"],
.z-type-small,
.z-ui-hint,
.z-ui-error,
.z-ui-pagination,
.z-ui-breadcrumbs,
.z-ui-table caption,
.z-ui-quote figcaption,
.zsc-hint,
.zsc-sub,
.zsc-chip,
.zsc-note,
.zsc-fine,
.zsc-howto-foot,
.zsc-loc-t,
.zsc-pb-api,
.b_post_toc_link,
.b_post_toc_link_text {
  font-family: var(--z-font-body) !important;
  font-size: var(--z-type-small-size) !important;
  line-height: var(--z-type-small-line) !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
}
[data-zamp-type="eyebrow"],
.z-type-eyebrow,
.z-ui-badge,
.zsc-kicker,
.zsc-tlabel,
.zsc-pb-pre {
  font-family: var(--z-font-body) !important;
  font-size: var(--z-type-eyebrow-size) !important;
  line-height: var(--z-type-eyebrow-line) !important;
  font-weight: 500 !important;
  letter-spacing: .08em !important;
}
[data-zamp-type="quote"],
.z-type-quote,
.z-ui-quote blockquote {
  font-family: var(--z-font-heading) !important;
  font-size: var(--z-type-quote-size) !important;
  line-height: var(--z-type-quote-line) !important;
  font-weight: 400 !important;
  letter-spacing: -0.01em !important;
  text-wrap: balance;
  overflow-wrap: break-word;
}
[data-zamp-type="stat"],
.z-type-stat,
.zsc-tax {
  font-family: var(--z-font-heading) !important;
  font-size: var(--z-type-stat-size) !important;
  line-height: var(--z-type-stat-line) !important;
  font-weight: 400 !important;
  letter-spacing: -0.02em !important;
  text-wrap: balance;
  overflow-wrap: break-word;
}
[data-zamp-type="navigation"],
.z-type-navigation {
  font-family: var(--z-font-body) !important;
  font-size: var(--z-type-navigation-size) !important;
  line-height: var(--z-type-navigation-line) !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
}

/* Inline formatting keeps semantic emphasis without a competing size/family. */
[data-zamp-type-inline] {
  font-family: inherit !important;
  font-size: inherit !important;
  line-height: inherit !important;
  letter-spacing: inherit !important;
}
[data-zamp-type-inline]:is(strong,b) { font-weight: 500 !important; }
input[data-zamp-type], textarea[data-zamp-type], select[data-zamp-type], .z-ui-field input, .zsc-input, .zsc-select { font-weight: 400 !important; }
[data-zamp-type]:is(input,textarea)::placeholder { font: inherit; letter-spacing: inherit; }
/* Consistent paragraph rhythm in editorial content; never constrain figures. */
:is(.text-rich-text,.text-rich-blog) [data-zamp-type=reading] {
  margin-top: 0;
  margin-bottom: 1.25em;
}
:is(.text-rich-text,.text-rich-blog) :is(h2,h3,h4,h5,h6)[data-zamp-type] {
  margin-top: 1.5em;
  margin-bottom: .6em;
}
:is(.text-rich-text,.text-rich-blog)>[data-zamp-type]:first-child { margin-top: 0; }
:is(.text-rich-text,.text-rich-blog) li[data-zamp-type=reading] { margin-bottom: .5em; }
.z-ui-card-body p { font: inherit; }
/* Let comparison labels wrap within their column instead of widening the page. */
@media (max-width: 767px) {
  .hero_component { grid-template-columns: minmax(0,1fr); }
  .hero_content,.hero_image-wrapper { min-width: 0; }
  .pricing_top-row { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .pricing_top-row-content,.pricing_top-row-wrapper { min-width: 0; max-width: 100%; }
  .pricing_top-row-content [data-zamp-type] { overflow-wrap: anywhere; }
}
