:where(a,button,input,select,textarea,summary):focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 3px;
}

@font-face {
  font-family: "EPM Manrope";
  src: url("manrope-variable.woff2") format("woff2");
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
}

body {
  font-family: "EPM Manrope", "Segoe UI", Arial, sans-serif;
  font-weight: 430;
  line-height: 1.55;
}

:where(h1,h2,h3,h4,.btn,.phone-link,.site-header nav,.sticky-header nav,.hero-form,.quote-form) {
  font-family: "EPM Manrope", "Segoe UI", Arial, sans-serif;
}

h1 {
  font-weight: 720;
  line-height: 1.02;
}

h2 {
  font-size: clamp(36px,3.15vw,48px);
  font-weight: 710;
  line-height: 1.1;
}

h3,
h4 {
  font-weight: 680;
  line-height: 1.2;
}

.kicker,
.mini-label,
.form-kicker {
  font-size: 12.5px;
  font-weight: 720;
}

.site-header nav a,
.sticky-header nav a {
  padding: 10px 12px;
  font-size: 14px;
  font-weight: 560 !important;
}

.epm-page .epm-phasor-hero .site-header nav a,
.epm-page .site-header nav a,
.epm-page .sticky-header nav a {
  font-weight: 560 !important;
}

.site-header nav a.is-active,
.sticky-header nav a.is-active {
  font-weight: 700 !important;
}

.epm-page .epm-phasor-hero .site-header nav a.is-active,
.epm-page .site-header nav a.is-active,
.epm-page .sticky-header nav a.is-active {
  font-weight: 700 !important;
}

.btn,
.phone-link {
  font-weight: 700;
}

.hero-content > p:not(.kicker),
.section-heading p:last-child,
.split-copy > p,
.playbook-copy > p {
  line-height: 1.58;
}

.section-heading {
  align-items: start;
  margin-bottom: 34px;
}

.section-heading p:last-child {
  max-width: 62ch;
  font-size: 17px;
}

.hero-form h2,
.quote-form h2 {
  font-size: 22px;
  font-weight: 710;
  line-height: 1.15;
}

.hero-form label,
.quote-form label {
  font-size: 13.5px;
  font-weight: 620;
}

.hero-form :where(input,select,textarea),
.quote-form :where(input,select,textarea) {
  font-size: 15px;
  line-height: 1.45;
}

.form-note {
  font-size: 13px !important;
  line-height: 1.5;
}

.info-card,
.playbook-steps article,
.decision-card,
.timeline article {
  box-shadow: 0 12px 34px rgba(15,23,42,.055);
}

:where(.hero-form,.quote-form) label:has(>input:required,>textarea:required,>select:required)>span::after {
  content: " *";
  color: #b42318;
}

:where(.hero-form,.quote-form) :where(input,textarea,select):user-invalid {
  border-color: #b42318 !important;
  box-shadow: 0 0 0 3px rgba(180,35,24,.12) !important;
}

.epm-page .contact-section {
  background-image:
    linear-gradient(90deg,rgba(7,20,36,.97),rgba(7,20,36,.86) 48%,rgba(7,20,36,.56)),
    url("epm-commercial-contact-visit-v2.webp") !important;
  background-position: center right !important;
}

.epm-page .contact-section .contact-grid {
  position: relative;
  z-index: 1;
}

.epm-page.is-home-page .epm-statement-copy > p,
.epm-page.is-home-page .epm-panels-heading > p,
.epm-page.is-home-page .epm-matrix-copy > p,
.epm-page.is-home-page .epm-orbit-copy > p {
  max-width: 64ch;
}

.epm-page.is-home-page .epm-phasor-hero .hero-content h1 {
  font-size: clamp(52px,4.6vw,68px) !important;
  line-height: 1.02 !important;
}

.epm-page.is-inner-page .hero-content h1 {
  font-size: clamp(44px,4vw,56px) !important;
  line-height: 1.04 !important;
}

.epm-page .epm-statement-copy h2 {
  font-size: clamp(40px,3.55vw,58px);
  line-height: 1.08;
}

.epm-page .epm-panels-heading h2 {
  font-size: clamp(40px,3.8vw,62px);
  line-height: 1.08;
}

.epm-page .epm-matrix-copy h2,
.epm-page .epm-orbit-copy h2 {
  font-size: clamp(38px,3.35vw,56px);
  line-height: 1.1;
}

@media (max-width:760px) {
  .epm-page .contact-section {
    background-position: 68% center !important;
  }

  h2,
  .epm-page .epm-statement-copy h2,
  .epm-page .epm-panels-heading h2,
  .epm-page .epm-matrix-copy h2,
  .epm-page .epm-orbit-copy h2 {
    font-size: 30px;
    line-height: 1.1;
  }

  .epm-page.is-home-page .epm-phasor-hero .hero-content h1 {
    font-size: 34px !important;
    line-height: 1.04 !important;
  }

  .epm-page.is-inner-page .hero-content h1 {
    font-size: 30px !important;
    line-height: 1.06 !important;
  }

  .site-header nav a,
  .sticky-header nav a {
    font-size: 15px;
    font-weight: 580 !important;
  }

  .section-heading p:last-child {
    font-size: 16px;
  }

  .hero-form h2,
  .quote-form h2 {
    font-size: 18px;
  }

  .hero-form label,
  .quote-form label {
    font-size: 13px;
  }
}
