.gao-form {
  --gao-campo-borda: var(--gao-mudo);
  --gao-campo-fundo: var(--gao-cartao-claro);
  --gao-campo-texto: var(--gao-tinta);
  --gao-form-erro: var(--gao-erro);
  --gao-form-sucesso-fundo: color-mix(in srgb, var(--gao-dourado) 12%, var(--gao-cartao-claro));
  width: 100%;
  color: var(--gao-texto);
  font-family: var(--gao-f-texto);
}

.gao-escuro .gao-form,
[data-theme="dark"] .gao-form {
  --gao-campo-borda: var(--gao-mudo-claro);
  --gao-campo-fundo: color-mix(in srgb, var(--gao-noite) 70%, transparent);
  --gao-campo-texto: var(--gao-texto-claro);
  --gao-form-erro: #FF9C8A;
  --gao-form-sucesso-fundo: color-mix(in srgb, var(--gao-dourado) 10%, var(--gao-noite));
}

.gao-form [hidden] {
  display: none !important;
}

.gao-form__form {
  display: grid;
  gap: 22px;
  margin: 0;
}

.gao-form__armadilha {
  position: absolute !important;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.gao-form__campo {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.gao-form__rotulo {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 10px;
  font: 600 15px/1.3 var(--gao-f-texto);
  letter-spacing: .01em;
  color: var(--gao-texto);
}

.gao-form__obrig {
  font-weight: 500;
  font-size: 15px;
  color: var(--gao-texto-mudo);
}

.gao-form__entrada {
  box-sizing: border-box;
  width: 100%;
  min-height: 48px;
  padding: 12px 16px;
  border: var(--gao-linha-w) solid var(--gao-campo-borda);
  border-radius: var(--gao-raio);
  background-color: var(--gao-campo-fundo);
  color: var(--gao-campo-texto);
  font: 400 18px/1.4 var(--gao-f-texto);
  transition: border-color .3s var(--ease), box-shadow .3s var(--ease);
  appearance: none;
  -webkit-appearance: none;
}

.gao-form__entrada::placeholder {
  color: var(--gao-texto-mudo);
  opacity: 1;
}

.gao-form__entrada:hover {
  border-color: var(--gao-dourado);
}

.gao-form__entrada:focus,
.gao-form__entrada:focus-visible {
  outline: 2px solid transparent;
  border-color: var(--gao-foco);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--gao-foco) 45%, transparent);
}

.gao-form__entrada[aria-invalid="true"] {
  border-color: var(--gao-form-erro);
}

.gao-form__entrada[aria-invalid="true"]:focus {
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--gao-form-erro) 40%, transparent);
}

.gao-form__area {
  min-height: 148px;
  resize: vertical;
}

.gao-form__select {
  padding-right: 52px;
  cursor: pointer;
  background-image:
    linear-gradient(45deg, transparent 50%, var(--gao-destaque) 50%),
    linear-gradient(135deg, var(--gao-destaque) 50%, transparent 50%);
  background-position: calc(100% - 26px) 50%, calc(100% - 20px) 50%;
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
}

.gao-form__select option {
  background: var(--gao-cartao-claro);
  color: var(--gao-tinta);
}

.gao-escuro .gao-form__select option,
[data-theme="dark"] .gao-form__select option {
  background: var(--gao-marinho);
  color: var(--gao-texto-claro);
}

.gao-form__dica {
  margin: 0;
  font: 400 15px/1.45 var(--gao-f-texto);
  color: var(--gao-texto-mudo);
}

.gao-form__erro {
  margin: 0;
  font: 600 15px/1.4 var(--gao-f-texto);
  color: var(--gao-form-erro);
}

.gao-form__aviso {
  margin: 0;
  padding: 14px 16px;
  border-left: 3px solid var(--gao-form-erro);
  border-radius: var(--gao-raio);
  background: color-mix(in srgb, var(--gao-form-erro) 12%, transparent);
  font: 500 16px/1.5 var(--gao-f-texto);
  color: var(--gao-texto);
}

.gao-form__campo--aceite {
  margin-top: 4px;
}

.gao-form__aceite {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  min-height: 44px;
  cursor: pointer;
  font: 400 16px/1.5 var(--gao-f-texto);
  color: var(--gao-texto);
}

.gao-form__aceite .gao-link {
  padding-block: 13px;
  font-size: inherit;
  background-origin: content-box;
}

.gao-form__caixa {
  display: grid;
  place-content: center;
  width: 28px;
  height: 28px;
  margin: 0;
  border: var(--gao-linha-w) solid var(--gao-campo-borda);
  border-radius: var(--gao-raio);
  background: var(--gao-campo-fundo);
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  transition: background-color .25s var(--ease), border-color .25s var(--ease), box-shadow .25s var(--ease);
}

.gao-form__caixa::after {
  content: "";
  width: 7px;
  height: 13px;
  margin-top: -2px;
  border: solid var(--gao-noite);
  border-width: 0 2px 2px 0;
  transform: rotate(45deg) scale(0);
  transition: transform .2s var(--ease);
}

.gao-form__caixa:checked {
  background: var(--gao-dourado);
  border-color: var(--gao-dourado);
}

.gao-form__caixa:checked::after {
  transform: rotate(45deg) scale(1);
}

.gao-form__caixa:focus-visible {
  outline: 2px solid transparent;
  border-color: var(--gao-foco);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--gao-foco) 45%, transparent);
}

.gao-form__caixa[aria-invalid="true"] {
  border-color: var(--gao-form-erro);
}

.gao-form__envio {
  margin: 4px 0 0;
}

.gao-form__botao {
  width: 100%;
  min-height: 52px;
}

.gao-form__botao[aria-disabled="true"] {
  cursor: progress;
  opacity: .75;
  transform: none;
}

.gao-form__botao.is-enviando::before {
  content: "";
  width: 16px;
  height: 16px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: gao-form-gira .8s linear infinite;
}

@keyframes gao-form-gira {
  to { transform: rotate(360deg); }
}

.gao-form__sucesso {
  padding: clamp(28px, 4vw, 44px);
  border: var(--gao-linha-w) solid var(--gao-dourado);
  border-radius: var(--gao-raio);
  background: var(--gao-form-sucesso-fundo);
  color: var(--gao-texto);
}

.gao-form__sucesso:focus {
  outline: 2px solid var(--gao-foco);
  outline-offset: 4px;
}

.gao-form__sucesso-selo {
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  margin-bottom: 20px;
  border: var(--gao-linha-w) solid var(--gao-dourado);
  border-radius: 50%;
  color: var(--gao-destaque);
}

.gao-form__sucesso-titulo {
  margin: 0 0 12px;
  font: 600 clamp(28px, 3vw, 36px)/1.15 var(--gao-f-titulo);
  letter-spacing: var(--gao-ls-titulo);
  color: var(--gao-texto);
}

.gao-form__sucesso-texto {
  margin: 0;
  font: 400 18px/1.6 var(--gao-f-texto);
  color: var(--gao-texto);
}

.gao-form__sucesso-acao {
  margin: 24px 0 0;
}

.gao-form-pagina {
  padding-block: var(--gao-sec);
}

.gao-form-pagina .gao-form {
  max-width: 680px;
}

@media (min-width: 721px) {
  .gao-form__botao {
    width: auto;
    min-width: 240px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .gao-form__entrada,
  .gao-form__caixa,
  .gao-form__caixa::after {
    transition: none;
  }

  .gao-form__botao.is-enviando::before {
    animation: none;
  }
}
