/* VERITEX contact map page
-------------------------------------------------------------- */

.vt-contact-page {
  background: #fff;
}

.vt-contact-map-section {
  padding: clamp(70px, 8vw, 120px) 0 56px;
}

.vt-contact-map-heading {
  max-width: 760px;
  margin-bottom: 34px;
}

.vt-contact-map-heading h1,
.vt-contact-form-intro h2 {
  margin: 8px 0 16px;
  color: var(--vt-navy);
  letter-spacing: -0.03em;
}

.vt-contact-map-heading h1 {
  font-size: clamp(2.35rem, 5vw, 4.4rem);
  line-height: 1.02;
}

.vt-contact-map-heading p,
.vt-contact-form-intro p {
  margin: 0;
  color: var(--vt-muted);
  font-size: 1.05rem;
  line-height: 1.7;
}

.vt-contact-map-shell {
  overflow: hidden;
  border: 1px solid var(--vt-border);
  border-radius: 22px;
  background: #f7f9fa;
}

.vt-contact-map {
  width: 100%;
  height: clamp(420px, 54vw, 640px);
  min-height: 420px;
}

.vt-contact-map-status {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 72px;
  padding: 18px 24px;
  border-top: 1px solid var(--vt-border);
  background: #fff;
}

.vt-contact-map-status-label {
  color: var(--vt-muted);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.vt-contact-map-status strong {
  color: var(--vt-navy);
  text-align: right;
}

.vt-contact-form-section {
  padding: 56px 0 clamp(80px, 9vw, 130px);
  scroll-margin-top: 100px;
}

.vt-contact-form-section[hidden] {
  display: none !important;
}

.vt-contact-form-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.7fr) minmax(0, 1.3fr);
  gap: clamp(36px, 7vw, 100px);
  align-items: start;
}

.vt-contact-form-intro {
  position: sticky;
  top: 120px;
}

.vt-contact-form-intro h2 {
  font-size: clamp(2rem, 4vw, 3.2rem);
  line-height: 1.08;
}

.vt-contact-form-card {
  min-width: 0;
  padding: clamp(24px, 4vw, 42px);
  border: 1px solid var(--vt-border);
  border-radius: 22px;
  background: #fff;
}

.vt-contact-form-card .wpforms-container {
  margin: 0;
}

.vt-contact-form-card .wpforms-field {
  padding-top: 8px;
  padding-bottom: 8px;
}

.vt-contact-form-card .wpforms-field input:not([type="checkbox"]):not([type="radio"]),
.vt-contact-form-card .wpforms-field textarea,
.vt-contact-form-card .wpforms-field select {
  max-width: none;
  border-radius: 8px;
}

.vt-contact-form-card .wpforms-submit-container {
  padding-top: 18px;
}

.vt-contact-form-card button[type="submit"] {
  min-height: 48px;
  padding: 12px 26px;
  border: 0;
  border-radius: 999px;
  background: var(--vt-navy);
  color: #fff;
  font-weight: 800;
}

.vt-contact-form-card button[type="submit"]:hover,
.vt-contact-form-card button[type="submit"]:focus {
  background: var(--vt-teal);
  color: #fff;
}

/* Office is a normal WPForms Single Line Text field (#6) hidden with d-none. */
#wpforms-30-field_6-container,
#wpforms-30-field-6-container {
  display: none !important;
}

.vt-contact-form-unavailable {
  margin: 0;
  color: var(--vt-muted);
}

@media (max-width: 900px) {
  .vt-contact-form-layout {
    grid-template-columns: 1fr;
  }

  .vt-contact-form-intro {
    position: static;
  }
}

@media (max-width: 640px) {
  .vt-contact-map-section {
    padding-top: 52px;
  }

  .vt-contact-map {
    height: 440px;
    min-height: 440px;
  }

  .vt-contact-map-status {
    align-items: flex-start;
    flex-direction: column;
    gap: 6px;
  }

  .vt-contact-map-status strong {
    text-align: left;
  }

  .vt-contact-form-card {
    padding: 20px;
  }
}

/* Temporary contact-email debug output.
   The element is not rendered at all when debug.contact_emails is false. */
.vt-contact-office-email {
  display: inline-block;
  margin: -6px 0 16px;
  color: var(--vt-teal);
  font-size: 1rem;
  font-weight: 600;
  text-decoration: none;
}

.vt-contact-office-email:hover,
.vt-contact-office-email:focus {
  color: var(--vt-navy);
  text-decoration: underline;
}
