/**
 * Site-wide type scale and spacing. Page CSS must not redeclare these.
 */

html {
  scroll-behavior: smooth;
}

body {
  color: var(--ens-text);
  background-color: var(--ens-bg);
  font-size: var(--ens-fs-body);
  line-height: var(--ens-lh-body);
}

h1,
.h1,
.display-1,
.display-2,
.display-3,
.display-4,
.display-5 {
  font-size: var(--ens-fs-h1);
  line-height: var(--ens-lh-heading);
  font-weight: 700;
}

h2,
.h2,
.display-6 {
  font-size: var(--ens-fs-h2);
  line-height: 1.25;
  font-weight: 700;
}

h3,
.h3 {
  font-size: var(--ens-fs-h3);
  line-height: 1.3;
  font-weight: 600;
}

h4,
.h4 {
  font-size: var(--ens-fs-h4);
  line-height: 1.35;
  font-weight: 600;
}

h5,
.h5 {
  font-size: var(--ens-fs-h5);
  line-height: 1.4;
  font-weight: 600;
}

h6,
.h6 {
  font-size: var(--ens-fs-h6);
  line-height: 1.4;
  font-weight: 600;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  color: var(--ens-heading);
  margin-bottom: 0.5rem;
}

p,
.lead,
.nav-link,
.form-control,
.form-select,
.accordion-button {
  font-size: var(--ens-fs-body);
  line-height: var(--ens-lh-body);
}

p {
  margin-bottom: var(--ens-space-heading);
}

a {
  font-size: inherit;
  line-height: inherit;
}

a:not(.btn):focus-visible {
  outline: 0.15rem solid var(--ens-primary);
  outline-offset: 0.15rem;
}

.small,
small {
  font-size: var(--ens-fs-small);
  line-height: var(--ens-lh-body);
}

.ens-eyebrow,
.ens-intro .ens-eyebrow {
  display: inline-flex;
  align-items: center;
  position: relative;
  padding-bottom: 0.3rem;
  margin-bottom: 12px;
  font-size: var(--ens-fs-eyebrow);
  letter-spacing: 0.12em;
  line-height: 1.4;
}

.ens-eyebrow + :is(h1, h2, h3, h4, .h1, .h2, .h3, .h4) {
  margin-top: 0;
}

.ens-eyebrow::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 1.85rem;
  height: 0.14rem;
  border-radius: 99px;
  background-color: var(--ens-primary);
  box-shadow: 0 0 0.5rem rgba(250, 195, 75, 0.55);
  transform-origin: left center;
  animation: ens-eyebrow-mark 0.7s ease-out both;
}

.text-center .ens-eyebrow::after {
  left: 50%;
  transform: translateX(-50%);
  transform-origin: center;
  animation-name: ens-eyebrow-mark-center;
}

@keyframes ens-eyebrow-mark {
  from {
    transform: scaleX(0);
    opacity: 0;
  }

  to {
    transform: scaleX(1);
    opacity: 1;
  }
}

@keyframes ens-eyebrow-mark-center {
  from {
    transform: translateX(-50%) scaleX(0);
    opacity: 0;
  }

  to {
    transform: translateX(-50%) scaleX(1);
    opacity: 1;
  }
}

.ens-section {
  padding-top: var(--ens-space-section);
  padding-bottom: var(--ens-space-section);
}

.ens-intro {
  margin-bottom: var(--ens-space-block);
}

.ens-intro--flush {
  margin-bottom: 0;
}

.ens-intro h1,
.ens-intro .h1,
.ens-intro h2,
.ens-intro .h2 {
  margin-bottom: 0.5rem;
}

.ens-intro h1:last-child,
.ens-intro .h1:last-child,
.ens-intro h2:last-child,
.ens-intro .h2:last-child {
  margin-bottom: 0;
}

.ens-intro p {
  margin-bottom: var(--ens-space-heading);
}

.ens-lede {
  margin-bottom: var(--ens-space-copy);
}

.ens-intro--flush > :last-child {
  margin-bottom: var(--ens-space-copy);
}

.ens-intro:not(.ens-intro--flush) > :last-child {
  margin-bottom: 0;
}

.ens-block {
  margin-top: var(--ens-space-block);
}

.ens-section--cta {
  padding-top: 0;
  padding-bottom: var(--ens-space-section);
  background-color: var(--ens-surface);
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .ens-eyebrow::after {
    animation: none;
  }

  .text-center .ens-eyebrow::after {
    transform: translateX(-50%);
  }
}
