.gc-public-form,
.gc-public-form *,
.gc-public-form *::before,
.gc-public-form *::after {
  box-sizing: border-box;
}

.gc-public-form {
  margin-left: auto;
  margin-right: auto;
}

.gc-public-form .gc-form-fields {
  display: contents;
}

.gc-public-form .gc-form-page {
  display: contents;
}

.gc-public-form .gc-form-page[hidden] {
  display: none;
}

.gc-form-field {
  min-width: 0;
}

.gc-form-field > label {
  display: block;
  font-weight: 600;
  margin-bottom: 6px;
}

.gc-form-field > label > span,
.gc-form-field legend > span {
  color: #b91c1c;
}

.gc-form-field input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
.gc-form-field select,
.gc-form-field textarea {
  display: block;
  max-width: none;
  width: 100%;
}

.gc-form-field textarea {
  resize: vertical;
}

.gc-form-field fieldset {
  border: 0;
  margin: 0;
  padding: 0;
}

.gc-form-field legend {
  font-weight: 600;
  margin-bottom: 8px;
}

.gc-form-choices {
  display: grid;
  gap: 7px;
}

.gc-form-choices label {
  align-items: center;
  display: flex;
  gap: 7px;
}

.gc-form-address-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gc-form-address-grid label {
  display: grid;
  gap: 5px;
}

.gc-form-address-grid label:first-child,
.gc-form-address-grid label:nth-child(2) {
  grid-column: 1 / -1;
}

.gc-form-address-grid span {
  font-size: .875em;
}

.gc-form-submit {
  border: 0;
  cursor: pointer;
  grid-column: 1 / -1;
}

.gc-form-field .gc-form-submit,
.gc-form-step-button {
  grid-column: auto;
  min-height: 40px;
  width: 100%;
}

.gc-form-step-button {
  cursor: pointer;
}

.gc-form-submit:disabled {
  cursor: wait;
  opacity: .65;
}

.gc-form-html > :first-child {
  margin-top: 0;
}

.gc-form-html > :last-child {
  margin-bottom: 0;
}

.gc-form-progress {
  display: grid;
  gap: 7px;
}

.gc-form-progress span {
  font-size: .875em;
  font-weight: 700;
}

.gc-form-progress div {
  background: #e2e8f0;
  border-radius: 999px;
  height: 8px;
  overflow: hidden;
}

.gc-form-progress i {
  display: block;
  height: 100%;
  transition: width .2s ease;
}

.gc-form-status {
  grid-column: 1 / -1;
  min-height: 1.5em;
}

.gc-form-status.is-success {
  color: #166534;
}

.gc-form-status.is-error {
  color: #b91c1c;
}

.gc-form-honeypot {
  left: -10000px !important;
  opacity: 0 !important;
  pointer-events: none !important;
  position: absolute !important;
}

.gc-form-missing {
  border: 1px dashed #94a3b8;
  color: #64748b;
  padding: 16px;
}

@media (max-width: 640px) {
  .gc-form-field {
    grid-column: 1 / -1 !important;
  }

  .gc-form-address-grid {
    grid-template-columns: 1fr;
  }

  .gc-form-address-grid label {
    grid-column: 1 / -1;
  }
}
