/* NOVIV homepage type scale, measured on dantistoff.ru on 2026-10-27.
   Load after the section styles. Keep font-family under the live font panel.
   This module intentionally excludes the header and the font-review UI. */
html body .noviv-v5.noviv-v10 main,
html body .noviv-v5.noviv-v10 footer.v5-footer {
  --noviv-type-body: clamp(16px, calc(12px + .625vw), 20px);
  --noviv-type-heading: clamp(24px, calc(2px + 3.4375vw), 46px);
  --noviv-type-card-heading: 26px;
  --noviv-type-caption: 14px;
}

html body .noviv-v5.noviv-v10 main section.v5-hero h1 {
  font-size: 56px !important;
  font-weight: 600 !important;
  line-height: 1.05 !important;
  overflow-wrap: anywhere !important;
  hyphens: auto;
}

html body .noviv-v5.noviv-v10 main h2,
html body .noviv-v5.noviv-v10 main :is(.v5-section-head, .v5-about-copy, .v5-panel-head, .v5-appointment-copy, .noviv-prices-panel) h2 {
  font-size: var(--noviv-type-heading) !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
  overflow-wrap: anywhere;
  hyphens: auto;
}

/* Section introductions and normal reading copy. Preserve numerical displays. */
html body .noviv-v5.noviv-v10 main p:where(:not(.noviv-reason__metric, .noviv-reason__price-title, .noviv-price-offer__value)),
html body .noviv-v5.noviv-v10 main section.v5-hero .v5-hero-copy > p,
html body .noviv-v5.noviv-v10 main .v5-section-head p,
html body .noviv-v5.noviv-v10 main .noviv-prices-panel .noviv-prices-intro,
html body .noviv-v5.noviv-v10 main .v5-appointment-copy p:not(.v5-disclaimer),
html body .noviv-v5.noviv-v10 main .v5-faq details p,
html body .noviv-v5.noviv-v10 main .v5-review blockquote {
  font-size: var(--noviv-type-body) !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
}

/* Text links inherit their paragraph/heading role; stand-alone links are 16/24. */
html body .noviv-v5.noviv-v10 main a {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
}
html body .noviv-v5.noviv-v10 main :is(h1, h2, h3, h4, p, li) a {
  font-size: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
}
html body .noviv-v5.noviv-v10 main .v5-section-head > a,
html body .noviv-v5.noviv-v10 main .v5-section-head > p > a,
html body .noviv-v5.noviv-v10 main .v5-panel-head a,
html body .noviv-v5.noviv-v10 main .noviv-doctors-footer a {
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
}

/* Card titles follow .stock-card__title; smaller subheads use its mobile scale. */
html body .noviv-v5.noviv-v10 main h3,
html body .noviv-v5.noviv-v10 main :is(.noviv-reason__top, .noviv-results__photo, .noviv-results__videos, .v5-equipment-copy, .v5-appointment-form) h3,
html body .noviv-v5.noviv-v10 main .v5-useful-section .v5-equipment-copy h3,
html body .noviv-v5.noviv-v10 main .v5-service-overlay h3,
html body .noviv-v5.noviv-v10 main .v5-service--photo:nth-child(-n+2) .v5-service-overlay h3 {
  font-size: var(--noviv-type-card-heading) !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
  overflow-wrap: anywhere;
  hyphens: auto;
}
html body .noviv-v5.noviv-v10 main :is(.v5-service-overlay, .v5-equipment-copy) h3 a {
  font-size: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
}
html body .noviv-v5.noviv-v10 main h4,
html body .noviv-v5.noviv-v10 main .noviv-results__video h4,
html body .noviv-v5.noviv-v10 main .noviv-price-offer h4 {
  font-size: 20px !important;
  font-weight: 500 !important;
  line-height: 1.25 !important;
  overflow-wrap: anywhere;
}

/* A card's longer description uses the reference's 16px card copy, not its
   larger section introduction. Remove legacy clamps so copy stays complete. */
html body .noviv-v5.noviv-v10 main :is(.v5-service-overlay, .v5-equipment-copy) p,
html body .noviv-v5.noviv-v10 main .v5-service--photo:nth-child(-n+2) .v5-service-overlay p,
html body .noviv-v5.noviv-v10 main .v5-useful-section .v5-equipment-copy p,
html body .noviv-v5.noviv-v10 main .noviv-reason .noviv-reason__copy,
html body .noviv-v5.noviv-v10 main .noviv-results__video p,
html body .noviv-v5.noviv-v10 main .noviv-price-offer p:not(.noviv-price-offer__value) {
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
}
html body .noviv-v5.noviv-v10 main :is(.v5-service-overlay, .v5-equipment-copy) p {
  display: block !important;
  overflow: visible !important;
  -webkit-line-clamp: unset !important;
  line-clamp: unset !important;
}
html body .noviv-v5.noviv-v10 main .noviv-reason__equipment strong {
  font-size: 18px !important;
  font-weight: 500 !important;
  line-height: 1.25 !important;
}
html body .noviv-v5.noviv-v10 main .noviv-reason__equipment span {
  font-size: 16px !important;
  line-height: 1.5 !important;
}

/* Promotions: keep the existing large/compact mosaic, bright images and prices. */
html body .noviv-v5.noviv-v10 main .noviv-promotions .noviv-promotion__title,
html body .noviv-v5.noviv-v10 main .noviv-promotions .noviv-promotion__title a {
  font-size: var(--noviv-type-card-heading) !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
  overflow-wrap: anywhere;
  hyphens: auto;
}
html body .noviv-v5.noviv-v10 main .noviv-promotions__panel > .noviv-promotion:first-child .noviv-promotion__title,
html body .noviv-v5.noviv-v10 main .noviv-promotions__panel > .noviv-promotion:first-child .noviv-promotion__title a {
  font-size: var(--noviv-type-heading) !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
}
html body .noviv-v5.noviv-v10 main .noviv-promotions .noviv-promotion__description,
html body .noviv-v5.noviv-v10 main .noviv-promotions__panel > .noviv-promotion:first-child .noviv-promotion__description {
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
}

/* Main calls to action use 18px; compact detail buttons use the doctors' 16px. */
html body .noviv-v5.noviv-v10 main section.v5-hero .v5-actions > a.v5-button,
html body .noviv-v5.noviv-v10 main section.v5-hero .v5-actions > a.v5-button.v5-cta-attention,
html body .noviv-v5.noviv-v10 main .v5-appointment-form input[type="submit"] {
  font-size: 18px !important;
  font-weight: 500 !important;
  line-height: 1.19 !important;
  min-width: 0 !important;
  white-space: normal !important;
}
html body .noviv-v5.noviv-v10 main :is(.v5-service-link, .noviv-promotion__link, .noviv-doctor-card__link),
html body .noviv-v5.noviv-v10 main .v5-service-section .v5-service-link,
html body .noviv-v5.noviv-v10 main .noviv-promotions .noviv-promotion__link,
html body .noviv-v5.noviv-v10 main .noviv-price-offer > a,
html body .noviv-v5.noviv-v10 main :is(.noviv-prices-full, .noviv-prices-sources) {
  font-size: 16px !important;
  font-weight: 500 !important;
  line-height: 1.19 !important;
}

/* The accepted surname/given-name split remains two lines at every width. */
html body .noviv-v5.noviv-v10 main .noviv-doctor-card__copy .noviv-doctor-card__name,
html body .noviv-v5.noviv-v10 main .noviv-doctor-card__copy .noviv-doctor-card__name a {
  font-size: 22px !important;
  font-weight: 500 !important;
  line-height: 1.25 !important;
}
html body .noviv-v5.noviv-v10 main .noviv-doctor-card__name .noviv-doctor-card__given {
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 24px !important;
}

/* Price labels, supporting notes and form consent use the small-caption role.
   The numeric price values, rating figures, stat displays and caps badges keep
   their existing component sizes. */
html body .noviv-v5.noviv-v10 main .noviv-price-group h3 {
  font-size: 18px !important;
  font-weight: 500 !important;
  line-height: 1.25 !important;
}
html body .noviv-v5.noviv-v10 main .noviv-price-copy > strong {
  font-size: 18px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
}
html body .noviv-v5.noviv-v10 main .noviv-price-offers > summary h3 {
  font-size: var(--noviv-type-card-heading) !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
}
html body .noviv-v5.noviv-v10 main .noviv-price-evidence__group h4,
html body .noviv-v5.noviv-v10 main .noviv-price-evidence > summary,
html body .noviv-v5.noviv-v10 main .v5-faq summary {
  font-size: 18px !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
}
html body .noviv-v5.noviv-v10 main :is(.noviv-prices-comparison-note, .noviv-prices-note, .v5-disclaimer),
html body .noviv-v5.noviv-v10 main .noviv-price-evidence p,
html body .noviv-v5.noviv-v10 main .noviv-price-evidence li,
html body .noviv-v5.noviv-v10 main .noviv-price-copy > small,
html body .noviv-v5.noviv-v10 main .noviv-price-benchmark > small,
html body .noviv-v5.noviv-v10 main .noviv-price-benchmark > button,
html body .noviv-v5.noviv-v10 main .v5-appointment-form .wpcf7-acceptance,
html body .noviv-v5.noviv-v10 main .v5-appointment-form p:has(.wpcf7-acceptance) {
  font-size: var(--noviv-type-caption) !important;
  font-weight: 400 !important;
  line-height: 1.35 !important;
}
html body .noviv-v5.noviv-v10 main .noviv-price-evidence a,
html body .noviv-v5.noviv-v10 main .v5-appointment-form .wpcf7-acceptance a {
  font-size: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
}
html body .noviv-v5.noviv-v10 main .v5-appointment-form :is(input[type="text"], input[type="tel"], textarea) {
  font-size: 16px !important;
  line-height: 1.5 !important;
}

html body .noviv-v5.noviv-v10 footer.v5-footer :is(p, a, address) {
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
}
html body .noviv-v5.noviv-v10 footer.v5-footer .v5-footer-contact a,
html body .noviv-v5.noviv-v10 main .v5-contact-line a {
  font-size: 18px !important;
  font-weight: 500 !important;
  line-height: 1.19 !important;
}
html body .noviv-v5.noviv-v10 footer.v5-footer .v5-footer-bottom,
html body .noviv-v5.noviv-v10 footer.v5-footer .v5-footer-bottom a {
  font-size: var(--noviv-type-caption) !important;
  font-weight: 400 !important;
  line-height: 1.35 !important;
}

@media (max-width: 767px) {
  html body .noviv-v5.noviv-v10 main section.v5-hero h1 { font-size: 37px !important; }
}
@media (max-width: 640px) {
  html body .noviv-v5.noviv-v10 main,
  html body .noviv-v5.noviv-v10 footer.v5-footer {
    --noviv-type-card-heading: 20px;
    --noviv-type-caption: 12px;
  }
  html body .noviv-v5.noviv-v10 main section.v5-hero .v5-actions > a.v5-button,
  html body .noviv-v5.noviv-v10 main section.v5-hero .v5-actions > a.v5-button.v5-cta-attention,
  html body .noviv-v5.noviv-v10 main .v5-appointment-form input[type="submit"] {
    font-size: 16px !important;
  }
  html body .noviv-v5.noviv-v10 main .noviv-doctor-card__copy .noviv-doctor-card__name,
  html body .noviv-v5.noviv-v10 main .noviv-doctor-card__copy .noviv-doctor-card__name a {
    font-size: 18px !important;
    line-height: 1.2 !important;
  }
}

/* Extra height for reference-size headings in narrow four-column service rows. */
@media (min-width: 1001px) and (max-width: 1179px) {
  html body .noviv-v5.noviv-v10 main .v5-service-section .v5-service--photo { min-height: 320px !important; }
}
