@layer components {
  .contact-hero {
    position: relative;
    z-index: 1;
  }

  .contact-main {
    position: relative;
    z-index: 2;
    margin-block-start: var(--contact-gap, 0px);
    background-color: white !important;

    isolation: isolate;
    contain: layout;
    overflow: visible;
  }

  @media (max-width: 1100px) {
    .contact-main .grid.cols-2 {
      grid-template-columns: 1fr !important;
    }
  }

  .contact-map iframe {
    display: block;
    width: 100%;
    height: clamp(220px, 40vh, 380px);
    border: 0;
    max-width: 100%;
    max-height: 80vh;
  }

  .contact-main {
    min-height: calc(100dvh - var(--header-height, 80px));
    height: auto;
    display: grid;
    margin-top: 0px !important;

    justify-content: stretch;
    align-content: start;
    background-color: var(--bg-soft);
  }

  .contact-main .container {
    width: min(100%, var(--cont, 1200px));
    margin: 0 auto;
    align-items: start;
    justify-items: stretch;
  }

  .contact-sizer {
    --measure: 22ch;

    --map-h: 400px;
  }

  @media (min-width: 768px) {
    .contact-sizer {
      --measure: 26ch;
      --map-h: 560px;
    }
  }

  .contact-form {
    display: flex;
    flex-direction: column;
    gap: 24px;

    --contact-status-gap: 1.5rem;
  }

  .contact-form__title {
    inline-size: var(--measure);
    max-inline-size: 100%;
    font-size: calc(2.25rem + 2.5rem);
    padding-top: 3.3rem;
  }
  @media (min-width: 768px) {
    .contact-form__title {
      font-size: calc(3rem + 2.5rem);
    }
  }

  .contact-map iframe {
    width: 100%;
    height: var(--map-h);
    border-radius: 1rem;
    border: 1px solid rgb(228, 228, 231);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  }

  .form-field {
    display: flex;
    flex-direction: column;
    row-gap: 12px;
  }

  .form-field input:focus,
  .form-field textarea:focus {
    outline: 2px solid rgba(0, 0, 0, 0.08);
    outline-offset: 1px;
  }

  /* .contact-form__status {
    margin-top: var(--contact-status-gap, 1.5rem);
    color: #32cd32;
  }  */

  .contact-form__actions {
    margin-top: 32px;
  }

  .contact-form .cf-turnstile {
    align-self: start;
  }

  #cf-name,
  #cf-email,
  #cf-subject {
    font-size: clamp(0.75rem, 1.75vw, 1.5rem);
    line-height: 1.15;
    padding-block: clamp(0.5rem, 1.25vh, 0.75rem);
    padding-inline: clamp(0.625rem, 1.25vw, 1rem);
    min-height: clamp(2rem, 6vh, 3rem);
    border-radius: 0.5rem;
    background-color: rgb(250, 250, 250);
    border: 1px solid rgb(228, 228, 231);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
    caret-color: rgb(24, 24, 27);
    outline: none;
  }

  #cf-name::placeholder,
  #cf-email::placeholder,
  #cf-subject::placeholder {
    font-size: inherit;
    line-height: inherit;
    opacity: 0.6;
  }

  #cf-name:focus,
  #cf-email:focus,
  /* #cf-subject:focus {
    outline: 2px solid rgba(16, 185, 129, 0.35);
    outline-offset: 2px;
  } */

  #cf-message {
    border-radius: 0.75rem;
    background-color: rgb(250 250 250);
    border: 1px solid rgb(228 228 231);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);

    caret-color: rgb(24 24 27);

    resize: vertical;
  }

  #cf-message::placeholder {
    font-size: inherit;
    line-height: inherit;
    opacity: 0.6;
  }

  /* #cf-message:focus {
    outline: 3px solid rgba(16, 185, 129, 0.35);
    outline-offset: 2px;
  } */
}
.contact-main {
  --form-align-offset: 1.25rem;
}

@media (min-width: 768px) {
  .contact-main {
    --form-align-offset: 2.5rem;
  }
}
@media (min-width: 1100px) {
  .contact-main {
    --form-align-offset: 3.5rem;
  }
}

.contact-form {
  align-self: start;
  margin-top: var(--form-align-offset, 0);
}

.nstl {
  border-radius: 0.6rem;
  font-size: clamp(0.75rem, 1.75vw, 1.5rem);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

.cta-fix {
  padding-bottom: 20px;
}

main#content > .section.cta-fix:last-child {
  padding-bottom: 60px;
  margin-bottom: 24px;
}
