.contact-hero {
  background:
    linear-gradient(135deg, rgba(13, 125, 150, 0.08), rgba(255, 255, 255, 0) 44%),
    var(--color-surface-container-low, #f6f9fc);
}

.contact-page section[id],
.contact-page #contact-form { scroll-margin-top: 7rem; }

.contact-hero {
  min-height: clamp(34rem, 68vh, 48rem);
  display: flex;
  align-items: center;
}

.contact-page .contact-card,
.contact-page .contact-form-shell {
  border-radius: 1.25rem;
}

.contact-card,
.contact-form-shell {
  min-height: 100%;
  box-shadow: 0 16px 46px rgba(15, 23, 42, 0.07);
}

.contact-card a,
.contact-map-link,
.contact-submit {
  transition: border-color 160ms ease, background-color 160ms ease, color 160ms ease, box-shadow 160ms ease;
}

.contact-map-link,
.contact-submit {
  min-height: 3.25rem;
  line-height: 1.2;
}

.contact-form-shell input,
.contact-form-shell textarea {
  min-height: 3.15rem;
}

.contact-form-shell input[aria-invalid="true"],
.contact-form-shell textarea[aria-invalid="true"] {
  border-color: #b42318;
  box-shadow: 0 0 0 1px #b42318;
}

.contact-form-shell input::placeholder,
.contact-form-shell textarea::placeholder { color: #64748b; opacity: 1; }

.contact-card a:focus-visible,
.contact-map-link:focus-visible,
.contact-submit:focus-visible,
.contact-form-shell input:focus-visible,
.contact-form-shell textarea:focus-visible {
  outline: 3px solid rgba(13, 125, 150, 0.28);
  outline-offset: 3px;
}

.contact-form-shell textarea {
  resize: vertical;
}

@media (max-width: 767px) {
  .contact-hero { min-height: 40rem; align-items: flex-end; }

  .contact-card,
  .contact-form-shell {
    border-radius: 1rem;
    padding: 1.25rem;
  }

  .contact-page .contact-map-link,
  .contact-page .contact-form-shell button,
  .contact-page a[href*="consultation_global"] {
    width: 100%;
    justify-content: center;
    text-align: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .contact-card a,
  .contact-map-link,
  .contact-submit {
    transition: none;
  }

  .contact-page .contact-card,
  .contact-page .contact-form-shell,
  .contact-page a,
  .contact-page button {
    transition: none;
  }
}
