/* Scoped homepage contact section. It intentionally has no animation attributes, so
   the site's pre-reveal CSS can never keep it invisible. */
.contact_section { position: relative; overflow: hidden; }
.contact_layout {
  display: grid;
  grid-template-columns: minmax(0, .94fr) minmax(0, 1.06fr);
  align-items: stretch;
  overflow: hidden;
  border-radius: 1.5rem;
  background: #f5f6f6;
  box-shadow: 0 1.5rem 3rem rgba(9, 20, 28, .08);
}

/* Left panel */
.contact_info {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: clamp(1.75rem, 4vw, 4rem);
  background: #f5f6f6;
}
.contact_info .tag { align-self: flex-start; }
.contact_heading { margin: 0; }
.contact_subline { max-width: 30rem; }
.contact_details { display: flex; flex-direction: column; gap: 1.5rem; }
.contact_detail-label {
  margin-bottom: .375rem;
  color: var(--text-color--text-secondary, #6b7280);
  font-family: var(--_typography---font-family--alternate, "Plus Jakarta Sans", sans-serif);
  font-size: .8125rem;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.contact_detail-value {
  display: inline-block;
  color: var(--text-color--text-primary, #000);
  font-size: 1.0625rem;
  line-height: 1.5;
}
.contact_detail-value.is-address { max-width: 22rem; }
.contact_social-list { display: flex; flex-flow: row wrap; gap: .75rem; }
.contact_social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 2.75rem;
  height: 2.75rem;
  border: 1px solid rgba(18, 40, 53, .18);
  border-radius: 50%;
  color: #122835;
  font-family: var(--_typography---font-family--alternate, "Plus Jakarta Sans", sans-serif);
  font-size: .75rem;
  font-weight: 700;
  line-height: 1;
  text-transform: uppercase;
}

/* Right panel: a sky/blur backdrop with a centered white form card. */
.contact_form-backdrop {
  position: relative;
  display: grid;
  min-height: 100%;
  padding: clamp(1.25rem, 3vw, 3rem);
  overflow: hidden;
  background: linear-gradient(135deg, #3d8ee8 0%, #75bdfd 50%, #214d8e 100%);
  isolation: isolate;
  place-items: center;
}
.contact_form-bg {
  position: absolute;
  inset: -2%;
  width: 104%;
  height: 104%;
  object-fit: cover;
  opacity: .38;
  filter: blur(3px);
  pointer-events: none;
  z-index: 0;
}
.contact_form-card {
  position: relative;
  z-index: 1;
  width: min(100%, 32rem);
  padding: clamp(1.5rem, 3vw, 2.5rem);
  border-radius: 1.125rem;
  background: #fff;
  box-shadow: 0 1.5rem 3rem rgba(9, 20, 28, .18);
}
.contact_form-card .form-block { width: 100%; margin-bottom: 0; }
.contact_form { display: flex; flex-direction: column; gap: 1.25rem; margin: 0; }
.contact_field { display: flex; flex-direction: column; }
.contact_label {
  margin-bottom: .5rem;
  color: var(--text-color--text-primary, #000);
  font-family: var(--_typography---font-family--alternate, "Plus Jakarta Sans", sans-serif);
  font-size: .875rem;
  font-weight: 500;
}
.contact_input {
  width: 100%;
  min-height: 3rem;
  margin-bottom: 0;
  padding: .75rem 1rem;
  border: 1px solid rgba(18, 40, 53, .12);
  border-radius: .75rem;
  background: #f5f6f6;
  color: #122835;
  font: inherit;
  font-size: 1rem;
  line-height: 1.5;
  transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
}
.contact_input::placeholder { color: #98a2a8; }
.contact_input:focus { outline: 0; border-color: #122835; background: #fff; box-shadow: 0 0 0 3px rgba(214, 253, 112, .55); }
textarea.contact_input { min-height: 8.5rem; height: auto; resize: vertical; }
.contact_input[aria-invalid="true"] { border-color: #d3282b; background: #fff6f6; }
.contact_error { display: none; margin-top: .375rem; color: #d3282b; font-size: .8125rem; line-height: 1.4; }
.contact_error.is-visible { display: block; }
.contact_honeypot {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
  padding: 0;
  margin: -1px;
}
/* Existing button-arrow styling supplies the compact dark pill and lime arrow. */
.contact_submit { align-self: flex-start; margin-top: .25rem; border: 0; cursor: pointer; }
.contact_submit[disabled] { cursor: progress; opacity: .7; }
.contact_form-card .success-message,
.contact_form-card .error-message { margin-top: 0; padding: 1rem 1.25rem; border-radius: .75rem; text-align: left; }
.contact_form-card .success-message { background: rgba(214, 253, 112, .35); color: #122835; }
.contact_form-card .error-message { margin-top: 1rem; background: #ffe9e9; color: #8f1f21; }

@media screen and (max-width: 991px) {
  .contact_layout { grid-template-columns: minmax(0, 1fr); }
  .contact_form-backdrop { min-height: 38rem; }
}
@media screen and (max-width: 767px) {
  .contact_layout { border-radius: 1.25rem; }
  .contact_info { padding: 1.5rem; }
  .contact_form-backdrop { min-height: 0; padding: 1rem; border-radius: 0; }
  .contact_form-card { padding: 1.5rem; }
  .contact_detail-value { font-size: 1rem; }
}

.tn-center-button { display: flex; justify-content: center; width: 100%; }
