/* Site-wide type update. Enqueue after the child theme and form styles. */
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("../fonts/montserrat/montserrat-latin-wght.woff2") format("woff2");
}

html body.pg-site.pg-site {
  --pg-font-family: "Montserrat", Arial, sans-serif;
  font-family: var(--pg-font-family) !important;
  letter-spacing: 0 !important;
}

/* Target text, not every descendant: Divi and WPForms icon faces stay intact. */
html body.pg-site.pg-site :is(
  p, a, button, input, select, textarea,
  label, legend, summary, li, dt, dd, blockquote, cite, figcaption,
  strong, b, em, small, time,
  table, caption, th, td, .et_pb_text, .wpforms-container,
  .pg-proof__label, .pg-about-step__num, .pg-resource-step__number,
  .pg-resource-library__meta span, .pg-canada__sign-name, .pg-address__credit
),
html body.pg-site.pg-site :is(
  .pg-intent-switchboard__copy, .pg-area-route__steps li,
  .pg-feature-list--columns > li, .pg-process-list > li
)::before {
  font-family: var(--pg-font-family) !important;
  letter-spacing: 0 !important;
}

html body.pg-site.pg-site #main-footer :is(nav h2, .pg-site-footer__contact-label),
html body.pg-site.pg-site #main-content .pg-canada .pg-canada__eyebrow {
  letter-spacing: 0 !important;
}

html body.pg-site.pg-site :is(h1, h2, h3, h4, h5, h6) {
  overflow-wrap: break-word;
  letter-spacing: 0 !important;
}

/* Original theme heading faces also apply to linked and emphasized title text. */
html body.pg-site.pg-site :is(h1, h2, h3, h4, h5, h6) :is(a, span, strong, b, em, small, time):not(.pg-button, .et_pb_button, [role="button"]):not(.et-pb-icon, .dashicons, .fa, .fas, .far, .fab) {
  font-family: inherit !important;
}

html body.pg-site.pg-site :is(
  .pg-eyebrow, .pg-trust-eyebrow, .pg-options-eyebrow,
  .pg-flow-eyebrow, .pg-route-eyebrow, .pg-seasons-eyebrow,
  .pg-core-eyebrow, .pg-canada__eyebrow, .pg-service-scenario__eyebrow
) {
  text-transform: uppercase !important;
  letter-spacing: 0 !important;
}

html body.pg-site.pg-site :is(
  button, input[type="button"], input[type="submit"], input[type="reset"],
  .pg-button, .et_pb_button, a[role="button"], .pg-project-cta,
  .pg-flow-cta, .pg-photo-quote-button, .pg-urgent-button, .pg-text-action,
  .pg-mobile-menu__text, .pg-mobile-menu__quote, .pg-mobile-actions a,
  .pg-site-footer__contact-text a, .pg-flow-faq summary, .et_pb_toggle_title
) {
  text-transform: uppercase !important;
  letter-spacing: 0 !important;
}

/* Choice rows contain descriptions and addresses, not only action labels. */
html body.pg-site.pg-site :is(
  .pg-service-picker__choice-hint, .pg-address__option,
  .pg-address__main, .pg-address__secondary
) {
  text-transform: none !important;
}

html body.pg-site.pg-site :is(
  .pg-button, .et_pb_button, .pg-project-cta, .pg-flow-cta,
  .pg-photo-quote-button, .pg-urgent-button, .pg-text-action,
  .pg-mobile-menu__text, .pg-mobile-menu__quote, .pg-mobile-actions a,
  .pg-site-footer__contact-text a, .wpforms-page-button, .wpforms-submit,
  input[type="submit"], input[type="button"], input[type="reset"],
  .pg-resource-library__finder-toggle, .pg-service-picker__back
) {
  box-sizing: border-box;
  max-width: 100%;
  white-space: nowrap !important;
  overflow-wrap: normal;
  word-break: normal;
}

html body.pg-site.pg-site :is(
  .pg-faq-question button, .pg-flow-faq summary,
  .pg-service-picker__category, .pg-service-picker__choice,
  .pg-service-picker__breadcrumb button, .pg-address__option
) {
  white-space: normal !important;
  overflow-wrap: break-word;
}

/* Let a whole action move to the next row; never squeeze its label. */
html body.pg-site.pg-site :is(.pg-actions, .pg-service-picker__actions) {
  flex-wrap: wrap !important;
  min-width: 0;
}

html body.pg-site.pg-site :is(.pg-actions > .pg-button, .pg-service-picker__actions > .pg-button) {
  flex: 0 0 auto !important;
}

html body.pg-site.pg-site :is(.pg-button, .pg-project-cta, .pg-photo-quote-button, .pg-urgent-button) svg {
  flex-shrink: 0;
}

@media (min-width: 981px) {
  html body.pg-site.pg-site .pg-desktop-nav {
    flex: 0 0 auto;
  }

  html body.pg-site.pg-site .pg-primary-menu > li > a {
    padding-inline: 10px;
    font-size: 15px;
    white-space: nowrap;
  }

  html body.pg-site.pg-site .pg-primary-menu .sub-menu a {
    white-space: normal;
  }
}

@media (max-width: 767px) {
  html body.pg-site.pg-site :is(.pg-actions, .pg-service-picker__actions) {
    gap: 10px;
  }

  html body.pg-site.pg-site :is(.pg-actions > .pg-button, .pg-service-picker__actions > .pg-button) {
    font-size: 14px;
    padding-inline: 16px;
  }

  html body.pg-site.pg-site :is(.pg-project-cta, .pg-flow-cta, .pg-photo-quote-button, .pg-urgent-button) {
    gap: 12px;
    padding-inline: 16px;
    font-size: 15px;
  }

  html body.pg-site.pg-site .pg-mobile-actions a {
    min-width: 0;
    font-size: 14px;
    gap: 6px;
    padding-inline: 8px;
  }

  html body.pg-site.pg-site .pg-hero:not(.pg-hero--immersive) .pg-actions {
    display: flex;
    flex-direction: row;
  }
}

@media (max-width: 479px) {
  html body.pg-site.pg-site :is(.pg-actions, .pg-service-picker__actions) > .pg-button {
    width: 100%;
  }

  html body.pg-site.pg-site .pg-mobile-menu__actions {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  html body.pg-site.pg-site .pg-site-footer__contact-text a {
    padding-inline: 12px;
  }

  html body.pg-site.pg-site div.wpforms-container-full .wpforms-form :is(.wpforms-page-button, button[type="submit"]) {
    font-size: 14px;
    padding-inline: 12px;
  }

  html body.pg-site.pg-site :is(.pg-project-cta, .pg-flow-cta, .pg-photo-quote-button) {
    gap: 10px;
    padding-inline: 12px;
    font-size: 14px;
  }
}

@media (min-width: 360px) and (max-width: 479px) {
  html body.pg-site.pg-site .pg-home-intro .pg-actions > .pg-button {
    width: auto;
    padding-inline: 12px;
    font-size: 14px;
  }
}

@media (max-width: 359px) {
  html body.pg-site.pg-site .pg-home-intro h1 {
    font-size: 34px !important;
  }
}

/* Medium-weight action labels retain the existing size and uppercase treatment. */
html body.pg-site.pg-site :is(
  button, input[type="button"], input[type="submit"], input[type="reset"],
  .pg-button, .et_pb_button, a[role="button"], .pg-project-cta,
  .pg-flow-cta, .pg-photo-quote-button, .pg-urgent-button, .pg-text-action,
  .pg-mobile-menu__text, .pg-mobile-menu__quote, .pg-mobile-actions a,
  .pg-service-picker__category-label, .pg-service-picker__choice-label
),
html body.pg-site.pg-site #main-footer .pg-site-footer__contact-text a,
html body.pg-site.pg-site div.wpforms-container-full .wpforms-form .pg-field-contact-method label.wpforms-field-label-inline {
  font-weight: 500 !important;
}

/* Uppercase navigation labels on desktop and in the mobile menu. */
html body.pg-site.pg-site :is(.pg-primary-menu a, .pg-mobile-menu__list a) {
  font-weight: 500 !important;
  text-transform: uppercase !important;
}

@media (min-width: 981px) {
  html body.pg-site.pg-site .pg-primary-menu > li > a {
    padding-inline: 12px;
  }
}
