/*
 * Estilos de marca para formularios de Contact Form 7.
 * Todo bajo el selector ".wpcf7" (contenedor que el propio plugin genera),
 * para no afectar a otros formularios del sitio (comentarios, WooCommerce, etc.).
 */

.wpcf7 label {
	color: var(--horizonte-color-secundario);
	display: block;
	font-family: var(--horizonte-font-body);
	font-size: 0.875rem;
	font-weight: 500;
	margin-bottom: 0.5rem;
}

.wpcf7 .wpcf7-form-control-wrap {
	display: block;
	margin-bottom: 0.5rem;
}

/* Campos de texto: input y textarea */
.wpcf7 .wpcf7-form-control.wpcf7-text,
.wpcf7 .wpcf7-form-control.wpcf7-email,
.wpcf7 .wpcf7-form-control.wpcf7-tel,
.wpcf7 .wpcf7-form-control.wpcf7-url,
.wpcf7 .wpcf7-form-control.wpcf7-number,
.wpcf7 .wpcf7-form-control.wpcf7-date,
.wpcf7 .wpcf7-form-control.wpcf7-textarea,
.wpcf7 .wpcf7-form-control.wpcf7-select {
	background-color: var(--horizonte-color-blanco);
	background-position: right 1rem center;
	background-repeat: no-repeat;
	background-size: 1.25rem;
	border: 2px solid var(--horizonte-color-secundario);
	border-radius: var(--horizonte-radius-md);
	box-sizing: border-box;
	color: var(--horizonte-morado-oscuro);
	font-family: var(--horizonte-font-body);
	font-size: 1rem;
	padding: 0.875rem 2.75rem 0.875rem 1rem;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
	width: 100%;
}

.wpcf7 .wpcf7-form-control.wpcf7-text,
.wpcf7 .wpcf7-form-control.wpcf7-email,
.wpcf7 .wpcf7-form-control.wpcf7-tel,
.wpcf7 .wpcf7-form-control.wpcf7-url,
.wpcf7 .wpcf7-form-control.wpcf7-number,
.wpcf7 .wpcf7-form-control.wpcf7-date {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10' fill='none' stroke='%23717171' stroke-width='2'/%3E%3Cline x1='12' y1='7' x2='12' y2='13' stroke='%23717171' stroke-width='2' stroke-linecap='round'/%3E%3Ccircle cx='12' cy='17' r='1.2' fill='%23717171'/%3E%3C/svg%3E");
}

.wpcf7 .wpcf7-form-control.wpcf7-textarea {
	min-height: 9rem;
	resize: vertical;
}

.wpcf7 .wpcf7-form-control.wpcf7-text:focus,
.wpcf7 .wpcf7-form-control.wpcf7-email:focus,
.wpcf7 .wpcf7-form-control.wpcf7-tel:focus,
.wpcf7 .wpcf7-form-control.wpcf7-url:focus,
.wpcf7 .wpcf7-form-control.wpcf7-number:focus,
.wpcf7 .wpcf7-form-control.wpcf7-date:focus,
.wpcf7 .wpcf7-form-control.wpcf7-textarea:focus,
.wpcf7 .wpcf7-form-control.wpcf7-select:focus {
	border-color: var(--horizonte-color-resalto);
	outline: none;
}

/* Estado inválido (validación de Contact Form 7) */
.wpcf7 .wpcf7-form-control.wpcf7-not-valid {
	border-color: var(--horizonte-color-error);
	color: var(--horizonte-color-error);
}

.wpcf7 .wpcf7-form-control.wpcf7-text.wpcf7-not-valid,
.wpcf7 .wpcf7-form-control.wpcf7-email.wpcf7-not-valid,
.wpcf7 .wpcf7-form-control.wpcf7-tel.wpcf7-not-valid,
.wpcf7 .wpcf7-form-control.wpcf7-url.wpcf7-not-valid,
.wpcf7 .wpcf7-form-control.wpcf7-number.wpcf7-not-valid,
.wpcf7 .wpcf7-form-control.wpcf7-date.wpcf7-not-valid {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10' fill='none' stroke='%23D60000' stroke-width='2'/%3E%3Cline x1='12' y1='7' x2='12' y2='13' stroke='%23D60000' stroke-width='2' stroke-linecap='round'/%3E%3Ccircle cx='12' cy='17' r='1.2' fill='%23D60000'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-size: 24px;
	background-position: 92% center;
	border-color: var(--horizonte-color-error);
}

.wpcf7 .wpcf7-not-valid-tip {
	color: var(--horizonte-color-error);
	font-family: var(--horizonte-font-body);
	font-size: 0.8125rem;
	font-weight: 500;
	margin-top: 0.375rem;
}

/* Checkbox, radio y aceptación de términos */
.wpcf7 .wpcf7-list-item {
	margin: 0 0 0.5rem;
}

.wpcf7 .wpcf7-list-item-label {
	color: var(--horizonte-morado-oscuro);
	font-family: var(--horizonte-font-body);
	font-size: 0.9375rem;
	font-weight: 400;
}

.wpcf7 .wpcf7-list-item input[type="checkbox"],
.wpcf7 .wpcf7-list-item input[type="radio"] {
	accent-color: var(--horizonte-color-secundario);
	appearance: none;
	background-color: transparent;
	border: 1px solid white;
	box-sizing: border-box;
	cursor: pointer;
	height: 1.25rem;
	margin: 0;
	vertical-align: middle;
	width: 1.25rem;
	position: relative;
	vertical-align: middle;
	flex-shrink: 0;
}

/* ==========================================
   ESTADOS SELECCIONADOS (:checked)
   ========================================== */

/* Indicador central común */
input[type="radio"]:checked::after,
input[type="checkbox"]:checked::after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 1rem;
  height: 1rem;
  background-color: var(--horizonte-color-secundario);
}

/* Forma del indicador central (opcional si quieres que el radio lleve un punto redondo dentro) */
input[type="radio"]:checked::after {
  border-radius: 50%;
}

input[type="checkbox"]:checked::after {
  border-radius: 0;
}

.wpcf7-form-control .wpcf7-acceptance .wpcf7-list-item-label{
	color: var(--horizonte-color-blanco);
}

.wpcf7 .wpcf7-list-item input[type="checkbox"]:focus-visible,
.wpcf7 .wpcf7-list-item input[type="radio"]:focus-visible {
	border-color: var(--horizonte-color-resalto);
	outline: none;
}

.wpcf7 .wpcf7-form-control.wpcf7-not-valid .wpcf7-list-item input[type="checkbox"],
.wpcf7 .wpcf7-form-control.wpcf7-not-valid .wpcf7-list-item input[type="radio"] {
	border-color: var(--horizonte-color-error);
}

.wpcf7 .wpcf7-form-control.wpcf7-not-valid .wpcf7-list-item-label {
	color: var(--horizonte-color-error);
}

/* Botón de envío */
.wpcf7 input.wpcf7-submit {
	background-color: var(--horizonte-color-secundario);
	border: none;
	border-radius: var(--horizonte-radius-sm);
	color: var(--horizonte-color-blanco);
	cursor: pointer;
	font-family: var(--horizonte-font-body);
	font-size: 1rem;
	font-weight: 400;
	padding: 0.875rem 2.5rem;
	transition: background-color 0.2s ease;
}


.wpcf7 input.wpcf7-submit:disabled {
	background-color: var(--horizonte-color-secundario);
	cursor: not-allowed;
}

.wpcf7 input.wpcf7-submit:hover,
.wpcf7 input.wpcf7-submit:focus-visible {
	background-color: var(--horizonte-color-resalto);
	color: var(--horizonte-color-secundario);
}

/* Mensaje de respuesta (éxito / error del envío) */
.wpcf7 form .wpcf7-response-output {
	border: none;
	border-radius: var(--horizonte-radius-md);
	font-family: var(--horizonte-font-body);
	margin: 1.5rem 0 0;
	padding: 1.25rem 1.5rem 1.25rem 3.5rem;
	position: relative;
	white-space: pre-line;
}

.wpcf7 form.sent .wpcf7-response-output {
	background-color: var(--horizonte-color-secundario);
	color: var(--horizonte-color-blanco);
}

.wpcf7 form.sent .wpcf7-response-output::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10' fill='white'/%3E%3Ccircle cx='8.5' cy='10' r='1.3' fill='%2300403E'/%3E%3Ccircle cx='15.5' cy='10' r='1.3' fill='%2300403E'/%3E%3Cpath d='M7.5 14.5C8.5 16.5 15.5 16.5 16.5 14.5' fill='none' stroke='%2300403E' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	height: 1.75rem;
	left: 1.5rem;
	position: absolute;
	top: 1.25rem;
	width: 1.75rem;
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output {
	background-color: var(--horizonte-gris-1);
	border-left: 4px solid var(--horizonte-color-error);
	color: var(--horizonte-color-error);
	padding-left: 1.5rem;
}
