/* IFASS contact and referral form components, adapted from the supplied designs. */

  .ifass-contact {
    --ifass-heading: #252525;
    --ifass-text: #252525;
    --ifass-btn: #6FA1A6;
    --ifass-btn-hover: #252525;
    --ifass-line: #E8E4DC;
    --ifass-bg-light: #DCE5DD;
    --ifass-accent-1: #C9AD7D;
    --ifass-accent-2: #C9AD7D;
    --ifass-radius: 14px;
    --ifass-radius-sm: 14px;
    --ifass-btn-text: #252525;
    --ifass-btn-hover-text: #ffffff;
    --ifass-white: #ffffff;
    --ifass-error: #991B1B;
    --ifass-error-bg: #FEF2F2;
    --ifass-success: #14532D;
    --ifass-success-bg: #F0FDF4;
    --ifass-control-border: #6D7472;
    --ifass-focus: #252525;
    --ifass-shadow-offset: 10px 10px 0 #DCE5DD;

    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    padding: clamp(.75rem, 2vw, 1.5rem);
    color: var(--ifass-text);
    font-family: var(--body);
    line-height: 1.55;
  }

  .ifass-contact,
  .ifass-contact *,
  .ifass-contact *::before,
  .ifass-contact *::after {
    box-sizing: border-box;
  }

  .ifass-contact [hidden] {
    display: none !important;
  }

  .ifass-contact__frame {
    position: relative;
    display: grid;
    gap: 1.25rem;
    isolation: isolate;
  }

  .ifass-contact__frame::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 18px -10px -10px 18px;
    border: 1px solid var(--ifass-line);
    border-radius: calc(var(--ifass-radius) + 8px);
    background: var(--ifass-bg-light);
  }

  .ifass-contact__masthead {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(260px, .65fr);
    gap: clamp(1.5rem, 5vw, 5rem);
    align-items: center;
    min-height: 300px;
    padding: clamp(2rem, 6vw, 5rem);
    overflow: hidden;
    border: 1px solid var(--ifass-line);
    border-radius: calc(var(--ifass-radius) + 6px);
    background:
      linear-gradient(120deg, rgba(243,244,246,.15) 0 62%, rgba(243,244,246,.92) 62% 100%),
      var(--ifass-white);
  }

  .ifass-contact__masthead::before,
  .ifass-contact__masthead::after {
    content: "";
    position: absolute;
    pointer-events: none;
  }

  .ifass-contact__masthead::before {
    width: 220px;
    height: 220px;
    right: -92px;
    top: -92px;
    border: 34px solid rgba(209, 213, 219, .58);
    border-radius: 50%;
  }

  .ifass-contact__masthead::after {
    left: clamp(2rem, 6vw, 5rem);
    bottom: 1.3rem;
    width: 110px;
    height: 8px;
    border-radius: 999px;
    background: var(--ifass-accent-2);
    box-shadow: 122px 0 0 var(--ifass-line), 244px 0 0 var(--ifass-bg-light);
  }

  .ifass-contact__kicker {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    max-width: 100%;
    margin: 0 0 1rem;
    padding: .48rem .75rem;
    border: 1px solid var(--ifass-line);
    border-radius: 999px;
    background: var(--ifass-bg-light);
    color: var(--ifass-heading);
    font-size: .76rem;
    font-weight: 850;
    letter-spacing: .09em;
    line-height: 1.4;
    overflow-wrap: break-word;
    text-transform: uppercase;
  }

  .ifass-contact h2 {
    font-family: var(--display);
    max-width: 18ch;
    margin: 0;
    color: var(--ifass-heading);
    font-size: clamp(2.25rem, 5vw, 4.5rem);
    font-weight: 850;
    line-height: 1.1;
    letter-spacing: -.035em;
    overflow-wrap: break-word;
    text-wrap: balance;
  }

  .ifass-contact__masthead-note {
    position: relative;
    margin: 0;
    padding: 1.45rem;
    border: 1px solid var(--ifass-control-border);
    border-radius: var(--ifass-radius);
    background: var(--ifass-white);
    color: var(--ifass-text);
    box-shadow: var(--ifass-shadow-offset);
    font-size: 1rem;
  }

  .ifass-contact__masthead-note::before {
    content: "“";
    display: block;
    height: 1.3rem;
    margin-bottom: .4rem;
    color: var(--ifass-heading);
    font-family: var(--display);
    font-size: 2.6rem;
    font-weight: 700;
    line-height: .8;
  }

  .ifass-contact__body {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    min-width: 0;
  }

  .ifass-contact__panel h3,
  .ifass-contact__success h3 {
    margin: 0;
    color: var(--ifass-heading);
    font-size: 1.12rem;
    font-weight: 850;
    line-height: 1.25;
    letter-spacing: -.02em;
  }

  .ifass-contact__contact-options {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .5rem 1.25rem;
    min-width: 0;
    padding: 1rem clamp(1.15rem, 3vw, 1.8rem);
    border: 1px solid var(--ifass-control-border);
    border-radius: var(--ifass-radius-sm);
    background: var(--ifass-bg-light);
  }

  .ifass-contact__email-label {
    flex: 0 0 auto;
    color: var(--ifass-text);
    font-size: .71rem;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
  }

  .ifass-contact__email-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .55rem;
    align-items: center;
    min-width: 0;
    width: min(100%, 380px);
  }

  .ifass-contact__email-link {
    display: flex;
    align-items: center;
    min-height: 48px;
    min-width: 0;
    overflow: hidden;
    color: var(--ifass-heading);
    font-size: clamp(.68rem, 1.1vw, .83rem);
    font-weight: 800;
    letter-spacing: -.02em;
    line-height: 1.3;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    white-space: nowrap;
  }

  .ifass-contact__copy {
    min-width: 58px;
    min-height: 48px;
    padding: .55rem .7rem;
    border: 1px solid var(--ifass-control-border);
    border-radius: 10px;
    background: var(--ifass-white);
    color: var(--ifass-heading);
    font: inherit;
    font-size: .76rem;
    font-weight: 800;
    cursor: pointer;
  }

  .ifass-contact__copy:hover {
    background: var(--ifass-heading);
    color: var(--ifass-white);
  }

  .ifass-contact__phone-option {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .5rem .75rem;
    margin-inline-start: auto;
  }

  .ifass-contact__phone-link {
    align-items: center;
    color: var(--ifass-heading);
    display: inline-flex;
    font-size: 1rem;
    font-weight: 800;
    min-height: 48px;
    text-decoration: underline;
    text-underline-offset: 3px;
  }

  .ifass-contact__panel {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--ifass-line);
    border-radius: calc(var(--ifass-radius) + 6px);
    background: var(--ifass-white);
  }

  .ifass-contact__panel form {
    padding: clamp(1.25rem, 4vw, 3rem);
  }

  .ifass-contact__panel-head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    padding-bottom: 1.35rem;
  }

  .ifass-contact__panel-head h3 {
    font-size: clamp(1.45rem, 3vw, 2rem);
  }

  .ifass-contact__panel-head p {
    margin: .45rem 0 0;
    font-size: .9rem;
  }

  .ifass-contact__required-note {
    flex: 0 0 auto;
    padding: .43rem .65rem;
    border: 1px solid var(--ifass-line);
    border-radius: 999px;
    background: var(--ifass-bg-light);
    color: var(--ifass-heading);
    font-size: .72rem;
    font-weight: 800;
  }

  .ifass-contact__error-summary {
    margin: 0 0 1.3rem;
    padding: 1rem 1.15rem;
    border: 2px solid var(--ifass-error);
    border-radius: var(--ifass-radius-sm);
    background: var(--ifass-error-bg);
    color: var(--ifass-error);
  }

  .ifass-contact__error-summary h3 {
    color: var(--ifass-error);
  }

  .ifass-contact__error-summary p {
    margin: .25rem 0 .5rem;
  }

  .ifass-contact__error-summary ul {
    margin: 0;
    padding-left: 1.2rem;
  }

  .ifass-contact__error-summary a {
    color: var(--ifass-error);
    font-weight: 750;
  }

  .ifass-contact__honeypot {
    position: absolute;
    left: -10000px;
    width: 1px;
    height: 1px;
    overflow: hidden;
  }

  .ifass-contact__group {
    margin: 0;
    padding: 1.7rem 0;
    border: 0;
    border-top: 1px solid var(--ifass-line);
  }

  .ifass-contact__group legend {
    display: flex;
    align-items: center;
    gap: .7rem;
    width: 100%;
    margin: 0 0 1.1rem;
    padding: 0;
    color: var(--ifass-heading);
    font-size: 1rem;
    font-weight: 850;
  }

  .ifass-contact__group legend::before {
    content: "";
    width: 34px;
    height: 8px;
    border-radius: 999px;
    background: var(--ifass-accent-2);
    box-shadow: 40px 0 0 var(--ifass-line);
  }

  .ifass-contact__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.05rem 1.2rem;
  }

  .ifass-contact__field {
    min-width: 0;
  }

  .ifass-contact__field--full {
    grid-column: 1 / -1;
  }

  .ifass-contact label {
    display: block;
    margin: 0 0 .42rem;
    color: var(--ifass-heading);
    font-size: .88rem;
    font-weight: 760;
  }

  .ifass-contact__required,
  .ifass-contact__field-error {
    color: var(--ifass-error);
  }

  .ifass-contact__optional {
    color: var(--ifass-text);
    font-weight: 500;
  }

  .ifass-contact input[type="text"],
  .ifass-contact input[type="email"],
  .ifass-contact input[type="tel"],
  .ifass-contact select,
  .ifass-contact textarea {
    width: 100%;
    min-height: 52px;
    padding: .78rem .9rem;
    border: 1.5px solid var(--ifass-control-border);
    border-radius: var(--ifass-radius-sm);
    background: var(--ifass-white);
    color: var(--ifass-heading);
    font: inherit;
    font-size: 1rem;
    line-height: 1.35;
    transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
  }

  .ifass-contact select {
    color-scheme: light;
  }

  .ifass-contact select option,
  .ifass-contact select optgroup {
    background: #fff;
    color: #111827;
  }

  .ifass-contact textarea {
    min-height: 175px;
    resize: vertical;
  }

  .ifass-contact input:hover,
  .ifass-contact select:hover,
  .ifass-contact textarea:hover {
    border-color: var(--ifass-heading);
  }

  .ifass-contact input:focus-visible,
  .ifass-contact select:focus-visible,
  .ifass-contact textarea:focus-visible,
  .ifass-contact button:focus-visible,
  .ifass-contact a:focus-visible,
  .ifass-contact [tabindex="-1"]:focus-visible {
    outline: 3px solid var(--ifass-focus);
    outline-offset: 3px;
  }

  .ifass-contact input[aria-invalid="true"],
  .ifass-contact select[aria-invalid="true"],
  .ifass-contact textarea[aria-invalid="true"] {
    border-color: var(--ifass-error);
    background: var(--ifass-error-bg);
  }

  .ifass-contact__field-meta {
    display: flex;
    justify-content: space-between;
    gap: .75rem;
    margin-top: .35rem;
    font-size: .76rem;
  }

  .ifass-contact__field-error {
    display: block;
    margin-top: .38rem;
    font-size: .82rem;
    font-weight: 750;
  }

  .ifass-contact__consent {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    gap: .75rem;
    align-items: start;
    margin-top: .4rem;
    padding: 1rem;
    border: 1px solid var(--ifass-line);
    border-radius: var(--ifass-radius-sm);
    background: var(--ifass-bg-light);
  }

  .ifass-contact__consent.is-invalid {
    border-color: var(--ifass-error);
    background: var(--ifass-error-bg);
  }

  .ifass-contact__consent input {
    width: 20px;
    height: 20px;
    margin: .1rem 0 0;
    accent-color: var(--ifass-accent-1);
  }

  .ifass-contact__consent label {
    margin: 0;
    font-weight: 520;
  }

  .ifass-contact__consent a {
    color: var(--ifass-heading);
    font-weight: 800;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }

  .ifass-contact__security {
    margin-top: 1rem;
    padding: 1rem;
    overflow: hidden;
    border: 1px dashed var(--ifass-control-border);
    border-radius: var(--ifass-radius-sm);
    background: var(--ifass-white);
  }

  .ifass-contact__security .cf-turnstile {
    width: 100%;
    min-height: 65px;
  }

  .ifass-contact__actions {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    margin: 1.25rem -3rem -3rem;
    padding: 1.25rem 3rem;
    border-top: 1px solid var(--ifass-line);
    background: var(--ifass-bg-light);
  }

  .ifass-contact__actions-note {
    max-width: 48ch;
    margin: 0;
    font-size: .79rem;
  }

  .ifass-contact__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    min-height: 50px;
    min-width: 150px;
    padding: .78rem 1.25rem;
    border: 2px solid var(--ifass-btn);
    border-radius: var(--ifass-radius-sm);
    background: var(--ifass-btn);
    color: var(--ifass-btn-text);
    font: inherit;
    font-weight: 800;
    cursor: pointer;
    transition: background-color .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
  }

  .ifass-contact__button:hover:not(:disabled) {
    border-color: var(--ifass-btn-hover);
    background: var(--ifass-btn-hover);
    color: var(--ifass-btn-hover-text);
    transform: translateY(-1px);
  }

  .ifass-contact__button--secondary {
    border-color: var(--ifass-control-border);
    background: var(--ifass-white);
    color: var(--ifass-heading);
  }

  .ifass-contact__button--secondary:hover:not(:disabled) {
    background: var(--ifass-bg-light);
    color: var(--ifass-heading);
  }

  .ifass-contact__button:disabled,
  .ifass-contact__button[aria-busy="true"] {
    opacity: .65;
    cursor: not-allowed;
    transform: none;
  }

  .ifass-contact__spinner {
    width: 17px;
    height: 17px;
    border: 2px solid rgba(255,255,255,.4);
    border-top-color: var(--ifass-white);
    border-radius: 50%;
    animation: ifassContactSpin .7s linear infinite;
  }

  @keyframes ifassContactSpin {
    to { transform: rotate(360deg); }
  }

  .ifass-contact__success {
    padding: clamp(2rem, 6vw, 5rem);
    background: var(--ifass-success-bg);
  }

  .ifass-contact__success-inner {
    max-width: 620px;
    margin: 0 auto;
    text-align: center;
  }

  .ifass-contact__success-mark {
    display: grid;
    place-items: center;
    width: 62px;
    height: 62px;
    margin: 0 auto 1rem;
    border: 2px solid var(--ifass-success);
    border-radius: 50%;
    color: var(--ifass-success);
    font-size: 1.6rem;
    font-weight: 900;
  }

  .ifass-contact__success p {
    margin: .65rem auto 1.25rem;
  }

  .ifass-contact__sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  @media (max-width: 980px) {
    .ifass-contact__masthead {
      grid-template-columns: 1fr;
    }

    .ifass-contact__masthead-note {
      max-width: 560px;
    }

  }

  @media (max-width: 680px) {
    .ifass-contact {
      padding: .35rem;
    }

    .ifass-contact__frame::before {
      inset: 9px -4px -4px 9px;
    }

    .ifass-contact__masthead {
      min-height: 0;
      padding: 1.55rem 1.25rem 3rem;
      background: var(--ifass-white);
    }

    .ifass-contact__masthead::before {
      width: 150px;
      height: 150px;
      right: -70px;
      top: -70px;
      border-width: 24px;
    }

    .ifass-contact h2 {
      font-size: clamp(2rem, calc(2vw + 1.4rem), 2.5rem);
    }

    .ifass-contact__kicker {
      font-size: .68rem;
      letter-spacing: .04em;
    }

    .ifass-contact__masthead-note {
      box-shadow: 7px 7px 0 var(--ifass-line);
    }

    .ifass-contact__panel form {
      padding: 1.15rem;
    }

    .ifass-contact__panel-head {
      align-items: flex-start;
    }

    .ifass-contact__required-note {
      white-space: nowrap;
    }

    .ifass-contact__grid {
      grid-template-columns: 1fr;
    }

    .ifass-contact__field--full {
      grid-column: auto;
    }

    .ifass-contact__actions {
      flex-direction: column;
      align-items: stretch;
      margin: 1.25rem -1.15rem -1.15rem;
      padding: 1.15rem;
    }

    .ifass-contact__button {
      width: 100%;
    }

    .ifass-contact__email-link {
      font-size: clamp(.63rem, 3.25vw, .79rem);
    }

    .ifass-contact__phone-option {
      margin-inline-start: 0;
      width: 100%;
    }
  }

  @media (max-width: 360px) {
    .ifass-contact__email-row {
      grid-template-columns: minmax(0, 1fr) 52px;
      gap: .35rem;
    }

    .ifass-contact__copy {
      min-width: 52px;
      padding-inline: .45rem;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .ifass-contact *,
    .ifass-contact *::before,
    .ifass-contact *::after {
      scroll-behavior: auto !important;
      animation-duration: .01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: .01ms !important;
    }
  }

  @media (forced-colors: active) {
    .ifass-contact__frame::before,
    .ifass-contact__masthead::before,
    .ifass-contact__masthead::after,
    .ifass-contact__group legend::before {
      display: none;
    }

    .ifass-contact input,
    .ifass-contact select,
    .ifass-contact textarea,
    .ifass-contact button,
    .ifass-contact__consent,
    .ifass-contact__security,
    .ifass-contact__contact-options {
      border: 2px solid CanvasText;
    }
  }


  .ifass-referral {
    --ifass-heading: #252525;
    --ifass-text: #252525;
    --ifass-btn: #6FA1A6;
    --ifass-btn-hover: #252525;
    --ifass-line: #E8E4DC;
    --ifass-bg-light: #DCE5DD;
    --ifass-accent-1: #C9AD7D;
    --ifass-accent-2: #C9AD7D;
    --ifass-radius: 14px;
    --ifass-radius-sm: 14px;
    --ifass-service-columns: 3;
    --ifass-btn-text: #252525;
    --ifass-btn-hover-text: #ffffff;
    --ifass-white: #ffffff;
    --ifass-error: #9F1239;
    --ifass-error-bg: #FFF1F2;
    --ifass-success: #166534;
    --ifass-success-bg: #F0FDF4;
    --ifass-focus: #252525;
    --ifass-shadow: 0 28px 90px rgba(17, 24, 39, .08);

    width: 100%;
    max-width: 1240px;
    margin: 0 auto;
    color: var(--ifass-text);
    font-family: var(--body);
    line-height: 1.55;
  }

  .ifass-referral,
  .ifass-referral *,
  .ifass-referral *::before,
  .ifass-referral *::after {
    box-sizing: border-box;
  }

  .ifass-referral [hidden] {
    display: none !important;
  }

  .ifass-referral:not(.is-enhanced) .ifass-referral__progress,
  .ifass-referral:not(.is-enhanced) #ifassReferralStepOneActions,
  .ifass-referral:not(.is-enhanced) [data-ifass-step="2"] > .ifass-referral__actions,
  .ifass-referral:not(.is-enhanced) [data-ifass-prev],
  .ifass-referral:not(.is-enhanced) [data-ifass-edit-step],
  .ifass-referral:not(.is-enhanced) .ifass-referral__review {
    display: none !important;
  }

  .ifass-referral__shell {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--ifass-line);
    border-radius: var(--ifass-radius);
    background: var(--ifass-white);
    box-shadow: var(--ifass-shadow);
  }

  .ifass-referral__intro {
    position: relative;
    isolation: isolate;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: clamp(2rem, 5vw, 5rem);
    align-items: start;
    padding: clamp(2rem, 6vw, 5rem);
    overflow: hidden;
    background: linear-gradient(125deg, var(--ifass-bg-light), var(--ifass-white));
  }

  .ifass-referral__intro > div {
    max-width: 70ch;
  }

  .ifass-referral__intro::before {
    content: "REFERRAL";
    position: absolute;
    z-index: -1;
    right: clamp(-2rem, -1vw, -.7rem);
    top: clamp(-1.2rem, -1vw, -.3rem);
    color: transparent;
    -webkit-text-stroke: 1px var(--ifass-line);
    font-size: clamp(4.3rem, 12vw, 10.5rem);
    font-weight: 900;
    line-height: .84;
    letter-spacing: -.075em;
    opacity: .64;
    pointer-events: none;
  }

  .ifass-referral__eyebrow {
    display: flex;
    align-items: center;
    gap: .7rem;
    margin: 0 0 1.1rem;
    color: var(--ifass-accent-2);
    font-size: .78rem;
    font-weight: 850;
    letter-spacing: .14em;
    overflow-wrap: break-word;
    text-transform: uppercase;
  }

  .ifass-referral__eyebrow::before {
    content: "";
    width: 44px;
    height: 2px;
    background: var(--ifass-accent-2);
  }

  .ifass-referral h2 {
    font-family: var(--display);
    max-width: 14ch;
    margin: 0;
    color: var(--ifass-heading);
    font-size: clamp(2.45rem, 5.7vw, 5.25rem);
    font-weight: 850;
    line-height: 1.08;
    letter-spacing: -.04em;
    overflow-wrap: break-word;
    text-wrap: balance;
  }

  .ifass-referral__lede {
    max-width: 58ch;
    margin: 1.35rem 0 0;
    font-size: clamp(1rem, 1.45vw, 1.15rem);
  }

  .ifass-referral__progress {
    border-top: 1px solid var(--ifass-line);
    border-bottom: 1px solid var(--ifass-line);
    background: var(--ifass-white);
  }

  .ifass-referral__progress-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .ifass-referral__progress-item {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .8rem;
    align-items: center;
    min-width: 0;
    padding: 1.15rem clamp(.85rem, 2.7vw, 1.8rem);
    color: var(--ifass-text);
  }

  .ifass-referral__progress-item + .ifass-referral__progress-item {
    border-left: 1px solid var(--ifass-line);
  }

  .ifass-referral__progress-item::after {
    content: "";
    position: absolute;
    left: 0;
    right: 100%;
    bottom: -1px;
    height: 4px;
    background: var(--ifass-heading);
    transition: right .2s ease;
  }

  .ifass-referral__progress-item.is-active::after,
  .ifass-referral__progress-item.is-complete::after {
    right: 0;
  }

  .ifass-referral__progress-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border: 1px solid var(--ifass-line);
    border-radius: 50%;
    background: var(--ifass-white);
    color: var(--ifass-heading);
    font-size: .8rem;
    font-weight: 900;
  }

  .ifass-referral__progress-item.is-active .ifass-referral__progress-number {
    border-color: var(--ifass-heading);
    background: var(--ifass-bg-light);
  }

  .ifass-referral__progress-item.is-complete .ifass-referral__progress-number {
    border-color: var(--ifass-heading);
    color: transparent;
  }

  .ifass-referral__progress-item.is-complete .ifass-referral__progress-number::after {
    content: "✓";
    color: var(--ifass-heading);
    font-size: .95rem;
  }

  .ifass-referral__progress-title {
    display: block;
    color: var(--ifass-heading);
    font-size: .9rem;
    font-weight: 850;
  }

  .ifass-referral__progress-copy {
    display: block;
    margin-top: .12rem;
    font-size: .78rem;
    line-height: 1.35;
  }

  .ifass-referral__step {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
  }

  .ifass-referral__step-layout {
    display: grid;
    grid-template-columns: minmax(250px, .72fr) minmax(0, 1.7fr);
    min-width: 0;
  }

  .ifass-referral__brief {
    position: relative;
    min-width: 0;
    padding: clamp(1.5rem, 4vw, 3.6rem);
    overflow: hidden;
    border-right: 1px solid var(--ifass-line);
    background: var(--ifass-bg-light);
  }

  .ifass-referral__brief::after {
    content: attr(data-step-number);
    position: absolute;
    right: -1rem;
    bottom: -2.2rem;
    color: var(--ifass-white);
    font-size: clamp(8rem, 17vw, 14rem);
    font-weight: 900;
    line-height: .78;
    letter-spacing: -.1em;
    pointer-events: none;
  }

  .ifass-referral__brief-label {
    display: block;
    margin-bottom: 1.4rem;
    color: var(--ifass-accent-2);
    font-size: .76rem;
    font-weight: 850;
    letter-spacing: .12em;
    text-transform: uppercase;
  }

  .ifass-referral__brief h3,
  .ifass-referral__success h3,
  .ifass-referral__error-summary h3 {
    font-family: var(--display);
    margin: 0;
    color: var(--ifass-heading);
    font-size: clamp(1.4rem, 2.7vw, 2.35rem);
    font-weight: 850;
    line-height: 1.08;
    letter-spacing: -.038em;
    text-wrap: balance;
  }

  .ifass-referral__brief p {
    position: relative;
    z-index: 1;
    margin: 1rem 0 0;
    font-size: .93rem;
  }

  .ifass-referral__brief-list {
    position: relative;
    z-index: 1;
    display: grid;
    gap: .55rem;
    margin: 1.4rem 0 0;
    padding: 1.1rem 0 0;
    border-top: 1px solid var(--ifass-line);
    list-style: none;
  }

  .ifass-referral__brief-list li {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    gap: .55rem;
    color: var(--ifass-heading);
    font-size: .82rem;
    font-weight: 700;
  }

  .ifass-referral__brief-list li::before {
    content: "—";
    color: var(--ifass-accent-2);
  }

  .ifass-referral__questions {
    min-width: 0;
    padding: clamp(1.2rem, 4vw, 3.4rem);
  }

  .ifass-referral__section {
    min-width: 0;
    margin: 0;
    padding: 1.7rem 0;
    border: 0;
    border-top: 1px solid var(--ifass-line);
  }

  .ifass-referral__section:first-of-type {
    padding-top: 0;
    border-top: 0;
  }

  .ifass-referral__section legend,
  .ifass-referral__section-title {
    width: 100%;
    margin: 0 0 .35rem;
    padding: 0;
    color: var(--ifass-heading);
    font-size: 1.04rem;
    font-weight: 850;
  }

  .ifass-referral__section-copy {
    max-width: 68ch;
    margin: 0 0 1.1rem;
    font-size: .88rem;
  }

  .ifass-referral__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem 1.2rem;
  }

  .ifass-referral__field {
    min-width: 0;
  }

  .ifass-referral__field--full {
    grid-column: 1 / -1;
  }

  .ifass-referral__field > label,
  .ifass-referral__label {
    display: block;
    margin: 0 0 .45rem;
    color: var(--ifass-heading);
    font-size: .91rem;
    font-weight: 750;
  }

  .ifass-referral__required {
    color: var(--ifass-error);
  }

  .ifass-referral__optional {
    color: var(--ifass-text);
    font-size: .81rem;
    font-weight: 500;
  }

  .ifass-referral input[type="text"],
  .ifass-referral input[type="email"],
  .ifass-referral input[type="tel"],
  .ifass-referral input[type="date"],
  .ifass-referral select,
  .ifass-referral textarea {
    width: 100%;
    min-height: 52px;
    padding: .78rem .9rem;
    border: 1.5px solid var(--ifass-line);
    border-radius: var(--ifass-radius-sm);
    background: var(--ifass-white);
    color: var(--ifass-heading);
    font: inherit;
    font-size: 1rem;
    line-height: 1.4;
    transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
  }

  .ifass-referral .ifass-referral__field select {
    background-color: #fff;
    color: var(--ifass-heading);
    color-scheme: light;
  }

  .ifass-referral .ifass-referral__field select option,
  .ifass-referral .ifass-referral__field select optgroup {
    background: #fff;
    color: #111827;
  }

  .ifass-referral textarea {
    min-height: 150px;
    resize: vertical;
  }

  .ifass-referral input:hover,
  .ifass-referral select:hover,
  .ifass-referral textarea:hover {
    border-color: var(--ifass-accent-2);
  }

  .ifass-referral input:focus,
  .ifass-referral select:focus,
  .ifass-referral textarea:focus,
  .ifass-referral button:focus-visible,
  .ifass-referral a:focus-visible,
  .ifass-referral__step-heading:focus,
  .ifass-referral__error-summary:focus {
    outline: 3px solid var(--ifass-focus);
    outline-offset: 3px;
  }

  .ifass-referral input:focus,
  .ifass-referral select:focus,
  .ifass-referral textarea:focus {
    border-color: var(--ifass-heading);
  }

  .ifass-referral input[aria-invalid="true"],
  .ifass-referral select[aria-invalid="true"],
  .ifass-referral textarea[aria-invalid="true"] {
    border-color: var(--ifass-error);
    background: var(--ifass-error-bg);
  }

  .ifass-referral__help {
    display: block;
    margin-top: .42rem;
    color: var(--ifass-text);
    font-size: .8rem;
  }

  .ifass-referral__counter-row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-top: .42rem;
    color: var(--ifass-text);
    font-size: .8rem;
  }

  .ifass-referral__field-error {
    display: block;
    margin-top: .42rem;
    color: var(--ifass-error);
    font-size: .84rem;
    font-weight: 750;
  }

  .ifass-referral__choices {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .7rem;
  }

  .ifass-referral__choices--three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .ifass-referral__choice,
  .ifass-referral__service {
    position: relative;
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    gap: .72rem;
    align-items: start;
    min-height: 52px;
    margin: 0;
    padding: .85rem .9rem;
    border: 1px solid var(--ifass-line);
    border-radius: var(--ifass-radius-sm);
    background: var(--ifass-white);
    color: var(--ifass-heading);
    font-size: .88rem;
    font-weight: 700;
    cursor: pointer;
    transition: border-color .16s ease, background-color .16s ease, box-shadow .16s ease;
  }

  .ifass-referral__choice {
    gap: 1rem;
  }

  .ifass-referral__choice:hover,
  .ifass-referral__service:hover {
    border-color: var(--ifass-accent-2);
    background: var(--ifass-bg-light);
  }

  .ifass-referral__choice.is-selected,
  .ifass-referral__service.is-selected {
    border-color: var(--ifass-heading);
    background: var(--ifass-bg-light);
    box-shadow: inset 0 0 0 1px var(--ifass-heading);
  }

  .ifass-referral__choice.is-selected::after,
  .ifass-referral__service.is-selected::after {
    content: "Selected";
    position: absolute;
    right: .75rem;
    top: .45rem;
    color: var(--ifass-accent-2);
    font-size: .64rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
  }

  .ifass-referral__choice input,
  .ifass-referral__service input {
    width: 19px;
    height: 19px;
    margin: .1rem 0 0;
    accent-color: var(--ifass-heading);
  }

  .ifass-referral__choice-group.is-invalid .ifass-referral__choice,
  .ifass-referral__consent.is-invalid {
    border-color: var(--ifass-error);
    background: var(--ifass-error-bg);
  }

  .ifass-referral__consent-advice {
    margin: .9rem 0 0;
    padding: .85rem 1rem;
    border-left: 4px solid var(--ifass-accent-1);
    border-radius: 0 8px 8px 0;
    background: var(--ifass-bg-light);
    color: var(--ifass-heading);
    font-size: .94rem;
    line-height: 1.5;
  }

  .ifass-referral__consent-advice[hidden] {
    display: none;
  }

  .ifass-referral__services {
    display: grid;
    grid-template-columns: repeat(var(--ifass-service-columns), minmax(0, 1fr));
    gap: .65rem;
  }

  .ifass-referral__service {
    grid-template-columns: 22px minmax(0, 1fr);
    align-items: center;
    min-height: 64px;
    padding: .65rem;
    border-color: transparent;
    border-radius: 10px;
    background: transparent;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.35;
  }

  .ifass-referral__service:hover {
    border-color: transparent;
    background: var(--ifass-bg-light);
  }

  .ifass-referral__service.is-selected {
    border-color: transparent;
    background: var(--ifass-bg-light);
    box-shadow: none;
  }

  .ifass-referral__service.is-selected::after {
    content: none;
  }

  .ifass-referral__service input {
    margin: 0;
  }

  .ifass-referral__self-copy {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 0 0 1.35rem;
    padding: 1rem;
    border: 1px dashed var(--ifass-accent-2);
    border-radius: var(--ifass-radius-sm);
    background: var(--ifass-bg-light);
  }

  .ifass-referral__self-copy p {
    margin: 0;
    font-size: .87rem;
  }

  .ifass-referral__self-copy strong {
    display: block;
    color: var(--ifass-heading);
  }

  .ifass-referral__self-copy button,
  .ifass-referral__file-button {
    flex: 0 0 auto;
    min-height: 48px;
    padding: .62rem .9rem;
    border: 1px solid var(--ifass-heading);
    border-radius: var(--ifass-radius-sm);
    background: var(--ifass-white);
    color: var(--ifass-heading);
    font: inherit;
    font-size: .84rem;
    font-weight: 800;
    cursor: pointer;
  }

  .ifass-referral__self-copy button:hover,
  .ifass-referral__file-button:hover {
    background: var(--ifass-bg-light);
  }

  .ifass-referral__conditional {
    margin-top: 1rem;
    padding: 1.15rem;
    border: 1px solid var(--ifass-line);
    border-radius: var(--ifass-radius-sm);
    background: var(--ifass-bg-light);
  }

  .ifass-referral__conditional-title {
    margin: 0 0 1rem;
    color: var(--ifass-heading);
    font-size: .9rem;
    font-weight: 850;
  }

  .ifass-referral__file-box {
    margin-top: 1rem;
    padding: 1rem;
    border: 1px dashed var(--ifass-accent-2);
    border-radius: var(--ifass-radius-sm);
    background: var(--ifass-white);
  }

  .ifass-referral__file-row {
    display: flex;
    align-items: center;
    gap: .8rem;
    min-width: 0;
  }

  .ifass-referral__file-input {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
  }

  .ifass-referral__file-input:focus-visible + .ifass-referral__file-button {
    outline: 3px solid var(--ifass-focus);
    outline-offset: 3px;
  }

  .ifass-referral__file-name {
    min-width: 0;
    overflow-wrap: anywhere;
    font-size: .83rem;
  }

  .ifass-referral__consent {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    gap: .75rem;
    align-items: start;
    margin-top: 1rem;
    padding: 1rem;
    border: 1px solid var(--ifass-line);
    border-radius: var(--ifass-radius-sm);
    background: var(--ifass-bg-light);
  }

  .ifass-referral__consent input {
    width: 20px;
    height: 20px;
    margin: .15rem 0 0;
    accent-color: var(--ifass-heading);
  }

  .ifass-referral__consent label {
    margin: 0;
    font-weight: 500;
  }

  .ifass-referral__consent a {
    color: var(--ifass-heading);
    font-weight: 800;
    text-decoration-thickness: 1px;
    text-underline-offset: .2em;
  }

  .ifass-referral__security {
    min-width: 0;
    margin-top: 1rem;
    padding: 1rem;
    overflow: hidden;
    border: 1px solid var(--ifass-line);
    border-radius: var(--ifass-radius-sm);
    background: var(--ifass-white);
  }

  .ifass-referral__security .cf-turnstile,
  .ifass-referral__security iframe {
    max-width: 100%;
  }

  .ifass-referral__review {
    padding: 1.25rem;
    border: 1px solid var(--ifass-line);
    border-radius: var(--ifass-radius-sm);
    background: var(--ifass-bg-light);
  }

  .ifass-referral__review h4 {
    margin: 0 0 .3rem;
    color: var(--ifass-heading);
    font-size: 1.08rem;
  }

  .ifass-referral__review > p {
    margin: 0 0 1rem;
  }

  .ifass-referral__review-list {
    margin: 0;
  }

  .ifass-referral__review-list > div {
    display: grid;
    grid-template-columns: minmax(0, 11rem) minmax(0, 1fr);
    gap: .2rem 1rem;
    padding: .7rem 0;
    border-top: 1px solid var(--ifass-line);
  }

  .ifass-referral__review-list dt {
    color: var(--ifass-heading);
    font-weight: 750;
  }

  .ifass-referral__review-list dd {
    min-width: 0;
    margin: 0;
    overflow-wrap: anywhere;
    white-space: pre-wrap;
  }

  .ifass-referral__review-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1rem;
    margin-top: 1rem;
  }

  .ifass-referral__review-actions button {
    min-height: 48px;
    padding: .55rem .7rem;
    border: 1px solid var(--ifass-heading);
    border-radius: var(--ifass-radius-sm);
    background: var(--ifass-white);
    color: var(--ifass-heading);
    font: inherit;
    font-weight: 750;
    cursor: pointer;
  }

  .ifass-referral__review-actions button:hover {
    background: var(--ifass-bg-light);
  }

  .ifass-referral__actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.35rem clamp(1.2rem, 4vw, 3.4rem);
    border-top: 1px solid var(--ifass-line);
    background: var(--ifass-white);
  }

  .ifass-referral__actions-note {
    margin: 0;
    font-size: .82rem;
  }

  .ifass-referral__action-buttons {
    display: flex;
    gap: .8rem;
  }

  .ifass-referral .ifass-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .65rem;
    min-width: 150px;
    min-height: 50px;
    padding: .75rem 1.15rem;
    border: 2px solid var(--ifass-btn);
    border-radius: var(--ifass-radius-sm);
    font: inherit;
    font-weight: 850;
    cursor: pointer;
    transition: background-color .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
  }

  .ifass-referral .ifass-btn--primary {
    background: var(--ifass-btn);
    color: var(--ifass-btn-text);
  }

  .ifass-referral .ifass-btn--primary:hover:not([disabled]) {
    border-color: var(--ifass-btn-hover);
    background: var(--ifass-btn-hover);
    color: var(--ifass-btn-hover-text);
    transform: translateY(-1px);
  }

  .ifass-referral .ifass-btn--secondary {
    background: var(--ifass-white);
    color: var(--ifass-heading);
  }

  .ifass-referral .ifass-btn--secondary:hover:not([disabled]) {
    background: var(--ifass-bg-light);
  }

  .ifass-referral .ifass-btn:disabled {
    cursor: not-allowed;
    opacity: .65;
  }

  .ifass-referral__spinner {
    width: 18px;
    height: 18px;
    border: 2px solid rgba(255,255,255,.45);
    border-top-color: var(--ifass-white);
    border-radius: 50%;
    animation: ifassReferralSpin .7s linear infinite;
  }

  @keyframes ifassReferralSpin {
    to { transform: rotate(360deg); }
  }

  .ifass-referral__error-summary {
    margin: 0 0 1.4rem;
    padding: 1rem 1.1rem;
    border: 2px solid var(--ifass-error);
    border-radius: var(--ifass-radius-sm);
    background: var(--ifass-error-bg);
    color: var(--ifass-error);
  }

  .ifass-referral__error-summary h3 {
    color: var(--ifass-error);
    font-size: 1.02rem;
  }

  .ifass-referral__error-summary p {
    margin: .25rem 0 .5rem;
  }

  .ifass-referral__error-summary ul {
    margin: 0;
    padding-left: 1.25rem;
  }

  .ifass-referral__error-summary a {
    color: var(--ifass-error);
    font-weight: 750;
  }

  .ifass-referral__success {
    padding: clamp(2.2rem, 7vw, 6rem);
    text-align: center;
    background: var(--ifass-success-bg);
  }

  .ifass-referral__success-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 62px;
    height: 62px;
    margin-bottom: 1rem;
    border: 2px solid var(--ifass-success);
    border-radius: 50%;
    color: var(--ifass-success);
    font-size: 1.65rem;
    font-weight: 900;
  }

  .ifass-referral__success p {
    max-width: 58ch;
    margin: .75rem auto 0;
  }

  .ifass-referral__honeypot,
  .ifass-referral__sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
  }

  @media (max-width: 1040px) {
    .ifass-referral__step-layout {
      grid-template-columns: 230px minmax(0, 1fr);
    }

  }

  @media (max-width: 780px) {
    .ifass-referral__progress-copy {
      display: none;
    }

    .ifass-referral__progress-item {
      grid-template-columns: 1fr;
      justify-items: center;
      gap: .4rem;
      text-align: center;
    }

    .ifass-referral__step-layout {
      grid-template-columns: 1fr;
    }

    .ifass-referral__brief {
      border-right: 0;
      border-bottom: 1px solid var(--ifass-line);
    }

    .ifass-referral__brief::after {
      right: .2rem;
      bottom: -3rem;
      font-size: 9rem;
    }

    .ifass-referral__brief-list {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }
  }

  @media (max-width: 620px) {
    .ifass-referral__intro {
      padding: 1.5rem;
    }

    .ifass-referral__intro::before {
      display: none;
    }

    .ifass-referral__eyebrow {
      font-size: .7rem;
      letter-spacing: .08em;
      gap: .4rem;
    }

    .ifass-referral__eyebrow::before {
      width: 24px;
    }

    .ifass-referral h2 {
      font-size: clamp(2rem, calc(2vw + 1.65rem), 2.45rem);
    }

    .ifass-referral__progress-item {
      padding: .8rem .35rem;
    }

    .ifass-referral__progress-title {
      font-size: .73rem;
    }

    .ifass-referral__progress-number {
      width: 32px;
      height: 32px;
    }

    .ifass-referral__brief,
    .ifass-referral__questions,
    .ifass-referral__actions {
      padding-left: 1rem;
      padding-right: 1rem;
    }

    .ifass-referral__brief-list,
    .ifass-referral__grid,
    .ifass-referral__choices,
    .ifass-referral__choices--three,
    .ifass-referral__services {
      grid-template-columns: 1fr;
    }

    .ifass-referral__self-copy,
    .ifass-referral__file-row,
    .ifass-referral__actions {
      align-items: stretch;
      flex-direction: column;
    }

    .ifass-referral__action-buttons {
      display: grid;
      grid-template-columns: 1fr;
      width: 100%;
    }

    .ifass-referral__review-list > div {
      grid-template-columns: 1fr;
    }

    .ifass-referral .ifass-btn {
      width: 100%;
    }

    .ifass-referral__actions-note {
      order: 2;
    }

    .ifass-referral__self-copy button,
    .ifass-referral__file-button {
      align-self: flex-start;
    }
  }

  @media (max-width: 360px) {
    .ifass-referral h2 {
      font-size: 2.1rem;
    }

    .ifass-referral__progress-title {
      font-size: .66rem;
    }

    .ifass-referral__questions,
    .ifass-referral__brief,
    .ifass-referral__actions,
    .ifass-referral__conditional,
    .ifass-referral__security,
    .ifass-referral__consent {
      padding-left: .78rem;
      padding-right: .78rem;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .ifass-referral *,
    .ifass-referral *::before,
    .ifass-referral *::after {
      scroll-behavior: auto !important;
      animation-duration: .01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: .01ms !important;
    }

    .ifass-referral .ifass-btn:hover {
      transform: none;
    }
  }

  @media (forced-colors: active) {
    .ifass-referral__intro,
    .ifass-referral__brief,
    .ifass-referral__conditional,
    .ifass-referral__consent,
    .ifass-referral__security,
    .ifass-referral__success {
      background: Canvas;
      color: CanvasText;
    }

    .ifass-referral input,
    .ifass-referral select,
    .ifass-referral textarea,
    .ifass-referral button,
    .ifass-referral__choice,
    .ifass-referral__service,
    .ifass-referral__consent,
    .ifass-referral__security {
      border: 2px solid CanvasText;
    }
  }

.ifass-contact,.ifass-referral{--ifass-accent-1:#C9AD7D;--ifass-accent-2:#6FA1A6;--ifass-focus:#252525;--ifass-line:#E8E4DC;--ifass-bg-light:#DCE5DD;--ifass-heading:#252525;--ifass-text:#252525;--ifass-btn:#6FA1A6;--ifass-btn-hover:#252525;--ifass-btn-text:#252525;--ifass-btn-hover-text:#fff;font-family:var(--body)}
.ifass-contact h2,.ifass-contact h3,.ifass-referral h2,.ifass-referral h3,.ifass-referral h4{font-family:var(--display)}
.ifass-contact__button:disabled,.ifass-btn:disabled{opacity:.58;cursor:not-allowed;transform:none;box-shadow:none}
@media(max-width:420px){.ifass-contact,.ifass-referral{padding-inline:0}}
