.cm-form-wrapper {
  max-width: 640px;
  margin: 2rem 0;
}

.cm-form-wrapper h2 {
  margin-bottom: 1rem;
}

.cm-form-wrapper h3 {
  margin-top: 2rem;
  margin-bottom: 1rem;
}

/* Stack fields properly */
.cm-form-wrapper p {
  margin: 0;
}

/* Fix label/input layout */
.cm-form-wrapper label {
  display: block;
  font-weight: 600;
  margin-top: 1.25rem;
  margin-bottom: 0.25rem;
}

/* Inputs */
.cm-form-wrapper input[type="text"],
.cm-form-wrapper input[type="email"],
.cm-form-wrapper input[type="tel"],
.cm-form-wrapper select {
  width: 100%;
  padding: 0.75rem;
  border: 1px solid #bdbdbd;
  border-radius: 4px;
  font-size: 1rem;
  line-height: 1.5;
}

/* Focus state */
.cm-form-wrapper input:focus {
  outline: 3px solid #002664;
  outline-offset: 0;
  border-color: #002664;
}

/* Submit button */
.cm-form-wrapper input[type="submit"] {
  margin-top: 1.75rem;
  padding: 0.75rem 1.5rem;
  background-color: #002664;
  color: #fff;
  border: none;
  border-radius: 4px;
  font-weight: 600;
  cursor: pointer;
  font-size: 1rem;
}

.cm-form-wrapper input[type="submit"]:hover {
  background-color: #001d4a;
}

/* Responsive */
@media (max-width: 640px) {
  .cm-form-wrapper {
    padding: 0 1rem;
  }
}

/* Required text */
.cm-form-wrapper .indicates-required {
  font-size: 0.875rem;
  margin-bottom: 1rem;
  color: #222;
}

/* Required indicator */
.cm-form-wrapper .asterisk {
  color: #d80d0d;
  margin-left: 0.25rem;
  font-weight: bold;
}