/* V139 — deterministic typography roles shared by the complete Talktide site.
   Sizes change only at explicit desktop/tablet/mobile breakpoints. */
:root,
body.home-page,
body:not(.home-page) {
  --type-hero: 48px;
  --type-display: 56px;
  --type-section: 40px;
  --type-panel: 28px;
  --type-card: 20px;
  --type-feature: 28px;
  --type-card-title: 20px;
  --type-body-lg: 18px;
  --type-lead: 18px;
  --type-body: 16px;
  --type-small: 14px;
  --type-ui: 13px;
  --type-meta: 13px;
  --type-label: 13px;
  --type-micro: 12px;
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  font-family: var(--sans, "Inter", "Segoe UI", sans-serif);
  font-size: var(--type-body);
  line-height: 1.6;
}

main h1,
main h2,
main h3,
main h4 {
  font-family: var(--disp, "Space Grotesk", "Inter", sans-serif);
  text-shadow: none !important;
  -webkit-font-smoothing: antialiased;
}

main p,
main li,
main a,
main button {
  text-shadow: none !important;
}

/* Shared site chrome */
body header.site nav a:not(.mobile-nav-contact),
body header.site .lang button,
body header.site .lang-btn,
body header.site > .btn,
body header.site .h-actions > .btn {
  font-family: var(--sans, "Inter", "Segoe UI", sans-serif) !important;
  font-size: var(--type-ui) !important;
  line-height: 18px !important;
  letter-spacing: 0 !important;
}

body header.site nav a:not(.mobile-nav-contact),
body header.site .lang button,
body header.site .lang-btn {
  font-weight: 600 !important;
}

body header.site > .btn,
body header.site .h-actions > .btn {
  font-weight: 700 !important;
}

/* Page and section hierarchy */
.home-page .hero h1 {
  font-size: var(--type-hero) !important;
  font-weight: 700 !important;
  line-height: 1.08 !important;
  letter-spacing: -.035em !important;
  text-wrap: balance;
}

body:not(.home-page) .subpage-hero h1 {
  font-size: var(--type-display) !important;
  font-weight: 700 !important;
  line-height: 1.08 !important;
  letter-spacing: -.035em !important;
  text-wrap: balance;
}

.home-page .section-heading-v133 > h2,
.home-page .section-heading-v133 h2,
body:not(.home-page) .terms-clause > h2:not(#dpo-contact-title) {
  font-size: var(--type-section) !important;
  font-weight: 700 !important;
  line-height: 1.14 !important;
  letter-spacing: -.03em !important;
  text-wrap: balance;
}

.home-page .hero .eyebrow,
.home-page .section-heading-v133 .section-heading-eyebrow,
body:not(.home-page) .subpage-hero .section-label {
  font-family: var(--disp, "Space Grotesk", "Inter", sans-serif) !important;
  font-size: var(--type-ui) !important;
  font-weight: 700 !important;
  line-height: 18px !important;
  letter-spacing: .12em !important;
  text-transform: uppercase;
}

.home-page .hero .lead,
.home-page .section-heading-v133 > p,
.home-page .section-heading-v133 .compliance-lead,
body:not(.home-page) .subpage-hero p {
  font-family: var(--sans, "Inter", "Segoe UI", sans-serif) !important;
  font-size: var(--type-lead) !important;
  font-weight: 400 !important;
  line-height: 1.58 !important;
  letter-spacing: -.005em !important;
}

/* Homepage component roles */
.home-page .feature-rotator .feature-face h2,
.home-page .story .sov h3 {
  font-size: var(--type-feature) !important;
  font-weight: 700 !important;
  line-height: 1.18 !important;
  letter-spacing: -.02em !important;
}

.home-page .proc .pstep h3,
.home-page .compl .cmpl h3,
.home-page .contact-person-info h3 {
  font-size: var(--type-card-title) !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  letter-spacing: -.015em !important;
}

.home-page .story .scol h4 {
  font-size: var(--type-body) !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
}

.home-page .hero-check,
.home-page .feature-rotator .feature-face .fintro,
.home-page .contact-person-role,
.home-page .contact-person-meta {
  font-size: var(--type-small) !important;
}

.home-page .feature-rotator .feature-face .flist .fi b {
  font-size: var(--type-small) !important;
  line-height: 1.35 !important;
}

.home-page .feature-rotator .feature-face .flist .fi p,
.home-page .feature-product-action,
.home-page .flow .flow-time,
.home-page .flow .flow-label {
  font-size: var(--type-ui) !important;
}

.home-page main .btn,
.home-page .flow .flow-card,
.home-page .flow .flow-card p,
.home-page .proc .pstep p,
.home-page .proc .pstep li,
.home-page .compl .cmpl p,
.home-page .story .scol p {
  font-size: var(--type-body) !important;
}

.home-page main .btn {
  font-size: var(--type-small) !important;
  font-weight: 700 !important;
  line-height: 20px !important;
}

/* Inner-page roles */
body:not(.home-page) .subpage-hero .sol-back {
  font-size: var(--type-ui) !important;
  line-height: 18px !important;
}

body:not(.home-page) .about-intro,
body:not(.home-page) .privacy-intro,
body:not(.home-page) .terms-clause > p:not(.about-intro) {
  font-size: var(--type-body) !important;
  line-height: 1.65 !important;
}

body:not(.home-page) .feat h3,
body:not(.home-page) .scn h3,
body:not(.home-page) .office-card h3 {
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
}

body:not(.home-page) .feat p,
body:not(.home-page) .feat li,
body:not(.home-page) .scn p,
body:not(.home-page) .scn li,
body:not(.home-page) .case p {
  font-size: 15px !important;
  line-height: 1.68 !important;
}

body:not(.home-page) .feat b {
  font-size: var(--type-small) !important;
}

body:not(.home-page) .tag-row span {
  font-size: var(--type-micro) !important;
}

body:not(.home-page) #dpo-contact-title {
  font-size: var(--type-card-title) !important;
  line-height: 1.3 !important;
}

/* Keep the shared heading composition proportional to the new scale. */
.home-page .section-heading-v133 {
  margin-bottom: 48px !important;
}

.home-page .section-heading-v133 > h2,
.home-page .section-heading-v133 h2 {
  margin-top: 18px !important;
}

.home-page .section-heading-v133 .section-heading-divider {
  margin-block: 24px !important;
}

@media (max-width: 1199px) {
  :root,
  body.home-page,
  body:not(.home-page) {
    --type-hero: 44px;
    --type-display: 48px;
    --type-section: 36px;
  }
}

@media (max-width: 900px) {
  body.home-page header.site nav a,
  body:not(.home-page) header.site nav a {
    font-size: 15px !important;
    line-height: 20px !important;
  }
}

@media (max-width: 700px) {
  :root,
  body.home-page,
  body:not(.home-page) {
    --type-hero: 36px;
    --type-display: 36px;
    --type-section: 32px;
    --type-panel: 23px;
    --type-card: 18px;
    --type-feature: 23px;
    --type-card-title: 18px;
    --type-body-lg: 17px;
    --type-lead: 17px;
    --type-ui: 13px;
    --type-meta: 13px;
    --type-label: 12px;
  }

  .home-page .section-heading-v133 {
    margin-bottom: 32px !important;
  }

  .home-page .section-heading-v133 > h2,
  .home-page .section-heading-v133 h2 {
    margin-top: 16px !important;
  }

  .home-page .section-heading-v133 .section-heading-divider {
    margin-block: 20px !important;
  }

  .home-page .section-heading-v133 > p,
  .home-page .section-heading-v133 .compliance-lead {
    font-size: var(--type-body) !important;
    line-height: 1.58 !important;
  }

  .home-page .hero .eyebrow,
  .home-page .section-heading-v133 .section-heading-eyebrow,
  body:not(.home-page) .subpage-hero .section-label {
    font-size: var(--type-micro) !important;
    line-height: 17px !important;
  }

  body:not(.home-page) .terms-clause > h2:not(#dpo-contact-title) {
    font-size: var(--type-section) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  main h1,
  main h2,
  main h3,
  main h4,
  main p,
  main a,
  main button {
    transition: none !important;
  }
}
