.info-page--contact {
  position: relative;
  padding-bottom: clamp(5rem, 8vw, 8rem);
}

.info-page--contact .card {
  height: auto;
}

.info-page--contact .row.g-4 {
  align-items: flex-start;
}

.info-page--contact .card-body > h2.h5 {
  margin-bottom: 1.5rem !important;
  color: var(--color-text-primary) !important;
  font-size: clamp(1.15rem, 1.5vw, 1.35rem);
  line-height: 1.2;
}

.info-page--contact .social-cta-btn {
  min-height: 3rem;
}

.info-page--contact .info-page__header {
  margin-bottom: clamp(2rem, 5vw, 4rem);
}

.info-page--contact .contact-form-card-body {
  position: relative;
}

.info-page--contact .gps-overlay {
  position: absolute;
  inset: 0;
  z-index: 10;
  display: none;
  align-items: center;
  justify-content: center;
  border-radius: inherit;
  background: var(--color-overlay-black-darker);
}

.info-page--contact .gps-overlay.is-visible {
  display: flex;
}

.info-page--contact .gps-overlay__content {
  max-width: 320px;
  padding: 2rem;
  text-align: center;
}

.info-page--contact .gps-overlay__icon {
  display: block;
  margin-bottom: 1rem;
  font-size: 2.5rem;
  color: #ef4444 !important;
}

.info-page--contact .gps-overlay__title {
  margin-bottom: .5rem;
  color: var(--color-text-primary);
}

html[data-theme="light"] .info-page--contact .gps-overlay__icon {
  color: #b91c1c !important;
}

.info-page--contact .gps-overlay .btn-warning {
  background: #dc2626 !important;
  border-color: #dc2626 !important;
  color: #fff !important;
}

.info-page--contact .gps-overlay .btn-warning:hover,
.info-page--contact .gps-overlay .btn-warning:focus-visible {
  background: #b91c1c !important;
  border-color: #b91c1c !important;
  color: #fff !important;
}

html[data-theme="light"] .info-page--contact .gps-overlay .btn-warning {
  background: #b91c1c !important;
  border-color: #b91c1c !important;
}

html[data-theme="light"] .info-page--contact .gps-overlay .btn-warning:hover,
html[data-theme="light"] .info-page--contact .gps-overlay .btn-warning:focus-visible,
html[data-theme="light"] .info-page--contact .gps-hint {
  color: #991b1b;
}

html[data-theme="light"] .info-page--contact .gps-overlay .btn-warning:hover,
html[data-theme="light"] .info-page--contact .gps-overlay .btn-warning:focus-visible {
  background: #991b1b !important;
  border-color: #991b1b !important;
  color: #fff !important;
}

.info-page--contact .gps-overlay__copy {
  margin-bottom: 1.5rem;
  color: var(--color-text-muted);
  font-size: .9rem;
}

.info-page--contact .gps-hint {
  margin-top: .75rem;
  color: #f87171;
  font-size: .78rem;
}

.info-page--contact .captcha-refresh-btn.is-spinning {
  animation: contact-captcha-spin .5s ease;
}

.info-page--contact .captcha-shake {
  animation: contact-captcha-shake .5s ease;
}

@keyframes contact-captcha-spin {
  to { transform: rotate(360deg); }
}

@keyframes contact-captcha-shake {
  0%, 100% { transform: translateX(0); }
  20% { transform: translateX(-8px); }
  40% { transform: translateX(8px); }
  60% { transform: translateX(-6px); }
  80% { transform: translateX(6px); }
}

.info-page--experience .experience-links {
  max-width: 760px;
  line-height: 1.8;
}

@media (prefers-reduced-motion: reduce) {
  .info-page--contact .captcha-refresh-btn.is-spinning,
  .info-page--contact .captcha-shake { animation: none; }
}
