/* Public marketing typography, measured against lemonade.com on 30 Oct 2026.
   This file is intentionally scoped: the application and booking UI keep
   their own typography. Fonts are served locally under the SIL OFL. */
@font-face {
  font-family: Lato;
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/lato/lato-regular.ttf') format('truetype');
}
@font-face {
  font-family: Lato;
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/lato/lato-bold.ttf') format('truetype');
}

.s-page.s-page {
  --s-font: Lato, 'Helvetica Neue', Arial, sans-serif;
  --s-ink-2: #4a4a4a;
  --s-ink-3: #707070;
  --s-fw-semibold: 700;
  --s-fs-display: 55px;
  --s-fs-title: 44px;
  --s-fs-feature: 44px;
  --s-fs-subtitle: 26px;
  --s-fs-lead: 18px;
  --s-fs-text: 18px;
  --s-lh-display: 1.3;
  --s-lh-title: 1.272727;
  --s-lh-lead: 1.555556;
  --s-lh-text: 1.555556;
  --s-ls-display: -0.025em;
  --s-ls-title: normal;
  --s-ls-subtitle: normal;
  --s-ls-lead: normal;
  --s-ls-ui: normal;
  --s-stack-gap: 20px;
  font-family: var(--s-font);
  letter-spacing: normal;
  color: #4a4a4a;
}

/* Explicit heading roles win over older, page-specific tight tracking. */
.s-page.s-page :is(h1, .s-display) {
  font-family: var(--s-font);
  font-size: var(--s-fs-display);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: var(--s-ls-display);
  color: #323232;
}
.s-page.s-page :is(h2, .s-title, .s-feature-title, .s-heading-compact):not(:where(.s-footer *, .business-story__card-visual *, .m *)) {
  font-family: var(--s-font);
  font-size: var(--s-fs-title);
  font-weight: 700;
  line-height: 1.272727;
  letter-spacing: normal;
  color: #323232;
}
.s-page.s-page :is(h3, .s-subtitle, .s-heading-small):not(:where(.s-footer *, .business-story__card-visual *, .m *)) {
  font-family: var(--s-font);
  font-size: 26px;
  font-weight: 700;
  line-height: 34px;
  letter-spacing: normal;
  color: #4a4a4a;
}
.s-page.s-page :is(.s-lead, .s-text, .business-story__copy p, .v-search-intent__copy > p, .v-credibility__copy > p) {
  font-size: 18px;
  font-weight: 400;
  line-height: 28px;
  letter-spacing: normal;
  color: #4a4a4a;
}
.s-page.s-page :is(.s-stack, .n-industry-copy, .n-property-copy) > :is(h1, h2) + p,
.s-page.s-page .n-use-cases__head .s-lead { margin-top: 20px; }
/* Flex stacks already supply the 20px heading-to-copy gap. */
.s-page.s-page .s-stack > :is(h1, h2) + p { margin-top: 0; }
.s-page.s-page .business-story__copy-stack h2 { margin-bottom: 20px; }
.s-page.s-page :is(.n-use-case, .n-industry-feature, .n-property-feature, .v-feature, .v-seo-benefits__list, .business-story__tools) p {
  font-size: 16px;
  line-height: 21px;
  letter-spacing: normal;
  color: #4a4a4a;
  margin-top: 12px;
}
.s-page.s-page .business-story__tools h4 {
  font-size: 20px;
  font-weight: 700;
  line-height: 26px;
  letter-spacing: normal;
  color: #4a4a4a;
}
.s-page.s-page :is(.s-card .s-heading-card, .business-story__card-copy h3) {
  font-size: 20px;
  line-height: 26px;
  letter-spacing: normal;
  color: #4a4a4a;
}
.s-page.s-page .business-story__card-copy p {
  font-size: 16px;
  line-height: 24px;
  letter-spacing: normal;
  color: #4a4a4a;
  margin-top: 12px;
}
.s-page.s-page .s-faq__question { font-size: 22px; line-height: 28px; }
.s-page.s-page .s-faq__answer { margin-top: 20px; color: #4a4a4a; }
.s-page.s-page .s-footer .s-text { font-size: 15px; line-height: 24px; }

/* Keep the existing inverted sections readable on their dark backgrounds. */
.s-page.s-page .s-dark :is(h1, h2, h3, h4, .s-display, .s-title, .s-heading-compact, .s-heading-small) { color: var(--s-on-black); }
.s-page.s-page .s-dark :is(.s-lead, .s-text) { color: var(--s-on-black-2); }

@media (max-width: 767px) {
  .s-page.s-page {
    --s-fs-display: clamp(30px, 8.21vw, 32px);
    --s-fs-title: 28px;
    --s-fs-feature: 28px;
    --s-lh-display: 1.2;
    --s-lh-title: 1.285714;
  }
  .s-page.s-page :is(h1, h2, .s-display, .s-title, .s-feature-title, .s-heading-compact):not(:where(.s-footer *, .business-story__card-visual *, .m *)) { line-height: 36px; }
  .s-page.s-page :is(h1, .s-display) { line-height: 1.2; text-wrap: balance; }
  .s-page.s-page :is(h3, .s-subtitle, .s-heading-small):not(:where(.s-footer *, .business-story__card-visual *, .m *)) { font-size: 22px; line-height: 28px; }
  .s-page.s-page :is(.s-card .s-heading-card, .business-story__card-copy h3) { font-size: 18px; line-height: 23px; }
  .s-page.s-page .business-story__card-copy p { font-size: 13px; line-height: 19px; margin-top: 8px; }
  .s-page.s-page .business-story__tools h4 { font-size: 18px; line-height: 24px; }
  .s-page.s-page .s-faq__question { font-size: 16px; line-height: 20px; }
  .s-page.s-page .s-faq__answer { font-size: 16px; line-height: 22.4px; }

}
.s-page.s-page .c-web__bar > .m-mono { color: #6c6c74; }

/* Larger, more open type must fit both card chapters on narrow desktops. */
@media (min-width: 900px) {
  .s-page.s-page .business-story__card { height: auto; }
}

/* Navigation and calls to action use the same Lato control hierarchy. */
.s-page.s-page :is(.s-nav, .s-nav > a, .s-menu__toggle, .s-menu__name, .s-header__login) {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: normal;
  color: #4a4a4a;
}
.s-page.s-page .s-btn:not(.s-btn--sm) {
  font-size: 16px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: normal;
  min-height: 52px;
  padding: 14px 32px;
  max-width: 100%;
  white-space: normal;
  text-align: center;
}
.s-page.s-page .s-card .s-heading-card {
  font-size: 24px;
  line-height: 1.2;
}
@media (max-width: 767px) {
  .s-page.s-page .s-card .s-heading-card { font-size: 18px; }
}

/* The Visle wordmark retains its original system face and weight. */
.s-page.s-page :is(.s-header__logo, .s-footer__logo) {
  font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'SF Pro Text',
    'Helvetica Neue', 'Segoe UI', Roboto, Arial, sans-serif;
  font-weight: 600;
}
