:root {
  --site-type-hero: 30px;
  --site-type-heading: 19px;
  --site-type-body: 12px;
}

/* Keep the larger type scale limited to the services hero. */
.services-page .hero-ref {
  --site-type-hero: clamp(56px, 5.8vw, 88px);
  --site-type-heading: clamp(26px, 2.25vw, 36px);
  --site-type-body: clamp(15px, 1.05vw, 17px);
}

.services-page .hero-title {
  line-height: 1.02 !important;
}

@media (max-width: 600px) {
  .services-page .hero-ref {
    --site-type-hero: clamp(38px, 11vw, 48px);
    --site-type-heading: clamp(23px, 7vw, 30px);
    --site-type-body: 14px;
  }
}

body,
p,
li,
label,
input,
textarea,
select,
button,
td,
th,
.btn,
.booking-description,
.booking-step-label,
.booking-step-note,
.admin-login-subtitle,
.admin-login-note,
.brand-sub,
.landing-subtitle,
.landing-kicker,
.landing-note,
.hero-subtitle,
.hero-kicker,
.hero-note,
.about-hero-subtitle,
.contact-hero-quote,
.oncall-subtitle,
.support-subtitle,
.panel-meta,
.dash-subtitle,
.terms-hero p,
.faq-hero p,
.thankyou-card p,
.thankyou-note,
.site-announcement__text,
.site-announcement__badge,
.rwm-egh-link,
.rwm-egh-btn,
.landing-cta {
  font-size: var(--site-type-body) !important;
}

h1,
h2,
h3,
h4,
.booking-title,
.section-header h2,
.panel-header h2,
.dash-card-title,
.terms-info-title,
.terms-glass-title,
.contact-meta-title,
.side-title {
  font-size: var(--site-type-heading) !important;
}

/* Prominent safety statement and guarantees on the services page. */
.services-page #services-safety-title {
  font-size: clamp(34px, 2.5vw, 44px) !important;
  line-height: 1.08 !important;
}

.services-page .oncall-safety-trust span {
  font-size: 14px !important;
}

.services-page .oncall-safety-trust b {
  font-size: 22px !important;
}

.for-brf-page .brf-partner-copy h2 {
  font-size: clamp(30px, 2.25vw, 42px) !important;
}

.for-brf-page .brf-partner-copy > p {
  font-size: 13px !important;
}

.for-brf-page .brf-partner-list li {
  font-size: 12px !important;
}

.for-brf-page .brf-quote-form h3 {
  font-size: 18px !important;
}

.for-brf-page .brf-quote-form input,
.for-brf-page .brf-quote-form select,
.for-brf-page .brf-quote-form textarea,
.for-brf-page .brf-quote-form button,
.for-brf-page .brf-quote-form header p,
.for-brf-page .brf-quote-form > small {
  font-size: 11px !important;
}

.landing-title,
.hero-title,
.about-hero-title,
.contact-hero-content h1,
.oncall-title,
.support-hero h1,
.faq-hero h1,
.terms-hero h1,
.thankyou-card h1,
.admin-login-card h1 {
  font-size: var(--site-type-hero) !important;
  line-height: 1.15 !important;
}

.oncall-title span {
  font-size: inherit !important;
}

@media (max-width: 640px) {
  .services-page #services-safety-title {
    font-size: clamp(32px, 9vw, 40px) !important;
  }
}

/* Keep the on-call hero aligned with the pricing page across navigation. */
.on-call-page .oncall-title {
  font-size: clamp(64px, 5vw, 76px) !important;
  line-height: .98 !important;
}

.on-call-page .oncall-subtitle {
  font-size: 18px !important;
  line-height: 1.7 !important;
}

.on-call-page .oncall-actions .btn {
  font-size: 13px !important;
}

.on-call-page .oncall-call-button small {
  font-size: 11px !important;
}

.on-call-page .oncall-call-button strong {
  font-size: 22px !important;
}

.on-call-page .oncall-trust-row,
.on-call-page .oncall-trust-row span {
  font-size: 14px !important;
}

.on-call-page .oncall-hero-card strong,
.on-call-page .oncall-hero-card > div > span {
  font-size: 12px !important;
}

.on-call-page .oncall-hero-card p {
  font-size: 14px !important;
}

/* Pricing is a presentation page and needs a comfortable reading scale. */
.pricing-page .pp-hero h1 {
  font-size: clamp(64px, 5vw, 76px) !important;
  line-height: .98 !important;
}

.pricing-page .pp-hero p {
  font-size: 18px !important;
  line-height: 1.7 !important;
}

.pricing-page .pp-eyebrow,
.pricing-page .pp-section-label {
  font-size: 13px !important;
}

.pricing-page .pp-btn {
  font-size: 12px !important;
}

.pricing-page .pp-hero-trust,
.pricing-page .pp-hero-trust span {
  font-size: 14px !important;
}

.pricing-page .pp-section h2,
.pricing-page .pp-rot-copy h2,
.pricing-page .pp-book h2 {
  font-size: clamp(34px, 3.2vw, 48px) !important;
  line-height: 1.15 !important;
}

.pricing-page .pp-lead,
.pricing-page .pp-rot-copy > p,
.pricing-page .pp-book p {
  font-size: 16px !important;
  line-height: 1.7 !important;
}

.pricing-page .pp-rate-card > span,
.pricing-page .pp-rate-card > b,
.pricing-page .pp-rate-card small {
  font-size: 11px !important;
}

.pricing-page .pp-rate-card h3 {
  font-size: 22px !important;
  line-height: 1.3 !important;
}

.pricing-page .pp-rate-card dl,
.pricing-page .pp-rate-card li {
  font-size: 14px !important;
  line-height: 1.55 !important;
}

.pricing-page .pp-calc-title h2 {
  font-size: 24px !important;
}

.pricing-page .pp-calc-title p,
.pricing-page .pp-calc-controls,
.pricing-page .pp-calc-controls label,
.pricing-page .pp-calc-controls legend,
.pricing-page .pp-calc-result dl,
.pricing-page .pp-calc-result > div {
  font-size: 13px !important;
  line-height: 1.5 !important;
}

.pricing-page .pp-stepper strong {
  font-size: 14px !important;
}

.pricing-page .pp-service-grid h3 {
  font-size: 16px !important;
  line-height: 1.4 !important;
}

.pricing-page .pp-service-grid p,
.pricing-page .pp-rot-copy li {
  font-size: 14px !important;
  line-height: 1.65 !important;
}

.pricing-page .pp-rot-copy aside strong {
  font-size: 13px !important;
}

.pricing-page .pp-rot-copy aside p,
.pricing-page .pp-book-trust b {
  font-size: 12px !important;
  line-height: 1.6 !important;
}

@media (max-width: 600px) {
  .pricing-page .pp-hero h1 {
    font-size: 43px !important;
  }

  .pricing-page .pp-hero p {
    font-size: 16px !important;
  }

  .pricing-page .pp-section h2,
  .pricing-page .pp-rot-copy h2,
  .pricing-page .pp-book h2 {
    font-size: 31px !important;
  }
}

.service-category-page .category-hero h1 {
  max-width: 15ch;
  margin: 18px 0 24px;
  font-size: clamp(34px, 4.2vw, 56px) !important;
  line-height: 1.12 !important;
  letter-spacing: -0.015em;
}

.service-category-page .category-hero h1 span {
  margin-top: 4px;
  line-height: 1.08;
}

.service-category-page .category-kicker {
  font-size: 12px !important;
  line-height: 1.5;
  letter-spacing: 0.2em;
}

.service-category-page .category-hero-description {
  max-width: 52ch;
  font-size: 15px !important;
  line-height: 1.8;
  letter-spacing: 0.005em;
}

/* Careers uses an editorial display scale instead of the compact app scale. */
.careers-page .rwm-egh-link,
.careers-page .rwm-egh-btn {
  font-size: 13px !important;
}

.careers-page .site-announcement__text {
  font-size: 14px !important;
}

.careers-page .site-announcement__badge {
  font-size: 11px !important;
}

.careers-page .careers-hero h1 {
  font-size: clamp(52px, 5vw, 76px) !important;
  line-height: 1.02 !important;
}

.careers-page .careers-values h2,
.careers-page .careers-openings h2,
.careers-page .careers-apply h2,
.careers-page .careers-community h2 {
  font-size: clamp(36px, 3.5vw, 52px) !important;
  line-height: 1.1 !important;
}

.careers-page .careers-kicker {
  font-size: 12px !important;
}

.careers-page .careers-lead {
  font-size: 17px !important;
  line-height: 1.72 !important;
}

.careers-page .careers-signature,
.careers-page .careers-talent-note p {
  font-size: 23px !important;
}

.careers-page .careers-section-head > p:last-child,
.careers-page .careers-openings__inner > div > p:not(.careers-kicker),
.careers-page .careers-form-wrap > p:not(.careers-kicker),
.careers-page .careers-community__inner > div > p:last-child {
  font-size: 16px !important;
  line-height: 1.65 !important;
}

.careers-page .career-value h3 {
  font-size: 23px !important;
}

.careers-page .career-value p {
  font-size: 15px !important;
  line-height: 1.6 !important;
}

.careers-page .careers-apply__photo strong {
  font-size: 25px !important;
}

.careers-page .careers-field label {
  font-size: 10px !important;
}

.careers-page .careers-field input,
.careers-page .careers-field select,
.careers-page .careers-field textarea {
  font-size: 15px !important;
}

.careers-page .careers-form button,
.careers-page .careers-community a {
  font-size: 12px !important;
}

.careers-page .careers-privacy {
  font-size: 11px !important;
}

.career-detail-page .career-detail-hero h1 {
  font-size: clamp(52px, 6vw, 82px) !important;
  line-height: .98 !important;
}

.career-detail-page .career-detail-copy h2,
.career-detail-page .career-apply-card h2,
.career-detail-page .career-other h2 {
  font-size: 28px !important;
  line-height: 1.15 !important;
}

.career-detail-page .career-offers h3,
.career-detail-page .career-other__grid h3 {
  font-size: 19px !important;
}

@media (max-width: 600px) {
  .career-detail-page .career-detail-hero h1 {
    font-size: 48px !important;
  }
  .careers-page .careers-hero h1 {
    font-size: clamp(42px, 12vw, 56px) !important;
  }

  .careers-page .careers-values h2,
  .careers-page .careers-openings h2,
  .careers-page .careers-apply h2,
  .careers-page .careers-community h2 {
    font-size: clamp(32px, 9vw, 42px) !important;
  }

  .careers-page .careers-lead {
    font-size: 15px !important;
  }

  .on-call-page .oncall-title {
    font-size: clamp(39px, 11vw, 58px) !important;
    line-height: 1 !important;
  }

  .on-call-page .oncall-subtitle {
    font-size: 14px !important;
  }

  .landing-title,
  .hero-title,
  .about-hero-title,
  .contact-hero-content h1,
  .oncall-title,
  .support-hero h1,
  .faq-hero h1,
  .terms-hero h1,
  .thankyou-card h1,
  .admin-login-card h1 {
    font-size: var(--site-type-hero) !important;
  }

  .service-category-page .category-hero h1 {
    max-width: none;
    font-size: 34px !important;
    line-height: 1.14 !important;
  }

  .service-category-page .category-hero-description {
    font-size: 14px !important;
    line-height: 1.75;
  }
}
