/*
Converts a pixel value to matching rem value. *Any* value passed, regardless of unit, is assumed to be a pixel value. By default, the base pixel value used to calculate the rem value is taken from the `$global-font-size` variable.
@access private
@param {Number} $value - Pixel value to convert.
@param {Number} $base [null] - Base for pixel conversion.
@returns {Number} A number in rems, calculated based on the given value and the base pixel value. rem values are passed through as is.
*/
/*
Removes the unit (e.g. px, em, rem) from a value, returning the number only.
@param {Number} $num - Number to strip unit from.
@returns {Number} The same number, sans unit.
*/
/*
Converts one or more pixel values into matching rem values.
@param {Number|List} $values - One or more values to convert. Be sure to separate them with spaces and not commas. If you need to convert a comma-separated list, wrap the list in parentheses.

@param {Number} $base [null] - The base value to use when calculating the `rem`. If you're using Foundation out of the box, this is 16px. If this parameter is `null`, the function will reference the `$base-font-size` variable as the base.

@returns {List} A list of converted values.
*/
/**
 * Contrast
 */
/*
* Fluid Type function
*/
/**
*	Basic link hover function
*/
.block-process-explainer {
  --pe-ink: var(--brand-primary, #1A3A52);
  --pe-gold: var(--brand-accent, #D3B58F);
  --pe-clay: var(--brand-clay, #A8916E);
  --pe-card: var(--brand-wash, #FAFAF8);
  --pe-line: rgba(var(--brand-primary-rgb, 26, 58, 82), .14);
  --pe-text: var(--brand-ink, #25384A);
  --pe-muted: #5B6B78;
  --pe-clay-text: #726045;
  --pe-stage: var(--brand-cream, #ECDFCD);
}
.block-process-explainer[class*=bg--], .block-process-explainer.py--default {
  padding-top: 2.5rem;
  padding-bottom: 2.5rem;
}
@media (min-width: 992px) {
  .block-process-explainer[class*=bg--], .block-process-explainer.py--default {
    padding-top: 5rem;
    padding-bottom: 5rem;
  }
}
.block-process-explainer.py--half {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}
@media (min-width: 992px) {
  .block-process-explainer.py--half {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
  }
}
.block-process-explainer.py--none {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.block-process-explainer.bg--primary .heading {
  color: #fff !important;
}
.block-process-explainer.bg--secondary .heading {
  color: #fff !important;
}
.block-process-explainer.bg--tertiary .heading {
  color: #1A3A52 !important;
}
.block-process-explainer.bg--tertiary {
  --pe-stage: var(--brand-wash, #FAFAF8);
}
.block-process-explainer.bg--primary, .block-process-explainer.bg--darker {
  --pe-card: var(--brand-secondary, #2C4A72);
  --pe-text: #fff;
  --pe-muted: rgba(255,255,255,.7);
  --pe-clay-text: var(--brand-accent, #D3B58F);
  --pe-line: rgba(255,255,255,.2);
  --pe-ink: #fff;
  --pe-stage: var(--brand-secondary, #2C4A72);
}
.block-process-explainer .pe-header {
  margin-bottom: 1.75rem;
}
.block-process-explainer .pe-header .overline {
  margin-bottom: 0.75rem;
}
.block-process-explainer .pe-header .heading {
  margin-bottom: 0.75rem;
}
.block-process-explainer .pe-intro {
  max-width: 62ch;
  font-size: 1.05rem;
  margin: 0;
  color: var(--pe-text);
}
.block-process-explainer .pe {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  align-items: start;
  color: var(--pe-text);
}
@media (min-width: 992px) {
  .block-process-explainer .pe {
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
    gap: 3.5rem;
  }
}
@media (min-width: 992px) {
  .block-process-explainer--stage-right .pe-stage {
    order: 2;
  }
}
.block-process-explainer .pe-stage {
  position: relative;
  display: none;
  background: var(--pe-card);
  padding: 1.6rem 1.5rem 1.7rem;
  box-shadow: 0 8px 24px rgba(16, 29, 43, 0.08);
  overflow: hidden;
}
@media (min-width: 992px) {
  .block-process-explainer .pe-stage {
    display: grid;
    position: sticky;
    top: 6rem;
  }
}
.block-process-explainer .pe-frame {
  grid-area: 1/1;
  opacity: 0;
  visibility: hidden;
  transform: translate3d(0, 5px, 0);
  transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s;
  align-self: start;
}
.block-process-explainer .pe-frame.is-active {
  opacity: 1;
  visibility: visible;
  transform: none;
}
.block-process-explainer .pe-frame__img {
  width: 100%;
  display: block;
  margin-bottom: 1.1rem;
}
.block-process-explainer .pe-frame__top {
  display: flex;
  align-items: baseline;
  gap: 0.7rem;
}
.block-process-explainer .pe-frame__n {
  font-family: var(--brand-heading-font, Playfair Display, Georgia, serif);
  font-size: 2.6rem;
  line-height: 1;
  color: var(--pe-gold);
  font-variant-numeric: tabular-nums;
}
.block-process-explainer .pe-frame__when {
  font-size: 0.66rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--pe-clay);
}
.block-process-explainer .pe-frame__title {
  font-family: var(--brand-heading-font, Playfair Display, Georgia, serif);
  font-weight: var(--brand-heading-weight, 500);
  font-size: 1.55rem;
  line-height: 1.2;
  color: var(--pe-ink);
  margin: 0.35rem 0 0.6rem;
  padding-bottom: 0.6rem;
  border-bottom: 1px solid var(--pe-gold);
}
.block-process-explainer .pe-frame__copy p {
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--pe-text);
  margin: 0;
  max-width: 46ch;
}
.block-process-explainer .pe-progress {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  background: rgba(var(--brand-primary-rgb, 26, 58, 82), 0.14);
}
.block-process-explainer .pe-progress i {
  display: block;
  height: 100%;
  width: 0;
  background: var(--pe-gold);
}
.block-process-explainer .pe-steps {
  list-style: none;
  margin: 0;
  padding: 0;
}
.block-process-explainer .pe-step {
  border-top: 1px solid rgba(var(--brand-primary-rgb, 26, 58, 82), 0.22);
  transition: background 0.3s ease, box-shadow 0.3s ease;
}
.block-process-explainer .pe-step:last-child {
  border-bottom: 1px solid rgba(var(--brand-primary-rgb, 26, 58, 82), 0.22);
}
.block-process-explainer .pe-step__head {
  display: grid;
  grid-template-columns: 2.4rem minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: baseline;
  width: 100%;
  text-align: left;
  padding: 1.1rem 0;
  background: none;
  border: 0;
  border-bottom: 1px solid transparent;
  font: inherit;
  color: var(--pe-text);
  cursor: pointer;
  transition: padding 0.3s ease, border-color 0.3s ease;
}
.block-process-explainer .pe-step__head:focus-visible {
  outline: 2px solid var(--pe-gold);
  outline-offset: 3px;
}
.block-process-explainer .pe-step.is-active {
  background: var(--pe-card);
  box-shadow: 0 8px 24px rgba(16, 29, 43, 0.08);
}
.block-process-explainer .pe-step.is-active .pe-step__head {
  padding: 1.3rem 1.5rem 1rem;
  border-bottom: 1px solid var(--pe-gold);
}
.block-process-explainer .pe-step__num {
  font-family: var(--brand-body-font, Inter, Montserrat, sans-serif);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: var(--pe-clay);
  font-variant-numeric: tabular-nums;
}
.block-process-explainer .pe-step__title {
  font-family: var(--brand-heading-font, Playfair Display, Georgia, serif);
  font-weight: var(--brand-heading-weight, 500);
  font-size: 1.55rem;
  line-height: 1.2;
  color: var(--pe-muted);
  transition: color 0.2s;
}
.block-process-explainer .pe-step.is-active .pe-step__title,
.block-process-explainer .pe-step__head:hover .pe-step__title {
  color: var(--pe-ink);
}
.block-process-explainer .pe-step__when {
  font-size: 0.66rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--pe-clay);
  white-space: nowrap;
}
.block-process-explainer .pe-step__body {
  display: grid;
  grid-template-rows: 0fr;
  overflow: hidden;
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--pe-text);
  max-width: 58ch;
  transition: grid-template-rows 0.34s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.block-process-explainer .pe-step__inner {
  min-height: 0;
  padding: 0 0 1.2rem 3.4rem;
  opacity: 0;
  transform: translateY(-3px);
  transition: opacity 0.26s ease, transform 0.26s ease;
}
.block-process-explainer .pe-step__body p {
  margin: 0;
}
.block-process-explainer .pe-step.is-active .pe-step__body {
  grid-template-rows: 1fr;
}
.block-process-explainer .pe-step.is-active .pe-step__inner {
  opacity: 1;
  transform: none;
  transition-delay: 0.08s;
  padding: 0 1.5rem 1.5rem 4.9rem;
}
.block-process-explainer--list-all .pe-step__body {
  grid-template-rows: 1fr;
}
.block-process-explainer--list-all .pe-step__inner {
  opacity: 1;
  transform: none;
}
.block-process-explainer--list-all .pe-step__title {
  color: var(--pe-ink);
}
@media (min-width: 992px) {
  .block-process-explainer .pe-step__body {
    display: none;
  }
  .block-process-explainer--list-all .pe-step__body {
    display: grid;
  }
}
.block-process-explainer .pe-benefits {
  margin-top: 1.75rem;
  border-top: 1px solid var(--pe-line);
  padding-top: 1.25rem;
}
.block-process-explainer .pe-benefits .overline {
  margin-bottom: 0.6rem;
}
.block-process-explainer .pe-benefits ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.45rem 2rem;
}
@media (min-width: 768px) {
  .block-process-explainer .pe-benefits ul {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.block-process-explainer .pe-benefits li {
  position: relative;
  padding-left: 1.1rem;
  font-size: 0.97rem;
  color: var(--pe-text);
}
.block-process-explainer .pe-benefits li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  background: var(--pe-gold);
}
.block-process-explainer .pe-footnote {
  margin: 1rem 0 0;
  font-size: 0.88rem;
  color: var(--pe-muted);
  max-width: 70ch;
}
@media (prefers-reduced-motion: reduce) {
  .block-process-explainer .pe-frame, .block-process-explainer .pe-step__body, .block-process-explainer .pe-step__inner, .block-process-explainer .pe-step__title, .block-process-explainer .pe-step, .block-process-explainer .pe-step__head {
    transition: none;
  }
  .block-process-explainer .pe-progress {
    display: none;
  }
}
@supports not (grid-template-rows: 0fr) {
  .block-process-explainer .pe-step__body {
    display: none;
  }
  .block-process-explainer .pe-step.is-active .pe-step__body {
    display: block;
  }
}
