/* ===== CTA styling (scoped) ===== */

.msf {
  --sig: var(--sig, 11,98,153);
}

.msf .card-cta {
  border: 1px solid rgba(var(--sig), .25);
  border-radius: 1rem;
  box-shadow: 0 1.25rem 2.5rem rgba(0,0,0,.08);
  overflow: hidden;
  background: radial-gradient(1200px 600px at -10% -20%, rgba(var(--sig), .10), transparent 60%), linear-gradient(180deg, rgba(var(--sig), .06), rgba(var(--sig), .02));
}

.msf .cta-header {
  background: rgb(var(--sig));
  color: #fff;
  padding: 1rem 1.25rem;
}

.msf .cta-header .lead {
  opacity: .9;
}

.msf .progress {
  height: .75rem;
  background: rgba(255,255,255,.35);
}

.msf .progress-bar {
  background: #fff;
  color: #000;
}

.msf .cta-body {
  padding: 1.25rem;
}

@media (min-width: 768px) {
  .msf .cta-body {
    padding: 1.5rem 1.5rem 1.25rem;
  }
}

/* Form controls */

.msf .form-label {
  font-weight: 600;
}

.msf .form-control, .msf .form-select {
  border-color: rgba(var(--sig), .35);
}

.msf .form-control:focus, .msf .form-select:focus {
  border-color: rgb(var(--sig));
  box-shadow: 0 0 0 .2rem rgba(var(--sig), .25);
}

/* Buttons */

.msf .btn-primary, .msf .btn-success {
  background-color: rgb(var(--sig));
  border-color: rgb(var(--sig));
}

.msf .btn-primary:hover, .msf .btn-success:hover {
  background-color: rgba(var(--sig), .9);
  border-color: rgba(var(--sig), .9);
}

.msf .btn-outline-primary {
  --bs-btn-color: rgb(var(--sig));
  --bs-btn-border-color: rgba(var(--sig), .6);
  --bs-btn-hover-bg: rgba(var(--sig), .08);
  --bs-btn-hover-border-color: rgb(var(--sig));
  --bs-btn-active-bg: rgb(var(--sig));
  --bs-btn-active-border-color: rgb(var(--sig));
}

.msf .btn-check:checked + .btn-outline-primary {
  color: #fff;
}

.msf .btn[disabled] {
  opacity: .65;
  cursor: not-allowed;
}

/* Validation states */

.msf .form-control.is-invalid, .msf .form-select.is-invalid {
  border-color: #dc3545 !important;
  box-shadow: 0 0 0 .2rem rgba(220,53,69,.25) !important;
}

.msf .form-control.is-valid, .msf .form-select.is-valid {
  border-color: #198754 !important;
  box-shadow: 0 0 0 .2rem rgba(25,135,84,.25) !important;
}

.msf .btn-check.is-invalid + .btn-outline-primary {
  border-color: #dc3545 !important;
  box-shadow: 0 0 0 .2rem rgba(220,53,69,.25) !important;
}

.msf .btn-check.is-valid + .btn-outline-primary {
  border-color: #198754 !important;
  box-shadow: 0 0 0 .2rem rgba(25,135,84,.25) !important;
}

/* Section show/hide animation */

.msf [data-section] {
  transition: opacity .2s ease, transform .2s ease;
}

.msf [data-section].is-hidden {
  display: none !important;
  opacity: 0;
  transform: translateY(-4px);
}

/* Hide section separators once JS has initialised */

.msf.msf-js hr, #bb-form-component.msf-js hr {
  display: none !important;
}

