/* =========================
   INPUTS BASE
========================= */
.form-opea input,
.form-opea select,
.form-opea textarea {
  border: 1px solid #ccc !important;
  outline: none !important;
  transition: all 0.2s ease !important;
}

.form-opea textarea {
  resize: none;
  height: 120px !important;
}

/* placeholder */
.form-opea ::placeholder {
  color: #999 !important;
  font-size: 14px !important;
}

/* hover */
.form-opea input:hover,
.form-opea select:hover,
.form-opea textarea:hover {
  border-color: #999 !important;
}

/* focus */
.form-opea input:focus,
.form-opea select:focus,
.form-opea textarea:focus {
  border-color: #000 !important;
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1) !important;
}

/* =========================
   SELECT CUSTOM
========================= */
/* remove seta nativa */
.form-opea select {
  appearance: none !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
}

/* seta custom */
.form-opea select {
  background-image: url("data:image/svg+xml;utf8,<svg viewBox='0 0 10 6' xmlns='http://www.w3.org/2000/svg'><path d='M1 1l4 4 4-4' stroke='%23000' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat: no-repeat;
  background-position: right 10px center;
  background-size: 10px;
}

/* =========================
   RESPONSE MESSAGES (CF7)
========================= */
.wpcf7 form .wpcf7-response-output {
  border: none !important;
  border-radius: 1rem !important;
  margin: 1rem 0 !important;
  padding: 1rem 2rem !important;
  font-size: 14px !important;
}

/* erro + spam */
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output {
  background: #ffe5e5 !important;
  color: #b30000 !important;
  border: none !important;
}

/* sucesso */
.wpcf7 form.sent .wpcf7-response-output {
  background: #e6f7ec !important;
  color: #1a7f37 !important;
}

/* info (unaccepted) */
.wpcf7 form.unaccepted .wpcf7-response-output {
  background: #e7f3ff !important;
  color: #0b5ed7 !important;
}

/* =========================
   VALIDATION
========================= */
/* mensagem de erro */
.wpcf7-not-valid-tip {
  display: block !important;
  position: static !important;
  margin-top: 4px !important;
}

/* =========================
   CHECKBOX (ACCEPTANCE)
========================= */
/* container */
.form-opea .wpcf7-acceptance {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}

/* estrutura */
.form-opea .wpcf7-acceptance .wpcf7-list-item {
  margin: 0 !important;
}

.form-opea .wpcf7-acceptance .wpcf7-list-item > label {
  display: flex;
}

/* input base */
.form-opea .wpcf7-acceptance input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  width: 18px;
  height: 18px;
  margin-top: 2px;
  border: 1px solid #ccc;
  border-radius: 4px;
  background: #fff;
  cursor: pointer;
  position: relative;
  transition: all 0.2s ease;
  aspect-ratio: 1/1;
}

/* hover */
.form-opea .wpcf7-acceptance input[type="checkbox"]:hover {
  border-color: #999;
}

/* checked */
.form-opea .wpcf7-acceptance input[type="checkbox"]:checked {
  background: #2b051b;
  border-color: #2b051b;
}

/* icon */
.form-opea .wpcf7-acceptance input[type="checkbox"]:checked::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 4px;
  height: 8px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: translate(-50%, -60%) rotate(45deg);
}

/* texto */
.form-opea .wpcf7-acceptance .wpcf7-list-item-label {
  margin-top: 2px;
  font-size: 16px;
  line-height: 1.4;
}

/* erro checkbox */
.form-opea .wpcf7-not-valid[type="checkbox"] {
  border-color: #b30000;
}

.wpcf7 form.unaccepted .wpcf7-list-item-label {
  color: #b30000 !important;
}

.wpcf7 form.unaccepted input[type="checkbox"] {
  border-color: #b30000 !important;
}

/* =========================
   RADIOS GROUP
========================= */
.radios-group {
  display: flex;
  flex-direction: row;
  gap: 8px;
  row-gap: 16px;
  flex-wrap: wrap;
}

.radios-group > span {
  position: relative;
  display: inline-block;
  cursor: pointer;
  margin: 0;
}

/* input invisível */
.radios-group > span input[type="radio"] {
  position: absolute;
  width: 100%;
  height: 100%;
  opacity: 0;
  z-index: 2;
  cursor: pointer;
}

/* visual */
.radios-group > span span {
  border-radius: 50px;
  z-index: 1;
  color: #1e1e1e;
  background-color: #ffffff;
  padding: 6px 16px;
  width: 100%;
  text-align: center;
  font-weight: 500;
  transition: all 0.2s;
}

/* checked */
.radios-group > span input[type="radio"]:checked ~ span {
  color: #ffffff;
  background-color: #3d0727;
}

/* hover */
.radios-group > span:hover span {
  border-color: #999;
}
