/* =========================================================
   Tau CF7 Salesforce
   Formulario de programas
   ========================================================= */
/* ---------------------------------------------------------
   Layout
   --------------------------------------------------------- */
.cf7-program-form {
	/* Adapta los textos del formulario al contexto visual de la landing.
	 * En páginas claras heredará texto oscuro; en fondos oscuros, texto claro. */
	color: inherit;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 14px;
	row-gap: 10px;
	width: 100%;
}
.cf7-program-form .form-field {
	margin: 0;
	min-width: 0;
}
/*
 * CF7/WordPress puede envolver el contenido de un campo en <p> y convertir
 * el salto entre label y control en <br>. Neutralizamos solo ese marcado
 * automático; el espaciado real lo controla el margin del label.
 */
.cf7-program-form .form-field > p {
	margin: 0;
}
.cf7-program-form .form-field > p > br {
	display: none;
}
.cf7-program-form .wpcf7-form-control-wrap {
	display: block;
	width: 100%;
	min-width: 0;
	margin-bottom: 0;
}
/* ---------------------------------------------------------
   Etiquetas
   --------------------------------------------------------- */
/*
 * El tema de INCAE aplica opacity a algunos textos del formulario.
 * La neutralizamos solo dentro de nuestro CF7.
 */
.cf7-program-form .form-field label,
.cf7-program-form .cf7-personalized-evaluation > p:first-child,
.cf7-program-form .cf7-consent > p:first-child,
.cf7-program-form .wpcf7-list-item,
.cf7-program-form .wpcf7-list-item label,
.cf7-program-form .wpcf7-list-item-label,
.cf7-program-form .form-privacy {
	opacity: 1 !important;
}
.cf7-program-form .form-field label {
	display: block;
	margin: 0 0 7px;
	color: inherit;
	font-size: 15px;
	font-weight: 400;
	line-height: 1.25;
	/* Evita mayúsculas forzadas por el tema. */
	text-transform: none !important;
}
/* ---------------------------------------------------------
   Inputs y selects
   --------------------------------------------------------- */
.cf7-program-form input[type="url"],
.cf7-program-form input[type="text"],
.cf7-program-form input[type="email"],
.cf7-program-form input[type="tel"],
.cf7-program-form input[type="date"],
.cf7-program-form select {
	box-sizing: border-box;
	width: 100%;
	min-width: 0;
	    min-height: 44px;
    max-height: 44px;
	margin: 0;
	padding: 10px 14px;
	color: #4a4a4a;
	background: #ffffff;
	border: 1px solid #8a94a6;
	border-radius: 9px;
	outline: none;
	opacity: 1;
	font-family: inherit;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.4;
	transition:
		border-color 0.2s ease,
		box-shadow 0.2s ease;
}
.cf7-program-form input[type="url"]:focus,
.cf7-program-form input[type="text"]:focus,
.cf7-program-form input[type="email"]:focus,
.cf7-program-form input[type="tel"]:focus,
.cf7-program-form input[type="date"]:focus,
.cf7-program-form select:focus {
	border-color: #2f6eb4;
	box-shadow: 0 0 0 3px rgba(47, 110, 180, 0.20);
}
.cf7-program-form input::placeholder {
	color: #6f7785;
	opacity: 1;
}
.cf7-program-form select {
	cursor: pointer;
}
.cf7-program-form input[type="url"],
.cf7-program-form input[type="text"],
.cf7-program-form input[type="email"],
.cf7-program-form input[type="tel"],
.cf7-program-form input[type="date"],
.cf7-program-form select {
	opacity: 1 !important;
}
/* ---------------------------------------------------------
   Evaluación personalizada y consentimiento
   --------------------------------------------------------- */
.cf7-program-form .cf7-personalized-evaluation,
.cf7-program-form .cf7-consent {
	grid-column: 1 / -1;
	margin: 0;
}
.cf7-program-form .cf7-personalized-evaluation > p:first-child,
.cf7-program-form .cf7-consent > p:first-child {
	margin: 0 0 8px;
	color: inherit;
	font-size: 14px;
	text-align: left;
	font-weight: 400 !important;
	line-height: 1.35;
	text-transform: none !important;
}
/* ---------------------------------------------------------
   Radios
   --------------------------------------------------------- */
.cf7-program-form .wpcf7-radio {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.cf7-program-form .wpcf7-list-item {
	display: block;
	margin: 0;
}
.cf7-program-form .wpcf7-list-item label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 32px;
	margin: 0;
	cursor: pointer;
}
.cf7-program-form input[type="radio"] {
	width: 20px;
	height: 20px;
	margin: 0;
	flex: 0 0 20px;
	accent-color: #2f6eb4;
}
.cf7-program-form input[type="radio"]:focus-visible {
	outline: 3px solid rgba(47, 110, 180, 0.35);
	outline-offset: 3px;
}
.cf7-program-form .wpcf7-list-item-label {
	color: inherit;
	font-size: 14px;
	line-height: 1.4;
	text-transform: none !important;
}
/* ---------------------------------------------------------
   Texto de privacidad
   --------------------------------------------------------- */
.cf7-program-form .form-privacy {
	margin: 13px 0 0;
	max-width: 100%;
	color: inherit;
	font-size: 14px;
	line-height: 1.5;
	text-transform: none !important;
	font-weight: 400;
}
/* ---------------------------------------------------------
   Botón
   --------------------------------------------------------- */
.cf7-program-form .wpcf7-submit {
	grid-column: 1 / -1;
	justify-self: center;
	width: auto;
	min-width: 100px;
	min-height: 44px;
	margin-top: 8px;
	padding: 10px 24px;
	color: #ffffff;
	background: #2f6eb4;
	border: 0;
	border-radius: 10px;
	font-family: inherit;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.4;
	text-transform: none !important;
	cursor: pointer;
	transition:
		background-color 0.2s ease,
		box-shadow 0.2s ease;
}
.cf7-program-form .wpcf7-submit:hover {
	background: #285f9d;
}
.cf7-program-form .wpcf7-submit:focus-visible {
	outline: 3px solid rgba(47, 110, 180, 0.35);
	outline-offset: 3px;
}
.cf7-program-form .wpcf7-submit:disabled {
	color: #ffffff;
	background: #4f75a3;
	opacity: 1;
	cursor: wait;
}
/* ---------------------------------------------------------
   Validación
   --------------------------------------------------------- */
.cf7-program-form .wpcf7-not-valid {
	border-color: #b42318;
}
.cf7-program-form .wpcf7-not-valid-tip {
	display: block;
	margin-top: 5px;
	color: #b42318;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.4;
}
/* ---------------------------------------------------------
   Mensaje final de CF7
   Solo para formularios que contienen .cf7-program-form
   --------------------------------------------------------- */
.wpcf7 form:has(.cf7-program-form) .wpcf7-response-output {
	margin: 20px 0 0;
	padding: 12px 14px;
	border-radius: 8px;
}
/* =========================================================
   Teléfono internacional - intl-tel-input v29
   ========================================================= */
.cf7-program-form .iti {
	display: block;
	width: 100%;
	min-width: 0;
}
.cf7-program-form .iti input[type="tel"] {
	width: 100%;
	min-width: 0;
}
.wpcf7 input[type=url]::-webkit-input-placeholder,
.cf7-program-form .iti input[type="url"]::placeholder,
.cf7-program-form .iti input[type="tel"]::placeholder {
	font-size: 14px !important;
	line-height: 1.4;
	color: #4a4a4a;
}
/* Botón de país */
.cf7-program-form .iti__selected-country {
	color: #4a4a4a;
}
.cf7-program-form .iti__selected-country-primary {
	padding-left: 12px;
	padding-right: 8px;
}
.cf7-program-form .iti__selected-dial-code {
	color: #4a4a4a;
}
/* ---------------------------------------------------------
   Selector de países
   Se añade a body mediante dropdownParent
   --------------------------------------------------------- */
.iti__country-selector {
	z-index: 99999;
	max-width: calc(100vw - 24px);
	color: #333333;
	background: #ffffff;
	border: 1px solid #8a94a6;
	border-radius: 8px;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.16);
	overflow: hidden;
}
/* Buscador interno */
.iti__search-input-wrapper {
	position: relative;
}
.iti__search-input {
	box-sizing: border-box !important;
	display: block;
	width: 100% !important;
	height: 42px !important;
	min-height: 42px !important;
	margin: 0 !important;
	padding: 8px 12px 8px 42px !important;
	color: #333333 !important;
	background: #ffffff !important;
	border: 0 !important;
	border-bottom: 1px solid #8a94a6 !important;
	border-radius: 0 !important;
	font-family: inherit !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	line-height: 1.4 !important;
	opacity: 1 !important;
	outline: none !important;
}
.iti__search-input::placeholder {
	font-size: 14px !important;
	line-height: 1.4;
}
.iti__search-input:focus {
	border-bottom-color: #2f6eb4 !important;
	box-shadow: inset 0 -2px 0 #2f6eb4 !important;
}
.iti__search-icon {
	position: absolute;
	left: 14px;
	top: 50%;
	transform: translateY(-50%);
	pointer-events: none;
}
/* Lista con scroll propio */
.iti__country-list {
	max-height: 260px !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow-y: auto !important;
	overflow-x: hidden !important;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
}
/* Países */
.iti__country {
	min-height: 42px;
	padding: 8px 12px;
	color: #333333;
	background: #ffffff;
	font-family: inherit;
	font-size: 14px;
	line-height: 1.4;
	cursor: pointer;
}
.iti__country:hover,
.iti__country.iti__highlight {
	background: #eef4fb;
}
.iti__country-name {
	color: #333333;
}
.iti__dial-code {
	color: #667085;
}
/* =========================================================
   Estado de envío accesible
   ========================================================= */
.tau-cf7-sr-status {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
	border: 0 !important;
}
/* =========================================================
   Corrección de opacidad aplicada por otros estilos del sitio
   La limitamos a páginas que contienen nuestro formulario.
   ========================================================= */
.wpcf7:has(.cf7-program-form),
.wpcf7:has(.cf7-program-form) form,
.cf7-program-form {
	opacity: 1 !important;
}
/* =========================================================
   Responsive móvil
   ========================================================= */
@media (max-width: 767px) {
	.cf7-program-form {
		grid-template-columns: 1fr;
		column-gap: 0;
		row-gap: 18px;
	}
	.cf7-program-form .cf7-personalized-evaluation,
	.cf7-program-form .cf7-consent,
	.cf7-program-form .wpcf7-submit {
		grid-column: 1;
	}
	/* Etiquetas */
	.cf7-program-form .form-field label {
		margin-bottom: 6px !important;
		font-size: 14px !important;
		line-height: 1.3 !important;
		text-transform: none !important;
	}
	/* Inputs y selects
	   !important aquí es intencionado:
	   neutraliza reglas responsive del tema de INCAE. */
	.cf7-program-form input[type="url"],
	.cf7-program-form input[type="text"],
	.cf7-program-form input[type="email"],
	.cf7-program-form input[type="date"],
	.cf7-program-form select {
		height: 52px !important;
		min-height: 52px !important;
		padding: 10px 14px !important;
		font-size: 14px !important;
		line-height: 1.4 !important;
		border-radius: 9px !important;
	}
	/* Preguntas */
	.cf7-program-form .cf7-personalized-evaluation > p:first-child,
	.cf7-program-form .cf7-consent > p:first-child {
		margin-bottom: 8px !important;
		font-size: 14px !important;
		line-height: 1.4 !important;
		text-transform: none !important;
	}
	/* Radios */
	.cf7-program-form .wpcf7-radio {
		gap: 4px;
	}
	.cf7-program-form .wpcf7-list-item label {
		min-height: 44px;
		padding: 4px 0;
		gap: 10px;
	}
	.cf7-program-form input[type="radio"] {
		width: 20px;
		height: 20px;
		flex-basis: 20px;
	}
	.cf7-program-form .wpcf7-list-item-label {
		font-size: 14px !important;
		line-height: 1.4 !important;
		text-transform: none !important;
	}
	/* Privacidad */
	.cf7-program-form .form-privacy {
		margin-top: 10px !important;
		font-size: 14px !important;
		line-height: 1.5 !important;
		text-transform: none !important;
	}
	/* Teléfono
	   No sobrescribimos padding-left / padding-right:
	   intl-tel-input los calcula para dejar sitio a
	   bandera + prefijo internacional. */
	.cf7-program-form .iti {
		min-height: 52px;
	}
	.cf7-program-form .iti input[type="tel"] {
		height: 52px !important;
		min-height: 52px !important;
		/* Solo padding vertical. El horizontal lo gestiona intl-tel-input. */
		padding-top: 10px !important;
		padding-bottom: 10px !important;
		font-size: 14px !important;
		line-height: 1.4 !important;
		border-radius: 9px !important;
	}
	.cf7-program-form .iti input[type="url"]::placeholder,
	.cf7-program-form .iti input[type="tel"]::placeholder,
	.cf7-program-form .iti__selected-dial-code {
		font-size: 14px !important;
	}
	.cf7-program-form .iti__selected-country {
		min-height: 52px;
		opacity: 1 !important;
	}
	/* Selector de países */
	.iti__country-selector {
		max-width: calc(100vw - 24px);
	}
	.iti__country-list {
		max-height: 50vh !important;
	}
	/* Botón */
	.cf7-program-form .wpcf7-submit {
		width: auto !important;
		min-width: 110px !important;
		max-width: 100% !important;
		height: 48px !important;
		min-height: 48px !important;
		margin-top: 6px !important;
		padding: 10px 24px !important;
		font-size: 14px !important;
		line-height: 1.4 !important;
		border-radius: 10px !important;
		text-transform: none !important;
	}
}
/* =========================================================
   Preferencia de movimiento reducido
   ========================================================= */
@media (prefers-reduced-motion: reduce) {
	.cf7-program-form input,
	.cf7-program-form select,
	.cf7-program-form .wpcf7-submit {
		transition: none !important;
	}
}


/* ---------------------------------------------------------
   Variante para fondos oscuros
   --------------------------------------------------------- */

.cf7-program-form--dark {
    color: #fff;
}

.cf7-program-form--dark .form-field label,
.cf7-program-form--dark .cf7-consent,
.cf7-program-form--dark .cf7-consent > p,
.cf7-program-form--dark .cf7-consent .wpcf7-list-item-label,
.cf7-program-form--dark .form-privacy,
.cf7-program-form--dark .form-privacy p {
    color: #fff;
}

/* Los links siguen visibles sobre fondo oscuro. */
.cf7-program-form--dark .form-privacy a {
    color: #1e90ff;
}
.wpcf7-response-output {
	color: #fff;
}