/**
 * Ensa Citas — estilos del formulario de citas, cancelación y estados de carga.
 *
 * Responsive alineado con los breakpoints por defecto de Elementor
 * (ver `elementor/core/breakpoints/manager.php` → get_default_config):
 * - Móvil: max-width 767px (Mobile portrait).
 * - Desde tablet: min-width 768px (coincide con el siguiente tramo respecto a 767px).
 *
 * @package Ensa_Citas
 */

.ensa-citas-wrapper {
	width: 100%;
	max-width: 100%;
	padding: 20px 24px;
	border-radius: 8px;
	background: transparent;
	box-sizing: border-box;
	font-family: Poppins, sans-serif;
}

/* Estado de envío AJAX del formulario completo */
.ensa-citas-wrapper--submitting {
	position: relative;
}

.ensa-citas-wrapper--submitting::after {
	content: '';
	position: absolute;
	inset: 0;
	background: rgba(255, 255, 255, 0.55);
	pointer-events: all;
	border-radius: 8px;
	z-index: 10;
}

.ensa-citas-wrapper--submitting::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 24px;
	height: 24px;
	margin-top: -12px;
	margin-left: -12px;
	border: 3px solid rgba(10, 122, 71, 0.2);
	border-top-color: #0a7a47;
	border-radius: 50%;
	animation: ensa-citas-spin 0.7s linear infinite;
	z-index: 11;
	pointer-events: none;
}

.ensa-citas-wrapper--submitting .ensa-citas-form {
	opacity: 0.6;
}

.ensa-citas-form--hidden {
	display: none !important;
}

.ensa-citas-title {
	margin: 0 0 0.5em;
	color: #313131;
	font-size: 1.5rem;
	font-weight: 600;
}

.ensa-citas-title-accent {
	color: #61a72f;
}

.ensa-citas-intro {
	margin: 0 0 22px;
	font-size: 15px;
	line-height: 1.55;
	color: #3b3b3b;
}

.ensa-citas-required-note {
	margin: 0 0 12px;
	font-size: 16px;
	line-height: 1.4;
	color: #313131;
}

.ensa-citas-form {
	display: grid;
	gap: 18px;
	grid-template-columns: 1fr;
}

.ensa-citas-field {
	display: grid;
	gap: 8px;
}

.ensa-citas-field--privacy {
	grid-column: 1 / -1;
}

.ensa-citas-checkbox-label {
	display: inline-flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 14px;
	line-height: 1.45;
	font-weight: 500;
	color: #1f2d3d;
	cursor: pointer;
}

.ensa-citas-checkbox-label input[type="checkbox"] {
	width: 18px;
	height: 18px;
	margin-top: 2px;
	accent-color: #0a7a47;
	flex: 0 0 auto;
}

.ensa-citas-checkbox-link {
	color: #7eb33a !important;
	text-decoration: underline;
}

.ensa-citas-checkbox-link:hover {
	color: #5d9c2b !important;
}

.ensa-citas-error-message {
	display: none;
	margin: 0;
	font-size: 13px;
	line-height: 19px;
	color: rgb(192, 43, 10);
	font-weight: 400;
}

.ensa-citas-field--error .ensa-citas-error-message {
	display: block;
}

.ensa-citas-field label {
	color: #112337;
	font-weight: 500;
	font-size: 14px;
}

.ensa-citas-required {
	color: #f44336;
}

.ensa-citas-field input,
.ensa-citas-field select {
	width: 100%;
	height: 46px;
	padding: 0 14px;
	border: 1px solid #7eb33a;
	border-radius: 12px;
	background: #ffffff;
	font-size: 15px;
	line-height: 1;
	color: #3a3a3a;
	box-sizing: border-box;
}

/* Solo fecha: lista con altura máxima (atributo size + scroll interno). Hora sigue como select nativo. */
.ensa-citas-field select.ensa-citas-select-fecha-scroll[size="1"] {
	height: 46px;
	overflow-y: hidden;
}

.ensa-citas-field select.ensa-citas-select-fecha-scroll:not([size="1"]) {
	height: auto;
	min-height: 46px;
	max-height: min(40vh, 260px);
	padding: 6px 14px;
	line-height: 1.35;
	overflow-y: auto;
}

.ensa-citas-field input::placeholder {
	color: #a1a1a1;
}

.ensa-citas-field input:focus,
.ensa-citas-field select:focus {
	outline: none;
	border-color: #5d9c2b;
	box-shadow: 0 0 0 3px rgba(126, 179, 58, 0.12);
}

.ensa-citas-field input:disabled,
.ensa-citas-field select:disabled {
	opacity: 0.65;
	background: #f0f0f0;
	border-color: #c5c5c5;
	color: #6b6b6b;
	cursor: not-allowed;
}

.ensa-citas-field input:disabled::placeholder {
	color: #9e9e9e;
}

.ensa-citas-actions {
	margin-top: 8px;
	grid-column: 1 / -1;
}

.ensa-citas-submit {
	height: 46px;
	padding: 0 22px;
	border: 0;
	border-radius: 3px 25px 3px 25px !important;
	background-color: #9ec341 !important;
	color: #ffffff !important;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.ensa-citas-submit:hover {
	background-color: #62a507 !important;
	color: #ffffff !important;
}

.ensa-citas-message {
	padding: 14px 18px;
	border-radius: 12px;
	margin-bottom: 18px;
	font-size: 14px;
	line-height: 1.5;
}

.ensa-citas-message--success {
	background: #e8f5e9;
	border: 1px solid #a5d6a7;
	color: #2e7d32;
}

.ensa-citas-message--error {
	background: #ffebee;
	border: 1px solid #ef9a9a;
	color: #c62828;
}

.ensa-citas-toast-container {
	position: fixed;
	top: 20px;
	right: 20px;
	z-index: 99999;
	display: grid;
	gap: 10px;
	max-width: min(92vw, 420px);
	pointer-events: none;
}

.ensa-citas-toast {
	padding: 14px 18px;
	border-radius: 12px;
	border: 1px solid transparent;
	box-shadow: 0 8px 22px rgba(0, 0, 0, 0.14);
	font-size: 14px;
	line-height: 1.5;
	font-weight: 400;
	opacity: 0;
	transform: translateY(-6px);
	transition: opacity 0.25s ease, transform 0.25s ease;
}

.ensa-citas-toast.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.ensa-citas-toast--success {
	background: #e8f5e9;
	border-color: #a5d6a7;
	color: #2e7d32;
}

.ensa-citas-toast--error {
	background: #ffebee;
	border-color: #ef9a9a;
	color: #c62828;
}

@media (max-width: 767px) {
	.ensa-citas-form {
		grid-template-columns: 1fr;
	}

	.ensa-citas-intro,
	.ensa-citas-required-note {
		font-size: 14px;
	}

	.ensa-citas-field label {
		font-size: 14px;
	}

	.ensa-citas-field input,
	.ensa-citas-field select:not(.ensa-citas-select-fecha-scroll),
	.ensa-citas-submit {
		height: 44px;
		font-size: 15px;
	}

	.ensa-citas-field select.ensa-citas-select-fecha-scroll[size="1"] {
		height: 44px;
	}

	.ensa-citas-toast-container {
		top: 12px;
		left: 12px;
		right: 12px;
		max-width: none;
	}
}

/* Loading state during AJAX (fechas / horarios) */
.ensa-citas-field.ensa-citas-loading {
	position: relative;
}

.ensa-citas-field.ensa-citas-loading select {
	opacity: 0.6;
	pointer-events: none;
}

.ensa-citas-loading-indicator {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 8px;
	font-size: 14px;
	color: #0a7a47;
}

.ensa-citas-loading-spinner {
	display: inline-block;
	width: 20px;
	height: 20px;
	border: 2px solid rgba(10, 122, 71, 0.2);
	border-top-color: #0a7a47;
	border-radius: 50%;
	animation: ensa-citas-spin 0.7s linear infinite;
}

.ensa-citas-loading-text {
	font-weight: 500;
}

@keyframes ensa-citas-spin {
	to {
		transform: rotate(360deg);
	}
}

/* Cancelación [ensa_citas_cancelar]: mismo lenguaje visual que el formulario de citas */
.ensa-citas-cancel-flow .ensa-citas-intro--muted {
	color: #5c5d65;
	font-size: 16px;
	line-height: 1.55;
}

.ensa-citas-cancel-summary {
	margin: 0 0 4px;
	padding: 18px 18px 8px;
	border: 1px solid #dedede;
	border-radius: 8px;
	background: #fafafa;
}

.ensa-citas-cancel-summary__heading {
	margin: 0 0 14px;
	color: #6e7a82;
	font-size: 1.125rem;
	font-weight: 600;
}

.ensa-citas-summary-row {
	display: grid;
	grid-template-columns: minmax(140px, 42%) 1fr;
	gap: 8px 12px;
	padding: 9px 0;
	border-bottom: 1px solid #ececec;
	font-size: 14px;
	line-height: 1.45;
	align-items: start;
}

.ensa-citas-summary-row:last-child {
	border-bottom: 0;
	padding-bottom: 4px;
}

.ensa-citas-summary-row__label {
	color: #3c3c3c;
	font-weight: 600;
}

.ensa-citas-summary-row__value {
	color: #5c5d65;
}

.ensa-citas-summary-row__value--code {
	color: #61a72f;
	font-weight: 700;
}

.ensa-citas-cancel-confirm-question {
	margin: 18px 0 6px;
	color: #5c5d65;
	font-size: 15px;
	line-height: 1.55;
}

.ensa-citas-cancel-form {
	grid-template-columns: 1fr;
}

.ensa-citas-cancel-form .ensa-citas-field,
.ensa-citas-cancel-form .ensa-citas-actions {
	grid-column: 1 / -1;
}

.ensa-citas-actions--split {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.ensa-citas-link-back {
	color: #0a7a47;
	font-weight: 600;
	font-size: 15px;
	text-decoration: underline;
}

.ensa-citas-link-back:hover {
	color: #08683c;
}

/* Tablet y desktop (Elementor: desde 768px, tras el corte móvil 767px) */
@media (min-width: 768px) {
	.ensa-citas-form {
		grid-template-columns: 1fr 1fr;
		/* Evita estirar la columna vecina cuando una fila tiene distinta altura */
		align-items: start;
	}

	.ensa-citas-form .ensa-citas-field--span-full {
		grid-column: 1 / -1;
	}

	.ensa-citas-form .ensa-citas-actions {
		grid-column: 1 / -1;
	}

	.ensa-citas-form .ensa-citas-field:not(.ensa-citas-field--privacy) .ensa-citas-error-message,
	.ensa-citas-form .ensa-citas-field:not(.ensa-citas-field--privacy) .ensa-citas-loading-indicator {
		position: static;
		margin-top: 1px;
		max-width: 100%;
	}

	.ensa-citas-cancel-form {
		grid-template-columns: 1fr;
	}
}
