/* Phase 9F contact-page presentation. Every selector is opt-in under .site-v2. */
.site-v2.site-contact-page {
  min-inline-size: 0;
}

.site-v2 .site-contact-section {
  min-inline-size: 0;
}

.site-v2 .site-contact-layout {
  display: grid;
  gap: clamp(2rem, 1.5rem + 3vw, 5rem);
  align-items: start;
}

.site-v2 .site-contact-details,
.site-v2 .site-contact-form-panel {
  min-inline-size: 0;
}

.site-v2 .site-contact-details {
  display: grid;
  gap: var(--site-space-8);
}

.site-v2 .site-contact-details__group,
.site-v2 .site-contact-social {
  display: grid;
  gap: var(--site-space-4);
  padding-block-start: var(--site-space-6);
  border-block-start: 1px solid var(--site-border);
}

.site-v2 .site-contact-address {
  max-inline-size: var(--site-reading);
  color: var(--site-text-secondary);
  font-style: normal;
  overflow-wrap: anywhere;
}

.site-v2 .site-contact-list {
  display: grid;
  gap: var(--site-space-4);
  margin: 0;
}

.site-v2 .site-contact-list__item {
  display: grid;
  gap: var(--site-space-1);
  min-inline-size: 0;
}

.site-v2 .site-contact-list dt {
  color: var(--site-text-muted);
  font-size: var(--site-text-label);
  font-weight: var(--site-weight-semibold);
  line-height: var(--site-leading-label);
}

.site-v2 .site-contact-list dd {
  min-inline-size: 0;
  margin: 0;
  overflow-wrap: anywhere;
}

.site-v2 .site-contact-social__list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--site-space-2);
  margin: 0;
  padding: 0;
  list-style: none;
}

.site-v2 .site-contact-social__list a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-block-size: var(--site-control-height);
  padding: var(--site-space-2) var(--site-space-4);
  border: 1px solid var(--site-border-control);
  border-radius: var(--site-radius-pill);
  background: var(--site-surface);
  color: var(--site-action);
  font-weight: var(--site-weight-semibold);
  line-height: 1.4;
  text-decoration: none;
}

.site-v2 .site-contact-social__list a:hover {
  border-color: var(--site-action);
  background: var(--site-surface-subtle);
  color: var(--site-action-hover);
}

.site-v2 .site-contact-form-panel {
  padding: clamp(1.25rem, 1rem + 2vw, 3rem);
}

.site-v2 .site-contact-form-panel__header {
  --site-stack-gap: var(--site-space-3);
}

.site-v2 .site-contact-form {
  margin-block-start: var(--site-space-8);
}

.site-v2 .site-contact-form__grid {
  display: grid;
  gap: var(--site-space-6);
}

.site-v2 .site-contact-form__field {
  display: grid;
  align-content: start;
  gap: var(--site-space-2);
  min-inline-size: 0;
}

.site-v2 .site-contact-form__required {
  color: var(--site-text-secondary);
  font-size: var(--site-text-small);
  font-weight: var(--site-weight-regular);
}

.site-v2 .site-contact-form__message {
  min-block-size: 9rem;
}

.site-v2 .site-contact-form__error {
  margin: 0;
  color: var(--site-error);
  font-size: var(--site-text-small);
  font-weight: var(--site-weight-medium);
  line-height: var(--site-leading-small);
}

.site-v2 .site-contact-form__error[hidden],
.site-v2 .site-contact-status[hidden] {
  display: none;
}

.site-v2 .site-contact-form__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--site-space-3);
}

.site-v2 .site-contact-form[aria-busy="true"] .site-field {
  background: var(--site-surface-subtle);
}

.site-v2 .site-contact-status {
  margin-block-end: var(--site-space-6);
  padding: var(--site-space-4);
  border: 1px solid currentColor;
  border-inline-start-width: 4px;
  border-radius: var(--site-radius-small);
  background: var(--site-surface-subtle);
  color: var(--site-text-secondary);
  overflow-wrap: anywhere;
}

.site-v2 .site-contact-status[data-state="sending"] {
  color: var(--site-action);
}

.site-v2 .site-contact-status[data-state="success"] {
  background: var(--site-success-surface);
  color: var(--site-success);
}

.site-v2 .site-contact-status[data-state="error"] {
  background: var(--site-error-surface);
  color: var(--site-error);
}

.site-v2 .site-contact-map-section {
  padding-block-start: 0;
}

.site-v2 .site-contact-map {
  min-inline-size: 0;
  block-size: clamp(18rem, 48vw, 36rem);
  border: 1px solid var(--site-border);
  border-radius: var(--site-radius-surface);
  background: var(--site-surface-subtle);
  box-shadow: var(--site-shadow-surface);
}

.site-v2 .site-contact-map iframe {
  display: block;
  inline-size: 100%;
  block-size: 100%;
  border-radius: var(--site-radius-surface);
}

@media (min-width: 48rem) {
  .site-v2 .site-contact-form__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .site-v2 .site-contact-form__field--full,
  .site-v2 .site-contact-form__actions {
    grid-column: 1 / -1;
  }
}

@media (min-width: 64rem) {
  .site-v2 .site-contact-layout {
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  }
}

@media (forced-colors: active) {
  .site-v2 .site-contact-social__list a,
  .site-v2 .site-contact-status,
  .site-v2 .site-contact-map {
    border: 1px solid CanvasText;
  }
}
