/* Contact / quote form page */

.page-contact .form { max-width: 760px; }

/* Assurances row under the hero */
.page-contact .quote-assurances {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-md) var(--space-xl);
  justify-content: center;
  list-style: none;
  margin: var(--space-xl) auto 0;
  padding: 0;
  max-width: 640px;
}
@media (max-width: 640px) {
  .page-contact .quote-assurances {
    gap: var(--space-sm) var(--space-md);
    margin-top: var(--space-lg);
  }
  .page-contact .quote-assurances li { font-size: var(--fs-xs); }
  .page-contact .quote-assurances span { width: 24px; height: 24px; font-size: var(--fs-xs); }
}
.page-contact .quote-assurances li {
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
  font-size: var(--fs-sm);
  color: var(--color-ink-soft);
  font-weight: var(--fw-medium);
  margin: 0;
}
.page-contact .quote-assurances span {
  display: inline-flex;
  width: 28px;
  height: 28px;
  align-items: center;
  justify-content: center;
  background: var(--color-accent-soft);
  color: var(--color-accent-ink);
  border-radius: var(--radius-pill);
  font-size: var(--fs-sm);
}

/* Progress bar above the stepper */
.page-contact .step-progress {
  height: 4px;
  background: var(--color-border);
  border-radius: var(--radius-pill);
  overflow: hidden;
  margin-bottom: var(--space-lg);
}
.page-contact .step-progress__fill {
  height: 100%;
  width: 20%;
  background: linear-gradient(90deg, var(--color-accent) 0%, var(--color-accent-bright) 100%);
  transition: width var(--dur-slow) var(--ease);
  border-radius: var(--radius-pill);
}

.page-contact .form__choices--inline { flex-wrap: wrap; }

/* Subject picker chip group spacing */
#subjects-group { gap: var(--space-sm); }

/* Hide submit-error when empty */
.form__submit-error:empty { display: none; }

/* Form card container — warmer backdrop behind the actual fieldset stack. */
.page-contact section.section--tight > .container {
  position: relative;
}
.page-contact .form {
  background: #fff;
  border-radius: var(--radius-lg);
  padding: var(--space-2xl) var(--space-xl);
  box-shadow:
    0 24px 48px -18px rgba(30, 58, 138, 0.18),
    0 2px 4px rgba(30, 58, 138, 0.06),
    inset 0 0 0 1px rgba(30, 58, 138, 0.05);
}
@media (max-width: 640px) {
  .page-contact .form { padding: var(--space-lg); }
}

/* Submit-button pulse — only added on the Review step so the parent has a
   single, unmissable "send it" target. */
.page-contact .btn--primary.is-glow {
  position: relative;
  box-shadow:
    0 0 0 0 rgba(242, 102, 24, 0.55),
    0 8px 22px -6px rgba(242, 102, 24, 0.45);
  animation: btn-glow-pulse 2.4s var(--ease) infinite;
}
@keyframes btn-glow-pulse {
  0%, 100% {
    box-shadow:
      0 0 0 0 rgba(242, 102, 24, 0.55),
      0 8px 22px -6px rgba(242, 102, 24, 0.45);
  }
  50% {
    box-shadow:
      0 0 0 10px rgba(242, 102, 24, 0),
      0 14px 28px -6px rgba(242, 102, 24, 0.6);
  }
}
@media (prefers-reduced-motion: reduce) {
  .page-contact .btn--primary.is-glow { animation: none; }
}
