/*
 * La barra y el modal de suscripción (assets/suscripcion.js, inc/suscripciones/frontend.php).
 *
 * Todo va prefijado con .choko-susc y casi todo con una clase propia más: los temas ponen
 * estilos a button, input, select, label, h2 y p, y con un solo selector de clase perderíamos
 * (sobre todo en :hover y :focus, que pesan más). La barra va en el flujo normal, nunca fixed,
 * para no tapar la cabecera del tema; el modal sí es fixed.
 */

.choko-susc {
	display: block;
	margin: 0;
	padding: 0;
	font-family: inherit;
	line-height: 1.4;
	box-sizing: border-box;
}

.choko-susc *,
.choko-susc *::before,
.choko-susc *::after {
	box-sizing: border-box;
}

/* Sin esto el display de arriba le ganaría al atributo hidden. */
.choko-susc[hidden],
.choko-susc [hidden] {
	display: none !important;
}

/* ---------- La barra ---------- */

.choko-susc .choko-susc-barra {
	position: relative;
	margin: 0;
	padding: 10px 44px;
	font-size: 15px;
	line-height: 1.4;
	text-align: center;
}

.choko-susc .choko-susc-barra-texto {
	font-size: inherit;
}

.choko-susc .choko-susc-abrir {
	display: inline;
	width: auto;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	font: inherit;
	font-weight: 700;
	letter-spacing: normal;
	text-decoration: underline;
	text-transform: none;
	cursor: pointer;
}

.choko-susc .choko-susc-abrir:hover,
.choko-susc .choko-susc-abrir:focus {
	background: none;
	text-decoration: none;
}

.choko-susc .choko-susc-cerrar {
	position: absolute;
	top: 50%;
	right: 10px;
	width: 28px;
	height: 28px;
	margin: -14px 0 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	box-shadow: none;
	font-size: 22px;
	line-height: 28px;
	text-align: center;
	opacity: 0.65;
	cursor: pointer;
}

.choko-susc .choko-susc-cerrar:hover,
.choko-susc .choko-susc-cerrar:focus {
	background: transparent;
	opacity: 1;
}

.choko-susc .choko-susc-abrir:focus-visible,
.choko-susc .choko-susc-cerrar:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

/* ---------- El modal ---------- */

.choko-susc .choko-susc-fondo {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 100000;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding: 24px 16px;
	overflow-y: auto;
	background: rgba(0, 0, 0, 0.55);
}

.choko-susc .choko-susc-modal {
	position: relative;
	width: 100%;
	max-width: 460px;
	margin: auto;
	padding: 24px 26px;
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 10px 40px rgba(0, 0, 0, 0.35);
	color: #222;
	font-size: 14px;
	text-align: left;
}

.choko-susc .choko-susc-modal:focus {
	outline: none;
}

.choko-susc .choko-susc-x {
	position: absolute;
	top: 10px;
	right: 14px;
	width: 32px;
	height: 32px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	box-shadow: none;
	color: #222;
	font-size: 24px;
	line-height: 32px;
	text-align: center;
	opacity: 0.5;
	cursor: pointer;
}

.choko-susc .choko-susc-x:hover,
.choko-susc .choko-susc-x:focus {
	background: transparent;
	opacity: 1;
}

.choko-susc .choko-susc-x:focus-visible {
	outline: 2px solid #222;
	outline-offset: 1px;
}

.choko-susc .choko-susc-modal .choko-susc-titulo {
	margin: 0 28px 8px 0;
	padding: 0;
	color: #1d2327;
	font-size: 20px;
	font-weight: 700;
	letter-spacing: 0.5px;
	line-height: 1.25;
	text-transform: none;
}

.choko-susc .choko-susc-modal .choko-susc-cuerpo {
	margin: 0 0 16px;
	font-size: 14px;
	line-height: 1.5;
	white-space: pre-line; /* los saltos de línea que Mario escribe en el editor */
}

.choko-susc .choko-susc-modal .choko-susc-cuerpo p {
	margin: 0 0 8px;
}

.choko-susc .choko-susc-modal .choko-susc-cuerpo a {
	color: inherit;
	text-decoration: underline;
}

/* ---------- El formulario ---------- */

.choko-susc .choko-susc-form {
	margin: 0;
	padding: 0;
}

.choko-susc .choko-susc-form .choko-susc-fila {
	display: flex;
	gap: 10px;
	margin: 10px 0 0;
}

.choko-susc .choko-susc-form .choko-susc-fila:first-child {
	margin-top: 0;
}

.choko-susc .choko-susc-form .choko-susc-fila-tel {
	gap: 6px;
}

.choko-susc .choko-susc-form .choko-susc-campo {
	display: block;
	flex: 1 1 0;
	width: 100%;
	min-width: 0;
	height: 42px;
	margin: 0;
	padding: 8px 12px;
	border: 1px solid #c3c4c7;
	border-radius: 6px;
	background: #fff;
	box-shadow: none;
	color: #222;
	font-family: inherit;
	font-size: 14px;
	line-height: 1.3;
}

.choko-susc .choko-susc-form .choko-susc-campo:focus {
	border-color: #2271b1;
	outline: 2px solid #2271b1;
	outline-offset: 0;
	box-shadow: none;
}

.choko-susc .choko-susc-form .choko-susc-prefijo {
	flex: 0 0 120px;
	width: 120px;
	padding-right: 4px;
	padding-left: 8px;
}

.choko-susc .choko-susc-form .choko-susc-consentimiento {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin: 10px 0 0;
	font-size: 12px;
	line-height: 1.4;
}

.choko-susc .choko-susc-form .choko-susc-consentimiento input {
	flex: 0 0 auto;
	width: 16px;
	height: 16px;
	margin: 1px 0 0;
}

.choko-susc .choko-susc-form .choko-susc-consentimiento label {
	display: inline;
	margin: 0;
	padding: 0;
	color: inherit;
	font-size: inherit;
	font-weight: 400;
	text-transform: none;
}

.choko-susc .choko-susc-form .choko-susc-error {
	margin: 10px 0 0;
	padding: 8px 10px;
	border-left: 3px solid #b32d2e;
	background: #fcf0f1;
	color: #8a2424;
	font-size: 13px;
}

.choko-susc .choko-susc-form .choko-susc-enviar {
	display: block;
	width: 100%;
	height: auto;
	margin: 14px 0 0;
	padding: 12px 16px;
	border: 0;
	border-radius: 6px;
	box-shadow: none;
	font-family: inherit;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: normal;
	line-height: 1.2;
	text-transform: none;
	cursor: pointer;
}

.choko-susc .choko-susc-form .choko-susc-enviar:hover,
.choko-susc .choko-susc-form .choko-susc-enviar:focus {
	opacity: 0.9;
}

.choko-susc .choko-susc-form .choko-susc-enviar:focus-visible {
	outline: 2px solid #222;
	outline-offset: 2px;
}

.choko-susc .choko-susc-form .choko-susc-enviar:disabled {
	opacity: 0.6;
	cursor: wait;
}

.choko-susc .choko-susc-modal .choko-susc-exito {
	margin: 8px 0 0;
	font-size: 15px;
	line-height: 1.5;
}

.choko-susc .choko-susc-modal .choko-susc-nota {
	margin: 12px 0 0;
	color: #666;
	font-size: 11.5px;
	line-height: 1.4;
}

/* Etiquetas que solo leen los lectores de pantalla (la vista usa el placeholder). */
.choko-susc .choko-susc-sr {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* El campo trampa: fuera de la vista pero presente (un display:none lo saltan los bots listos). */
.choko-susc .choko-susc-trampa {
	position: absolute;
	left: -9999px;
	top: auto;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* ---------- Móvil ---------- */

@media (max-width: 599px) {
	.choko-susc .choko-susc-barra {
		padding: 10px 40px 10px 14px;
		font-size: 14px;
	}

	.choko-susc .choko-susc-fondo {
		padding: 16px 0;
	}

	/* A todo el ancho menos 16 px: 8 px de aire a cada lado. */
	.choko-susc .choko-susc-modal {
		max-width: none;
		width: calc(100% - 16px);
		padding: 22px 18px;
	}

	.choko-susc .choko-susc-form .choko-susc-prefijo {
		flex-basis: 118px;
		width: 118px;
	}
}
