.contact-page {
  padding-bottom: 6rem;
}

.contact-page-header {
  padding: 1rem 0 clamp(4rem, 7vw, 6rem);
}

.contact-page-header h1 {
  margin: 0;
  font-size: clamp(3.25rem, 7vw, 6rem);
  line-height: .95;
}

.contact-page-header .reach-copy {
  max-width: 44rem;
  margin-top: 1.25rem;
}

.contact-section-heading { max-width: 48rem; margin-bottom: 2rem; }
.contact-section-heading h2 { margin: .25rem 0 .75rem; }
.contact-overview-list, .contact-profile-list { display: flex; flex-wrap: wrap; gap: 1rem; }

.contact-overview-card {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  flex: 1 1 min(100%, 22rem);
  padding: clamp(1.25rem, 3vw, 2rem);
}

.contact-overview-card > i { font-size: 1.5rem; color: var(--theme-accent); }
.contact-overview-card h3, .contact-profile-card h3 { margin: 0 0 .5rem; }
.contact-block-content { color: var(--theme-text-muted); white-space: normal; }
.contact-block-content > :last-child { margin-bottom: 0; }
.contact-block-content ul, .contact-block-content ol { padding-left: 1.35rem; }
.contact-block-content a { color: inherit; text-decoration: underline; text-underline-offset: .15em; }
.contact-action-link { display: inline-flex; align-items: center; gap: .45rem; margin-top: 1rem; font-weight: 600; color: var(--theme-text); }
.contact-social-links { display: flex; flex-wrap: wrap; gap: .75rem 1.25rem; }

.contact-profile-card {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  flex: 1 1 min(100%, 25rem);
  padding: 1.25rem;
}

.contact-profile-photo {
  width: 7rem;
  height: 7rem;
  border-radius: 50%;
  overflow: hidden;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--theme-surface-muted);
  color: var(--theme-text);
  font-size: 1.5rem;
  font-weight: 700;
}

.contact-profile-photo img { width: 100%; height: 100%; object-fit: cover; }
.contact-profile-title { margin: 0; font-weight: 600; }
.contact-profile-department { margin: .2rem 0 0; color: var(--theme-text-muted); }
.contact-empty { color: var(--theme-text-muted); }

.contact-wrap {
  padding: clamp(1.5rem, 4vw, 3rem);
  border: 1px solid var(--theme-border, rgba(15, 23, 42, .12));
  background: var(--theme-surface, var(--bs-body-bg, #fff));
  box-shadow: 0 18px 45px rgba(15, 23, 42, .10);
}

/* Contact page-specific styles. Shared form styles live in /css/reach/forms.css. */

.contact-state-field {
  flex: 0 1 230px;
  width: 100%;
}

.contact-optional-toggle {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--theme-text);
  padding: 0;
  font-weight: 600;
  text-align: left;
}

.contact-optional-toggle i {
  transition: transform 0.2s ease;
}

.contact-optional-toggle[aria-expanded="true"] i {
  transform: rotate(180deg);
}

.contact-option-group {
  border: 0;
  padding: 0;
  margin: 0;
}

.contact-radio-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem 1.35rem;
}

.contact-radio-list .form-check {
  margin: 0;
}

.contact-submit-btn {
  border-radius: var(--theme-radius-pill);
  font-weight: 600;
}

.contact-honeypot {
  position: absolute !important;
  left: -10000px !important;
  top: auto !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

.contact-turnstile:empty {
  display: none;
}

.contact-form.is-submitting,
.contact-form.is-submitting #submitButton {
  pointer-events: none;
}

@media (max-width: 767.98px) {
  .contact-profile-card { align-items: flex-start; }
  .contact-profile-photo { width: 5rem; height: 5rem; }
  .contact-state-field {
    flex-basis: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  .contact-action-link, .contact-optional-toggle i { transition: none; }
}
