/* Shared type scale for the public website. Loaded after layout styles. */
:root {
  --gtm-text-size: 1.125rem;
  --gtm-label-size: 1rem;
  --gtm-card-title-size: 1.25rem;
}

.gtm-page,
.contact-modal {
  font-size: var(--gtm-label-size);
}

.gtm-page p,
.gtm-page .gtm-about-story > p,
.gtm-page .gtm-faq details p,
.contact-modal p {
  font-size: var(--gtm-text-size);
  line-height: 1.5;
}

.gtm-page .gtm-nav,
.gtm-page .gtm-header-contacts a,
.gtm-page .gtm-mobile-panel a,
.gtm-page .gtm-eyebrow,
.gtm-page .gtm-button,
.gtm-page .gtm-video,
.gtm-page .gtm-video small,
.gtm-page .gtm-tint-cta span,
.gtm-page .gtm-proof b,
.gtm-page .gtm-proof span,
.gtm-page .gtm-film-info > span,
.gtm-page .gtm-film-fit > span,
.gtm-page .gtm-film-price > span,
.gtm-page .gtm-film-price > small,
.gtm-page .gtm-table-link,
.gtm-page :is(.gtm-case-card, .gtm-work-card-body, .gtm-work-spec-card, .gtm-about-requisites, .gtm-map-copy, .gtm-service-area-facts) :is(dt, dd),
.gtm-page .gtm-hero-mini-facts dd,
.gtm-page .gtm-doc-list a,
.gtm-page .gtm-doc-list span,
.gtm-page .gtm-docs aside,
.gtm-page .gtm-material-list b,
.gtm-page .gtm-certificate-card span,
.gtm-page .gtm-materials-visual figcaption,
.gtm-page .gtm-faq summary,
.gtm-page .gtm-faq button,
.gtm-page .gtm-faq > a,
.gtm-page .gtm-footer nav,
.gtm-page .gtm-footer address,
.gtm-page .gtm-footer small,
.gtm-page .gtm-inner-image-note span,
.gtm-page .gtm-about-step-list span,
.gtm-page .gtm-filter-row button,
.gtm-page .gtm-service-card-side > span,
.gtm-page .gtm-service-card-side > small,
.gtm-page .gtm-chip-row span,
.gtm-page .gtm-select-field span,
.gtm-page .gtm-select-field select,
.gtm-page .gtm-work-card-media > span,
.gtm-page .gtm-work-card-tags span,
.gtm-page .gtm-back-link,
.gtm-page .gtm-detail-price-line > span,
.gtm-page .gtm-detail-price-line > small,
.gtm-page .gtm-advantage-list span,
.gtm-page .gtm-performed-card strong,
.gtm-page .gtm-performed-card small,
.contact-modal .quiz-step,
.contact-modal .quiz-contact-form label,
.contact-modal .quiz-contact-form input,
.contact-modal .quiz-contact-form small,
.contact-modal .quiz-error,
.contact-modal .quiz-messengers > span,
.contact-modal .quiz-messengers a,
.contact-modal .gtm-button {
  font-size: var(--gtm-label-size);
  line-height: 1.4;
}

.gtm-page .gtm-problem-grid h3,
.gtm-page .gtm-step-grid h3,
.gtm-page .gtm-assurance-grid h3,
.gtm-page .gtm-value-grid h3,
.gtm-page .gtm-contact-method-grid h3,
.gtm-page .gtm-about-step-list h3 {
  font-size: var(--gtm-card-title-size);
  line-height: 1.25;
}

/* Longer text must remain visible after increasing the type size. */
.gtm-page .gtm-service-card {
  height: auto;
}

.gtm-page .gtm-button {
  padding-top: 10px;
  padding-bottom: 10px;
  text-align: center;
}

.gtm-page .gtm-nav {
  gap: clamp(16px, 2vw, 32px);
}

.gtm-page .gtm-select-field select {
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

@media (max-width: 760px) {
  :root {
    --gtm-text-size: 1rem;
  }

  .gtm-page .gtm-footer address a {
    overflow-wrap: anywhere;
    min-width: 0;
  }
}
